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

Side by Side Diff: chrome_frame/cfinstall/src/implementation/dialoginteractiondelegate.js

Issue 126143005: Remove Chrome Frame code and resources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to r244038 Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * @fileoverview Displays the Chrome Frame installation flow in a Closure
7 * dialog component.
8 */
9
10 goog.provide('google.cf.installer.DialogInteractionDelegate');
11
12 goog.require('goog.math.Size');
13 goog.require('goog.style');
14 goog.require('goog.ui.Dialog');
15 goog.require('goog.userAgent');
16
17 goog.require('google.cf.installer.InteractionDelegate');
18
19 /**
20 * An implementation of google.cf.installer.InteractionDelegate that decorates
21 * the installation flow using a goog.ui.Dialog .
22 * @constructor
23 * @implements {google.cf.installer.InteractionDelegate}
24 */
25 google.cf.installer.DialogInteractionDelegate = function() {
26 };
27
28 /**
29 * Whether we have already injected the dialog styles into the page.
30 * @type {boolean}
31 * @private
32 **/
33 google.cf.installer.DialogInteractionDelegate.injectedCss_ = false;
34
35 /**
36 * Injects the dialog styles into the page.
37 * @private
38 **/
39 google.cf.installer.DialogInteractionDelegate.injectCss_ = function() {
40 if (google.cf.installer.DialogInteractionDelegate.injectedCss_)
41 return;
42
43 google.cf.installer.DialogInteractionDelegate.injectedCss_ = true;
44
45 goog.style.installStyles(
46 '.xdgcfinstall-dlg {' +
47 'background: #c1d9ff;' +
48 'border: 1px solid #3a5774;' +
49 'color: #000;' +
50 'padding: 4px;' +
51 'position: absolute;' +
52 '}' +
53
54 '.xdgcfinstall-dlg-bg {' +
55 'background: #666;' +
56 'left: 0;' +
57 'position: absolute;' +
58 'top: 0;' +
59 '}' +
60
61 '.xdgcfinstall-dlg-title {' +
62 'background: #e0edfe;' +
63 'color: #000;' +
64 'cursor: pointer;' +
65 'font-size: 120%;' +
66 'font-weight: bold;' +
67
68 'padding: 0px;' +
69 'height: 17px;' +
70 'position: relative;' +
71 '_zoom: 1; /* Ensures proper width in IE6 RTL. */' +
72 '}' +
73
74 '.xdgcfinstall-dlg-title-close {' +
75 /* Client apps may override the URL at which they serve the sprite. */
76 'background: #e0edfe' +
77 'url(//ssl.gstatic.com/editor/editortoolbar.png)' +
78 'no-repeat -528px 0;' +
79 'cursor: default;' +
80 'font-size: 0%;' +
81 'height: 15px;' +
82 'position: absolute;' +
83 'top: 1px;' +
84 'right: 1px;' +
85 'width: 15px;' +
86 'padding: 0px 0px 0px 0px;' +
87 'align: right;' +
88 '}' +
89
90 '.xdgcfinstall-dlg-content {' +
91 'background-color: #fff;' +
92 'padding: 0px;' +
93 '}'
94 );
95 };
96
97 /**
98 * The active dialog.
99 * @type {goog.ui.Dialog}
100 * @private
101 */
102 google.cf.installer.DialogInteractionDelegate.prototype.dialog_ = null;
103
104 /**
105 * @inheritDoc
106 */
107 google.cf.installer.DialogInteractionDelegate.prototype.getIFrameContainer =
108 function() {
109 google.cf.installer.DialogInteractionDelegate.injectCss_();
110
111 this.dialog_ = new goog.ui.Dialog('xdgcfinstall-dlg', true);
112 this.dialog_.setButtonSet(null);
113 // TODO(user): The IFrame must be 'visible' or else calculation of its
114 // contents' dimensions is incorrect on IE, yet the following line also
115 // disables interaction with and dims the page contents. It would be best to
116 // only do that when show() is called. Best way is probably to push the mask
117 // elements offscreen.
118 this.dialog_.setVisible(true);
119 goog.style.setPosition(this.dialog_.getDialogElement(), -5000, -5000);
120 return /** @type {!HTMLElement} */(this.dialog_.getContentElement());
121 };
122
123 /**
124 * @inheritDoc
125 */
126 google.cf.installer.DialogInteractionDelegate.prototype.customizeIFrame =
127 function(iframe) {
128 };
129
130 /**
131 * @inheritDoc
132 */
133 google.cf.installer.DialogInteractionDelegate.prototype.show =
134 function() {
135 if (goog.userAgent.IE) {
136 // By default, in IE, the dialog does not respect the width of its contents.
137 // So we set its dimensions here. We need to specifically add some space for
138 // the title bar.
139 var iframeSize = goog.style.getBorderBoxSize(
140 this.dialog_.getContentElement().getElementsByTagName('iframe')[0]);
141 var titleSize = goog.style.getBorderBoxSize(this.dialog_.getTitleElement());
142 goog.style.setContentBoxSize(this.dialog_.getDialogElement(),
143 new goog.math.Size(
144 iframeSize.width,
145 iframeSize.height + titleSize.height));
146 }
147 // Ask the dialog to re-center itself based on the new dimensions.
148 this.dialog_.reposition();
149 };
150
151
152 /**
153 * @inheritDoc
154 */
155 google.cf.installer.DialogInteractionDelegate.prototype.reset = function() {
156 if (this.dialog_) {
157 this.dialog_.setVisible(false);
158 this.dialog_.dispose();
159 this.dialog_ = null;
160 }
161 };
OLDNEW
« no previous file with comments | « chrome_frame/cfinstall/src/implementation/crossdomaininstall.js ('k') | chrome_frame/cfinstall/src/miniclosure/base.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698