Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: extensions/common/permissions/permissions_data.cc

Issue 1140173003: Allow whitelisted content scripts to be injected in WebViews. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@document_has_focus
Patch Set: Use PermissionsData to check whitelist Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/common/permissions/permissions_data.h" 5 #include "extensions/common/permissions/permissions_data.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "content/public/common/url_constants.h" 8 #include "content/public/common/url_constants.h"
9 #include "extensions/common/constants.h" 9 #include "extensions/common/constants.h"
10 #include "extensions/common/error_utils.h" 10 #include "extensions/common/error_utils.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 PermissionsData::~PermissionsData() { 43 PermissionsData::~PermissionsData() {
44 } 44 }
45 45
46 // static 46 // static
47 void PermissionsData::SetPolicyDelegate(PolicyDelegate* delegate) { 47 void PermissionsData::SetPolicyDelegate(PolicyDelegate* delegate) {
48 g_policy_delegate = delegate; 48 g_policy_delegate = delegate;
49 } 49 }
50 50
51 // static 51 // static
52 bool PermissionsData::IsExtensionIdWhitelisted(
53 const std::string& extension_id) {
54 const ExtensionsClient::ScriptingWhitelist& whitelist =
55 ExtensionsClient::Get()->GetScriptingWhitelist();
56
57 return std::find(whitelist.begin(), whitelist.end(), extension_id) !=
58 whitelist.end();
59 }
60
61 // static
52 bool PermissionsData::CanExecuteScriptEverywhere(const Extension* extension) { 62 bool PermissionsData::CanExecuteScriptEverywhere(const Extension* extension) {
53 if (extension->location() == Manifest::COMPONENT) 63 if (extension->location() == Manifest::COMPONENT)
54 return true; 64 return true;
55 65
56 const ExtensionsClient::ScriptingWhitelist& whitelist = 66 return IsExtensionIdWhitelisted(extension->id());
57 ExtensionsClient::Get()->GetScriptingWhitelist();
58
59 return std::find(whitelist.begin(), whitelist.end(), extension->id()) !=
60 whitelist.end();
61 } 67 }
62 68
63 // static 69 // static
64 bool PermissionsData::ScriptsMayRequireActionForExtension( 70 bool PermissionsData::ScriptsMayRequireActionForExtension(
65 const Extension* extension, 71 const Extension* extension,
66 const PermissionSet* permissions) { 72 const PermissionSet* permissions) {
67 // An extension may require user action to execute scripts iff the extension 73 // An extension may require user action to execute scripts iff the extension
68 // shows up in chrome:extensions (so the user can grant withheld permissions), 74 // shows up in chrome:extensions (so the user can grant withheld permissions),
69 // is not part of chrome or corporate policy, not on the scripting whitelist, 75 // is not part of chrome or corporate policy, not on the scripting whitelist,
70 // and requires enough permissions that we should withhold them. 76 // and requires enough permissions that we should withhold them.
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 return ACCESS_WITHHELD; 383 return ACCESS_WITHHELD;
378 384
379 if (error) { 385 if (error) {
380 *error = ErrorUtils::FormatErrorMessage(manifest_errors::kCannotAccessPage, 386 *error = ErrorUtils::FormatErrorMessage(manifest_errors::kCannotAccessPage,
381 document_url.spec()); 387 document_url.spec());
382 } 388 }
383 return ACCESS_DENIED; 389 return ACCESS_DENIED;
384 } 390 }
385 391
386 } // namespace extensions 392 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698