Commit 110425bc authored by haraken's avatar haraken Committed by Commit bot

Use a new Supplement constructor for Supplement<Document>

We're deprecating a default constructor of Supplement<>.
This CL moves Supplement<Document> to use a constructor that takes a Document parameter.

This enables to remove a couple of unnecessary m_document's.

BUG=610176
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2617103002
Cr-Commit-Position: refs/heads/master@{#441911}
parent 78b9be0c
......@@ -31,12 +31,12 @@ void CSSTiming::recordUpdateDuration(double seconds) {
}
DEFINE_TRACE(CSSTiming) {
visitor->trace(m_document);
visitor->trace(m_paintTiming);
Supplement<Document>::trace(visitor);
}
CSSTiming::CSSTiming(Document& document)
: m_document(document), m_paintTiming(PaintTiming::from(document)) {}
: Supplement<Document>(document),
m_paintTiming(PaintTiming::from(document)) {}
} // namespace blink
......@@ -40,7 +40,6 @@ class CSSTiming : public GarbageCollectedFinalized<CSSTiming>,
double m_parseTimeBeforeFCP = 0;
double m_updateTimeBeforeFCP = 0;
Member<Document> m_document;
Member<PaintTiming> m_paintTiming;
};
......
......@@ -113,7 +113,8 @@ DEFINE_TRACE(LoadFontPromiseResolver) {
}
FontFaceSet::FontFaceSet(Document& document)
: SuspendableObject(&document),
: Supplement<Document>(document),
SuspendableObject(&document),
m_shouldFireLoadingEvent(false),
m_isLoading(false),
m_ready(
......
......@@ -155,7 +155,7 @@ class FontFaceSet final : public EventTargetWithInlineData,
bool m_recorded;
};
FontFaceSet(Document&);
explicit FontFaceSet(Document&);
bool inActiveDocumentContext() const;
void addToLoadingFonts(FontFace*);
......
......@@ -46,7 +46,7 @@ namespace blink {
static const char kSupplementName[] = "CSSSelectorWatch";
CSSSelectorWatch::CSSSelectorWatch(Document& document)
: m_document(document),
: Supplement<Document>(document),
m_callbackSelectorChangeTimer(
TaskRunnerHelper::get(TaskType::UnspecedTimer, &document),
this,
......@@ -76,13 +76,13 @@ void CSSSelectorWatch::callbackSelectorChangeTimerFired(TimerBase*) {
m_callbackSelectorChangeTimer.startOneShot(0, BLINK_FROM_HERE);
return;
}
if (document().frame()) {
if (host()->frame()) {
Vector<String> addedSelectors;
Vector<String> removedSelectors;
copyToVector(m_addedSelectors, addedSelectors);
copyToVector(m_removedSelectors, removedSelectors);
document().frame()->loader().client()->selectorMatchChanged(
addedSelectors, removedSelectors);
host()->frame()->loader().client()->selectorMatchChanged(addedSelectors,
removedSelectors);
}
m_addedSelectors.clear();
m_removedSelectors.clear();
......@@ -164,12 +164,11 @@ void CSSSelectorWatch::watchCSSSelectors(const Vector<String>& selectors) {
m_watchedCallbackSelectors.push_back(
StyleRule::create(std::move(selectorList), callbackPropertySet));
}
document().styleEngine().watchedSelectorsChanged();
host()->styleEngine().watchedSelectorsChanged();
}
DEFINE_TRACE(CSSSelectorWatch) {
visitor->trace(m_watchedCallbackSelectors);
visitor->trace(m_document);
Supplement<Document>::trace(visitor);
}
......
......@@ -66,9 +66,6 @@ class CORE_EXPORT CSSSelectorWatch final
private:
explicit CSSSelectorWatch(Document&);
void callbackSelectorChangeTimerFired(TimerBase*);
Document& document() const { return *m_document; }
Member<Document> m_document;
HeapVector<Member<StyleRule>> m_watchedCallbackSelectors;
......
......@@ -65,16 +65,15 @@ void DocumentParserTiming::recordParserBlockedOnScriptExecutionDuration(
}
DEFINE_TRACE(DocumentParserTiming) {
visitor->trace(m_document);
Supplement<Document>::trace(visitor);
}
DocumentParserTiming::DocumentParserTiming(Document& document)
: m_document(document) {}
: Supplement<Document>(document) {}
void DocumentParserTiming::notifyDocumentParserTimingChanged() {
if (m_document->loader())
m_document->loader()->didChangePerformanceTiming();
if (host()->loader())
host()->loader()->didChangePerformanceTiming();
}
} // namespace blink
......@@ -108,8 +108,6 @@ class DocumentParserTiming final
double m_parserBlockedOnScriptExecutionDuration = 0.0;
double m_parserBlockedOnScriptExecutionFromDocumentWriteDuration = 0.0;
bool m_parserDetached = false;
Member<Document> m_document;
};
} // namespace blink
......
......@@ -383,7 +383,9 @@ Element* Fullscreen::fullscreenElementForBindingFrom(TreeScope& scope) {
}
Fullscreen::Fullscreen(Document& document)
: ContextLifecycleObserver(&document), m_fullScreenLayoutObject(nullptr) {
: Supplement<Document>(document),
ContextLifecycleObserver(&document),
m_fullScreenLayoutObject(nullptr) {
document.setHasFullscreenSupplement();
}
......
......@@ -36,7 +36,7 @@ FirstMeaningfulPaintDetector::FirstMeaningfulPaintDetector(
&FirstMeaningfulPaintDetector::networkStableTimerFired) {}
Document* FirstMeaningfulPaintDetector::document() {
return m_paintTiming->document();
return m_paintTiming->host();
}
// Computes "layout significance" (http://goo.gl/rytlPL) of a layout operation.
......
......@@ -72,9 +72,8 @@ void PaintTiming::markFirstMeaningfulPaintCandidate() {
if (m_firstMeaningfulPaintCandidate)
return;
m_firstMeaningfulPaintCandidate = monotonicallyIncreasingTime();
if (m_document->frame() && m_document->frame()->view() &&
!m_document->frame()->view()->parent()) {
m_document->frame()->frameScheduler()->onFirstMeaningfulPaint();
if (frame() && frame()->view() && !frame()->view()->parent()) {
frame()->frameScheduler()->onFirstMeaningfulPaint();
}
}
......@@ -100,22 +99,21 @@ void PaintTiming::notifyPaint(bool isFirstPaint,
}
DEFINE_TRACE(PaintTiming) {
visitor->trace(m_document);
visitor->trace(m_fmpDetector);
Supplement<Document>::trace(visitor);
}
PaintTiming::PaintTiming(Document& document)
: m_document(document),
: Supplement<Document>(document),
m_fmpDetector(new FirstMeaningfulPaintDetector(this)) {}
LocalFrame* PaintTiming::frame() const {
return m_document ? m_document->frame() : nullptr;
return host()->frame();
}
void PaintTiming::notifyPaintTimingChanged() {
if (m_document && m_document->loader())
m_document->loader()->didChangePerformanceTiming();
if (host()->loader())
host()->loader()->didChangePerformanceTiming();
}
void PaintTiming::setFirstPaint(double stamp) {
......
......@@ -78,7 +78,6 @@ class CORE_EXPORT PaintTiming final
return m_firstMeaningfulPaintCandidate;
}
Document* document() { return m_document.get(); }
FirstMeaningfulPaintDetector& firstMeaningfulPaintDetector() {
return *m_fmpDetector;
}
......@@ -109,7 +108,6 @@ class CORE_EXPORT PaintTiming final
double m_firstMeaningfulPaint = 0.0;
double m_firstMeaningfulPaintCandidate = 0.0;
Member<Document> m_document;
Member<FirstMeaningfulPaintDetector> m_fmpDetector;
};
......
......@@ -31,21 +31,21 @@
namespace blink {
DocumentXPathEvaluator::DocumentXPathEvaluator() {}
DocumentXPathEvaluator::DocumentXPathEvaluator(Document& document)
: Supplement<Document>(document) {}
DocumentXPathEvaluator& DocumentXPathEvaluator::from(
Supplementable<Document>& document) {
DocumentXPathEvaluator& DocumentXPathEvaluator::from(Document& document) {
DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(
Supplement<Document>::from(document, supplementName()));
if (!cache) {
cache = new DocumentXPathEvaluator;
cache = new DocumentXPathEvaluator(document);
Supplement<Document>::provideTo(document, supplementName(), cache);
}
return *cache;
}
XPathExpression* DocumentXPathEvaluator::createExpression(
Supplementable<Document>& document,
Document& document,
const String& expression,
XPathNSResolver* resolver,
ExceptionState& exceptionState) {
......@@ -56,23 +56,21 @@ XPathExpression* DocumentXPathEvaluator::createExpression(
exceptionState);
}
XPathNSResolver* DocumentXPathEvaluator::createNSResolver(
Supplementable<Document>& document,
Node* nodeResolver) {
XPathNSResolver* DocumentXPathEvaluator::createNSResolver(Document& document,
Node* nodeResolver) {
DocumentXPathEvaluator& suplement = from(document);
if (!suplement.m_xpathEvaluator)
suplement.m_xpathEvaluator = XPathEvaluator::create();
return suplement.m_xpathEvaluator->createNSResolver(nodeResolver);
}
XPathResult* DocumentXPathEvaluator::evaluate(
Supplementable<Document>& document,
const String& expression,
Node* contextNode,
XPathNSResolver* resolver,
unsigned short type,
const ScriptValue&,
ExceptionState& exceptionState) {
XPathResult* DocumentXPathEvaluator::evaluate(Document& document,
const String& expression,
Node* contextNode,
XPathNSResolver* resolver,
unsigned short type,
const ScriptValue&,
ExceptionState& exceptionState) {
DocumentXPathEvaluator& suplement = from(document);
if (!suplement.m_xpathEvaluator)
suplement.m_xpathEvaluator = XPathEvaluator::create();
......
......@@ -42,15 +42,14 @@ class DocumentXPathEvaluator final
USING_GARBAGE_COLLECTED_MIXIN(DocumentXPathEvaluator);
public:
static DocumentXPathEvaluator& from(Supplementable<Document>&);
static DocumentXPathEvaluator& from(Document&);
static XPathExpression* createExpression(Supplementable<Document>&,
static XPathExpression* createExpression(Document&,
const String& expression,
XPathNSResolver*,
ExceptionState&);
static XPathNSResolver* createNSResolver(Supplementable<Document>&,
Node* nodeResolver);
static XPathResult* evaluate(Supplementable<Document>&,
static XPathNSResolver* createNSResolver(Document&, Node* nodeResolver);
static XPathResult* evaluate(Document&,
const String& expression,
Node* contextNode,
XPathNSResolver*,
......@@ -61,7 +60,7 @@ class DocumentXPathEvaluator final
DECLARE_VIRTUAL_TRACE();
private:
DocumentXPathEvaluator();
explicit DocumentXPathEvaluator(Document&);
static const char* supplementName() { return "DocumentXPathEvaluator"; }
......
......@@ -84,7 +84,8 @@ class DOMContentLoadedListener final
Member<ProcessingInstruction> m_processingInstruction;
};
DocumentXSLT::DocumentXSLT() : m_transformSourceDocument(nullptr) {}
DocumentXSLT::DocumentXSLT(Document& document)
: Supplement<Document>(document), m_transformSourceDocument(nullptr) {}
void DocumentXSLT::applyXSLTransform(Document& document,
ProcessingInstruction* pi) {
......@@ -179,11 +180,11 @@ bool DocumentXSLT::hasTransformSourceDocument(Document& document) {
Supplement<Document>::from(document, supplementName()));
}
DocumentXSLT& DocumentXSLT::from(Supplementable<Document>& document) {
DocumentXSLT& DocumentXSLT::from(Document& document) {
DocumentXSLT* supplement = static_cast<DocumentXSLT*>(
Supplement<Document>::from(document, supplementName()));
if (!supplement) {
supplement = new DocumentXSLT;
supplement = new DocumentXSLT(document);
Supplement<Document>::provideTo(document, supplementName(), supplement);
}
return *supplement;
......
......@@ -29,7 +29,7 @@ class DocumentXSLT final : public GarbageCollected<DocumentXSLT>,
m_transformSourceDocument = document;
}
static DocumentXSLT& from(Supplementable<Document>&);
static DocumentXSLT& from(Document&);
static const char* supplementName();
// The following static methods don't use any instance of DocumentXSLT.
......@@ -46,7 +46,7 @@ class DocumentXSLT final : public GarbageCollected<DocumentXSLT>,
DECLARE_VIRTUAL_TRACE();
private:
DocumentXSLT();
explicit DocumentXSLT(Document&);
Member<Document> m_transformSourceDocument;
};
......
......@@ -12,12 +12,11 @@
namespace blink {
DOMWindowStorageController::DOMWindowStorageController(Document& document)
: m_document(document) {
: Supplement<Document>(document) {
document.domWindow()->registerEventListenerObserver(this);
}
DEFINE_TRACE(DOMWindowStorageController) {
visitor->trace(m_document);
Supplement<Document>::trace(visitor);
}
......
......@@ -32,13 +32,8 @@ class MODULES_EXPORT DOMWindowStorageController final
void didRemoveEventListener(LocalDOMWindow*, const AtomicString&) override {}
void didRemoveAllEventListeners(LocalDOMWindow*) override {}
protected:
explicit DOMWindowStorageController(Document&);
private:
Document& document() const { return *m_document; }
Member<Document> m_document;
explicit DOMWindowStorageController(Document&);
};
} // namespace blink
......
......@@ -84,6 +84,9 @@ class ContextFeaturesCache final
DEFINE_INLINE_VIRTUAL_TRACE() { Supplement<Document>::trace(visitor); }
private:
explicit ContextFeaturesCache(Document& document)
: Supplement<Document>(document) {}
String m_domain;
Entry m_entries[ContextFeatures::FeatureTypeSize];
};
......@@ -96,7 +99,7 @@ ContextFeaturesCache& ContextFeaturesCache::from(Document& document) {
ContextFeaturesCache* cache = static_cast<ContextFeaturesCache*>(
Supplement<Document>::from(document, supplementName()));
if (!cache) {
cache = new ContextFeaturesCache();
cache = new ContextFeaturesCache(document);
Supplement<Document>::provideTo(document, supplementName(), cache);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment