| Index: webkit/browser/fileapi/file_system_dir_url_request_job.cc
|
| diff --git a/webkit/browser/fileapi/file_system_dir_url_request_job.cc b/webkit/browser/fileapi/file_system_dir_url_request_job.cc
|
| deleted file mode 100644
|
| index acedbcede2443f1d2f7af9825f8c5fa055439f59..0000000000000000000000000000000000000000
|
| --- a/webkit/browser/fileapi/file_system_dir_url_request_job.cc
|
| +++ /dev/null
|
| @@ -1,160 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "webkit/browser/fileapi/file_system_dir_url_request_job.h"
|
| -
|
| -#include <algorithm>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/strings/sys_string_conversions.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "base/time/time.h"
|
| -#include "build/build_config.h"
|
| -#include "net/base/io_buffer.h"
|
| -#include "net/base/net_errors.h"
|
| -#include "net/base/net_util.h"
|
| -#include "net/url_request/url_request.h"
|
| -#include "url/gurl.h"
|
| -#include "webkit/browser/fileapi/file_system_context.h"
|
| -#include "webkit/browser/fileapi/file_system_operation_runner.h"
|
| -#include "webkit/browser/fileapi/file_system_url.h"
|
| -#include "webkit/common/fileapi/directory_entry.h"
|
| -#include "webkit/common/fileapi/file_system_util.h"
|
| -
|
| -using net::NetworkDelegate;
|
| -using net::URLRequest;
|
| -using net::URLRequestJob;
|
| -using net::URLRequestStatus;
|
| -
|
| -namespace storage {
|
| -
|
| -FileSystemDirURLRequestJob::FileSystemDirURLRequestJob(
|
| - URLRequest* request,
|
| - NetworkDelegate* network_delegate,
|
| - const std::string& storage_domain,
|
| - FileSystemContext* file_system_context)
|
| - : URLRequestJob(request, network_delegate),
|
| - storage_domain_(storage_domain),
|
| - file_system_context_(file_system_context),
|
| - weak_factory_(this) {
|
| -}
|
| -
|
| -FileSystemDirURLRequestJob::~FileSystemDirURLRequestJob() {
|
| -}
|
| -
|
| -bool FileSystemDirURLRequestJob::ReadRawData(net::IOBuffer* dest, int dest_size,
|
| - int *bytes_read) {
|
| - int count = std::min(dest_size, static_cast<int>(data_.size()));
|
| - if (count > 0) {
|
| - memcpy(dest->data(), data_.data(), count);
|
| - data_.erase(0, count);
|
| - }
|
| - *bytes_read = count;
|
| - return true;
|
| -}
|
| -
|
| -void FileSystemDirURLRequestJob::Start() {
|
| - base::MessageLoop::current()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&FileSystemDirURLRequestJob::StartAsync,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void FileSystemDirURLRequestJob::Kill() {
|
| - URLRequestJob::Kill();
|
| - weak_factory_.InvalidateWeakPtrs();
|
| -}
|
| -
|
| -bool FileSystemDirURLRequestJob::GetMimeType(std::string* mime_type) const {
|
| - *mime_type = "text/html";
|
| - return true;
|
| -}
|
| -
|
| -bool FileSystemDirURLRequestJob::GetCharset(std::string* charset) {
|
| - *charset = "utf-8";
|
| - return true;
|
| -}
|
| -
|
| -void FileSystemDirURLRequestJob::StartAsync() {
|
| - if (!request_)
|
| - return;
|
| - url_ = file_system_context_->CrackURL(request_->url());
|
| - if (!url_.is_valid()) {
|
| - file_system_context_->AttemptAutoMountForURLRequest(
|
| - request_,
|
| - storage_domain_,
|
| - base::Bind(&FileSystemDirURLRequestJob::DidAttemptAutoMount,
|
| - weak_factory_.GetWeakPtr()));
|
| - return;
|
| - }
|
| - if (!file_system_context_->CanServeURLRequest(url_)) {
|
| - // In incognito mode the API is not usable and there should be no data.
|
| - if (url_.is_valid() && VirtualPath::IsRootPath(url_.virtual_path())) {
|
| - // Return an empty directory if the filesystem root is queried.
|
| - DidReadDirectory(base::File::FILE_OK,
|
| - std::vector<DirectoryEntry>(),
|
| - false);
|
| - return;
|
| - }
|
| - NotifyDone(URLRequestStatus(URLRequestStatus::FAILED,
|
| - net::ERR_FILE_NOT_FOUND));
|
| - return;
|
| - }
|
| - file_system_context_->operation_runner()->ReadDirectory(
|
| - url_,
|
| - base::Bind(&FileSystemDirURLRequestJob::DidReadDirectory, this));
|
| -}
|
| -
|
| -void FileSystemDirURLRequestJob::DidAttemptAutoMount(base::File::Error result) {
|
| - if (result >= 0 &&
|
| - file_system_context_->CrackURL(request_->url()).is_valid()) {
|
| - StartAsync();
|
| - } else {
|
| - NotifyDone(URLRequestStatus(URLRequestStatus::FAILED,
|
| - net::ERR_FILE_NOT_FOUND));
|
| - }
|
| -}
|
| -
|
| -void FileSystemDirURLRequestJob::DidReadDirectory(
|
| - base::File::Error result,
|
| - const std::vector<DirectoryEntry>& entries,
|
| - bool has_more) {
|
| - if (result != base::File::FILE_OK) {
|
| - int rv = net::ERR_FILE_NOT_FOUND;
|
| - if (result == base::File::FILE_ERROR_INVALID_URL)
|
| - rv = net::ERR_INVALID_URL;
|
| - NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, rv));
|
| - return;
|
| - }
|
| -
|
| - if (!request_)
|
| - return;
|
| -
|
| - if (data_.empty()) {
|
| - base::FilePath relative_path = url_.path();
|
| -#if defined(OS_POSIX)
|
| - relative_path =
|
| - base::FilePath(FILE_PATH_LITERAL("/") + relative_path.value());
|
| -#endif
|
| - const base::string16& title = relative_path.LossyDisplayName();
|
| - data_.append(net::GetDirectoryListingHeader(title));
|
| - }
|
| -
|
| - typedef std::vector<DirectoryEntry>::const_iterator EntryIterator;
|
| - for (EntryIterator it = entries.begin(); it != entries.end(); ++it) {
|
| - const base::string16& name = base::FilePath(it->name).LossyDisplayName();
|
| - data_.append(net::GetDirectoryListingEntry(
|
| - name, std::string(), it->is_directory, it->size,
|
| - it->last_modified_time));
|
| - }
|
| -
|
| - if (!has_more) {
|
| - set_expected_content_size(data_.size());
|
| - NotifyHeadersComplete();
|
| - }
|
| -}
|
| -
|
| -} // namespace storage
|
|
|