REGRESSION(r223773): [GTK] WebKitWebInspector bring-to-front signal is emitted right...
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Nov 2017 12:55:22 +0000 (12:55 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 8 Nov 2017 12:55:22 +0000 (12:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=179365

Reviewed by Michael Catanzaro.

In the GTK+ API, open-window already implies presenting the window to bring it to the front, so it's not
expected that bring-to-front is emitted on open. This is happening since r223773 that moved common code from
platform specific inspector files to the main file, but in the case of open the mac implementation was not
exactly the same as the GTK+ one. This broke /webkit2/WebKitWebInspector/default and
/webkit2/WebKitWebInspector/manual-attach-detach.

* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::open): Set m_isOpening for the scope of the function.
* UIProcess/WebInspectorProxy.h: Add m_isOpening.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformBringToFront): Return early if m_isOpening is true.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@224575 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/WebInspectorProxy.cpp
Source/WebKit/UIProcess/WebInspectorProxy.h
Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp

index aad0fd2..9cb245a 100644 (file)
@@ -1,3 +1,22 @@
+2017-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        REGRESSION(r223773): [GTK] WebKitWebInspector bring-to-front signal is emitted right after open-window
+        https://bugs.webkit.org/show_bug.cgi?id=179365
+
+        Reviewed by Michael Catanzaro.
+
+        In the GTK+ API, open-window already implies presenting the window to bring it to the front, so it's not
+        expected that bring-to-front is emitted on open. This is happening since r223773 that moved common code from
+        platform specific inspector files to the main file, but in the case of open the mac implementation was not
+        exactly the same as the GTK+ one. This broke /webkit2/WebKitWebInspector/default and
+        /webkit2/WebKitWebInspector/manual-attach-detach.
+
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::WebInspectorProxy::open): Set m_isOpening for the scope of the function.
+        * UIProcess/WebInspectorProxy.h: Add m_isOpening.
+        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+        (WebKit::WebInspectorProxy::platformBringToFront): Return early if m_isOpening is true.
+
 2017-11-07  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         REGRESSION(r224179): [GTK] Several WebViewEditor tests are failing since r224179
index 8d909cd..a158968 100644 (file)
@@ -40,6 +40,7 @@
 #include "WebProcessPool.h"
 #include "WebProcessProxy.h"
 #include <WebCore/NotImplemented.h>
+#include <wtf/SetForScope.h>
 
 #if PLATFORM(GTK)
 #include "WebInspectorProxyClient.h"
@@ -393,6 +394,7 @@ void WebInspectorProxy::open()
     if (!m_inspectorPage)
         return;
 
+    SetForScope<bool> isOpening(m_isOpening, true);
     m_isVisible = true;
     m_inspectorPage->process().send(Messages::WebInspectorUI::SetIsVisible(m_isVisible), m_inspectorPage->pageID());
 
index c1d2e27..31d9ab4 100644 (file)
@@ -225,6 +225,7 @@ private:
     bool m_ignoreFirstBringToFront { false };
     bool m_elementSelectionActive { false };
     bool m_ignoreElementSelectionChange { false };
+    bool m_isOpening { false };
 
     IPC::Attachment m_connectionIdentifier;
 
index 865b393..78be087 100644 (file)
@@ -302,6 +302,9 @@ void WebInspectorProxy::platformHide()
 
 void WebInspectorProxy::platformBringToFront()
 {
+    if (m_isOpening)
+        return;
+
     if (m_client && m_client->bringToFront(*this))
         return;