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

Side by Side Diff: Source/devtools/front_end/ResponsiveDesignView.js

Issue 338383002: [DevTools] Responsive design UI tweaks. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebased Created 6 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
« no previous file with comments | « no previous file | Source/devtools/front_end/responsiveDesignView.css » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 /** 5 /**
6 * @constructor 6 * @constructor
7 * @extends {WebInspector.VBox} 7 * @extends {WebInspector.VBox}
8 * @implements {WebInspector.OverridesSupport.PageResizer} 8 * @implements {WebInspector.OverridesSupport.PageResizer}
9 * @param {!WebInspector.InspectedPagePlaceholder} inspectedPagePlaceholder 9 * @param {!WebInspector.InspectedPagePlaceholder} inspectedPagePlaceholder
10 */ 10 */
11 WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder) 11 WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder)
12 { 12 {
13 WebInspector.VBox.call(this); 13 WebInspector.VBox.call(this);
14 this.setMinimumSize(150, 150); 14 this.setMinimumSize(150, 150);
15 this.registerRequiredCSS("responsiveDesignView.css"); 15 this.registerRequiredCSS("responsiveDesignView.css");
16 this.element.classList.add("overflow-hidden"); 16 this.element.classList.add("overflow-hidden");
17 17
18 this._responsiveDesignContainer = new WebInspector.VBox(); 18 this._responsiveDesignContainer = new WebInspector.VBox();
19 19
20 this._createToolbar(); 20 this._createToolbar();
21 this._warningMessage = this._responsiveDesignContainer.element.createChild(" div", "responsive-design-warning hidden");
22 WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport .Events.OverridesWarningUpdated, this._overridesWarningUpdated, this);
23 21
24 this._canvasContainer = new WebInspector.View(); 22 this._canvasContainer = new WebInspector.View();
25 this._canvasContainer.element.classList.add("responsive-design"); 23 this._canvasContainer.element.classList.add("responsive-design");
26 this._canvasContainer.show(this._responsiveDesignContainer.element); 24 this._canvasContainer.show(this._responsiveDesignContainer.element);
27 25
28 this._canvas = this._canvasContainer.element.createChild("canvas", "fill"); 26 this._canvas = this._canvasContainer.element.createChild("canvas", "fill");
27
28 this._warningMessage = this._canvasContainer.element.createChild("div", "res ponsive-design-warning hidden");
29 this._warningMessage.createChild("span");
30 var warningCloseButton = this._warningMessage.createChild("div", "responsive -design-warning-close");
31 warningCloseButton.addEventListener("click", this._closeOverridesWarning.bin d(this));
32 WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport .Events.OverridesWarningUpdated, this._overridesWarningUpdated, this);
33
29 this._slidersContainer = this._canvasContainer.element.createChild("div", "v box responsive-design-sliders-container"); 34 this._slidersContainer = this._canvasContainer.element.createChild("div", "v box responsive-design-sliders-container");
30 var hbox = this._slidersContainer.createChild("div", "hbox flex-auto"); 35 var hbox = this._slidersContainer.createChild("div", "hbox flex-auto");
31 this._heightSliderContainer = this._slidersContainer.createChild("div", "hbo x responsive-design-slider-height"); 36 this._heightSliderContainer = this._slidersContainer.createChild("div", "hbo x responsive-design-slider-height");
32 this._resolutionHeightLabel = this._heightSliderContainer.createChild("div", "responsive-design-resolution-label responsive-design-resolution-height"); 37 this._resolutionHeightLabel = this._heightSliderContainer.createChild("div", "responsive-design-resolution-label responsive-design-resolution-height");
33 this._pageContainer = hbox.createChild("div", "vbox flex-auto"); 38 this._pageContainer = hbox.createChild("div", "vbox flex-auto");
34 this._widthSliderContainer = hbox.createChild("div", "vbox responsive-design -slider-width"); 39 this._widthSliderContainer = hbox.createChild("div", "vbox responsive-design -slider-width");
35 this._resolutionWidthLabel = this._widthSliderContainer.createChild("div", " responsive-design-resolution-label responsive-design-resolution-width"); 40 this._resolutionWidthLabel = this._widthSliderContainer.createChild("div", " responsive-design-resolution-label responsive-design-resolution-width");
36 41
37 this._widthSlider = this._widthSliderContainer.createChild("div", "responsiv e-design-slider-thumb"); 42 this._widthSlider = this._widthSliderContainer.createChild("div", "responsiv e-design-slider-thumb");
38 this._widthSlider.createChild("div", "responsive-design-thumb-handle"); 43 this._widthSlider.createChild("div", "responsive-design-thumb-handle");
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 324
320 this._widthSlider.classList.toggle("hidden", !!this._scale); 325 this._widthSlider.classList.toggle("hidden", !!this._scale);
321 this._heightSlider.classList.toggle("hidden", !!this._scale); 326 this._heightSlider.classList.toggle("hidden", !!this._scale);
322 this._widthSlider.classList.toggle("reversed", !this._dipWidth); 327 this._widthSlider.classList.toggle("reversed", !this._dipWidth);
323 this._heightSlider.classList.toggle("reversed", !this._dipHeight); 328 this._heightSlider.classList.toggle("reversed", !this._dipHeight);
324 329
325 if (this._cachedZoomFactor !== zoomFactor) { 330 if (this._cachedZoomFactor !== zoomFactor) {
326 var cssRulerWidth = WebInspector.ResponsiveDesignView.RulerWidth / z oomFactor + "px"; 331 var cssRulerWidth = WebInspector.ResponsiveDesignView.RulerWidth / z oomFactor + "px";
327 this._slidersContainer.style.left = cssRulerWidth; 332 this._slidersContainer.style.left = cssRulerWidth;
328 this._slidersContainer.style.top = cssRulerWidth; 333 this._slidersContainer.style.top = cssRulerWidth;
334 this._warningMessage.style.height = cssRulerWidth;
329 335
330 var cssSliderWidth = WebInspector.ResponsiveDesignView.SliderWidth / zoomFactor + "px"; 336 var cssSliderWidth = WebInspector.ResponsiveDesignView.SliderWidth / zoomFactor + "px";
331 this._heightSliderContainer.style.flexBasis = cssSliderWidth; 337 this._heightSliderContainer.style.flexBasis = cssSliderWidth;
332 this._heightSliderContainer.style.marginBottom = "-" + cssSliderWidt h; 338 this._heightSliderContainer.style.marginBottom = "-" + cssSliderWidt h;
333 this._widthSliderContainer.style.flexBasis = cssSliderWidth; 339 this._widthSliderContainer.style.flexBasis = cssSliderWidth;
334 this._widthSliderContainer.style.marginRight = "-" + cssSliderWidth; 340 this._widthSliderContainer.style.marginRight = "-" + cssSliderWidth;
335 } 341 }
336 342
337 var cssWidth = this._dipWidth ? (this._dipWidth / zoomFactor + "px") : ( availableDip.width / zoomFactor + "px"); 343 var cssWidth = this._dipWidth ? (this._dipWidth / zoomFactor + "px") : ( availableDip.width / zoomFactor + "px");
338 var cssHeight = this._dipHeight ? (this._dipHeight / zoomFactor + "px") : (availableDip.height / zoomFactor + "px"); 344 var cssHeight = this._dipHeight ? (this._dipHeight / zoomFactor + "px") : (availableDip.height / zoomFactor + "px");
(...skipping 26 matching lines...) Expand all
365 this._inspectedPagePlaceholder.onResize(); 371 this._inspectedPagePlaceholder.onResize();
366 }, 372 },
367 373
368 _onZoomChanged: function() 374 _onZoomChanged: function()
369 { 375 {
370 this._updateUI(); 376 this._updateUI();
371 }, 377 },
372 378
373 _createToolbar: function() 379 _createToolbar: function()
374 { 380 {
375 var toolbarElement = this._responsiveDesignContainer.element.createChild ("div", "responsive-design-toolbar"); 381 this._toolbarElement = this._responsiveDesignContainer.element.createChi ld("div", "responsive-design-toolbar");
376 this._toolbarSection = toolbarElement.createChild("div", "responsive-des ign-composite-section hbox"); 382 this._createExpandSection();
383 this._toolbarElement.createChild("div", "responsive-design-separator");
384 this._createDeviceSection();
385 if (WebInspector.experimentsSettings.networkConditions.isEnabled()) {
386 this._toolbarElement.createChild("div", "responsive-design-separator ");
387 this._createNetworkSection();
388 }
389 this._toolbarElement.createChild("div", "responsive-design-separator");
377 390
378 this._expandedDeviceSection = document.createElementWithClass("div", "re sponsive-design-composite-section vbox"); 391 this._toolbarExpandedChanged();
379 this._expandedScreenTouchSection = document.createElementWithClass("div" , "responsive-design-composite-section hbox"); 392 },
380 this._expandedNetworkSection = document.createElementWithClass("div", "r esponsive-design-composite-section vbox solid");
381 393
382 this._expandSection = document.createElementWithClass("div", "responsive -design-section vbox"); 394 _createExpandSection: function()
395 {
383 this.toolbarExpandedSetting = WebInspector.settings.createSetting("respo nsiveDesignToolbarExpanded", false); 396 this.toolbarExpandedSetting = WebInspector.settings.createSetting("respo nsiveDesignToolbarExpanded", false);
384 this._expandButton = this._expandSection.createChild("div", "responsive- design-expand"); 397 var expandSection = this._toolbarElement.createChild("div", "responsive- design-section responsive-design-section-expand");
398 this._expandButton = expandSection.createChild("div", "responsive-design -expand-button");
385 this._expandButton.createChild("div", "responsive-design-icon responsive -design-icon-expand"); 399 this._expandButton.createChild("div", "responsive-design-icon responsive -design-icon-expand");
386 this._expandButton.createChild("span"); 400 this._expandButton.createChild("span");
387 this._expandButton.addEventListener("click", this._toggleToolbarExpanded .bind(this), false); 401 this._expandButton.addEventListener("click", this._toggleToolbarExpanded .bind(this), false);
388 this.toolbarExpandedSetting.addChangeListener(this._toolbarExpandedChang ed, this); 402 this.toolbarExpandedSetting.addChangeListener(this._toolbarExpandedChang ed, this);
403 },
389 404
390 // Device 405 _toggleToolbarExpanded: function()
391 this._deviceSection = document.createElementWithClass("div", "responsive -design-section"); 406 {
392 this._deviceSection.appendChild(WebInspector.SettingsUI.createSettingChe ckbox(WebInspector.UIString("Device"), WebInspector.overridesSupport.settings.em ulateDevice, true)); 407 this.toolbarExpandedSetting.set(!this.toolbarExpandedSetting.get());
393 this._deviceSection.appendChild(WebInspector.overridesSupport.createDevi ceSelect(document)); 408 },
394 409
395 // Screen 410 _toolbarExpandedChanged: function()
396 this._screenSection = document.createElementWithClass("div", "responsive -design-section responsive-design-screen-section"); 411 {
412 var expanded = this.toolbarExpandedSetting.get();
413 this._expandButton.querySelector("span").textContent = WebInspector.UISt ring(expanded ? "Less" : "More");
414 this._toolbarElement.classList.toggle("expanded", expanded);
415 this.onResize();
416 },
417
418 _createDeviceSection: function()
419 {
420 var deviceSection = this._toolbarElement.createChild("div", "responsive- design-section responsive-design-section-device");
421
422 // Device.
423 var deviceElement = deviceSection.createChild("div", "responsive-design- suite").createChild("div");
424 deviceElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox( WebInspector.UIString("Device"), WebInspector.overridesSupport.settings.emulateD evice, true));
425 deviceElement.appendChild(WebInspector.overridesSupport.createDeviceSele ct(document));
426
427 var separator = deviceSection.createChild("div", "responsive-design-sect ion-separator expanded-only");
428
429 var detailsElement = deviceSection.createChild("div", "responsive-design -suite expanded-only");
430
431 // Dimensions.
432 var screenElement = detailsElement.createChild("div", "");
397 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.emulateDevice); 433 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.emulateDevice);
398 this._screenSection.appendChild(fieldsetElement); 434 screenElement.appendChild(fieldsetElement);
435
399 fieldsetElement.createChild("div", "responsive-design-icon responsive-de sign-icon-resolution").title = WebInspector.UIString("Screen resolution"); 436 fieldsetElement.createChild("div", "responsive-design-icon responsive-de sign-icon-resolution").title = WebInspector.UIString("Screen resolution");
400
401 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi eld("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "3em", WebI nspector.OverridesSupport.integerInputValidator, true)); 437 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi eld("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "3em", WebI nspector.OverridesSupport.integerInputValidator, true));
402 fieldsetElement.appendChild(document.createTextNode(" \u00D7 ")); 438 fieldsetElement.appendChild(document.createTextNode(" \u00D7 "));
403 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi eld("", WebInspector.overridesSupport.settings.deviceHeight, true, 4, "3em", Web Inspector.OverridesSupport.integerInputValidator, true)); 439 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi eld("", WebInspector.overridesSupport.settings.deviceHeight, true, 4, "3em", Web Inspector.OverridesSupport.integerInputValidator, true));
404 440
405 this._swapDimensionsElement = fieldsetElement.createChild("button", "res ponsive-design-icon responsive-design-icon-swap"); 441 this._swapDimensionsElement = fieldsetElement.createChild("button", "res ponsive-design-icon responsive-design-icon-swap");
406 this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensio ns"); 442 this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensio ns");
407 this._swapDimensionsElement.addEventListener("click", WebInspector.overr idesSupport.swapDimensions.bind(WebInspector.overridesSupport), false); 443 this._swapDimensionsElement.addEventListener("click", WebInspector.overr idesSupport.swapDimensions.bind(WebInspector.overridesSupport), false);
408 444
445 // Device pixel ratio.
446 detailsElement.createChild("div", "responsive-design-suite-separator");
447 var dprElement = detailsElement.createChild("div", "");
448 fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebInspe ctor.overridesSupport.settings.emulateDevice);
449 dprElement.appendChild(fieldsetElement);
450
409 fieldsetElement.createChild("div", "responsive-design-icon responsive-de sign-icon-dpr").title = WebInspector.UIString("Device pixel ratio"); 451 fieldsetElement.createChild("div", "responsive-design-icon responsive-de sign-icon-dpr").title = WebInspector.UIString("Device pixel ratio");
410 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi eld("", WebInspector.overridesSupport.settings.deviceScaleFactor, true, 4, "2.5e m", WebInspector.OverridesSupport.doubleInputValidator, true)); 452 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi eld("", WebInspector.overridesSupport.settings.deviceScaleFactor, true, 4, "2.5e m", WebInspector.OverridesSupport.doubleInputValidator, true));
411 453
412 // Touch and viewport. 454 // Touch.
413 this._touchSection = document.createElementWithClass("div", "responsive- design-section"); 455 if (!WebInspector.overridesSupport.hasTouchInputs()) {
456 detailsElement.createChild("div", "responsive-design-suite-separator ");
457 var touchElement = detailsElement.createChild("div", "");
458 fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI nspector.overridesSupport.settings.emulateDevice);
459 touchElement.appendChild(fieldsetElement);
460 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingChe ckbox(WebInspector.UIString("Touch"), WebInspector.overridesSupport.settings.dev iceTouch, true));
461 }
462
463 // Viewport.
464 detailsElement.createChild("div", "responsive-design-suite-separator");
465 var viewportElement = detailsElement.createChild("div", "");
414 fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebInspe ctor.overridesSupport.settings.emulateDevice); 466 fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebInspe ctor.overridesSupport.settings.emulateDevice);
415 if (!WebInspector.overridesSupport.hasTouchInputs()) 467 viewportElement.appendChild(fieldsetElement);
416 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingChe ckbox(WebInspector.UIString("Touch"), WebInspector.overridesSupport.settings.dev iceTouch, true)); 468
417 var viewportCheckbox = WebInspector.SettingsUI.createSettingCheckbox(Web Inspector.UIString("Mobile"), WebInspector.overridesSupport.settings.emulateView port, true); 469 var viewportCheckbox = WebInspector.SettingsUI.createSettingCheckbox(Web Inspector.UIString("Mobile"), WebInspector.overridesSupport.settings.emulateView port, true);
418 viewportCheckbox.title = WebInspector.UIString("Enable meta viewport, ov erlay scrollbars and default 980px body width"); 470 viewportCheckbox.title = WebInspector.UIString("Enable meta viewport, ov erlay scrollbars and default 980px body width");
419 fieldsetElement.appendChild(viewportCheckbox); 471 fieldsetElement.appendChild(viewportCheckbox);
420 this._touchSection.appendChild(fieldsetElement); 472 },
421 473
422 // Network. 474 _createNetworkSection: function()
423 this._networkSection = document.createElementWithClass("div", "responsiv e-design-section responsive-design-network"); 475 {
476 var networkSection = this._toolbarElement.createChild("div", "responsive -design-section responsive-design-section-network");
477
478 // Bandwidth.
479 var bandwidthElement = networkSection.createChild("div", "responsive-des ign-suite").createChild("div");
424 var networkCheckbox = WebInspector.SettingsUI.createSettingCheckbox(WebI nspector.UIString("Bandwidth"), WebInspector.overridesSupport.settings.emulateNe tworkConditions, true); 480 var networkCheckbox = WebInspector.SettingsUI.createSettingCheckbox(WebI nspector.UIString("Bandwidth"), WebInspector.overridesSupport.settings.emulateNe tworkConditions, true);
425 this._networkSection.appendChild(networkCheckbox); 481 bandwidthElement.appendChild(networkCheckbox);
426 this._networkSection.appendChild(WebInspector.overridesSupport.createNet workThroughputSelect(document)); 482 bandwidthElement.appendChild(WebInspector.overridesSupport.createNetwork ThroughputSelect(document));
427 483
428 this._userAgentSection = document.createElementWithClass("div", "respons ive-design-section responsive-design-user-agent-section"); 484 var separator = networkSection.createChild("div", "responsive-design-sec tion-separator expanded-only");
429 this._userAgentSection.appendChild(WebInspector.SettingsUI.createSetting Label(WebInspector.UIString("User Agent:"), WebInspector.overridesSupport.settin gs.deviceUserAgent, 25, "200px", WebInspector.UIString("no override"))); 485
486 // User agent.
487 var userAgentElement = networkSection.createChild("div", "responsive-des ign-suite expanded-only").createChild("div");
488 userAgentElement.appendChild(WebInspector.SettingsUI.createSettingLabel( WebInspector.UIString("User Agent:"), WebInspector.overridesSupport.settings.dev iceUserAgent, 32, "240px", WebInspector.UIString("no override")));
430 489
431 updateNetworkCheckboxTitle(); 490 updateNetworkCheckboxTitle();
432 WebInspector.overridesSupport.settings.networkConditionsDomains.addChang eListener(updateNetworkCheckboxTitle); 491 WebInspector.overridesSupport.settings.networkConditionsDomains.addChang eListener(updateNetworkCheckboxTitle);
433 492
434 function updateNetworkCheckboxTitle() 493 function updateNetworkCheckboxTitle()
435 { 494 {
436 var domains = WebInspector.overridesSupport.settings.networkConditio nsDomains.get(); 495 var domains = WebInspector.overridesSupport.settings.networkConditio nsDomains.get();
437 if (!domains.trim()) { 496 if (!domains.trim()) {
438 networkCheckbox.title = WebInspector.UIString("Limit for all dom ains"); 497 networkCheckbox.title = WebInspector.UIString("Limit for all dom ains");
439 } else { 498 } else {
440 var trimmed = domains.split(",").map(function(s) { return s.trim (); }).join(", "); 499 var trimmed = domains.split(",").map(function(s) { return s.trim (); }).join(", ");
441 if (trimmed.length > 40) 500 if (trimmed.length > 40)
442 trimmed = trimmed.substring(0, 40) + "..."; 501 trimmed = trimmed.substring(0, 40) + "...";
443 networkCheckbox.title = WebInspector.UIString("Limit for ") + tr immed; 502 networkCheckbox.title = WebInspector.UIString("Limit for ") + tr immed;
444 } 503 }
445 } 504 }
446
447 this._toolbarExpandedChanged();
448 },
449
450 _toggleToolbarExpanded: function()
451 {
452 this.toolbarExpandedSetting.set(!this.toolbarExpandedSetting.get());
453 },
454
455 _toolbarExpandedChanged: function()
456 {
457 var expanded = this.toolbarExpandedSetting.get();
458 this._expandButton.classList.toggle("expanded", expanded);
459 this._expandButton.querySelector("span").textContent = WebInspector.UISt ring(expanded ? "Collapse" : "Expand");
460
461 if (expanded) {
462 this._expandedScreenTouchSection.setChildren([this._screenSection, t his._touchSection]);
463 this._expandedDeviceSection.setChildren([this._deviceSection, this._ expandedScreenTouchSection]);
464 this._expandedNetworkSection.setChildren([this._networkSection, this ._userAgentSection]);
465 this._toolbarSection.setChildren([this._expandSection, this._expande dDeviceSection, this._expandedNetworkSection]);
466 } else {
467 this._toolbarSection.setChildren([this._expandSection, this._deviceS ection, this._networkSection]);
468 }
469
470 this.onResize();
471 }, 505 },
472 506
473 _overridesWarningUpdated: function() 507 _overridesWarningUpdated: function()
474 { 508 {
475 var message = WebInspector.overridesSupport.warningMessage(); 509 var message = WebInspector.overridesSupport.warningMessage();
476 if (this._warningMessage.textContent === message) 510 if (this._warningMessage.querySelector("span").textContent === message)
477 return; 511 return;
478 this._warningMessage.classList.toggle("hidden", !message); 512 this._warningMessage.classList.toggle("hidden", !message);
479 this._warningMessage.textContent = message; 513 this._warningMessage.querySelector("span").textContent = message;
480 this._invalidateCache(); 514 this._invalidateCache();
481 this.onResize(); 515 this.onResize();
482 }, 516 },
483 517
518 _closeOverridesWarning: function()
519 {
520 this._warningMessage.querySelector("span").textContent = "";
521 this._warningMessage.classList.add("hidden");
522 },
523
484 __proto__: WebInspector.VBox.prototype 524 __proto__: WebInspector.VBox.prototype
485 }; 525 };
OLDNEW
« no previous file with comments | « no previous file | Source/devtools/front_end/responsiveDesignView.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698