New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 48119 link

Starred by 33 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Sep 2011
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocking:
issue 70466
issue 84507

Restricted
  • Only users with EditIssue permission may comment.



Sign in to add a comment

Feature request: optional permissions in Chrome extensions

Project Member Reported by michaelsafyan@google.com, Jul 1 2010

Issue description

Some extensions can provide a large amount of functionality without ALL of the permissions that they request. An example of this is "Speed Dial". For convenience, Speed Dial makes it possible to add a website to the Speed Dial by clicking on an icon that it places in the omnibar. To do this, however, requires "Access to all your data on all websites." Without these permissions, "Speed Dial" would still be able to deliver its core functionality (providing a replacement of the "New Tab" page, using a custom set of bookmarks and thumbnails), albeit without the convenient shortcut. Unfortunately, the current permission system takes an all-or-nothing approach. It should be possible for extensions to declare that certain permissions are optional, in which case the user can opt-in or opt-out of the optional permissions at installation time. Such a mechanism would need to be accompanied by a mechanism whereby extensions could determine which of their optional permissions they had been granted, so that they could enable features accordingly.
 

Comment 1 by aa@chromium.org, Jul 1 2010

Labels: -Type-Bug -Pri-2 -Area-Undefined Type-Feature Area-Internals Feature-Extensions
Status: Available
The problem with this idea is always the UI. I can never imagine a UI for choosing the subset of permissions that wouldn't be terrible for the common user.

I guess it could be an advanced thing that is buried in the extension configuration somewhere.
== Sketch ==

Grant SpeedDial:
[X] Ability to replace the New Tab page. (REQUIRED: why?)
[ ] Access to all your data on all websites. (OPTIONAL: why?)
Install | Cancel

== Explanation ==
The install dialog could show a list of permissions, each with a checkbox to grant the permission. The optional or required status for all permissions would be clearly indicated. For required permissions, the checkbox would be disabled. In addition, a "why?" link would be shown next to each permission. Clicking on the why? link would show an explanation given by the extensions author as to what the extension wishes to do with the permission (we would need a way for this to be declared in "manifest.json").
Labels: -Area-Internals Area-UI
I was thinking about something a bit simpler.

Optional permissions are always off by default.  They aren't listed in the install dialog.  They can only be enabled after-the-fact.

Two possible ways to enable them:
(1) In the chrome://extensions page (when we get around to improving this), optional permissions are checkboxes similar to enable for incognito.  These can display the scary warning dialog when the user chooses to enable them.

(2) We could add a dynamic request permissions API.  When the extension does this, it triggers our autoupdate behavior with the new permission requested.  The extension is disabled and an infobar or dialog pops up telling them that the extension needs more permissions, etc.  If they choose to enable, they grant it the permission.  If not, it goes back to how it was before.

Comment 4 by aa@chromium.org, Sep 10 2010

Labels: Pri-2

Comment 5 by aa@chromium.org, Sep 10 2010

Labels: Mstone-X

Comment 6 by aa@chromium.org, Sep 12 2010

Labels: DesignDocNeeded
We need to decide between #1 and #2 of Erik's proposals in order to remove the DesignDocNeeded label. I'm still not sure whether this is worth the complexity, particularly if we have 42742. Are there many use cases for this bug if 42742 is fixed?
@#6, this is still an issue if  issue #42742  is fixed; 42742 is unrelated. The whole point is to allow for an extension to offer a core set of features with a minimal set of permissions, but to support additional features if the user is willing to chance the additional permissions required. I still support my proposed sketch (comment #2). With regard to the suggestions Erik proposed:

== Option 1: checkboxes in chrome://extensions/ page ==
Sure, this is great for power users, but I would guess that most users are not even aware of this page. This means that you will relegate all users of an extension to the minimal features that it supports.

== Option 2: dynamically request permissions ==
It's a little bit scary that an extension can request additional permissions after it has already been installed. Permissions and security might be on users minds when they install things, but I think most people will, if presented with an ok/cancel dialogue out of the blue, will just click through "ok" unthinkingly. I don't like the thought that you can accidentally grant an extension more permissions by mistake. 


