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

Side by Side Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2450093005: Support display: contents for elements, first-line and first-letter pseudos. (Closed)
Patch Set: Rebased Created 3 years, 11 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All
7 * rights reserved. 7 * rights reserved.
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
9 * (http://www.torchmobile.com/) 9 * (http://www.torchmobile.com/)
10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
(...skipping 1725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1736 WritingMode rootWritingMode = documentElementStyle->getWritingMode(); 1736 WritingMode rootWritingMode = documentElementStyle->getWritingMode();
1737 TextDirection rootDirection = documentElementStyle->direction(); 1737 TextDirection rootDirection = documentElementStyle->direction();
1738 1738
1739 HTMLElement* body = this->body(); 1739 HTMLElement* body = this->body();
1740 RefPtr<ComputedStyle> bodyStyle; 1740 RefPtr<ComputedStyle> bodyStyle;
1741 1741
1742 if (body) { 1742 if (body) {
1743 bodyStyle = body->mutableComputedStyle(); 1743 bodyStyle = body->mutableComputedStyle();
1744 if (didRecalcDocumentElement) 1744 if (didRecalcDocumentElement)
1745 body->clearAnimationStyleChange(); 1745 body->clearAnimationStyleChange();
1746 if (!bodyStyle || body->needsStyleRecalc() || didRecalcDocumentElement) 1746 if (!bodyStyle || body->needsStyleRecalc() || didRecalcDocumentElement) {
1747 bodyStyle = ensureStyleResolver().styleForElement( 1747 bodyStyle = ensureStyleResolver().styleForElement(
1748 body, documentElementStyle.get()); 1748 body, documentElementStyle.get(), documentElementStyle.get());
1749 }
1749 rootWritingMode = bodyStyle->getWritingMode(); 1750 rootWritingMode = bodyStyle->getWritingMode();
1750 rootDirection = bodyStyle->direction(); 1751 rootDirection = bodyStyle->direction();
1751 } 1752 }
1752 1753
1753 const ComputedStyle* backgroundStyle = documentElementStyle.get(); 1754 const ComputedStyle* backgroundStyle = documentElementStyle.get();
1754 // http://www.w3.org/TR/css3-background/#body-background 1755 // http://www.w3.org/TR/css3-background/#body-background
1755 // <html> root element with no background steals background from its first 1756 // <html> root element with no background steals background from its first
1756 // <body> child. 1757 // <body> child.
1757 // Also see LayoutBoxModelObject::backgroundStolenForBeingBody() 1758 // Also see LayoutBoxModelObject::backgroundStolenForBeingBody()
1758 if (isHTMLHtmlElement(documentElement()) && isHTMLBodyElement(body) && 1759 if (isHTMLHtmlElement(documentElement()) && isHTMLBodyElement(body) &&
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
2250 if (runPostLayoutTasks == RunPostLayoutTasksSynchronously && view()) 2251 if (runPostLayoutTasks == RunPostLayoutTasksSynchronously && view())
2251 view()->flushAnyPendingPostLayoutTasks(); 2252 view()->flushAnyPendingPostLayoutTasks();
2252 } 2253 }
2253 2254
2254 PassRefPtr<ComputedStyle> Document::styleForElementIgnoringPendingStylesheets( 2255 PassRefPtr<ComputedStyle> Document::styleForElementIgnoringPendingStylesheets(
2255 Element* element) { 2256 Element* element) {
2256 DCHECK_EQ(element->document(), this); 2257 DCHECK_EQ(element->document(), this);
2257 StyleEngine::IgnoringPendingStylesheet ignoring(styleEngine()); 2258 StyleEngine::IgnoringPendingStylesheet ignoring(styleEngine());
2258 if (!element->canParticipateInFlatTree()) 2259 if (!element->canParticipateInFlatTree())
2259 return ensureStyleResolver().styleForElement(element, nullptr); 2260 return ensureStyleResolver().styleForElement(element, nullptr);
2261
2260 ContainerNode* parent = LayoutTreeBuilderTraversal::parent(*element); 2262 ContainerNode* parent = LayoutTreeBuilderTraversal::parent(*element);
2261 return ensureStyleResolver().styleForElement( 2263 const ComputedStyle* parentStyle =
2262 element, parent ? parent->ensureComputedStyle() : nullptr); 2264 parent ? parent->ensureComputedStyle() : nullptr;
2265
2266 ContainerNode* layoutParent =
2267 parent ? LayoutTreeBuilderTraversal::layoutParent(*element) : nullptr;
2268 const ComputedStyle* layoutParentStyle =
2269 layoutParent ? layoutParent->ensureComputedStyle() : parentStyle;
2270
2271 return ensureStyleResolver().styleForElement(element, parentStyle,
2272 layoutParentStyle);
2263 } 2273 }
2264 2274
2265 PassRefPtr<ComputedStyle> Document::styleForPage(int pageIndex) { 2275 PassRefPtr<ComputedStyle> Document::styleForPage(int pageIndex) {
2266 updateDistribution(); 2276 updateDistribution();
2267 return ensureStyleResolver().styleForPage(pageIndex); 2277 return ensureStyleResolver().styleForPage(pageIndex);
2268 } 2278 }
2269 2279
2270 bool Document::isPageBoxVisible(int pageIndex) { 2280 bool Document::isPageBoxVisible(int pageIndex) {
2271 return styleForPage(pageIndex)->visibility() != 2281 return styleForPage(pageIndex)->visibility() !=
2272 EVisibility::kHidden; // display property doesn't apply to @page. 2282 EVisibility::kHidden; // display property doesn't apply to @page.
(...skipping 4244 matching lines...) Expand 10 before | Expand all | Expand 10 after
6517 } 6527 }
6518 6528
6519 void showLiveDocumentInstances() { 6529 void showLiveDocumentInstances() {
6520 WeakDocumentSet& set = liveDocumentSet(); 6530 WeakDocumentSet& set = liveDocumentSet();
6521 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); 6531 fprintf(stderr, "There are %u documents currently alive:\n", set.size());
6522 for (Document* document : set) 6532 for (Document* document : set)
6523 fprintf(stderr, "- Document %p URL: %s\n", document, 6533 fprintf(stderr, "- Document %p URL: %s\n", document,
6524 document->url().getString().utf8().data()); 6534 document->url().getString().utf8().data());
6525 } 6535 }
6526 #endif 6536 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698