mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-23 04:00:05 +02:00
QtWebKit: bump git revision to alpha3
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -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, ®s);
|
||||
return sizeof(CONTEXT);
|
||||
+#elif OS(HAIKU)
|
||||
+ thread_id haikuThread = get_pthread_thread_id(platformThread);
|
||||
+ get_thread_info(haikuThread, ®s);
|
||||
+ return sizeof(thread_info);
|
||||
#elif USE(PTHREADS)
|
||||
pthread_attr_init(®s.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(®s.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, ®s);
|
||||
return sizeof(CONTEXT);
|
||||
+#elif OS(HAIKU)
|
||||
+ thread_id haikuThread = get_pthread_thread_id(platformThread);
|
||||
+ get_thread_info(haikuThread, ®s);
|
||||
+ return sizeof(thread_info);
|
||||
#elif USE(PTHREADS)
|
||||
pthread_attr_init(®s.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(®s.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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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 \
|
||||
Reference in New Issue
Block a user