browser(webkit): reference GApplication to keep browser alive on GTK (#2593)
This commit is contained in:
parent
898f1157ab
commit
4b2efd6e3e
|
|
@ -1 +1 @@
|
||||||
1282
|
1283
|
||||||
|
|
|
||||||
|
|
@ -7667,10 +7667,10 @@ index 66bf24df826daa8e7284248fd1b728cb5ebff343..d40f4f4be2bf76fa300cb54a06e81ff5
|
||||||
|
|
||||||
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspector.cpp b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspector.cpp
|
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspector.cpp b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspector.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..c7f51f06dcbc233aef69d9d8b6bf91e70e817096
|
index 0000000000000000000000000000000000000000..54529a23f53cebe6f8a96873ca6c2f31f0481ae0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspector.cpp
|
+++ b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspector.cpp
|
||||||
@@ -0,0 +1,136 @@
|
@@ -0,0 +1,158 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -7723,6 +7723,7 @@ index 0000000000000000000000000000000000000000..c7f51f06dcbc233aef69d9d8b6bf91e7
|
||||||
+
|
+
|
||||||
+enum {
|
+enum {
|
||||||
+ CREATE_NEW_PAGE,
|
+ CREATE_NEW_PAGE,
|
||||||
|
+ QUIT_APPLICATION,
|
||||||
+
|
+
|
||||||
+ LAST_SIGNAL
|
+ LAST_SIGNAL
|
||||||
+};
|
+};
|
||||||
|
|
@ -7747,7 +7748,7 @@ index 0000000000000000000000000000000000000000..c7f51f06dcbc233aef69d9d8b6bf91e7
|
||||||
+ * #WebKitWebContext.
|
+ * #WebKitWebContext.
|
||||||
+ *
|
+ *
|
||||||
+ * This signal is emitted when inspector receives 'Browser.createPage' command
|
+ * This signal is emitted when inspector receives 'Browser.createPage' command
|
||||||
+ * from its remote client. If the signla is not handled the command will fail.
|
+ * from its remote client. If the signal is not handled the command will fail.
|
||||||
+ *
|
+ *
|
||||||
+ * Returns: %WebKitWebView that contains created page.
|
+ * Returns: %WebKitWebView that contains created page.
|
||||||
+ */
|
+ */
|
||||||
|
|
@ -7765,6 +7766,24 @@ index 0000000000000000000000000000000000000000..c7f51f06dcbc233aef69d9d8b6bf91e7
|
||||||
+#endif
|
+#endif
|
||||||
+ 1,
|
+ 1,
|
||||||
+ WEBKIT_TYPE_WEB_CONTEXT);
|
+ WEBKIT_TYPE_WEB_CONTEXT);
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * WebKitBrowserInspector::quit-application:
|
||||||
|
+ * @inspector: the #WebKitBrowserInspector on which the signal is emitted
|
||||||
|
+ *
|
||||||
|
+ * Emitted when the inspector is requested to close the browser application.
|
||||||
|
+ *
|
||||||
|
+ * This signal is emitted when inspector receives 'Browser.close' command
|
||||||
|
+ * from its remote client. If the signal is not handled the command will fail.
|
||||||
|
+ */
|
||||||
|
+ signals[QUIT_APPLICATION] = g_signal_new(
|
||||||
|
+ "quit-application",
|
||||||
|
+ G_TYPE_FROM_CLASS(gObjectClass),
|
||||||
|
+ G_SIGNAL_RUN_LAST,
|
||||||
|
+ G_STRUCT_OFFSET(WebKitBrowserInspectorClass, quit_application),
|
||||||
|
+ nullptr, nullptr,
|
||||||
|
+ g_cclosure_marshal_VOID__VOID,
|
||||||
|
+ G_TYPE_NONE, 0);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+WebKit::WebPageProxy* webkitBrowserInspectorCreateNewPageInContext(WebKitWebContext* context)
|
+WebKit::WebPageProxy* webkitBrowserInspectorCreateNewPageInContext(WebKitWebContext* context)
|
||||||
|
|
@ -7776,6 +7795,11 @@ index 0000000000000000000000000000000000000000..c7f51f06dcbc233aef69d9d8b6bf91e7
|
||||||
+ return &webkitWebViewGetPage(newWebView);
|
+ return &webkitWebViewGetPage(newWebView);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+void webkitBrowserInspectorQuitApplication()
|
||||||
|
+{
|
||||||
|
+ g_signal_emit(webkit_browser_inspector_get_default(), signals[QUIT_APPLICATION], 0, NULL);
|
||||||
|
+}
|
||||||
|
+
|
||||||
+static gpointer createWebKitBrowserInspector(gpointer)
|
+static gpointer createWebKitBrowserInspector(gpointer)
|
||||||
+{
|
+{
|
||||||
+ static GRefPtr<WebKitBrowserInspector> browserInspector = adoptGRef(WEBKIT_BROWSER_INSPECTOR(g_object_new(WEBKIT_TYPE_BROWSER_INSPECTOR, nullptr)));
|
+ static GRefPtr<WebKitBrowserInspector> browserInspector = adoptGRef(WEBKIT_BROWSER_INSPECTOR(g_object_new(WEBKIT_TYPE_BROWSER_INSPECTOR, nullptr)));
|
||||||
|
|
@ -7801,18 +7825,16 @@ index 0000000000000000000000000000000000000000..c7f51f06dcbc233aef69d9d8b6bf91e7
|
||||||
+ * Creates browser inspector and configures pipe handler to communicate with
|
+ * Creates browser inspector and configures pipe handler to communicate with
|
||||||
+ * the parent process.
|
+ * the parent process.
|
||||||
+ */
|
+ */
|
||||||
+void webkit_browser_inspector_initialize_pipe(GMainLoop* mainLoop, const char* defaultProxyURI, const char* const* ignoreHosts)
|
+void webkit_browser_inspector_initialize_pipe(const char* defaultProxyURI, const char* const* ignoreHosts)
|
||||||
+{
|
+{
|
||||||
+#if ENABLE(REMOTE_INSPECTOR)
|
+ WebKit::initializeBrowserInspectorPipe(makeUnique<WebKit::InspectorPlaywrightAgentClientGlib>(defaultProxyURI, ignoreHosts));
|
||||||
+ WebKit::initializeBrowserInspectorPipe(makeUnique<WebKit::InspectorPlaywrightAgentClientGlib>(mainLoop, defaultProxyURI, ignoreHosts));
|
|
||||||
+#endif
|
|
||||||
+}
|
+}
|
||||||
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspectorPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspectorPrivate.h
|
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspectorPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspectorPrivate.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..1bff4e694f19264d1be418198b7921780e4f8309
|
index 0000000000000000000000000000000000000000..e0b1da48465c850f541532ed961d1b778bea6028
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspectorPrivate.h
|
+++ b/Source/WebKit/UIProcess/API/glib/WebKitBrowserInspectorPrivate.h
|
||||||
@@ -0,0 +1,31 @@
|
@@ -0,0 +1,32 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -7844,6 +7866,7 @@ index 0000000000000000000000000000000000000000..1bff4e694f19264d1be418198b792178
|
||||||
+#include "WebPageProxy.h"
|
+#include "WebPageProxy.h"
|
||||||
+
|
+
|
||||||
+WebKit::WebPageProxy* webkitBrowserInspectorCreateNewPageInContext(WebKitWebContext*);
|
+WebKit::WebPageProxy* webkitBrowserInspectorCreateNewPageInContext(WebKitWebContext*);
|
||||||
|
+void webkitBrowserInspectorQuitApplication();
|
||||||
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp
|
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp
|
||||||
index 2ceb2b4f49f409bbe6e6810115e36d0c84f83b5d..16d2062b746b80ace6f39d779e9c3b8796b581b1 100644
|
index 2ceb2b4f49f409bbe6e6810115e36d0c84f83b5d..16d2062b746b80ace6f39d779e9c3b8796b581b1 100644
|
||||||
--- a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp
|
--- a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp
|
||||||
|
|
@ -8100,7 +8123,7 @@ index 0aee4bc9380cb47ca4900d8556d51e24d8f14be7..82d1d747a224141e9f006c634b7bfac2
|
||||||
webkitWebViewBaseForwardNextKeyEvent(webkitWebViewBase);
|
webkitWebViewBaseForwardNextKeyEvent(webkitWebViewBase);
|
||||||
diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h b/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h
|
diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h b/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..1044d9b4df51acb52fb7ee03456b5a64ef7039a8
|
index 0000000000000000000000000000000000000000..9f1a0173a5641d6f158d815b8f7b9ea66f65c26d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h
|
+++ b/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h
|
||||||
@@ -0,0 +1,81 @@
|
@@ -0,0 +1,81 @@
|
||||||
|
|
@ -8164,6 +8187,7 @@ index 0000000000000000000000000000000000000000..1044d9b4df51acb52fb7ee03456b5a64
|
||||||
+
|
+
|
||||||
+ WebKitWebView *(* create_new_page) (WebKitBrowserInspector *browser_inspector,
|
+ WebKitWebView *(* create_new_page) (WebKitBrowserInspector *browser_inspector,
|
||||||
+ WebKitWebContext *context);
|
+ WebKitWebContext *context);
|
||||||
|
+ WebKitWebView *(* quit_application) (WebKitBrowserInspector *browser_inspector);
|
||||||
+
|
+
|
||||||
+ void (*_webkit_reserved0) (void);
|
+ void (*_webkit_reserved0) (void);
|
||||||
+ void (*_webkit_reserved1) (void);
|
+ void (*_webkit_reserved1) (void);
|
||||||
|
|
@ -8178,9 +8202,8 @@ index 0000000000000000000000000000000000000000..1044d9b4df51acb52fb7ee03456b5a64
|
||||||
+webkit_browser_inspector_get_default (void);
|
+webkit_browser_inspector_get_default (void);
|
||||||
+
|
+
|
||||||
+WEBKIT_API void
|
+WEBKIT_API void
|
||||||
+webkit_browser_inspector_initialize_pipe (GMainLoop*,
|
+webkit_browser_inspector_initialize_pipe (const char* defaultProxyURI,
|
||||||
+ const char* defaultProxyURI,
|
+ const char* const* ignoreHosts);
|
||||||
+ const char* const* ignoreHosts);
|
|
||||||
+
|
+
|
||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
|
|
@ -8212,7 +8235,7 @@ index c8b41f407774d2337e99cc7f9151ec65be3fc532..22faf21f9a7946a7898cedfc1b6ec131
|
||||||
void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool)
|
void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool)
|
||||||
diff --git a/Source/WebKit/UIProcess/API/wpe/WebKitBrowserInspector.h b/Source/WebKit/UIProcess/API/wpe/WebKitBrowserInspector.h
|
diff --git a/Source/WebKit/UIProcess/API/wpe/WebKitBrowserInspector.h b/Source/WebKit/UIProcess/API/wpe/WebKitBrowserInspector.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..0e8b78b60e8f306c98295afb5c7e5ed150e4918e
|
index 0000000000000000000000000000000000000000..cb1a540d341b07581ec87b922b7d007ce45ba989
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/API/wpe/WebKitBrowserInspector.h
|
+++ b/Source/WebKit/UIProcess/API/wpe/WebKitBrowserInspector.h
|
||||||
@@ -0,0 +1,81 @@
|
@@ -0,0 +1,81 @@
|
||||||
|
|
@ -8276,6 +8299,7 @@ index 0000000000000000000000000000000000000000..0e8b78b60e8f306c98295afb5c7e5ed1
|
||||||
+
|
+
|
||||||
+ WebKitWebView *(* create_new_page) (WebKitBrowserInspector *browser_inspector,
|
+ WebKitWebView *(* create_new_page) (WebKitBrowserInspector *browser_inspector,
|
||||||
+ WebKitWebContext *context);
|
+ WebKitWebContext *context);
|
||||||
|
+ WebKitWebView *(* quit_application) (WebKitBrowserInspector *browser_inspector);
|
||||||
+
|
+
|
||||||
+ void (*_webkit_reserved0) (void);
|
+ void (*_webkit_reserved0) (void);
|
||||||
+ void (*_webkit_reserved1) (void);
|
+ void (*_webkit_reserved1) (void);
|
||||||
|
|
@ -8290,9 +8314,8 @@ index 0000000000000000000000000000000000000000..0e8b78b60e8f306c98295afb5c7e5ed1
|
||||||
+webkit_browser_inspector_get_default (void);
|
+webkit_browser_inspector_get_default (void);
|
||||||
+
|
+
|
||||||
+WEBKIT_API void
|
+WEBKIT_API void
|
||||||
+webkit_browser_inspector_initialize_pipe (GMainLoop*,
|
+webkit_browser_inspector_initialize_pipe (const char* defaultProxyURI,
|
||||||
+ const char* defaultProxyURI,
|
+ const char* const* ignoreHosts);
|
||||||
+ const char* const* ignoreHosts);
|
|
||||||
+
|
+
|
||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
|
|
@ -13105,10 +13128,10 @@ index 31d29091985f34a65134a2b0e7cb3ace1dae441d..571ceac8a4b291fa6e91eb8b17065c0a
|
||||||
};
|
};
|
||||||
diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp
|
diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..690cc1946b7d61aabaeca4a1013aaa0305339b76
|
index 0000000000000000000000000000000000000000..a3d37d491f79d4022788e87025f988c71538346f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp
|
+++ b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp
|
||||||
@@ -0,0 +1,152 @@
|
@@ -0,0 +1,146 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -13179,9 +13202,8 @@ index 0000000000000000000000000000000000000000..690cc1946b7d61aabaeca4a1013aaa03
|
||||||
+ return parseRawProxySettings(proxyServer, ignoreHosts.data());
|
+ return parseRawProxySettings(proxyServer, ignoreHosts.data());
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+InspectorPlaywrightAgentClientGlib::InspectorPlaywrightAgentClientGlib(GMainLoop* mainLoop, const WTF::String& proxyURI, const char* const* ignoreHosts)
|
+InspectorPlaywrightAgentClientGlib::InspectorPlaywrightAgentClientGlib(const WTF::String& proxyURI, const char* const* ignoreHosts)
|
||||||
+ : m_mainLoop(mainLoop)
|
+ : m_proxySettings(parseRawProxySettings(proxyURI, ignoreHosts))
|
||||||
+ , m_proxySettings(parseRawProxySettings(proxyURI, ignoreHosts))
|
|
||||||
+{
|
+{
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
|
@ -13213,12 +13235,7 @@ index 0000000000000000000000000000000000000000..690cc1946b7d61aabaeca4a1013aaa03
|
||||||
+void InspectorPlaywrightAgentClientGlib::closeBrowser()
|
+void InspectorPlaywrightAgentClientGlib::closeBrowser()
|
||||||
+{
|
+{
|
||||||
+ m_idToContext.clear();
|
+ m_idToContext.clear();
|
||||||
+#if PLATFORM(GTK)
|
+ webkitBrowserInspectorQuitApplication();
|
||||||
+ gtk_main_quit();
|
|
||||||
+#else
|
|
||||||
+ if (m_mainLoop)
|
|
||||||
+ g_main_loop_quit(m_mainLoop);
|
|
||||||
+#endif
|
|
||||||
+ if (webkitWebContextExistingCount() > 1)
|
+ if (webkitWebContextExistingCount() > 1)
|
||||||
+ fprintf(stderr, "LEAK: %d contexts are still alive when closing browser\n", webkitWebContextExistingCount());
|
+ fprintf(stderr, "LEAK: %d contexts are still alive when closing browser\n", webkitWebContextExistingCount());
|
||||||
+}
|
+}
|
||||||
|
|
@ -13263,10 +13280,10 @@ index 0000000000000000000000000000000000000000..690cc1946b7d61aabaeca4a1013aaa03
|
||||||
+#endif // ENABLE(REMOTE_INSPECTOR)
|
+#endif // ENABLE(REMOTE_INSPECTOR)
|
||||||
diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h
|
diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..a073a77390b206deb794efe937df4f35d7198608
|
index 0000000000000000000000000000000000000000..63ff73901ceb50771820709e91796fb42f58e651
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h
|
+++ b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h
|
||||||
@@ -0,0 +1,61 @@
|
@@ -0,0 +1,60 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2019 Microsoft Corporation.
|
+ * Copyright (C) 2019 Microsoft Corporation.
|
||||||
+ *
|
+ *
|
||||||
|
|
@ -13309,7 +13326,7 @@ index 0000000000000000000000000000000000000000..a073a77390b206deb794efe937df4f35
|
||||||
+class InspectorPlaywrightAgentClientGlib : public InspectorPlaywrightAgentClient {
|
+class InspectorPlaywrightAgentClientGlib : public InspectorPlaywrightAgentClient {
|
||||||
+ WTF_MAKE_FAST_ALLOCATED;
|
+ WTF_MAKE_FAST_ALLOCATED;
|
||||||
+public:
|
+public:
|
||||||
+ InspectorPlaywrightAgentClientGlib(GMainLoop* mainLoop, const WTF::String& proxyURI, const char* const* ignoreHosts);
|
+ InspectorPlaywrightAgentClientGlib(const WTF::String& proxyURI, const char* const* ignoreHosts);
|
||||||
+ ~InspectorPlaywrightAgentClientGlib() override = default;
|
+ ~InspectorPlaywrightAgentClientGlib() override = default;
|
||||||
+
|
+
|
||||||
+ RefPtr<WebPageProxy> createPage(WTF::String& error, const BrowserContext&) override;
|
+ RefPtr<WebPageProxy> createPage(WTF::String& error, const BrowserContext&) override;
|
||||||
|
|
@ -13321,7 +13338,6 @@ index 0000000000000000000000000000000000000000..a073a77390b206deb794efe937df4f35
|
||||||
+ WebKitWebContext* findContext(WTF::String& error, PAL::SessionID);
|
+ WebKitWebContext* findContext(WTF::String& error, PAL::SessionID);
|
||||||
+
|
+
|
||||||
+ HashMap<PAL::SessionID, GRefPtr<WebKitWebContext>> m_idToContext;
|
+ HashMap<PAL::SessionID, GRefPtr<WebKitWebContext>> m_idToContext;
|
||||||
+ GMainLoop* m_mainLoop;
|
|
||||||
+ WebCore::SoupNetworkProxySettings m_proxySettings;
|
+ WebCore::SoupNetworkProxySettings m_proxySettings;
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
|
|
@ -15519,7 +15535,7 @@ index 62629b4c1c25ae82bd797b39bbf9de0331f8eed2..5de7900a29b0e629f1ac404bbb0dc5b4
|
||||||
|
|
||||||
typedef struct _BrowserWindow BrowserWindow;
|
typedef struct _BrowserWindow BrowserWindow;
|
||||||
diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c
|
diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c
|
||||||
index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec8884bada31e 100644
|
index 0b236620d9c70b4b94e280ca508113c857d75832..c3e8edd93cb7af98f1d44d3f74516f949bfc43f0 100644
|
||||||
--- a/Tools/MiniBrowser/gtk/main.c
|
--- a/Tools/MiniBrowser/gtk/main.c
|
||||||
+++ b/Tools/MiniBrowser/gtk/main.c
|
+++ b/Tools/MiniBrowser/gtk/main.c
|
||||||
@@ -53,7 +53,12 @@ static const char *cookiesFile;
|
@@ -53,7 +53,12 @@ static const char *cookiesFile;
|
||||||
|
|
@ -15546,7 +15562,7 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
{ G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &uriArguments, 0, "[URL…]" },
|
{ G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &uriArguments, 0, "[URL…]" },
|
||||||
{ 0, 0, 0, 0, 0, 0, 0 }
|
{ 0, 0, 0, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
@@ -500,6 +509,35 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul
|
@@ -500,6 +509,41 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul
|
||||||
g_main_loop_quit(data->mainLoop);
|
g_main_loop_quit(data->mainLoop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -15571,18 +15587,24 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
+ return newWebView;
|
+ return newWebView;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+static void quitBroserApplication(WebKitBrowserInspector* browser_inspector)
|
||||||
|
+{
|
||||||
|
+ g_application_release(G_APPLICATION(browserApplication));
|
||||||
|
+}
|
||||||
|
+
|
||||||
+static void configureBrowserInspectorPipe()
|
+static void configureBrowserInspectorPipe()
|
||||||
+{
|
+{
|
||||||
+ WebKitBrowserInspector* browserInspector = webkit_browser_inspector_get_default();
|
+ WebKitBrowserInspector* browserInspector = webkit_browser_inspector_get_default();
|
||||||
+ g_signal_connect(browserInspector, "create-new-page", G_CALLBACK(createNewPage), NULL);
|
+ g_signal_connect(browserInspector, "create-new-page", G_CALLBACK(createNewPage), NULL);
|
||||||
|
+ g_signal_connect(browserInspector, "quit-application", G_CALLBACK(quitBroserApplication), NULL);
|
||||||
+
|
+
|
||||||
+ webkit_browser_inspector_initialize_pipe(NULL, proxy, ignoreHosts);
|
+ webkit_browser_inspector_initialize_pipe(proxy, ignoreHosts);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
static void startup(GApplication *application)
|
static void startup(GApplication *application)
|
||||||
{
|
{
|
||||||
const char *actionAccels[] = {
|
const char *actionAccels[] = {
|
||||||
@@ -530,12 +568,31 @@ static void startup(GApplication *application)
|
@@ -530,12 +574,32 @@ static void startup(GApplication *application)
|
||||||
|
|
||||||
static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
||||||
{
|
{
|
||||||
|
|
@ -15591,7 +15613,8 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
+ configureBrowserInspectorPipe();
|
+ configureBrowserInspectorPipe();
|
||||||
+
|
+
|
||||||
+ if (noStartupWindow) {
|
+ if (noStartupWindow) {
|
||||||
+ gtk_main();
|
+ // Reference the application, it will be released in quitBroserApplication.
|
||||||
|
+ g_application_hold(application);
|
||||||
+ g_clear_object(&webkitSettings);
|
+ g_clear_object(&webkitSettings);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
|
|
@ -15615,7 +15638,7 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
g_object_unref(manager);
|
g_object_unref(manager);
|
||||||
|
|
||||||
if (cookiesPolicy) {
|
if (cookiesPolicy) {
|
||||||
@@ -554,7 +611,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
@@ -554,7 +618,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proxy) {
|
if (proxy) {
|
||||||
|
|
@ -15624,7 +15647,7 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
webkit_web_context_set_network_proxy_settings(webContext, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, webkitProxySettings);
|
webkit_web_context_set_network_proxy_settings(webContext, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, webkitProxySettings);
|
||||||
webkit_network_proxy_settings_free(webkitProxySettings);
|
webkit_network_proxy_settings_free(webkitProxySettings);
|
||||||
}
|
}
|
||||||
@@ -616,9 +673,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
@@ -616,9 +680,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings)
|
||||||
WebKitWebView *webView = createBrowserTab(mainWindow, webkitSettings, userContentManager);
|
WebKitWebView *webView = createBrowserTab(mainWindow, webkitSettings, userContentManager);
|
||||||
if (!i)
|
if (!i)
|
||||||
firstTab = GTK_WIDGET(webView);
|
firstTab = GTK_WIDGET(webView);
|
||||||
|
|
@ -15635,7 +15658,7 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
WebKitWebView *webView = createBrowserTab(mainWindow, webkitSettings, userContentManager);
|
WebKitWebView *webView = createBrowserTab(mainWindow, webkitSettings, userContentManager);
|
||||||
@@ -692,9 +747,11 @@ int main(int argc, char *argv[])
|
@@ -692,9 +754,11 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkApplication *application = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
|
GtkApplication *application = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
|
||||||
|
|
@ -15648,7 +15671,7 @@ index 0b236620d9c70b4b94e280ca508113c857d75832..cb26e5bbcd5614fdaad88282f3bec888
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
diff --git a/Tools/MiniBrowser/wpe/main.cpp b/Tools/MiniBrowser/wpe/main.cpp
|
diff --git a/Tools/MiniBrowser/wpe/main.cpp b/Tools/MiniBrowser/wpe/main.cpp
|
||||||
index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f095974ee0f 100644
|
index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..58546429c49437cef2632544c9bc8ad7296aaebd 100644
|
||||||
--- a/Tools/MiniBrowser/wpe/main.cpp
|
--- a/Tools/MiniBrowser/wpe/main.cpp
|
||||||
+++ b/Tools/MiniBrowser/wpe/main.cpp
|
+++ b/Tools/MiniBrowser/wpe/main.cpp
|
||||||
@@ -43,6 +43,9 @@ static gboolean headlessMode;
|
@@ -43,6 +43,9 @@ static gboolean headlessMode;
|
||||||
|
|
@ -15707,7 +15730,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
{
|
{
|
||||||
auto backend = createViewBackend(1280, 720);
|
auto backend = createViewBackend(1280, 720);
|
||||||
struct wpe_view_backend* wpeBackend = backend->backend();
|
struct wpe_view_backend* wpeBackend = backend->backend();
|
||||||
@@ -166,17 +193,59 @@ static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationActi
|
@@ -166,17 +193,66 @@ static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationActi
|
||||||
delete static_cast<WPEToolingBackends::ViewBackend*>(data);
|
delete static_cast<WPEToolingBackends::ViewBackend*>(data);
|
||||||
}, backend.release());
|
}, backend.release());
|
||||||
|
|
||||||
|
|
@ -15759,17 +15782,24 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
+ return webView;
|
+ return webView;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+static void quitBroserApplication(WebKitBrowserInspector* browser_inspector, gpointer data)
|
||||||
|
+{
|
||||||
|
+ GMainLoop* mainLoop = static_cast<GMainLoop*>(data);
|
||||||
|
+ g_main_loop_quit(mainLoop);
|
||||||
|
+}
|
||||||
|
+
|
||||||
+static void configureBrowserInspector(GMainLoop* mainLoop)
|
+static void configureBrowserInspector(GMainLoop* mainLoop)
|
||||||
+{
|
+{
|
||||||
+ WebKitBrowserInspector* browserInspector = webkit_browser_inspector_get_default();
|
+ WebKitBrowserInspector* browserInspector = webkit_browser_inspector_get_default();
|
||||||
+ g_signal_connect(browserInspector, "create-new-page", G_CALLBACK(createNewPage), NULL);
|
+ g_signal_connect(browserInspector, "create-new-page", G_CALLBACK(createNewPage), NULL);
|
||||||
+ webkit_browser_inspector_initialize_pipe(mainLoop, proxy, ignoreHosts);
|
+ g_signal_connect(browserInspector, "quit-application", G_CALLBACK(quitBroserApplication), mainLoop);
|
||||||
|
+ webkit_browser_inspector_initialize_pipe(proxy, ignoreHosts);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
#if ENABLE_DEVELOPER_MODE
|
#if ENABLE_DEVELOPER_MODE
|
||||||
@@ -211,6 +280,16 @@ int main(int argc, char *argv[])
|
@@ -211,6 +287,16 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* loop = g_main_loop_new(nullptr, FALSE);
|
auto* loop = g_main_loop_new(nullptr, FALSE);
|
||||||
|
|
@ -15786,7 +15816,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
|
|
||||||
auto backend = createViewBackend(1280, 720);
|
auto backend = createViewBackend(1280, 720);
|
||||||
struct wpe_view_backend* wpeBackend = backend->backend();
|
struct wpe_view_backend* wpeBackend = backend->backend();
|
||||||
@@ -220,7 +299,19 @@ int main(int argc, char *argv[])
|
@@ -220,7 +306,19 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -15807,7 +15837,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
|
|
||||||
if (cookiesPolicy) {
|
if (cookiesPolicy) {
|
||||||
auto* cookieManager = webkit_web_context_get_cookie_manager(webContext);
|
auto* cookieManager = webkit_web_context_get_cookie_manager(webContext);
|
||||||
@@ -238,7 +329,7 @@ int main(int argc, char *argv[])
|
@@ -238,7 +336,7 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proxy) {
|
if (proxy) {
|
||||||
|
|
@ -15816,7 +15846,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
webkit_web_context_set_network_proxy_settings(webContext, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, webkitProxySettings);
|
webkit_web_context_set_network_proxy_settings(webContext, WEBKIT_NETWORK_PROXY_MODE_CUSTOM, webkitProxySettings);
|
||||||
webkit_network_proxy_settings_free(webkitProxySettings);
|
webkit_network_proxy_settings_free(webkitProxySettings);
|
||||||
}
|
}
|
||||||
@@ -284,7 +375,14 @@ int main(int argc, char *argv[])
|
@@ -284,7 +382,14 @@ int main(int argc, char *argv[])
|
||||||
auto* viewBackend = webkit_web_view_backend_new(wpeBackend, [](gpointer data) {
|
auto* viewBackend = webkit_web_view_backend_new(wpeBackend, [](gpointer data) {
|
||||||
delete static_cast<WPEToolingBackends::ViewBackend*>(data);
|
delete static_cast<WPEToolingBackends::ViewBackend*>(data);
|
||||||
}, backend.release());
|
}, backend.release());
|
||||||
|
|
@ -15832,7 +15862,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
auto* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
|
auto* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
|
||||||
"backend", viewBackend,
|
"backend", viewBackend,
|
||||||
"web-context", webContext,
|
"web-context", webContext,
|
||||||
@@ -301,8 +399,6 @@ int main(int argc, char *argv[])
|
@@ -301,8 +406,6 @@ int main(int argc, char *argv[])
|
||||||
backendPtr->setAccessibleChild(ATK_OBJECT(accessible));
|
backendPtr->setAccessibleChild(ATK_OBJECT(accessible));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -15841,7 +15871,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
webkit_web_context_set_automation_allowed(webContext, automationMode);
|
webkit_web_context_set_automation_allowed(webContext, automationMode);
|
||||||
g_signal_connect(webContext, "automation-started", G_CALLBACK(automationStartedCallback), webView);
|
g_signal_connect(webContext, "automation-started", G_CALLBACK(automationStartedCallback), webView);
|
||||||
g_signal_connect(webView, "permission-request", G_CALLBACK(decidePermissionRequest), nullptr);
|
g_signal_connect(webView, "permission-request", G_CALLBACK(decidePermissionRequest), nullptr);
|
||||||
@@ -318,16 +414,9 @@ int main(int argc, char *argv[])
|
@@ -318,16 +421,9 @@ int main(int argc, char *argv[])
|
||||||
webkit_web_view_set_background_color(webView, &color);
|
webkit_web_view_set_background_color(webView, &color);
|
||||||
|
|
||||||
if (uriArguments) {
|
if (uriArguments) {
|
||||||
|
|
@ -15861,7 +15891,7 @@ index fde24a7cc8ceb8cc6d7810e3548a5129d1c0a187..3f993c33069b063f6f2446e9503b9f09
|
||||||
webkit_web_view_load_uri(webView, "about:blank");
|
webkit_web_view_load_uri(webView, "about:blank");
|
||||||
else
|
else
|
||||||
webkit_web_view_load_uri(webView, "https://wpewebkit.org");
|
webkit_web_view_load_uri(webView, "https://wpewebkit.org");
|
||||||
@@ -337,8 +426,7 @@ int main(int argc, char *argv[])
|
@@ -337,8 +433,7 @@ int main(int argc, char *argv[])
|
||||||
g_hash_table_destroy(openViews);
|
g_hash_table_destroy(openViews);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue