| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "extensions/renderer/extension_injection_host.h" | 5 #include "extensions/renderer/extension_injection_host.h" | 
| 6 | 6 | 
| 7 #include "content/public/renderer/render_frame.h" | 7 #include "content/public/renderer/render_frame.h" | 
| 8 #include "extensions/common/constants.h" | 8 #include "extensions/common/constants.h" | 
| 9 #include "extensions/common/manifest_handlers/csp_info.h" | 9 #include "extensions/common/manifest_handlers/csp_info.h" | 
| 10 #include "extensions/renderer/renderer_extension_registry.h" | 10 #include "extensions/renderer/renderer_extension_registry.h" | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 44 const std::string& ExtensionInjectionHost::name() const { | 44 const std::string& ExtensionInjectionHost::name() const { | 
| 45   return extension_->name(); | 45   return extension_->name(); | 
| 46 } | 46 } | 
| 47 | 47 | 
| 48 PermissionsData::AccessType ExtensionInjectionHost::CanExecuteOnFrame( | 48 PermissionsData::AccessType ExtensionInjectionHost::CanExecuteOnFrame( | 
| 49     const GURL& document_url, | 49     const GURL& document_url, | 
| 50     content::RenderFrame* render_frame, | 50     content::RenderFrame* render_frame, | 
| 51     int tab_id, | 51     int tab_id, | 
| 52     bool is_declarative) const { | 52     bool is_declarative) const { | 
| 53   blink::WebSecurityOrigin top_frame_security_origin = | 53   blink::WebSecurityOrigin top_frame_security_origin = | 
| 54       render_frame->GetWebFrame()->top()->securityOrigin(); | 54       render_frame->GetWebFrame()->top()->getSecurityOrigin(); | 
| 55   // Only whitelisted extensions may run scripts on another extension's page. | 55   // Only whitelisted extensions may run scripts on another extension's page. | 
| 56   if (top_frame_security_origin.protocol().utf8() == kExtensionScheme && | 56   if (top_frame_security_origin.protocol().utf8() == kExtensionScheme && | 
| 57       top_frame_security_origin.host().utf8() != extension_->id() && | 57       top_frame_security_origin.host().utf8() != extension_->id() && | 
| 58       !PermissionsData::CanExecuteScriptEverywhere(extension_)) | 58       !PermissionsData::CanExecuteScriptEverywhere(extension_)) | 
| 59     return PermissionsData::ACCESS_DENIED; | 59     return PermissionsData::ACCESS_DENIED; | 
| 60 | 60 | 
| 61   // Declarative user scripts use "page access" (from "permissions" section in | 61   // Declarative user scripts use "page access" (from "permissions" section in | 
| 62   // manifest) whereas non-declarative user scripts use custom | 62   // manifest) whereas non-declarative user scripts use custom | 
| 63   // "content script access" logic. | 63   // "content script access" logic. | 
| 64   PermissionsData::AccessType access = PermissionsData::ACCESS_ALLOWED; | 64   PermissionsData::AccessType access = PermissionsData::ACCESS_ALLOWED; | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 79       (tab_id == -1 || render_frame->GetWebFrame()->parent())) { | 79       (tab_id == -1 || render_frame->GetWebFrame()->parent())) { | 
| 80     // Note: we don't consider ACCESS_WITHHELD for child frames or for frames | 80     // Note: we don't consider ACCESS_WITHHELD for child frames or for frames | 
| 81     // outside of tabs because there is nowhere to surface a request. | 81     // outside of tabs because there is nowhere to surface a request. | 
| 82     // TODO(devlin): We should ask for permission somehow. crbug.com/491402. | 82     // TODO(devlin): We should ask for permission somehow. crbug.com/491402. | 
| 83     access = PermissionsData::ACCESS_DENIED; | 83     access = PermissionsData::ACCESS_DENIED; | 
| 84   } | 84   } | 
| 85   return access; | 85   return access; | 
| 86 } | 86 } | 
| 87 | 87 | 
| 88 }  // namespace extensions | 88 }  // namespace extensions | 
| OLD | NEW | 
|---|