summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2019-10-22 16:08:30 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2019-10-24 15:20:10 +0300
commita824538b5414014be4983e553e148e097d2deec0 (patch)
treeb99820eb3fcadad41904a172c4763681da635b4b
parent2eac3aeb98fca0e6c13aaaff481861c5ef679e68 (diff)
Import QtWebKit commit b1c36478b46c1dad693e2f1cfc235b02542c98cd
Change-Id: Ifd933dfe331760ec415c9936b9ef191534311cae Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
-rw-r--r--.qmake.conf2
-rw-r--r--Source/PlatformQt.cmake12
-rw-r--r--Source/WebCore/platform/qt/RunLoopQt.cpp166
3 files changed, 12 insertions, 168 deletions
diff --git a/.qmake.conf b/.qmake.conf
index e24564d22..44b1ec1f4 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -3,5 +3,3 @@ QMAKEPATH += $$PWD/Tools/qmake
ROOT_WEBKIT_DIR = $$PWD
ROOT_BUILD_DIR = $$shadowed($$PWD)
-
-MODULE_VERSION = 5.13.1
diff --git a/Source/PlatformQt.cmake b/Source/PlatformQt.cmake
index c99d89d70..a2c84ee7b 100644
--- a/Source/PlatformQt.cmake
+++ b/Source/PlatformQt.cmake
@@ -146,6 +146,18 @@ list(REMOVE_DUPLICATES Qt5@MODULE_NAME@_PRIVATE_INCLUDE_DIRS)
list(REMOVE_DUPLICATES Qt5@MODULE_NAME@_DEFINITIONS)
list(REMOVE_DUPLICATES Qt5@MODULE_NAME@_COMPILE_DEFINITIONS)
list(REMOVE_DUPLICATES Qt5@MODULE_NAME@_EXECUTABLE_COMPILE_FLAGS)
+
+# Fixup order of configurations to match behavior of other Qt modules
+# See also https://bugreports.qt.io/browse/QTBUG-29186
+get_target_property(_configurations Qt5::@MODULE_NAME@ IMPORTED_CONFIGURATIONS)
+list(FIND _configurations RELEASE _index)
+if (\${_index} GREATER -1)
+ list(REMOVE_AT _configurations \${_index})
+ list(INSERT _configurations 0 RELEASE)
+ set_property(TARGET Qt5::@MODULE_NAME@ PROPERTY IMPORTED_CONFIGURATIONS \"\${_configurations}\")
+endif ()
+unset(_configurations)
+unset(_index)
")
set(MODULE_NAME WebKit)
diff --git a/Source/WebCore/platform/qt/RunLoopQt.cpp b/Source/WebCore/platform/qt/RunLoopQt.cpp
deleted file mode 100644
index 501bd5c12..000000000
--- a/Source/WebCore/platform/qt/RunLoopQt.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "RunLoop.h"
-
-#include <QAbstractEventDispatcher>
-#include <QCoreApplication>
-#include <QMetaMethod>
-#include <QMetaObject>
-#include <QObject>
-#include <QTimerEvent>
-
-namespace WebCore {
-
-class RunLoop::TimerObject : public QObject {
- Q_OBJECT
-public:
- TimerObject(RunLoop* runLoop) : m_runLoop(runLoop)
- {
- int methodIndex = metaObject()->indexOfMethod("performWork()");
- m_method = metaObject()->method(methodIndex);
- }
-
- Q_SLOT void performWork() { m_runLoop->performWork(); }
- inline void wakeUp() { m_method.invoke(this, Qt::QueuedConnection); }
-
-protected:
- virtual void timerEvent(QTimerEvent* event)
- {
- RunLoop::TimerBase::timerFired(m_runLoop, event->timerId());
- }
-
-private:
- RunLoop* m_runLoop;
- QMetaMethod m_method;
-};
-
-static QEventLoop* currentEventLoop;
-
-void RunLoop::run()
-{
- static bool mainEventLoopIsRunning = false;
- if (!mainEventLoopIsRunning) {
- mainEventLoopIsRunning = true;
- QCoreApplication::exec();
- mainEventLoopIsRunning = false;
- } else {
- QEventLoop eventLoop;
-
- QEventLoop* previousEventLoop = currentEventLoop;
- currentEventLoop = &eventLoop;
-
- eventLoop.exec();
-
- currentEventLoop = previousEventLoop;
- }
-}
-
-void RunLoop::stop()
-{
- if (currentEventLoop)
- currentEventLoop->exit();
- else
- QCoreApplication::exit();
-}
-
-RunLoop::RunLoop()
- : m_timerObject(new TimerObject(this))
-{
-}
-
-RunLoop::~RunLoop()
-{
- delete m_timerObject;
-}
-
-void RunLoop::wakeUp()
-{
- m_timerObject->wakeUp();
-}
-
-// RunLoop::Timer
-
-void RunLoop::TimerBase::timerFired(RunLoop* runLoop, int ID)
-{
- TimerMap::iterator it = runLoop->m_activeTimers.find(ID);
- ASSERT(it != runLoop->m_activeTimers.end());
- TimerBase* timer = it->value;
-
- if (!timer->m_isRepeating) {
- // Stop the timer (calling stop would need another hash table lookup).
- runLoop->m_activeTimers.remove(it);
- runLoop->m_timerObject->killTimer(timer->m_ID);
- timer->m_ID = 0;
- }
-
- timer->fired();
-}
-
-RunLoop::TimerBase::TimerBase(RunLoop* runLoop)
- : m_runLoop(runLoop)
- , m_ID(0)
- , m_isRepeating(false)
-{
-}
-
-RunLoop::TimerBase::~TimerBase()
-{
- stop();
-}
-
-void RunLoop::TimerBase::start(double nextFireInterval, bool repeat)
-{
- stop();
- int millis = static_cast<int>(nextFireInterval * 1000);
- m_isRepeating = repeat;
- m_ID = m_runLoop->m_timerObject->startTimer(millis);
- ASSERT(m_ID);
- m_runLoop->m_activeTimers.set(m_ID, this);
-}
-
-void RunLoop::TimerBase::stop()
-{
- if (!m_ID)
- return;
- TimerMap::iterator it = m_runLoop->m_activeTimers.find(m_ID);
- if (it == m_runLoop->m_activeTimers.end())
- return;
-
- m_runLoop->m_activeTimers.remove(it);
- m_runLoop->m_timerObject->killTimer(m_ID);
- m_ID = 0;
-}
-
-bool RunLoop::TimerBase::isActive() const
-{
- return m_ID;
-}
-
-#include "RunLoopQt.moc"
-
-} // namespace WebCore