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

Issue 9317013: Add a centralized mechanism for whitelisting access to extension permissions. (Closed)

Created:
8 years, 10 months ago by jstritar
Modified:
8 years, 10 months ago
CC:
chromium-reviews, nkostylev+watch_chromium.org, mihaip+watch_chromium.org, darin-cc_chromium.org, brettw-cc_chromium.org, stevenjb+watch_chromium.org, davemoore+watch_chromium.org, yusukes+watch_chromium.org, ygorshenin1, zel
Base URL:
http://git.chromium.org/chromium/src.git@master
Visibility:
Public.

Description

Add a centralized mechanism for whitelisting access to extension permissions. This also updates the following permissions to use the whitelist: - terminalPrivate - webSocketProxyPrivate - chromePrivate - inputMethodPrivate - chromeAuthPrivate - webstorePrivate Includes more tests to verify that Extension loading fails for different permission parameters: - by extension type - component only flag - whitelists BUG=84211, 111314 TEST=extension unit and browser tests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=121111

Patch Set 1 #

Patch Set 2 : nits #

Patch Set 3 : fix a couple tests #

Total comments: 6

Patch Set 4 : . #

Patch Set 5 : merge TerminalPrivate api changes #

Total comments: 6

Patch Set 6 : comments #

Total comments: 12

Patch Set 7 : comments #

Patch Set 8 : . #

Total comments: 1

Patch Set 9 : update CanSpecifyAPIPermission logic #

Total comments: 3

Patch Set 10 : . #

Unified diffs Side-by-side diffs Delta from patch set Stats (+403 lines, -667 lines) Patch
M chrome/browser/chrome_content_browser_client.cc View 1 2 3 4 5 6 7 8 9 1 chunk +8 lines, -4 lines 0 comments Download
M chrome/browser/chromeos/extensions/input_method_event_router.h View 1 chunk +0 lines, -3 lines 0 comments Download
M chrome/browser/chromeos/extensions/input_method_event_router.cc View 4 chunks +4 lines, -40 lines 0 comments Download
M chrome/browser/chromeos/web_socket_proxy.h View 1 chunk +1 line, -2 lines 0 comments Download
M chrome/browser/chromeos/web_socket_proxy.cc View 7 chunks +4 lines, -19 lines 0 comments Download
M chrome/browser/chromeos/web_socket_proxy_controller.h View 2 chunks +0 lines, -10 lines 0 comments Download
M chrome/browser/chromeos/web_socket_proxy_controller.cc View 4 chunks +1 line, -84 lines 0 comments Download
M chrome/browser/extensions/api/terminal/terminal_extension_helper.h View 1 2 3 4 1 chunk +1 line, -8 lines 0 comments Download
M chrome/browser/extensions/api/terminal/terminal_extension_helper.cc View 1 2 3 4 5 1 chunk +21 lines, -39 lines 0 comments Download
M chrome/browser/extensions/api/terminal/terminal_private_api.cc View 1 2 3 4 3 chunks +0 lines, -11 lines 0 comments Download
M chrome/browser/extensions/api/terminal/terminal_private_apitest.cc View 1 2 3 4 1 chunk +8 lines, -5 lines 0 comments Download
M chrome/browser/extensions/extension_chrome_auth_private_api.cc View 2 chunks +0 lines, -22 lines 0 comments Download
M chrome/browser/extensions/extension_chrome_auth_private_apitest.cc View 1 chunk +0 lines, -8 lines 0 comments Download
A chrome/browser/extensions/extension_chrome_private_apitest.cc View 1 1 chunk +19 lines, -0 lines 0 comments Download
M chrome/browser/extensions/extension_decode_jpeg_apitest.cc View 1 1 chunk +0 lines, -9 lines 0 comments Download
M chrome/browser/extensions/extension_input_method_api.cc View 2 chunks +1 line, -12 lines 0 comments Download
M chrome/browser/extensions/extension_input_method_apitest.cc View 2 chunks +11 lines, -1 line 0 comments Download
M chrome/browser/extensions/extension_web_socket_proxy_private_api.cc View 2 chunks +9 lines, -22 lines 0 comments Download
M chrome/browser/extensions/extension_web_socket_proxy_private_apitest.cc View 2 chunks +1 line, -2 lines 0 comments Download
M chrome/browser/extensions/extension_webstore_private_api.cc View 7 chunks +0 lines, -32 lines 0 comments Download
M chrome/chrome_tests.gypi View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -1 line 0 comments Download
M chrome/common/chrome_switches.h View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -1 line 0 comments Download
M chrome/common/chrome_switches.cc View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -3 lines 0 comments Download
M chrome/common/extensions/extension.h View 1 chunk +0 lines, -1 line 0 comments Download
M chrome/common/extensions/extension.cc View 1 2 3 4 5 6 7 8 3 chunks +17 lines, -16 lines 0 comments Download
M chrome/common/extensions/extension_constants.h View 1 2 3 4 5 6 7 8 9 1 chunk +18 lines, -0 lines 0 comments Download
M chrome/common/extensions/extension_constants.cc View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/common/extensions/extension_manifests_unittest.cc View 1 2 3 1 chunk +0 lines, -100 lines 0 comments Download
M chrome/common/extensions/extension_permission_set.h View 1 2 3 4 5 7 chunks +21 lines, -5 lines 0 comments Download
M chrome/common/extensions/extension_permission_set.cc View 1 2 3 4 5 6 7 8 9 9 chunks +75 lines, -29 lines 0 comments Download
M chrome/common/extensions/extension_permission_set_unittest.cc View 1 2 3 4 5 6 7 8 27 chunks +172 lines, -44 lines 0 comments Download
M chrome/renderer/extensions/chrome_private_custom_bindings.cc View 1 chunk +0 lines, -13 lines 0 comments Download
D chrome/test/data/extensions/api_test/chrome_auth_private/installed_app/background.html View 1 chunk +0 lines, -6 lines 0 comments Download
D chrome/test/data/extensions/api_test/chrome_auth_private/installed_app/cloud_print_exception.js View 1 chunk +0 lines, -28 lines 0 comments Download
D chrome/test/data/extensions/api_test/chrome_auth_private/installed_app/manifest.json View 1 chunk +0 lines, -12 lines 0 comments Download
D chrome/test/data/extensions/api_test/chrome_auth_private/installed_component_app/background.html View 1 chunk +0 lines, -6 lines 0 comments Download
D chrome/test/data/extensions/api_test/chrome_auth_private/installed_component_app/cloud_print_fail.js View 1 chunk +0 lines, -19 lines 0 comments Download
D chrome/test/data/extensions/api_test/chrome_auth_private/installed_component_app/manifest.json View 1 chunk +0 lines, -13 lines 0 comments Download
D chrome/test/data/extensions/api_test/terminal/component_extension/background.html View 1 2 3 4 1 chunk +0 lines, -5 lines 0 comments Download
M chrome/test/data/extensions/api_test/terminal/component_extension/manifest.json View 1 2 3 4 1 chunk +0 lines, -3 lines 0 comments Download
D chrome/test/data/extensions/api_test/terminal/no_permission/manifest.json View 1 chunk +0 lines, -9 lines 0 comments Download
D chrome/test/data/extensions/api_test/terminal/no_permission/test.js View 1 chunk +0 lines, -20 lines 0 comments Download

