Index: src/wp-admin/includes/class-wp-filesystem-base.php
===================================================================
--- src/wp-admin/includes/class-wp-filesystem-base.php	(revision 25302)
+++ src/wp-admin/includes/class-wp-filesystem-base.php	(working copy)
@@ -12,19 +12,21 @@
  * @since 2.5
  */
 class WP_Filesystem_Base {
+
 	/**
 	 * Whether to display debug data for the connection.
 	 *
-	 * @since 2.5
 	 * @access public
+	 * @since 2.5.0
 	 * @var bool
 	 */
 	var $verbose = false;
+
 	/**
 	 * Cached list of local filepaths to mapped remote filepaths.
 	 *
-	 * @since 2.7
 	 * @access private
+	 * @since 2.7.0
 	 * @var array
 	 */
 	var $cache = array();
@@ -32,17 +34,23 @@
 	/**
 	 * The Access method of the current connection, Set automatically.
 	 *
-	 * @since 2.5
 	 * @access public
+	 * @since 2.5.0
 	 * @var string
 	 */
 	var $method = '';
 
 	/**
-	 * Returns the path on the remote filesystem of ABSPATH
+	 * Constructor (empty).
+	 */
+	function __construct() {}
+
+	/**
+	 * Return the path on the remote filesystem of ABSPATH.
 	 *
-	 * @since 2.7
 	 * @access public
+	 * @since 2.7.0
+	 *
 	 * @return string The location of the remote path.
 	 */
 	function abspath() {
@@ -53,20 +61,21 @@
 		return $folder;
 	}
 	/**
-	 * Returns the path on the remote filesystem of WP_CONTENT_DIR
+	 * Return the path on the remote filesystem of WP_CONTENT_DIR.
 	 *
-	 * @since 2.7
 	 * @access public
+	 * @since 2.7.0
+	 *
 	 * @return string The location of the remote path.
 	 */
 	function wp_content_dir() {
 		return $this->find_folder(WP_CONTENT_DIR);
 	}
 	/**
-	 * Returns the path on the remote filesystem of WP_PLUGIN_DIR
+	 * Return the path on the remote filesystem of WP_PLUGIN_DIR.
 	 *
-	 * @since 2.7
 	 * @access public
+	 * @since 2.7.0
 	 *
 	 * @return string The location of the remote path.
 	 */
@@ -74,12 +83,12 @@
 		return $this->find_folder(WP_PLUGIN_DIR);
 	}
 	/**
-	 * Returns the path on the remote filesystem of the Themes Directory
+	 * Return the path on the remote filesystem of the Themes Directory.
 	 *
-	 * @since 2.7
 	 * @access public
+	 * @since 2.7.0
 	 *
-	 * @param string $theme The Theme stylesheet or template for the directory
+	 * @param string $theme The Theme stylesheet or template for the directory.
 	 * @return string The location of the remote path.
 	 */
 	function wp_themes_dir( $theme = false ) {
@@ -92,10 +101,10 @@
 		return $this->find_folder( $theme_root );
 	}
 	/**
-	 * Returns the path on the remote filesystem of WP_LANG_DIR
+	 * Return the path on the remote filesystem of WP_LANG_DIR.
 	 *
+	 * @access public
 	 * @since 3.2.0
-	 * @access public
 	 *
 	 * @return string The location of the remote path.
 	 */
@@ -104,55 +113,61 @@
 	}
 
 	/**
-	 * Locates a folder on the remote filesystem.
+	 * Locate a folder on the remote filesystem.
 	 *
-	 * Deprecated; use WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir() methods instead.
-	 *
-	 * @since 2.5
-	 * @deprecated 2.7
 	 * @access public
+	 * @since 2.5.0
+	 * @deprecated 2.7.0 use WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir() instead.
+	 * @see WP_Filesystem::abspath()
+	 * @see WP_Filesystem::wp_content_dir()
+	 * @see WP_Filesystem::wp_plugins_dir()
+	 * @see WP_Filesystem::wp_themes_dir()
+	 * @see WP_Filesystem::wp_lang_dir()
 	 *
-	 * @param string $base The folder to start searching from
-	 * @param bool $echo True to display debug information
+	 * @param string $base The folder to start searching from.
+	 * @param bool   $echo True to display debug information.
 	 * @return string The location of the remote path.
 	 */
