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

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

Issue 2336693002: Rendering text to a canvas in a frame-less document. (Closed)
Patch Set: Adding the failed tests to TestExpectations for Mac. Created 4 years, 3 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 r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 #include "platform/fonts/FontCache.h" 54 #include "platform/fonts/FontCache.h"
55 55
56 namespace blink { 56 namespace blink {
57 57
58 using namespace HTMLNames; 58 using namespace HTMLNames;
59 59
60 StyleEngine::StyleEngine(Document& document) 60 StyleEngine::StyleEngine(Document& document)
61 : m_document(&document) 61 : m_document(&document)
62 , m_isMaster(!document.importsController() || document.importsController()-> master() == &document) 62 , m_isMaster(!document.importsController() || document.importsController()-> master() == &document)
63 , m_documentStyleSheetCollection(DocumentStyleSheetCollection::create(docume nt)) 63 , m_documentStyleSheetCollection(DocumentStyleSheetCollection::create(docume nt))
64 // We don't need to create CSSFontSelector for imported document or
65 // HTMLTemplateElement's document, because those documents have no frame.
66 , m_fontSelector(document.frame() ? CSSFontSelector::create(&document) : nul lptr)
67 { 64 {
68 if (m_fontSelector) 65 m_fontSelector = CSSFontSelector::create(m_document);
69 m_fontSelector->registerForInvalidationCallbacks(this); 66 m_fontSelector->registerForInvalidationCallbacks(this);
70 } 67 }
71 68
72 StyleEngine::~StyleEngine() 69 StyleEngine::~StyleEngine()
73 { 70 {
74 } 71 }
75 72
76 static bool isStyleElement(Node& node) 73 static bool isStyleElement(Node& node)
77 { 74 {
78 return isHTMLStyleElement(node) || isSVGStyleElement(node); 75 return isHTMLStyleElement(node) || isSVGStyleElement(node);
79 } 76 }
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 m_resolver->appendAuthorStyleSheets(documentStyleSheetCollection()->activeAu thorStyleSheets()); 380 m_resolver->appendAuthorStyleSheets(documentStyleSheetCollection()->activeAu thorStyleSheets());
384 for (TreeScope* treeScope : m_activeTreeScopes) { 381 for (TreeScope* treeScope : m_activeTreeScopes) {
385 if (TreeScopeStyleSheetCollection* collection = m_styleSheetCollectionMa p.get(treeScope)) 382 if (TreeScopeStyleSheetCollection* collection = m_styleSheetCollectionMa p.get(treeScope))
386 m_resolver->appendAuthorStyleSheets(collection->activeAuthorStyleShe ets()); 383 m_resolver->appendAuthorStyleSheets(collection->activeAuthorStyleShe ets());
387 } 384 }
388 m_resolver->finishAppendAuthorStyleSheets(); 385 m_resolver->finishAppendAuthorStyleSheets();
389 } 386 }
390 387
391 void StyleEngine::createResolver() 388 void StyleEngine::createResolver()
392 { 389 {
393 TRACE_EVENT1("blink", "StyleEngine::createResolver", "frame", document().fra me());
394 // It is a programming error to attempt to resolve style on a Document
395 // which is not in a frame. Code which hits this should have checked
396 // Document::isActive() before calling into code which could get here.
397
398 DCHECK(document().frame());
399
400 m_resolver = StyleResolver::create(*m_document); 390 m_resolver = StyleResolver::create(*m_document);
401 391
402 // A scoped style resolver for document will be created during 392 // A scoped style resolver for document will be created during
403 // appendActiveAuthorStyleSheets if needed. 393 // appendActiveAuthorStyleSheets if needed.
404 appendActiveAuthorStyleSheets(); 394 appendActiveAuthorStyleSheets();
405 } 395 }
406 396
407 void StyleEngine::clearResolver() 397 void StyleEngine::clearResolver()
408 { 398 {
409 DCHECK(!document().inStyleRecalc()); 399 DCHECK(!document().inStyleRecalc());
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 832
843 DEFINE_TRACE_WRAPPERS(StyleEngine) 833 DEFINE_TRACE_WRAPPERS(StyleEngine)
844 { 834 {
845 for (auto sheet : m_injectedAuthorStyleSheets) { 835 for (auto sheet : m_injectedAuthorStyleSheets) {
846 visitor->traceWrappers(sheet); 836 visitor->traceWrappers(sheet);
847 } 837 }
848 visitor->traceWrappers(m_documentStyleSheetCollection); 838 visitor->traceWrappers(m_documentStyleSheetCollection);
849 } 839 }
850 840
851 } // namespace blink 841 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698