Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Issue 309533007: Refactor PermissionsData pt1 (Closed)

Created:
6 years, 6 months ago by Devlin
Modified:
6 years, 6 months ago
CC:
chromium-reviews, vandebo (ex-Chrome), vsevik, extensions-reviews_chromium.org, tfarina, yurys, tommycli, paulirish+reviews_chromium.org, Greg Billock, devtools-reviews_chromium.org, chromium-apps-reviews_chromium.org, aandrey+blink_chromium.org, pfeldman, miu+watch_chromium.org
Visibility:
Public.

Description

Refactor PermissionsData pt1 In this CL, we: - Make PermissionsData not-so-static. Only methods which either don't rely on knowledge of specific permissions or methods to get/create the object are static. - Separate runtime permissions knowledge from manifest parsing (PermissionsData vs PermissionsParser) - Move required/optional permissions access into PermissionsParser. - Handle the locking issues. BUG=379356 TBR=sky@chromium.org (for c/b/ui/, no functional changes) Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=275142

Patch Set 1 : #

Total comments: 43

Patch Set 2 : #

Total comments: 4

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : Latest master #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1157 lines, -1029 lines) Patch
M chrome/browser/apps/ephemeral_app_launcher.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/chrome_content_browser_client.cc View 1 2 3 4 1 chunk +7 lines, -8 lines 0 comments Download
M chrome/browser/extensions/active_script_controller.cc View 1 2 3 4 1 chunk +5 lines, -4 lines 0 comments Download
M chrome/browser/extensions/active_tab_permission_granter.cc View 1 3 chunks +9 lines, -8 lines 0 comments Download
M chrome/browser/extensions/active_tab_unittest.cc View 1 3 chunks +15 lines, -17 lines 0 comments Download
M chrome/browser/extensions/api/automation_internal/automation_internal_api.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/extensions/api/autotest_private/autotest_private_api.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/extensions/api/commands/command_service.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M chrome/browser/extensions/api/cookies/cookies_api.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/extensions/api/cookies/cookies_helpers.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc View 1 chunk +7 lines, -4 lines 0 comments Download
M chrome/browser/extensions/api/hid/hid_api.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M chrome/browser/extensions/api/management/management_api.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/extensions/api/media_galleries/media_galleries_api.cc View 1 2 chunks +11 lines, -8 lines 0 comments Download
M chrome/browser/extensions/api/permissions/permissions_api.cc View 1 3 chunks +5 lines, -5 lines 0 comments Download
M chrome/browser/extensions/api/tab_capture/tab_capture_api.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/extensions/api/tabs/tabs_api.cc View 1 2 3 4 4 chunks +21 lines, -21 lines 0 comments Download
M chrome/browser/extensions/api/web_request/web_request_api.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M chrome/browser/extensions/api/web_request/web_request_permissions.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M chrome/browser/extensions/browser_permissions_policy_delegate_unittest.cc View 1 1 chunk +14 lines, -10 lines 0 comments Download
M chrome/browser/extensions/bundle_installer.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/extensions/crx_installer.cc View 1 2 3 4 2 chunks +9 lines, -6 lines 0 comments Download
M chrome/browser/extensions/extension_gcm_app_handler.cc View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/extensions/extension_install_prompt.cc View 1 2 1 chunk +15 lines, -12 lines 0 comments Download
M chrome/browser/extensions/extension_keybinding_apitest.cc View 1 chunk +2 lines, -4 lines 0 comments Download
M chrome/browser/extensions/extension_service.cc View 1 2 3 4 6 chunks +14 lines, -13 lines 0 comments Download
M chrome/browser/extensions/extension_tab_util.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/extensions/permissions_updater.cc View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/media_galleries/media_galleries_dialog_controller.cc View 1 chunk +6 lines, -6 lines 0 comments Download
M chrome/browser/media_galleries/media_galleries_preferences.cc View 1 2 chunks +9 lines, -6 lines 0 comments Download
M chrome/browser/media_galleries/media_galleries_scan_result_dialog_controller.cc View 1 1 chunk +6 lines, -8 lines 0 comments Download
M chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm View 1 2 3 4 1 chunk +5 lines, -5 lines 0 comments Download
M chrome/browser/ui/omnibox/location_bar.cc View 1 chunk +5 lines, -7 lines 0 comments Download
M chrome/browser/ui/views/apps/app_info_dialog/app_info_permissions_tab.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M chrome/browser/ui/views/location_bar/location_bar_view.cc View 1 2 3 4 1 chunk +7 lines, -5 lines 0 comments Download
M chrome/browser/ui/webui/extensions/extension_settings_handler.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M chrome/common/extensions/api/plugins/plugins_handler.cc View 2 chunks +2 lines, -3 lines 0 comments Download
M chrome/common/extensions/api/storage/storage_schema_manifest_handler.cc View 2 chunks +2 lines, -4 lines 0 comments Download
M chrome/common/extensions/extension_unittest.cc View 2 chunks +29 lines, -29 lines 0 comments Download
M chrome/common/extensions/manifest_handlers/app_isolation_info.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M chrome/common/extensions/manifest_handlers/content_scripts_handler.cc View 1 2 3 4 2 chunks +3 lines, -3 lines 0 comments Download
M chrome/common/extensions/manifest_handlers/settings_overrides_handler.cc View 2 chunks +23 lines, -16 lines 0 comments Download
M chrome/common/extensions/manifest_tests/extension_manifests_chromepermission_unittest.cc View 1 chunk +3 lines, -2 lines 0 comments Download
M chrome/common/extensions/manifest_tests/extension_manifests_devtools_unittest.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/common/extensions/manifest_url_handler.cc View 2 chunks +2 lines, -3 lines 0 comments Download
M chrome/common/extensions/permissions/permission_set_unittest.cc View 10 chunks +15 lines, -12 lines 0 comments Download
M chrome/common/extensions/permissions/settings_override_permission_unittest.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc View 1 2 3 4 2 chunks +9 lines, -9 lines 0 comments Download
M chrome/renderer/extensions/renderer_permissions_policy_delegate_unittest.cc View 3 chunks +12 lines, -8 lines 0 comments Download
M extensions/browser/api/socket/socket_api.cc View 7 chunks +14 lines, -14 lines 0 comments Download
M extensions/browser/api/usb/usb_api.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M extensions/common/extension.h View 3 chunks +13 lines, -2 lines 0 comments Download
M extensions/common/extension.cc View 4 chunks +10 lines, -7 lines 0 comments Download
M extensions/common/extension_messages.cc View 1 chunk +3 lines, -4 lines 0 comments Download
M extensions/common/features/permission_feature.cc View 1 chunk +2 lines, -1 line 0 comments Download
M extensions/common/manifest_handlers/background_info.cc View 3 chunks +5 lines, -5 lines 0 comments Download
M extensions/common/manifest_handlers/externally_connectable.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M extensions/common/manifest_handlers/offline_enabled_info.cc View 2 chunks +2 lines, -3 lines 0 comments Download
A extensions/common/manifest_handlers/permissions_parser.h View 1 1 chunk +63 lines, -0 lines 0 comments Download
A extensions/common/manifest_handlers/permissions_parser.cc View 1 1 chunk +357 lines, -0 lines 0 comments Download
M extensions/common/permissions/permissions_data.h View 1 2 4 chunks +106 lines, -127 lines 0 comments Download
M extensions/common/permissions/permissions_data.cc View 1 2 3 4 6 chunks +119 lines, -465 lines 0 comments Download
M extensions/common/permissions/permissions_data_unittest.cc View 26 chunks +109 lines, -85 lines 0 comments Download
M extensions/extensions.gyp View 1 1 chunk +2 lines, -0 lines 0 comments Download
M extensions/renderer/dispatcher.cc View 1 2 3 4 2 chunks +2 lines, -2 lines 0 comments Download
M extensions/renderer/script_injection.cc View 1 2 3 4 2 chunks +12 lines, -11 lines 0 comments Download
M extensions/renderer/user_script_scheduler.cc View 1 chunk +8 lines, -7 lines 0 comments Download

