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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 | 346 |
347 std::unique_ptr<const PermissionSet> set1; | 347 std::unique_ptr<const PermissionSet> set1; |
348 std::unique_ptr<const PermissionSet> set2; | 348 std::unique_ptr<const PermissionSet> set2; |
349 std::unique_ptr<const PermissionSet> union_set; | 349 std::unique_ptr<const PermissionSet> union_set; |
350 | 350 |
351 const APIPermissionInfo* permission_info = | 351 const APIPermissionInfo* permission_info = |
352 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); | 352 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); |
353 permission = permission_info->CreateAPIPermission(); | 353 permission = permission_info->CreateAPIPermission(); |
354 { | 354 { |
355 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 355 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
356 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); | 356 value->AppendString("tcp-connect:*.example.com:80"); |
357 value->Append(new base::StringValue("udp-bind::8080")); | 357 value->AppendString("udp-bind::8080"); |
358 value->Append(new base::StringValue("udp-send-to::8888")); | 358 value->AppendString("udp-send-to::8888"); |
359 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 359 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
360 } | 360 } |
361 | 361 |
362 // Union with an empty set. | 362 // Union with an empty set. |
363 apis1.insert(APIPermission::kTab); | 363 apis1.insert(APIPermission::kTab); |
364 apis1.insert(APIPermission::kBackground); | 364 apis1.insert(APIPermission::kBackground); |
365 apis1.insert(permission->Clone()); | 365 apis1.insert(permission->Clone()); |
366 expected_apis.insert(APIPermission::kTab); | 366 expected_apis.insert(APIPermission::kTab); |
367 expected_apis.insert(APIPermission::kBackground); | 367 expected_apis.insert(APIPermission::kBackground); |
368 expected_apis.insert(permission); | 368 expected_apis.insert(permission); |
(...skipping 22 matching lines...) Expand all Loading... |
391 | 391 |
392 // Now use a real second set. | 392 // Now use a real second set. |
393 apis2.insert(APIPermission::kTab); | 393 apis2.insert(APIPermission::kTab); |
394 apis2.insert(APIPermission::kProxy); | 394 apis2.insert(APIPermission::kProxy); |
395 apis2.insert(APIPermission::kClipboardWrite); | 395 apis2.insert(APIPermission::kClipboardWrite); |
396 apis2.insert(APIPermission::kPlugin); | 396 apis2.insert(APIPermission::kPlugin); |
397 | 397 |
398 permission = permission_info->CreateAPIPermission(); | 398 permission = permission_info->CreateAPIPermission(); |
399 { | 399 { |
400 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 400 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
401 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); | 401 value->AppendString("tcp-connect:*.example.com:80"); |
402 value->Append(new base::StringValue("udp-send-to::8899")); | 402 value->AppendString("udp-send-to::8899"); |
403 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 403 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
404 } | 404 } |
405 apis2.insert(permission); | 405 apis2.insert(permission); |
406 | 406 |
407 expected_apis.insert(APIPermission::kTab); | 407 expected_apis.insert(APIPermission::kTab); |
408 expected_apis.insert(APIPermission::kProxy); | 408 expected_apis.insert(APIPermission::kProxy); |
409 expected_apis.insert(APIPermission::kClipboardWrite); | 409 expected_apis.insert(APIPermission::kClipboardWrite); |
410 expected_apis.insert(APIPermission::kPlugin); | 410 expected_apis.insert(APIPermission::kPlugin); |
411 | 411 |
412 permission = permission_info->CreateAPIPermission(); | 412 permission = permission_info->CreateAPIPermission(); |
413 { | 413 { |
414 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 414 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
415 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); | 415 value->AppendString("tcp-connect:*.example.com:80"); |
416 value->Append(new base::StringValue("udp-bind::8080")); | 416 value->AppendString("udp-bind::8080"); |
417 value->Append(new base::StringValue("udp-send-to::8888")); | 417 value->AppendString("udp-send-to::8888"); |
418 value->Append(new base::StringValue("udp-send-to::8899")); | 418 value->AppendString("udp-send-to::8899"); |
419 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 419 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
420 } | 420 } |
421 // Insert a new permission socket permisssion which will replace the old one. | 421 // Insert a new permission socket permisssion which will replace the old one. |
422 expected_apis.insert(permission); | 422 expected_apis.insert(permission); |
423 | 423 |
424 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 424 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
425 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 425 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
426 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); | 426 AddPattern(&expected_explicit_hosts, "http://*.example.com/*"); |
427 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); | 427 AddPattern(&expected_scriptable_hosts, "http://*.google.com/*"); |
428 | 428 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
472 | 472 |
473 const APIPermissionInfo* permission_info = | 473 const APIPermissionInfo* permission_info = |
474 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); | 474 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); |
475 | 475 |
476 // Intersection with an empty set. | 476 // Intersection with an empty set. |
477 apis1.insert(APIPermission::kTab); | 477 apis1.insert(APIPermission::kTab); |
478 apis1.insert(APIPermission::kBackground); | 478 apis1.insert(APIPermission::kBackground); |
479 permission = permission_info->CreateAPIPermission(); | 479 permission = permission_info->CreateAPIPermission(); |
480 { | 480 { |
481 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 481 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
482 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); | 482 value->AppendString("tcp-connect:*.example.com:80"); |
483 value->Append(new base::StringValue("udp-bind::8080")); | 483 value->AppendString("udp-bind::8080"); |
484 value->Append(new base::StringValue("udp-send-to::8888")); | 484 value->AppendString("udp-send-to::8888"); |
485 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 485 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
486 } | 486 } |
487 apis1.insert(permission); | 487 apis1.insert(permission); |
488 | 488 |
489 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 489 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
490 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 490 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
491 | 491 |
492 set1.reset(new PermissionSet(apis1, manifest_permissions, explicit_hosts1, | 492 set1.reset(new PermissionSet(apis1, manifest_permissions, explicit_hosts1, |
493 scriptable_hosts1)); | 493 scriptable_hosts1)); |
494 set2.reset(new PermissionSet(apis2, manifest_permissions, explicit_hosts2, | 494 set2.reset(new PermissionSet(apis2, manifest_permissions, explicit_hosts2, |
(...skipping 14 matching lines...) Expand all Loading... |
509 EXPECT_EQ(expected_explicit_hosts, new_set->effective_hosts()); | 509 EXPECT_EQ(expected_explicit_hosts, new_set->effective_hosts()); |
510 | 510 |
511 // Now use a real second set. | 511 // Now use a real second set. |
512 apis2.insert(APIPermission::kTab); | 512 apis2.insert(APIPermission::kTab); |
513 apis2.insert(APIPermission::kProxy); | 513 apis2.insert(APIPermission::kProxy); |
514 apis2.insert(APIPermission::kClipboardWrite); | 514 apis2.insert(APIPermission::kClipboardWrite); |
515 apis2.insert(APIPermission::kPlugin); | 515 apis2.insert(APIPermission::kPlugin); |
516 permission = permission_info->CreateAPIPermission(); | 516 permission = permission_info->CreateAPIPermission(); |
517 { | 517 { |
518 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 518 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
519 value->Append(new base::StringValue("udp-bind::8080")); | 519 value->AppendString("udp-bind::8080"); |
520 value->Append(new base::StringValue("udp-send-to::8888")); | 520 value->AppendString("udp-send-to::8888"); |
521 value->Append(new base::StringValue("udp-send-to::8899")); | 521 value->AppendString("udp-send-to::8899"); |
522 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 522 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
523 } | 523 } |
524 apis2.insert(permission); | 524 apis2.insert(permission); |
525 | 525 |
526 expected_apis.insert(APIPermission::kTab); | 526 expected_apis.insert(APIPermission::kTab); |
527 permission = permission_info->CreateAPIPermission(); | 527 permission = permission_info->CreateAPIPermission(); |
528 { | 528 { |
529 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 529 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
530 value->Append(new base::StringValue("udp-bind::8080")); | 530 value->AppendString("udp-bind::8080"); |
531 value->Append(new base::StringValue("udp-send-to::8888")); | 531 value->AppendString("udp-send-to::8888"); |
532 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 532 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
533 } | 533 } |
534 expected_apis.insert(permission); | 534 expected_apis.insert(permission); |
535 | 535 |
536 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 536 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
537 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 537 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
538 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 538 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
539 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); | 539 AddPattern(&expected_explicit_hosts, "http://*.google.com/*"); |
540 | 540 |
541 effective_hosts.ClearPatterns(); | 541 effective_hosts.ClearPatterns(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 | 584 |
585 const APIPermissionInfo* permission_info = | 585 const APIPermissionInfo* permission_info = |
586 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); | 586 PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); |
587 | 587 |
588 // Difference with an empty set. | 588 // Difference with an empty set. |
589 apis1.insert(APIPermission::kTab); | 589 apis1.insert(APIPermission::kTab); |
590 apis1.insert(APIPermission::kBackground); | 590 apis1.insert(APIPermission::kBackground); |
591 permission = permission_info->CreateAPIPermission(); | 591 permission = permission_info->CreateAPIPermission(); |
592 { | 592 { |
593 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 593 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
594 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); | 594 value->AppendString("tcp-connect:*.example.com:80"); |
595 value->Append(new base::StringValue("udp-bind::8080")); | 595 value->AppendString("udp-bind::8080"); |
596 value->Append(new base::StringValue("udp-send-to::8888")); | 596 value->AppendString("udp-send-to::8888"); |
597 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 597 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
598 } | 598 } |
599 apis1.insert(permission); | 599 apis1.insert(permission); |
600 | 600 |
601 AddPattern(&explicit_hosts1, "http://*.google.com/*"); | 601 AddPattern(&explicit_hosts1, "http://*.google.com/*"); |
602 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); | 602 AddPattern(&scriptable_hosts1, "http://www.reddit.com/*"); |
603 | 603 |
604 set1.reset(new PermissionSet(apis1, manifest_permissions, explicit_hosts1, | 604 set1.reset(new PermissionSet(apis1, manifest_permissions, explicit_hosts1, |
605 scriptable_hosts1)); | 605 scriptable_hosts1)); |
606 set2.reset(new PermissionSet(apis2, manifest_permissions, explicit_hosts2, | 606 set2.reset(new PermissionSet(apis2, manifest_permissions, explicit_hosts2, |
607 scriptable_hosts2)); | 607 scriptable_hosts2)); |
608 new_set = PermissionSet::CreateDifference(*set1, *set2); | 608 new_set = PermissionSet::CreateDifference(*set1, *set2); |
609 EXPECT_EQ(*set1, *new_set); | 609 EXPECT_EQ(*set1, *new_set); |
610 | 610 |
611 // Now use a real second set. | 611 // Now use a real second set. |
612 apis2.insert(APIPermission::kTab); | 612 apis2.insert(APIPermission::kTab); |
613 apis2.insert(APIPermission::kProxy); | 613 apis2.insert(APIPermission::kProxy); |
614 apis2.insert(APIPermission::kClipboardWrite); | 614 apis2.insert(APIPermission::kClipboardWrite); |
615 apis2.insert(APIPermission::kPlugin); | 615 apis2.insert(APIPermission::kPlugin); |
616 permission = permission_info->CreateAPIPermission(); | 616 permission = permission_info->CreateAPIPermission(); |
617 { | 617 { |
618 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 618 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
619 value->Append(new base::StringValue("tcp-connect:*.example.com:80")); | 619 value->AppendString("tcp-connect:*.example.com:80"); |
620 value->Append(new base::StringValue("udp-send-to::8899")); | 620 value->AppendString("udp-send-to::8899"); |
621 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 621 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
622 } | 622 } |
623 apis2.insert(permission); | 623 apis2.insert(permission); |
624 | 624 |
625 expected_apis.insert(APIPermission::kBackground); | 625 expected_apis.insert(APIPermission::kBackground); |
626 permission = permission_info->CreateAPIPermission(); | 626 permission = permission_info->CreateAPIPermission(); |
627 { | 627 { |
628 std::unique_ptr<base::ListValue> value(new base::ListValue()); | 628 std::unique_ptr<base::ListValue> value(new base::ListValue()); |
629 value->Append(new base::StringValue("udp-bind::8080")); | 629 value->AppendString("udp-bind::8080"); |
630 value->Append(new base::StringValue("udp-send-to::8888")); | 630 value->AppendString("udp-send-to::8888"); |
631 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); | 631 ASSERT_TRUE(permission->FromValue(value.get(), NULL, NULL)); |
632 } | 632 } |
633 expected_apis.insert(permission); | 633 expected_apis.insert(permission); |
634 | 634 |
635 AddPattern(&explicit_hosts2, "http://*.example.com/*"); | 635 AddPattern(&explicit_hosts2, "http://*.example.com/*"); |
636 AddPattern(&explicit_hosts2, "http://*.google.com/*"); | 636 AddPattern(&explicit_hosts2, "http://*.google.com/*"); |
637 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); | 637 AddPattern(&scriptable_hosts2, "http://*.google.com/*"); |
638 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); | 638 AddPattern(&expected_scriptable_hosts, "http://www.reddit.com/*"); |
639 | 639 |
640 effective_hosts.ClearPatterns(); | 640 effective_hosts.ClearPatterns(); |
(...skipping 1125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1766 scoped_refptr<Extension> extension_dwr( | 1766 scoped_refptr<Extension> extension_dwr( |
1767 LoadManifest("permissions", "web_request_all_host_permissions.json")); | 1767 LoadManifest("permissions", "web_request_all_host_permissions.json")); |
1768 const PermissionSet& permissions_dwr = | 1768 const PermissionSet& permissions_dwr = |
1769 extension_dwr->permissions_data()->active_permissions(); | 1769 extension_dwr->permissions_data()->active_permissions(); |
1770 | 1770 |
1771 EXPECT_FALSE(PermissionMessageProvider::Get()->IsPrivilegeIncrease( | 1771 EXPECT_FALSE(PermissionMessageProvider::Get()->IsPrivilegeIncrease( |
1772 permissions, permissions_dwr, extension->GetType())); | 1772 permissions, permissions_dwr, extension->GetType())); |
1773 } | 1773 } |
1774 | 1774 |
1775 } // namespace extensions | 1775 } // namespace extensions |
OLD | NEW |