Changeset 89019 in webkit


Ignore:
Timestamp:
Jun 16, 2011 1:50:21 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r88796.
http://trac.webkit.org/changeset/88796
https://bugs.webkit.org/show_bug.cgi?id=62790

It made fast/dom/nodesFromRect-basic.html time out on Qt,
64-bit, debug mode (Requested by Ossy on #webkit).

  • bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant):

2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r88796.
http://trac.webkit.org/changeset/88796
https://bugs.webkit.org/show_bug.cgi?id=62790

It made fast/dom/nodesFromRect-basic.html time out on Qt,
64-bit, debug mode (Requested by Ossy on #webkit).

  • WebCoreSupport/DumpRenderTreeSupportQt.cpp: (DumpRenderTreeSupportQt::plainText): (DumpRenderTreeSupportQt::nodesFromRect):
  • WebCoreSupport/DumpRenderTreeSupportQt.h:
  • tests/qwebframe/tst_qwebframe.cpp: (tst_QWebFrame::overloadedSlots): (tst_QWebFrame::domCycles):

2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com>

Unreviewed, rolling out r88796.
http://trac.webkit.org/changeset/88796
https://bugs.webkit.org/show_bug.cgi?id=62790

It made fast/dom/nodesFromRect-basic.html time out on Qt,
64-bit, debug mode (Requested by Ossy on #webkit).

  • DumpRenderTree/qt/LayoutTestControllerQt.cpp: (LayoutTestController::nodesFromRect):
  • DumpRenderTree/qt/LayoutTestControllerQt.h:
  • DumpRenderTree/qt/PlainTextControllerQt.cpp: (PlainTextController::plainText):
  • DumpRenderTree/qt/PlainTextControllerQt.h:
Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r89018 r89019  
     12011-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
    1132011-06-16  Adam Barth  <abarth@webkit.org>
    214
  • trunk/Source/WebCore/bridge/qt/qt_runtime.cpp

    r88796 r89019  
    183183}
    184184
    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 
    217185QVariant convertValueToQVariant(ExecState*, JSValue, QMetaType::Type, int*, HashSet<JSObject*>*, int);
    218186
     
    274242    JSLock lock(SilenceAssertionsOnly);
    275243    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    }
    278282
    279283    qConvDebug() << "convertValueToQVariant: jstype is " << type << ", hint is" << hint;
     
    775779                ret = QtPixmapInstance::variantFromObject(object, static_cast<QMetaType::Type>(hint));
    776780            } 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());
    786787            } else if (hint == (QMetaType::Type) qMetaTypeId<QDRTNode>()) {
    787788                if (object && object->inherits(&JSNode::s_info))
  • trunk/Source/WebKit/qt/ChangeLog

    r88933 r89019  
     12011-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
    1182011-06-15  Diego Gonzalez  <diegohcg@webkit.org>
    219
  • trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp

    r88796 r89019  
    975975}
    976976
    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)
     977QString 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
     986QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping)
    999987{
    1000988    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();
    1002994    if (!doc)
    1003995        return res;
  • trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h

    r88796 r89019  
    2828
    2929namespace WebCore {
    30 class Document;
    3130class Text;
    3231class Node;
     
    162161    static QString markerTextForListItem(const QWebElement& listItem);
    163162    static QVariantMap computedStyleIncludingVisitedInfo(const QWebElement& element);
    164     static QString plainText(const QVariantMap& range);
     163    static QString plainText(const QVariant& rng);
    165164
    166165    static void dumpFrameLoader(bool b);
     
    200199    static void scalePageBy(QWebFrame*, float scale, const QPoint& origin);
    201200
    202     static QVariantList nodesFromRect(const QVariantMap& 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);
    203202    static QString responseMimeType(QWebFrame*);
    204203    static void clearOpener(QWebFrame*);
     
    220219
    221220    static void injectInternalsObject(QWebFrame*);
    222 
    223 private:
    224     static WebCore::Document* getCoreDocumentFromVariantMap(const QVariantMap& document);
    225221};
    226222
  • trunk/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp

    r88796 r89019  
    613613    void progressSignal();
    614614    void urlChange();
    615     void documentHasDocumentElement();
    616     void documentAllHasDocumentElement();
     615    void domCycles();
    617616    void requestedUrl();
    618617    void requestedUrlAfterSetAndLoadFailures();
     
    20062005    */
    20072006
    2008     // should pick myOverloadedSlot(QWebElement)
     2007    // should pick myOverloadedSlot(QRegExp)
    20092008    m_myObject->resetQtFunctionInvoked();
    20102009    evalJS("myObject.myOverloadedSlot(document.body)");
     2010    QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=37319", Continue);
    20112011    QCOMPARE(m_myObject->qtFunctionInvoked(), 36);
    20122012
     
    22922292
    22932293
    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);
     2294void tst_QWebFrame::domCycles()
     2295{
     2296    m_view->setHtml("<html><body>");
     2297    QVariant v = m_page->mainFrame()->evaluateJavaScript("document");
     2298    QVERIFY(v.type() == QVariant::Map);
    23342299}
    23352300
  • trunk/Tools/ChangeLog

    r89003 r89019  
     12011-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
    1172011-06-15  Dirk Pranke  <dpranke@chromium.org>
    218
  • trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp

    r88838 r89019  
    920920}
    921921
    922 QVariantList LayoutTestController::nodesFromRect(const QVariantMap& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping)
     922QVariantList LayoutTestController::nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping)
    923923{
    924924    return DumpRenderTreeSupportQt::nodesFromRect(document, x, y, top, right, bottom, left, ignoreClipping);
  • trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h

    r88838 r89019  
    238238    bool hasSpellingMarker(int from, int length);
    239239
    240     QVariantList nodesFromRect(const QVariantMap& 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);
    241241
    242242    void addURLToRedirect(const QString& origin, const QString& destination);
  • trunk/Tools/DumpRenderTree/qt/PlainTextControllerQt.cpp

    r88796 r89019  
    3939}
    4040
    41 QString PlainTextController::plainText(const QVariantMap& range)
     41QString PlainTextController::plainText(const QVariant& range)
    4242{
    4343    return DumpRenderTreeSupportQt::plainText(range);
  • trunk/Tools/DumpRenderTree/qt/PlainTextControllerQt.h

    r88796 r89019  
    4242
    4343public slots:
    44     QString plainText(const QVariantMap& range);
     44    QString plainText(const QVariant& range);
    4545};
    4646
Note: See TracChangeset for help on using the changeset viewer.