Index: chrome/browser/resources/shared/js/cr/ui/overlay.js |
=================================================================== |
--- chrome/browser/resources/shared/js/cr/ui/overlay.js (revision 177292) |
+++ chrome/browser/resources/shared/js/cr/ui/overlay.js (working copy) |
@@ -1,101 +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. |
- |
-/** |
- * @fileoverview Provides dialog-like behaviors for the tracing UI. |
- */ |
-cr.define('cr.ui.overlay', function() { |
- |
- /** |
- * Gets the top, visible overlay. It makes the assumption that if multiple |
- * overlays are visible, the last in the byte order is topmost. |
- * TODO(estade): rely on aria-visibility instead? |
- * @return {HTMLElement} The overlay. |
- */ |
- function getTopOverlay() { |
- var overlays = document.querySelectorAll('.overlay:not([hidden])'); |
- return overlays[overlays.length - 1]; |
- } |
- |
- /** |
- * Makes initializations which must hook at the document level. |
- */ |
- function globalInitialization() { |
- // Close the overlay on escape. |
- document.addEventListener('keydown', function(e) { |
- if (e.keyCode == 27) { // Escape |
- var overlay = getTopOverlay(); |
- if (!overlay) |
- return; |
- |
- cr.dispatchSimpleEvent(overlay, 'cancelOverlay'); |
- } |
- }); |
- |
- window.addEventListener('resize', setMaxHeightAllPages); |
- |
- setMaxHeightAllPages(); |
- } |
- |
- /** |
- * Sets the max-height of all pages in all overlays, based on the window |
- * height. |
- */ |
- function setMaxHeightAllPages() { |
- var pages = document.querySelectorAll('.overlay .page'); |
- |
- var maxHeight = Math.min(0.9 * window.innerHeight, 640) + 'px'; |
- for (var i = 0; i < pages.length; i++) |
- pages[i].style.maxHeight = maxHeight; |
- } |
- |
- /** |
- * Adds behavioral hooks for the given overlay. |
- * @param {HTMLElement} overlay The .overlay. |
- */ |
- function setupOverlay(overlay) { |
- // Close the overlay on clicking any of the pages' close buttons. |
- var closeButtons = overlay.querySelectorAll('.page > .close-button'); |
- for (var i = 0; i < closeButtons.length; i++) { |
- closeButtons[i].addEventListener('click', function(e) { |
- cr.dispatchSimpleEvent(overlay, 'cancelOverlay'); |
- }); |
- } |
- |
- // Remove the 'pulse' animation any time the overlay is hidden or shown. |
- overlay.__defineSetter__('hidden', function(value) { |
- this.classList.remove('pulse'); |
- if (value) |
- this.setAttribute('hidden', true); |
- else |
- this.removeAttribute('hidden'); |
- }); |
- overlay.__defineGetter__('hidden', function() { |
- return this.hasAttribute('hidden'); |
- }); |
- |
- // Shake when the user clicks away. |
- overlay.addEventListener('click', function(e) { |
- // Only pulse if the overlay was the target of the click. |
- if (this != e.target) |
- return; |
- |
- // This may be null while the overlay is closing. |
- var overlayPage = this.querySelector('.page:not([hidden])'); |
- if (overlayPage) |
- overlayPage.classList.add('pulse'); |
- }); |
- overlay.addEventListener('webkitAnimationEnd', function(e) { |
- e.target.classList.remove('pulse'); |
- }); |
- } |
- |
- return { |
- globalInitialization: globalInitialization, |
- setupOverlay: setupOverlay, |
- }; |
-}); |
- |
-document.addEventListener('DOMContentLoaded', |
- cr.ui.overlay.globalInitialization); |