Changeset 60992 in webkit


Ignore:
Timestamp:
Jun 10, 2010 10:51:38 PM (14 years ago)
Author:
yuzo@google.com
Message:

2010-06-10 Yuzo Fujishima <yuzo@google.com>

Reviewed by Shinichiro Hamaji.

Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page
https://bugs.webkit.org/show_bug.cgi?id=40452

  • platform/chromium/test_expectations.txt:
  • platform/mac/printing/page-rule-in-media-query-expected.checksum: Added.
  • platform/mac/printing/page-rule-in-media-query-expected.png: Added.
  • platform/mac/printing/page-rule-in-media-query-expected.txt: Added.
  • printing/page-rule-in-media-query.html: Added.

2010-06-10 Yuzo Fujishima <yuzo@google.com>

Reviewed by Shinichiro Hamaji.

Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page
https://bugs.webkit.org/show_bug.cgi?id=40452

Test: printing/page-rule-in-media-query.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSRuleSet::addRulesFromSheet): (WebCore::CSSRuleSet::addStyleRule):
Location:
trunk
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r60990 r60992  
     12010-06-10  Yuzo Fujishima  <yuzo@google.com>
     2
     3        Reviewed by Shinichiro Hamaji.
     4
     5        Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page
     6        https://bugs.webkit.org/show_bug.cgi?id=40452
     7
     8        * platform/chromium/test_expectations.txt:
     9        * platform/mac/printing/page-rule-in-media-query-expected.checksum: Added.
     10        * platform/mac/printing/page-rule-in-media-query-expected.png: Added.
     11        * platform/mac/printing/page-rule-in-media-query-expected.txt: Added.
     12        * printing/page-rule-in-media-query.html: Added.
     13
    1142010-06-10  Oliver Hunt  <oliver@apple.com>
    215
  • trunk/LayoutTests/platform/chromium/test_expectations.txt

    r60968 r60992  
    311311// These tests try to print a PDF file as the expected result.  I don't think
    312312// we plan on supporting this anytime soon.
     313WONTFIX SKIP : printing/compositing-layer-printing.html = PASS
    313314WONTFIX SKIP : printing/media-queries-print.html = PASS
    314 WONTFIX SKIP : printing/compositing-layer-printing.html = PASS
     315WONTFIX SKIP : printing/page-rule-in-media-query.html = PASS
    315316
    316317// Chrome doesn't call the willCacheResponse callback (a method
  • trunk/WebCore/ChangeLog

    r60991 r60992  
     12010-06-10  Yuzo Fujishima  <yuzo@google.com>
     2
     3        Reviewed by Shinichiro Hamaji.
     4
     5        Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page
     6        https://bugs.webkit.org/show_bug.cgi?id=40452
     7
     8        Test: printing/page-rule-in-media-query.html
     9
     10        * css/CSSStyleSelector.cpp:
     11        (WebCore::CSSRuleSet::addRulesFromSheet):
     12        (WebCore::CSSRuleSet::addStyleRule):
     13
    1142010-06-10  Sheriff Bot  <webkit.review.bot@gmail.com>
    215
  • trunk/WebCore/css/CSSStyleSelector.cpp

    r60849 r60992  
    358358   
    359359    void addRulesFromSheet(CSSStyleSheet*, const MediaQueryEvaluator&, CSSStyleSelector* = 0);
    360    
     360
     361    void addStyleRule(StyleBase* item);
    361362    void addRule(CSSStyleRule* rule, CSSSelector* sel);
    362363    void addPageRule(CSSStyleRule* rule, CSSSelector* sel);
     
    27692770        StyleBase* item = sheet->item(i);
    27702771        if (item->isStyleRule()) {
    2771             if (item->isPageRule()) {
    2772                 CSSPageRule* pageRule = static_cast<CSSPageRule*>(item);
    2773                 addPageRule(pageRule, pageRule->selectorList().first());
    2774             } else {
    2775                 CSSStyleRule* rule = static_cast<CSSStyleRule*>(item);
    2776                 for (CSSSelector* s = rule->selectorList().first(); s; s = CSSSelectorList::next(s))
    2777                     addRule(rule, s);
    2778             }
     2772            addStyleRule(item);
    27792773        }
    27802774        else if (item->isImportRule()) {
     
    27932787                    if (childItem->isStyleRule()) {
    27942788                        // It is a StyleRule, so append it to our list
    2795                         CSSStyleRule* rule = static_cast<CSSStyleRule*>(childItem);
    2796                         for (CSSSelector* s = rule->selectorList().first(); s; s = CSSSelectorList::next(s))
    2797                             addRule(rule, s);
     2789                        addStyleRule(childItem);
    27982790                    } else if (childItem->isFontFaceRule() && styleSelector) {
    27992791                        // Add this font face to our set.
     
    28172809        } else if (item->isKeyframesRule())
    28182810            styleSelector->addKeyframeStyle(static_cast<WebKitCSSKeyframesRule*>(item));
     2811    }
     2812}
     2813
     2814void CSSRuleSet::addStyleRule(StyleBase* item)
     2815{
     2816    if (item->isPageRule()) {
     2817        CSSPageRule* pageRule = static_cast<CSSPageRule*>(item);
     2818        addPageRule(pageRule, pageRule->selectorList().first());
     2819    } else {
     2820        CSSStyleRule* rule = static_cast<CSSStyleRule*>(item);
     2821        for (CSSSelector* s = rule->selectorList().first(); s; s = CSSSelectorList::next(s))
     2822            addRule(rule, s);
    28192823    }
    28202824}
Note: See TracChangeset for help on using the changeset viewer.