Messages

Total messages: 23 (0 generated)
jstritar
8 years, 10 months ago (2012-01-31 22:55:40 UTC) #1
jstritar
@tbarzic: Could you take a look at the terminalPrivate changes? http://codereview.chromium.org/9317013/diff/5005/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc File chrome/browser/extensions/api/terminal/terminal_extension_helper.cc (left): http://codereview.chromium.org/9317013/diff/5005/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc#oldcode43 ...
8 years, 10 months ago (2012-02-01 16:09:51 UTC) #2
jstritar
+tbarzic: see the previous email, forgot to add you.
8 years, 10 months ago (2012-02-01 16:10:22 UTC) #3
tbarzic
http://codereview.chromium.org/9317013/diff/5005/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc File chrome/browser/extensions/api/terminal/terminal_extension_helper.cc (left): http://codereview.chromium.org/9317013/diff/5005/chrome/browser/extensions/api/terminal/terminal_extension_helper.cc#oldcode43 chrome/browser/extensions/api/terminal/terminal_extension_helper.cc:43: GURL TerminalExtensionHelper::GetCroshExtensionURL(Profile* profile) { On 2012/02/01 16:09:51, jstritar wrote: ...
8 years, 10 months ago (2012-02-01 18:32:43 UTC) #4
tbarzic
http://codereview.chromium.org/9317013/diff/5005/chrome/common/extensions/extension_permission_set.cc File chrome/common/extensions/extension_permission_set.cc (right): http://codereview.chromium.org/9317013/diff/5005/chrome/common/extensions/extension_permission_set.cc#newcode84 chrome/common/extensions/extension_permission_set.cc:84: "okddffdblfhhnmhodogpojmfkjmhinfp", okddffdblfhhnmhodogpojmfkjmhinfp should also be added to terminalPrivate whitelist ...
8 years, 10 months ago (2012-02-02 00:36:07 UTC) #5
Aaron Boodman
Hooray for all the deleted test code. http://codereview.chromium.org/9317013/diff/6002/chrome/common/extensions/extension_permission_set.h File chrome/common/extensions/extension_permission_set.h (right): http://codereview.chromium.org/9317013/diff/6002/chrome/common/extensions/extension_permission_set.h#newcode159 chrome/common/extensions/extension_permission_set.h:159: kFlagEnforceWhitelist = ...
8 years, 10 months ago (2012-02-02 08:09:24 UTC) #6
jstritar
Anyone know a good reviewer for the web_socket_proxy changes? I think the author left Google. ...
8 years, 10 months ago (2012-02-02 17:51:09 UTC) #7
Aaron Boodman
http://codereview.chromium.org/9317013/diff/42/chrome/common/extensions/extension.cc File chrome/common/extensions/extension.cc (right): http://codereview.chromium.org/9317013/diff/42/chrome/common/extensions/extension.cc#newcode2838 chrome/common/extensions/extension.cc:2838: if ((permission->is_component_only() && location_ != COMPONENT) || I think ...
8 years, 10 months ago (2012-02-02 18:17:31 UTC) #8
jstritar
Stop reviewing CLs.... you're OOO today! I think we're viewing the whitelists differently: - Me: ...
8 years, 10 months ago (2012-02-02 20:18:04 UTC) #9
jstritar
http://codereview.chromium.org/9317013/diff/42/chrome/common/extensions/extension_permission_set.cc File chrome/common/extensions/extension_permission_set.cc (right): http://codereview.chromium.org/9317013/diff/42/chrome/common/extensions/extension_permission_set.cc#newcode10 chrome/common/extensions/extension_permission_set.cc:10: #include "base/command_line.h" Woops, I do still need this. I ...
8 years, 10 months ago (2012-02-03 14:33:17 UTC) #10
jstritar
http://codereview.chromium.org/9317013/diff/42/chrome/common/extensions/extension_permission_set.cc File chrome/common/extensions/extension_permission_set.cc (right): http://codereview.chromium.org/9317013/diff/42/chrome/common/extensions/extension_permission_set.cc#newcode10 chrome/common/extensions/extension_permission_set.cc:10: #include "base/command_line.h" Woops, I do still need this. I ...
8 years, 10 months ago (2012-02-03 14:33:17 UTC) #11
jstritar
@vandebo: could you take a look at the web_socket_proxy parts (and any other chromeos if ...
8 years, 10 months ago (2012-02-03 14:50:18 UTC) #12
jstritar
@aa: can you take another look? CanSpecifyAPIPermission is slightly different from our IM conversation, in ...
8 years, 10 months ago (2012-02-03 15:49:00 UTC) #13
Aaron Boodman
lgtm
8 years, 10 months ago (2012-02-03 17:29:36 UTC) #14
vandebo (ex-Chrome)
I'm not a good reviewer for this. I can't find the old CLs you refer ...
8 years, 10 months ago (2012-02-03 17:35:32 UTC) #15
tbarzic
On 2012/02/03 17:35:32, vandebo wrote: > I'm not a good reviewer for this. I can't ...
8 years, 10 months ago (2012-02-03 17:39:24 UTC) #16
jstritar
One more try... @zel: are you a good person to review the chrome/browser/chromeos/web_socket_proxy changes?
8 years, 10 months ago (2012-02-03 17:56:08 UTC) #17
zelidrag1
dpolukhin@ and ygorshenin@ are a better choices for this review. On Fri, Feb 3, 2012 ...
8 years, 10 months ago (2012-02-03 18:01:56 UTC) #18
Dmitry Polukhin
LGTM for webSocketProxyPrivate changes But it looks like for TCP/UDP sockets we should also create ...
8 years, 10 months ago (2012-02-06 08:04:50 UTC) #19
jstritar
Thanks for pointing out the TCP/UDP socket white list. It looks like that's used by ...
8 years, 10 months ago (2012-02-08 16:16:06 UTC) #20
Dmitry Polukhin
I'll take care about TCP/UDP because I'm moving check from render to browser right now. ...
8 years, 10 months ago (2012-02-08 17:40:29 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jstritar@chromium.org/9317013/14001
8 years, 10 months ago (2012-02-08 21:33:45 UTC) #22
commit-bot: I haz the power
8 years, 10 months ago (2012-02-09 00:07:41 UTC) #23
Change committed as 121111

Powered by Google App Engine
This is Rietveld 408576698