If we must choose between options 1 and 2, I would prefer option 1 as that seems to be the most secure / paranoid route. But it is by no means perfect. Is it really that difficult to enhance the installation confirmation UI?
Labels: -DesignDocNeeded bulkmove Action-DesignDocNeeded
Some extensions can provide a large amount of functionality without ALL of the permissions that they request. An example of this is "Speed Dial". For convenience, Speed Dial makes it possible to add a website to the Speed Dial by clicking on an icon that it places in the omnibar. To do this, however, requires "Access to all your data on all websites." Without these permissions, "Speed Dial" would still be able to deliver its core functionality (providing a replacement of the "New Tab" page, using a custom set of bookmarks and thumbnails), albeit without the convenient shortcut. Unfortunately, the current permission system takes an all-or-nothing approach. It should be possible for extensions to declare that certain permissions are optional, in which case the user can opt-in or opt-out of the optional permissions at installation time. Such a mechanism would need to be accompanied by a mechanism whereby extensions could determine which of their optional permissions they had been granted, so that they could enable features accordingly.
Labels: -mstone-x
Owner: jstritar@chromium.org
Jon, this is likely a dup of another bug you're working on.
Labels: -bulkmove -Action-DesignDocNeeded Mstone-14
Status: Started
Mergedinto: 84507
Status: Duplicate
Mergedinto:
Status: Started
Blocking: 84507
Blocking: 70466
Labels: -Mstone-14 Mstone-15
This will be an experimental API for M14.
Woot! Thank you, very much.
Project Member

Comment 19 by bugdroid1@chromium.org, Jul 27 2011

The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=94288

------------------------------------------------------------------------
r94288 | jstritar@chromium.org | Wed Jul 27 07:36:49 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_notification_types.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_unittest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set_unittest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_install_ui.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/renderer_extension_bindings.js?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.h?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/background/background_mode_manager.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_install_ui.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/samples.json?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.cc?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/background.html?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/convert_web_app_unittest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/permissions_apitest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/generated_resources.grd?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.h?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.cc?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/automation/testing_automation_provider.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs_unittest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs.h?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service_unittest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_management_api.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/convert_web_app_browsertest.cc?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.permissions.html?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/extension_apitest.js?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set.cc?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set_unittest.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.h?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.json?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/manifest.json?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs.cc?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_function_dispatcher.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.html?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.cc?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.cc?r1=94288&r2=94287&pathrev=94288
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny?r1=94288&r2=94287&pathrev=94288
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/experimental_disabled/background.html?r1=94288&r2=94287&pathrev=94288

Add an experimental permissions API for extensions.

The permissions API lets extensions specify optional permissions in their manifest that they can request at run-time. It currently supports API permissions through a white-list. Host permissions will come later.

BUG= 48119 ,  70466 , 84507
TEST=*Extension*

Review URL: http://codereview.chromium.org/7432006
------------------------------------------------------------------------
Project Member

Comment 20 by bugdroid1@chromium.org, Jul 27 2011

The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=94289

------------------------------------------------------------------------
r94289 | jstritar@chromium.org | Wed Jul 27 07:50:40 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_notification_types.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_unittest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set_unittest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_install_ui.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/renderer_extension_bindings.js?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.h?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/background/background_mode_manager.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_install_ui.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/samples.json?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/convert_web_app_unittest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/permissions_apitest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/generated_resources.grd?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.h?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.cc?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/automation/testing_automation_provider.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs_unittest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service_unittest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_management_api.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/convert_web_app_browsertest.cc?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.permissions.html?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/extension_apitest.js?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set.cc?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set_unittest.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.h?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.json?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_function_dispatcher.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.html?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.cc?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.cc?r1=94289&r2=94288&pathrev=94289
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny?r1=94289&r2=94288&pathrev=94289
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/experimental_disabled/background.html?r1=94289&r2=94288&pathrev=94289

Revert 94288 - Add an experimental permissions API for extensions.

The permissions API lets extensions specify optional permissions in their manifest that they can request at run-time. It currently supports API permissions through a white-list. Host permissions will come later.

BUG= 48119 ,  70466 , 84507
TEST=*Extension*

