| 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 |