-	function find_base_dir($base = '.', $echo = false) {
+	function find_base_dir( $base = '.', $echo = false ) {
 		_deprecated_function(__FUNCTION__, '2.7', 'WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir()' );
 		$this->verbose = $echo;
 		return $this->abspath();
 	}
 	/**
-	 * Locates a folder on the remote filesystem.
+	 * Locate a folder on the remote filesystem.
 	 *
-	 * Deprecated; use WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir() methods instead.
-	 *
-	 * @since 2.5
-	 * @deprecated 2.7
 	 * @access public
+	 * @since 2.5.0
+	 * @deprecated 2.7.0 use WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir() methods instead.
+	 * @see WP_Filesystem::abspath()
+	 * @see WP_Filesystem::wp_content_dir()
+	 * @see WP_Filesystem::wp_plugins_dir()
+	 * @see WP_Filesystem::wp_themes_dir()
+	 * @see WP_Filesystem::wp_lang_dir()
 	 *
-	 * @param string $base The folder to start searching from
-	 * @param bool $echo True to display debug information
+	 * @param string $base The folder to start searching from.
+	 * @param bool   $echo True to display debug information.
 	 * @return string The location of the remote path.
 	 */
-	function get_base_dir($base = '.', $echo = false) {
+	function get_base_dir( $base = '.', $echo = false ) {
 		_deprecated_function(__FUNCTION__, '2.7', 'WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir()' );
 		$this->verbose = $echo;
 		return $this->abspath();
 	}
 
 	/**
-	 * Locates a folder on the remote filesystem.
+	 * Locate a folder on the remote filesystem.
 	 *
-	 * Assumes that on Windows systems, Stripping off the Drive letter is OK
-	 * Sanitizes \\ to / in windows filepaths.
+	 * Assumes that on Windows systems, Stripping off the Drive
+	 * letter is OK Sanitizes \\ to / in windows filepaths.
 	 *
-	 * @since 2.7
 	 * @access public
+	 * @since 2.7.0
 	 *
-	 * @param string $folder the folder to locate
+	 * @param string $folder the folder to locate.
 	 * @return string The location of the remote path.
 	 */
-	function find_folder($folder) {
+	function find_folder( $folder ) {
 
 		if ( isset( $this->cache[ $folder ] ) )
 			return $this->cache[ $folder ];
@@ -209,19 +224,19 @@
 	}
 
 	/**
-	 * Locates a folder on the remote filesystem.
+	 * Locate a folder on the remote filesystem.
 	 *
-	 * Expects Windows sanitized path
+	 * Expects Windows sanitized path.
 	 *
-	 * @since 2.7
 	 * @access private
+	 * @since 2.7.0
 	 *
-	 * @param string $folder the folder to locate
-	 * @param string $base the folder to start searching from
-	 * @param bool $loop if the function has recursed, Internal use only
+	 * @param string $folder The folder to locate.
+	 * @param string $base   The folder to start searching from.
+	 * @param bool   $loop   If the function has recursed, Internal use only.
 	 * @return string The location of the remote path.
 	 */
-	function search_for_folder($folder, $base = '.', $loop = false ) {
+	function search_for_folder( $folder, $base = '.', $loop = false ) {
 		if ( empty( $base ) || '.' == $base )
 			$base = trailingslashit($this->cwd());
 
@@ -276,18 +291,19 @@
 	}
 
 	/**
-	 * Returns the *nix style file permissions for a file
+	 * Return the *nix-style file permissions for a file.
 	 *
-	 * From the PHP documentation page for fileperms()
+	 * From the PHP documentation page for fileperms().
 	 *
 	 * @link http://docs.php.net/fileperms
-	 * @since 2.5
+	 *
 	 * @access public
+	 * @since 2.5.0
 	 *
-	 * @param string $file string filename
-	 * @return string *nix style representation of permissions
+	 * @param string $file String filename.
+	 * @return string The *nix-style representation of permissions.
 	 */
-	function gethchmod($file){
+	function gethchmod( $file ){
 		$perms = $this->getchmod($file);
 		if (($perms & 0xC000) == 0xC000) // Socket
 			$info = 's';
@@ -330,16 +346,17 @@
 	}
 
 	/**
-	 * Converts *nix style file permissions to a octal number.
+	 * Convert *nix-style file permissions to a octal number.
 	 *
 	 * Converts '-rw-r--r--' to 0644
 	 * From "info at rvgate dot nl"'s comment on the PHP documentation for chmod()
  	 *
 	 * @link http://docs.php.net/manual/en/function.chmod.php#49614
-	 * @since 2.5
+	 *
 	 * @access public
+	 * @since 2.5.0
 	 *
-	 * @param string $mode string *nix style file permission
+	 * @param string $mode string The *nix-style file permission.
 	 * @return int octal representation
 	 */
 	function getnumchmodfromh($mode) {
@@ -363,15 +380,350 @@
 	}
 
 	/**
-	 * Determines if the string provided contains binary characters.
+	 * Determine if the string provided contains binary characters.
 	 *
-	 * @since 2.7
 	 * @access private
+	 * @since 2.7.0
 	 *
-	 * @param string $text String to test against
-	 * @return bool true if string is binary, false otherwise
+	 * @param string $text String to test against.
+	 * @return bool true if string is binary, false otherwise.
 	 */
 	function is_binary( $text ) {
 		return (bool) preg_match('|[^\x20-\x7E]|', $text); //chr(32)..chr(127)
 	}
+
+	/**
+	 * Change the ownership of a file / folder.
+	 *
+	 * Default behavior is to do nothing, override this in your subclass, if desired.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file      Path to the file.
+	 * @param mixed  $owner     A user name or number.
+	 * @param bool   $recursive (optional) If set True changes file owner recursivly. Defaults to False.
+	 * @return bool Returns true on success or false on failure.
+	 */
+	function chown( $file, $owner, $recursive = false ) {
+		return false;
+	}
+
+	/**
+	 * Connect filesystem.
+	 *
+	 * @since Unknown
+	 *
+	 * @return bool True on success or false on failure (always true for WP_Filesystem_Direct).
+	 */
+	function connect() {
+		return true;
+	}
+
+	/**
+	 * Read entire file into a string.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file Name of the file to read.
+	 * @return string|bool Returns the read data or false on failure.
+	 */
+	function get_contents( $file ) {
+		return false;
+	}
+
+	/**
+	 * Read entire file into an array.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file Path to the file.
+	 * @return array|bool the file contents in an array or false on failure.
+	 */
+	function get_contents_array( $file ) {
+		return false;
+	}
+
+	/**
+	 * Write a string to a file.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file     Remote path to the file where to write the data.
+	 * @param string $contents The data to write.
+	 * @param int    $mode     (optional) The file permissions as octal number, usually 0644.
+	 * @return bool False on failure.
+	 */
+	function put_contents( $file, $contents, $mode = false ) {
+		return false;
+	}
+
+	/**
+	 * Get the current working directory.
+	 *
+	 * @since Unknown
+	 *
+	 * @return string|bool The current working directory on success, or false on failure.
+	 */
+	function cwd() {
+		return false;
+	}
+
+	/**
+	 * Change current directory.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $dir The new current directory.
+	 * @return bool Returns true on success or false on failure.
+	 */
+	function chdir( $dir ) {
+		return false;
+	}
+
+	/**
+	 * Change the file group.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file      Path to the file.
+	 * @param mixed  $group     A group name or number.
+	 * @param bool   $recursive (optional) If set True changes file group recursivly. Defaults to False.
+	 * @return bool Returns true on success or false on failure.
+	 */
+	function chgrp( $file, $group, $recursive = false ) {
+		return false;
+	}
+
+	/**
+	 * Change filesystem permissions.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file      Path to the file.
+	 * @param int    $mode      (optional) The permissions as octal number, usually 0644 for files, 0755 for dirs.
+	 * @param bool   $recursive (optional) If set True changes file group recursivly. Defaults to False.
+	 * @return bool Returns true on success or false on failure.
+	 */
+	function chmod( $file, $mode = false, $recursive = false ) {
+		return false;
+	}
+
+	/**
+	 * Get the file owner.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file Path to the file.
+	 * @return string|bool Username of the user or false on error.
+	 */
+	function owner($file) {
+		return false;
+	}
+
+	/**
+	 * Get the file's group.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file Path to the file.
+	 * @return string|bool The group or false on error.
+	 */
+	function group($file) {
+		return false;
+	}
+
+	/**
+	 * Copy a file.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $source
+	 * @param string $destination
+	 * @param bool   $overwrite
+	 * @param int    $mode
+	 * @return bool
+	 */
+	function copy( $source, $destination, $overwrite = false, $mode = false ) {
+		return false;
+	}
+
+	/**
+	 * Move a file.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $source
+	 * @param string $destination
+	 * @param bool   $overwrite
+	 * @return bool
+	 */
+	function move( $source, $destination, $overwrite = false ) {
+		return false;
+	}
+
+	/**
+	 * Delete a file / directory.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @param bool   $recursive
+	 * @param type   $type      (f = file, other values = directory).
+	 * @return bool
+	 */
+	function delete( $file, $recursive = false, $type = false ) {
+		return false;
+	}
+
+	/**
+	 * Check if a file exists.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return bool
+	 */
+	function exists($file) {
+		return false;
+	}
+
+	/**
+	 * Check if a file is a regular file.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return bool
+	 */
+	function is_file( $file ) {
+		return false;
+	}
+
+	/**
+	 * Check if a path is a directory.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $path
+	 * @return bool
+	 */
+	function is_dir( $path ) {
+		return false;
+	}
+
+	/**
+	 * Check if a file is readable.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return bool
+	 */
+	function is_readable( $file ) {
+		return false;
+	}
+
+	/**
+	 * Check if a file is writable.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return bool
+	 */
+	function is_writable( $file ) {
+		return false;
+	}
+
+	/**
+	 * Get a file's last access time.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return int|bool
+	 */
+	function atime( $file ) {
+		return false;
+	}
+
+	/**
+	 * Get a file's last modified time.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return int|bool
+	 */
+	function mtime( $file ) {
+		return false;
+	}
+
+	/**
+	 * Get a file's size.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @return int|bool
+	 */
+	function size( $file ) {
+		return false;
+	}
+
+	/**
+	 * Update a file's access time and modified time.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $file
+	 * @param int    $time
+	 * @param int    $atime
+	 * @return bool
+	 */
+	function touch( $file, $time = 0, $atime = 0 ) {
+		return false;
+	}
+
+	/**
+	 * Create a directory.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string           $path
+	 * @param string|int|false $chmod
+	 * @param string|int|false $chown
+	 * @param string|int|false $chgrp
+	 * @return bool
+	 */
+	function mkdir( $path, $chmod = false, $chown = false, $chgrp = false ) {
+		return false;
+	}
+
+	/**
+	 * Delete a directory.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $path
+	 * @param bool   $recursive
+	 * @return bool
+	 */
+	function rmdir( $path, $recursive = false ) {
+		return false;
+	}
+
+	/**
+	 * Get a recursive directory listing.
+	 *
+	 * @since Unknown
+	 * 
+	 * @param string $path
+	 * @param bool   $include_hidden
+	 * @param bool   $recursive
+	 * @return array|bool
+	 */
+	function dirlist( $path, $include_hidden = true, $recursive = false ) {
+		return false;
+	}
 }
Index: src/wp-admin/includes/class-wp-filesystem-direct.php
===================================================================
--- src/wp-admin/includes/class-wp-filesystem-direct.php	(revision 25302)
+++ src/wp-admin/includes/class-wp-filesystem-direct.php	(working copy)
@@ -15,7 +15,7 @@
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_Direct extends WP_Filesystem_Base {
-	var $errors = null;
+
 	/**
 	 * constructor
 	 *
@@ -26,14 +26,6 @@
 		$this->errors = new WP_Error();
 	}
 	/**
-	 * connect filesystem.
-	 *
-	 * @return bool Returns true on success or false on failure (always true for WP_Filesystem_Direct).
-	 */
-	function connect() {
-		return true;
-	}
-	/**
 	 * Reads entire file into a string
 	 *
 	 * @param string $file Name of the file to read.
@@ -161,7 +153,7 @@
 	 * Gets file owner
 	 *
 	 * @param string $file Path to the file.
-	 * @return string Username of the user.
+	 * @return string|bool Username of the user or false on error.
 	 */
 	function owner($file) {
 		$owneruid = @fileowner($file);
Index: src/wp-admin/includes/class-wp-filesystem-ftpext.php
===================================================================
--- src/wp-admin/includes/class-wp-filesystem-ftpext.php	(revision 25302)
+++ src/wp-admin/includes/class-wp-filesystem-ftpext.php	(working copy)
@@ -168,9 +168,6 @@
 			return (bool)@ftp_site($this->link, sprintf('CHMOD %o %s', $mode, $file));
 		return (bool)@ftp_chmod($this->link, $mode, $file);
 	}
-	function chown($file, $owner, $recursive = false ) {
-		return false;
-	}
 	function owner($file) {
 		$dir = $this->dirlist($file);
 		return $dir[$file]['owner'];
Index: src/wp-admin/includes/class-wp-filesystem-ftpsockets.php
===================================================================
--- src/wp-admin/includes/class-wp-filesystem-ftpsockets.php	(revision 25302)
+++ src/wp-admin/includes/class-wp-filesystem-ftpsockets.php	(working copy)
@@ -174,10 +174,6 @@
 		return $this->ftp->chmod($file, $mode);
 	}
 
-	function chown($file, $owner, $recursive = false ) {
-		return false;
-	}
-
 	function owner($file) {
 		$dir = $this->dirlist($file);
 		return $dir[$file]['owner'];
Index: src/wp-admin/includes/class-wp-filesystem-ssh2.php
===================================================================
--- src/wp-admin/includes/class-wp-filesystem-ssh2.php	(revision 25302)
+++ src/wp-admin/includes/class-wp-filesystem-ssh2.php	(working copy)
@@ -206,7 +206,17 @@
 		return $this->run_command(sprintf('chmod -R %o %s', $mode, escapeshellarg($file)), true);
 	}
 
-	function chown($file, $owner, $recursive = false ) {
+	/**
+	 * Change the ownership of a file / folder.
+	 *
+	 * @since Unknown
+	 *
+	 * @param string $file    Path to the file.
+	 * @param mixed  $owner   A user name or number.
+	 * @param bool $recursive (optional) If set True changes file owner recursivly. Defaults to False.
+	 * @return bool Returns true on success or false on failure.
+	 */
+	function chown( $file, $owner, $recursive = false ) {
 		if ( ! $this->exists($file) )
 			return false;
 		if ( ! $recursive || ! $this->is_dir($file) )
