| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extension_protocols.h" | 5 #include "chrome/browser/extensions/extension_protocols.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 13 #include "base/message_loop.h" | 13 #include "base/message_loop.h" |
| 14 #include "base/path_service.h" | 14 #include "base/path_service.h" |
| 15 #include "base/string_util.h" | 15 #include "base/string_util.h" |
| 16 #include "base/stringprintf.h" | 16 #include "base/stringprintf.h" |
| 17 #include "base/threading/thread_restrictions.h" | 17 #include "base/threading/thread_restrictions.h" |
| 18 #include "base/threading/worker_pool.h" | 18 #include "base/threading/worker_pool.h" |
| 19 #include "build/build_config.h" | 19 #include "build/build_config.h" |
| 20 #include "chrome/browser/extensions/extension_info_map.h" | 20 #include "chrome/browser/extensions/extension_info_map.h" |
| 21 #include "chrome/browser/extensions/image_loader.h" | 21 #include "chrome/browser/extensions/image_loader.h" |
| 22 #include "chrome/common/chrome_paths.h" | 22 #include "chrome/common/chrome_paths.h" |
| 23 #include "chrome/common/extensions/api/icons/icons_handler.h" | 23 #include "chrome/common/extensions/api/icons/icons_handler.h" |
| 24 #include "chrome/common/extensions/background_info.h" | 24 #include "chrome/common/extensions/background_info.h" |
| 25 #include "chrome/common/extensions/csp_handler.h" |
| 25 #include "chrome/common/extensions/extension.h" | 26 #include "chrome/common/extensions/extension.h" |
| 26 #include "chrome/common/extensions/extension_file_util.h" | 27 #include "chrome/common/extensions/extension_file_util.h" |
| 27 #include "chrome/common/extensions/incognito_handler.h" | 28 #include "chrome/common/extensions/incognito_handler.h" |
| 28 #include "chrome/common/extensions/web_accessible_resources_handler.h" | 29 #include "chrome/common/extensions/web_accessible_resources_handler.h" |
| 29 #include "chrome/common/url_constants.h" | 30 #include "chrome/common/url_constants.h" |
| 30 #include "content/public/browser/resource_request_info.h" | 31 #include "content/public/browser/resource_request_info.h" |
| 31 #include "extensions/common/constants.h" | 32 #include "extensions/common/constants.h" |
| 32 #include "extensions/common/extension_resource.h" | 33 #include "extensions/common/extension_resource.h" |
| 33 #include "googleurl/src/url_util.h" | 34 #include "googleurl/src/url_util.h" |
| 34 #include "grit/component_extension_resources_map.h" | 35 #include "grit/component_extension_resources_map.h" |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 LOG(WARNING) << "Failed to GetPathForExtension: " << extension_id; | 350 LOG(WARNING) << "Failed to GetPathForExtension: " << extension_id; |
| 350 return NULL; | 351 return NULL; |
| 351 } | 352 } |
| 352 } | 353 } |
| 353 | 354 |
| 354 std::string content_security_policy; | 355 std::string content_security_policy; |
| 355 bool send_cors_header = false; | 356 bool send_cors_header = false; |
| 356 if (extension) { | 357 if (extension) { |
| 357 std::string resource_path = request->url().path(); | 358 std::string resource_path = request->url().path(); |
| 358 content_security_policy = | 359 content_security_policy = |
| 359 extension->GetResourceContentSecurityPolicy(resource_path); | 360 extensions::CSPInfo::GetResourceContentSecurityPolicy(extension, |
| 361 resource_path); |
| 360 if ((extension->manifest_version() >= 2 || | 362 if ((extension->manifest_version() >= 2 || |
| 361 extensions::WebAccessibleResourcesInfo::HasWebAccessibleResources( | 363 extensions::WebAccessibleResourcesInfo::HasWebAccessibleResources( |
| 362 extension)) && | 364 extension)) && |
| 363 extensions::WebAccessibleResourcesInfo::IsResourceWebAccessible( | 365 extensions::WebAccessibleResourcesInfo::IsResourceWebAccessible( |
| 364 extension, resource_path)) | 366 extension, resource_path)) |
| 365 send_cors_header = true; | 367 send_cors_header = true; |
| 366 } | 368 } |
| 367 | 369 |
| 368 std::string path = request->url().path(); | 370 std::string path = request->url().path(); |
| 369 if (path.size() > 1 && | 371 if (path.size() > 1 && |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 send_cors_header); | 409 send_cors_header); |
| 408 } | 410 } |
| 409 | 411 |
| 410 } // namespace | 412 } // namespace |
| 411 | 413 |
| 412 net::URLRequestJobFactory::ProtocolHandler* CreateExtensionProtocolHandler( | 414 net::URLRequestJobFactory::ProtocolHandler* CreateExtensionProtocolHandler( |
| 413 bool is_incognito, | 415 bool is_incognito, |
| 414 ExtensionInfoMap* extension_info_map) { | 416 ExtensionInfoMap* extension_info_map) { |
| 415 return new ExtensionProtocolHandler(is_incognito, extension_info_map); | 417 return new ExtensionProtocolHandler(is_incognito, extension_info_map); |
| 416 } | 418 } |
| OLD | NEW |