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-20130326232158.patch (text/plain), 15.23 KB, created by
Zeno Albisser
on 2013-03-26 15:26:16 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Zeno Albisser
Created:
2013-03-26 15:26:16 PDT
Size:
15.23 KB
patch
obsolete
>Subversion Revision: 146880 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index cf09b26819ef95cb48cc4ab884a73edeabca98b7..5960c16dedfd09cdc71b8333c8eee1c1d702e82a 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,20 @@ >+2013-03-26 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-26 Csaba Osztrogonác <ossy@webkit.org> > > Fix unused parameter warnings in JITInlines.h >diff --git a/Source/JavaScriptCore/API/JSStringRefQt.cpp b/Source/JavaScriptCore/API/JSStringRefQt.cpp >index ac990acdc561a73760f1c51b315431f15ff4f331..2cf950c2991865ae071057fbc9be15e471101ec7 100644 >--- a/Source/JavaScriptCore/API/JSStringRefQt.cpp >+++ b/Source/JavaScriptCore/API/JSStringRefQt.cpp >@@ -38,3 +38,13 @@ QString JSStringCopyQString(JSStringRef string) > { > return string->qString(); > } >+ >+JSRetainPtr<JSStringRef> JSStringCreateWithQString(const QString& str) >+{ >+ RefPtr<OpaqueJSString> jsString = OpaqueJSString::create(str); >+ >+ if (jsString) >+ return JSRetainPtr<JSStringRef>(Adopt, jsString.release().leakRef()); >+ >+ return JSRetainPtr<JSStringRef>(Adopt, OpaqueJSString::create().leakRef()); >+} >diff --git a/Source/JavaScriptCore/API/JSStringRefQt.h b/Source/JavaScriptCore/API/JSStringRefQt.h >index 2b3ef9b827058369007bf66b9009687b9e7d57f0..63a059fdb1cb129c64c92f5b52b85bd47cf45ded 100644 >--- a/Source/JavaScriptCore/API/JSStringRefQt.h >+++ b/Source/JavaScriptCore/API/JSStringRefQt.h >@@ -28,6 +28,7 @@ > #define JSStringRefQt_h > > #include "JSBase.h" >+#include "JSRetainPtr.h" > #include <QString> > > /* QString convenience methods */ >@@ -39,5 +40,6 @@ > @result A QString containing string. > */ > JS_EXPORT QString JSStringCopyQString(JSStringRef string); >+JS_EXPORT JSRetainPtr<JSStringRef> JSStringCreateWithQString(const QString&); > > #endif /* JSStringRefQt_h */ >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 98188c85f9ae4af648ca47d34d0ad53f4221d6f3..6e1b46d8436ca41f601caa1c69a74f64edcd417a 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,35 @@ >+2013-03-26 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-26 Zan Dobersek <zdobersek@igalia.com> > > Unreviewed GTK gardening. >diff --git a/Tools/DumpRenderTree/qt/TestRunnerQt.cpp b/Tools/DumpRenderTree/qt/TestRunnerQt.cpp >index a62cb4c0c1c1c33dcdbb73c75e29cb2c5fec80ec..69395c04fbd1e46a92e1602bee8b179f9cb51690 100644 >--- a/Tools/DumpRenderTree/qt/TestRunnerQt.cpp >+++ b/Tools/DumpRenderTree/qt/TestRunnerQt.cpp >@@ -331,48 +331,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).get(), JSStringCreateWithQString(baseURL).get())); > else >- WorkQueue::shared()->queue(new LoadAlternateHTMLStringItem(content, baseURL, failingURL, m_drt->webPage())); >+ WorkQueue::shared()->queue(new LoadAlternateHTMLStringItem(JSStringCreateWithQString(content).get(), JSStringCreateWithQString(baseURL).get(), JSStringCreateWithQString(failingURL).get())); > } > > 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).get())); > } > > 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).get())); > } > > void TestRunnerQt::provisionalLoad() >@@ -829,6 +821,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(JSStringCopyQString(url))).toEncoded(); >+ WorkQueue::shared()->queue(new LoadItem(JSStringCreateWithQString(absoluteUrl).get(), 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..2423a3b48c74677a368b5bfafee1cf892620a950 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 "JSStringRefQt.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 (JSStringGetLength(m_target.get())) >+ frame = findFrameNamed(JSStringCopyQString(m_target.get()), webPage->mainFrame()); > else >- frame = findFrameNamed(t, m_webPage->mainFrame()); >+ frame = webPage->mainFrame(); > > if (!frame) > return false; > >- frame->load(url()); >+ frame->load(QUrl(JSStringCopyQString(m_url.get()))); > 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(JSStringCopyQString(m_content.get()), QUrl(JSStringCopyQString(m_baseURL.get()))); > 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(), JSStringCopyQString(m_content.get()), QUrl(JSStringCopyQString(m_baseURL.get())), QUrl(JSStringCopyQString(m_failingURL.get()))); > 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(JSStringCopyQString(m_script.get())); > 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
Flags:
benjamin
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 112891
:
194210
|
194261
|
194631
|
195115
| 195174