Commit 4b8c58f4 authored by Nate Chapin's avatar Nate Chapin Committed by Commit Bot

Cleanup DocumentXSLT construction

Change-Id: If76acf50bb70df341c88164961912b74b0c3bb31
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2341818Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Nate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795718}
parent 4a3d760e
......@@ -1818,10 +1818,8 @@ void DocumentLoader::CommitNavigation() {
document->SetBaseURLOverride(archive_->MainResource()->Url());
}
if (commit_reason_ == CommitReason::kXSLT) {
DocumentXSLT::From(*document).SetTransformSourceDocument(
previous_window->document());
}
if (commit_reason_ == CommitReason::kXSLT)
DocumentXSLT::SetHasTransformSource(*document);
DidInstallNewDocument(document);
......
......@@ -67,7 +67,7 @@ class DOMContentLoadedListener final
};
DocumentXSLT::DocumentXSLT(Document& document)
: Supplement<Document>(document), transform_source_document_(nullptr) {}
: Supplement<Document>(document) {}
void DocumentXSLT::ApplyXSLTransform(Document& document,
ProcessingInstruction* pi) {
......@@ -154,17 +154,13 @@ bool DocumentXSLT::HasTransformSourceDocument(Document& document) {
return Supplement<Document>::From<DocumentXSLT>(document);
}
DocumentXSLT& DocumentXSLT::From(Document& document) {
DocumentXSLT* supplement = Supplement<Document>::From<DocumentXSLT>(document);
if (!supplement) {
supplement = MakeGarbageCollected<DocumentXSLT>(document);
Supplement<Document>::ProvideTo(document, supplement);
}
return *supplement;
void DocumentXSLT::SetHasTransformSource(Document& document) {
DCHECK(!HasTransformSourceDocument(document));
Supplement<Document>::ProvideTo(document,
MakeGarbageCollected<DocumentXSLT>(document));
}
void DocumentXSLT::Trace(Visitor* visitor) const {
visitor->Trace(transform_source_document_);
Supplement<Document>::Trace(visitor);
}
......
......@@ -20,16 +20,7 @@ class DocumentXSLT final : public GarbageCollected<DocumentXSLT>,
public:
static const char kSupplementName[];
Document* TransformSourceDocument() {
return transform_source_document_.Get();
}
void SetTransformSourceDocument(Document* document) {
DCHECK(document);
transform_source_document_ = document;
}
static DocumentXSLT& From(Document&);
static void SetHasTransformSource(Document&);
// The following static methods don't use any instance of DocumentXSLT.
// They are just using DocumentXSLT namespace.
......@@ -46,7 +37,6 @@ class DocumentXSLT final : public GarbageCollected<DocumentXSLT>,
void Trace(Visitor*) const override;
private:
Member<Document> transform_source_document_;
DISALLOW_COPY_AND_ASSIGN(DocumentXSLT);
};
......
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