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 #ifndef EXTENSIONS_BROWSER_URL_REQUEST_UTIL_H_ | 5 #ifndef EXTENSIONS_BROWSER_URL_REQUEST_UTIL_H_ |
6 #define EXTENSIONS_BROWSER_URL_REQUEST_UTIL_H_ | 6 #define EXTENSIONS_BROWSER_URL_REQUEST_UTIL_H_ |
7 | 7 |
| 8 #include <string> |
| 9 |
| 10 #include "ui/base/page_transition_types.h" |
| 11 |
8 namespace net { | 12 namespace net { |
9 class URLRequest; | 13 class URLRequest; |
10 } | 14 } |
11 | 15 |
12 namespace extensions { | 16 namespace extensions { |
13 class Extension; | 17 class Extension; |
14 class InfoMap; | 18 class InfoMap; |
15 | 19 |
16 // Utilities related to URLRequest jobs for extension resources. See | 20 // Utilities related to URLRequest jobs for extension resources. See |
17 // chrome/browser/extensions/extension_protocols_unittest.cc for related tests. | 21 // chrome/browser/extensions/extension_protocols_unittest.cc for related tests. |
18 namespace url_request_util { | 22 namespace url_request_util { |
19 | 23 |
20 // Sets allowed=true to allow a chrome-extension:// resource request coming from | 24 // Sets allowed=true to allow a chrome-extension:// resource request coming from |
21 // renderer A to access a resource in an extension running in renderer B. | 25 // renderer A to access a resource in an extension running in renderer B. |
22 // Returns false when it couldn't determine if the resource is allowed or not | 26 // Returns false when it couldn't determine if the resource is allowed or not |
23 bool AllowCrossRendererResourceLoad(net::URLRequest* request, | 27 bool AllowCrossRendererResourceLoad(net::URLRequest* request, |
24 bool is_incognito, | 28 bool is_incognito, |
25 const Extension* extension, | 29 const Extension* extension, |
26 InfoMap* extension_info_map, | 30 InfoMap* extension_info_map, |
27 bool* allowed); | 31 bool* allowed); |
28 | 32 |
29 // Returns true if |request| corresponds to a resource request from a | 33 // Returns true if |request| corresponds to a resource request from a |
30 // <webview>. | 34 // <webview>. |
31 bool IsWebViewRequest(const net::URLRequest* request); | 35 bool IsWebViewRequest(const net::URLRequest* request); |
32 | 36 |
| 37 // Helper method that is called by both AllowCrossRendererResourceLoad and |
| 38 // ExtensionNavigationThrottle to share logic. |
| 39 // Sets allowed=true to allow a chrome-extension:// resource request coming from |
| 40 // renderer A to access a resource in an extension running in renderer B. |
| 41 // Returns false when it couldn't determine if the resource is allowed or not |
| 42 bool AllowCrossRendererResourceLoad(bool is_guest, |
| 43 const Extension* extension, |
| 44 const Extension* owner_extension, |
| 45 const std::string& partition_id, |
| 46 const std::string& resource_path, |
| 47 ui::PageTransition page_transition, |
| 48 bool* allowed); |
| 49 |
33 } // namespace url_request_util | 50 } // namespace url_request_util |
34 } // namespace extensions | 51 } // namespace extensions |
35 | 52 |
36 #endif // EXTENSIONS_BROWSER_URL_REQUEST_UTIL_H_ | 53 #endif // EXTENSIONS_BROWSER_URL_REQUEST_UTIL_H_ |
OLD | NEW |