There's a bunch of places we're passing around raw pointers for permissions ownership (e.g., [1], [2], [3]). We should clean these up. [1] https://chromium.googlesource.com/chromium/src/+/0a0942f1975a6c8dc8f345fa336f1facbc9d571e/extensions/common/permissions/base_set_operators.h#261 [2] https://chromium.googlesource.com/chromium/src/+/eb1284eaf4c4a1edffe7800e211a9b940410d2a3/extensions/common/permissions/api_permission_set.h#48 [3] https://chromium.googlesource.com/chromium/src/+/08d77f2bf2c8fcc644508037e7df7fb4619b1e1d/extensions/common/permissions/api_permission.h#328
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/033021e61f385591df24e93c8e0b58ff5a90e5a7 commit 033021e61f385591df24e93c8e0b58ff5a90e5a7 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Tue Nov 27 18:21:45 2018 [Extensions Cleanup] Make BaseSetOperators::insert() take a unique_ptr Update BaseSetOperators::insert() (and the related method APIpermissionSet::insert()) accept a unique_ptr as a parameter rather than a raw pointer. This makes it significantly more clear that ownership is taken as a result of the method call. Update all call sites appropriately. Bug: 907661 Change-Id: I08568711a01d7a371343dc9137aefedf86d43c7a Reviewed-on: https://chromium-review.googlesource.com/c/1347621 Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Reviewed-by: Dominick Ng <dominickn@chromium.org> Cr-Commit-Position: refs/heads/master@{#611201} [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/chrome/browser/chromeos/extensions/permissions_updater_delegate_chromeos_unittest.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/chrome/browser/extensions/extension_prefs_unittest.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/chrome/common/extensions/permissions/chrome_permission_message_provider_unittest.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/chrome/common/extensions/permissions/permission_set_unittest.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/extension_messages.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/manifest_handler.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/manifest_handlers/content_capabilities_handler.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/manifest_handlers/permissions_parser.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/permissions/api_permission_set.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/permissions/api_permission_set.h [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/permissions/api_permission_set_unittest.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/permissions/base_set_operators.h [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/permissions/manifest_permission_set.cc [modify] https://crrev.com/033021e61f385591df24e93c8e0b58ff5a90e5a7/extensions/common/permissions/manifest_permission_set_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ddc9bf082ec5f0fd738871f5487d485fcff66547 commit ddc9bf082ec5f0fd738871f5487d485fcff66547 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Thu Nov 29 02:56:47 2018 [Extensions Cleanup] Update <Permission>::Clone/Diff/etc to unique_ptr Update APIPermission and ManifestPermission (and their subsequent subclasses) to return a std::unique_ptr from the Clone(), Diff(), Union(), and Intersection() methods. This makes the ownership of the return result significantly more clear. Update all usages of these methods as well. Bug: 907661 Change-Id: I5110014cca0af9b5364fd8fa8bdcdfc4fee58195 Reviewed-on: https://chromium-review.googlesource.com/c/1347777 Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Cr-Commit-Position: refs/heads/master@{#612005} [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/chrome/common/extensions/manifest_handlers/ui_overrides_handler.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/chrome/common/extensions/permissions/permission_set_unittest.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/bluetooth/bluetooth_manifest_handler.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/bluetooth/bluetooth_manifest_permission.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/bluetooth/bluetooth_manifest_permission.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/sockets/sockets_manifest_handler.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/sockets/sockets_manifest_permission.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/sockets/sockets_manifest_permission.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/api/sockets/sockets_manifest_permission_unittest.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/manifest_handlers/automation.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/api_permission.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/api_permission.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/api_permission_set_unittest.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/base_set_operators.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/base_set_operators_unittest.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/manifest_permission.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/manifest_permission.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/manifest_permission_set_unittest.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/mock_manifest_permission.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/mock_manifest_permission.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/set_disjunction_permission.h [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/settings_override_permission.cc [modify] https://crrev.com/ddc9bf082ec5f0fd738871f5487d485fcff66547/extensions/common/permissions/settings_override_permission.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5f0add91bb9884d2a28dffb127301f3b15e7caa0 commit 5f0add91bb9884d2a28dffb127301f3b15e7caa0 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Thu Nov 29 17:11:31 2018 [Extensions Cleanup] Make CreateAPIPermission return a unique_ptr APIPermission::CreateAPIPermission() returns a newly-created APIPermission object. Update it to return a unique_ptr rather than a raw c-style pointer. Bug: 907661 TBR=dominickn@chromium.org (mechanical change to chrome_apps_api_permissions.cc) Change-Id: Ia27e4d7da11fce00e30f0fd1720f110e22d74346 Reviewed-on: https://chromium-review.googlesource.com/c/1347796 Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Cr-Commit-Position: refs/heads/master@{#612241} [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/chrome/common/apps/platform_apps/chrome_apps_api_permissions.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/chrome/common/extensions/permissions/chrome_api_permissions.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/chrome/common/extensions/permissions/permission_set_unittest.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/extensions/common/manifest_handlers/content_capabilities_handler.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/extensions/common/permissions/api_permission.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/extensions/common/permissions/api_permission.h [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/extensions/common/permissions/api_permission_set.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/extensions/common/permissions/api_permission_set_unittest.cc [modify] https://crrev.com/5f0add91bb9884d2a28dffb127301f3b15e7caa0/extensions/common/permissions/extensions_api_permissions.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4e26e25923fa7b82249f016fdbc84515915c2218 commit 4e26e25923fa7b82249f016fdbc84515915c2218 Author: Devlin Cronin <rdevlin.cronin@chromium.org> Date: Thu Nov 29 19:31:56 2018 [Extensions Cleanup] Update BaseSetOperators<T>::Map type to unique_ptr Update the underlying BaseSetOperators<T>::Map type to use std::unique_ptrs instead of linked_ptrs. Bug: 907661 Change-Id: I2161ca2acc513ee5d78cc32b14f27199f5a7d1b7 Reviewed-on: https://chromium-review.googlesource.com/c/1351422 Commit-Queue: Devlin <rdevlin.cronin@chromium.org> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org> Cr-Commit-Position: refs/heads/master@{#612317} [modify] https://crrev.com/4e26e25923fa7b82249f016fdbc84515915c2218/extensions/common/permissions/base_set_operators.h
Comment 1 by bugdroid1@chromium.org
, Nov 27