| Index: webkit/browser/blob/blob_url_request_job_factory.cc
|
| diff --git a/webkit/browser/blob/blob_url_request_job_factory.cc b/webkit/browser/blob/blob_url_request_job_factory.cc
|
| deleted file mode 100644
|
| index d95f1503b28988d72243e95877e18b912607500b..0000000000000000000000000000000000000000
|
| --- a/webkit/browser/blob/blob_url_request_job_factory.cc
|
| +++ /dev/null
|
| @@ -1,90 +0,0 @@
|
| -// Copyright (c) 2011 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/blob/blob_url_request_job_factory.h"
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/message_loop/message_loop_proxy.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "net/base/request_priority.h"
|
| -#include "net/url_request/url_request_context.h"
|
| -#include "net/url_request/url_request_job_factory.h"
|
| -#include "webkit/browser/blob/blob_data_handle.h"
|
| -#include "webkit/browser/blob/blob_storage_context.h"
|
| -#include "webkit/browser/blob/blob_url_request_job.h"
|
| -#include "webkit/browser/fileapi/file_system_context.h"
|
| -
|
| -namespace storage {
|
| -
|
| -namespace {
|
| -
|
| -int kUserDataKey; // The value is not important, the addr is a key.
|
| -
|
| -BlobDataHandle* GetRequestedBlobDataHandle(net::URLRequest* request) {
|
| - return static_cast<BlobDataHandle*>(request->GetUserData(&kUserDataKey));
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// static
|
| -scoped_ptr<net::URLRequest> BlobProtocolHandler::CreateBlobRequest(
|
| - scoped_ptr<BlobDataHandle> blob_data_handle,
|
| - const net::URLRequestContext* request_context,
|
| - net::URLRequest::Delegate* request_delegate) {
|
| - const GURL kBlobUrl("blob://see_user_data/");
|
| - scoped_ptr<net::URLRequest> request = request_context->CreateRequest(
|
| - kBlobUrl, net::DEFAULT_PRIORITY, request_delegate, NULL);
|
| - SetRequestedBlobDataHandle(request.get(), blob_data_handle.Pass());
|
| - return request.Pass();
|
| -}
|
| -
|
| -// static
|
| -void BlobProtocolHandler::SetRequestedBlobDataHandle(
|
| - net::URLRequest* request,
|
| - scoped_ptr<BlobDataHandle> blob_data_handle) {
|
| - request->SetUserData(&kUserDataKey, blob_data_handle.release());
|
| -}
|
| -
|
| -BlobProtocolHandler::BlobProtocolHandler(
|
| - BlobStorageContext* context,
|
| - storage::FileSystemContext* file_system_context,
|
| - const scoped_refptr<base::MessageLoopProxy>& loop_proxy)
|
| - : file_system_context_(file_system_context), file_loop_proxy_(loop_proxy) {
|
| - if (context)
|
| - context_ = context->AsWeakPtr();
|
| -}
|
| -
|
| -BlobProtocolHandler::~BlobProtocolHandler() {
|
| -}
|
| -
|
| -net::URLRequestJob* BlobProtocolHandler::MaybeCreateJob(
|
| - net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
|
| - return new storage::BlobURLRequestJob(request,
|
| - network_delegate,
|
| - LookupBlobData(request),
|
| - file_system_context_.get(),
|
| - file_loop_proxy_.get());
|
| -}
|
| -
|
| -scoped_refptr<storage::BlobData> BlobProtocolHandler::LookupBlobData(
|
| - net::URLRequest* request) const {
|
| - BlobDataHandle* blob_data_handle = GetRequestedBlobDataHandle(request);
|
| - if (blob_data_handle)
|
| - return blob_data_handle->data();
|
| - if (!context_.get())
|
| - return NULL;
|
| -
|
| - // Support looking up based on uuid, the FeedbackExtensionAPI relies on this.
|
| - // TODO(michaeln): Replace this use case and others like it with a BlobReader
|
| - // impl that does not depend on urlfetching to perform this function.
|
| - const std::string kPrefix("blob:uuid/");
|
| - if (!StartsWithASCII(request->url().spec(), kPrefix, true))
|
| - return NULL;
|
| - std::string uuid = request->url().spec().substr(kPrefix.length());
|
| - scoped_ptr<BlobDataHandle> handle = context_->GetBlobDataFromUUID(uuid);
|
| - return handle.get() ? handle->data() : NULL;
|
| -}
|
| -
|
| -} // namespace storage
|
|
|