summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2019-06-04 22:44:55 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2019-06-04 22:45:21 +0300
commitc49326e942d7cc21f78fe187020dce73befdd935 (patch)
treefaf0927eeeff4c57e998902b2085d976e588ed2b /Source/WebKit2/UIProcess
parent72cfbd7664f21fcc0e62b869a6b01bf73eb5e7da (diff)
downloadqtwebkit-c49326e942d7cc21f78fe187020dce73befdd935.tar.gz
Import WebKit commit 5ccca3a720f7c2251c4ac8b28f25bd73524081f0
Change-Id: Idfb37cd43929536d4c67d1fa5d8cb598e9c0ad7e Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebKit2/UIProcess')
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp15
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp36
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h10
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h4
-rw-r--r--Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp3
-rw-r--r--Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp12
-rw-r--r--Source/WebKit2/UIProcess/WebPageProxy.cpp2
-rw-r--r--Source/WebKit2/UIProcess/qt/QtPageClient.cpp3
9 files changed, 69 insertions, 18 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
index b894d7338..7e4b37012 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
@@ -385,8 +385,10 @@ void QQuickWebViewPrivate::initialize(WKPageConfigurationRef configurationRef)
loadClient.didChangeProgress = didChangeProgress;
loadClient.didFinishProgress = didFinishProgress;
loadClient.didChangeBackForwardList = didChangeBackForwardList;
+ // FIXME: These three functions should not be part of this client.
loadClient.processDidBecomeUnresponsive = processDidBecomeUnresponsive;
loadClient.processDidBecomeResponsive = processDidBecomeResponsive;
+ loadClient.processDidCrash = processDidCrash;
WKPageSetPageLoaderClient(webPage.get(), &loadClient.base);
}
@@ -605,20 +607,21 @@ void QQuickWebViewPrivate::didRenderFrame()
}
}
-void QQuickWebViewPrivate::processDidCrash()
+void QQuickWebViewPrivate::processDidCrash(WKPageRef, const void* clientInfo)
{
- Q_Q(QQuickWebView);
+ QQuickWebViewPrivate* d = toQQuickWebViewPrivate(clientInfo);
+ QQuickWebView* q = d->q_ptr;
- QUrl url(URL(WebCore::ParsedURLString, webPageProxy->urlAtProcessExit()));
+ QUrl url(URL(WebCore::ParsedURLString, d->webPageProxy->urlAtProcessExit()));
qWarning("WARNING: The web process experienced a crash on '%s'.", qPrintable(url.toString(QUrl::RemoveUserInfo)));
- pageEventHandler->resetGestureRecognizers();
+ d->pageEventHandler->resetGestureRecognizers();
// Check if loading was ongoing, when process crashed.
- if (m_loadProgress > 0 && m_loadProgress < 100) {
+ if (d->m_loadProgress > 0 && d->m_loadProgress < 100) {
QWebLoadRequest loadRequest(url, QQuickWebView::LoadFailedStatus, QStringLiteral("The web process crashed."), QQuickWebView::InternalErrorDomain, 0);
- loadProgressDidChange(100);
+ d->loadProgressDidChange(100);
emit q->loadingChanged(&loadRequest);
}
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
index cca489582..dba68e792 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
@@ -128,7 +128,6 @@ public:
// PageClient.
WebCore::IntSize viewSize() const;
virtual void pageDidRequestScroll(const QPoint& pos) { }
- void processDidCrash();
void didRelaunchProcess();
std::unique_ptr<WebKit::DrawingAreaProxy> createDrawingAreaProxy();
void handleDownloadRequest(WebKit::DownloadProxy*);
@@ -176,6 +175,7 @@ protected:
static void didChangeBackForwardList(WKPageRef, WKBackForwardListItemRef, WKArrayRef, const void *clientInfo);
static void processDidBecomeUnresponsive(WKPageRef, const void* clientInfo);
static void processDidBecomeResponsive(WKPageRef, const void* clientInfo);
+ static void processDidCrash(WKPageRef, const void* clientInfo);
QQuickWebViewPrivate(QQuickWebView* viewport);
RefPtr<WebKit::WebPageProxy> webPageProxy;
diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp b/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp
index c781a97ca..82a3db952 100644
--- a/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp
@@ -83,6 +83,10 @@ bool QWebPreferencesPrivate::testAttribute(QWebPreferencesPrivate::WebAttribute
return WKPreferencesGetUniversalAccessFromFileURLsAllowed(preferencesRef);
case FileAccessFromFileURLsAllowed:
return WKPreferencesGetFileAccessFromFileURLsAllowed(preferencesRef);
+ case LogsPageMessagesToSystemConsoleEnabled:
+ return WKPreferencesGetLogsPageMessagesToSystemConsoleEnabled(preferencesRef);
+ case WebSecurityEnabled:
+ return WKPreferencesGetWebSecurityEnabled(preferencesRef);
default:
ASSERT_NOT_REACHED();
return false;
@@ -156,6 +160,12 @@ void QWebPreferencesPrivate::setAttribute(QWebPreferencesPrivate::WebAttribute a
case FileAccessFromFileURLsAllowed:
WKPreferencesSetFileAccessFromFileURLsAllowed(preferencesRef, enable);
break;
+ case LogsPageMessagesToSystemConsoleEnabled:
+ WKPreferencesSetLogsPageMessagesToSystemConsoleEnabled(preferencesRef, enable);
+ break;
+ case WebSecurityEnabled:
+ WKPreferencesSetWebSecurityEnabled(preferencesRef, enable);
+ break;
default:
ASSERT_NOT_REACHED();
}
@@ -631,6 +641,32 @@ void QWebPreferences::setLinksIncludedInFocusChain(bool enable)
emit linksIncludedInFocusChainChanged();
}
+bool QWebPreferences::logsPageMessagesToSystemConsoleEnabled() const
+{
+ return d->testAttribute(QWebPreferencesPrivate::LogsPageMessagesToSystemConsoleEnabled);
+}
+
+void QWebPreferences::setLogsPageMessagesToSystemConsoleEnabled(bool enable)
+{
+ if (logsPageMessagesToSystemConsoleEnabled() == enable)
+ return;
+ d->setAttribute(QWebPreferencesPrivate::LogsPageMessagesToSystemConsoleEnabled, enable);
+ emit logsPageMessagesToSystemConsoleEnabledChanged();
+}
+
+bool QWebPreferences::webSecurityEnabled() const
+{
+ return d->testAttribute(QWebPreferencesPrivate::WebSecurityEnabled);
+}
+
+void QWebPreferences::setWebSecurityEnabled(bool enable)
+{
+ if (webSecurityEnabled() == enable)
+ return;
+ d->setAttribute(QWebPreferencesPrivate::WebSecurityEnabled, enable);
+ emit webSecurityEnabledChanged();
+}
+
QWebPreferencesPrivate* QWebPreferencesPrivate::get(QWebPreferences* preferences)
{
return preferences->d;
diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h
index 08c4df2d8..702146c38 100644
--- a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h
@@ -51,6 +51,8 @@ public:
Q_PROPERTY(bool fileAccessFromFileURLsAllowed READ fileAccessFromFileURLsAllowed WRITE setFileAccessFromFileURLsAllowed NOTIFY fileAccessFromFileURLsAllowedChanged FINAL)
Q_PROPERTY(bool spatialNavigationEnabled READ spatialNavigationEnabled WRITE setSpatialNavigationEnabled NOTIFY spatialNavigationEnabledChanged FINAL)
Q_PROPERTY(bool linksIncludedInFocusChain READ linksIncludedInFocusChain WRITE setLinksIncludedInFocusChain NOTIFY linksIncludedInFocusChainChanged FINAL)
+ Q_PROPERTY(bool logsPageMessagesToSystemConsoleEnabled READ logsPageMessagesToSystemConsoleEnabled WRITE setLogsPageMessagesToSystemConsoleEnabled NOTIFY logsPageMessagesToSystemConsoleEnabledChanged FINAL)
+ Q_PROPERTY(bool webSecurityEnabled READ webSecurityEnabled WRITE setWebSecurityEnabled NOTIFY webSecurityEnabledChanged FINAL)
Q_PROPERTY(QString standardFontFamily READ standardFontFamily WRITE setStandardFontFamily NOTIFY standardFontFamilyChanged FINAL)
Q_PROPERTY(QString fixedFontFamily READ fixedFontFamily WRITE setFixedFontFamily NOTIFY fixedFontFamilyChanged FINAL)
@@ -123,6 +125,12 @@ public:
bool linksIncludedInFocusChain() const;
void setLinksIncludedInFocusChain(bool enable);
+ bool logsPageMessagesToSystemConsoleEnabled() const;
+ void setLogsPageMessagesToSystemConsoleEnabled(bool);
+
+ bool webSecurityEnabled() const;
+ void setWebSecurityEnabled(bool);
+
QString standardFontFamily() const;
void setStandardFontFamily(const QString& family);
@@ -171,6 +179,8 @@ Q_SIGNALS:
void linksIncludedInFocusChainChanged();
void universalAccessFromFileURLsAllowedChanged();
void fileAccessFromFileURLsAllowedChanged();
+ void logsPageMessagesToSystemConsoleEnabledChanged();
+ void webSecurityEnabledChanged();
void standardFontFamilyChanged();
void fixedFontFamilyChanged();
diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h
index 2b4c804ff..a5395c3c8 100644
--- a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h
@@ -44,7 +44,9 @@ public:
UniversalAccessFromFileURLsAllowed,
FileAccessFromFileURLsAllowed,
SpatialNavigationEnabled,
- LinksIncludedInFocusChain
+ LinksIncludedInFocusChain,
+ LogsPageMessagesToSystemConsoleEnabled,
+ WebSecurityEnabled
};
enum FontFamily {
diff --git a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
index e62e18d03..f5b66cd5f 100644
--- a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
@@ -58,8 +58,7 @@ void ProcessLauncher::didFinishLaunchingProcess(PlatformProcessIdentifier proces
if (!m_client) {
// FIXME: Make Identifier a move-only object and release port rights/connections in the destructor.
-#if OS(DARWIN) && !PLATFORM(GTK)
- // FIXME: Should really be something like USE(MACH)
+#if USE(MACH_PORTS)
if (identifier.port)
mach_port_mod_refs(mach_task_self(), identifier.port, MACH_PORT_RIGHT_RECEIVE, -1);
#endif
diff --git a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
index 51a3ffbba..694a759e6 100644
--- a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
@@ -62,7 +62,7 @@
#include <QCoreApplication>
#endif
-#if OS(DARWIN)
+#if USE(MACH_PORTS)
#include <mach/mach_init.h>
#include <servers/bootstrap.h>
@@ -70,7 +70,7 @@ extern "C" kern_return_t bootstrap_register2(mach_port_t, name_t, mach_port_t, u
#endif
// for QNX we need SOCK_DGRAM, see https://bugs.webkit.org/show_bug.cgi?id=95553
-#if defined(SOCK_SEQPACKET) && !defined(Q_OS_MACX) && !OS(QNX)
+#if defined(SOCK_SEQPACKET) && !defined(Q_OS_MACOS) && !OS(QNX)
#define SOCKET_TYPE SOCK_SEQPACKET
#else
#define SOCKET_TYPE SOCK_DGRAM
@@ -101,7 +101,7 @@ void QtWebProcess::setupChildProcess()
#endif
prctl(PR_SET_PDEATHSIG, SIGKILL);
#endif
-#if defined(Q_OS_MACX)
+#if defined(Q_OS_MACOS)
qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", QByteArray("1"));
#endif
}
@@ -126,7 +126,7 @@ void ProcessLauncher::launchProcess()
#if ENABLE(DATABASE_PROCESS)
} else if (m_launchOptions.processType == ProcessType::Database) {
commandLine = QLatin1String("%1 \"%2\" %3 %4");
- QByteArray processPrefix = qgetenv("QT_WEBKIT2_DP_CMD_PREFIX");
+ QByteArray processPrefix = qgetenv("QT_WEBKIT2_SP_CMD_PREFIX");
commandLine = commandLine.arg(QLatin1String(processPrefix.constData())).arg(QString(executablePathOfDatabaseProcess()));
#endif
} else {
@@ -134,7 +134,7 @@ void ProcessLauncher::launchProcess()
ASSERT_NOT_REACHED();
}
-#if OS(DARWIN)
+#if USE(MACH_PORTS)
// Create the listening port.
mach_port_t connector;
mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &connector);
@@ -216,7 +216,7 @@ void ProcessLauncher::launchProcess()
if (!webProcessOrSUIDHelper->waitForStarted()) {
qDebug() << "Failed to start" << commandLine;
ASSERT_NOT_REACHED();
-#if OS(DARWIN)
+#if USE(MACH_PORTS)
mach_port_deallocate(mach_task_self(), connector);
mach_port_mod_refs(mach_task_self(), connector, MACH_PORT_RIGHT_RECEIVE, -1);
#endif
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.cpp b/Source/WebKit2/UIProcess/WebPageProxy.cpp
index 5f6a16f70..d0ff9bca5 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebPageProxy.cpp
@@ -6287,7 +6287,7 @@ void WebPageProxy::setURLSchemeHandlerForScheme(Ref<WebURLSchemeHandler>&& handl
WebURLSchemeHandler* WebPageProxy::urlSchemeHandlerForScheme(const String& scheme)
{
- return m_urlSchemeHandlersByScheme.get(scheme);
+ return scheme.isNull() ? nullptr : m_urlSchemeHandlersByScheme.get(scheme);
}
void WebPageProxy::startURLSchemeHandlerTask(uint64_t handlerIdentifier, uint64_t resourceIdentifier, const WebCore::ResourceRequest& request)
diff --git a/Source/WebKit2/UIProcess/qt/QtPageClient.cpp b/Source/WebKit2/UIProcess/qt/QtPageClient.cpp
index 53faa7647..fd410ffdd 100644
--- a/Source/WebKit2/UIProcess/qt/QtPageClient.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtPageClient.cpp
@@ -90,7 +90,8 @@ void QtPageClient::pageDidRequestScroll(const IntPoint& pos)
void QtPageClient::processDidExit()
{
- QQuickWebViewPrivate::get(m_webView)->processDidCrash();
+ // TODO: Do we need this signal?
+ // QQuickWebViewPrivate::get(m_webView)->processDidExit();
}
void QtPageClient::didRelaunchProcess()