Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: Source/core/css/resolver/StyleResolver.cpp

Issue 895383002: Let StyleResolver figure out differences between UA style and resolved style. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: I mean *remove* assert. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/css/resolver/StyleResolver.h ('k') | Source/core/layout/LayoutTheme.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « Source/core/css/resolver/StyleResolver.h ('k') | Source/core/layout/LayoutTheme.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698