summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_protocols.cc
diff options
context:
space:
mode:
authoryukishiino@chromium.org <yukishiino@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-17 16:09:23 +0000
committeryukishiino@chromium.org <yukishiino@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-17 16:09:23 +0000
commit7b7e0b30cd44d9d714032a6f4e51d3963951731e (patch)
tree3b05bac48deae075e0154ce14a986310546c7c25 /chrome/browser/extensions/extension_protocols.cc
parent64bd053812a43ec74755dfc1de4e2b4869a87360 (diff)
downloadchromium_src-7b7e0b30cd44d9d714032a6f4e51d3963951731e.zip
chromium_src-7b7e0b30cd44d9d714032a6f4e51d3963951731e.tar.gz
chromium_src-7b7e0b30cd44d9d714032a6f4e51d3963951731e.tar.bz2
Allows the guest session on CrOS to load extension resource.
The current implementation inhibits extensions to load resources if it's in incognito mode and the extension is not enabled for incognito mode. That's right in a regular (non-guest) session. However, the guest session is in incognito mode by default, and it doesn't have a regular (non-incognito) context. So we should allow resource loading if it's the guest session, otherwise there is no way for component extensions to load resources. Note component extensions are never listed in the extension list, so users cannot enable those extensions for incognito mode. BUG=339318 TEST=Manually done. TBR=davemoore@chromium.org Review URL: https://codereview.chromium.org/182493004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257437 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_protocols.cc')
-rw-r--r--chrome/browser/extensions/extension_protocols.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/chrome/browser/extensions/extension_protocols.cc b/chrome/browser/extensions/extension_protocols.cc
index 7d5735a..e3e9865 100644
--- a/chrome/browser/extensions/extension_protocols.cc
+++ b/chrome/browser/extensions/extension_protocols.cc
@@ -364,7 +364,7 @@ bool ExtensionCanLoadInIncognito(const ResourceRequestInfo* info,
// TODO(aa): This should be moved into ExtensionResourceRequestPolicy, but we
// first need to find a way to get CanLoadInIncognito state into the renderers.
bool AllowExtensionResourceLoad(net::URLRequest* request,
- bool is_incognito,
+ Profile::ProfileType profile_type,
const Extension* extension,
extensions::InfoMap* extension_info_map) {
const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
@@ -377,8 +377,9 @@ bool AllowExtensionResourceLoad(net::URLRequest* request,
return true;
}
- if (is_incognito && !ExtensionCanLoadInIncognito(info, request->url().host(),
- extension_info_map)) {
+ if (profile_type == Profile::INCOGNITO_PROFILE &&
+ !ExtensionCanLoadInIncognito(info, request->url().host(),
+ extension_info_map)) {
return false;
}
@@ -486,9 +487,9 @@ bool URLIsForExtensionIcon(const GURL& url, const Extension* extension) {
class ExtensionProtocolHandler
: public net::URLRequestJobFactory::ProtocolHandler {
public:
- ExtensionProtocolHandler(bool is_incognito,
+ ExtensionProtocolHandler(Profile::ProfileType profile_type,
extensions::InfoMap* extension_info_map)
- : is_incognito_(is_incognito), extension_info_map_(extension_info_map) {}
+ : profile_type_(profile_type), extension_info_map_(extension_info_map) {}
virtual ~ExtensionProtocolHandler() {}
@@ -497,7 +498,7 @@ class ExtensionProtocolHandler
net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
- const bool is_incognito_;
+ const Profile::ProfileType profile_type_;
extensions::InfoMap* const extension_info_map_;
DISALLOW_COPY_AND_ASSIGN(ExtensionProtocolHandler);
};
@@ -513,7 +514,7 @@ ExtensionProtocolHandler::MaybeCreateJob(
// TODO(mpcomplete): better error code.
if (!AllowExtensionResourceLoad(
- request, is_incognito_, extension, extension_info_map_)) {
+ request, profile_type_, extension, extension_info_map_)) {
return new net::URLRequestErrorJob(
request, network_delegate, net::ERR_ADDRESS_UNREACHABLE);
}
@@ -638,7 +639,7 @@ ExtensionProtocolHandler::MaybeCreateJob(
} // namespace
net::URLRequestJobFactory::ProtocolHandler* CreateExtensionProtocolHandler(
- bool is_incognito,
+ Profile::ProfileType profile_type,
extensions::InfoMap* extension_info_map) {
- return new ExtensionProtocolHandler(is_incognito, extension_info_map);
+ return new ExtensionProtocolHandler(profile_type, extension_info_map);
}