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

Unified Diff: chrome_frame/cfinstall/src/stub/overlaydelegate.js

Issue 8467005: Publish the source for CFInstall.min.js . (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Line length fixes. Created 9 years, 1 month 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_frame/cfinstall/src/stub/overlaydelegate.js
diff --git a/chrome_frame/cfinstall/src/stub/overlaydelegate.js b/chrome_frame/cfinstall/src/stub/overlaydelegate.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb87b6f19a94e47e98b7863e054eff95086191e9
--- /dev/null
+++ b/chrome_frame/cfinstall/src/stub/overlaydelegate.js
@@ -0,0 +1,156 @@
+// Copyright (c) 2011 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 Implements a compatibility layer for older versions of
+ * CFInstall.js .
+ **/
+
+goog.provide('google.cf.installer.OverlayDelegate');
+
+goog.require('google.cf.installer.InteractionDelegate');
+goog.require('google.cf.installer.frame');
+
+/**
+ * Constructs an InteractionDelegate compatible with previous versions of
+ * CFInstall.js .
+ * @constructor
+ * @implements {google.cf.installer.InteractionDelegate}
+ */
+google.cf.installer.OverlayDelegate = function(args) {
+ this.args_ = args;
+};
+
+/**
+ * Indicates whether the overlay CSS has already been injected.
+ * @type {boolean}
+ * @private
+ */
+google.cf.installer.OverlayDelegate.styleInjected_ = false;
+
+/**
+ * Generates the CSS for the overlay.
+ * @private
+ */
+google.cf.installer.OverlayDelegate.injectCss_ = function() {
+ if (google.cf.installer.OverlayDelegate.styleInjected_)
+ return;
+ goog.style.installStyles('.chromeFrameOverlayContent {' +
+ 'position: absolute;' +
+ 'margin-left: -400px;' +
+ 'margin-top: -300px;' +
+ 'left: 50%;' +
+ 'top: 50%;' +
+ 'border: 1px solid #93B4D9;' +
+ 'background-color: white;' +
+ 'z-index: 2001;' +
+ '}' +
+ '.chromeFrameOverlayContent iframe {' +
+ 'width: 800px;' +
+ 'height: 600px;' +
+ 'border: none;' +
+ '}' +
+ '.chromeFrameOverlayCloseBar {' +
+ 'height: 1em;' +
+ 'text-align: right;' +
+ 'background-color: #CADEF4;' +
+ '}' +
+ '.chromeFrameOverlayUnderlay {' +
+ 'position: absolute;' +
+ 'width: 100%;' +
+ 'height: 100%;' +
+ 'background-color: white;' +
+ 'opacity: 0.5;' +
+ '-moz-opacity: 0.5;' +
+ '-webkit-opacity: 0.5;' +
+ '-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";' +
+ 'filter: alpha(opacity=50);' +
+ 'z-index: 2000;' +
+ '}');
+ google.cf.installer.OverlayDelegate.styleInjected_ = true;
+};
+
+/**
+ * Generates the HTML for the overlay.
+ * @private
+ */
+google.cf.installer.OverlayDelegate.injectHtml_ = function() {
+ google.cf.installer.OverlayDelegate.injectCss_();
+ if (document.getElementById('chromeFrameOverlayContent')) {
+ return; // Was previously created. Bail.
+ }
+
+ var n = document.createElement('span');
+ n.innerHTML = '<div class="chromeFrameOverlayUnderlay"></div>' +
+ '<table class="chromeFrameOverlayContent"' +
+ 'id="chromeFrameOverlayContent"' +
+ 'cellpadding="0" cellspacing="0">' +
+ '<tr class="chromeFrameOverlayCloseBar">' +
+ '<td>' +
+ // TODO(user): i18n
+ '<button id="chromeFrameCloseButton">close</button>' +
+ '</td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td id="chromeFrameIframeHolder"></td>' +
+ '</tr>' +
+ '</table>';
+
+ var b = document.body;
+ // Insert underlay nodes into the document in the right order.
+ while (n.firstChild) {
+ b.insertBefore(n.lastChild, b.firstChild);
+ }
+};
+
+/**
+ * @inheritDoc
+ */
+google.cf.installer.OverlayDelegate.prototype.getIFrameContainer =
+ function() {
+ google.cf.installer.OverlayDelegate.injectHtml_();
+ document.getElementById('chromeFrameCloseButton').onclick =
+ goog.bind(this.reset, this);
+ return /** @type {!HTMLElement} */(
+ document.getElementById('chromeFrameIframeHolder'));
+};
+
+/**
+ * @inheritDoc
+ */
+google.cf.installer.OverlayDelegate.prototype.customizeIFrame =
+ function(iframe) {
+ google.cf.installer.frame.setProperties(iframe, this.args_);
+};
+
+/**
+ * @inheritDoc
+ */
+google.cf.installer.OverlayDelegate.prototype.show = function() {
+ // Should start it out hidden and reveal/resize here.
+};
+
+/**
+ * @inheritDoc
+ */
+google.cf.installer.OverlayDelegate.prototype.reset = function() {
+ // IE has a limit to the # of <style> tags allowed, so we avoid
+ // tempting the fates.
+ if (google.cf.installer.OverlayDelegate.hideInjected_)
+ return;
+
+ goog.style.installStyles(
+ '.chromeFrameOverlayContent { display: none; } ' +
+ '.chromeFrameOverlayUnderlay { display: none; }');
+ document.getElementById('chromeFrameIframeHolder').removeChild(
+ document.getElementById('chromeFrameIframeHolder').firstChild);
+
+ document.getElementById('chromeFrameCloseButton').onclick = null;
+
+// TODO(user): put this in somewhere.
+// // Hide the dialog for a year (or until cookies are deleted).
+// var age = 365 * 24 * 60 * 60 * 1000;
+// document.cookie = "disableGCFCheck=1;path=/;max-age="+age;
+ google.cf.installer.OverlayDelegate.hideInjected_ = true;
+};

Powered by Google App Engine
This is Rietveld 408576698