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

Side by Side Diff: Source/devtools/front_end/emulation/OverridesSupport.js

Issue 1178643004: [DevTools] Initial implementation of device modes. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 6 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 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 * @interface 82 * @interface
83 * @extends {WebInspector.EventTarget} 83 * @extends {WebInspector.EventTarget}
84 */ 84 */
85 WebInspector.OverridesSupport.PageResizer = function() 85 WebInspector.OverridesSupport.PageResizer = function()
86 { 86 {
87 }; 87 };
88 88
89 WebInspector.OverridesSupport.PageResizer.Events = { 89 WebInspector.OverridesSupport.PageResizer.Events = {
90 AvailableSizeChanged: "AvailableSizeChanged", 90 AvailableSizeChanged: "AvailableSizeChanged",
91 ResizeRequested: "ResizeRequested", 91 ResizeRequested: "ResizeRequested",
92 FixedScaleRequested: "FixedScaleRequested" 92 FixedScaleRequested: "FixedScaleRequested",
93 InsetsChanged: "InsetsChanged"
93 }; 94 };
94 95
95 WebInspector.OverridesSupport.PageResizer.prototype = { 96 WebInspector.OverridesSupport.PageResizer.prototype = {
96 /** 97 /**
97 * Zero width and height mean default size. 98 * Zero width and height mean default size.
98 * Scale should be applied to page-scale-dependent UI bits. Zero means no sc ale. 99 * Scale should be applied to page-scale-dependent UI bits. Zero means no sc ale.
99 * @param {number} dipWidth 100 * @param {number} dipWidth
100 * @param {number} dipHeight 101 * @param {number} dipHeight
101 * @param {number} scale 102 * @param {number} scale
102 */ 103 */
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 328
328 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.E mulationStateChanged); 329 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.E mulationStateChanged);
329 330
330 callback(); 331 callback();
331 } 332 }
332 }, 333 },
333 334
334 /** 335 /**
335 * @param {?WebInspector.OverridesSupport.PageResizer} pageResizer 336 * @param {?WebInspector.OverridesSupport.PageResizer} pageResizer
336 * @param {!Size} availableSize 337 * @param {!Size} availableSize
338 * @param {!Insets} insets
337 */ 339 */
338 setPageResizer: function(pageResizer, availableSize) 340 setPageResizer: function(pageResizer, availableSize, insets)
339 { 341 {
340 if (pageResizer === this._pageResizer) 342 if (pageResizer === this._pageResizer)
341 return; 343 return;
342 344
343 if (this._pageResizer) { 345 if (this._pageResizer) {
344 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged , this); 346 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged , this);
345 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this); 347 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this);
346 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, this); 348 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, this);
349 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.InsetsChanged, this._onPageResizerInsetsChanged, this);
347 } 350 }
348 this._pageResizer = pageResizer; 351 this._pageResizer = pageResizer;
349 this._pageResizerAvailableSize = availableSize; 352 this._pageResizerAvailableSize = availableSize;
353 this._pageResizerInsets = insets;
350 if (this._pageResizer) { 354 if (this._pageResizer) {
351 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged, t his); 355 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged, t his);
352 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this); 356 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this);
353 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, thi s); 357 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, thi s);
358 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.InsetsChanged, this._onPageResizerInsetsChanged, this);
354 } 359 }
355 this._deviceMetricsChanged(); 360 this._deviceMetricsChanged();
356 }, 361 },
357 362
358 /** 363 /**
359 * @param {!WebInspector.OverridesSupport.Device} device 364 * @param {!WebInspector.OverridesSupport.Device} device
360 */ 365 */
361 emulateDevice: function(device) 366 emulateDevice: function(device)
362 { 367 {
363 this._deviceMetricsChangedListenerMuted = true; 368 this._deviceMetricsChangedListenerMuted = true;
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 if (this._userAgent !== userAgent) 502 if (this._userAgent !== userAgent)
498 this._updateUserAgentWarningMessage(WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering." )); 503 this._updateUserAgentWarningMessage(WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering." ));
499 this._userAgent = userAgent; 504 this._userAgent = userAgent;
500 }, 505 },
501 506
502 /** 507 /**
503 * @param {!WebInspector.Event} event 508 * @param {!WebInspector.Event} event
504 */ 509 */
505 _onPageResizerAvailableSizeChanged: function(event) 510 _onPageResizerAvailableSizeChanged: function(event)
506 { 511 {
507 this._pageResizerAvailableSize = /** @type {!Size} */ (event.data); 512 this._pageResizerAvailableSize = /** @type {!Size} */ (event.data.size);
513 this._pageResizerInsets = /** @type {!Insets} */ (event.data.insets);
508 this._deviceMetricsChanged(); 514 this._deviceMetricsChanged();
509 }, 515 },
510 516
511 /** 517 /**
512 * @param {!WebInspector.Event} event 518 * @param {!WebInspector.Event} event
513 */ 519 */
520 _onPageResizerInsetsChanged: function(event)
521 {
522 this._pageResizerInsets = /** @type {!Insets} */ (event.data);
523 },
524
525 /**
526 * @param {!WebInspector.Event} event
527 */
514 _onPageResizerResizeRequested: function(event) 528 _onPageResizerResizeRequested: function(event)
515 { 529 {
516 if (typeof event.data.width !== "undefined") { 530 if (typeof event.data.width !== "undefined") {
517 var width = /** @type {number} */ (event.data.width); 531 var width = /** @type {number} */ (event.data.width);
518 if (width !== this.settings.deviceWidth.get()) 532 if (width !== this.settings.deviceWidth.get())
519 this.settings.deviceWidth.set(width); 533 this.settings.deviceWidth.set(width);
520 } 534 }
521 if (typeof event.data.height !== "undefined") { 535 if (typeof event.data.height !== "undefined") {
522 var height = /** @type {number} */ (event.data.height); 536 var height = /** @type {number} */ (event.data.height);
523 if (height !== this.settings.deviceHeight.get()) 537 if (height !== this.settings.deviceHeight.get())
(...skipping 28 matching lines...) Expand all
552 } 566 }
553 567
554 var dipWidth = this.settings.emulateResolution.get() ? this.settings.dev iceWidth.get() : 0; 568 var dipWidth = this.settings.emulateResolution.get() ? this.settings.dev iceWidth.get() : 0;
555 var dipHeight = this.settings.emulateResolution.get() ? this.settings.de viceHeight.get() : 0; 569 var dipHeight = this.settings.emulateResolution.get() ? this.settings.de viceHeight.get() : 0;
556 570
557 var overrideWidth = dipWidth; 571 var overrideWidth = dipWidth;
558 var overrideHeight = dipHeight; 572 var overrideHeight = dipHeight;
559 var scale = 1; 573 var scale = 1;
560 if (this._pageResizer) { 574 if (this._pageResizer) {
561 var available = this._pageResizerAvailableSize; 575 var available = this._pageResizerAvailableSize;
576 var insets = this._pageResizerInsets;
562 if (this.settings.deviceFitWindow.get()) { 577 if (this.settings.deviceFitWindow.get()) {
563 if (this._fixedDeviceScale) { 578 if (this._fixedDeviceScale) {
564 scale = this._deviceScale; 579 scale = this._deviceScale;
565 } else { 580 } else {
566 scale = 1; 581 scale = 1;
567 while (available.width < dipWidth * scale || available.heigh t < dipHeight * scale) 582 while (available.width < (dipWidth + insets.left + insets.ri ght) * scale || available.height < (dipHeight + insets.top + insets.bottom) * sc ale)
568 scale *= 0.8; 583 scale *= 0.8;
569 } 584 }
570 } 585 }
571 586
572 this._pageResizer.update(Math.min(dipWidth * scale, available.width) , Math.min(dipHeight * scale, available.height), scale); 587 this._pageResizer.update(Math.min(dipWidth * scale, available.width - insets.left * scale), Math.min(dipHeight * scale, available.height - insets.to p * scale), scale);
573 if (scale === 1 && available.width >= dipWidth && available.height > = dipHeight) { 588 if (scale === 1 && available.width >= dipWidth && available.height > = dipHeight) {
574 // When we have enough space, no page size override is required. This will speed things up and remove lag. 589 // When we have enough space, no page size override is required. This will speed things up and remove lag.
575 overrideWidth = 0; 590 overrideWidth = 0;
576 overrideHeight = 0; 591 overrideHeight = 0;
577 } 592 }
578 if (dipWidth === 0 && dipHeight !== 0) 593 if (dipWidth === 0 && dipHeight !== 0)
579 overrideWidth = Math.round(available.width / scale); 594 overrideWidth = Math.round(available.width / scale);
580 if (dipHeight === 0 && dipWidth !== 0) 595 if (dipHeight === 0 && dipWidth !== 0)
581 overrideHeight = Math.round(available.height / scale); 596 overrideHeight = Math.round(available.height / scale);
582 } 597 }
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 }, 825 },
811 826
812 __proto__: WebInspector.Object.prototype 827 __proto__: WebInspector.Object.prototype
813 } 828 }
814 829
815 830
816 /** 831 /**
817 * @type {!WebInspector.OverridesSupport} 832 * @type {!WebInspector.OverridesSupport}
818 */ 833 */
819 WebInspector.overridesSupport; 834 WebInspector.overridesSupport;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698