| Index: chrome/browser/extensions/permissions_updater_unittest.cc
|
| diff --git a/chrome/browser/extensions/permissions_updater_unittest.cc b/chrome/browser/extensions/permissions_updater_unittest.cc
|
| index 4621b9ce36025b8e2158253b78eb94b45133791b..26684581e6e37a910d9a2f218e8fe2a3836fc3bf 100644
|
| --- a/chrome/browser/extensions/permissions_updater_unittest.cc
|
| +++ b/chrome/browser/extensions/permissions_updater_unittest.cc
|
| @@ -156,7 +156,7 @@ class PermissionsUpdaterListener : public content::NotificationObserver {
|
| content::Details<UpdatedExtensionPermissionsInfo>(details).ptr();
|
|
|
| extension_ = info->extension;
|
| - permissions_ = info->permissions;
|
| + permissions_ = info->permissions.Clone();
|
| reason_ = info->reason;
|
|
|
| if (waiting_) {
|
| @@ -169,7 +169,7 @@ class PermissionsUpdaterListener : public content::NotificationObserver {
|
| bool waiting_;
|
| content::NotificationRegistrar registrar_;
|
| scoped_refptr<const Extension> extension_;
|
| - scoped_refptr<const PermissionSet> permissions_;
|
| + scoped_ptr<const PermissionSet> permissions_;
|
| UpdatedExtensionPermissionsInfo::Reason reason_;
|
| };
|
|
|
| @@ -210,14 +210,16 @@ TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
|
|
|
| URLPatternSet default_hosts;
|
| AddPattern(&default_hosts, "http://a.com/*");
|
| - scoped_refptr<const PermissionSet> default_permissions = new PermissionSet(
|
| - default_apis, empty_manifest_permissions, default_hosts, URLPatternSet());
|
| + PermissionSet default_permissions(default_apis, empty_manifest_permissions,
|
| + default_hosts, URLPatternSet());
|
|
|
| // Make sure it loaded properly.
|
| - scoped_refptr<const PermissionSet> permissions =
|
| - extension->permissions_data()->active_permissions();
|
| - ASSERT_EQ(*default_permissions.get(),
|
| - *extension->permissions_data()->active_permissions().get());
|
| + ASSERT_EQ(default_permissions,
|
| + *extension->permissions_data()->active_permissions());
|
| +
|
| + ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
|
| + scoped_ptr<const PermissionSet> active_permissions;
|
| + scoped_ptr<const PermissionSet> granted_permissions;
|
|
|
| // Add a few permissions.
|
| APIPermissionSet apis;
|
| @@ -225,12 +227,12 @@ TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
|
| URLPatternSet hosts;
|
| AddPattern(&hosts, "http://*.c.com/*");
|
|
|
| - scoped_refptr<const PermissionSet> delta = new PermissionSet(
|
| - apis, empty_manifest_permissions, hosts, URLPatternSet());
|
| + {
|
| + PermissionSet delta(apis, empty_manifest_permissions, hosts,
|
| + URLPatternSet());
|
|
|
| PermissionsUpdaterListener listener;
|
| - PermissionsUpdater updater(profile_.get());
|
| - updater.AddPermissions(extension.get(), delta.get());
|
| + PermissionsUpdater(profile_.get()).AddPermissions(extension.get(), &delta);
|
|
|
| listener.Wait();
|
|
|
| @@ -238,57 +240,54 @@ TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
|
| ASSERT_TRUE(listener.received_notification());
|
| ASSERT_EQ(extension.get(), listener.extension());
|
| ASSERT_EQ(UpdatedExtensionPermissionsInfo::ADDED, listener.reason());
|
| - ASSERT_EQ(*delta.get(), *listener.permissions());
|
| + ASSERT_EQ(delta, *listener.permissions());
|
|
|
| // Make sure the extension's active permissions reflect the change.
|
| - scoped_refptr<const PermissionSet> active_permissions =
|
| - PermissionSet::CreateUnion(*default_permissions, *delta);
|
| + active_permissions = PermissionSet::CreateUnion(default_permissions, delta);
|
| ASSERT_EQ(*active_permissions.get(),
|
| - *extension->permissions_data()->active_permissions().get());
|
| + *extension->permissions_data()->active_permissions());
|
|
|
| // Verify that the new granted and active permissions were also stored
|
| // in the extension preferences. In this case, the granted permissions should
|
| // be equal to the active permissions.
|
| - ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
|
| - scoped_refptr<const PermissionSet> granted_permissions = active_permissions;
|
| -
|
| - scoped_refptr<const PermissionSet> from_prefs =
|
| - prefs->GetActivePermissions(extension->id());
|
| - ASSERT_EQ(*active_permissions.get(), *from_prefs.get());
|
| -
|
| - from_prefs = prefs->GetGrantedPermissions(extension->id());
|
| - ASSERT_EQ(*active_permissions.get(), *from_prefs.get());
|
| + ASSERT_EQ(*active_permissions.get(),
|
| + *prefs->GetActivePermissions(extension->id()));
|
| + granted_permissions = active_permissions->Clone();
|
| + ASSERT_EQ(*granted_permissions,
|
| + *prefs->GetGrantedPermissions(extension->id()));
|
| + }
|
|
|
| + {
|
| // In the second part of the test, we'll remove the permissions that we
|
| // just added except for 'notifications'.
|
| apis.erase(APIPermission::kNotifications);
|
| - delta = new PermissionSet(apis, empty_manifest_permissions,
|
| - hosts, URLPatternSet());
|
| + PermissionSet delta(apis, empty_manifest_permissions, hosts, URLPatternSet());
|
|
|
| - listener.Reset();
|
| - updater.RemovePermissions(extension.get(), delta.get(),
|
| - PermissionsUpdater::REMOVE_SOFT);
|
| + PermissionsUpdaterListener listener;
|
| + PermissionsUpdater(profile_.get())
|
| + .RemovePermissions(extension.get(), &delta,
|
| + PermissionsUpdater::REMOVE_SOFT);
|
| listener.Wait();
|
|
|
| // Verify that the notification was correct.
|
| ASSERT_TRUE(listener.received_notification());
|
| ASSERT_EQ(extension.get(), listener.extension());
|
| ASSERT_EQ(UpdatedExtensionPermissionsInfo::REMOVED, listener.reason());
|
| - ASSERT_EQ(*delta.get(), *listener.permissions());
|
| + ASSERT_EQ(delta, *listener.permissions());
|
|
|
| // Make sure the extension's active permissions reflect the change.
|
| active_permissions =
|
| - PermissionSet::CreateDifference(*active_permissions, *delta);
|
| + PermissionSet::CreateDifference(*active_permissions, delta);
|
| ASSERT_EQ(*active_permissions.get(),
|
| - *extension->permissions_data()->active_permissions().get());
|
| + *extension->permissions_data()->active_permissions());
|
|
|
| // Verify that the extension prefs hold the new active permissions and the
|
| // same granted permissions.
|
| - from_prefs = prefs->GetActivePermissions(extension->id());
|
| - ASSERT_EQ(*active_permissions.get(), *from_prefs.get());
|
| + ASSERT_EQ(*active_permissions, *prefs->GetActivePermissions(extension->id()));
|
|
|
| - from_prefs = prefs->GetGrantedPermissions(extension->id());
|
| - ASSERT_EQ(*granted_permissions.get(), *from_prefs.get());
|
| + ASSERT_EQ(*granted_permissions,
|
| + *prefs->GetGrantedPermissions(extension->id()));
|
| + }
|
| }
|
|
|
| TEST_F(PermissionsUpdaterTest, WithholdAllHosts) {
|
| @@ -495,15 +494,15 @@ TEST_F(PermissionsUpdaterTest, RevokingPermissions) {
|
| auto api_permission_set = [](APIPermission::ID id) {
|
| APIPermissionSet apis;
|
| apis.insert(id);
|
| - return make_scoped_refptr(new PermissionSet(
|
| - apis, ManifestPermissionSet(), URLPatternSet(), URLPatternSet()));
|
| + return make_scoped_ptr(new PermissionSet(apis, ManifestPermissionSet(),
|
| + URLPatternSet(), URLPatternSet()));
|
| };
|
|
|
| auto url_permission_set = [](const GURL& url) {
|
| URLPatternSet set;
|
| URLPattern pattern(URLPattern::SCHEME_ALL, url.spec());
|
| set.AddPattern(pattern);
|
| - return make_scoped_refptr(new PermissionSet(
|
| + return make_scoped_ptr(new PermissionSet(
|
| APIPermissionSet(), ManifestPermissionSet(), set, URLPatternSet()));
|
| };
|
|
|
| @@ -529,7 +528,7 @@ TEST_F(PermissionsUpdaterTest, RevokingPermissions) {
|
| // its granted permissions (stored in prefs). And, the permission should
|
| // be revokable.
|
| EXPECT_TRUE(permissions->HasAPIPermission(APIPermission::kCookie));
|
| - scoped_refptr<const PermissionSet> granted_permissions =
|
| + scoped_ptr<const PermissionSet> granted_permissions =
|
| prefs->GetGrantedPermissions(extension->id());
|
| EXPECT_TRUE(granted_permissions->HasAPIPermission(APIPermission::kCookie));
|
| EXPECT_TRUE(updater.GetRevokablePermissions(extension.get())
|
|
|