Changeset 89019 in webkit
- Timestamp:
- Jun 16, 2011 1:50:21 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r89018 r89019 1 2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r88796. 4 http://trac.webkit.org/changeset/88796 5 https://bugs.webkit.org/show_bug.cgi?id=62790 6 7 It made fast/dom/nodesFromRect-basic.html time out on Qt, 8 64-bit, debug mode (Requested by Ossy on #webkit). 9 10 * bridge/qt/qt_runtime.cpp: 11 (JSC::Bindings::convertValueToQVariant): 12 1 13 2011-06-16 Adam Barth <abarth@webkit.org> 2 14 -
trunk/Source/WebCore/bridge/qt/qt_runtime.cpp
r88796 r89019 183 183 } 184 184 185 static QMetaType::Type hintForRealType(JSRealType type, JSObject* object)186 {187 switch (type) {188 case Number:189 return QMetaType::Double;190 case Boolean:191 return QMetaType::Bool;192 case String:193 return QMetaType::QString;194 case Date:195 return QMetaType::QDateTime;196 case RegExp:197 return QMetaType::QRegExp;198 case Object:199 if (object->inherits(&NumberObject::s_info))200 return QMetaType::Double;201 if (object->inherits(&BooleanObject::s_info))202 return QMetaType::Bool;203 if (object->inherits(&JSElement::s_info))204 return static_cast<QMetaType::Type>(qMetaTypeId<QWebElement>());205 return QMetaType::QVariantMap;206 case QObj:207 return QMetaType::QObjectStar;208 case JSByteArray:209 return QMetaType::QByteArray;210 case Array:211 case RTArray:212 return QMetaType::QVariantList;213 }214 return QMetaType::QString;215 }216 217 185 QVariant convertValueToQVariant(ExecState*, JSValue, QMetaType::Type, int*, HashSet<JSObject*>*, int); 218 186 … … 274 242 JSLock lock(SilenceAssertionsOnly); 275 243 JSRealType type = valueRealType(exec, value); 276 if (hint == QMetaType::Void) 277 hint = hintForRealType(type, object); 244 if (hint == QMetaType::Void) { 245 switch(type) { 246 case Number: 247 hint = QMetaType::Double; 248 break; 249 case Boolean: 250 hint = QMetaType::Bool; 251 break; 252 case String: 253 default: 254 hint = QMetaType::QString; 255 break; 256 case Date: 257 hint = QMetaType::QDateTime; 258 break; 259 case RegExp: 260 hint = QMetaType::QRegExp; 261 break; 262 case Object: 263 if (object->inherits(&NumberObject::s_info)) 264 hint = QMetaType::Double; 265 else if (object->inherits(&BooleanObject::s_info)) 266 hint = QMetaType::Bool; 267 else 268 hint = QMetaType::QVariantMap; 269 break; 270 case QObj: 271 hint = QMetaType::QObjectStar; 272 break; 273 case JSByteArray: 274 hint = QMetaType::QByteArray; 275 break; 276 case Array: 277 case RTArray: 278 hint = QMetaType::QVariantList; 279 break; 280 } 281 } 278 282 279 283 qConvDebug() << "convertValueToQVariant: jstype is " << type << ", hint is" << hint; … … 775 779 ret = QtPixmapInstance::variantFromObject(object, static_cast<QMetaType::Type>(hint)); 776 780 } else if (hint == (QMetaType::Type) qMetaTypeId<QWebElement>()) { 777 if (object && object->inherits(&JSElement::s_info)) { 778 ret = QVariant::fromValue<QWebElement>(QtWebElementRuntime::create((static_cast<JSElement*>(object))->impl())); 779 dist = 0; 780 // Allow other objects to reach this one. This won't cause our algorithm to 781 // loop since when we find an Element we do not recurse. 782 visitedObjects->remove(object); 783 break; 784 } 785 ret = QVariant::fromValue<QWebElement>(QWebElement()); 781 if (object && object->inherits(&JSHTMLElement::s_info)) 782 ret = QVariant::fromValue<QWebElement>(QtWebElementRuntime::create((static_cast<JSHTMLElement*>(object))->impl())); 783 else if (object && object->inherits(&JSDocument::s_info)) 784 ret = QVariant::fromValue<QWebElement>(QtWebElementRuntime::create((static_cast<JSDocument*>(object))->impl()->documentElement())); 785 else 786 ret = QVariant::fromValue<QWebElement>(QWebElement()); 786 787 } else if (hint == (QMetaType::Type) qMetaTypeId<QDRTNode>()) { 787 788 if (object && object->inherits(&JSNode::s_info)) -
trunk/Source/WebKit/qt/ChangeLog
r88933 r89019 1 2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r88796. 4 http://trac.webkit.org/changeset/88796 5 https://bugs.webkit.org/show_bug.cgi?id=62790 6 7 It made fast/dom/nodesFromRect-basic.html time out on Qt, 8 64-bit, debug mode (Requested by Ossy on #webkit). 9 10 * WebCoreSupport/DumpRenderTreeSupportQt.cpp: 11 (DumpRenderTreeSupportQt::plainText): 12 (DumpRenderTreeSupportQt::nodesFromRect): 13 * WebCoreSupport/DumpRenderTreeSupportQt.h: 14 * tests/qwebframe/tst_qwebframe.cpp: 15 (tst_QWebFrame::overloadedSlots): 16 (tst_QWebFrame::domCycles): 17 1 18 2011-06-15 Diego Gonzalez <diegohcg@webkit.org> 2 19 -
trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
r88796 r89019 975 975 } 976 976 977 QString DumpRenderTreeSupportQt::plainText(const QVariantMap& range) 978 { 979 QVariant v = range.value(QLatin1String("startContainer")); 980 ASSERT(v.isValid()); 981 QWebElement startContainer = qvariant_cast<QWebElement>(v); 982 return startContainer.toPlainText(); 983 } 984 985 WebCore::Document* DumpRenderTreeSupportQt::getCoreDocumentFromVariantMap(const QVariantMap& document) 986 { 987 QVariant v = document.value(QLatin1String("documentElement")); 988 ASSERT(v.isValid()); 989 QWebElement documentElement = qvariant_cast<QWebElement>(v); 990 991 WebCore::Element* element = documentElement.m_element; 992 if (!element) 993 return 0; 994 995 return element->document(); 996 } 997 998 QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QVariantMap& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping) 977 QString DumpRenderTreeSupportQt::plainText(const QVariant& range) 978 { 979 QMap<QString, QVariant> map = range.toMap(); 980 QVariant startContainer = map.value(QLatin1String("startContainer")); 981 map = startContainer.toMap(); 982 983 return map.value(QLatin1String("innerText")).toString(); 984 } 985 986 QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping) 999 987 { 1000 988 QVariantList res; 1001 Document* doc = getCoreDocumentFromVariantMap(document); 989 WebCore::Element* webElement = document.m_element; 990 if (!webElement) 991 return res; 992 993 Document* doc = webElement->document(); 1002 994 if (!doc) 1003 995 return res; -
trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
r88796 r89019 28 28 29 29 namespace WebCore { 30 class Document;31 30 class Text; 32 31 class Node; … … 162 161 static QString markerTextForListItem(const QWebElement& listItem); 163 162 static QVariantMap computedStyleIncludingVisitedInfo(const QWebElement& element); 164 static QString plainText(const QVariant Map& range);163 static QString plainText(const QVariant& rng); 165 164 166 165 static void dumpFrameLoader(bool b); … … 200 199 static void scalePageBy(QWebFrame*, float scale, const QPoint& origin); 201 200 202 static QVariantList nodesFromRect(const Q VariantMap& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping);201 static QVariantList nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping); 203 202 static QString responseMimeType(QWebFrame*); 204 203 static void clearOpener(QWebFrame*); … … 220 219 221 220 static void injectInternalsObject(QWebFrame*); 222 223 private:224 static WebCore::Document* getCoreDocumentFromVariantMap(const QVariantMap& document);225 221 }; 226 222 -
trunk/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
r88796 r89019 613 613 void progressSignal(); 614 614 void urlChange(); 615 void documentHasDocumentElement(); 616 void documentAllHasDocumentElement(); 615 void domCycles(); 617 616 void requestedUrl(); 618 617 void requestedUrlAfterSetAndLoadFailures(); … … 2006 2005 */ 2007 2006 2008 // should pick myOverloadedSlot(Q WebElement)2007 // should pick myOverloadedSlot(QRegExp) 2009 2008 m_myObject->resetQtFunctionInvoked(); 2010 2009 evalJS("myObject.myOverloadedSlot(document.body)"); 2010 QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=37319", Continue); 2011 2011 QCOMPARE(m_myObject->qtFunctionInvoked(), 36); 2012 2012 … … 2292 2292 2293 2293 2294 void tst_QWebFrame::documentHasDocumentElement() 2295 { 2296 m_view->setHtml("<html><body></body></html>"); 2297 QVariant docVariant = m_page->mainFrame()->evaluateJavaScript("document"); 2298 QVERIFY(docVariant.isValid()); 2299 QCOMPARE(docVariant.type(), QVariant::Map); 2300 QVariantMap document = docVariant.toMap(); 2301 2302 QVariant docElementVariant = document.value("documentElement"); 2303 QVERIFY(docElementVariant.isValid()); 2304 QCOMPARE(docElementVariant.userType(), qMetaTypeId<QWebElement>()); 2305 QWebElement documentElement = qvariant_cast<QWebElement>(docElementVariant); 2306 2307 QVERIFY(!documentElement.isNull()); 2308 QCOMPARE(documentElement, m_page->mainFrame()->documentElement()); 2309 } 2310 2311 void tst_QWebFrame::documentAllHasDocumentElement() 2312 { 2313 m_view->setHtml("<html><body></body></html>"); 2314 QVariant docVariant = m_page->mainFrame()->evaluateJavaScript("document"); 2315 QVariantMap document = docVariant.toMap(); 2316 2317 QVariant allVariant = document.value("all"); 2318 QVERIFY(allVariant.isValid()); 2319 QCOMPARE(allVariant.type(), QVariant::Map); 2320 QVariantMap all = allVariant.toMap(); 2321 2322 bool foundDocumentElement = false; 2323 foreach (QVariant v, all.values()) { 2324 if (v.userType() != qMetaTypeId<QWebElement>()) 2325 continue; 2326 QWebElement e = qvariant_cast<QWebElement>(v); 2327 if (e == m_page->mainFrame()->documentElement()) { 2328 foundDocumentElement = true; 2329 break; 2330 } 2331 } 2332 2333 QVERIFY(foundDocumentElement); 2294 void tst_QWebFrame::domCycles() 2295 { 2296 m_view->setHtml("<html><body>"); 2297 QVariant v = m_page->mainFrame()->evaluateJavaScript("document"); 2298 QVERIFY(v.type() == QVariant::Map); 2334 2299 } 2335 2300 -
trunk/Tools/ChangeLog
r89003 r89019 1 2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r88796. 4 http://trac.webkit.org/changeset/88796 5 https://bugs.webkit.org/show_bug.cgi?id=62790 6 7 It made fast/dom/nodesFromRect-basic.html time out on Qt, 8 64-bit, debug mode (Requested by Ossy on #webkit). 9 10 * DumpRenderTree/qt/LayoutTestControllerQt.cpp: 11 (LayoutTestController::nodesFromRect): 12 * DumpRenderTree/qt/LayoutTestControllerQt.h: 13 * DumpRenderTree/qt/PlainTextControllerQt.cpp: 14 (PlainTextController::plainText): 15 * DumpRenderTree/qt/PlainTextControllerQt.h: 16 1 17 2011-06-15 Dirk Pranke <dpranke@chromium.org> 2 18 -
trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
r88838 r89019 920 920 } 921 921 922 QVariantList LayoutTestController::nodesFromRect(const Q VariantMap& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping)922 QVariantList LayoutTestController::nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping) 923 923 { 924 924 return DumpRenderTreeSupportQt::nodesFromRect(document, x, y, top, right, bottom, left, ignoreClipping); -
trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h
r88838 r89019 238 238 bool hasSpellingMarker(int from, int length); 239 239 240 QVariantList nodesFromRect(const Q VariantMap& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping);240 QVariantList nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping); 241 241 242 242 void addURLToRedirect(const QString& origin, const QString& destination); -
trunk/Tools/DumpRenderTree/qt/PlainTextControllerQt.cpp
r88796 r89019 39 39 } 40 40 41 QString PlainTextController::plainText(const QVariant Map& range)41 QString PlainTextController::plainText(const QVariant& range) 42 42 { 43 43 return DumpRenderTreeSupportQt::plainText(range); -
trunk/Tools/DumpRenderTree/qt/PlainTextControllerQt.h
r88796 r89019 42 42 43 43 public slots: 44 QString plainText(const QVariant Map& range);44 QString plainText(const QVariant& range); 45 45 }; 46 46
Note: See TracChangeset
for help on using the changeset viewer.