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

Side by Side Diff: extensions/common/permissions/permissions_data_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
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | extensions/renderer/dispatcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <vector> 5 #include <vector>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 28 matching lines...) Expand all
39 namespace { 39 namespace {
40 40
41 const char kAllHostsPermission[] = "*://*/*"; 41 const char kAllHostsPermission[] = "*://*/*";
42 42
43 bool CheckSocketPermission( 43 bool CheckSocketPermission(
44 scoped_refptr<Extension> extension, 44 scoped_refptr<Extension> extension,
45 SocketPermissionRequest::OperationType type, 45 SocketPermissionRequest::OperationType type,
46 const char* host, 46 const char* host,
47 int port) { 47 int port) {
48 SocketPermission::CheckParam param(type, host, port); 48 SocketPermission::CheckParam param(type, host, port);
49 return PermissionsData::ForExtension(extension) 49 return extension->permissions_data()->CheckAPIPermissionWithParam(
50 ->CheckAPIPermissionWithParam(APIPermission::kSocket, &param); 50 APIPermission::kSocket, &param);
51 } 51 }
52 52
53 // Creates and returns an extension with the given |id|, |host_permissions|, and 53 // Creates and returns an extension with the given |id|, |host_permissions|, and
54 // manifest |location|. 54 // manifest |location|.
55 scoped_refptr<const Extension> GetExtensionWithHostPermission( 55 scoped_refptr<const Extension> GetExtensionWithHostPermission(
56 const std::string& id, 56 const std::string& id,
57 const std::string& host_permissions, 57 const std::string& host_permissions,
58 Manifest::Location location) { 58 Manifest::Location location) {
59 ListBuilder permissions; 59 ListBuilder permissions;
60 if (!host_permissions.empty()) 60 if (!host_permissions.empty())
(...skipping 13 matching lines...) Expand all
74 .Build(); 74 .Build();
75 } 75 }
76 76
77 bool RequiresActionForScriptExecution(const std::string& extension_id, 77 bool RequiresActionForScriptExecution(const std::string& extension_id,
78 const std::string& host_permissions, 78 const std::string& host_permissions,
79 Manifest::Location location) { 79 Manifest::Location location) {
80 scoped_refptr<const Extension> extension = 80 scoped_refptr<const Extension> extension =
81 GetExtensionWithHostPermission(extension_id, 81 GetExtensionWithHostPermission(extension_id,
82 host_permissions, 82 host_permissions,
83 location); 83 location);
84 return PermissionsData::ForExtension(extension) 84 return extension->permissions_data()->RequiresActionForScriptExecution(
85 ->RequiresActionForScriptExecution(extension, 85 extension,
86 -1, // Ignore tab id for these. 86 -1, // Ignore tab id for these.
87 GURL::EmptyGURL()); 87 GURL::EmptyGURL());
88 } 88 }
89 89
90 } // namespace 90 } // namespace
91 91
92 TEST(ExtensionPermissionsTest, EffectiveHostPermissions) { 92 TEST(ExtensionPermissionsTest, EffectiveHostPermissions) {
93 scoped_refptr<Extension> extension; 93 scoped_refptr<Extension> extension;
94 URLPatternSet hosts; 94 URLPatternSet hosts;
95 95
96 extension = LoadManifest("effective_host_permissions", "empty.json"); 96 extension = LoadManifest("effective_host_permissions", "empty.json");
97 EXPECT_EQ(0u, 97 EXPECT_EQ(0u,
98 PermissionsData::ForExtension(extension) 98 extension->permissions_data()
99 ->GetEffectiveHostPermissions() 99 ->GetEffectiveHostPermissions()
100 .patterns() 100 .patterns()
101 .size()); 101 .size());
102 EXPECT_FALSE(hosts.MatchesURL(GURL("http://www.google.com"))); 102 EXPECT_FALSE(hosts.MatchesURL(GURL("http://www.google.com")));
103 EXPECT_FALSE( 103 EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
104 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
105 104
106 extension = LoadManifest("effective_host_permissions", "one_host.json"); 105 extension = LoadManifest("effective_host_permissions", "one_host.json");
107 hosts = 106 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
108 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
109 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com"))); 107 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
110 EXPECT_FALSE(hosts.MatchesURL(GURL("https://www.google.com"))); 108 EXPECT_FALSE(hosts.MatchesURL(GURL("https://www.google.com")));
111 EXPECT_FALSE( 109 EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
112 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
113 110
114 extension = LoadManifest("effective_host_permissions", 111 extension = LoadManifest("effective_host_permissions",
115 "one_host_wildcard.json"); 112 "one_host_wildcard.json");
116 hosts = 113 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
117 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
118 EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com"))); 114 EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com")));
119 EXPECT_TRUE(hosts.MatchesURL(GURL("http://foo.google.com"))); 115 EXPECT_TRUE(hosts.MatchesURL(GURL("http://foo.google.com")));
120 EXPECT_FALSE( 116 EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
121 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
122 117
123 extension = LoadManifest("effective_host_permissions", "two_hosts.json"); 118 extension = LoadManifest("effective_host_permissions", "two_hosts.json");
124 hosts = 119 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
125 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
126 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com"))); 120 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
127 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com"))); 121 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com")));
128 EXPECT_FALSE( 122 EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
129 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
130 123
131 extension = LoadManifest("effective_host_permissions", 124 extension = LoadManifest("effective_host_permissions",
132 "https_not_considered.json"); 125 "https_not_considered.json");
133 hosts = 126 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
134 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
135 EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com"))); 127 EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com")));
136 EXPECT_TRUE(hosts.MatchesURL(GURL("https://google.com"))); 128 EXPECT_TRUE(hosts.MatchesURL(GURL("https://google.com")));
137 EXPECT_FALSE( 129 EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
138 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
139 130
140 extension = LoadManifest("effective_host_permissions", 131 extension = LoadManifest("effective_host_permissions",
141 "two_content_scripts.json"); 132 "two_content_scripts.json");
142 hosts = 133 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
143 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
144 EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com"))); 134 EXPECT_TRUE(hosts.MatchesURL(GURL("http://google.com")));
145 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com"))); 135 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.reddit.com")));
146 EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL( 136 EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL(
147 GURL("http://www.reddit.com"))); 137 GURL("http://www.reddit.com")));
148 EXPECT_TRUE(hosts.MatchesURL(GURL("http://news.ycombinator.com"))); 138 EXPECT_TRUE(hosts.MatchesURL(GURL("http://news.ycombinator.com")));
149 EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL( 139 EXPECT_TRUE(extension->GetActivePermissions()->HasEffectiveAccessToURL(
150 GURL("http://news.ycombinator.com"))); 140 GURL("http://news.ycombinator.com")));
151 EXPECT_FALSE( 141 EXPECT_FALSE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
152 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
153 142
154 extension = LoadManifest("effective_host_permissions", "all_hosts.json"); 143 extension = LoadManifest("effective_host_permissions", "all_hosts.json");
155 hosts = 144 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
156 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
157 EXPECT_TRUE(hosts.MatchesURL(GURL("http://test/"))); 145 EXPECT_TRUE(hosts.MatchesURL(GURL("http://test/")));
158 EXPECT_FALSE(hosts.MatchesURL(GURL("https://test/"))); 146 EXPECT_FALSE(hosts.MatchesURL(GURL("https://test/")));
159 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com"))); 147 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
160 EXPECT_TRUE( 148 EXPECT_TRUE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
161 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
162 149
163 extension = LoadManifest("effective_host_permissions", "all_hosts2.json"); 150 extension = LoadManifest("effective_host_permissions", "all_hosts2.json");
164 hosts = 151 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
165 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
166 EXPECT_TRUE(hosts.MatchesURL(GURL("http://test/"))); 152 EXPECT_TRUE(hosts.MatchesURL(GURL("http://test/")));
167 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com"))); 153 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
168 EXPECT_TRUE( 154 EXPECT_TRUE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
169 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
170 155
171 extension = LoadManifest("effective_host_permissions", "all_hosts3.json"); 156 extension = LoadManifest("effective_host_permissions", "all_hosts3.json");
172 hosts = 157 hosts = extension->permissions_data()->GetEffectiveHostPermissions();
173 PermissionsData::ForExtension(extension)->GetEffectiveHostPermissions();
174 EXPECT_FALSE(hosts.MatchesURL(GURL("http://test/"))); 158 EXPECT_FALSE(hosts.MatchesURL(GURL("http://test/")));
175 EXPECT_TRUE(hosts.MatchesURL(GURL("https://test/"))); 159 EXPECT_TRUE(hosts.MatchesURL(GURL("https://test/")));
176 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com"))); 160 EXPECT_TRUE(hosts.MatchesURL(GURL("http://www.google.com")));
177 EXPECT_TRUE( 161 EXPECT_TRUE(extension->permissions_data()->HasEffectiveAccessToAllHosts());
178 PermissionsData::ForExtension(extension)->HasEffectiveAccessToAllHosts());
179 } 162 }
180 163
181 TEST(ExtensionPermissionsTest, SocketPermissions) { 164 TEST(ExtensionPermissionsTest, SocketPermissions) {
182 // Set feature current channel to appropriate value. 165 // Set feature current channel to appropriate value.
183 ScopedCurrentChannel scoped_channel(chrome::VersionInfo::CHANNEL_DEV); 166 ScopedCurrentChannel scoped_channel(chrome::VersionInfo::CHANNEL_DEV);
184 scoped_refptr<Extension> extension; 167 scoped_refptr<Extension> extension;
185 std::string error; 168 std::string error;
186 169
187 extension = LoadManifest("socket_permissions", "empty.json"); 170 extension = LoadManifest("socket_permissions", "empty.json");
188 EXPECT_FALSE(CheckSocketPermission(extension, 171 EXPECT_FALSE(CheckSocketPermission(extension,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 kAllHostsPermission, 226 kAllHostsPermission,
244 Manifest::INTERNAL); 227 Manifest::INTERNAL);
245 URLPatternSet allowed_hosts; 228 URLPatternSet allowed_hosts;
246 allowed_hosts.AddPattern( 229 allowed_hosts.AddPattern(
247 URLPattern(URLPattern::SCHEME_HTTPS, "https://www.google.com/*")); 230 URLPattern(URLPattern::SCHEME_HTTPS, "https://www.google.com/*"));
248 scoped_refptr<PermissionSet> tab_permissions( 231 scoped_refptr<PermissionSet> tab_permissions(
249 new PermissionSet(APIPermissionSet(), 232 new PermissionSet(APIPermissionSet(),
250 ManifestPermissionSet(), 233 ManifestPermissionSet(),
251 allowed_hosts, 234 allowed_hosts,
252 URLPatternSet())); 235 URLPatternSet()));
253 PermissionsData::ForExtension(extension) 236 extension->permissions_data()->UpdateTabSpecificPermissions(0,
254 ->UpdateTabSpecificPermissions(0, tab_permissions); 237 tab_permissions);
255 EXPECT_FALSE(PermissionsData::ForExtension(extension) 238 EXPECT_FALSE(extension->permissions_data()->RequiresActionForScriptExecution(
256 ->RequiresActionForScriptExecution( 239 extension, 0, GURL("https://www.google.com/")));
257 extension, 0, GURL("https://www.google.com/")));
258 } 240 }
259 241
260 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) { 242 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyAPIPermissions) {
261 scoped_refptr<Extension> extension; 243 scoped_refptr<Extension> extension;
262 extension = LoadManifest("permissions", "many-apis.json"); 244 extension = LoadManifest("permissions", "many-apis.json");
263 std::vector<base::string16> warnings = 245 std::vector<base::string16> warnings =
264 PermissionsData::ForExtension(extension)->GetPermissionMessageStrings(); 246 extension->permissions_data()->GetPermissionMessageStrings();
265 // Warning for "tabs" is suppressed by "history" permission. 247 // Warning for "tabs" is suppressed by "history" permission.
266 ASSERT_EQ(5u, warnings.size()); 248 ASSERT_EQ(5u, warnings.size());
267 EXPECT_EQ("Read and modify your data on api.flickr.com", 249 EXPECT_EQ("Read and modify your data on api.flickr.com",
268 UTF16ToUTF8(warnings[0])); 250 UTF16ToUTF8(warnings[0]));
269 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1])); 251 EXPECT_EQ("Read and modify your bookmarks", UTF16ToUTF8(warnings[1]));
270 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2])); 252 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[2]));
271 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3])); 253 EXPECT_EQ("Read and modify your browsing history", UTF16ToUTF8(warnings[3]));
272 EXPECT_EQ("Manage your apps, extensions, and themes", 254 EXPECT_EQ("Manage your apps, extensions, and themes",
273 UTF16ToUTF8(warnings[4])); 255 UTF16ToUTF8(warnings[4]));
274 } 256 }
275 257
276 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) { 258 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHostsPermissions) {
277 scoped_refptr<Extension> extension; 259 scoped_refptr<Extension> extension;
278 extension = LoadManifest("permissions", "more-than-3-hosts.json"); 260 extension = LoadManifest("permissions", "more-than-3-hosts.json");
279 std::vector<base::string16> warnings = 261 std::vector<base::string16> warnings =
280 PermissionsData::ForExtension(extension)->GetPermissionMessageStrings(); 262 extension->permissions_data()->GetPermissionMessageStrings();
281 std::vector<base::string16> warnings_details = 263 std::vector<base::string16> warnings_details =
282 PermissionsData::ForExtension(extension) 264 extension->permissions_data()->GetPermissionMessageDetailsStrings();
283 ->GetPermissionMessageDetailsStrings();
284 ASSERT_EQ(1u, warnings.size()); 265 ASSERT_EQ(1u, warnings.size());
285 ASSERT_EQ(1u, warnings_details.size()); 266 ASSERT_EQ(1u, warnings_details.size());
286 EXPECT_EQ("Read and modify your data on 5 websites", 267 EXPECT_EQ("Read and modify your data on 5 websites",
287 UTF16ToUTF8(warnings[0])); 268 UTF16ToUTF8(warnings[0]));
288 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com", 269 EXPECT_EQ("- www.a.com\n- www.b.com\n- www.c.com\n- www.d.com\n- www.e.com",
289 UTF16ToUTF8(warnings_details[0])); 270 UTF16ToUTF8(warnings_details[0]));
290 } 271 }
291 272
292 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) { 273 TEST(ExtensionPermissionsTest, GetPermissionMessages_LocationApiPermission) {
293 scoped_refptr<Extension> extension; 274 scoped_refptr<Extension> extension;
294 extension = LoadManifest("permissions", 275 extension = LoadManifest("permissions",
295 "location-api.json", 276 "location-api.json",
296 Manifest::COMPONENT, 277 Manifest::COMPONENT,
297 Extension::NO_FLAGS); 278 Extension::NO_FLAGS);
298 std::vector<base::string16> warnings = 279 std::vector<base::string16> warnings =
299 PermissionsData::ForExtension(extension)->GetPermissionMessageStrings(); 280 extension->permissions_data()->GetPermissionMessageStrings();
300 ASSERT_EQ(1u, warnings.size()); 281 ASSERT_EQ(1u, warnings.size());
301 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0])); 282 EXPECT_EQ("Detect your physical location", UTF16ToUTF8(warnings[0]));
302 } 283 }
303 284
304 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) { 285 TEST(ExtensionPermissionsTest, GetPermissionMessages_ManyHosts) {
305 scoped_refptr<Extension> extension; 286 scoped_refptr<Extension> extension;
306 extension = LoadManifest("permissions", "many-hosts.json"); 287 extension = LoadManifest("permissions", "many-hosts.json");
307 std::vector<base::string16> warnings = 288 std::vector<base::string16> warnings =
308 PermissionsData::ForExtension(extension)->GetPermissionMessageStrings(); 289 extension->permissions_data()->GetPermissionMessageStrings();
309 ASSERT_EQ(1u, warnings.size()); 290 ASSERT_EQ(1u, warnings.size());
310 EXPECT_EQ( 291 EXPECT_EQ(
311 "Read and modify your data on encrypted.google.com and www.google.com", 292 "Read and modify your data on encrypted.google.com and www.google.com",
312 UTF16ToUTF8(warnings[0])); 293 UTF16ToUTF8(warnings[0]));
313 } 294 }
314 295
315 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) { 296 TEST(ExtensionPermissionsTest, GetPermissionMessages_Plugins) {
316 scoped_refptr<Extension> extension; 297 scoped_refptr<Extension> extension;
317 extension = LoadManifest("permissions", "plugins.json"); 298 extension = LoadManifest("permissions", "plugins.json");
318 std::vector<base::string16> warnings = 299 std::vector<base::string16> warnings =
319 PermissionsData::ForExtension(extension)->GetPermissionMessageStrings(); 300 extension->permissions_data()->GetPermissionMessageStrings();
320 // We don't parse the plugins key on Chrome OS, so it should not ask for any 301 // We don't parse the plugins key on Chrome OS, so it should not ask for any
321 // permissions. 302 // permissions.
322 #if defined(OS_CHROMEOS) 303 #if defined(OS_CHROMEOS)
323 ASSERT_EQ(0u, warnings.size()); 304 ASSERT_EQ(0u, warnings.size());
324 #else 305 #else
325 ASSERT_EQ(1u, warnings.size()); 306 ASSERT_EQ(1u, warnings.size());
326 EXPECT_EQ( 307 EXPECT_EQ(
327 "Read and modify all your data on your computer and the websites you " 308 "Read and modify all your data on your computer and the websites you "
328 "visit", 309 "visit",
329 UTF16ToUTF8(warnings[0])); 310 UTF16ToUTF8(warnings[0]));
(...skipping 27 matching lines...) Expand all
357 PermissionsData::SetPolicyDelegate(NULL); 338 PermissionsData::SetPolicyDelegate(NULL);
358 } 339 }
359 340
360 bool AllowedScript(const Extension* extension, const GURL& url, 341 bool AllowedScript(const Extension* extension, const GURL& url,
361 const GURL& top_url) { 342 const GURL& top_url) {
362 return AllowedScript(extension, url, top_url, -1); 343 return AllowedScript(extension, url, top_url, -1);
363 } 344 }
364 345
365 bool AllowedScript(const Extension* extension, const GURL& url, 346 bool AllowedScript(const Extension* extension, const GURL& url,
366 const GURL& top_url, int tab_id) { 347 const GURL& top_url, int tab_id) {
367 return PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage( 348 return extension->permissions_data()->CanExecuteScriptOnPage(
368 extension, url, top_url, tab_id, NULL, -1, NULL); 349 extension, url, top_url, tab_id, NULL, -1, NULL);
369 } 350 }
370 351
371 bool BlockedScript(const Extension* extension, const GURL& url, 352 bool BlockedScript(const Extension* extension, const GURL& url,
372 const GURL& top_url) { 353 const GURL& top_url) {
373 return !PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage( 354 return !extension->permissions_data()->CanExecuteScriptOnPage(
374 extension, url, top_url, -1, NULL, -1, NULL); 355 extension, url, top_url, -1, NULL, -1, NULL);
375 } 356 }
376 357
377 bool Allowed(const Extension* extension, const GURL& url) { 358 bool Allowed(const Extension* extension, const GURL& url) {
378 return Allowed(extension, url, -1); 359 return Allowed(extension, url, -1);
379 } 360 }
380 361
381 bool Allowed(const Extension* extension, const GURL& url, int tab_id) { 362 bool Allowed(const Extension* extension, const GURL& url, int tab_id) {
382 return (PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage( 363 return (extension->permissions_data()->CanExecuteScriptOnPage(
383 extension, url, url, tab_id, NULL, -1, NULL) && 364 extension, url, url, tab_id, NULL, -1, NULL) &&
384 PermissionsData::ForExtension(extension) 365 extension->permissions_data()->CanCaptureVisiblePage(tab_id, NULL));
385 ->CanCaptureVisiblePage(tab_id, NULL));
386 } 366 }
387 367
388 bool CaptureOnly(const Extension* extension, const GURL& url) { 368 bool CaptureOnly(const Extension* extension, const GURL& url) {
389 return CaptureOnly(extension, url, -1); 369 return CaptureOnly(extension, url, -1);
390 } 370 }
391 371
392 bool CaptureOnly(const Extension* extension, const GURL& url, int tab_id) { 372 bool CaptureOnly(const Extension* extension, const GURL& url, int tab_id) {
393 return !PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage( 373 return !extension->permissions_data()->CanExecuteScriptOnPage(
394 extension, url, url, tab_id, NULL, -1, NULL) && 374 extension, url, url, tab_id, NULL, -1, NULL) &&
395 PermissionsData::ForExtension(extension) 375 extension->permissions_data()->CanCaptureVisiblePage(tab_id, NULL);
396 ->CanCaptureVisiblePage(tab_id, NULL);
397 } 376 }
398 377
399 bool ScriptOnly(const Extension* extension, const GURL& url, 378 bool ScriptOnly(const Extension* extension, const GURL& url,
400 const GURL& top_url) { 379 const GURL& top_url) {
401 return ScriptOnly(extension, url, top_url, -1); 380 return ScriptOnly(extension, url, top_url, -1);
402 } 381 }
403 382
404 bool ScriptOnly(const Extension* extension, const GURL& url, 383 bool ScriptOnly(const Extension* extension, const GURL& url,
405 const GURL& top_url, int tab_id) { 384 const GURL& top_url, int tab_id) {
406 return AllowedScript(extension, url, top_url, tab_id) && 385 return AllowedScript(extension, url, top_url, tab_id) &&
407 !PermissionsData::ForExtension(extension) 386 !extension->permissions_data()->CanCaptureVisiblePage(tab_id, NULL);
408 ->CanCaptureVisiblePage(tab_id, NULL);
409 } 387 }
410 388
411 bool Blocked(const Extension* extension, const GURL& url) { 389 bool Blocked(const Extension* extension, const GURL& url) {
412 return Blocked(extension, url, -1); 390 return Blocked(extension, url, -1);
413 } 391 }
414 392
415 bool Blocked(const Extension* extension, const GURL& url, int tab_id) { 393 bool Blocked(const Extension* extension, const GURL& url, int tab_id) {
416 return !(PermissionsData::ForExtension(extension)->CanExecuteScriptOnPage( 394 return !(extension->permissions_data()->CanExecuteScriptOnPage(
417 extension, url, url, tab_id, NULL, -1, NULL) || 395 extension, url, url, tab_id, NULL, -1, NULL) ||
418 PermissionsData::ForExtension(extension) 396 extension->permissions_data()->CanCaptureVisiblePage(tab_id,
419 ->CanCaptureVisiblePage(tab_id, NULL)); 397 NULL));
420 } 398 }
421 399
422 bool ScriptAllowedExclusivelyOnTab( 400 bool ScriptAllowedExclusivelyOnTab(
423 const Extension* extension, 401 const Extension* extension,
424 const std::set<GURL>& allowed_urls, 402 const std::set<GURL>& allowed_urls,
425 int tab_id) { 403 int tab_id) {
426 bool result = true; 404 bool result = true;
427 for (std::set<GURL>::iterator it = urls_.begin(); it != urls_.end(); ++it) { 405 for (std::set<GURL>::iterator it = urls_.begin(); it != urls_.end(); ++it) {
428 const GURL& url = *it; 406 const GURL& url = *it;
429 if (allowed_urls.count(url)) 407 if (allowed_urls.count(url))
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 448
471 // Test access to iframed content. 449 // Test access to iframed content.
472 GURL within_extension_url = extension->GetResourceURL("page.html"); 450 GURL within_extension_url = extension->GetResourceURL("page.html");
473 EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url_with_path)); 451 EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url_with_path));
474 EXPECT_TRUE(AllowedScript(extension.get(), https_url, http_url_with_path)); 452 EXPECT_TRUE(AllowedScript(extension.get(), https_url, http_url_with_path));
475 EXPECT_TRUE(AllowedScript(extension.get(), http_url, within_extension_url)); 453 EXPECT_TRUE(AllowedScript(extension.get(), http_url, within_extension_url));
476 EXPECT_TRUE(AllowedScript(extension.get(), https_url, within_extension_url)); 454 EXPECT_TRUE(AllowedScript(extension.get(), https_url, within_extension_url));
477 EXPECT_TRUE(BlockedScript(extension.get(), http_url, extension_url)); 455 EXPECT_TRUE(BlockedScript(extension.get(), http_url, extension_url));
478 EXPECT_TRUE(BlockedScript(extension.get(), https_url, extension_url)); 456 EXPECT_TRUE(BlockedScript(extension.get(), https_url, extension_url));
479 457
480 EXPECT_FALSE(PermissionsData::ForExtension(extension) 458 EXPECT_FALSE(extension->permissions_data()->HasHostPermission(settings_url));
481 ->HasHostPermission(settings_url)); 459 EXPECT_FALSE(extension->permissions_data()->HasHostPermission(about_url));
482 EXPECT_FALSE( 460 EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
483 PermissionsData::ForExtension(extension)->HasHostPermission(about_url));
484 EXPECT_TRUE(
485 PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
486 461
487 // Test * for scheme, which implies just the http/https schemes. 462 // Test * for scheme, which implies just the http/https schemes.
488 extension = LoadManifestStrict("script_and_capture", 463 extension = LoadManifestStrict("script_and_capture",
489 "extension_wildcard.json"); 464 "extension_wildcard.json");
490 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); 465 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url));
491 EXPECT_TRUE(ScriptOnly(extension.get(), https_url, https_url)); 466 EXPECT_TRUE(ScriptOnly(extension.get(), https_url, https_url));
492 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 467 EXPECT_TRUE(Blocked(extension.get(), settings_url));
493 EXPECT_TRUE(Blocked(extension.get(), about_url)); 468 EXPECT_TRUE(Blocked(extension.get(), about_url));
494 EXPECT_TRUE(Blocked(extension.get(), file_url)); 469 EXPECT_TRUE(Blocked(extension.get(), file_url));
495 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 470 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
(...skipping 17 matching lines...) Expand all
513 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 488 EXPECT_TRUE(Blocked(extension.get(), settings_url));
514 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 489 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
515 EXPECT_TRUE(Blocked(extension.get(), about_url)); 490 EXPECT_TRUE(Blocked(extension.get(), about_url));
516 491
517 // Having chrome://favicon/* should not give you chrome://* 492 // Having chrome://favicon/* should not give you chrome://*
518 extension = LoadManifestStrict("script_and_capture", 493 extension = LoadManifestStrict("script_and_capture",
519 "extension_chrome_favicon_wildcard.json"); 494 "extension_chrome_favicon_wildcard.json");
520 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 495 EXPECT_TRUE(Blocked(extension.get(), settings_url));
521 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 496 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
522 EXPECT_TRUE(Blocked(extension.get(), about_url)); 497 EXPECT_TRUE(Blocked(extension.get(), about_url));
523 EXPECT_TRUE( 498 EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
524 PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
525 499
526 // Having http://favicon should not give you chrome://favicon 500 // Having http://favicon should not give you chrome://favicon
527 extension = LoadManifestStrict("script_and_capture", 501 extension = LoadManifestStrict("script_and_capture",
528 "extension_http_favicon.json"); 502 "extension_http_favicon.json");
529 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 503 EXPECT_TRUE(Blocked(extension.get(), settings_url));
530 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 504 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
531 505
532 // Component extensions with <all_urls> should get everything. 506 // Component extensions with <all_urls> should get everything.
533 extension = LoadManifest("script_and_capture", "extension_component_all.json", 507 extension = LoadManifest("script_and_capture", "extension_component_all.json",
534 Manifest::COMPONENT, Extension::NO_FLAGS); 508 Manifest::COMPONENT, Extension::NO_FLAGS);
535 EXPECT_TRUE(Allowed(extension.get(), http_url)); 509 EXPECT_TRUE(Allowed(extension.get(), http_url));
536 EXPECT_TRUE(Allowed(extension.get(), https_url)); 510 EXPECT_TRUE(Allowed(extension.get(), https_url));
537 EXPECT_TRUE(Allowed(extension.get(), settings_url)); 511 EXPECT_TRUE(Allowed(extension.get(), settings_url));
538 EXPECT_TRUE(Allowed(extension.get(), about_url)); 512 EXPECT_TRUE(Allowed(extension.get(), about_url));
539 EXPECT_TRUE(Allowed(extension.get(), favicon_url)); 513 EXPECT_TRUE(Allowed(extension.get(), favicon_url));
540 EXPECT_TRUE( 514 EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
541 PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
542 515
543 // Component extensions should only get access to what they ask for. 516 // Component extensions should only get access to what they ask for.
544 extension = LoadManifest("script_and_capture", 517 extension = LoadManifest("script_and_capture",
545 "extension_component_google.json", Manifest::COMPONENT, 518 "extension_component_google.json", Manifest::COMPONENT,
546 Extension::NO_FLAGS); 519 Extension::NO_FLAGS);
547 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); 520 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url));
548 EXPECT_TRUE(Blocked(extension.get(), https_url)); 521 EXPECT_TRUE(Blocked(extension.get(), https_url));
549 EXPECT_TRUE(Blocked(extension.get(), file_url)); 522 EXPECT_TRUE(Blocked(extension.get(), file_url));
550 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 523 EXPECT_TRUE(Blocked(extension.get(), settings_url));
551 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 524 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
552 EXPECT_TRUE(Blocked(extension.get(), about_url)); 525 EXPECT_TRUE(Blocked(extension.get(), about_url));
553 EXPECT_TRUE(Blocked(extension.get(), extension_url)); 526 EXPECT_TRUE(Blocked(extension.get(), extension_url));
554 EXPECT_FALSE(PermissionsData::ForExtension(extension) 527 EXPECT_FALSE(extension->permissions_data()->HasHostPermission(settings_url));
555 ->HasHostPermission(settings_url));
556 } 528 }
557 529
558 TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) { 530 TEST_F(ExtensionScriptAndCaptureVisibleTest, PermissionsWithChromeURLsEnabled) {
559 CommandLine::ForCurrentProcess()->AppendSwitch( 531 CommandLine::ForCurrentProcess()->AppendSwitch(
560 switches::kExtensionsOnChromeURLs); 532 switches::kExtensionsOnChromeURLs);
561 533
562 scoped_refptr<Extension> extension; 534 scoped_refptr<Extension> extension;
563 535
564 // Test <all_urls> for regular extensions. 536 // Test <all_urls> for regular extensions.
565 extension = LoadManifestStrict("script_and_capture", 537 extension = LoadManifestStrict("script_and_capture",
566 "extension_regular_all.json"); 538 "extension_regular_all.json");
567 EXPECT_TRUE(Allowed(extension.get(), http_url)); 539 EXPECT_TRUE(Allowed(extension.get(), http_url));
568 EXPECT_TRUE(Allowed(extension.get(), https_url)); 540 EXPECT_TRUE(Allowed(extension.get(), https_url));
569 EXPECT_TRUE(CaptureOnly(extension.get(), file_url)); 541 EXPECT_TRUE(CaptureOnly(extension.get(), file_url));
570 EXPECT_TRUE(CaptureOnly(extension.get(), settings_url)); 542 EXPECT_TRUE(CaptureOnly(extension.get(), settings_url));
571 EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested 543 EXPECT_TRUE(Allowed(extension.get(), favicon_url)); // chrome:// requested
572 EXPECT_TRUE(CaptureOnly(extension.get(), about_url)); 544 EXPECT_TRUE(CaptureOnly(extension.get(), about_url));
573 EXPECT_TRUE(CaptureOnly(extension.get(), extension_url)); 545 EXPECT_TRUE(CaptureOnly(extension.get(), extension_url));
574 546
575 // Test access to iframed content. 547 // Test access to iframed content.
576 GURL within_extension_url = extension->GetResourceURL("page.html"); 548 GURL within_extension_url = extension->GetResourceURL("page.html");
577 EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url_with_path)); 549 EXPECT_TRUE(AllowedScript(extension.get(), http_url, http_url_with_path));
578 EXPECT_TRUE(AllowedScript(extension.get(), https_url, http_url_with_path)); 550 EXPECT_TRUE(AllowedScript(extension.get(), https_url, http_url_with_path));
579 EXPECT_TRUE(AllowedScript(extension.get(), http_url, within_extension_url)); 551 EXPECT_TRUE(AllowedScript(extension.get(), http_url, within_extension_url));
580 EXPECT_TRUE(AllowedScript(extension.get(), https_url, within_extension_url)); 552 EXPECT_TRUE(AllowedScript(extension.get(), https_url, within_extension_url));
581 EXPECT_TRUE(BlockedScript(extension.get(), http_url, extension_url)); 553 EXPECT_TRUE(BlockedScript(extension.get(), http_url, extension_url));
582 EXPECT_TRUE(BlockedScript(extension.get(), https_url, extension_url)); 554 EXPECT_TRUE(BlockedScript(extension.get(), https_url, extension_url));
583 555
584 const PermissionsData* permissions_data = 556 const PermissionsData* permissions_data = extension->permissions_data();
585 PermissionsData::ForExtension(extension);
586 EXPECT_FALSE(permissions_data->HasHostPermission(settings_url)); 557 EXPECT_FALSE(permissions_data->HasHostPermission(settings_url));
587 EXPECT_FALSE(permissions_data->HasHostPermission(about_url)); 558 EXPECT_FALSE(permissions_data->HasHostPermission(about_url));
588 EXPECT_TRUE(permissions_data->HasHostPermission(favicon_url)); 559 EXPECT_TRUE(permissions_data->HasHostPermission(favicon_url));
589 560
590 // Test * for scheme, which implies just the http/https schemes. 561 // Test * for scheme, which implies just the http/https schemes.
591 extension = LoadManifestStrict("script_and_capture", 562 extension = LoadManifestStrict("script_and_capture",
592 "extension_wildcard.json"); 563 "extension_wildcard.json");
593 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); 564 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url));
594 EXPECT_TRUE(ScriptOnly(extension.get(), https_url, https_url)); 565 EXPECT_TRUE(ScriptOnly(extension.get(), https_url, https_url));
595 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 566 EXPECT_TRUE(Blocked(extension.get(), settings_url));
(...skipping 18 matching lines...) Expand all
614 EXPECT_TRUE(Blocked(extension.get(), about_url)); 585 EXPECT_TRUE(Blocked(extension.get(), about_url));
615 EXPECT_TRUE(Blocked(extension.get(), file_url)); 586 EXPECT_TRUE(Blocked(extension.get(), file_url));
616 EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url)); 587 EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url));
617 588
618 // Having chrome://favicon/* should not give you chrome://* 589 // Having chrome://favicon/* should not give you chrome://*
619 extension = LoadManifestStrict("script_and_capture", 590 extension = LoadManifestStrict("script_and_capture",
620 "extension_chrome_favicon_wildcard.json"); 591 "extension_chrome_favicon_wildcard.json");
621 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 592 EXPECT_TRUE(Blocked(extension.get(), settings_url));
622 EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url)); 593 EXPECT_TRUE(ScriptOnly(extension.get(), favicon_url, favicon_url));
623 EXPECT_TRUE(Blocked(extension.get(), about_url)); 594 EXPECT_TRUE(Blocked(extension.get(), about_url));
624 EXPECT_TRUE( 595 EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
625 PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
626 596
627 // Having http://favicon should not give you chrome://favicon 597 // Having http://favicon should not give you chrome://favicon
628 extension = LoadManifestStrict("script_and_capture", 598 extension = LoadManifestStrict("script_and_capture",
629 "extension_http_favicon.json"); 599 "extension_http_favicon.json");
630 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 600 EXPECT_TRUE(Blocked(extension.get(), settings_url));
631 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 601 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
632 602
633 // Component extensions with <all_urls> should get everything. 603 // Component extensions with <all_urls> should get everything.
634 extension = LoadManifest("script_and_capture", "extension_component_all.json", 604 extension = LoadManifest("script_and_capture", "extension_component_all.json",
635 Manifest::COMPONENT, Extension::NO_FLAGS); 605 Manifest::COMPONENT, Extension::NO_FLAGS);
636 EXPECT_TRUE(Allowed(extension.get(), http_url)); 606 EXPECT_TRUE(Allowed(extension.get(), http_url));
637 EXPECT_TRUE(Allowed(extension.get(), https_url)); 607 EXPECT_TRUE(Allowed(extension.get(), https_url));
638 EXPECT_TRUE(Allowed(extension.get(), settings_url)); 608 EXPECT_TRUE(Allowed(extension.get(), settings_url));
639 EXPECT_TRUE(Allowed(extension.get(), about_url)); 609 EXPECT_TRUE(Allowed(extension.get(), about_url));
640 EXPECT_TRUE(Allowed(extension.get(), favicon_url)); 610 EXPECT_TRUE(Allowed(extension.get(), favicon_url));
641 EXPECT_TRUE( 611 EXPECT_TRUE(extension->permissions_data()->HasHostPermission(favicon_url));
642 PermissionsData::ForExtension(extension)->HasHostPermission(favicon_url));
643 612
644 // Component extensions should only get access to what they ask for. 613 // Component extensions should only get access to what they ask for.
645 extension = LoadManifest("script_and_capture", 614 extension = LoadManifest("script_and_capture",
646 "extension_component_google.json", Manifest::COMPONENT, 615 "extension_component_google.json", Manifest::COMPONENT,
647 Extension::NO_FLAGS); 616 Extension::NO_FLAGS);
648 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url)); 617 EXPECT_TRUE(ScriptOnly(extension.get(), http_url, http_url));
649 EXPECT_TRUE(Blocked(extension.get(), https_url)); 618 EXPECT_TRUE(Blocked(extension.get(), https_url));
650 EXPECT_TRUE(Blocked(extension.get(), file_url)); 619 EXPECT_TRUE(Blocked(extension.get(), file_url));
651 EXPECT_TRUE(Blocked(extension.get(), settings_url)); 620 EXPECT_TRUE(Blocked(extension.get(), settings_url));
652 EXPECT_TRUE(Blocked(extension.get(), favicon_url)); 621 EXPECT_TRUE(Blocked(extension.get(), favicon_url));
653 EXPECT_TRUE(Blocked(extension.get(), about_url)); 622 EXPECT_TRUE(Blocked(extension.get(), about_url));
654 EXPECT_TRUE(Blocked(extension.get(), extension_url)); 623 EXPECT_TRUE(Blocked(extension.get(), extension_url));
655 EXPECT_FALSE(PermissionsData::ForExtension(extension) 624 EXPECT_FALSE(extension->permissions_data()->HasHostPermission(settings_url));
656 ->HasHostPermission(settings_url));
657 } 625 }
658 626
659 TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) { 627 TEST_F(ExtensionScriptAndCaptureVisibleTest, TabSpecific) {
660 scoped_refptr<Extension> extension = 628 scoped_refptr<Extension> extension =
661 LoadManifestStrict("script_and_capture", "tab_specific.json"); 629 LoadManifestStrict("script_and_capture", "tab_specific.json");
662 630
663 const PermissionsData* permissions_data = 631 const PermissionsData* permissions_data = extension->permissions_data();
664 PermissionsData::ForExtension(extension);
665 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(0)); 632 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(0));
666 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(1)); 633 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(1));
667 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(2)); 634 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(2));
668 635
669 std::set<GURL> no_urls; 636 std::set<GURL> no_urls;
670 637
671 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); 638 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0));
672 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); 639 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1));
673 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); 640 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2));
674 641
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 710
744 permissions_data->ClearTabSpecificPermissions(1); 711 permissions_data->ClearTabSpecificPermissions(1);
745 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(1)); 712 EXPECT_FALSE(permissions_data->GetTabSpecificPermissionsForTesting(1));
746 713
747 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0)); 714 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 0));
748 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1)); 715 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 1));
749 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2)); 716 EXPECT_TRUE(ScriptAllowedExclusivelyOnTab(extension.get(), no_urls, 2));
750 } 717 }
751 718
752 } // namespace extensions 719 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | extensions/renderer/dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698