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

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2013
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocked on:
issue 124169
issue 135562
issue 137405
issue 138203
issue 139809
issue 144463
issue 145933
issue 145951

Blocking:
issue adblockforchrome:4450
issue tab-organizer:23
issue 50356
issue 55568
issue 112069
issue 124132

Restricted
  • Only users with Commit permission may comment.



Sign in to add a comment

[Extensions] Feature request: ability to add global keyboard shortcuts

Reported by vati...@gmail.com, Nov 14 2009

Issue description

The ability to create global keyboard shortcuts via extensions is sorely needed.  

See http://groups.google.com/group/chromium-extensions/browse_thread/thread/c8f19e467f72ec37# 
for more explanation.
 
Labels: -Type-Bug -Area-Misc Type-Feature Area-BrowserUI Feature-Extensions

Comment 2 by aa@chromium.org, Nov 21 2009

 Issue 28084  has been merged into this issue.

Comment 3 by aa@chromium.org, Dec 12 2009

Labels: Mstone-X

Comment 4 by aa@chromium.org, Dec 13 2009

Status: Untriaged

Comment 5 by Deleted ...@, Dec 15 2009

Does this suffice?

Google Chrome Extensions: Shortcut Manager:

https://chrome.google.com/extensions/detail/mgjjeipcdnnjhgodgjpfkffcejoljijf

Comment 6 by arv@chromium.org, Dec 15 2009

As far as I can tell this uses a content script and listens to events in the web page. 
This is not sufficient for my immediate use case which needs to work from the omnibox, 
find bar etc.

Comment 7 by oritm@chromium.org, Dec 18 2009

Labels: -Area-BrowserUI Area-UI-Features
Area-UI-Features label replaces Area-BrowserUI label

Comment 8 by wos...@gmail.com, Dec 29 2009

I think this issue's priority should be very high.

because It's really limit lots of extensions's features.

create hotkey through addEvent is really weak,it's always overwrited by website.
Status: Available
Labels: -Area-UI-Features Area-UI
 Issue 31525  has been merged into this issue.
 Issue 42417  has been merged into this issue.
 Issue 12433  has been merged into this issue.

Comment 15 by shiblon@google.com, Jul 30 2010

Starred this issue, but also wanted to comment on a particular use case I was thinking of.  I wanted to create an extension that adds "screen" keybinding to Chrome for tab management, e.g., press ^a-^a to switch between recent tabs, ^a-" to see a list of (possibly named) tabs, etc.  The initial keybinding would be configurable, just like in screen.

To do this, the extension would need to trap exactly one configurable shortcut from anywhere in the browser, at which point the extension would start capturing the second part of the keystroke and perform some action on the browser tabs.

I suspect that there are also other ideas out there that are at least equally compelling.
Sorry, I had thought we had updated this bug with a proposed solution a long time ago, but apprently not.  The proposed solution to this is not to allow the extension to trap, define or handle arbitrary keyboard events.  Rather, we would build a mechanism into Chrome that allows users to control Chrome's keyboard mappings.  Extensions could export "commands" that they wanted to allow users to bind to keyboard shortcuts.  The user would then manually set the binding to the extension's commands.  We could support some default commands for extensions such as opening it's browser action popup.

We explicitly don't want to allow extensions to pre-define their own shortcuts or to be involved in dynamic shortcut handling.

@15 - given that we don't have any chorded shortcuts in Chrome right now, it's unlikely we would support this for extensions. 
@16 It would be a lot more ideal if there was a defined UI for the plugin to request a key mapping that the user could accept, reject, or modify. It's still pretty crappy to have a user have to manually hunt for a new command to map.

Comment 18 by shiblon@google.com, Jul 30 2010

@16 - the shortcuts wouldn't really need to be chorded, would they?  Can an extension trap keys once it is in the foreground?  If so, then the first part of the shortcut need only bring up an extension window that can then accept the second chord...

I'm probably being dumb about something, and my pet idea should certainly not be what drives this, but I am curious.

Comment 19 by brot...@gmail.com, Dec 4 2010

Please add this feature! It is the only thing holding me back on creating more good chrome extensions!

Comment 20 by kur...@gmail.com, Dec 18 2010

