 Chromium Code Reviews
 Chromium Code Reviews Issue 2846363003:
  Introduce ClassicPendingScript::is_external_ explicitly  (Closed)
    
  
    Issue 2846363003:
  Introduce ClassicPendingScript::is_external_ explicitly  (Closed) 
  | Index: third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp | 
| diff --git a/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp b/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp | 
| index 4ab6c71f21acde2a6f8127d44d7721042da053c8..42646546f853c61723c30e4710dc3622c58bc275 100644 | 
| --- a/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp | 
| +++ b/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp | 
| @@ -18,6 +18,7 @@ namespace blink { | 
| ClassicPendingScript* ClassicPendingScript::Create(ScriptElementBase* element, | 
| ScriptResource* resource) { | 
| + CHECK(resource); | 
| return new ClassicPendingScript(element, resource, TextPosition()); | 
| } | 
| @@ -31,9 +32,12 @@ ClassicPendingScript::ClassicPendingScript( | 
| ScriptElementBase* element, | 
| ScriptResource* resource, | 
| const TextPosition& starting_position) | 
| - : PendingScript(element, starting_position), integrity_failure_(false) { | 
| - CheckState(); | 
| + : PendingScript(element, starting_position), | 
| + is_external_(resource), | 
| + integrity_failure_(false) { | 
| + CHECK(GetElement()); | 
| SetResource(resource); | 
| + CheckState(); | 
| MemoryCoordinator::Instance().RegisterClient(this); | 
| } | 
| @@ -43,6 +47,7 @@ NOINLINE void ClassicPendingScript::CheckState() const { | 
| // TODO(hiroshige): Turn these CHECK()s into DCHECK() before going to beta. | 
| CHECK(!prefinalizer_called_); | 
| CHECK(GetElement()); | 
| + CHECK_EQ(is_external_, !!GetResource()); | 
| CHECK(GetResource() || !streamer_); | 
| CHECK(!streamer_ || streamer_->GetResource() == GetResource()); | 
| } | 
| @@ -169,7 +174,7 @@ ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url, | 
| CheckState(); | 
| error_occurred = this->ErrorOccurred(); | 
| - if (GetResource()) { | 
| + if (is_external_) { | 
| 
sof
2017/04/29 15:01:10
Why is this (and all the other is_external_ checks
 | 
| DCHECK(GetResource()->IsLoaded()); | 
| if (streamer_ && !streamer_->StreamingSuppressed()) | 
| return ClassicScript::Create(ScriptSourceCode(streamer_, GetResource())); | 
| @@ -189,7 +194,7 @@ void ClassicPendingScript::SetStreamer(ScriptStreamer* streamer) { | 
| bool ClassicPendingScript::IsReady() const { | 
| CheckState(); | 
| - if (GetResource()) { | 
| + if (is_external_) { | 
| return GetResource()->IsLoaded() && (!streamer_ || streamer_->IsFinished()); | 
| } | 
| @@ -198,7 +203,7 @@ bool ClassicPendingScript::IsReady() const { | 
| bool ClassicPendingScript::ErrorOccurred() const { | 
| CheckState(); | 
| - if (GetResource()) | 
| + if (is_external_) | 
| return GetResource()->ErrorOccurred() || integrity_failure_; | 
| return false; |