| Index: third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js | 
| diff --git a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js | 
| index 343e5e8b5b1c6a6ec872ed4cc83173feed268940..b22f384ce6b3bb935a173bff6a02d810682ea916 100644 | 
| --- a/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js | 
| +++ b/third_party/WebKit/Source/devtools/front_end/elements/ElementsPanel.js | 
| @@ -54,6 +54,8 @@ Elements.ElementsPanel = class extends UI.Panel { | 
| stackElement.appendChild(crumbsContainer); | 
|  | 
| this._splitWidget.setMainWidget(this._searchableView); | 
| +    /** @type {?Elements.ElementsPanel._splitMode} */ | 
| +    this._splitMode = null; | 
|  | 
| this._contentElement.id = 'elements-content'; | 
| // FIXME: crbug.com/425984 | 
| @@ -349,8 +351,7 @@ Elements.ElementsPanel = class extends UI.Panel { | 
| * @override | 
| */ | 
| onResize() { | 
| -    if (Common.moduleSetting('sidebarPosition').get() === 'auto') | 
| -      this.element.window().requestAnimationFrame(this._updateSidebarPosition.bind(this));  // Do not force layout. | 
| +    this.element.window().requestAnimationFrame(this._updateSidebarPosition.bind(this));  // Do not force layout. | 
| this._updateTreeOutlineVisibleWidth(); | 
| } | 
|  | 
| @@ -823,20 +824,21 @@ Elements.ElementsPanel = class extends UI.Panel { | 
| } | 
|  | 
| _updateSidebarPosition() { | 
| -    var horizontally; | 
| +    if (this.sidebarPaneView && this.sidebarPaneView.tabbedPane().shouldHideOnDetach()) | 
| +      return;  // We can't reparent extension iframes. | 
| + | 
| +    var splitMode; | 
| var position = Common.moduleSetting('sidebarPosition').get(); | 
| -    if (position === 'right') | 
| -      horizontally = false; | 
| -    else if (position === 'bottom') | 
| -      horizontally = true; | 
| +    if (position === 'right' || (position === 'auto' && UI.inspectorView.element.offsetWidth > 680)) | 
| +      splitMode = Elements.ElementsPanel._splitMode.Vertical; | 
| +    else if (UI.inspectorView.element.offsetWidth > 415) | 
| +      splitMode = Elements.ElementsPanel._splitMode.Horizontal; | 
| else | 
| -      horizontally = UI.inspectorView.element.offsetWidth < 680; | 
| +      splitMode = Elements.ElementsPanel._splitMode.Slim; | 
|  | 
| -    if (this.sidebarPaneView && horizontally === !this._splitWidget.isVertical()) | 
| +    if (this.sidebarPaneView && splitMode === this._splitMode) | 
| return; | 
| - | 
| -    if (this.sidebarPaneView && this.sidebarPaneView.tabbedPane().shouldHideOnDetach()) | 
| -      return;  // We can't reparent extension iframes. | 
| +    this._splitMode = splitMode; | 
|  | 
| var extensionSidebarPanes = Extensions.extensionServer.sidebarPanes(); | 
| if (this.sidebarPaneView) { | 
| @@ -844,7 +846,7 @@ Elements.ElementsPanel = class extends UI.Panel { | 
| this._splitWidget.uninstallResizer(this.sidebarPaneView.tabbedPane().headerElement()); | 
| } | 
|  | 
| -    this._splitWidget.setVertical(!horizontally); | 
| +    this._splitWidget.setVertical(this._splitMode === Elements.ElementsPanel._splitMode.Vertical); | 
| this.showToolbarPane(null); | 
|  | 
| var matchedStylesContainer = new UI.VBox(); | 
| @@ -889,24 +891,21 @@ Elements.ElementsPanel = class extends UI.Panel { | 
| this._popoverHelper.setHasPadding(true); | 
| this._popoverHelper.setTimeout(0); | 
|  | 
| -    if (horizontally) { | 
| -      // Styles and computed are merged into a single tab. | 
| +    if (this._splitMode !== Elements.ElementsPanel._splitMode.Vertical) | 
| this._splitWidget.installResizer(tabbedPane.headerElement()); | 
|  | 
| -      var stylesView = new UI.SimpleView(Common.UIString('Styles')); | 
| +    var stylesView = new UI.SimpleView(Common.UIString('Styles')); | 
| +    this.sidebarPaneView.appendView(stylesView); | 
| +    if (splitMode === Elements.ElementsPanel._splitMode.Horizontal) { | 
| +      // Styles and computed are merged into a single tab. | 
| stylesView.element.classList.add('flex-auto'); | 
|  | 
| var splitWidget = new UI.SplitWidget(true, true, 'stylesPaneSplitViewState', 215); | 
| splitWidget.show(stylesView.element); | 
| - | 
| splitWidget.setMainWidget(matchedStylesContainer); | 
| splitWidget.setSidebarWidget(computedStylePanesWrapper); | 
| - | 
| -      this.sidebarPaneView.appendView(stylesView); | 
| -      this._stylesViewToReveal = stylesView; | 
| } else { | 
| // Styles and computed are in separate tabs. | 
| -      var stylesView = new UI.SimpleView(Common.UIString('Styles')); | 
| stylesView.element.classList.add('flex-auto', 'metrics-and-styles'); | 
| matchedStylesContainer.show(stylesView.element); | 
|  | 
| @@ -915,12 +914,11 @@ Elements.ElementsPanel = class extends UI.Panel { | 
| computedStylePanesWrapper.show(computedView.element); | 
|  | 
| tabbedPane.addEventListener(UI.TabbedPane.Events.TabSelected, tabSelected, this); | 
| -      this.sidebarPaneView.appendView(stylesView); | 
| this.sidebarPaneView.appendView(computedView); | 
| -      this._stylesViewToReveal = stylesView; | 
| } | 
| +    this._stylesViewToReveal = stylesView; | 
|  | 
| -    showMetrics.call(this, horizontally); | 
| +    showMetrics.call(this, this._splitMode === Elements.ElementsPanel._splitMode.Horizontal); | 
|  | 
| this.sidebarPaneView.appendApplicableItems('elements-sidebar'); | 
| for (var i = 0; i < extensionSidebarPanes.length; ++i) | 
| @@ -948,6 +946,13 @@ Elements.ElementsPanel = class extends UI.Panel { | 
|  | 
| Elements.ElementsPanel._elementsSidebarViewTitleSymbol = Symbol('title'); | 
|  | 
| +/** @enum {symbol} */ | 
| +Elements.ElementsPanel._splitMode = { | 
| +  Vertical: Symbol('Vertical'), | 
| +  Horizontal: Symbol('Horizontal'), | 
| +  Slim: Symbol('Slim'), | 
| +}; | 
| + | 
| /** | 
| * @implements {UI.ContextMenu.Provider} | 
| * @unrestricted | 
|  |