From a824538b5414014be4983e553e148e097d2deec0 Mon Sep 17 00:00:00 2001 From: Konstantin Tokarev Date: Tue, 22 Oct 2019 16:08:30 +0300 Subject: Import QtWebKit commit b1c36478b46c1dad693e2f1cfc235b02542c98cd Change-Id: Ifd933dfe331760ec415c9936b9ef191534311cae Reviewed-by: Konstantin Tokarev --- .qmake.conf | 2 - Source/PlatformQt.cmake | 12 +++ Source/WebCore/platform/qt/RunLoopQt.cpp | 166 ------------------------------- 3 files changed, 12 insertions(+), 168 deletions(-) delete mode 100644 Source/WebCore/platform/qt/RunLoopQt.cpp 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 -#include -#include -#include -#include -#include - -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(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 -- cgit v1.2.3