OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 // so that the common case doesn't need to create a new LayoutStyle in | 519 // so that the common case doesn't need to create a new LayoutStyle in |
520 // Document::inheritHtmlAndBodyElementStyles. | 520 // Document::inheritHtmlAndBodyElementStyles. |
521 documentStyle->setDisplay(BLOCK); | 521 documentStyle->setDisplay(BLOCK); |
522 documentStyle->setScrollBlocksOn(WebScrollBlocksOnStartTouch | WebScrollBloc
ksOnWheelEvent); | 522 documentStyle->setScrollBlocksOn(WebScrollBlocksOnStartTouch | WebScrollBloc
ksOnWheelEvent); |
523 | 523 |
524 document.setupFontBuilder(*documentStyle); | 524 document.setupFontBuilder(*documentStyle); |
525 | 525 |
526 return documentStyle.release(); | 526 return documentStyle.release(); |
527 } | 527 } |
528 | 528 |
| 529 static AuthorStyleInfo authorStyleInfo(StyleResolverState& state) |
| 530 { |
| 531 const CachedUAStyle* cachedUAStyle = state.cachedUAStyle(); |
| 532 |
| 533 if (!cachedUAStyle) |
| 534 return AuthorStyleInfo(); |
| 535 |
| 536 // Exclude background-repeat from comparison by resetting it. |
| 537 FillLayer backgroundCopy = cachedUAStyle->backgroundLayers; |
| 538 FillLayer backgroundLayersCopy = state.style()->backgroundLayers(); |
| 539 backgroundCopy.setRepeatX(NoRepeatFill); |
| 540 backgroundCopy.setRepeatY(NoRepeatFill); |
| 541 backgroundLayersCopy.setRepeatX(NoRepeatFill); |
| 542 backgroundLayersCopy.setRepeatY(NoRepeatFill); |
| 543 |
| 544 bool backgroundChanged = backgroundLayersCopy != backgroundCopy |
| 545 || state.style()->visitedDependentColor(CSSPropertyBackgroundColor) != c
achedUAStyle->backgroundColor; |
| 546 bool borderChanged = state.style()->border() != cachedUAStyle->border; |
| 547 |
| 548 return AuthorStyleInfo(backgroundChanged, borderChanged); |
| 549 } |
| 550 |
529 void StyleResolver::adjustLayoutStyle(StyleResolverState& state, Element* elemen
t) | 551 void StyleResolver::adjustLayoutStyle(StyleResolverState& state, Element* elemen
t) |
530 { | 552 { |
531 StyleAdjuster adjuster(document().inQuirksMode()); | 553 StyleAdjuster adjuster(document().inQuirksMode()); |
532 adjuster.adjustLayoutStyle(state.mutableStyleRef(), *state.parentStyle(), el
ement, state.cachedUAStyle()); | 554 adjuster.adjustLayoutStyle(state.mutableStyleRef(), *state.parentStyle(), el
ement, authorStyleInfo(state)); |
533 } | 555 } |
534 | 556 |
535 // Start loading resources referenced by this style. | 557 // Start loading resources referenced by this style. |
536 void StyleResolver::loadPendingResources(StyleResolverState& state) | 558 void StyleResolver::loadPendingResources(StyleResolverState& state) |
537 { | 559 { |
538 m_styleResourceLoader.loadPendingResources(state.style(), state.elementStyle
Resources()); | 560 m_styleResourceLoader.loadPendingResources(state.style(), state.elementStyle
Resources()); |
539 document().styleEngine()->fontSelector()->fontLoader()->loadPendingFonts(); | 561 document().styleEngine()->fontSelector()->fontLoader()->loadPendingFonts(); |
540 } | 562 } |
541 | 563 |
542 PassRefPtr<LayoutStyle> StyleResolver::styleForElement(Element* element, LayoutS
tyle* defaultParent, StyleSharingBehavior sharingBehavior, | 564 PassRefPtr<LayoutStyle> StyleResolver::styleForElement(Element* element, LayoutS
tyle* defaultParent, StyleSharingBehavior sharingBehavior, |
(...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1525 visitor->trace(m_uncommonAttributeRuleSet); | 1547 visitor->trace(m_uncommonAttributeRuleSet); |
1526 visitor->trace(m_watchedSelectorsRules); | 1548 visitor->trace(m_watchedSelectorsRules); |
1527 visitor->trace(m_treeBoundaryCrossingRules); | 1549 visitor->trace(m_treeBoundaryCrossingRules); |
1528 visitor->trace(m_styleSharingLists); | 1550 visitor->trace(m_styleSharingLists); |
1529 visitor->trace(m_pendingStyleSheets); | 1551 visitor->trace(m_pendingStyleSheets); |
1530 visitor->trace(m_document); | 1552 visitor->trace(m_document); |
1531 #endif | 1553 #endif |
1532 } | 1554 } |
1533 | 1555 |
1534 } // namespace blink | 1556 } // namespace blink |
OLD | NEW |