Commit f2875ba4 authored by Nate Chapin's avatar Nate Chapin Committed by Commit Bot

Revert "Set SVGExternalDocumentCache::Entry::document_ eagerly in NotifyFinished()"

This reverts commit 590a8d43.

Reason for revert: Suspect cause of inspector-protocol/emulation/set-vision-deficiency.js failures: https://test-results.appspot.com/data/layout_results/linux-bfcache-rel/8184/blink_web_tests/layout-test-results/results.html

Original change's description:
> Set SVGExternalDocumentCache::Entry::document_ eagerly in NotifyFinished()
> 
> Currently, we lazily initialize document the first time it is requested
> *and* all of the data is loaded (https://crbug.com/1107442 fixed a case
> where we would incorrectly initialize the document by creating it before
> all of the data had been received).
> 
> It's much clearer to just initialize the document when all of the data
> is received, and have GetDocument() be a simple getter.
> 
> Change-Id: I830dca5cc953ca8467fd936f5c783db21cfce051
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2316415
> Commit-Queue: Nate Chapin <japhet@chromium.org>
> Reviewed-by: Fredrik Söderquist <fs@opera.com>
> Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#804325}

TBR=fs@opera.com,japhet@chromium.org,kouhei@chromium.org

Change-Id: Ib838f8e42475020ceb83f8aa841d1ad077d705bd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2393159Reviewed-by: default avatarNate Chapin <japhet@chromium.org>
Commit-Queue: Nate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#804461}
parent 664df0af
...@@ -58,22 +58,23 @@ void SVGExternalDocumentCache::Entry::AddClient(Client* client) { ...@@ -58,22 +58,23 @@ void SVGExternalDocumentCache::Entry::AddClient(Client* client) {
void SVGExternalDocumentCache::Entry::NotifyFinished(Resource* resource) { void SVGExternalDocumentCache::Entry::NotifyFinished(Resource* resource) {
DCHECK_EQ(GetResource(), resource); DCHECK_EQ(GetResource(), resource);
DCHECK(!document_); for (auto client : clients_) {
if (client)
client->NotifyFinished(GetDocument());
}
}
const TextResource* text_resource = To<TextResource>(resource); Document* SVGExternalDocumentCache::Entry::GetDocument() {
if (text_resource->HasData() && const TextResource* resource = To<TextResource>(GetResource());
MimeTypeAllowed(text_resource->GetResponse())) { if (!document_ && resource->IsLoaded() && resource->HasData() &&
MimeTypeAllowed(resource->GetResponse())) {
document_ = XMLDocument::CreateSVG( document_ = XMLDocument::CreateSVG(
DocumentInit::Create() DocumentInit::Create()
.WithURL(text_resource->GetResponse().CurrentRequestUrl()) .WithURL(resource->GetResponse().CurrentRequestUrl())
.WithExecutionContext(context_.Get())); .WithExecutionContext(context_.Get()));
document_->SetContent(text_resource->DecodedText()); document_->SetContent(resource->DecodedText());
}
for (auto client : clients_) {
if (client)
client->NotifyFinished(GetDocument());
} }
clients_.clear(); return document_.Get();
} }
void SVGExternalDocumentCache::Entry::Trace(Visitor* visitor) const { void SVGExternalDocumentCache::Entry::Trace(Visitor* visitor) const {
......
...@@ -54,7 +54,7 @@ class CORE_EXPORT SVGExternalDocumentCache ...@@ -54,7 +54,7 @@ class CORE_EXPORT SVGExternalDocumentCache
explicit Entry(ExecutionContext* context) : context_(context) {} explicit Entry(ExecutionContext* context) : context_(context) {}
~Entry() override = default; ~Entry() override = default;
void Trace(Visitor*) const override; void Trace(Visitor*) const override;
Document* GetDocument() { return document_.Get(); } Document* GetDocument();
const KURL& Url() const { return GetResource()->Url(); } const KURL& Url() const { return GetResource()->Url(); }
private: private:
......
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