WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-112891-20130321105514.patch (text/plain), 14.96 KB, created by
Zeno Albisser
on 2013-03-21 02:59:27 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Zeno Albisser
Created:
2013-03-21 02:59:27 PDT
Size:
14.96 KB
patch
obsolete
>Subversion Revision: 146449 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index e35c50860da871655f5c4bcde4ede463c2c9270f..97c060b2d86c778f78f63c71dbfe09f6be8929ff 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,20 @@ >+2013-03-21 Zeno Albisser <zeno@webkit.org> >+ >+ [Qt] Remove Qt specific WorkQueueItem definitions. >+ https://bugs.webkit.org/show_bug.cgi?id=112891 >+ >+ This patch is preparation work for removing >+ WorkQueue related code from TestRunnerQt and >+ replacing it with generic TestRunner code. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * API/JSStringRefQt.cpp: >+ (JSStringCreateWithQString): >+ Adding a convenience function to create a >+ JSStringRef from a QString. >+ * API/JSStringRefQt.h: >+ > 2013-03-20 Cosmin Truta <ctruta@blackberry.com> > > [QNX][ARM] REGRESSION(r135330): Various failures in Octane >diff --git a/Source/JavaScriptCore/API/JSStringRefQt.cpp b/Source/JavaScriptCore/API/JSStringRefQt.cpp >index ac990acdc561a73760f1c51b315431f15ff4f331..c6e60a839ab243cec3139276dbf2a02c69d0f6d5 100644 >--- a/Source/JavaScriptCore/API/JSStringRefQt.cpp >+++ b/Source/JavaScriptCore/API/JSStringRefQt.cpp >@@ -38,3 +38,8 @@ QString JSStringCopyQString(JSStringRef string) > { > return string->qString(); > } >+ >+JSStringRef JSStringCreateWithQString(const QString& str) >+{ >+ return JSStringCreateWithUTF8CString(str.toUtf8().constData()); >+} >diff --git a/Source/JavaScriptCore/API/JSStringRefQt.h b/Source/JavaScriptCore/API/JSStringRefQt.h >index 2b3ef9b827058369007bf66b9009687b9e7d57f0..e4f10979f6b77d9442fa1c7d1f40a843b91da5f7 100644 >--- a/Source/JavaScriptCore/API/JSStringRefQt.h >+++ b/Source/JavaScriptCore/API/JSStringRefQt.h >@@ -39,5 +39,6 @@ > @result A QString containing string. > */ > JS_EXPORT QString JSStringCopyQString(JSStringRef string); >+JS_EXPORT JSStringRef JSStringCreateWithQString(const QString&); > > #endif /* JSStringRefQt_h */ >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 2a2a8b60ab81901bc342ba1232c09ae8ddb633eb..5656f591e76f5cea873328fd6dac37e5affdb1e3 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,35 @@ >+2013-03-21 Zeno Albisser <zeno@webkit.org> >+ >+ [Qt] Remove Qt specific WorkQueueItem definitions. >+ https://bugs.webkit.org/show_bug.cgi?id=112891 >+ >+ This patch is preparation work for removing >+ WorkQueue related code from TestRunnerQt and >+ replacing it with generic TestRunner code. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * DumpRenderTree/qt/TestRunnerQt.cpp: >+ (TestRunnerQt::queueBackNavigation): >+ (TestRunnerQt::queueForwardNavigation): >+ (TestRunnerQt::queueLoadHTMLString): >+ (TestRunnerQt::queueReload): >+ (TestRunnerQt::queueLoadingScript): >+ (TestRunnerQt::queueNonLoadingScript): >+ (TestRunner::queueLoad): >+ * DumpRenderTree/qt/TestRunnerQt.h: >+ (TestRunnerQt): >+ * DumpRenderTree/qt/WorkQueueItemQt.cpp: >+ (LoadItem::invoke): >+ (LoadHTMLStringItem::invoke): >+ (LoadAlternateHTMLStringItem::invoke): >+ (ReloadItem::invoke): >+ (ScriptItem::invoke): >+ (BackForwardItem::invoke): >+ * DumpRenderTree/qt/WorkQueueItemQt.h: >+ (LoadAlternateHTMLStringItem::LoadAlternateHTMLStringItem): >+ (LoadAlternateHTMLStringItem): >+ > 2013-03-20 Ryosuke Niwa <rniwa@webkit.org> > > EWS bots have stopped uploading results to bugzilla >diff --git a/Tools/DumpRenderTree/qt/TestRunnerQt.cpp b/Tools/DumpRenderTree/qt/TestRunnerQt.cpp >index a62cb4c0c1c1c33dcdbb73c75e29cb2c5fec80ec..2ca46a535493c4c15f776f7d840833e20f6cd636 100644 >--- a/Tools/DumpRenderTree/qt/TestRunnerQt.cpp >+++ b/Tools/DumpRenderTree/qt/TestRunnerQt.cpp >@@ -32,6 +32,7 @@ > #include "DumpRenderTreeQt.h" > #include "DumpRenderTreeSupportQt.h" > #include "NotificationPresenterClientQt.h" >+#include "OpaqueJSString.h" > #include "WorkQueue.h" > #include "WorkQueueItemQt.h" > #include <JSStringRefQt.h> >@@ -331,48 +332,40 @@ void TestRunnerQt::queueBackNavigation(int howFarBackward) > { > //qDebug() << ">>>queueBackNavigation" << howFarBackward; > for (int i = 0; i != howFarBackward; ++i) >- WorkQueue::shared()->queue(new BackItem(1, m_drt->webPage())); >+ WorkQueue::shared()->queue(new BackItem(1)); > } > > void TestRunnerQt::queueForwardNavigation(int howFarForward) > { > //qDebug() << ">>>queueForwardNavigation" << howFarForward; > for (int i = 0; i != howFarForward; ++i) >- WorkQueue::shared()->queue(new ForwardItem(1, m_drt->webPage())); >-} >- >-void TestRunnerQt::queueLoad(const QString& url, const QString& target) >-{ >- //qDebug() << ">>>queueLoad" << url << target; >- QUrl mainResourceUrl = m_drt->webPage()->mainFrame()->url(); >- QString absoluteUrl = mainResourceUrl.resolved(QUrl(url)).toEncoded(); >- WorkQueue::shared()->queue(new LoadItem(absoluteUrl, target, m_drt->webPage())); >+ WorkQueue::shared()->queue(new ForwardItem(1)); > } > > void TestRunnerQt::queueLoadHTMLString(const QString& content, const QString& baseURL, const QString& failingURL) > { > if (failingURL.isEmpty()) >- WorkQueue::shared()->queue(new LoadHTMLStringItem(content, baseURL, m_drt->webPage())); >+ WorkQueue::shared()->queue(new LoadHTMLStringItem(JSStringCreateWithQString(content), JSStringCreateWithQString(baseURL))); > else >- WorkQueue::shared()->queue(new LoadAlternateHTMLStringItem(content, baseURL, failingURL, m_drt->webPage())); >+ WorkQueue::shared()->queue(new LoadAlternateHTMLStringItem(JSStringCreateWithQString(content), JSStringCreateWithQString(baseURL), JSStringCreateWithQString(failingURL))); > } > > void TestRunnerQt::queueReload() > { > //qDebug() << ">>>queueReload"; >- WorkQueue::shared()->queue(new ReloadItem(m_drt->webPage())); >+ WorkQueue::shared()->queue(new ReloadItem()); > } > > void TestRunnerQt::queueLoadingScript(const QString& script) > { > //qDebug() << ">>>queueLoadingScript" << script; >- WorkQueue::shared()->queue(new LoadingScriptItem(script, m_drt->webPage())); >+ WorkQueue::shared()->queue(new LoadingScriptItem(JSStringCreateWithQString(script))); > } > > void TestRunnerQt::queueNonLoadingScript(const QString& script) > { > //qDebug() << ">>>queueNonLoadingScript" << script; >- WorkQueue::shared()->queue(new NonLoadingScriptItem(script, m_drt->webPage())); >+ WorkQueue::shared()->queue(new NonLoadingScriptItem(JSStringCreateWithQString(script))); > } > > void TestRunnerQt::provisionalLoad() >@@ -829,6 +822,10 @@ void TestRunner::addDisallowedURL(JSStringRef url) > > void TestRunner::queueLoad(JSStringRef url, JSStringRef target) > { >+ DumpRenderTree* drt = DumpRenderTree::instance(); >+ QUrl mainResourceUrl = drt->webPage()->mainFrame()->url(); >+ QString absoluteUrl = mainResourceUrl.resolved(QUrl(url->qString())).toEncoded(); >+ WorkQueue::shared()->queue(new LoadItem(JSStringCreateWithQString(absoluteUrl), target)); > } > > void TestRunner::removeAllVisitedLinks() >diff --git a/Tools/DumpRenderTree/qt/TestRunnerQt.h b/Tools/DumpRenderTree/qt/TestRunnerQt.h >index 4b16b8f0a822b6c3dfae69636a7c2239079f9c4a..7f9ffbcdbbab8f66afed0d020783f07de86a34a0 100644 >--- a/Tools/DumpRenderTree/qt/TestRunnerQt.h >+++ b/Tools/DumpRenderTree/qt/TestRunnerQt.h >@@ -107,7 +107,6 @@ public Q_SLOTS: > void setWillSendRequestClearHeader(const QStringList& headers); > void queueBackNavigation(int howFarBackward); > void queueForwardNavigation(int howFarForward); >- void queueLoad(const QString& url, const QString& target = QString()); > void queueLoadHTMLString(const QString& content, const QString& baseURL = QString(), const QString& failingURL = QString()); > void queueReload(); > void queueLoadingScript(const QString& script); >diff --git a/Tools/DumpRenderTree/qt/WorkQueueItemQt.cpp b/Tools/DumpRenderTree/qt/WorkQueueItemQt.cpp >index 7cf9fcaf102e0f60a00d6f07e6205f759eb0dcd3..ed36f0d7f23576a4d05a5076613ff55081bbcb40 100644 >--- a/Tools/DumpRenderTree/qt/WorkQueueItemQt.cpp >+++ b/Tools/DumpRenderTree/qt/WorkQueueItemQt.cpp >@@ -28,7 +28,10 @@ > */ > #include "config.h" > #include "WorkQueueItemQt.h" >+ >+#include "DumpRenderTreeQt.h" > #include "DumpRenderTreeSupportQt.h" >+#include "OpaqueJSString.h" > > QWebFrame* findFrameNamed(const QString& frameName, QWebFrame* frame) > { >@@ -45,75 +48,80 @@ QWebFrame* findFrameNamed(const QString& frameName, QWebFrame* frame) > bool LoadItem::invoke() const > { > //qDebug() << ">>>LoadItem::invoke"; >- Q_ASSERT(m_webPage); >+ WebPage* webPage = DumpRenderTree::instance()->webPage(); >+ Q_ASSERT(webPage); > > QWebFrame* frame = 0; >- const QString t = target(); >- if (t.isEmpty()) >- frame = m_webPage->mainFrame(); >+ if (m_target->length()) >+ frame = findFrameNamed(m_target->qString(), webPage->mainFrame()); > else >- frame = findFrameNamed(t, m_webPage->mainFrame()); >+ frame = webPage->mainFrame(); > > if (!frame) > return false; > >- frame->load(url()); >+ frame->load(QUrl(m_url->qString())); > return true; > } > > bool LoadHTMLStringItem::invoke() const > { >- Q_ASSERT(m_webPage); >+ WebPage* webPage = DumpRenderTree::instance()->webPage(); >+ Q_ASSERT(webPage); > >- QWebFrame* frame = m_webPage->mainFrame(); >+ QWebFrame* frame = webPage->mainFrame(); > if (!frame) > return false; > >- frame->setHtml(m_content, QUrl(m_baseURL)); >+ frame->setHtml(m_content->qString(), QUrl(m_baseURL->qString())); > return true; > } > > bool LoadAlternateHTMLStringItem::invoke() const > { >- Q_ASSERT(m_webPage); >+ WebPage* webPage = DumpRenderTree::instance()->webPage(); >+ Q_ASSERT(webPage); > >- QWebFrame* frame = m_webPage->mainFrame(); >+ QWebFrame* frame = webPage->mainFrame(); > if (!frame) > return false; > >- DumpRenderTreeSupportQt::setAlternateHtml(frame->handle(), m_content, QUrl(m_baseURL), QUrl(m_failingURL)); >+ DumpRenderTreeSupportQt::setAlternateHtml(frame->handle(), m_content->qString(), QUrl(m_baseURL->qString()), QUrl(m_failingURL->qString())); > return true; > } > > bool ReloadItem::invoke() const > { > //qDebug() << ">>>ReloadItem::invoke"; >- Q_ASSERT(m_webPage); >- m_webPage->triggerAction(QWebPage::Reload); >+ WebPage* webPage = DumpRenderTree::instance()->webPage(); >+ Q_ASSERT(webPage); >+ webPage->triggerAction(QWebPage::Reload); > return true; > } > > bool ScriptItem::invoke() const > { > //qDebug() << ">>>ScriptItem::invoke"; >- Q_ASSERT(m_webPage); >- m_webPage->mainFrame()->evaluateJavaScript(script()); >+ WebPage* webPage = DumpRenderTree::instance()->webPage(); >+ Q_ASSERT(webPage); >+ webPage->mainFrame()->evaluateJavaScript(m_script->qString()); > return true; > } > > bool BackForwardItem::invoke() const > { > //qDebug() << ">>>BackForwardItem::invoke"; >- Q_ASSERT(m_webPage); >+ WebPage* webPage = DumpRenderTree::instance()->webPage(); >+ Q_ASSERT(webPage); > if (!m_howFar) > return false; > > if (m_howFar > 0) { > for (int i = 0; i != m_howFar; ++i) >- m_webPage->triggerAction(QWebPage::Forward); >+ webPage->triggerAction(QWebPage::Forward); > } else { > for (int i = 0; i != m_howFar; --i) >- m_webPage->triggerAction(QWebPage::Back); >+ webPage->triggerAction(QWebPage::Back); > } > return true; > } >diff --git a/Tools/DumpRenderTree/qt/WorkQueueItemQt.h b/Tools/DumpRenderTree/qt/WorkQueueItemQt.h >index ac7d1b37ac5efca1ab07c532f2c867828c66be12..95900bed37aab1d78088f939f0d1f543563a03f1 100644 >--- a/Tools/DumpRenderTree/qt/WorkQueueItemQt.h >+++ b/Tools/DumpRenderTree/qt/WorkQueueItemQt.h >@@ -30,61 +30,14 @@ > #ifndef WorkQueueItemQt_h > #define WorkQueueItemQt_h > >-#include <QPointer> >-#include <QString> >+#include "WorkQueueItem.h" > #include <qwebframe.h> > #include <qwebpage.h> > >-class WorkQueueItem { >-public: >- WorkQueueItem(QWebPage *page) : m_webPage(page) {} >- virtual ~WorkQueueItem() { } >- virtual bool invoke() const = 0; >- >-protected: >- QPointer<QWebPage> m_webPage; >-}; >- >-class LoadItem : public WorkQueueItem { >-public: >- LoadItem(const QString &url, const QString &target, QWebPage *page) >- : WorkQueueItem(page) >- , m_url(url) >- , m_target(target) >- { >- } >- >- QString url() const { return m_url; } >- QString target() const { return m_target; } >- >- virtual bool invoke() const; >- >-private: >- QString m_url; >- QString m_target; >-}; >- >-class LoadHTMLStringItem : public WorkQueueItem { >-public: >- LoadHTMLStringItem(const QString& content, const QString &baseURL, QWebPage *page) >- : WorkQueueItem(page) >- , m_content(content) >- , m_baseURL(baseURL) >- { >- } >- >-private: >- virtual bool invoke() const; >- >- QString m_content; >- QString m_baseURL; >-}; >- > class LoadAlternateHTMLStringItem : public WorkQueueItem { > public: >- LoadAlternateHTMLStringItem(const QString& content, const QString& baseURL, const QString &failingURL, QWebPage *page) >- : WorkQueueItem(page) >- , m_content(content) >+ LoadAlternateHTMLStringItem(const JSStringRef content, const JSStringRef baseURL, const JSStringRef failingURL) >+ : m_content(content) > , m_baseURL(baseURL) > , m_failingURL(failingURL) > { >@@ -93,85 +46,9 @@ public: > private: > virtual bool invoke() const; > >- QString m_content; >- QString m_baseURL; >- QString m_failingURL; >-}; >- >-class ReloadItem : public WorkQueueItem { >-public: >- ReloadItem(QWebPage *page) >- : WorkQueueItem(page) >- { >- } >- virtual bool invoke() const; >-}; >- >-class ScriptItem : public WorkQueueItem { >-public: >- ScriptItem(const QString &script, QWebPage *page) >- : WorkQueueItem(page) >- , m_script(script) >- { >- } >- >- QString script() const { return m_script; } >- >- virtual bool invoke() const; >- >-private: >- QString m_script; >-}; >- >-class LoadingScriptItem : public ScriptItem { >-public: >- LoadingScriptItem(const QString& script, QWebPage* page) >- : ScriptItem(script, page) >- { >- } >- >- virtual bool invoke() const { return ScriptItem::invoke(); } >-}; >- >-class NonLoadingScriptItem : public ScriptItem { >-public: >- NonLoadingScriptItem(const QString& script, QWebPage* page) >- : ScriptItem(script, page) >- { >- } >- >- virtual bool invoke() const { ScriptItem::invoke(); return false; } >-}; >- >- >-class BackForwardItem : public WorkQueueItem { >-public: >- virtual bool invoke() const; >- >-protected: >- BackForwardItem(int howFar, QWebPage *page) >- : WorkQueueItem(page) >- , m_howFar(howFar) >- { >- } >- >- int m_howFar; >-}; >- >-class BackItem : public BackForwardItem { >-public: >- BackItem(unsigned howFar, QWebPage *page) >- : BackForwardItem(-howFar, page) >- { >- } >-}; >- >-class ForwardItem : public BackForwardItem { >-public: >- ForwardItem(unsigned howFar, QWebPage *page) >- : BackForwardItem(howFar, page) >- { >- } >+ JSRetainPtr<JSStringRef> m_content; >+ JSRetainPtr<JSStringRef> m_baseURL; >+ JSRetainPtr<JSStringRef> m_failingURL; > }; > > #endif // !defined(WorkQueueItemQt_h)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 112891
:
194210
|
194261
|
194631
|
195115
|
195174