OLD | NEW |
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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/json/json_file_value_serializer.h" | 6 #include "base/json/json_file_value_serializer.h" |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 | 248 |
249 const APIPermissionInfo* permission_info = | 249 const APIPermissionInfo* permission_info = |
250 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); | 250 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); |
251 permission = permission_info->CreateAPIPermission(); | 251 permission = permission_info->CreateAPIPermission(); |
252 { | 252 { |
253 scoped_ptr<base::ListValue> value(new base::ListValue()); | 253 scoped_ptr<base::ListValue> value(new base::ListValue()); |
254 value->Append( | 254 value->Append( |
255 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 255 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
256 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 256 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
257 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 257 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
258 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 258 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
259 } | 259 } |
260 | 260 |
261 // Union with an empty set. | 261 // Union with an empty set. |
262 apis1.insert(APIPermission::kTab); | 262 apis1.insert(APIPermission::kTab); |
263 apis1.insert(APIPermission::kBackground); | 263 apis1.insert(APIPermission::kBackground); |
264 apis1.insert(permission->Clone()); | 264 apis1.insert(permission->Clone()); |
265 expected_apis.insert(APIPermission::kTab); | 265 expected_apis.insert(APIPermission::kTab); |
266 expected_apis.insert(APIPermission::kBackground); | 266 expected_apis.insert(APIPermission::kBackground); |
267 expected_apis.insert(permission); | 267 expected_apis.insert(permission); |
268 | 268 |
(...skipping 24 matching lines...) Expand all Loading... |
293 apis2.insert(APIPermission::kProxy); | 293 apis2.insert(APIPermission::kProxy); |
294 apis2.insert(APIPermission::kClipboardWrite); | 294 apis2.insert(APIPermission::kClipboardWrite); |
295 apis2.insert(APIPermission::kPlugin); | 295 apis2.insert(APIPermission::kPlugin); |
296 | 296 |
297 permission = permission_info->CreateAPIPermission(); | 297 permission = permission_info->CreateAPIPermission(); |
298 { | 298 { |
299 scoped_ptr<base::ListValue> value(new base::ListValue()); | 299 scoped_ptr<base::ListValue> value(new base::ListValue()); |
300 value->Append( | 300 value->Append( |
301 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 301 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
302 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 302 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
303 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 303 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
304 } | 304 } |
305 apis2.insert(permission); | 305 apis2.insert(permission); |
306 | 306 |
307 expected_apis.insert(APIPermission::kTab); | 307 expected_apis.insert(APIPermission::kTab); |
308 expected_apis.insert(APIPermission::kProxy); | 308 expected_apis.insert(APIPermission::kProxy); |
309 expected_apis.insert(APIPermission::kClipboardWrite); | 309 expected_apis.insert(APIPermission::kClipboardWrite); |
310 expected_apis.insert(APIPermission::kPlugin); | 310 expected_apis.insert(APIPermission::kPlugin); |
311 | 311 |
312 permission = permission_info->CreateAPIPermission(); | 312 permission = permission_info->CreateAPIPermission(); |
313 { | 313 { |
314 scoped_ptr<base::ListValue> value(new base::ListValue()); | 314 scoped_ptr<base::ListValue> value(new base::ListValue()); |
315 value->Append( | 315 value->Append( |
316 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 316 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
317 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 317 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
318 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 318 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
319 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 319 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
320 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 320 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
321 } | 321 } |
322 // Insert a new permission socket permisssion which will replace the old one. | 322 // Insert a new permission socket permisssion which will replace the old one. |
323 expected_apis.insert(permission); | 323 expected_apis.insert(permission); |
324 | 324 |
325 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 325 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
326 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 326 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); | 327 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); |
328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); | 328 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); |
329 | 329 |
330 URLPatternSet::CreateUnion( | 330 URLPatternSet::CreateUnion( |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 // Intersection with an empty set. | 377 // Intersection with an empty set. |
378 apis1.insert(APIPermission::kTab); | 378 apis1.insert(APIPermission::kTab); |
379 apis1.insert(APIPermission::kBackground); | 379 apis1.insert(APIPermission::kBackground); |
380 permission = permission_info->CreateAPIPermission(); | 380 permission = permission_info->CreateAPIPermission(); |
381 { | 381 { |
382 scoped_ptr<base::ListValue> value(new base::ListValue()); | 382 scoped_ptr<base::ListValue> value(new base::ListValue()); |
383 value->Append( | 383 value->Append( |
384 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 384 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
385 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 385 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
386 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 386 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
387 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 387 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
388 } | 388 } |
389 apis1.insert(permission); | 389 apis1.insert(permission); |
390 | 390 |
391 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 391 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 392 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
393 | 393 |
394 set1 = new PermissionSet(apis1, manifest_permissions, | 394 set1 = new PermissionSet(apis1, manifest_permissions, |
395 explicit_hosts1, scriptable_hosts1); | 395 explicit_hosts1, scriptable_hosts1); |
396 set2 = new PermissionSet(apis2, manifest_permissions, | 396 set2 = new PermissionSet(apis2, manifest_permissions, |
397 explicit_hosts2, scriptable_hosts2); | 397 explicit_hosts2, scriptable_hosts2); |
(...skipping 16 matching lines...) Expand all Loading... |
414 apis2.insert(APIPermission::kTab); | 414 apis2.insert(APIPermission::kTab); |
415 apis2.insert(APIPermission::kProxy); | 415 apis2.insert(APIPermission::kProxy); |
416 apis2.insert(APIPermission::kClipboardWrite); | 416 apis2.insert(APIPermission::kClipboardWrite); |
417 apis2.insert(APIPermission::kPlugin); | 417 apis2.insert(APIPermission::kPlugin); |
418 permission = permission_info->CreateAPIPermission(); | 418 permission = permission_info->CreateAPIPermission(); |
419 { | 419 { |
420 scoped_ptr<base::ListValue> value(new base::ListValue()); | 420 scoped_ptr<base::ListValue> value(new base::ListValue()); |
421 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 421 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
422 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 422 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
423 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 423 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
424 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 424 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
425 } | 425 } |
426 apis2.insert(permission); | 426 apis2.insert(permission); |
427 | 427 |
428 expected_apis.insert(APIPermission::kTab); | 428 expected_apis.insert(APIPermission::kTab); |
429 permission = permission_info->CreateAPIPermission(); | 429 permission = permission_info->CreateAPIPermission(); |
430 { | 430 { |
431 scoped_ptr<base::ListValue> value(new base::ListValue()); | 431 scoped_ptr<base::ListValue> value(new base::ListValue()); |
432 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 432 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
433 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 433 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
434 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 434 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
435 } | 435 } |
436 expected_apis.insert(permission); | 436 expected_apis.insert(permission); |
437 | 437 |
438 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 438 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
439 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 439 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
440 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 440 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); | 441 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); |
442 | 442 |
443 effective_hosts.ClearPatterns(); | 443 effective_hosts.ClearPatterns(); |
444 AddPattern(&effective_hosts, "http://*.google.com/*"); | 444 AddPattern(&effective_hosts, "http://*.google.com/*"); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 // Difference with an empty set. | 490 // Difference with an empty set. |
491 apis1.insert(APIPermission::kTab); | 491 apis1.insert(APIPermission::kTab); |
492 apis1.insert(APIPermission::kBackground); | 492 apis1.insert(APIPermission::kBackground); |
493 permission = permission_info->CreateAPIPermission(); | 493 permission = permission_info->CreateAPIPermission(); |
494 { | 494 { |
495 scoped_ptr<base::ListValue> value(new base::ListValue()); | 495 scoped_ptr<base::ListValue> value(new base::ListValue()); |
496 value->Append( | 496 value->Append( |
497 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 497 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
498 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 498 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
499 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 499 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
500 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 500 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
501 } | 501 } |
502 apis1.insert(permission); | 502 apis1.insert(permission); |
503 | 503 |
504 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 504 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 505 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
506 | 506 |
507 set1 = new PermissionSet(apis1, manifest_permissions, | 507 set1 = new PermissionSet(apis1, manifest_permissions, |
508 explicit_hosts1, scriptable_hosts1); | 508 explicit_hosts1, scriptable_hosts1); |
509 set2 = new PermissionSet(apis2, manifest_permissions, | 509 set2 = new PermissionSet(apis2, manifest_permissions, |
510 explicit_hosts2, scriptable_hosts2); | 510 explicit_hosts2, scriptable_hosts2); |
511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); | 511 new_set = PermissionSet::CreateDifference(set1.get(), set2.get()); |
512 EXPECT_EQ(*set1.get(), *new_set.get()); | 512 EXPECT_EQ(*set1.get(), *new_set.get()); |
513 | 513 |
514 // Now use a real second set. | 514 // Now use a real second set. |
515 apis2.insert(APIPermission::kTab); | 515 apis2.insert(APIPermission::kTab); |
516 apis2.insert(APIPermission::kProxy); | 516 apis2.insert(APIPermission::kProxy); |
517 apis2.insert(APIPermission::kClipboardWrite); | 517 apis2.insert(APIPermission::kClipboardWrite); |
518 apis2.insert(APIPermission::kPlugin); | 518 apis2.insert(APIPermission::kPlugin); |
519 permission = permission_info->CreateAPIPermission(); | 519 permission = permission_info->CreateAPIPermission(); |
520 { | 520 { |
521 scoped_ptr<base::ListValue> value(new base::ListValue()); | 521 scoped_ptr<base::ListValue> value(new base::ListValue()); |
522 value->Append( | 522 value->Append( |
523 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); | 523 base::Value::CreateStringValue("tcp-connect:*.example.com:80")); |
524 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); | 524 value->Append(base::Value::CreateStringValue("udp-send-to::8899")); |
525 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 525 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
526 } | 526 } |
527 apis2.insert(permission); | 527 apis2.insert(permission); |
528 | 528 |
529 expected_apis.insert(APIPermission::kBackground); | 529 expected_apis.insert(APIPermission::kBackground); |
530 permission = permission_info->CreateAPIPermission(); | 530 permission = permission_info->CreateAPIPermission(); |
531 { | 531 { |
532 scoped_ptr<base::ListValue> value(new base::ListValue()); | 532 scoped_ptr<base::ListValue> value(new base::ListValue()); |
533 value->Append(base::Value::CreateStringValue("udp-bind::8080")); | 533 value->Append(base::Value::CreateStringValue("udp-bind::8080")); |
534 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); | 534 value->Append(base::Value::CreateStringValue("udp-send-to::8888")); |
535 ASSERT_TRUE(permission->FromValue(value.get(), NULL)); | 535 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
536 } | 536 } |
537 expected_apis.insert(permission); | 537 expected_apis.insert(permission); |
538 | 538 |
539 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 539 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
540 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 540 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
541 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 541 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); | 542 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); |
543 | 543 |
544 effective_hosts.ClearPatterns(); | 544 effective_hosts.ClearPatterns(); |
545 AddPattern(&effective_hosts, "http://www.reddit.com/*"); | 545 AddPattern(&effective_hosts, "http://www.reddit.com/*"); |
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1466 scoped_refptr<const PermissionSet> permissions_dwr( | 1466 scoped_refptr<const PermissionSet> permissions_dwr( |
1467 extension_dwr->GetActivePermissions()); | 1467 extension_dwr->GetActivePermissions()); |
1468 | 1468 |
1469 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1469 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
1470 IsPrivilegeIncrease(permissions.get(), | 1470 IsPrivilegeIncrease(permissions.get(), |
1471 permissions_dwr.get(), | 1471 permissions_dwr.get(), |
1472 extension->GetType())); | 1472 extension->GetType())); |
1473 } | 1473 } |
1474 | 1474 |
1475 } // namespace extensions | 1475 } // namespace extensions |
OLD | NEW |