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

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: Turn into class 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 * @interface 80 * @interface
81 * @extends {WebInspector.EventTarget} 81 * @extends {WebInspector.EventTarget}
82 */ 82 */
83 WebInspector.OverridesSupport.PageResizer = function() 83 WebInspector.OverridesSupport.PageResizer = function()
84 { 84 {
85 }; 85 };
86 86
87 WebInspector.OverridesSupport.PageResizer.Events = { 87 WebInspector.OverridesSupport.PageResizer.Events = {
88 AvailableSizeChanged: "AvailableSizeChanged", 88 AvailableSizeChanged: "AvailableSizeChanged",
89 ResizeRequested: "ResizeRequested", 89 ResizeRequested: "ResizeRequested",
90 FixedScaleRequested: "FixedScaleRequested" 90 FixedScaleRequested: "FixedScaleRequested",
91 InsetsChanged: "InsetsChanged"
91 }; 92 };
92 93
93 WebInspector.OverridesSupport.PageResizer.prototype = { 94 WebInspector.OverridesSupport.PageResizer.prototype = {
94 /** 95 /**
95 * Zero width and height mean default size. 96 * Zero width and height mean default size.
96 * Scale should be applied to page-scale-dependent UI bits. Zero means no sc ale. 97 * Scale should be applied to page-scale-dependent UI bits. Zero means no sc ale.
97 * @param {number} dipWidth 98 * @param {number} dipWidth
98 * @param {number} dipHeight 99 * @param {number} dipHeight
99 * @param {number} scale 100 * @param {number} scale
100 */ 101 */
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 321
321 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.E mulationStateChanged); 322 this.dispatchEventToListeners(WebInspector.OverridesSupport.Events.E mulationStateChanged);
322 323
323 callback(); 324 callback();
324 } 325 }
325 }, 326 },
326 327
327 /** 328 /**
328 * @param {?WebInspector.OverridesSupport.PageResizer} pageResizer 329 * @param {?WebInspector.OverridesSupport.PageResizer} pageResizer
329 * @param {!Size} availableSize 330 * @param {!Size} availableSize
331 * @param {!Insets} insets
330 */ 332 */
331 setPageResizer: function(pageResizer, availableSize) 333 setPageResizer: function(pageResizer, availableSize, insets)
332 { 334 {
333 if (pageResizer === this._pageResizer) 335 if (pageResizer === this._pageResizer)
334 return; 336 return;
335 337
336 if (this._pageResizer) { 338 if (this._pageResizer) {
337 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged , this); 339 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged , this);
338 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this); 340 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this);
339 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, this); 341 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, this);
342 this._pageResizer.removeEventListener(WebInspector.OverridesSupport. PageResizer.Events.InsetsChanged, this._onPageResizerInsetsChanged, this);
340 } 343 }
341 this._pageResizer = pageResizer; 344 this._pageResizer = pageResizer;
342 this._pageResizerAvailableSize = availableSize; 345 this._pageResizerAvailableSize = availableSize;
346 this._pageResizerInsets = insets;
343 if (this._pageResizer) { 347 if (this._pageResizer) {
344 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged, t his); 348 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.AvailableSizeChanged, this._onPageResizerAvailableSizeChanged, t his);
345 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this); 349 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.ResizeRequested, this._onPageResizerResizeRequested, this);
346 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, thi s); 350 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.FixedScaleRequested, this._onPageResizerFixedScaleRequested, thi s);
351 this._pageResizer.addEventListener(WebInspector.OverridesSupport.Pag eResizer.Events.InsetsChanged, this._onPageResizerInsetsChanged, this);
347 } 352 }
348 this._deviceMetricsChanged(); 353 this._deviceMetricsChanged();
349 }, 354 },
350 355
351 /** 356 /**
352 * @param {!WebInspector.OverridesSupport.Device} device 357 * @param {!WebInspector.OverridesSupport.Device} device
353 */ 358 */
354 emulateDevice: function(device) 359 emulateDevice: function(device)
355 { 360 {
356 this._deviceMetricsChangedListenerMuted = true; 361 this._deviceMetricsChangedListenerMuted = true;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 if (this._userAgent !== userAgent) 488 if (this._userAgent !== userAgent)
484 this._updateUserAgentWarningMessage(WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering." )); 489 this._updateUserAgentWarningMessage(WebInspector.UIString("You might need to reload the page for proper user agent spoofing and viewport rendering." ));
485 this._userAgent = userAgent; 490 this._userAgent = userAgent;
486 }, 491 },
487 492
488 /** 493 /**
489 * @param {!WebInspector.Event} event 494 * @param {!WebInspector.Event} event
490 */ 495 */
491 _onPageResizerAvailableSizeChanged: function(event) 496 _onPageResizerAvailableSizeChanged: function(event)
492 { 497 {
493 this._pageResizerAvailableSize = /** @type {!Size} */ (event.data); 498 this._pageResizerAvailableSize = /** @type {!Size} */ (event.data.size);
499 this._pageResizerInsets = /** @type {!Insets} */ (event.data.insets);
494 this._deviceMetricsChanged(); 500 this._deviceMetricsChanged();
495 }, 501 },
496 502
497 /** 503 /**
498 * @param {!WebInspector.Event} event 504 * @param {!WebInspector.Event} event
499 */ 505 */
506 _onPageResizerInsetsChanged: function(event)
507 {
508 this._pageResizerInsets = /** @type {!Insets} */ (event.data);
509 },
510
511 /**
512 * @param {!WebInspector.Event} event
513 */
500 _onPageResizerResizeRequested: function(event) 514 _onPageResizerResizeRequested: function(event)
501 { 515 {
502 if (typeof event.data.width !== "undefined") { 516 if (typeof event.data.width !== "undefined") {
503 var width = /** @type {number} */ (event.data.width); 517 var width = /** @type {number} */ (event.data.width);
504 if (width !== this.settings.deviceWidth.get()) 518 if (width !== this.settings.deviceWidth.get())
505 this.settings.deviceWidth.set(width); 519 this.settings.deviceWidth.set(width);
506 } 520 }
507 if (typeof event.data.height !== "undefined") { 521 if (typeof event.data.height !== "undefined") {
508 var height = /** @type {number} */ (event.data.height); 522 var height = /** @type {number} */ (event.data.height);
509 if (height !== this.settings.deviceHeight.get()) 523 if (height !== this.settings.deviceHeight.get())
(...skipping 28 matching lines...) Expand all
538 } 552 }
539 553
540 var dipWidth = this.settings.emulateResolution.get() ? this.settings.dev iceWidth.get() : 0; 554 var dipWidth = this.settings.emulateResolution.get() ? this.settings.dev iceWidth.get() : 0;
541 var dipHeight = this.settings.emulateResolution.get() ? this.settings.de viceHeight.get() : 0; 555 var dipHeight = this.settings.emulateResolution.get() ? this.settings.de viceHeight.get() : 0;
542 556
543 var overrideWidth = dipWidth; 557 var overrideWidth = dipWidth;
544 var overrideHeight = dipHeight; 558 var overrideHeight = dipHeight;
545 var scale = 1; 559 var scale = 1;
546 if (this._pageResizer) { 560 if (this._pageResizer) {
547 var available = this._pageResizerAvailableSize; 561 var available = this._pageResizerAvailableSize;
562 var insets = this._pageResizerInsets;
548 if (this.settings.deviceFitWindow.get()) { 563 if (this.settings.deviceFitWindow.get()) {
549 if (this._fixedDeviceScale) { 564 if (this._fixedDeviceScale) {
550 scale = this._deviceScale; 565 scale = this._deviceScale;
551 } else { 566 } else {
552 scale = 1; 567 scale = 1;
553 while (available.width < dipWidth * scale || available.heigh t < dipHeight * scale) 568 while (available.width < (dipWidth + insets.left + insets.ri ght) * scale || available.height < (dipHeight + insets.top + insets.bottom) * sc ale)
554 scale *= 0.8; 569 scale *= 0.8;
555 } 570 }
556 } 571 }
557 572
558 this._pageResizer.update(Math.min(dipWidth * scale, available.width) , Math.min(dipHeight * scale, available.height), scale); 573 this._pageResizer.update(Math.min(dipWidth * scale, available.width - insets.left * scale), Math.min(dipHeight * scale, available.height - insets.to p * scale), scale);
559 if (scale === 1 && available.width >= dipWidth && available.height > = dipHeight) { 574 if (scale === 1 && available.width >= dipWidth && available.height > = dipHeight) {
560 // When we have enough space, no page size override is required. This will speed things up and remove lag. 575 // When we have enough space, no page size override is required. This will speed things up and remove lag.
561 overrideWidth = 0; 576 overrideWidth = 0;
562 overrideHeight = 0; 577 overrideHeight = 0;
563 } 578 }
564 if (dipWidth === 0 && dipHeight !== 0) 579 if (dipWidth === 0 && dipHeight !== 0)
565 overrideWidth = Math.round(available.width / scale); 580 overrideWidth = Math.round(available.width / scale);
566 if (dipHeight === 0 && dipWidth !== 0) 581 if (dipHeight === 0 && dipWidth !== 0)
567 overrideHeight = Math.round(available.height / scale); 582 overrideHeight = Math.round(available.height / scale);
568 } 583 }
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 }, 789 },
775 790
776 __proto__: WebInspector.Object.prototype 791 __proto__: WebInspector.Object.prototype
777 } 792 }
778 793
779 794
780 /** 795 /**
781 * @type {!WebInspector.OverridesSupport} 796 * @type {!WebInspector.OverridesSupport}
782 */ 797 */
783 WebInspector.overridesSupport; 798 WebInspector.overridesSupport;
OLDNEW
« no previous file with comments | « Source/devtools/front_end/emulation/EmulatedDevices.js ('k') | Source/devtools/front_end/emulation/OverridesUI.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698