Index: wp-includes/class-wp-feed-cache-transient.php
===================================================================
--- wp-includes/class-wp-feed-cache-transient.php	(revision 47399)
+++ wp-includes/class-wp-feed-cache-transient.php	(working copy)
@@ -12,8 +12,7 @@
  *
  * @since 2.8.0
  */
-class WP_Feed_Cache_Transient {
-
+class WP_Feed_Cache_Transient implements SimplePie_Cache_Base {
 	/**
 	 * Holds the transient name.
 	 *
@@ -33,12 +32,10 @@
 	/**
 	 * Holds the cache duration in seconds.
 	 *
-	 * Defaults to 43200 seconds (12 hours).
-	 *
 	 * @since 2.8.0
 	 * @var int
 	 */
-	public $lifetime = 43200;
+	public $lifetime;
 
 	/**
 	 * Constructor.
@@ -50,20 +47,14 @@
 	 * @param string $filename  Unique identifier for cache object.
 	 * @param string $extension 'spi' or 'spc'.
 	 */
-	public function __construct( $location, $filename, $extension ) {
-		$this->name     = 'feed_' . $filename;
-		$this->mod_name = 'feed_mod_' . $filename;
+	public function __construct( $location, $name, $type ) {
 
-		$lifetime = $this->lifetime;
-		/**
-		 * Filters the transient lifetime of the feed cache.
-		 *
-		 * @since 2.8.0
-		 *
-		 * @param int    $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours).
-		 * @param string $filename Unique identifier for the cache object.
-		 */
-		$this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename );
+		$options = SimplePie_Cache::parse_URL( $location );
+
+		$this->lifetime = $options['extras']['lifetime'];
+
+		$this->name     = 'feed_'     . md5( "$name:$type" );
+		$this->mod_name = 'feed_mod_' . md5( "$name:$type" );
 	}
 
 	/**
@@ -129,4 +120,4 @@
 		delete_transient( $this->mod_name );
 		return true;
 	}
-}
+}
\ No newline at end of file
Index: wp-includes/class-wp-feed-cache.php
===================================================================
--- wp-includes/class-wp-feed-cache.php	(revision 47399)
+++ wp-includes/class-wp-feed-cache.php	(nonexistent)
@@ -1,32 +0,0 @@
-<?php
-/**
- * Feed API: WP_Feed_Cache class
- *
- * @package WordPress
- * @subpackage Feed
- * @since 4.7.0
- */
-
-/**
- * Core class used to implement a feed cache.
- *
- * @since 2.8.0
- *
- * @see SimplePie_Cache
- */
-class WP_Feed_Cache extends SimplePie_Cache {
-
-	/**
-	 * Creates a new SimplePie_Cache object.
-	 *
-	 * @since 2.8.0
-	 *
-	 * @param string $location  URL location (scheme is used to determine handler).
-	 * @param string $filename  Unique identifier for cache object.
-	 * @param string $extension 'spi' or 'spc'.
-	 * @return WP_Feed_Cache_Transient Feed cache handler object that uses transients.
-	 */
-	public function create( $location, $filename, $extension ) {
-		return new WP_Feed_Cache_Transient( $location, $filename, $extension );
-	}
-}

Property changes on: wp-includes/class-wp-feed-cache.php
___________________________________________________________________
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Index: wp-includes/feed.php
===================================================================
--- wp-includes/feed.php	(revision 47399)
+++ wp-includes/feed.php	(working copy)
@@ -749,11 +749,21 @@
  * @return SimplePie|WP_Error SimplePie object on success or WP_Error object on failure.
  */
 function fetch_feed( $url ) {
+
+	/**
+	 * Filters the transient lifetime of the feed cache.
+	 *
+	 * @since 2.8.0
+	 *
+	 * @param int    $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours).
+	 * @param string $filename Unique identifier for the cache object.
+	 */
+	$lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url );
+
 	if ( ! class_exists( 'SimplePie', false ) ) {
 		require_once ABSPATH . WPINC . '/class-simplepie.php';
 	}
 
-	require_once ABSPATH . WPINC . '/class-wp-feed-cache.php';
 	require_once ABSPATH . WPINC . '/class-wp-feed-cache-transient.php';
 	require_once ABSPATH . WPINC . '/class-wp-simplepie-file.php';
 	require_once ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php';
@@ -760,17 +770,14 @@
 
 	$feed = new SimplePie();
 
-	$feed->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' );
-	// We must manually overwrite $feed->sanitize because SimplePie's
-	// constructor sets it before we have a chance to set the sanitization class.
-	$feed->sanitize = new WP_SimplePie_Sanitize_KSES();
+	SimplePie_Cache::register( 'wordpress', 'WP_Feed_Cache_Transient');
+	$feed->set_cache_duration( $lifetime );
+	$feed->set_cache_location( 'wordpress://wordpress?lifetime=' . $lifetime );
 
-	$feed->set_cache_class( 'WP_Feed_Cache' );
-	$feed->set_file_class( 'WP_SimplePie_File' );
+	$feed->registry->register( 'File',  'WP_SimplePie_File', true );
 
 	$feed->set_feed_url( $url );
-	/** This filter is documented in wp-includes/class-wp-feed-cache-transient.php */
-	$feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) );
+
 	/**
 	 * Fires just before processing the SimplePie feed object.
 	 *
