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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeView.js

Issue 2840773002: DevTools: allow capturing screenshots from command menu. (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 * @unrestricted 5 * @unrestricted
6 */ 6 */
7 Emulation.DeviceModeView = class extends UI.VBox { 7 Emulation.DeviceModeView = class extends UI.VBox {
8 constructor() { 8 constructor() {
9 super(true); 9 super(true);
10 this.setMinimumSize(150, 150); 10 this.setMinimumSize(150, 150);
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 } 300 }
301 301
302 /** 302 /**
303 * @param {!Element} element 303 * @param {!Element} element
304 * @param {boolean} success 304 * @param {boolean} success
305 */ 305 */
306 _onImageLoaded(element, success) { 306 _onImageLoaded(element, success) {
307 element.classList.toggle('hidden', !success); 307 element.classList.toggle('hidden', !success);
308 } 308 }
309 309
310 /**
311 * @param {!Element} element
312 */
313 setNonEmulatedAvailableSize(element) {
314 if (this._model.type() !== Emulation.DeviceModeModel.Type.None)
315 return;
316 var zoomFactor = UI.zoomManager.zoomFactor();
317 var rect = element.getBoundingClientRect();
318 var availableSize = new UI.Size(Math.max(rect.width * zoomFactor, 1), Math.m ax(rect.height * zoomFactor, 1));
319 this._model.setAvailableSize(availableSize, availableSize);
320 }
321
310 _contentAreaResized() { 322 _contentAreaResized() {
311 var zoomFactor = UI.zoomManager.zoomFactor(); 323 var zoomFactor = UI.zoomManager.zoomFactor();
312 var rect = this._contentArea.getBoundingClientRect(); 324 var rect = this._contentArea.getBoundingClientRect();
313 var availableSize = new UI.Size(Math.max(rect.width * zoomFactor, 1), Math.m ax(rect.height * zoomFactor, 1)); 325 var availableSize = new UI.Size(Math.max(rect.width * zoomFactor, 1), Math.m ax(rect.height * zoomFactor, 1));
314 var preferredSize = new UI.Size( 326 var preferredSize = new UI.Size(
315 Math.max((rect.width - 2 * this._handleWidth) * zoomFactor, 1), 327 Math.max((rect.width - 2 * this._handleWidth) * zoomFactor, 1),
316 Math.max((rect.height - this._handleHeight) * zoomFactor, 1)); 328 Math.max((rect.height - this._handleHeight) * zoomFactor, 1));
317 this._model.setAvailableSize(availableSize, preferredSize); 329 this._model.setAvailableSize(availableSize, preferredSize);
318 } 330 }
319 331
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 async captureScreenshot() { 377 async captureScreenshot() {
366 SDK.DOMModel.muteHighlight(); 378 SDK.DOMModel.muteHighlight();
367 var screenshot = await this._model.captureScreenshot(false); 379 var screenshot = await this._model.captureScreenshot(false);
368 SDK.DOMModel.unmuteHighlight(); 380 SDK.DOMModel.unmuteHighlight();
369 if (screenshot === null) 381 if (screenshot === null)
370 return; 382 return;
371 383
372 var pageImage = new Image(); 384 var pageImage = new Image();
373 pageImage.src = 'data:image/png;base64,' + screenshot; 385 pageImage.src = 'data:image/png;base64,' + screenshot;
374 pageImage.onload = async () => { 386 pageImage.onload = async () => {
375 var scale = window.devicePixelRatio / this._model.scale(); 387 var scale = window.devicePixelRatio / UI.zoomManager.zoomFactor() / this._ model.scale();
376 var outlineRect = this._model.outlineRect().scale(scale); 388 var outlineRect = this._model.outlineRect().scale(scale);
377 var screenRect = this._model.screenRect().scale(scale); 389 var screenRect = this._model.screenRect().scale(scale);
378 var visiblePageRect = this._model.visiblePageRect().scale(scale); 390 var visiblePageRect = this._model.visiblePageRect().scale(scale);
379 var contentLeft = screenRect.left + visiblePageRect.left - outlineRect.lef t; 391 var contentLeft = screenRect.left + visiblePageRect.left - outlineRect.lef t;
380 var contentTop = screenRect.top + visiblePageRect.top - outlineRect.top; 392 var contentTop = screenRect.top + visiblePageRect.top - outlineRect.top;
381 393
382 var canvas = createElement('canvas'); 394 var canvas = createElement('canvas');
383 canvas.width = Math.floor(outlineRect.width); 395 canvas.width = Math.floor(outlineRect.width);
384 canvas.height = Math.floor(outlineRect.height); 396 canvas.height = Math.floor(outlineRect.height);
385 var ctx = canvas.getContext('2d'); 397 var ctx = canvas.getContext('2d');
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 return Promise.resolve(); 558 return Promise.resolve();
547 } 559 }
548 560
549 /** 561 /**
550 * @param {number} size 562 * @param {number} size
551 */ 563 */
552 _onMarkerClick(size) { 564 _onMarkerClick(size) {
553 this._applyCallback.call(null, size); 565 this._applyCallback.call(null, size);
554 } 566 }
555 }; 567 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698