[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

hausmann at webkit.org hausmann at webkit.org
Thu Oct 29 20:34:09 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 2cd715e4b0b1262a256ac6cbcefba08eff65b5fa
Author: hausmann at webkit.org <hausmann at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Sep 25 08:18:54 2009 +0000

    [Qt] Update the stypeProperty API of QWebElement.
    https://bugs.webkit.org/show_bug.cgi?id=29711
    
    Patch by Jocelyn Turcotte <jocelyn.turcotte at nokia.com> on 2009-09-25
    Reviewed by Simon Hausmann.
    
    * Api/qwebelement.cpp:
    (QWebElement::styleProperty):
    - Merge the stypeProperty and the computedStyleProperty methods
    - Remove the default value for the style resolving enum
    - Rename ResolveRule to StyleResolveStrategy
    (QWebElement::setStyleProperty):
    - Remove the priority argument since it is possible to control the
      behaviour by adding !important or removing in the value.
    * Api/qwebelement.h:
    * tests/qwebelement/tst_qwebelement.cpp:
    (tst_QWebElement::style):
    (tst_QWebElement::computedStyle):
    * tests/qwebframe/tst_qwebframe.cpp:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/qt/Api/qwebelement.cpp b/WebKit/qt/Api/qwebelement.cpp
index ff086f6..f7621e0 100644
--- a/WebKit/qt/Api/qwebelement.cpp
+++ b/WebKit/qt/Api/qwebelement.cpp
@@ -946,44 +946,25 @@ QStringList QWebElement::scriptableProperties() const
 }
 
 /*!
-    \enum QWebElement::ResolveRule
-    \since 4.6
+    \enum QWebElement::StyleResolveStrategy
 
     This enum describes how QWebElement's styleProperty resolves the given
     property name.
 
-    \value IgnoreCascadingStyles Return the property value as it is defined in
+    \value InlineStyle Return the property value as it is defined in
            the element, without respecting style inheritance and other CSS
            rules.
-    \value RespectCascadingStyles The property's value is determined using the
+    \value CascadedStyle The property's value is determined using the
            inheritance and importance rules defined in the document's
            stylesheet.
+    \value ComputedStyle The property's value is the absolute value
+           of the style property resolved from the environment.
 */
 
 /*!
-    \enum QWebElement::StylePriority
-    \since 4.6
-
-    This enum describes the priority newly set CSS properties should have when
-    set using QWebElement::setStyleProperty().
-
-    \value NormalStylePriority Define the property without important priority
-           even if "!important" is explicitly set in \a value.
-    \value DeclaredStylePriority Define the property respecting the priority
-           specified in \a value.
-    \value ImportantStylePriority Define the property to have an important
-           priority. This is equal to appending "!important" to the value.
-*/
-
-/*!
-    Returns the value of the style with the given \a name. If a style with
-    \a name does not exist, an empty string is returned.
-
-    If \a rule is IgnoreCascadingStyles, the value defined inside the element
-    (inline in CSS terminology) is returned.
-
-    if \a rule is RespectCascadingStyles, the actual style applied to the
-    element is returned.
+    Returns the value of the style with the given \a name using the specified
+    \a strategy. If a style with \a name does not exist, an empty string is
+    returned.
 
     In CSS, the cascading part depends on which CSS rule has priority and is
     thus applied. Generally, the last defined rule has priority. Thus, an
@@ -997,7 +978,8 @@ QStringList QWebElement::scriptableProperties() const
 
     \sa setStyleProperty()
 */
