Chromium Code Reviews| Index: chrome/browser/extensions/extension_resource_protocols.cc |
| diff --git a/chrome/browser/extensions/extension_resource_protocols.cc b/chrome/browser/extensions/extension_resource_protocols.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8831ba2edf79968c0e61c6f4637d059eb97ffa07 |
| --- /dev/null |
| +++ b/chrome/browser/extensions/extension_resource_protocols.cc |
| @@ -0,0 +1,51 @@ |
| +// 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 "chrome/browser/extensions/extension_resource_protocols.h" |
| + |
| +#include "base/file_path.h" |
| +#include "base/path_service.h" |
| +#include "chrome/common/chrome_paths.h" |
| +#include "chrome/common/extensions/extension_file_util.h" |
| +#include "net/url_request/url_request_file_job.h" |
| + |
| +namespace { |
| + |
| +class ExtensionResourceProtocolHandler |
| + : public net::URLRequestJobFactory::ProtocolHandler { |
| + public: |
| + ExtensionResourceProtocolHandler() {} |
| + virtual ~ExtensionResourceProtocolHandler() {} |
| + |
| + virtual net::URLRequestJob* MaybeCreateJob( |
| + net::URLRequest* request) const OVERRIDE; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(ExtensionResourceProtocolHandler); |
| +}; |
| + |
| +class ExtensionResourcesJob : public net::URLRequestFileJob { |
| +}; |
| + |
| +// Creates URLRequestJobs for chrome-extension-resource:// URLs. |
| +net::URLRequestJob* |
| +ExtensionResourceProtocolHandler::MaybeCreateJob( |
| + net::URLRequest* request) const { |
| + FilePath root_path; |
| + PathService::Get(chrome::DIR_RESOURCES_EXTENSION, &root_path); |
| + FilePath path; |
| + { |
| + base::ThreadRestrictions::ScopedAllowIO allow_io; |
|
Elliot Glaysher
2012/05/17 19:23:41
The presubmit check is doing its job by complainin
Peng
2012/05/17 19:26:11
I can not find a easy way to fix it. :( Do you hav
|
| + path = extension_file_util::ExtensionResourceURLToFilePath( |
| + request->url(), root_path); |
| + } |
| + return new net::URLRequestFileJob(request, path); |
| +} |
| + |
| +} // namespace |
| + |
| +net::URLRequestJobFactory::ProtocolHandler* |
| +CreateExtensionResourceProtocolHandler() { |
| + return new ExtensionResourceProtocolHandler(); |
| +} |