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

Side by Side Diff: chrome/browser/resources/file_manager/js/share_dialog.js

Issue 23483029: [Files.app] Not to capture mouse events when the suggest app dialog is visible. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 3 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 'use strict'; 5 'use strict';
6 6
7 /** 7 /**
8 * @param {HTMLElement} parentNode Node to be parent for this dialog. 8 * @param {HTMLElement} parentNode Node to be parent for this dialog.
9 * @constructor 9 * @constructor
10 * @extends {cr.ui.dialogs.BaseDialog} 10 * @extends {FileManagerDialogBase}
11 * @implements {ShareClient.Observer} 11 * @implements {ShareClient.Observer}
12 */ 12 */
13 function ShareDialog(parentNode) { 13 function ShareDialog(parentNode) {
14 this.queue_ = new AsyncUtil.Queue(); 14 this.queue_ = new AsyncUtil.Queue();
15 this.onQueueTaskFinished_ = null; 15 this.onQueueTaskFinished_ = null;
16 this.shareClient_ = null; 16 this.shareClient_ = null;
17 this.spinner_ = null; 17 this.spinner_ = null;
18 this.spinnerWrapper_ = null; 18 this.spinnerWrapper_ = null;
19 this.webViewWrapper_ = null; 19 this.webViewWrapper_ = null;
20 this.webView_ = null; 20 this.webView_ = null;
21 this.failureTimeout_ = null; 21 this.failureTimeout_ = null;
22 this.callback_ = null; 22 this.callback_ = null;
23 23
24 cr.ui.dialogs.BaseDialog.call(this, parentNode); 24 FileManagerDialogBase.call(this, parentNode);
25 } 25 }
26 26
27 /** 27 /**
28 * Timeout for loading the share dialog before giving up. 28 * Timeout for loading the share dialog before giving up.
29 * @type {number} 29 * @type {number}
30 * @const 30 * @const
31 */ 31 */
32 ShareDialog.FAILURE_TIMEOUT = 5000; 32 ShareDialog.FAILURE_TIMEOUT = 5000;
33 33
34 /** 34 /**
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 */ 104 */
105 ShareDialog.WebViewAuthorizer.prototype.authorizeRequest_ = function(e) { 105 ShareDialog.WebViewAuthorizer.prototype.authorizeRequest_ = function(e) {
106 e.requestHeaders.push({ 106 e.requestHeaders.push({
107 name: 'Authorization', 107 name: 'Authorization',
108 value: 'Bearer ' + this.accessToken_ 108 value: 'Bearer ' + this.accessToken_
109 }); 109 });
110 return {requestHeaders: e.requestHeaders}; 110 return {requestHeaders: e.requestHeaders};
111 }; 111 };
112 112
113 ShareDialog.prototype = { 113 ShareDialog.prototype = {
114 __proto__: cr.ui.dialogs.BaseDialog.prototype 114 __proto__: FileManagerDialogBase.prototype
115 }; 115 };
116 116
117 /** 117 /**
118 * One-time initialization of DOM. 118 * One-time initialization of DOM.
119 * @private 119 * @private
120 */ 120 */
121 ShareDialog.prototype.initDom_ = function() { 121 ShareDialog.prototype.initDom_ = function() {
122 cr.ui.dialogs.BaseDialog.prototype.initDom_.call(this); 122 FileManagerDialogBase.prototype.initDom_.call(this);
123 this.frame_.classList.add('share-dialog-frame'); 123 this.frame_.classList.add('share-dialog-frame');
124 124
125 this.spinnerWrapper_ = this.document_.createElement('div'); 125 this.spinnerWrapper_ = this.document_.createElement('div');
126 this.spinnerWrapper_.className = 'spinner-container'; 126 this.spinnerWrapper_.className = 'spinner-container';
127 this.frame_.appendChild(this.spinnerWrapper_); 127 this.frame_.appendChild(this.spinnerWrapper_);
128 128
129 this.spinner_ = this.document_.createElement('div'); 129 this.spinner_ = this.document_.createElement('div');
130 this.spinner_.className = 'spinner'; 130 this.spinner_.className = 'spinner';
131 this.spinnerWrapper_.appendChild(this.spinner_); 131 this.spinnerWrapper_.appendChild(this.spinner_);
132 132
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 return; 197 return;
198 if (this.shareClient_) { 198 if (this.shareClient_) {
199 this.shareClient_.dispose(); 199 this.shareClient_.dispose();
200 this.shareClient_ = null; 200 this.shareClient_ = null;
201 } 201 }
202 this.webViewWrapper_.textContent = ''; 202 this.webViewWrapper_.textContent = '';
203 if (this.failureTimeout_) { 203 if (this.failureTimeout_) {
204 clearTimeout(this.failureTimeout_); 204 clearTimeout(this.failureTimeout_);
205 this.failureTimeout_ = null; 205 this.failureTimeout_ = null;
206 } 206 }
207 cr.ui.dialogs.BaseDialog.prototype.hide.call( 207 FileManagerDialogBase.prototype.hide.call(
208 this, 208 this,
209 function() { 209 function() {
210 if (opt_onHide) 210 if (opt_onHide)
211 opt_onHide(); 211 opt_onHide();
212 this.callback_(result); 212 this.callback_(result);
213 this.callback_ = null; 213 this.callback_ = null;
214 }.bind(this)); 214 }.bind(this));
215 }; 215 };
216 216
217 /** 217 /**
(...skipping 29 matching lines...) Expand all
247 this.webView_.setAttribute('tabIndex', '-1'); 247 this.webView_.setAttribute('tabIndex', '-1');
248 this.webViewAuthorizer_ = new ShareDialog.WebViewAuthorizer( 248 this.webViewAuthorizer_ = new ShareDialog.WebViewAuthorizer(
249 !window.IN_TEST ? (ShareClient.SHARE_TARGET + '/*') : '<all_urls>', 249 !window.IN_TEST ? (ShareClient.SHARE_TARGET + '/*') : '<all_urls>',
250 this.webView_); 250 this.webView_);
251 this.webView_.addEventListener('newwindow', function(e) { 251 this.webView_.addEventListener('newwindow', function(e) {
252 // Discard the window object and reopen in an external window. 252 // Discard the window object and reopen in an external window.
253 e.window.discard(); 253 e.window.discard();
254 util.visitURL(e.targetUrl); 254 util.visitURL(e.targetUrl);
255 e.preventDefault(); 255 e.preventDefault();
256 }); 256 });
257 cr.ui.dialogs.BaseDialog.prototype.show.call(this, '', null, null, null); 257 var show = FileManagerDialogBase.prototype.showBlankDialog.call(this);
258 if (!show) {
259 // The code shoundn't get here, since already-showing was handled before.
260 console.error('ShareDialog can\'t be shown.');
261 return;
262 }
258 263
259 // Initialize and authorize the Web View tag asynchronously. 264 // Initialize and authorize the Web View tag asynchronously.
260 var group = new AsyncUtil.Group(); 265 var group = new AsyncUtil.Group();
261 266
262 // Fetches an url to the sharing dialog. 267 // Fetches an url to the sharing dialog.
263 var shareUrl; 268 var shareUrl;
264 group.add(function(inCallback) { 269 group.add(function(inCallback) {
265 chrome.fileBrowserPrivate.getShareUrl( 270 chrome.fileBrowserPrivate.getShareUrl(
266 entry.toURL(), 271 entry.toURL(),
267 function(inShareUrl) { 272 function(inShareUrl) {
(...skipping 24 matching lines...) Expand all
292 297
293 /** 298 /**
294 * Tells whether the share dialog is showing or not. 299 * Tells whether the share dialog is showing or not.
295 * 300 *
296 * @return {boolean} True since the show method is called and until the closing 301 * @return {boolean} True since the show method is called and until the closing
297 * callback is invoked. 302 * callback is invoked.
298 */ 303 */
299 ShareDialog.prototype.isShowing = function() { 304 ShareDialog.prototype.isShowing = function() {
300 return !!this.callback_; 305 return !!this.callback_;
301 }; 306 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698