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

Side by Side Diff: chrome/browser/extensions/active_tab_unittest.cc

Issue 315573003: Remove PermissionsData::ForExtension() completely (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 5 #include <string>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 bool IsAllowed(const scoped_refptr<const Extension>& extension, 100 bool IsAllowed(const scoped_refptr<const Extension>& extension,
101 const GURL& url, 101 const GURL& url,
102 PermittedFeature feature) { 102 PermittedFeature feature) {
103 return IsAllowed(extension, url, feature, tab_id()); 103 return IsAllowed(extension, url, feature, tab_id());
104 } 104 }
105 105
106 bool IsAllowed(const scoped_refptr<const Extension>& extension, 106 bool IsAllowed(const scoped_refptr<const Extension>& extension,
107 const GURL& url, 107 const GURL& url,
108 PermittedFeature feature, 108 PermittedFeature feature,
109 int tab_id) { 109 int tab_id) {
110 const PermissionsData* permissions_data = 110 const PermissionsData* permissions_data = extension->permissions_data();
111 PermissionsData::ForExtension(extension);
112 bool script = permissions_data->CanExecuteScriptOnPage( 111 bool script = permissions_data->CanExecuteScriptOnPage(
113 extension, url, url, tab_id, NULL, -1, NULL); 112 extension, url, url, tab_id, NULL, -1, NULL);
114 bool capture = HasTabsPermission(extension, tab_id) && 113 bool capture = HasTabsPermission(extension, tab_id) &&
115 permissions_data->CanCaptureVisiblePage(tab_id, NULL); 114 permissions_data->CanCaptureVisiblePage(tab_id, NULL);
116 switch (feature) { 115 switch (feature) {
117 case PERMITTED_SCRIPT_ONLY: 116 case PERMITTED_SCRIPT_ONLY:
118 return script && !capture; 117 return script && !capture;
119 case PERMITTED_CAPTURE_ONLY: 118 case PERMITTED_CAPTURE_ONLY:
120 return capture && !script; 119 return capture && !script;
121 case PERMITTED_BOTH: 120 case PERMITTED_BOTH:
(...skipping 15 matching lines...) Expand all
137 int tab_id) { 136 int tab_id) {
138 return IsAllowed(extension, url, PERMITTED_NONE, tab_id); 137 return IsAllowed(extension, url, PERMITTED_NONE, tab_id);
139 } 138 }
140 139
141 bool HasTabsPermission(const scoped_refptr<const Extension>& extension) { 140 bool HasTabsPermission(const scoped_refptr<const Extension>& extension) {
142 return HasTabsPermission(extension, tab_id()); 141 return HasTabsPermission(extension, tab_id());
143 } 142 }
144 143
145 bool HasTabsPermission(const scoped_refptr<const Extension>& extension, 144 bool HasTabsPermission(const scoped_refptr<const Extension>& extension,
146 int tab_id) { 145 int tab_id) {
147 return PermissionsData::ForExtension(extension) 146 return extension->permissions_data()->HasAPIPermissionForTab(
148 ->HasAPIPermissionForTab(tab_id, APIPermission::kTab); 147 tab_id, APIPermission::kTab);
149 } 148 }
150 149
151 bool IsGrantedForTab(const Extension* extension, 150 bool IsGrantedForTab(const Extension* extension,
152 const content::WebContents* web_contents) { 151 const content::WebContents* web_contents) {
153 return PermissionsData::ForExtension(extension)->HasAPIPermissionForTab( 152 return extension->permissions_data()->HasAPIPermissionForTab(
154 SessionID::IdForTab(web_contents), APIPermission::kTab); 153 SessionID::IdForTab(web_contents), APIPermission::kTab);
155 } 154 }
156 155
157 // TODO(justinlin): Remove when tabCapture is moved to stable. 156 // TODO(justinlin): Remove when tabCapture is moved to stable.
158 ScopedCurrentChannel current_channel; 157 ScopedCurrentChannel current_channel;
159 158
160 // An extension with the activeTab permission. 159 // An extension with the activeTab permission.
161 scoped_refptr<const Extension> extension; 160 scoped_refptr<const Extension> extension;
162 161
163 // Another extension with activeTab (for good measure). 162 // Another extension with activeTab (for good measure).
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 362
364 TEST_F(ActiveTabTest, ChromeUrlGrants) { 363 TEST_F(ActiveTabTest, ChromeUrlGrants) {
365 GURL internal("chrome://version"); 364 GURL internal("chrome://version");
366 NavigateAndCommit(internal); 365 NavigateAndCommit(internal);
367 active_tab_permission_granter()->GrantIfRequested( 366 active_tab_permission_granter()->GrantIfRequested(
368 extension_with_tab_capture.get()); 367 extension_with_tab_capture.get());
369 // Do not grant tabs/hosts permissions for tab. 368 // Do not grant tabs/hosts permissions for tab.
370 EXPECT_TRUE(IsAllowed(extension_with_tab_capture, internal, 369 EXPECT_TRUE(IsAllowed(extension_with_tab_capture, internal,
371 PERMITTED_CAPTURE_ONLY)); 370 PERMITTED_CAPTURE_ONLY));
372 const PermissionsData* permissions_data = 371 const PermissionsData* permissions_data =
373 PermissionsData::ForExtension(extension_with_tab_capture); 372 extension_with_tab_capture->permissions_data();
374 EXPECT_TRUE(permissions_data->HasAPIPermissionForTab( 373 EXPECT_TRUE(permissions_data->HasAPIPermissionForTab(
375 tab_id(), APIPermission::kTabCaptureForTab)); 374 tab_id(), APIPermission::kTabCaptureForTab));
376 375
377 EXPECT_TRUE(IsBlocked(extension_with_tab_capture, internal, tab_id() + 1)); 376 EXPECT_TRUE(IsBlocked(extension_with_tab_capture, internal, tab_id() + 1));
378 EXPECT_FALSE(permissions_data->HasAPIPermissionForTab( 377 EXPECT_FALSE(permissions_data->HasAPIPermissionForTab(
379 tab_id() + 1, APIPermission::kTabCaptureForTab)); 378 tab_id() + 1, APIPermission::kTabCaptureForTab));
380 } 379 }
381 380
382 } // namespace 381 } // namespace
383 } // namespace extensions 382 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698