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

Unified Diff: chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js

Issue 1807803002: [Media Router WebUI] Handle on dialog load focus on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes per imcheng@'s comments. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js
diff --git a/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js b/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js
index 35f03eacabc9025837220165db18024f2ead196c..73b6b1982bed5eeb87c6d44ce1cb6aa5e0bf5369 100644
--- a/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js
+++ b/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js
@@ -88,6 +88,14 @@ Polymer({
'focus': 'onFocus_',
},
+ ready: function() {
+ // If this is not on a Mac platform, remove the placeholder. See
+ // onFocus_() for more details. ready() is only called once, so no need
+ // to check if the placeholder exist before removing.
+ if (!cr.isMac)
+ this.$$('#focus-placeholder').remove();
+ },
+
attached: function() {
// isRTL() only works after i18n_template.js runs to set <html dir>.
// Set the back button icon based on text direction.
@@ -163,10 +171,18 @@ Polymer({
*/
onFocus_: function(event) {
// If the focus event was not triggered by the user, remove focus from
- // the element. This prevents unexpected focusing such as when the dialog
- // is initially loaded.
- if (!event.sourceCapabilities)
+ // the element. This prevents unexpected focusing when the dialog is
+ // initially loaded.
+ // This only happens on mac.
+ if (cr.isMac && !event.sourceCapabilities) {
event.path[0].blur();
+ // Adding a focus placeholder element is part of the workaround for
+ // handling unexpected focusing, which only happens once on dialog open.
+ // Since #focus-placeholder initially is focus-enabled, as denoted by
+ // its tabindex value, the focus will not appear in other elements.
+ // Remove the placeholder since we have no more use for it.
+ this.$$('#focus-placeholder').remove();
+ }
},
/**

Powered by Google App Engine
This is Rietveld 408576698