Title: [172526] trunk/Source
Revision
172526
Author
timo...@apple.com
Date
2014-08-13 11:58:23 -0700 (Wed, 13 Aug 2014)

Log Message

Web Inspector: Workaround a NSWindow change to the title bar.
https://bugs.webkit.org/show_bug.cgi?id=135880

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Base/Main.js:
(WebInspector._updateToolbarHeight): Don't call in legacy mode.

* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
(.toolbar .dashboard):
Drive-by fix some errant drop-shadows. The transparent border was pushing the inset top
drop shadow down when it shouldn't. Remove duplicate background and shadow.

* UserInterface/Views/Main.css:
(body): Set the background white, never needs to be transparent now.
(body.mac-platform.legacy:not(.docked)): Set background to transparent when not docked in legacy.
(body.docked.bottom): Update border color.
(body.docked.right): Ditto.
(body.docked.bottom.mac-platform.legacy): Keep old border color.
(body.docked.right.mac-platform.legacy): Ditto.

* UserInterface/Views/Toolbar.css:
(.toolbar): Set a default border and background gradient.
(body.window-inactive .toolbar): No gradient but use a solid color when inactive.
(body.mac-platform:not(.legacy):not(.docked) .toolbar): Padding on the top for the title bar.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Account for title bar height.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Ditto.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Ditto.
(body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Ditto.
(body.mac-platform.legacy .toolbar): No inset shadow in legacy when not docked.
(body.mac-platform.legacy.docked .toolbar): Restore legacy border color.
(body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Only disable sub-pixel antialiasing on legacy!
(body.mac-platform.legacy.window-inactive .toolbar): Restore legacy border color.

Source/WebKit/mac:

* WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::setToolbarHeight): Only call setContentBorderThickness: on 10.9 and earlier.
(-[WebInspectorWindowController init]): Only call setDrawsBackground: on 10.9 and earlier.
(-[WebInspectorWindowController window]): Set titlebarAppearsTransparent on 10.10.
Only call border thickness APIs on 10.9 and earlier.

Source/WebKit2:

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createInspectorWindow): Set titlebarAppearsTransparent on 10.10.
Only call border thickness APIs on 10.9 and earlier.
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Only call setDrawsBackground: on 10.9 and earlier.
(WebKit::WebInspectorProxy::platformSetToolbarHeight): Only call setContentBorderThickness: on 10.9 and earlier.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (172525 => 172526)


--- trunk/Source/WebInspectorUI/ChangeLog	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebInspectorUI/ChangeLog	2014-08-13 18:58:23 UTC (rev 172526)
@@ -1,5 +1,42 @@
 2014-08-13  Timothy Hatcher  <timo...@apple.com>
 