Add this feature already :(
@20 Really? I couldn't find any information about it.
I've found a related post, it says that this feature is not added yet.

http://groups.google.com/group/chromium-extensions/browse_thread/thread/c8f19e467f72ec37?pli=1

Could you let met know more details or any related post?

Comment 22 by cos...@gmail.com, Mar 2 2011

@16 I agree with @18. I think we should be able to register a keyboard shortcut in background.js and have the browser ask for the user's permission. The dialog box could be similar to one that shows up when installing an extension. The box should give the extension's name, list out the shortcut, and give the following options:
* Yes (install the shortcut)
* No (I've changed my mind)
* Disable extension
* Uninstall extension

The last two options would avoid having extensions forcing users to accept shortcuts by spamming them with requests.

It would be amazing if I could make the shortcuts be system-global, so that I could, for example, pop up a new Chrome window with my extension page when the user presses a key combination.

--

My use case is that I'd like to write a GTD (getting things done) extension. When I'm in the zone, and I remember something, I want to press a shortcut, have my extension pop up a small page asking me to jot down what's on my mind, then dismiss the window. I don't want to see my main browser window, because I'll get distracted by Gmail or whatever I have open there.

Of course, if I can't have system-global shortcuts, I'll settle for what I can get. At least my extension would work in ChromeOS.

Comment 23 by trog...@gmail.com, Mar 4 2011

Can we at least try developer-designated shortcuts via an experimental API?
Labels: Restrict-AddIssueComment-Commit UI-Needed
Thanks for the feedback everyone.  We agree that this is a high priority item and are planning to take a look at it soon.  See my comment above for our planned implementation.  We'll update this bug as we make progress.
 Issue 69223  has been merged into this issue.
Labels: -UI-Needed bulkmove Review-UI
The ability to create global keyboard shortcuts via extensions is sorely needed.  

See http://groups.google.com/group/chromium-extensions/browse_thread/thread/c8f19e467f72ec37# 
for more explanation.
Labels: -Review-UI
Owner: glen@chromium.org
Status: Assigned
Glen will work on this
Blocking: adblockforchrome:4450
Labels: -mstone-x
Labels: Review-UI
Labels: -Review-UI
Owner: ----
Status: Available
hey Aaron/Finnur/Erik,

What's the priority of this on the Extensions team?

Comment 32 by aa@chromium.org, Dec 20 2011

Quite high. But I thought we already had mocks.
Yes, I believe Glen already made some. Should we assign this to someone then? Or add an Mstone- label?

Comment 34 by aa@chromium.org, Dec 20 2011

Owner: finnur@chromium.org
Status: Assigned
Finnur is already planning to work on it. I'm not sure if there's another bug that this should be duped against, or if we just never noted it down.
Status: Started
Yeah, I think we've never noted it down... At least this is the only keybinding bug that is on my plate. 

Updating status, since this has already started.
Blocking: 112069
Project Member

Comment 37 by bugdroid1@chromium.org, Feb 23 2012

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

------------------------------------------------------------------------
r123228 | finnur@chromium.org | Thu Feb 23 05:00:55 PST 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/common_resources.grd?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_unittest.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set_unittest.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/external_tab_container_win.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/manifest.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/find_bar_host.cc?r1=123228&r2=123227&pathrev=123228
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_registry.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/location_bar/page_action_image_view.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_browser_event_router.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_browser_event_router.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/frame/browser_view.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/location_bar/page_action_image_view.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_tests.gypi?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/focus/focus_manager_unittest.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/dropdown_bar_host.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/view.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/focus/focus_manager.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/accelerators/accelerator_manager.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/accelerators/accelerator_manager.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ash/accelerators/accelerator_controller.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/focus/focus_manager.cc?r1=123228&r2=123227&pathrev=123228
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_apitest.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ash/focus_cycler.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/browser_actions_container.h?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/accessible_pane_view.cc?r1=123228&r2=123227&pathrev=123228
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/experimental.keybinding.json?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_constants.cc?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=123228&r2=123227&pathrev=123228
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/browser_actions_container.cc?r1=123228&r2=123227&pathrev=123228
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_registry.h?r1=123228&r2=123227&pathrev=123228

Experimental Extension Keybinding (first cut).

Implemented in this cut:

- End-to-end extension keybinding -- in one dimension, that is -- no UI, just basic functionality, such as:
  - Manifest changes to specify keybinding.
  - A simple parser to parse the keybinding from the manifest.
  - An Extension Keybinding Registry object.
  - The ability to open browser action popups, page action popups and send named events to the Extension.

Not implemented:

- All non-Windows specific code.
- Install-success-bubble UI changes (that notify the user of new keybinding -- or of keybinding conflict)
- A UI to show all keybindings and keybinding conflicts, allowing user to reconfigure keybindings.

BUG= 27702 
TEST=This is tested by an automated test and requires an extension to test manually (one that registers keybinding shortcuts).
Review URL: https://chromiumcodereview.appspot.com/9402018
------------------------------------------------------------------------
Project Member

Comment 38 by bugdroid1@chromium.org, Feb 27 2012

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

------------------------------------------------------------------------
r123724 | finnur@chromium.org | Mon Feb 27 02:34:27 PST 2012

Changed paths:
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/static/experimental.keybinding.html?r1=123724&r2=123723&pathrev=123724
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.html?r1=123724&r2=123723&pathrev=123724
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/js/api_page_generator.js?r1=123724&r2=123723&pathrev=123724
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/experimental.keybinding.json?r1=123724&r2=123723&pathrev=123724
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.cc?r1=123724&r2=123723&pathrev=123724
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.keybinding.html?r1=123724&r2=123723&pathrev=123724

Updating the doc to reflect the new experimental.keybinding API.

Adding missing elements from previous API updates (someone forgot to run build.py).

Tiny code-change in extension.cc which was suggested during review, but I forgot to do.

BUG= 27702 
TEST=None (doc change)
Review URL: https://chromiumcodereview.appspot.com/9465005
------------------------------------------------------------------------
Project Member

Comment 39 by bugdroid1@chromium.org, Feb 27 2012

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

------------------------------------------------------------------------
r123734 | finnur@chromium.org | Mon Feb 27 05:57:56 PST 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_apitest.cc?r1=123734&r2=123733&pathrev=123734

Enable the keybinding test for TOOLKIT_VIEWS.

BUG= 27702 
TEST=None
Review URL: https://chromiumcodereview.appspot.com/9463051
------------------------------------------------------------------------
Project Member

Comment 40 by bugdroid1@chromium.org, Mar 6 2012

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

------------------------------------------------------------------------
r125156 | finnur@chromium.org | Tue Mar 06 06:18:37 PST 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=125156&r2=125155&pathrev=125156
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_registry.cc?r1=125156&r2=125155&pathrev=125156
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.cc?r1=125156&r2=125155&pathrev=125156 (from /trunk/src/chrome/browser/extensions/extension_keybinding_registry.cc revision 123968)

Move the ExtensionKeybindingRegistry implementation to the Views specific section, since it contains Views specific code. This is in anticipation of porting to GTK.

BUG= 27702 
TEST=Covered by automated tests.
Review URL: https://chromiumcodereview.appspot.com/9605007
------------------------------------------------------------------------
Project Member

Comment 41 by bugdroid1@chromium.org, Mar 6 2012

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

------------------------------------------------------------------------
r125162 | finnur@chromium.org | Tue Mar 06 07:08:12 PST 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=125162&r2=125161&pathrev=125162
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.h?r1=125162&r2=125161&pathrev=125162 (from /trunk/src/chrome/browser/extensions/extension_keybinding_registry.h revision 125151)
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_registry.h?r1=125162&r2=125161&pathrev=125162
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.cc?r1=125162&r2=125161&pathrev=125162

Move the .h ExtensionKeybindingRegistry implementation to the Views specific section, since it contains Views specific code. This is in anticipation of porting to GTK.

BUG= 27702 
TEST=Covered by automated tests.
Review URL: https://chromiumcodereview.appspot.com/9618009
------------------------------------------------------------------------
Project Member

Comment 42 by bugdroid1@chromium.org, Mar 9 2012

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

------------------------------------------------------------------------
r125830 | finnur@chromium.org | Fri Mar 09 05:12:38 PST 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc?r1=125830&r2=125829&pathrev=125830
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/browser_window_gtk.cc?r1=125830&r2=125829&pathrev=125830
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/browser_window_gtk.h?r1=125830&r2=125829&pathrev=125830
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=125830&r2=125829&pathrev=125830
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_apitest.cc?r1=125830&r2=125829&pathrev=125830
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.h?r1=125830&r2=125829&pathrev=125830 (from /trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.h revision 125162)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.h?r1=125830&r2=125829&pathrev=125830 (from /trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.h revision 125162)
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser_extensions.gypi?r1=125830&r2=125829&pathrev=125830
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.h?r1=125830&r2=125829&pathrev=125830
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_registry.cc?r1=125830&r2=125829&pathrev=125830 (from /trunk/src/chrome/browser/extensions/extension_keybinding_registry.cc revision 125151)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_registry.h?r1=125830&r2=125829&pathrev=125830 (from /trunk/src/chrome/browser/extensions/extension_keybinding_registry.h revision 125151)
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/browser_actions_container.h?r1=125830&r2=125829&pathrev=125830
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.cc?r1=125830&r2=125829&pathrev=125830
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc?r1=125830&r2=125829&pathrev=125830 (from /trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.cc revision 125162)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc?r1=125830&r2=125829&pathrev=125830 (from /trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry.cc revision 125162)

Refactor the ExtensionKeybindingRegistry into cross-platform and Views specific implementations, and implement the GTK part. Overview of refactoring: 

Old extension_keybinding_registry.h/cc has been svn copied into ui/views and then renamed as extension_keybinding_registry_VIEWS.h/cc. 
New extension_keybinding_registry.h/cc contains the logic that was cross platform.

The views implementation was then svn copied into the gtk folder and ported to GTK.

BUG= 27702 
TEST=Covered by automated tests.
Review URL: https://chromiumcodereview.appspot.com/9638016
------------------------------------------------------------------------
Project Member

Comment 44 by bugdroid1@chromium.org, Mar 13 2012

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

------------------------------------------------------------------------
r126401 | finnur@chromium.org | Tue Mar 13 09:23:34 PDT 2012

Changed paths:
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action?r1=126401&r2=126400&pathrev=126401

Revert 126398 - An image for the Extension Keybinding PageAction test, so I can try my change on the try bots.

Reason: Mre was accidentally checked in than I intended due to gcl bug (feature?). The test wasn't live, but for good measure I decided to revert.

TBR=joi
BUG= 27702 
TEST=Coming soon.
Review URL: https://chromiumcodereview.appspot.com/9677045

TBR=finnur@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9689064
------------------------------------------------------------------------
Project Member

Comment 45 by bugdroid1@chromium.org, Mar 13 2012

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

------------------------------------------------------------------------
r126402 | finnur@chromium.org | Tue Mar 13 09:26:12 PDT 2012

Changed paths:
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action/icon.png?r1=126402&r2=126401&pathrev=126402
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action?r1=126402&r2=126401&pathrev=126402

2nd try: An image for the Extension Keybinding PageAction test, so I can try my change on the try bots.

TBR=joi
BUG= 27702 
TEST=Coming soon.
Review URL: https://chromiumcodereview.appspot.com/9691053
------------------------------------------------------------------------
Project Member

Comment 47 by bugdroid1@chromium.org, Mar 16 2012

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

------------------------------------------------------------------------
r127149 | finnur@chromium.org | Fri Mar 16 03:33:56 PDT 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/location_bar/location_bar_view.cc?r1=127149&r2=127148&pathrev=127149
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_apitest.cc?r1=127149&r2=127148&pathrev=127149
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/location_bar_view_gtk.cc?r1=127149&r2=127148&pathrev=127149
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action/manifest.json?r1=127149&r2=127148&pathrev=127149
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action/background.js?r1=127149&r2=127148&pathrev=127149
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/location_bar_view_gtk.h?r1=127149&r2=127148&pathrev=127149

Revert 127146 - Add Extension Keybinding test for page actions and port the PageAction keybindings to GTK.

Failed on ChromeOS bots, even though it passed on the try bots... :/

BUG= 27702 
TEST=KeybindingApiTest.PageAction
Review URL: https://chromiumcodereview.appspot.com/9693047

TBR=finnur@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9705097
------------------------------------------------------------------------
Project Member

Comment 48 by bugdroid1@chromium.org, Mar 16 2012

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

------------------------------------------------------------------------
r127156 | finnur@chromium.org | Fri Mar 16 06:17:14 PDT 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/location_bar/location_bar_view.cc?r1=127156&r2=127155&pathrev=127156
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_apitest.cc?r1=127156&r2=127155&pathrev=127156
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/location_bar_view_gtk.cc?r1=127156&r2=127155&pathrev=127156
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action/manifest.json?r1=127156&r2=127155&pathrev=127156
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action/background.js?r1=127156&r2=127155&pathrev=127156
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/location_bar_view_gtk.h?r1=127156&r2=127155&pathrev=127156

Add Extension Keybinding test for page actions and port the PageAction keybindings to GTK (second attempt).

Previous attempt failed because browser() was refactored out of the LocationBarView class before I had a chance to check in. Only changes from last changelist (https://chromiumcodereview.appspot.com/9693047) are in LocationBarView lines 1042-1044.

BUG= 27702 
TEST=KeybindingApiTest.PageAction
Review URL: https://chromiumcodereview.appspot.com/9705098
------------------------------------------------------------------------
Project Member

Comment 49 by bugdroid1@chromium.org, Apr 2 2012

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

------------------------------------------------------------------------
r130114 | finnur@chromium.org | Mon Apr 02 03:17:30 PDT 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/basics/manifest.json?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_unittest.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.h?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.keybinding.html?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/extensions/extension_keybinding_registry_views.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_manifest_constants.h?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/static/experimental.keybinding.html?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_manifest_constants.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/location_bar_view_gtk.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/page_action/manifest.json?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/location_bar/page_action_image_view.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/views/browser_actions_container.cc?r1=130114&r2=130113&pathrev=130114
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/_manifest_features.json?r1=130114&r2=130113&pathrev=130114

Polish the keybinding implementation a bit.

- Make it require manifest version 2.
- Change 'key' to 'suggested_key', allow it to be a string or a dictionary with platforms and/or 'default' listed.
- Converted browser_action in manifest to _execute_browser_action, since that keyword is reserved (same for page action).
- Remove normalization of suggested_key (stop supporting Ctrl - foo, now only Ctrl+foo and make it case sensitive).
- Added methods to fetch just browser actions/just page actions (or all others), which is what you'd commonly want.

BUG= 27702 
TEST=Covered by automated tests.
Review URL: https://chromiumcodereview.appspot.com/9812008
------------------------------------------------------------------------
Blocking: 124132

Comment 51 by aa@chromium.org, Apr 19 2012

Blockedon: 124169
Project Member

Comment 52 by bugdroid1@chromium.org, Jun 15 2012

Blockedon: -124169 chromium:124169
Blocking: -50356 -55568 -112069 -124132 chromium:50356 chromium:55568 chromium:112069 chromium:124132
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=142371

------------------------------------------------------------------------
r142371 | finnur@chromium.org | Fri Jun 15 03:44:42 PDT 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc?r1=142371&r2=142370&pathrev=142371

Fix Extension Command popup crash (regression from https://chromiumcodereview.appspot.com/10537047/) and (while we're at it, make sure the extension popup points to the chevron if an extension command triggers the popup to appear while the extension button is in the overflow menu.

Reason for crash: BrowserActionButton::OnGtkAccelerator was passing in NULL widget to OnClicked. Now we pass a widget.

TEST=Install an extension with a command associated with a browser action popup. Trigger that popup to appear with the keystroke assigned to it. Make sure the popup appears.
BUG= 27702 
Review URL: https://chromiumcodereview.appspot.com/10536115
------------------------------------------------------------------------

Comment 53 by aa@chromium.org, Jun 28 2012

Blocking: chromium:50356

Comment 55 by aa@chromium.org, Jul 14 2012

Blockedon: chromium:137405
Blocking: chromium:112069

Comment 57 by aa@chromium.org, Jul 31 2012

Blockedon: chromium:139809
Blockedon: chromium:138203
Project Member

Comment 59 by bugdroid1@chromium.org, Aug 17 2012

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

------------------------------------------------------------------------
r152076 | finnur@chromium.org | 2012-08-17T10:23:12.769742Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/accelerators/accelerator.cc?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/command.cc?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/chrome_event_processing_window.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/keybinding/basics/manifest.json?r1=152076&r2=152075&pathrev=152076
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/location_bar/page_action_decoration.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/browser_window_controller.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/webui/extensions/command_handler.cc?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/browser_window_cocoa.mm?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/api/commands/command_service.cc?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_keybinding_apitest.cc?r1=152076&r2=152075&pathrev=152076
   A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa.h?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/chrome_notification_types.h?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/location_bar/page_action_decoration.h?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_browser.gypi?r1=152076&r2=152075&pathrev=152076
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/cocoa/browser_window_controller.h?r1=152076&r2=152075&pathrev=152076

Port Extension Commands to Mac.

This implements the Mac part of Extension Commands for Browser Actions, Page Actions, Script Badges and Named Commands.

Known issues: Support for specifying Command key as a shortcut is not yet fully implemented.

BUG= 27702 
TEST=Automated test included.
Review URL: https://chromiumcodereview.appspot.com/10824307
------------------------------------------------------------------------

Comment 61 by aa@chromium.org, Aug 23 2012

Blockedon: chromium:144463
Blockedon: chromium:145933 chromium:145951
Cc: pludwig@chromium.org
Project Member

Comment 64 by bugdroid1@chromium.org, Dec 1 2012

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

------------------------------------------------------------------------
r170622 | finnur@chromium.org | 2012-12-01T01:48:57.446950Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/_manifest_features.json?r1=170622&r2=170621&pathrev=170622

Turn on Commands Extension API for stable.

BUG= 27702 
TEST=See test plan for Commands API.

Review URL: https://chromiumcodereview.appspot.com/11411298
------------------------------------------------------------------------
Status: Fixed
Project Member

Comment 66 by bugdroid1@chromium.org, Mar 11 2013

Labels: -Feature-Extensions -Area-UI Cr-Platform-Extensions Cr-UI

Sign in to add a comment