-QString QWebElement::styleProperty(const QString &name, ResolveRule rule) const
+
+QString QWebElement::styleProperty(const QString &name, StyleResolveStrategy strategy) const
 {
     if (!m_element || !m_element->isStyledElement())
         return QString();
@@ -1009,10 +991,10 @@ QString QWebElement::styleProperty(const QString &name, ResolveRule rule) const
 
     CSSStyleDeclaration* style = static_cast<StyledElement*>(m_element)->style();
 
-    if (rule == IgnoreCascadingStyles)
+    if (strategy == InlineStyle)
         return style->getPropertyValue(propID);
 
-    if (rule == RespectCascadingStyles) {
+    if (strategy == CascadedStyle) {
         if (style->getPropertyPriority(propID))
             return style->getPropertyValue(propID);
 
@@ -1040,33 +1022,33 @@ QString QWebElement::styleProperty(const QString &name, ResolveRule rule) const
         return style->getPropertyValue(propID);
     }
 
+    if (strategy == ComputedStyle) {
+        if (!m_element || !m_element->isStyledElement())
+            return QString();
+
+        int propID = cssPropertyID(name);
+
+        RefPtr<CSSComputedStyleDeclaration> style = computedStyle(m_element);
+        if (!propID || !style)
+            return QString();
+
+        return style->getPropertyValue(propID);
+    }
+
     return QString();
 }
 
 /*!
-    Sets the value of the style with the given \a name to \a value.
+    Sets the value of the inline style with the given \a name to \a value.
 
     Setting a value, does not necessarily mean that it will become the applied
     value, due to the fact that the style property's value might have been set
-    earlier with priority in external or embedded style declarations.
-
-    In order to ensure that the value will be applied, ImportantStylePriority
-    should be used as \a priority.
+    earlier with a higher priority in external or embedded style declarations.
 
-    Following the CSS syntax for property values, this is equal to appending
+    In order to ensure that the value will be applied, you may have to append
     "!important" to the value.
-
-    This syntax is supported when using DeclaredStylePriority as \a priority.
-
-    Using NormalStylePriority as \a priority, the property will have normal
-    priority, and any "!important" declaration will be ignored. On the other
-    hand, using ImportantStylePriority sets the important priority even when
-    it is not explicitly passed in \a value.
-
-    By using DeclaredStylePriority as \a priority the property will respect the
-    priority specified in \a value.
 */
-void QWebElement::setStyleProperty(const QString &name, const QString &value, StylePriority priority)
+void QWebElement::setStyleProperty(const QString &name, const QString &value)
 {
     if (!m_element || !m_element->isStyledElement())
         return;
@@ -1077,43 +1059,7 @@ void QWebElement::setStyleProperty(const QString &name, const QString &value, St
         return;
 
     ExceptionCode exception = 0;
-
-    const QRegExp hasImportantTest(QLatin1String("!\\s*important"));
-    int index = value.indexOf(hasImportantTest);
-
-    QString newValue = (index != -1) ? value.left(index - 1) : value;
-
-    switch (priority) {
-    case NormalStylePriority:
-        style->setProperty(name, newValue, "", exception);
-        break;
-    case DeclaredStylePriority:
-        style->setProperty(name, newValue, (index != -1) ? "important" : "", exception);
-        break;
-    case ImportantStylePriority:
-        style->setProperty(name, newValue, "important", exception);
-        break;
-    default:
-        break;
-    }
-}
-
-/*!
-    Returns the computed value for style with the given \a name. If a style
-    with \a name does not exist, an empty string is returned.
-*/
-QString QWebElement::computedStyleProperty(const QString &name) const
-{
-    if (!m_element || !m_element->isStyledElement())
-        return QString();
-
-    int propID = cssPropertyID(name);
-
-    RefPtr<CSSComputedStyleDeclaration> style = computedStyle(m_element);
-    if (!propID || !style)
-        return QString();
-
-    return style->getPropertyValue(propID);
+    style->setProperty(name, value, exception);
 }
 
 /*!
diff --git a/WebKit/qt/Api/qwebelement.h b/WebKit/qt/Api/qwebelement.h
index 5f4870c..e7e03af 100644
--- a/WebKit/qt/Api/qwebelement.h
+++ b/WebKit/qt/Api/qwebelement.h
@@ -129,13 +129,13 @@ public:
     void setScriptableProperty(const QString& name, const QVariant& value);
     QStringList scriptableProperties() const;
 
-    enum ResolveRule { IgnoreCascadingStyles, RespectCascadingStyles };
-    QString styleProperty(const QString& name, ResolveRule = IgnoreCascadingStyles) const;
-
-    enum StylePriority { NormalStylePriority, DeclaredStylePriority, ImportantStylePriority };
-    void setStyleProperty(const QString& name, const QString& value, StylePriority = DeclaredStylePriority);
-
-    QString computedStyleProperty(const QString& name) const;
+    enum StyleResolveStrategy {
+         InlineStyle,
+         CascadedStyle,
+         ComputedStyle,
+    };
+    QString styleProperty(const QString& name, StyleResolveStrategy strategy) const;
+    void setStyleProperty(const QString& name, const QString& value);
 
 private:
     explicit QWebElement(WebCore::Element*);
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index bfd0537..f283d0a 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,24 @@
+2009-09-25  Jocelyn Turcotte  <jocelyn.turcotte at nokia.com>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] Update the stypeProperty API of QWebElement.
+        https://bugs.webkit.org/show_bug.cgi?id=29711
+
+        * Api/qwebelement.cpp:
+        (QWebElement::styleProperty):
+        - Merge the stypeProperty and the computedStyleProperty methods
+        - Remove the default value for the style resolving enum
+        - Rename ResolveRule to StyleResolveStrategy
+        (QWebElement::setStyleProperty):
+        - Remove the priority argument since it is possible to control the
+          behaviour by adding !important or removing in the value.
+        * Api/qwebelement.h:
+        * tests/qwebelement/tst_qwebelement.cpp:
+        (tst_QWebElement::style):
+        (tst_QWebElement::computedStyle):
+        * tests/qwebframe/tst_qwebframe.cpp:
+
 2009-09-24  Jon Honeycutt  <jhoneycutt at apple.com>
 
         Reviewed by Alice Liu.
diff --git a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
index 0819a3a..e934df5 100644
--- a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
+++ b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
@@ -398,27 +398,27 @@ void tst_QWebElement::style()
     m_mainFrame->setHtml(html);
 
     QWebElement p = m_mainFrame->documentElement().findAll("p").at(0);
-    QCOMPARE(p.styleProperty("color"), QLatin1String("blue"));
-    QVERIFY(p.styleProperty("cursor").isEmpty());
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue"));
+    QVERIFY(p.styleProperty("cursor", QWebElement::InlineStyle).isEmpty());
 
     p.setStyleProperty("color", "red");
     p.setStyleProperty("cursor", "auto");
 
-    QCOMPARE(p.styleProperty("color"), QLatin1String("red"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("yellow"));
-    QCOMPARE(p.styleProperty("cursor"), QLatin1String("auto"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("red"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("yellow"));
+    QCOMPARE(p.styleProperty("cursor", QWebElement::InlineStyle), QLatin1String("auto"));
 
     p.setStyleProperty("color", "green !important");
-    QCOMPARE(p.styleProperty("color"), QLatin1String("green"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("green"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("green"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("green"));
 
     p.setStyleProperty("color", "blue");
-    QCOMPARE(p.styleProperty("color"), QLatin1String("green"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("green"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("green"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("green"));
 
-    p.setStyleProperty("color", "blue", QWebElement::ImportantStylePriority);
-    QCOMPARE(p.styleProperty("color"), QLatin1String("blue"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("blue"));
+    p.setStyleProperty("color", "blue !important");
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("blue"));
 
     QString html2 = "<head>"
         "<style type='text/css'>"
@@ -434,8 +434,8 @@ void tst_QWebElement::style()
     m_mainFrame->setHtml(html2);
     p = m_mainFrame->documentElement().findAll("p").at(0);
 
-    QCOMPARE(p.styleProperty("color"), QLatin1String("blue"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("blue"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("blue"));
 
     QString html3 = "<head>"
         "<style type='text/css'>"
@@ -451,8 +451,8 @@ void tst_QWebElement::style()
     m_mainFrame->setHtml(html3);
     p = m_mainFrame->documentElement().findAll("p").at(0);
 
-    QCOMPARE(p.styleProperty("color"), QLatin1String("blue"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("blue"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("blue"));
 
     QString html5 = "<head>"
         "<style type='text/css'>"
@@ -468,8 +468,8 @@ void tst_QWebElement::style()
     m_mainFrame->setHtml(html5);
     p = m_mainFrame->documentElement().findAll("p").at(0);
 
-    QCOMPARE(p.styleProperty("color"), QLatin1String(""));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("red"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String(""));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("red"));
 
     QString html6 = "<head>"
         "<link rel='stylesheet' href='qrc:/style.css' type='text/css' />"
@@ -489,8 +489,8 @@ void tst_QWebElement::style()
     QTest::qWait(200);
 
     p = m_mainFrame->documentElement().findAll("p").at(0);
-    QCOMPARE(p.styleProperty("color"), QLatin1String("blue"));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("black"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("black"));
 
     QString html7 = "<head>"
         "<style type='text/css'>"
@@ -507,15 +507,15 @@ void tst_QWebElement::style()
     QTest::qWait(200);
 
     p = m_mainFrame->documentElement().findAll("p").at(0);
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("black"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("black"));
 
     QString html8 = "<body><p>some text</p></body>";
 
     m_mainFrame->setHtml(html8);
     p = m_mainFrame->documentElement().findAll("p").at(0);
 
-    QCOMPARE(p.styleProperty("color"), QLatin1String(""));
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String(""));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String(""));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String(""));
 }
 
 void tst_QWebElement::computedStyle()
@@ -524,16 +524,16 @@ void tst_QWebElement::computedStyle()
     m_mainFrame->setHtml(html);
 
     QWebElement p = m_mainFrame->documentElement().findAll("p").at(0);
-    QCOMPARE(p.computedStyleProperty("cursor"), QLatin1String("auto"));
-    QVERIFY(!p.computedStyleProperty("cursor").isEmpty());
-    QVERIFY(p.styleProperty("cursor").isEmpty());
+    QCOMPARE(p.styleProperty("cursor", QWebElement::ComputedStyle), QLatin1String("auto"));
+    QVERIFY(!p.styleProperty("cursor", QWebElement::ComputedStyle).isEmpty());
+    QVERIFY(p.styleProperty("cursor", QWebElement::InlineStyle).isEmpty());
 
     p.setStyleProperty("cursor", "text");
     p.setStyleProperty("color", "red");
 
-    QCOMPARE(p.computedStyleProperty("cursor"), QLatin1String("text"));
-    QCOMPARE(p.computedStyleProperty("color"), QLatin1String("rgb(255, 0, 0)"));
-    QCOMPARE(p.styleProperty("color"), QLatin1String("red"));
+    QCOMPARE(p.styleProperty("cursor", QWebElement::ComputedStyle), QLatin1String("text"));
+    QCOMPARE(p.styleProperty("color", QWebElement::ComputedStyle), QLatin1String("rgb(255, 0, 0)"));
+    QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("red"));
 }
 
 void tst_QWebElement::properties()
diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index 729b971..fbeeab6 100644
--- a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -2356,7 +2356,7 @@ void tst_QWebFrame::setHtmlWithResource()
     QCOMPARE(spy.size(), 2);
 
     QWebElement p = frame->documentElement().findAll("p").at(0);
-    QCOMPARE(p.styleProperty("color", QWebElement::RespectCascadingStyles), QLatin1String("red"));
+    QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("red"));
 }
 
 class TestNetworkManager : public QNetworkAccessManager

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list