+        Web Inspector: Workaround a NSWindow change to the title bar.
+        https://bugs.webkit.org/show_bug.cgi?id=135880
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Base/Main.js:
+        (WebInspector._updateToolbarHeight): Don't call in legacy mode.
+
+        * UserInterface/Views/DashboardContainerView.css:
+        (.toolbar .dashboard-container):
+        (.toolbar .dashboard):
+        Drive-by fix some errant drop-shadows. The transparent border was pushing the inset top
+        drop shadow down when it shouldn't. Remove duplicate background and shadow.
+
+        * UserInterface/Views/Main.css:
+        (body): Set the background white, never needs to be transparent now.
+        (body.mac-platform.legacy:not(.docked)): Set background to transparent when not docked in legacy.
+        (body.docked.bottom): Update border color.
+        (body.docked.right): Ditto.
+        (body.docked.bottom.mac-platform.legacy): Keep old border color.
+        (body.docked.right.mac-platform.legacy): Ditto.
+
+        * UserInterface/Views/Toolbar.css:
+        (.toolbar): Set a default border and background gradient.
+        (body.window-inactive .toolbar): No gradient but use a solid color when inactive.
+        (body.mac-platform:not(.legacy):not(.docked) .toolbar): Padding on the top for the title bar.
+        (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Account for title bar height.
+        (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Ditto.
+        (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Ditto.
+        (body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Ditto.
+        (body.mac-platform.legacy .toolbar): No inset shadow in legacy when not docked.
+        (body.mac-platform.legacy.docked .toolbar): Restore legacy border color.
+        (body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Only disable sub-pixel antialiasing on legacy!
+        (body.mac-platform.legacy.window-inactive .toolbar): Restore legacy border color.
+
+2014-08-13  Timothy Hatcher  <timo...@apple.com>
+
         Web Inspector: Restore Helvetica as the dashboard font in legacy mode
         https://bugs.webkit.org/show_bug.cgi?id=135886
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (172525 => 172526)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2014-08-13 18:58:23 UTC (rev 172526)
@@ -998,7 +998,8 @@
 
 WebInspector._updateToolbarHeight = function()
 {
-    InspectorFrontendHost.setToolbarHeight(this.toolbar.element.offsetHeight);
+    if (WebInspector.Platform.isLegacyMacOS)
+        InspectorFrontendHost.setToolbarHeight(this.toolbar.element.offsetHeight);
 }
 
 WebInspector._toolbarDisplayModeDidChange = function(event)

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DashboardContainerView.css (172525 => 172526)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DashboardContainerView.css	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DashboardContainerView.css	2014-08-13 18:58:23 UTC (rev 172526)
@@ -32,8 +32,10 @@
     background-color: rgb(252, 252, 252);
 
     border: 1px solid transparent;
-    box-shadow: rgba(0, 0, 0, 0.15) 0 1px 0, inset white 0 1px 0;
+    border-top-color: white;
 
+    box-shadow: rgba(0, 0, 0, 0.15) 0 1px 0;
+
     margin: 4px 10px;
     overflow: hidden;
 }
@@ -94,9 +96,6 @@
 
     padding: 0 10px 0 5px;
 
-    background-color: rgb(252, 252, 252);
-    box-shadow: inset white 0 1px 0;
-
     -webkit-animation-duration: 0.4s;
 }
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Main.css (172525 => 172526)


--- trunk/Source/WebInspectorUI/UserInterface/Views/Main.css	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Main.css	2014-08-13 18:58:23 UTC (rev 172526)
@@ -34,6 +34,8 @@
     font-family: -webkit-system-font, sans-serif;
     font-size: 11px;
 
+    background-color: white;
+
     position: absolute;
     top: 0;
     left: 0;
@@ -55,18 +57,26 @@
     tab-size: 4; /* FIXME: This should be controlled by a setting. <rdar://problem/10593948> */
 }
 
-body.docked {
-    background-color: white;
+body.mac-platform.legacy:not(.docked) {
+    background-color: transparent;
 }
 
 body.docked.bottom {
-    border-top: 1px solid rgb(85, 85, 85);
+    border-top: 1px solid rgb(179, 179, 179);
 }
 
 body.docked.right {
-    border-left: 1px solid rgb(85, 85, 85);
+    border-left: 1px solid rgb(179, 179, 179);
 }
 
+body.docked.bottom.mac-platform.legacy {
+    border-top-color: rgb(85, 85, 85);
+}
+
+body.docked.right.mac-platform.legacy {
+    border-left-color: rgb(85, 85, 85);
+}
+
 #docked-resizer {
     display: none;
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Toolbar.css (172525 => 172526)


--- trunk/Source/WebInspectorUI/UserInterface/Views/Toolbar.css	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Toolbar.css	2014-08-13 18:58:23 UTC (rev 172526)
@@ -29,11 +29,18 @@
     white-space: nowrap;
     overflow: hidden;
 
-    border-bottom: 1px solid rgb(85, 85, 85);
+    border-bottom: 1px solid rgb(179, 179, 179);
+    background-image: linear-gradient(to bottom, rgb(232, 232, 232), rgb(209, 209, 209));
+    box-shadow: inset rgba(255, 255, 255, 0.5) 0 1px 1px;
 
     outline: none;
 }
 
+body.window-inactive .toolbar {
+    background-image: none;
+    background-color: rgb(246, 246, 246);
+}
+
 .toolbar.icon-and-label-vertical {
     height: 56px;
 }
@@ -53,18 +60,40 @@
     height: 32px;
 }
 
-body.docked .toolbar,
-body:not(.mac-platform) .toolbar {
-    background-image: linear-gradient(to bottom, rgb(233, 233, 233), rgb(229, 229, 229));
-    box-shadow: inset rgb(252, 252, 252) 0 1px 0;
+body.mac-platform:not(.legacy):not(.docked) .toolbar {
+    padding-top: 22px;
 }
 
-body.docked.mac-platform.legacy .toolbar {
+body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical {
+    height: 78px;
+}
+
+body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size {
+    height: 70px;
+}
+
+body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-horizontal,
+body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only {
+    height: 62px;
+}
+
+body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-horizontal.small-size,
+body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only.small-size,
+body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only {
+    height: 54px;
+}
+
+body.mac-platform.legacy .toolbar {
+    box-shadow: none;
+}
+
+body.mac-platform.legacy.docked .toolbar {
+    border-bottom-color: rgb(85, 85, 85);
     background-image: linear-gradient(to bottom, rgb(216, 216, 216), rgb(190, 190, 190));
     box-shadow: inset rgba(255, 255, 255, 0.1) 0 1px 0, inset rgba(0, 0, 0, 0.02) 0 -1px 0;
 }
 
-body.mac-platform:not(.docked) .toolbar .item.button > .label {
+body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label {
  /* We need to disable sub-pixel antialiasing in the toolbar when not docked because the
     toolbar is transparent and so is the WebView. */
     -webkit-font-smoothing: antialiased;
@@ -73,8 +102,8 @@
     -webkit-text-stroke: 0.2px;
 }
 
-body.window-inactive .toolbar {
-    border-bottom: 1px solid rgb(128, 128, 128);
+body.mac-platform.legacy.window-inactive .toolbar {
+    border-bottom-color: rgb(128, 128, 128);
 }
 
 .toolbar .control-section {

Modified: trunk/Source/WebKit/mac/ChangeLog (172525 => 172526)


--- trunk/Source/WebKit/mac/ChangeLog	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebKit/mac/ChangeLog	2014-08-13 18:58:23 UTC (rev 172526)
@@ -1,3 +1,16 @@
+2014-08-13  Timothy Hatcher  <timo...@apple.com>
+
+        Web Inspector: Workaround a NSWindow change to the title bar.
+        https://bugs.webkit.org/show_bug.cgi?id=135880
+
+        Reviewed by Joseph Pecoraro.
+
+        * WebCoreSupport/WebInspectorClient.mm:
+        (WebInspectorFrontendClient::setToolbarHeight): Only call setContentBorderThickness: on 10.9 and earlier.
+        (-[WebInspectorWindowController init]): Only call setDrawsBackground: on 10.9 and earlier.
+        (-[WebInspectorWindowController window]): Set titlebarAppearsTransparent on 10.10.
+        Only call border thickness APIs on 10.9 and earlier.
+
 2014-08-12  Peyton Randolph  <prando...@apple.com>
 
         Runtime switch for long mouse press gesture. Part of 135257 - Add long mouse press gesture.           

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm (172525 => 172526)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm	2014-08-13 18:58:23 UTC (rev 172526)
@@ -295,7 +295,9 @@
 
 void WebInspectorFrontendClient::setToolbarHeight(unsigned height)
 {
+#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1090
     [[m_windowController window] setContentBorderThickness:height forEdge:NSMaxYEdge];
+#endif
 }
 
 void WebInspectorFrontendClient::inspectedURLChanged(const String& newURL)
@@ -408,11 +410,14 @@
 
     _webView = [[WebView alloc] init];
     [_webView setPreferences:preferences];
-    [_webView setDrawsBackground:NO];
     [_webView setProhibitsMainFrameScrolling:YES];
     [_webView setUIDelegate:self];
     [_webView setPolicyDelegate:self];
 
+#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1090
+    [_webView setDrawsBackground:NO];
+#endif
+
     [preferences release];
 
     [self setWindowFrameAutosaveName:@"Web Inspector 2"];
@@ -479,12 +484,22 @@
     if (window)
         return window;
 
-    NSUInteger styleMask = (NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSTexturedBackgroundWindowMask);
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+    NSUInteger styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSFullSizeContentViewWindowMask;
+#else
+    NSUInteger styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSTexturedBackgroundWindowMask;
+#endif
+
     window = [[WebInspectorWindow alloc] initWithContentRect:NSMakeRect(60.0, 200.0, 750.0, 650.0) styleMask:styleMask backing:NSBackingStoreBuffered defer:NO];
     [window setDelegate:self];
     [window setMinSize:NSMakeSize(400.0, 400.0)];
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+    window.titlebarAppearsTransparent = YES;
+#else
     [window setAutorecalculatesContentBorderThickness:NO forEdge:NSMaxYEdge];
     [window setContentBorderThickness:55. forEdge:NSMaxYEdge];
+#endif
 
     // Create a full screen button so we can turn it into a dock button.
     _dockButton = [NSWindow standardWindowButton:NSWindowFullScreenButton forStyleMask:styleMask];

Modified: trunk/Source/WebKit2/ChangeLog (172525 => 172526)


--- trunk/Source/WebKit2/ChangeLog	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebKit2/ChangeLog	2014-08-13 18:58:23 UTC (rev 172526)
@@ -1,3 +1,16 @@
+2014-08-13  Timothy Hatcher  <timo...@apple.com>
+
+        Web Inspector: Workaround a NSWindow change to the title bar.
+        https://bugs.webkit.org/show_bug.cgi?id=135880
+
+        Reviewed by Joseph Pecoraro.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (WebKit::WebInspectorProxy::createInspectorWindow): Set titlebarAppearsTransparent on 10.10.
+        Only call border thickness APIs on 10.9 and earlier.
+        (WebKit::WebInspectorProxy::platformCreateInspectorPage): Only call setDrawsBackground: on 10.9 and earlier.
+        (WebKit::WebInspectorProxy::platformSetToolbarHeight): Only call setContentBorderThickness: on 10.9 and earlier.
+
 2014-08-13  Ryuan Choi  <ryuan.c...@samsung.com>
 
         [EFL] Add API to set application name for the user agent

Modified: trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm (172525 => 172526)


--- trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm	2014-08-13 18:51:54 UTC (rev 172525)
+++ trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm	2014-08-13 18:58:23 UTC (rev 172526)
@@ -56,8 +56,10 @@
 using namespace WebCore;
 using namespace WebKit;
 
+#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1090
 // The height needed to match a typical NSToolbar.
 static const CGFloat windowContentBorderThickness = 55;
+#endif
 
 // The margin from the top and right of the dock button (same as the full screen button).
 static const CGFloat dockButtonMargin = 3;
@@ -65,12 +67,12 @@
 // The spacing between the dock buttons.
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
 static const CGFloat dockButtonSpacing = 1;
+static const NSUInteger windowStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSFullSizeContentViewWindowMask;
 #else
 static const CGFloat dockButtonSpacing = dockButtonMargin * 2;
+static const NSUInteger windowStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSTexturedBackgroundWindowMask;
 #endif
 
-static const NSUInteger windowStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask | NSTexturedBackgroundWindowMask;
-
 // WKWebInspectorProxyObjCAdapter is a helper ObjC object used as a delegate or notification observer
 // for the sole purpose of getting back into the C++ code from an ObjC caller.
 
@@ -302,8 +304,13 @@
     [window setDelegate:m_inspectorProxyObjCAdapter.get()];
     [window setMinSize:NSMakeSize(minimumWindowWidth, minimumWindowHeight)];
     [window setReleasedWhenClosed:NO];
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+    window.titlebarAppearsTransparent = YES;
+#else
     [window setAutorecalculatesContentBorderThickness:NO forEdge:NSMaxYEdge];
     [window setContentBorderThickness:windowContentBorderThickness forEdge:NSMaxYEdge];
+#endif
 
     m_inspectorWindow = adoptNS(window);
 
@@ -414,7 +421,9 @@
     m_inspectorView = adoptNS([[WKWebInspectorWKView alloc] initWithFrame:initialRect contextRef:toAPI(&page()->process().context()) pageGroupRef:toAPI(inspectorPageGroup()) relatedToPage:toAPI(m_page)]);
     ASSERT(m_inspectorView);
 
+#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1090
     [m_inspectorView setDrawsBackground:NO];
+#endif
 
     m_inspectorProxyObjCAdapter = adoptNS([[WKWebInspectorProxyObjCAdapter alloc] initWithWebInspectorProxy:this]);
 
@@ -764,7 +773,9 @@
 
 void WebInspectorProxy::platformSetToolbarHeight(unsigned height)
 {
+#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1090
     [m_inspectorWindow setContentBorderThickness:height forEdge:NSMaxYEdge];
+#endif
 }
 
 String WebInspectorProxy::inspectorPageURL() const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to