Chromium Code Reviews| Index: extensions/browser/api/web_request/web_request_api.cc |
| diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc |
| index 829ebb512eb72d044537eb4afa30a5f800fcf704..5788b37c432242b0fefe6b4805398677404bfaea 100644 |
| --- a/extensions/browser/api/web_request/web_request_api.cc |
| +++ b/extensions/browser/api/web_request/web_request_api.cc |
| @@ -22,6 +22,7 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/time/time.h" |
| #include "base/values.h" |
| +#include "chromeos/login/login_state.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/resource_request_info.h" |
| #include "content/public/browser/user_metrics.h" |
| @@ -338,6 +339,16 @@ bool ShouldHideEvent(void* browser_context, |
| navigation_ui_data)); |
| } |
| +// Returns true if we're in a Public Session. |
| +bool IsPublicSession() { |
| +#if defined(OS_CHROMEOS) |
| + if (chromeos::LoginState::IsInitialized()) { |
| + return chromeos::LoginState::Get()->IsPublicSessionUser(); |
| + } |
| +#endif |
| + return false; |
| +} |
| + |
| } // namespace |
| WebRequestAPI::WebRequestAPI(content::BrowserContext* context) |
| @@ -1440,6 +1451,7 @@ void ExtensionWebRequestEventRouter::GetMatchingListenersImpl( |
| extension_info_map, listener->id.extension_id, url, |
| frame_data.tab_id, crosses_incognito, |
| WebRequestPermissions::REQUIRE_HOST_PERMISSION); |
|
Andrew T Wilson (Slow)
2016/11/09 08:36:00
Remove blank line
Ivan Šandrk
2016/11/09 12:12:13
Done.
|
| + |
| if (access != PermissionsData::ACCESS_ALLOWED) { |
| if (access == PermissionsData::ACCESS_WITHHELD && |
| web_request_event_router_delegate_) { |
| @@ -2127,7 +2139,10 @@ WebRequestInternalAddEventListenerFunction::Run() { |
| // http://www.example.com/bar/*. |
| // For this reason we do only a coarse check here to warn the extension |
| // developer if they do something obviously wrong. |
| - if (extension->permissions_data() |
| + // When we are in a Public Session, allow all URL's for webRequests |
| + // initiated by a regular extension. |
| + if (!(IsPublicSession() && extension->is_extension()) && |
| + extension->permissions_data() |
| ->GetEffectiveHostPermissions() |
| .is_empty() && |
| extension->permissions_data() |