Index: chrome/browser/resources/shared/js/cr/ui/focus_outline_manager.js |
=================================================================== |
--- chrome/browser/resources/shared/js/cr/ui/focus_outline_manager.js (revision 177292) |
+++ chrome/browser/resources/shared/js/cr/ui/focus_outline_manager.js (working copy) |
@@ -1,84 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-cr.define('cr.ui', function() { |
- |
- /** |
- * The class name to set on the document element. |
- * @const |
- */ |
- var CLASS_NAME = 'focus-outline-visible'; |
- |
- /** |
- * This class sets a CSS class name on the HTML element of |doc| when the user |
- * presses the tab key. It removes the class name when the user clicks |
- * anywhere. |
- * |
- * This allows you to write CSS like this: |
- * |
- * html.focus-outline-visible my-element:focus { |
- * outline: 5px auto -webkit-focus-ring-color; |
- * } |
- * |
- * And the outline will only be shown if the user uses the keyboard to get to |
- * it. |
- * |
- * @param {Document} doc The document to attach the focus outline manager to. |
- * @constructor |
- */ |
- function FocusOutlineManager(doc) { |
- this.classList_ = doc.documentElement.classList; |
- var self = this; |
- doc.addEventListener('keydown', function(e) { |
- if (e.keyCode == 9) // Tab |
- self.visible = true; |
- }, true); |
- |
- doc.addEventListener('mousedown', function(e) { |
- self.visible = false; |
- }, true); |
- } |
- |
- FocusOutlineManager.prototype = { |
- /** |
- * Whether the focus outline should be visible. |
- * @type {boolean} |
- */ |
- set visible(visible) { |
- if (visible) |
- this.classList_.add(CLASS_NAME); |
- else |
- this.classList_.remove(CLASS_NAME); |
- }, |
- get visible() { |
- this.classList_.contains(CLASS_NAME); |
- } |
- }; |
- |
- /** |
- * Array of Document and FocusOutlineManager pairs. |
- * @type {Array} |
- */ |
- var docsToManager = []; |
- |
- /** |
- * Gets a per document sigleton focus outline manager. |
- * @param {Document} doc The document to get the |FocusOutlineManager| for. |
- * @return {FocusOutlineManager} The per document singleton focus outline |
- * manager. |
- */ |
- FocusOutlineManager.forDocument = function(doc) { |
- for (var i = 0; i < docsToManager.length; i++) { |
- if (doc == docsToManager[i][0]) |
- return docsToManager[i][1]; |
- } |
- var manager = new FocusOutlineManager(doc); |
- docsToManager.push([doc, manager]); |
- return manager; |
- }; |
- |
- return { |
- FocusOutlineManager: FocusOutlineManager |
- }; |
-}); |