Messages

Total messages: 23 (0 generated)
Devlin
Yes, this looks really, really scary. But's it's not as bad as it seems. The ...
6 years, 6 months ago (2014-06-02 22:33:49 UTC) #1
Lei Zhang
https://codereview.chromium.org/309533007/diff/40001/chrome/browser/media_galleries/media_galleries_preferences.cc File chrome/browser/media_galleries/media_galleries_preferences.cc (right): https://codereview.chromium.org/309533007/diff/40001/chrome/browser/media_galleries/media_galleries_preferences.cc#newcode99 chrome/browser/media_galleries/media_galleries_preferences.cc:99: if (extensions::PermissionsData::ForExtension(*i) I'm only looking at the media galleries ...
6 years, 6 months ago (2014-06-02 22:40:30 UTC) #2
not at google - send to devlin
On 2014/06/02 22:40:30, Lei Zhang wrote: > https://codereview.chromium.org/309533007/diff/40001/chrome/browser/media_galleries/media_galleries_preferences.cc > File chrome/browser/media_galleries/media_galleries_preferences.cc (right): > > https://codereview.chromium.org/309533007/diff/40001/chrome/browser/media_galleries/media_galleries_preferences.cc#newcode99 ...
6 years, 6 months ago (2014-06-02 22:43:00 UTC) #3
not at google - send to devlin
looking forward to that ActivePermissions change :) https://codereview.chromium.org/309533007/diff/40001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/309533007/diff/40001/chrome/browser/chrome_content_browser_client.cc#newcode2519 chrome/browser/chrome_content_browser_client.cc:2519: ->HasAPIPermission(extensions::APIPermission::kSocket)) { ...
6 years, 6 months ago (2014-06-02 23:20:05 UTC) #4
not at google - send to devlin
https://codereview.chromium.org/309533007/diff/40001/extensions/common/extension.h File extensions/common/extension.h (right): https://codereview.chromium.org/309533007/diff/40001/extensions/common/extension.h#newcode316 extensions/common/extension.h:316: } On 2014/06/02 23:20:06, kalman wrote: > neither PermissionsParser ...
6 years, 6 months ago (2014-06-03 14:39:35 UTC) #5
Devlin
All changes were originally made via script, which ensured that it was no better nor ...
6 years, 6 months ago (2014-06-03 15:28:21 UTC) #6
not at google - send to devlin
https://codereview.chromium.org/309533007/diff/40001/chrome/browser/extensions/api/web_request/web_request_permissions.cc File chrome/browser/extensions/api/web_request/web_request_permissions.cc (right): https://codereview.chromium.org/309533007/diff/40001/chrome/browser/extensions/api/web_request/web_request_permissions.cc#newcode136 chrome/browser/extensions/api/web_request/web_request_permissions.cc:136: extensions::PermissionsData::ForExtension(extension) On 2014/06/03 15:28:21, Devlin wrote: > On 2014/06/02 ...
6 years, 6 months ago (2014-06-03 15:45:16 UTC) #7
Devlin
https://chromiumcodereview.appspot.com/309533007/diff/40001/chrome/browser/extensions/api/web_request/web_request_permissions.cc File chrome/browser/extensions/api/web_request/web_request_permissions.cc (right): https://chromiumcodereview.appspot.com/309533007/diff/40001/chrome/browser/extensions/api/web_request/web_request_permissions.cc#newcode136 chrome/browser/extensions/api/web_request/web_request_permissions.cc:136: extensions::PermissionsData::ForExtension(extension) On 2014/06/03 15:45:16, kalman wrote: > On 2014/06/03 ...
6 years, 6 months ago (2014-06-03 15:47:59 UTC) #8
not at google - send to devlin
fair enough. ok, lgtm once you do the unsafe_active_permissions_ change and make callers use active_permissions() ...
6 years, 6 months ago (2014-06-03 15:50:25 UTC) #9
not at google - send to devlin
lgtm https://chromiumcodereview.appspot.com/309533007/diff/50001/extensions/common/permissions/permissions_data.cc File extensions/common/permissions/permissions_data.cc (right): https://chromiumcodereview.appspot.com/309533007/diff/50001/extensions/common/permissions/permissions_data.cc#newcode37 extensions/common/permissions/permissions_data.cc:37: base::AutoLock aut_lock(runtime_lock_); auto_lock https://chromiumcodereview.appspot.com/309533007/diff/50001/extensions/common/permissions/permissions_data.h File extensions/common/permissions/permissions_data.h (right): https://chromiumcodereview.appspot.com/309533007/diff/50001/extensions/common/permissions/permissions_data.h#newcode197 ...
6 years, 6 months ago (2014-06-03 15:51:43 UTC) #10
Devlin
On 2014/06/03 15:50:25, kalman wrote: > fair enough. > > ok, lgtm once you do ...
6 years, 6 months ago (2014-06-03 15:56:15 UTC) #11
Devlin
thestig@, friendly ping?
6 years, 6 months ago (2014-06-03 20:07:13 UTC) #12
Lei Zhang
On 2014/06/03 20:07:13, Devlin wrote: > thestig@, friendly ping? Which part do you want me ...
6 years, 6 months ago (2014-06-03 20:26:04 UTC) #13
Devlin
On 2014/06/03 20:26:04, Lei Zhang wrote: > On 2014/06/03 20:07:13, Devlin wrote: > > thestig@, ...
6 years, 6 months ago (2014-06-03 20:58:16 UTC) #14
Lei Zhang
On 2014/06/03 20:58:16, Devlin wrote: > On 2014/06/03 20:26:04, Lei Zhang wrote: > > On ...
6 years, 6 months ago (2014-06-03 21:22:43 UTC) #15
Devlin
The CQ bit was checked by rdevlin.cronin@chromium.org
6 years, 6 months ago (2014-06-04 21:52:32 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rdevlin.cronin@chromium.org/309533007/110001
6 years, 6 months ago (2014-06-04 21:54:58 UTC) #17
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_chromium_gn_compile_rel on tryserver.chromium ...
6 years, 6 months ago (2014-06-05 02:10:11 UTC) #18
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 6 months ago (2014-06-05 02:25:31 UTC) #19
commit-bot: I haz the power
Try jobs failed on following builders: android_chromium_gn_compile_rel on tryserver.chromium (http://build.chromium.org/p/tryserver.chromium/builders/android_chromium_gn_compile_rel/builds/10755)
6 years, 6 months ago (2014-06-05 02:25:32 UTC) #20
Devlin
The CQ bit was checked by rdevlin.cronin@chromium.org
6 years, 6 months ago (2014-06-05 16:03:26 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rdevlin.cronin@chromium.org/309533007/110001
6 years, 6 months ago (2014-06-05 16:04:26 UTC) #22
commit-bot: I haz the power
6 years, 6 months ago (2014-06-05 16:16:34 UTC) #23
Message was sent while issue was closed.
Change committed as 275142

Powered by Google App Engine
This is Rietveld 408576698