| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chrome_url_request_util.h" | 5 #include "chrome/browser/extensions/chrome_url_request_util.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 124 |
| 125 mutable base::WeakPtrFactory<URLRequestResourceBundleJob> weak_factory_; | 125 mutable base::WeakPtrFactory<URLRequestResourceBundleJob> weak_factory_; |
| 126 }; | 126 }; |
| 127 | 127 |
| 128 } // namespace | 128 } // namespace |
| 129 | 129 |
| 130 namespace extensions { | 130 namespace extensions { |
| 131 namespace chrome_url_request_util { | 131 namespace chrome_url_request_util { |
| 132 | 132 |
| 133 bool AllowCrossRendererResourceLoad(net::URLRequest* request, | 133 bool AllowCrossRendererResourceLoad(net::URLRequest* request, |
| 134 bool is_incognito, | 134 bool is_incognito, |
| 135 const Extension* extension, | 135 const Extension* extension, |
| 136 InfoMap* extension_info_map, | 136 InfoMap* extension_info_map, |
| 137 bool* allowed) { | 137 bool* allowed) { |
| 138 if (url_request_util::AllowCrossRendererResourceLoad( | 138 if (url_request_util::AllowCrossRendererResourceLoad( |
| 139 request, is_incognito, extension, extension_info_map, allowed)) { | 139 request, is_incognito, extension, extension_info_map, allowed)) { |
| 140 return true; | 140 return true; |
| 141 } | 141 } |
| 142 | 142 |
| 143 // If there aren't any explicitly marked web accessible resources, the | 143 // If there aren't any explicitly marked web accessible resources, the |
| 144 // load should be allowed only if it is by DevTools. A close approximation is | 144 // load should be allowed only if it is by DevTools. A close approximation is |
| 145 // checking if the extension contains a DevTools page. | 145 // checking if the extension contains a DevTools page. |
| 146 if (!ManifestURL::GetDevToolsPage(extension).is_empty()) { | 146 if (!ManifestURL::GetDevToolsPage(extension).is_empty()) { |
| 147 *allowed = true; | 147 *allowed = true; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 164 // directory_path is a descendant of resources_path. resources_path | 164 // directory_path is a descendant of resources_path. resources_path |
| 165 // corresponds to src/chrome/browser/resources in source tree. | 165 // corresponds to src/chrome/browser/resources in source tree. |
| 166 if (PathService::Get(chrome::DIR_RESOURCES, &resources_path) && | 166 if (PathService::Get(chrome::DIR_RESOURCES, &resources_path) && |
| 167 // Since component extension resources are included in | 167 // Since component extension resources are included in |
| 168 // component_extension_resources.pak file in resources_path, calculate | 168 // component_extension_resources.pak file in resources_path, calculate |
| 169 // extension relative path against resources_path. | 169 // extension relative path against resources_path. |
| 170 resources_path.AppendRelativePath(directory_path, &relative_path)) { | 170 resources_path.AppendRelativePath(directory_path, &relative_path)) { |
| 171 base::FilePath request_path = | 171 base::FilePath request_path = |
| 172 extensions::file_util::ExtensionURLToRelativeFilePath(request->url()); | 172 extensions::file_util::ExtensionURLToRelativeFilePath(request->url()); |
| 173 int resource_id = 0; | 173 int resource_id = 0; |
| 174 if (ExtensionsBrowserClient::Get()->GetComponentExtensionResourceManager()-> | 174 if (ExtensionsBrowserClient::Get() |
| 175 IsComponentExtensionResource( | 175 ->GetComponentExtensionResourceManager() |
| 176 directory_path, request_path, &resource_id)) { | 176 ->IsComponentExtensionResource( |
| 177 directory_path, request_path, &resource_id)) { |
| 177 relative_path = relative_path.Append(request_path); | 178 relative_path = relative_path.Append(request_path); |
| 178 relative_path = relative_path.NormalizePathSeparators(); | 179 relative_path = relative_path.NormalizePathSeparators(); |
| 179 return new URLRequestResourceBundleJob(request, | 180 return new URLRequestResourceBundleJob(request, |
| 180 network_delegate, | 181 network_delegate, |
| 181 relative_path, | 182 relative_path, |
| 182 resource_id, | 183 resource_id, |
| 183 content_security_policy, | 184 content_security_policy, |
| 184 send_cors_header); | 185 send_cors_header); |
| 185 } | 186 } |
| 186 } | 187 } |
| 187 return NULL; | 188 return NULL; |
| 188 } | 189 } |
| 189 | 190 |
| 190 } // namespace chrome_url_request_util | 191 } // namespace chrome_url_request_util |
| 191 } // namespace extensions | 192 } // namespace extensions |
| OLD | NEW |