QtWebKit: bump git revision to alpha3

This commit is contained in:
Gerasim Troeglazov
2019-07-09 19:00:25 +10:00
parent 53f6ca5ea5
commit 134e3d3030
4 changed files with 329 additions and 2008 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
From aa0477a53c2658353631918cccce173acc94d76a Mon Sep 17 00:00:00 2001
From d39fe82000e57ce4db57d215bfe6ec6b33ca5e29 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 30 Jul 2018 20:43:21 +1000
Subject: Fix build for Haiku
Date: Thu, 13 Jun 2019 00:00:43 +1000
Subject: Add Haiku support
diff --git a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
@@ -66,6 +66,74 @@ index 12d12ce..15ed177 100644
void HeapStatistics::initialize()
{
diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp
index 883914f..0a554d8 100644
--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp
@@ -58,6 +58,10 @@
#include <pthread.h>
#endif
+#if OS(HAIKU)
+#include <OS.h>
+#endif
+
#if HAVE(PTHREAD_NP_H)
#include <pthread_np.h>
#endif
@@ -481,6 +485,10 @@ size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers)
regs.ContextFlags = CONTEXT_INTEGER | CONTEXT_CONTROL;
GetThreadContext(platformThreadHandle, &regs);
return sizeof(CONTEXT);
+#elif OS(HAIKU)
+ thread_id haikuThread = get_pthread_thread_id(platformThread);
+ get_thread_info(haikuThread, &regs);
+ return sizeof(thread_info);
#elif USE(PTHREADS)
pthread_attr_init(&regs.attribute);
#if HAVE(PTHREAD_NP_H) || OS(NETBSD)
@@ -534,6 +542,8 @@ void* MachineThreads::Thread::Registers::stackPointer() const
#endif // __DARWIN_UNIX03
// end OS(DARWIN)
+#elif OS(HAIKU)
+ return reinterpret_cast<void*>(regs.stack_base);
#elif OS(WINDOWS)
#if CPU(ARM)
@@ -864,7 +874,7 @@ void* MachineThreads::Thread::Registers::llintPC() const
void MachineThreads::Thread::freeRegisters(Thread::Registers& registers)
{
Thread::Registers::PlatformRegisters& regs = registers.regs;
-#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN)
+#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) && !OS(HAIKU)
pthread_attr_destroy(&regs.attribute);
#else
UNUSED_PARAM(regs);
diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h
index a16f0da..9c48fb1 100644
--- a/Source/JavaScriptCore/heap/MachineStackMarker.h
+++ b/Source/JavaScriptCore/heap/MachineStackMarker.h
@@ -31,6 +31,10 @@
#include <mach/thread_act.h>
#endif
+#if OS(HAIKU)
+#include <OS.h>
+#endif
+
#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN)
#include <semaphore.h>
#include <signal.h>
@@ -106,6 +110,8 @@ public:
#elif OS(WINDOWS)
typedef CONTEXT PlatformRegisters;
+#elif OS(HAIKU)
+ typedef thread_info PlatformRegisters;
#elif USE(PTHREADS)
struct PlatformRegisters {
pthread_attr_t attribute;
diff --git a/Source/ThirdParty/ANGLE/src/common/platform.h b/Source/ThirdParty/ANGLE/src/common/platform.h
index 56db297..c98bfdd 100644
--- a/Source/ThirdParty/ANGLE/src/common/platform.h
@@ -126,10 +194,10 @@ index 965e281..b2129b1 100644
|| OS(NETBSD) \
|| COMPILER(MINGW)
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
index 191f309..abda8bb 100644
index 5717f3e..1185ee0 100644
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -399,6 +399,11 @@
@@ -400,6 +400,11 @@
#define WTF_OS_NETBSD 1
#endif
@@ -141,7 +209,7 @@ index 191f309..abda8bb 100644
/* OS(OPENBSD) - OpenBSD */
#ifdef __OpenBSD__
#define WTF_OS_OPENBSD 1
@@ -424,6 +429,7 @@
@@ -425,6 +430,7 @@
|| OS(HURD) \
|| OS(LINUX) \
|| OS(NETBSD) \
@@ -211,289 +279,11 @@ index f308ac1..f33a676 100644
#elif OS(UNIX)
void StackBounds::initialize()
diff --git a/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp b/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp
index 55154b8..24481e6 100644
--- a/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp
+++ b/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp
@@ -127,7 +127,7 @@ JSC::JSValue JSMediaStreamTrack::getCapabilities(ExecState& state)
facingModes.reserveCapacity(modes.size());
for (auto& mode : modes)
- facingModes.append(RealtimeMediaSourceSettings::facingMode(mode));
+ facingModes.append(QString(RealtimeMediaSourceSettings::facingMode(mode)));
}
object->putDirect(state.vm(), Identifier::fromString(&state, "facingMode"), jsArray(&state, castedThis->globalObject(), facingModes), DontDelete | ReadOnly);
diff --git a/Source/WebCore/platform/FileSystem.cpp b/Source/WebCore/platform/FileSystem.cpp
index 1db7e03..4d2b532 100644
--- a/Source/WebCore/platform/FileSystem.cpp
+++ b/Source/WebCore/platform/FileSystem.cpp
@@ -149,7 +149,7 @@ bool excludeFromBackup(const String&)
MappedFileData::~MappedFileData()
{
-#if !OS(WINDOWS)
+#if !OS(WINDOWS) || OS(HAIKU)
if (!m_fileData)
return;
munmap(m_fileData, m_fileSize);
@@ -158,7 +158,7 @@ MappedFileData::~MappedFileData()
MappedFileData::MappedFileData(const String& filePath, bool& success)
{
-#if OS(WINDOWS)
+#if OS(WINDOWS) || OS(HAIKU)
// FIXME: Implement mapping
success = false;
#else
diff --git a/Source/WebCore/platform/qt/UserAgentQt.cpp b/Source/WebCore/platform/qt/UserAgentQt.cpp
index fc5eab7..207f57f 100644
--- a/Source/WebCore/platform/qt/UserAgentQt.cpp
+++ b/Source/WebCore/platform/qt/UserAgentQt.cpp
@@ -62,7 +62,7 @@ String UserAgentQt::standardUserAgent(const String &applicationNameForUserAgent,
// Platform.
ua = ua.arg(
-#if OS(MAC_OS_X)
+#if OS(MAC_OS_X) || OS(HAIKU)
QStringLiteral("Macintosh; ")
#elif OS(WINDOWS)
QStringLiteral("")
@@ -94,6 +94,12 @@ String UserAgentQt::standardUserAgent(const String &applicationNameForUserAgent,
#elif OS(FREEBSD)
"FreeBSD"
+#elif OS(HAIKU)
+#if CPU(X86) || CPU(X86_64)
+ "Intel Haiku R1 x86"
+#else
+ "Haiku R1"
+#endif
#elif OS(HURD)
"GNU Hurd"
#elif OS(LINUX)
diff --git a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
index ccd1afb..c096f14 100644
--- a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
@@ -51,6 +51,82 @@ namespace WebCore {
#if ENABLE(NOTIFICATIONS)
+#if defined(Q_OS_HAIKU)
+
+static void appendBlobResolved(QByteArray& data, const QUrl& url, QString* contentType = 0)
+{
+ RefPtr<BlobData> blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url);
+ if (!blobData)
+ return;
+
+ if (contentType)
+ *contentType = blobData->contentType();
+
+ BlobDataItemList::const_iterator it = blobData->items().begin();
+ const BlobDataItemList::const_iterator itend = blobData->items().end();
+ for (; it != itend; ++it) {
+ const BlobDataItem& blobItem = *it;
+ if (blobItem.type() == BlobDataItem::Type::Data)
+ data.append(reinterpret_cast<const char*>(blobItem.data().data()->data()) + static_cast<int>(blobItem.offset()), static_cast<int>(blobItem.length()));
+ else if (blobItem.type() == BlobDataItem::Type::File) {
+ // File types are not allowed here, so just ignore it.
+ RELEASE_ASSERT_WITH_MESSAGE(false, "File types are not allowed here");
+ } else
+ ASSERT_NOT_REACHED();
+ }
+}
+
+static void resolveBlobUrl(const QUrl& url, QUrl& resolvedUrl)
+{
+ RefPtr<BlobData> blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url);
+ if (!blobData)
+ return;
+
+ QByteArray data;
+ QString contentType;
+ appendBlobResolved(data, url, &contentType);
+
+ QString dataUri(QStringLiteral("data:"));
+ dataUri.append(contentType);
+ dataUri.append(QStringLiteral(";base64,"));
+ dataUri.append(QString::fromLatin1(data.toBase64()));
+ resolvedUrl = QUrl(dataUri);
+}
+
+static QImage httpGetImage(QNetworkAccessManager *netMgr, const QUrl& src)
+{
+ QNetworkRequest request;
+ QUrl url = src;
+ if (url.scheme() == QLatin1String("blob"))
+ resolveBlobUrl(src, url);
+ request.setUrl(url);
+ QNetworkReply* reply = netMgr->get(request);
+
+ QEventLoop eventloop;
+ QObject::connect(reply, SIGNAL(finished()), &eventloop, SLOT(quit()));
+ QTimer::singleShot(3000, &eventloop, SLOT(quit()));
+ eventloop.exec();
+
+ QVariant redirectedUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
+ QUrl redirectedTo = redirectedUrl.toUrl();
+ if (redirectedTo.isValid()) {
+ if (redirectedTo != reply->request().url())
+ return httpGetImage(netMgr, redirectedTo);
+ else
+ return QImage();
+ } else {
+ if (reply->error() == QNetworkReply::NoError) {
+ QByteArray data = reply->readAll();
+ QImage image = QImage::fromData(data);
+ reply->deleteLater();
+ return image;
+ }
+ }
+
+ return QImage();
+}
+#endif
+
const double notificationTimeout = 10.0;
bool NotificationPresenterClientQt::dumpNotification = false;
@@ -218,8 +294,19 @@ void NotificationPresenterClientQt::displayNotification(Notification* notificati
#ifndef QT_NO_SYSTEMTRAYICON
wrapper->connect(m_systemTrayIcon.data(), SIGNAL(messageClicked()), wrapper, SLOT(notificationClicked()));
QMetaObject::invokeMethod(m_systemTrayIcon.data(), "show");
+#if defined(Q_OS_HAIKU)
+ m_netMgr = new QNetworkAccessManager();
+ QImage image = httpGetImage(m_netMgr, notification->iconURL());
+ QIcon icon(QPixmap::fromImage(image).scaled(32, 32));
+ QMetaObject::invokeMethod(m_systemTrayIcon.data(), "showMessage",
+ Q_ARG(QString, notification->title()),
+ Q_ARG(QString, notification->body()),
+ Q_ARG(QIcon, icon));
+ delete m_netMgr;
+#else
QMetaObject::invokeMethod(m_systemTrayIcon.data(), "showMessage", Q_ARG(QString, notification->title()), Q_ARG(QString, notification->body()));
#endif
+#endif
}
void NotificationPresenterClientQt::cancel(Notification* notification)
diff --git a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
index f53fe51..9f69a31 100644
--- a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
@@ -40,6 +40,18 @@
#include <QMultiHash>
#include <QScopedPointer>
+#if defined(Q_OS_HAIKU)
+#include <QUrl>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QNetworkRequest>
+#include <QEventLoop>
+#include <QTimer>
+
+#include "BlobData.h"
+#include "BlobRegistryImpl.h"
+#endif
+
class QWebFrameAdapter;
class QWebPageAdapter;
@@ -136,6 +148,9 @@ private:
QtPlatformPlugin m_platformPlugin;
#ifndef QT_NO_SYSTEMTRAYICON
QScopedPointer<QObject> m_systemTrayIcon;
+#if defined(Q_OS_HAIKU)
+ QNetworkAccessManager *m_netMgr;
+#endif
#endif
};
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
index df28e9f..b9abc0b 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
@@ -964,6 +964,9 @@ void QWebFrameAdapter::setViewportSize(const QSize& size)
if (view->needsLayout())
view->layout();
view->adjustViewSize();
+
+ if (view->needsLayout())
+ view->layout();
}
diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt
index aa7863c..2907f6f 100644
--- a/Source/WebKit2/CMakeLists.txt
+++ b/Source/WebKit2/CMakeLists.txt
@@ -743,6 +743,12 @@ set(PluginProcess_LIBRARIES
WebKit2
)
+if (HAIKU)
+ list(APPEND WebKit2_LIBRARIES network)
+ list(APPEND WebProcess_LIBRARIES network)
+ list(APPEND NetworkProcess_LIBRARIES network)
+endif ()
+
if (COMPILER_IS_GCC_OR_CLANG)
set(ATOMIC_TEST_SOURCE
"
diff --git a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
index 51a3ffb..bbf3cb0 100644
--- a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
@@ -223,7 +223,7 @@ void ProcessLauncher::launchProcess()
delete webProcessOrSUIDHelper;
return;
}
-#if OS(UNIX)
+#if OS(UNIX) && !OS(HAIKU)
setpriority(PRIO_PROCESS, webProcessOrSUIDHelper->pid(), 10);
#endif
RefPtr<ProcessLauncher> protector(this);
--
2.21.0
From cdeb7ad9ca1cf2110967846fcbd282e560180efe Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 31 Jul 2018 21:15:51 +1000
Subject: Fix build with gcc7
diff --git a/Source/WebCore/dom/SlotAssignment.h b/Source/WebCore/dom/SlotAssignment.h
index 0fcd4df..6672ce3 100644
--- a/Source/WebCore/dom/SlotAssignment.h
+++ b/Source/WebCore/dom/SlotAssignment.h
@@ -28,6 +28,8 @@
#if ENABLE(SHADOW_DOM) || ENABLE(DETAILS_ELEMENT)
+#include <functional>
+
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/Vector.h>
--
2.21.0
From 2c6358879377eff084584ddc960820410b7549a7 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 6 Aug 2018 19:05:44 +1000
Subject: Enable SubtleCrypto via gnutls
diff --git a/Source/WebCore/PlatformQt.cmake b/Source/WebCore/PlatformQt.cmake
index 49c76a8..a3077a4 100644
index cd2e79d..501636a 100644
--- a/Source/WebCore/PlatformQt.cmake
+++ b/Source/WebCore/PlatformQt.cmake
@@ -73,7 +73,8 @@ list(APPEND WebCore_SOURCES
@@ -79,7 +79,8 @@ list(APPEND WebCore_SOURCES
platform/audio/qt/AudioBusQt.cpp
@@ -503,7 +293,7 @@ index 49c76a8..a3077a4 100644
platform/graphics/ImageSource.cpp
platform/graphics/PlatformDisplay.cpp
@@ -254,6 +255,52 @@ if (ENABLE_SMOOTH_SCROLLING)
@@ -260,6 +261,52 @@ if (ENABLE_SMOOTH_SCROLLING)
)
endif ()
@@ -556,6 +346,19 @@ index 49c76a8..a3077a4 100644
# Do it in the WebCore to support SHARED_CORE since WebKitWidgets won't load WebKit in that case.
# This should match the opposite statement in WebKit/PlatformQt.cmake
if (SHARED_CORE)
diff --git a/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp b/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp
index 55154b8..24481e6 100644
--- a/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp
+++ b/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp
@@ -127,7 +127,7 @@ JSC::JSValue JSMediaStreamTrack::getCapabilities(ExecState& state)
facingModes.reserveCapacity(modes.size());
for (auto& mode : modes)
- facingModes.append(RealtimeMediaSourceSettings::facingMode(mode));
+ facingModes.append(QString(RealtimeMediaSourceSettings::facingMode(mode)));
}
object->putDirect(state.vm(), Identifier::fromString(&state, "facingMode"), jsArray(&state, castedThis->globalObject(), facingModes), DontDelete | ReadOnly);
diff --git a/Source/WebCore/crypto/CryptoKey.cpp b/Source/WebCore/crypto/CryptoKey.cpp
index 53d1c1e..99a90e2 100644
--- a/Source/WebCore/crypto/CryptoKey.cpp
@@ -1408,6 +1211,28 @@ index 17d24a9..dcd2c9e 100644
typedef struct _PlatformRSAKeyGnuTLS PlatformRSAKeyGnuTLS;
typedef PlatformRSAKeyGnuTLS *PlatformRSAKey;
#endif
diff --git a/Source/WebCore/platform/FileSystem.cpp b/Source/WebCore/platform/FileSystem.cpp
index 1db7e03..4d2b532 100644
--- a/Source/WebCore/platform/FileSystem.cpp
+++ b/Source/WebCore/platform/FileSystem.cpp
@@ -149,7 +149,7 @@ bool excludeFromBackup(const String&)
MappedFileData::~MappedFileData()
{
-#if !OS(WINDOWS)
+#if !OS(WINDOWS) || OS(HAIKU)
if (!m_fileData)
return;
munmap(m_fileData, m_fileSize);
@@ -158,7 +158,7 @@ MappedFileData::~MappedFileData()
MappedFileData::MappedFileData(const String& filePath, bool& success)
{
-#if OS(WINDOWS)
+#if OS(WINDOWS) || OS(HAIKU)
// FIXME: Implement mapping
success = false;
#else
diff --git a/Source/WebCore/platform/crypto/gnutls/CryptoDigestGnuTLS.cpp b/Source/WebCore/platform/crypto/gnutls/CryptoDigestGnuTLS.cpp
new file mode 100644
index 0000000..89a5d81
@@ -1516,11 +1341,221 @@ index 0000000..89a5d81
+}
+
+} // namespace WebCore
diff --git a/Source/WebCore/platform/qt/UserAgentQt.cpp b/Source/WebCore/platform/qt/UserAgentQt.cpp
index fc5eab7..207f57f 100644
--- a/Source/WebCore/platform/qt/UserAgentQt.cpp
+++ b/Source/WebCore/platform/qt/UserAgentQt.cpp
@@ -62,7 +62,7 @@ String UserAgentQt::standardUserAgent(const String &applicationNameForUserAgent,
// Platform.
ua = ua.arg(
-#if OS(MAC_OS_X)
+#if OS(MAC_OS_X) || OS(HAIKU)
QStringLiteral("Macintosh; ")
#elif OS(WINDOWS)
QStringLiteral("")
@@ -94,6 +94,12 @@ String UserAgentQt::standardUserAgent(const String &applicationNameForUserAgent,
#elif OS(FREEBSD)
"FreeBSD"
+#elif OS(HAIKU)
+#if CPU(X86) || CPU(X86_64)
+ "Intel Haiku R1 x86"
+#else
+ "Haiku R1"
+#endif
#elif OS(HURD)
"GNU Hurd"
#elif OS(LINUX)
diff --git a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
index ccd1afb..c096f14 100644
--- a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
@@ -51,6 +51,82 @@ namespace WebCore {
#if ENABLE(NOTIFICATIONS)
+#if defined(Q_OS_HAIKU)
+
+static void appendBlobResolved(QByteArray& data, const QUrl& url, QString* contentType = 0)
+{
+ RefPtr<BlobData> blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url);
+ if (!blobData)
+ return;
+
+ if (contentType)
+ *contentType = blobData->contentType();
+
+ BlobDataItemList::const_iterator it = blobData->items().begin();
+ const BlobDataItemList::const_iterator itend = blobData->items().end();
+ for (; it != itend; ++it) {
+ const BlobDataItem& blobItem = *it;
+ if (blobItem.type() == BlobDataItem::Type::Data)
+ data.append(reinterpret_cast<const char*>(blobItem.data().data()->data()) + static_cast<int>(blobItem.offset()), static_cast<int>(blobItem.length()));
+ else if (blobItem.type() == BlobDataItem::Type::File) {
+ // File types are not allowed here, so just ignore it.
+ RELEASE_ASSERT_WITH_MESSAGE(false, "File types are not allowed here");
+ } else
+ ASSERT_NOT_REACHED();
+ }
+}
+
+static void resolveBlobUrl(const QUrl& url, QUrl& resolvedUrl)
+{
+ RefPtr<BlobData> blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(url);
+ if (!blobData)
+ return;
+
+ QByteArray data;
+ QString contentType;
+ appendBlobResolved(data, url, &contentType);
+
+ QString dataUri(QStringLiteral("data:"));
+ dataUri.append(contentType);
+ dataUri.append(QStringLiteral(";base64,"));
+ dataUri.append(QString::fromLatin1(data.toBase64()));
+ resolvedUrl = QUrl(dataUri);
+}
+
+static QImage httpGetImage(QNetworkAccessManager *netMgr, const QUrl& src)
+{
+ QNetworkRequest request;
+ QUrl url = src;
+ if (url.scheme() == QLatin1String("blob"))
+ resolveBlobUrl(src, url);
+ request.setUrl(url);
+ QNetworkReply* reply = netMgr->get(request);
+
+ QEventLoop eventloop;
+ QObject::connect(reply, SIGNAL(finished()), &eventloop, SLOT(quit()));
+ QTimer::singleShot(3000, &eventloop, SLOT(quit()));
+ eventloop.exec();
+
+ QVariant redirectedUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
+ QUrl redirectedTo = redirectedUrl.toUrl();
+ if (redirectedTo.isValid()) {
+ if (redirectedTo != reply->request().url())
+ return httpGetImage(netMgr, redirectedTo);
+ else
+ return QImage();
+ } else {
+ if (reply->error() == QNetworkReply::NoError) {
+ QByteArray data = reply->readAll();
+ QImage image = QImage::fromData(data);
+ reply->deleteLater();
+ return image;
+ }
+ }
+
+ return QImage();
+}
+#endif
+
const double notificationTimeout = 10.0;
bool NotificationPresenterClientQt::dumpNotification = false;
@@ -218,8 +294,19 @@ void NotificationPresenterClientQt::displayNotification(Notification* notificati
#ifndef QT_NO_SYSTEMTRAYICON
wrapper->connect(m_systemTrayIcon.data(), SIGNAL(messageClicked()), wrapper, SLOT(notificationClicked()));
QMetaObject::invokeMethod(m_systemTrayIcon.data(), "show");
+#if defined(Q_OS_HAIKU)
+ m_netMgr = new QNetworkAccessManager();
+ QImage image = httpGetImage(m_netMgr, notification->iconURL());
+ QIcon icon(QPixmap::fromImage(image).scaled(32, 32));
+ QMetaObject::invokeMethod(m_systemTrayIcon.data(), "showMessage",
+ Q_ARG(QString, notification->title()),
+ Q_ARG(QString, notification->body()),
+ Q_ARG(QIcon, icon));
+ delete m_netMgr;
+#else
QMetaObject::invokeMethod(m_systemTrayIcon.data(), "showMessage", Q_ARG(QString, notification->title()), Q_ARG(QString, notification->body()));
#endif
+#endif
}
void NotificationPresenterClientQt::cancel(Notification* notification)
diff --git a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
index f53fe51..9f69a31 100644
--- a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
@@ -40,6 +40,18 @@
#include <QMultiHash>
#include <QScopedPointer>
+#if defined(Q_OS_HAIKU)
+#include <QUrl>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QNetworkRequest>
+#include <QEventLoop>
+#include <QTimer>
+
+#include "BlobData.h"
+#include "BlobRegistryImpl.h"
+#endif
+
class QWebFrameAdapter;
class QWebPageAdapter;
@@ -136,6 +148,9 @@ private:
QtPlatformPlugin m_platformPlugin;
#ifndef QT_NO_SYSTEMTRAYICON
QScopedPointer<QObject> m_systemTrayIcon;
+#if defined(Q_OS_HAIKU)
+ QNetworkAccessManager *m_netMgr;
+#endif
#endif
};
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
index df28e9f..b9abc0b 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
@@ -964,6 +964,9 @@ void QWebFrameAdapter::setViewportSize(const QSize& size)
if (view->needsLayout())
view->layout();
view->adjustViewSize();
+
+ if (view->needsLayout())
+ view->layout();
}
diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt
index aa7863c..2907f6f 100644
--- a/Source/WebKit2/CMakeLists.txt
+++ b/Source/WebKit2/CMakeLists.txt
@@ -743,6 +743,12 @@ set(PluginProcess_LIBRARIES
WebKit2
)
+if (HAIKU)
+ list(APPEND WebKit2_LIBRARIES network)
+ list(APPEND WebProcess_LIBRARIES network)
+ list(APPEND NetworkProcess_LIBRARIES network)
+endif ()
+
if (COMPILER_IS_GCC_OR_CLANG)
set(ATOMIC_TEST_SOURCE
"
diff --git a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
index 694a759..aa701e8 100644
--- a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
@@ -223,7 +223,7 @@ void ProcessLauncher::launchProcess()
delete webProcessOrSUIDHelper;
return;
}
-#if OS(UNIX)
+#if OS(UNIX) && !OS(HAIKU)
setpriority(PRIO_PROCESS, webProcessOrSUIDHelper->pid(), 10);
#endif
RefPtr<ProcessLauncher> protector(this);
diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
index 003fdca..8b55902 100644
index ac1065d..3b9790d 100644
--- a/Source/cmake/OptionsQt.cmake
+++ b/Source/cmake/OptionsQt.cmake
@@ -726,6 +726,13 @@ if (ENABLE_X11_TARGET)
@@ -717,6 +717,13 @@ if (ENABLE_X11_TARGET)
endif ()
endif ()
@@ -1537,201 +1572,3 @@ index 003fdca..8b55902 100644
--
2.21.0
From 2abee76e9644cce6ff73418b2cfd2687a793fbba Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 13 Jan 2019 13:37:51 +1000
Subject: Rework MachineStackMarker
diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp
index 883914f..0a554d8 100644
--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp
@@ -58,6 +58,10 @@
#include <pthread.h>
#endif
+#if OS(HAIKU)
+#include <OS.h>
+#endif
+
#if HAVE(PTHREAD_NP_H)
#include <pthread_np.h>
#endif
@@ -481,6 +485,10 @@ size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers)
regs.ContextFlags = CONTEXT_INTEGER | CONTEXT_CONTROL;
GetThreadContext(platformThreadHandle, &regs);
return sizeof(CONTEXT);
+#elif OS(HAIKU)
+ thread_id haikuThread = get_pthread_thread_id(platformThread);
+ get_thread_info(haikuThread, &regs);
+ return sizeof(thread_info);
#elif USE(PTHREADS)
pthread_attr_init(&regs.attribute);
#if HAVE(PTHREAD_NP_H) || OS(NETBSD)
@@ -534,6 +542,8 @@ void* MachineThreads::Thread::Registers::stackPointer() const
#endif // __DARWIN_UNIX03
// end OS(DARWIN)
+#elif OS(HAIKU)
+ return reinterpret_cast<void*>(regs.stack_base);
#elif OS(WINDOWS)
#if CPU(ARM)
@@ -864,7 +874,7 @@ void* MachineThreads::Thread::Registers::llintPC() const
void MachineThreads::Thread::freeRegisters(Thread::Registers& registers)
{
Thread::Registers::PlatformRegisters& regs = registers.regs;
-#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN)
+#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) && !OS(HAIKU)
pthread_attr_destroy(&regs.attribute);
#else
UNUSED_PARAM(regs);
diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h
index a16f0da..9c48fb1 100644
--- a/Source/JavaScriptCore/heap/MachineStackMarker.h
+++ b/Source/JavaScriptCore/heap/MachineStackMarker.h
@@ -31,6 +31,10 @@
#include <mach/thread_act.h>
#endif
+#if OS(HAIKU)
+#include <OS.h>
+#endif
+
#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN)
#include <semaphore.h>
#include <signal.h>
@@ -106,6 +110,8 @@ public:
#elif OS(WINDOWS)
typedef CONTEXT PlatformRegisters;
+#elif OS(HAIKU)
+ typedef thread_info PlatformRegisters;
#elif USE(PTHREADS)
struct PlatformRegisters {
pthread_attr_t attribute;
--
2.21.0
From 7fbd27d2a42898304adeae5000346d598de47d2c Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 11 Jun 2019 20:53:16 +1000
Subject: Fix some GCC 8 warnings (partial backport of r231565)
diff --git a/Source/WTF/wtf/HashTable.h b/Source/WTF/wtf/HashTable.h
index 712022d..f95167f 100644
--- a/Source/WTF/wtf/HashTable.h
+++ b/Source/WTF/wtf/HashTable.h
@@ -845,7 +845,7 @@ namespace WTF {
// This initializes the bucket without copying the empty value.
// That makes it possible to use this with types that don't support copying.
// The memset to 0 looks like a slow operation but is optimized by the compilers.
- memset(&bucket, 0, sizeof(bucket));
+ memset(static_cast<void*>(std::addressof(bucket)), 0, sizeof(bucket));
}
};
diff --git a/Source/WTF/wtf/Vector.h b/Source/WTF/wtf/Vector.h
index 18268b6..d9a25ac 100644
--- a/Source/WTF/wtf/Vector.h
+++ b/Source/WTF/wtf/Vector.h
@@ -85,7 +85,7 @@ struct VectorInitializer<true, true, T>
{
static void initialize(T* begin, T* end)
{
- memset(begin, 0, reinterpret_cast<char*>(end) - reinterpret_cast<char*>(begin));
+ memset(static_cast<void*>(begin), 0, reinterpret_cast<char*>(end) - reinterpret_cast<char*>(begin));
}
};
@@ -125,11 +125,11 @@ struct VectorMover<true, T>
{
static void move(const T* src, const T* srcEnd, T* dst)
{
- memcpy(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src));
+ memcpy(static_cast<void*>(dst), static_cast<void*>(const_cast<T*>(src)), reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src));
}
static void moveOverlapping(const T* src, const T* srcEnd, T* dst)
{
- memmove(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src));
+ memmove(static_cast<void*>(dst), static_cast<void*>(const_cast<T*>(src)), reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src));
}
};
@@ -155,7 +155,7 @@ struct VectorCopier<true, T>
{
static void uninitializedCopy(const T* src, const T* srcEnd, T* dst)
{
- memcpy(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src));
+ memcpy(static_cast<void*>(dst), static_cast<void*>(const_cast<T*>(src)), reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src));
}
template<typename U>
static void uninitializedCopy(const T* src, const T* srcEnd, U* dst)
diff --git a/Source/WebCore/platform/Length.h b/Source/WebCore/platform/Length.h
index 75ccf77..b5697ce 100644
--- a/Source/WebCore/platform/Length.h
+++ b/Source/WebCore/platform/Length.h
@@ -170,12 +170,12 @@ inline Length::Length(const Length& other)
if (other.isCalculated())
other.ref();
- memcpy(this, &other, sizeof(Length));
+ memcpy(static_cast<void*>(this), static_cast<void*>(const_cast<Length*>(&other)), sizeof(Length));
}
inline Length::Length(Length&& other)
{
- memcpy(this, &other, sizeof(Length));
+ memcpy(static_cast<void*>(this), static_cast<void*>(&other), sizeof(Length));
other.m_type = Auto;
}
@@ -189,7 +189,7 @@ inline Length& Length::operator=(const Length& other)
if (isCalculated())
deref();
- memcpy(this, &other, sizeof(Length));
+ memcpy(static_cast<void*>(this), static_cast<void*>(const_cast<Length*>(&other)), sizeof(Length));
return *this;
}
@@ -201,7 +201,7 @@ inline Length& Length::operator=(Length&& other)
if (isCalculated())
deref();
- memcpy(this, &other, sizeof(Length));
+ memcpy(static_cast<void*>(this), static_cast<void*>(&other), sizeof(Length));
other.m_type = Auto;
return *this;
}
--
2.21.0
From 58f7b9cc73d69e845d4a6ab0e41317e0c409bbd8 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 11 Jun 2019 20:54:14 +1000
Subject: Add attribute fastcall to derived class member
JSImageConstructor::construct
diff --git a/Source/WebCore/bindings/js/JSImageConstructor.cpp b/Source/WebCore/bindings/js/JSImageConstructor.cpp
index 9236906..de553f5 100644
--- a/Source/WebCore/bindings/js/JSImageConstructor.cpp
+++ b/Source/WebCore/bindings/js/JSImageConstructor.cpp
@@ -44,7 +44,7 @@ template<> JSValue JSImageConstructor::prototypeForStructure(VM& vm, const JSDOM
return JSHTMLElement::getConstructor(vm, &globalObject);
}
-template<> EncodedJSValue JSImageConstructor::construct(ExecState* state)
+template<> EncodedJSValue JSC_HOST_CALL JSImageConstructor::construct(ExecState* state)
{
JSImageConstructor* jsConstructor = jsCast<JSImageConstructor*>(state->callee());
Document* document = jsConstructor->document();
--
2.21.0

View File

@@ -1,213 +0,0 @@
SUMMARY="WebKit rendering library for the Qt5 framework"
DESCRIPTION="QtWebKit provides a Web browser engine that makes it easy to embed \
content from the World Wide Web into your Qt application. At the same time Web \
content can be enhanced with native controls.
QtWebKit provides facilities for rendering of HyperText Markup Language (HTML), \
Extensible HyperText Markup Language (XHTML) and Scalable Vector Graphics (SVG) \
documents, styled using Cascading Style Sheets (CSS) and scripted with JavaScript."
HOMEPAGE="https://github.com/annulen/webkit"
COPYRIGHT="2015-2017 The Qt Company Ltd."
LICENSE="GNU LGPL v2.1
GNU LGPL v3"
REVISION="12"
SOURCE_URI="https://github.com/annulen/webkit/releases/download/qtwebkit-${portVersion/\~/-}/qtwebkit-${portVersion/\~/-}.tar.xz"
CHECKSUM_SHA256="f8f901de567e11fc5659402b6b827eac75505ff9c5072d8e919aa306003f8f8a"
SOURCE_DIR="qtwebkit-${portVersion/\~/-}"
PATCHES="qtwebkit-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 ?x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
qtwebkit$secondaryArchSuffix = $portVersion compat >= 5
cmd:QtWebDatabaseProcess$secondaryArchSuffix = $portVersion compat >= 5
cmd:QtWebNetworkProcess$secondaryArchSuffix = $portVersion compat >= 5
cmd:QtWebProcess$secondaryArchSuffix = $portVersion compat >= 5
lib:libQt5WebKit$secondaryArchSuffix = $portVersion compat >= 5
lib:libQt5WebKitWidgets$secondaryArchSuffix = $portVersion compat >= 5
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libgl$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libglu$secondaryArchSuffix
lib:libgstadaptivedemux_1.0$secondaryArchSuffix
lib:libgstallocators_1.0$secondaryArchSuffix
lib:libgstapp_1.0$secondaryArchSuffix
lib:libgstaudio_1.0$secondaryArchSuffix
lib:libgstbadaudio_1.0$secondaryArchSuffix
lib:libgstbadvideo_1.0$secondaryArchSuffix
lib:libgstbase_1.0$secondaryArchSuffix
lib:libgstbasecamerabinsrc_1.0$secondaryArchSuffix
lib:libgstcodecparsers_1.0$secondaryArchSuffix
lib:libgstcontroller_1.0$secondaryArchSuffix
lib:libgstfft_1.0$secondaryArchSuffix
lib:libgstinsertbin_1.0$secondaryArchSuffix
lib:libgstmpegts_1.0$secondaryArchSuffix
lib:libgstnet_1.0$secondaryArchSuffix
lib:libgstpbutils_1.0$secondaryArchSuffix
lib:libgstphotography_1.0$secondaryArchSuffix
lib:libgstplayer_1.0$secondaryArchSuffix
lib:libgstreamer_1.0$secondaryArchSuffix
lib:libgstriff_1.0$secondaryArchSuffix
lib:libgstrtp_1.0$secondaryArchSuffix
lib:libgstrtsp_1.0$secondaryArchSuffix
lib:libgstsdp_1.0$secondaryArchSuffix
lib:libgsttag_1.0$secondaryArchSuffix
lib:libgsturidownloader_1.0$secondaryArchSuffix
lib:libgstvideo_1.0$secondaryArchSuffix
lib:libhyphen$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:liborc_0.4$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Multimedia$secondaryArchSuffix
lib:libQt5MultimediaWidgets$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5Positioning$secondaryArchSuffix
lib:libQt5PrintSupport$secondaryArchSuffix
lib:libQt5Qml$secondaryArchSuffix
lib:libQt5Quick$secondaryArchSuffix
lib:libQt5Sensors$secondaryArchSuffix
lib:libQt5WebChannel$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
lib:libwebp$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
qtwebkit${secondaryArchSuffix}_devel = $portVersion compat >= 5
devel:libQt5WebKit$secondaryArchSuffix = $portVersion compat >= 5
devel:libQt5WebKitWidgets$secondaryArchSuffix = $portVersion compat >= 5
"
REQUIRES_devel="
haiku$secondaryArchSuffix
qtwebkit$secondaryArchSuffix == $portVersion base
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcrypto$secondaryArchSuffix
devel:libegl$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libgcc$secondaryArchSuffix
devel:libgl$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libglu$secondaryArchSuffix
devel:libgstapp_1.0$secondaryArchSuffix
devel:libgstaudio_1.0$secondaryArchSuffix
devel:libgstbadaudio_1.0$secondaryArchSuffix
devel:libgstbadvideo_1.0$secondaryArchSuffix
devel:libgstreamer_1.0$secondaryArchSuffix
devel:libgstvideo_1.0$secondaryArchSuffix
devel:libhyphen$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:liborc_0.4$secondaryArchSuffix
devel:libpcre2_16$secondaryArchSuffix
devel:libpng$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Multimedia$secondaryArchSuffix
devel:libQt5MultimediaWidgets$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5Positioning$secondaryArchSuffix
devel:libQt5PrintSupport$secondaryArchSuffix
devel:libQt5Qml$secondaryArchSuffix
devel:libQt5Quick$secondaryArchSuffix
devel:libQt5Sensors$secondaryArchSuffix
devel:libQt5WebChannel$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
devel:libruby$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libwebp$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
cmd:bison
cmd:cmake
cmd:find
cmd:flex
cmd:g++$secondaryArchSuffix
cmd:gcc$secondaryArchSuffix
cmd:gperf
cmd:ld$secondaryArchSuffix
cmd:make
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:python
cmd:ruby
cmd:sed
"
BUILD()
{
mkdir -p build && cd build
cmake .. $cmakeDirArgs \
-DCMAKE_INSTALL_PREFIX:PATH=$prefix \
-DCMAKE_INSTALL_INCLUDEDIR=$includeDir \
-DCMAKE_INSTALL_LIBDIR=$libDir \
-DCMAKE_INSTALL_BINDIR:PATH=$binDir \
-DCMAKE_INSTALL_SBINDIR:PATH=$binDir \
-DCMAKE_INSTALL_LIBEXECDIR:PATH=$binDir \
-DCMAKE_INSTALL_DATAROOTDIR:PATH=$dataDir/Qt5 \
-DCMAKE_BUILD_TYPE=RELEASE \
-DPORT=Qt \
-DENABLE_ALLINONE_BUILD=OFF \
-DENABLE_API_TESTS=OFF \
-DENABLE_FTPDIR=ON \
-DENABLE_MEDIA_SOURCE=OFF \
-DENABLE_SAMPLING_PROFILER=OFF \
-DENABLE_THREADED_COMPOSITOR=ON \
-DENABLE_TOOLS=OFF \
-DUSE_GSTREAMER=ON \
-DUSE_LIBHYPHEN=ON \
-DUSE_QT_MULTIMEDIA=OFF \
-DUSE_SYSTEM_MALLOC=ON
make $jobArgs
}
INSTALL()
{
cd build
make install
mkdir -p $dataDir/Qt5
mv -f $libDir/qml $dataDir/Qt5
mv -f $prefix/mkspecs $dataDir/Qt5
fixPkgconfig
prepareInstalledDevelLibs libQt5WebKit libQt5WebKitWidgets
cd $libDir
for i in lib*.so.5.*;do
ln -fs $i $(echo $i | cut -f1,2 -d.)
done
packageEntries devel \
$developDir \
$libDir/cmake \
$dataDir/Qt5/mkspecs
}

View File

@@ -6,13 +6,13 @@ QtWebKit provides facilities for rendering of HyperText Markup Language (HTML),
Extensible HyperText Markup Language (XHTML) and Scalable Vector Graphics (SVG) \
documents, styled using Cascading Style Sheets (CSS) and scripted with JavaScript."
HOMEPAGE="https://www.qt.io"
COPYRIGHT="2015-2018 The Qt Company Ltd."
COPYRIGHT="2015-2019 The Qt Company Ltd."
LICENSE="BSD (3-clause)
GNU LGPL v2.1"
REVISION="9"
srcGitRev="72cfbd7664f21fcc0e62b869a6b01bf73eb5e7da"
REVISION="1"
srcGitRev="eb6c5179e8650f66b304a656409a1e5e5efec956"
SOURCE_URI="https://github.com/qt/qtwebkit/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="2e393e7429387437cbfef56ec839329663e9b136ea68997d1e1cdd2f4d9d3ae0"
CHECKSUM_SHA256="9316ebd066522bf7082225266aee227363862bb6b48521f0418d9e402b60fb8c"
SOURCE_DIR="qtwebkit-$srcGitRev"
PATCHES="qtwebkit-$portVersion.patchset"
@@ -152,7 +152,7 @@ BUILD()
-DENABLE_FTPDIR=ON \
-DENABLE_MEDIA_SOURCE=OFF \
-DENABLE_SAMPLING_PROFILER=OFF \
-DENABLE_THREADED_COMPOSITOR=OFF \
-DENABLE_THREADED_COMPOSITOR=ON \
-DENABLE_TOOLS=OFF \
-DENABLE_SUBTLE_CRYPTO=ON \
-DENABLE_FULLSCREEN_API=ON \