Changeset 90642 in webkit


Ignore:
Timestamp:
Jul 8, 2011 10:29:10 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

[CSSRegions]Parse content: -webkit-from-flow
https://bugs.webkit.org/show_bug.cgi?id=63133

Patch by Mihnea Ovidenie <mihnea@adobe.com> on 2011-07-08
Reviewed by David Hyatt.

Source/WebCore:

Test: fast/regions/content-webkit-from-flow-parsing.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::contentToCSSValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseContent):
(WebCore::CSSParser::parseFromFlowContent):

  • css/CSSParser.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getStringValue):
(WebCore::CSSPrimitiveValue::cssText):

  • css/CSSPrimitiveValue.h:
  • css/CSSStyleSelector.cpp:

(WebCore::CSSStyleSelector::applyProperty):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::diff):

  • rendering/style/RenderStyle.h:

(WebCore::InheritedFlags::regionThread):
(WebCore::InheritedFlags::setRegionThread):
(WebCore::InheritedFlags::initialRegionThread):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

  • fast/regions/content-webkit-from-flow-parsing-expected.txt: Added.
  • fast/regions/content-webkit-from-flow-parsing.html: Added.
  • fast/regions/script-tests/content-webkit-from-flow-parsing.js: Added.
Location:
trunk
Files:
3 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r90640 r90642  
     12011-07-08  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Parse content: -webkit-from-flow
     4        https://bugs.webkit.org/show_bug.cgi?id=63133
     5
     6        Reviewed by David Hyatt.
     7
     8        * fast/regions/content-webkit-from-flow-parsing-expected.txt: Added.
     9        * fast/regions/content-webkit-from-flow-parsing.html: Added.
     10        * fast/regions/script-tests/content-webkit-from-flow-parsing.js: Added.
     11
    1122011-07-08  Vsevolod Vlasov  <vsevik@chromium.org>
    213
  • trunk/Source/WebCore/ChangeLog

    r90635 r90642  
     12011-07-08  Mihnea Ovidenie  <mihnea@adobe.com>
     2
     3        [CSSRegions]Parse content: -webkit-from-flow
     4        https://bugs.webkit.org/show_bug.cgi?id=63133
     5
     6        Reviewed by David Hyatt.
     7
     8        Test: fast/regions/content-webkit-from-flow-parsing.html
     9
     10        * css/CSSComputedStyleDeclaration.cpp:
     11        (WebCore::contentToCSSValue):
     12        * css/CSSParser.cpp:
     13        (WebCore::CSSParser::parseContent):
     14        (WebCore::CSSParser::parseFromFlowContent):
     15        * css/CSSParser.h:
     16        * css/CSSPrimitiveValue.cpp:
     17        (WebCore::CSSPrimitiveValue::cleanup):
     18        (WebCore::CSSPrimitiveValue::getStringValue):
     19        (WebCore::CSSPrimitiveValue::cssText):
     20        * css/CSSPrimitiveValue.h:
     21        * css/CSSStyleSelector.cpp:
     22        (WebCore::CSSStyleSelector::applyProperty):
     23        * rendering/style/RenderStyle.cpp:
     24        (WebCore::RenderStyle::diff):
     25        * rendering/style/RenderStyle.h:
     26        (WebCore::InheritedFlags::regionThread):
     27        (WebCore::InheritedFlags::setRegionThread):
     28        (WebCore::InheritedFlags::initialRegionThread):
     29        * rendering/style/StyleRareNonInheritedData.cpp:
     30        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
     31        (WebCore::StyleRareNonInheritedData::operator==):
     32        * rendering/style/StyleRareNonInheritedData.h:
     33
    1342011-07-08  Ilya Tikhonovsky  <loislo@chromium.org>
    235
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r90541 r90642  
    768768            list->append(primitiveValueCache->createValue(static_cast<const TextContentData*>(contentData)->text(), CSSPrimitiveValue::CSS_STRING));
    769769    }
     770#if ENABLE(CSS_REGIONS)
     771    if (!style->regionThread().isNull())
     772        list->append(primitiveValueCache->createValue(style->regionThread(), CSSPrimitiveValue::CSS_STRING));
     773#endif
    770774    return list.release();
    771775}
  • trunk/Source/WebCore/css/CSSParser.cpp

    r90541 r90642  
    26582658                if (!parseGeneratedImage(parsedValue))
    26592659                    return false;
     2660#if ENABLE(CSS_REGIONS)
     2661            } else if (equalIgnoringCase(val->function->name, "-webkit-from-flow(")) {
     2662                parsedValue = parseFromFlowContent(args);
     2663                if (!parsedValue)
     2664                    return false;
     2665#endif
    26602666            } else
    26612667                return false;
     
    58665872    return false;
    58675873}
     5874
     5875// The region name is now specified as an argument to the content property:
     5876// content: from-flow(flow_thread_name)
     5877PassRefPtr<CSSValue> CSSParser::parseFromFlowContent(CSSParserValueList* args)
     5878{
     5879    // It should be only one name for the region thread.
     5880    if (args->size() != 1)
     5881        return 0;
     5882
     5883    CSSParserValue* argFlowThreadName = args->current();
     5884
     5885    if (argFlowThreadName->unit != CSSPrimitiveValue::CSS_STRING)
     5886        return 0;
     5887
     5888    return CSSPrimitiveValue::create(argFlowThreadName->string, CSSPrimitiveValue::CSS_FROM_FLOW);
     5889}
    58685890#endif
    58695891
  • trunk/Source/WebCore/css/CSSParser.h

    r90541 r90642  
    159159#if ENABLE(CSS_REGIONS)
    160160        bool parseFlowThread(int propId, bool important);
     161        PassRefPtr<CSSValue> parseFromFlowContent(CSSParserValueList*);
    161162#endif
    162163        // CSS3 Parsing Routines (for properties specific to CSS3)
  • trunk/Source/WebCore/css/CSSPrimitiveValue.cpp

    r89705 r90642  
    222222        case CSS_URI:
    223223        case CSS_ATTR:
     224#if ENABLE(CSS_REGIONS)
     225        case CSS_FROM_FLOW:
     226#endif
    224227        case CSS_PARSER_HEXCOLOR:
    225228            if (m_value.string)
     
    505508        case CSS_ATTR:
    506509        case CSS_URI:
     510#if ENABLE(CSS_REGIONS)
     511        case CSS_FROM_FLOW:
     512#endif
    507513            return m_value.string;
    508514        case CSS_IDENT:
     
    685691            text = quoteCSSStringIfNeeded(m_value.string);
    686692            break;
     693#if ENABLE(CSS_REGIONS)
     694        case CSS_FROM_FLOW:
     695            text = "-webkit-from-flow(" + quoteCSSStringIfNeeded(m_value.string) + ")";
     696            break;
     697#endif
    687698        case CSS_URI:
    688699            text = "url(" + quoteCSSURLIfNeeded(m_value.string) + ")";
  • trunk/Source/WebCore/css/CSSPrimitiveValue.h

    r89705 r90642  
    9595
    9696        // This is used internally for counter names (as opposed to counter values)
    97         CSS_COUNTER_NAME = 109
     97        CSS_COUNTER_NAME = 109,
     98        CSS_FROM_FLOW = 110
    9899    };
    99100   
  • trunk/Source/WebCore/css/CSSStyleSelector.cpp

    r90541 r90642  
    41414141        int len = list->length();
    41424142
     4143#if ENABLE(CSS_REGIONS)
     4144        if (len == 1 && list->itemWithoutBoundsCheck(0)->isPrimitiveValue()) {
     4145            CSSPrimitiveValue* contentValue = static_cast<CSSPrimitiveValue*>(list->itemWithoutBoundsCheck(0));
     4146            if (contentValue->primitiveType() == CSSPrimitiveValue::CSS_FROM_FLOW) {
     4147                m_style->setRegionThread(contentValue->getStringValue().impl());
     4148                return;
     4149            }
     4150        }
     4151#endif
     4152
    41434153        bool didSet = false;
    41444154        for (int i = 0; i < len; i++) {
     
    41484158                didSet = true;
    41494159            }
    4150            
     4160
    41514161            if (!item->isPrimitiveValue())
    41524162                continue;
    4153            
     4163
    41544164            CSSPrimitiveValue* contentValue = static_cast<CSSPrimitiveValue*>(item);
    41554165            switch (contentValue->primitiveType()) {
  • trunk/Source/WebCore/rendering/style/RenderStyle.cpp

    r90541 r90642  
    346346
    347347#if ENABLE(CSS_REGIONS)
    348         if (rareNonInheritedData->m_flowThread != other->rareNonInheritedData->m_flowThread)
    349              return StyleDifferenceLayout;
     348        if (rareNonInheritedData->m_flowThread != other->rareNonInheritedData->m_flowThread
     349            || rareNonInheritedData->m_regionThread != other->rareNonInheritedData->m_regionThread)
     350            return StyleDifferenceLayout;
    350351#endif
    351352        if (rareNonInheritedData->m_deprecatedFlexibleBox.get() != other->rareNonInheritedData->m_deprecatedFlexibleBox.get()
  • trunk/Source/WebCore/rendering/style/RenderStyle.h

    r90541 r90642  
    746746#if ENABLE(CSS_REGIONS)
    747747    const AtomicString& flowThread() const { return rareNonInheritedData->m_flowThread; }
     748    const AtomicString& regionThread() const { return rareNonInheritedData->m_regionThread; }
    748749#endif
    749750
     
    10981099#if ENABLE(CSS_REGIONS)
    10991100    void setFlowThread(const AtomicString& flowThread) { SET_VAR(rareNonInheritedData, m_flowThread, flowThread); }
     1101    void setRegionThread(const AtomicString& regionThread) { SET_VAR(rareNonInheritedData, m_regionThread, regionThread); }
    11001102#endif
    11011103
     
    13311333#if ENABLE(CSS_REGIONS)
    13321334    static const AtomicString& initialFlowThread() { return nullAtom; }
     1335    static const AtomicString& initialRegionThread() { return nullAtom; }
    13331336#endif
    13341337
  • trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp

    r90541 r90642  
    5858#if ENABLE(CSS_REGIONS)
    5959    , m_flowThread(RenderStyle::initialFlowThread())
     60    , m_regionThread(RenderStyle::initialRegionThread())
    6061#endif
    6162{
     
    100101#if ENABLE(CSS_REGIONS)
    101102    , m_flowThread(o.m_flowThread)
     103    , m_regionThread(o.m_regionThread)
    102104#endif
    103105{
     
    149151#if ENABLE(CSS_REGIONS)
    150152        && (m_flowThread == o.m_flowThread)
     153        && (m_regionThread == o.m_regionThread)
    151154#endif
    152155        ;
  • trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h

    r90541 r90642  
    134134#if ENABLE(CSS_REGIONS)
    135135    AtomicString m_flowThread;
     136    AtomicString m_regionThread;
    136137#endif
    137138
Note: See TracChangeset for help on using the changeset viewer.