Review URL: http://codereview.chromium.org/7432006

TBR=jstritar@chromium.org
------------------------------------------------------------------------
Project Member

Comment 21 by bugdroid1@chromium.org, Jul 27 2011

The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=94326

------------------------------------------------------------------------
r94326 | jstritar@chromium.org | Wed Jul 27 11:42:31 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_notification_types.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_unittest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set_unittest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_install_ui.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/renderer_extension_bindings.js?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.h?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/background/background_mode_manager.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_install_ui.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/samples.json?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.cc?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/background.html?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/extensions/extension_install_dialog_gtk.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/convert_web_app_unittest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/permissions_apitest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/generated_resources.grd?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.h?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.cc?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/automation/testing_automation_provider.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs_unittest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs.h?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service_unittest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_service.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_management_api.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/convert_web_app_browsertest.cc?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.permissions.html?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/extension_apitest.js?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set.cc?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set_unittest.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/url_pattern_set.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.h?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.json?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/manifest.json?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_prefs.cc?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_function_dispatcher.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.html?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.cc?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.cc?r1=94326&r2=94325&pathrev=94326
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny?r1=94326&r2=94325&pathrev=94326
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/experimental_disabled/background.html?r1=94326&r2=94325&pathrev=94326

Re-land the experimental permissions API for extensions.

The permissions API lets extensions specify optional permissions in their manifest that they can request at run-time. It currently supports API permissions through a white-list. Host permissions will come later. This also fixes some clang errors from the previous attempt.

BUG= 48119 ,  70466 , 84507
TEST=*Extension*

Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=94288

Review URL: http://codereview.chromium.org/7432006
------------------------------------------------------------------------
Project Member

Comment 22 by bugdroid1@chromium.org, Aug 6 2011

The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=95704

------------------------------------------------------------------------
r95704 | jstritar@chromium.org | Fri Aug 05 17:57:12 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.h?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/permissions_apitest.cc?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.cc?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.cc?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api_constants.h?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.h?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/extensions/extension_dispatcher.cc?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.json?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/manifest.json?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/background.html?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_messages.h?r1=95704&r2=95703&pathrev=95704
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.permissions.html?r1=95704&r2=95703&pathrev=95704

Add origins to the extension permissions API.

BUG= 48119 ,84507
TEST=*Extension*


Review URL: http://codereview.chromium.org/7508029
------------------------------------------------------------------------
Project Member

Comment 23 by bugdroid1@chromium.org, Aug 22 2011

The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=97679

------------------------------------------------------------------------
r97679 | jstritar@chromium.org | Mon Aug 22 10:41:51 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_permissions_api.cc?r1=97679&r2=97678&pathrev=97679
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/permissions/optional/background.html?r1=97679&r2=97678&pathrev=97679

Fix issue with permissions extension API event listeners.

Make sure the renderers receive the changes in permissions before triggering the permissions.onAdded and permission.onRemoved extension events.

BUG= 48119 
TEST=*OptionalPermission*


Review URL: http://codereview.chromium.org/7695003
------------------------------------------------------------------------
Labels: -Mstone-15 Mstone-16
Status: Fixed
I'm closing this issue since the permissions API is on experimental. You can find the documentation here (which still needs a little improvement):

http://code.google.com/chrome/extensions/trunk/experimental.permissions.html

We can file more specific bugs based on feedback.
Project Member

Comment 26 by bugdroid1@chromium.org, Oct 13 2012

Blocking: -chromium:84507 -chromium:70466 chromium:84507 chromium:70466
Labels: Restrict-AddIssueComment-Commit
This issue has been closed for some time. No one will pay attention to new comments.
If you are seeing this bug or have new data, please click New Issue to start a new bug.
Project Member

Comment 27 by bugdroid1@chromium.org, Mar 10 2013

Labels: -Area-UI -Feature-Extensions -Mstone-16 Cr-Platform-Extensions Cr-UI M-16
Project Member

Comment 28 by bugdroid1@chromium.org, Mar 13 2013

Labels: -Restrict-AddIssueComment-Commit Restrict-AddIssueComment-EditIssue

Sign in to add a comment