Index: third_party/WebKit/Source/core/dom/ClassicPendingScript.h |
diff --git a/third_party/WebKit/Source/core/dom/PendingScript.h b/third_party/WebKit/Source/core/dom/ClassicPendingScript.h |
similarity index 25% |
copy from third_party/WebKit/Source/core/dom/PendingScript.h |
copy to third_party/WebKit/Source/core/dom/ClassicPendingScript.h |
index c36ed8719cd5a0b9646d76a315f2c98e2a979449..ca7c9a25c9724e7cab0f078e6bb0897e867c05ca 100644 |
--- a/third_party/WebKit/Source/core/dom/PendingScript.h |
+++ b/third_party/WebKit/Source/core/dom/ClassicPendingScript.h |
@@ -1,59 +1,18 @@ |
-/* |
- * Copyright (C) 2010 Google, Inc. All Rights Reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#ifndef PendingScript_h |
-#define PendingScript_h |
- |
-#include "bindings/core/v8/ScriptStreamer.h" |
-#include "core/CoreExport.h" |
-#include "core/dom/ScriptElementBase.h" |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef ClassicPendingScript_h |
+#define ClassicPendingScript_h |
+ |
+#include "core/dom/ClassicScript.h" |
+#include "core/dom/PendingScript.h" |
#include "core/loader/resource/ScriptResource.h" |
#include "platform/MemoryCoordinator.h" |
-#include "platform/heap/Handle.h" |
#include "platform/loader/fetch/ResourceOwner.h" |
-#include "wtf/Noncopyable.h" |
-#include "wtf/text/TextPosition.h" |
namespace blink { |
-class PendingScript; |
-class ClassicScript; |
- |
-class CORE_EXPORT PendingScriptClient : public GarbageCollectedMixin { |
- public: |
- virtual ~PendingScriptClient() {} |
- |
- // Invoked when the pending script has finished loading. This could be during |
- // |watchForLoad| (if the pending script was already ready), or when the |
- // resource loads (if script streaming is not occurring), or when script |
- // streaming finishes. |
- virtual void pendingScriptFinished(PendingScript*) = 0; |
- |
- DEFINE_INLINE_VIRTUAL_TRACE() {} |
-}; |
- |
// A container for an external script which may be loaded and executed. |
// |
// TODO(kochi): The comment below is from pre-oilpan age and may not be correct |
@@ -61,59 +20,49 @@ class CORE_EXPORT PendingScriptClient : public GarbageCollectedMixin { |
// A RefPtr alone does not prevent the underlying Resource from purging its data |
// buffer. This class holds a dummy client open for its lifetime in order to |
// guarantee that the data buffer will not be purged. |
-class CORE_EXPORT PendingScript final |
- : public GarbageCollectedFinalized<PendingScript>, |
- public ResourceOwner<ScriptResource>, |
- public MemoryCoordinatorClient { |
- USING_GARBAGE_COLLECTED_MIXIN(PendingScript); |
- USING_PRE_FINALIZER(PendingScript, dispose); |
- WTF_MAKE_NONCOPYABLE(PendingScript); |
+ |
+class CORE_EXPORT ClassicPendingScript : public PendingScript, |
+ public ResourceOwner<ScriptResource>, |
+ public MemoryCoordinatorClient { |
+ USING_GARBAGE_COLLECTED_MIXIN(ClassicPendingScript); |
public: |
// For script from an external file. |
- static PendingScript* create(ScriptElementBase*, ScriptResource*); |
+ static ClassicPendingScript* create(ScriptElementBase*, ScriptResource*); |
// For inline script. |
- static PendingScript* create(ScriptElementBase*, const TextPosition&); |
+ static ClassicPendingScript* create(ScriptElementBase*, const TextPosition&); |
- static PendingScript* createForTesting(ScriptResource*); |
+ static ClassicPendingScript* createForTesting(ScriptResource*); |
- ~PendingScript() override; |
- |
- TextPosition startingPosition() const { return m_startingPosition; } |
- void markParserBlockingLoadStartTime(); |
- // Returns the time the load of this script started blocking the parser, or |
- // zero if this script hasn't yet blocked the parser, in |
- // monotonicallyIncreasingTime. |
- double parserBlockingLoadStartTime() const { |
- return m_parserBlockingLoadStartTime; |
- } |
- |
- void watchForLoad(PendingScriptClient*); |
- void stopWatchingForLoad(); |
- |
- ScriptElementBase* element() const; |
- |
- DECLARE_TRACE(); |
- |
- ClassicScript* getSource(const KURL& documentURL, bool& errorOccurred) const; |
+ ~ClassicPendingScript() override; |
void setStreamer(ScriptStreamer*); |
void streamingFinished(); |
- bool isReady() const; |
- bool errorOccurred() const; |
+ DECLARE_TRACE(); |
+ |
+ blink::ScriptType scriptType() const override { |
+ return blink::ScriptType::Classic; |
+ } |
- void startStreamingIfPossible(Document*, ScriptStreamer::Type); |
- void dispose(); |
+ ClassicScript* getSource(const KURL& documentURL, |
+ bool& errorOccurred) const override; |
+ bool isReady() const override; |
+ KURL url() const override; |
+ bool isExternal() const override { return resource(); } |
+ bool errorOccurred() const override; |
+ bool wasCanceled() const override; |
+ void startStreamingIfPossible(Document*, ScriptStreamer::Type) override; |
+ void disposeInternal() override; |
private: |
- PendingScript(ScriptElementBase*, |
- ScriptResource*, |
- const TextPosition&, |
- bool isForTesting = false); |
- PendingScript() = delete; |
+ ClassicPendingScript(ScriptElementBase*, |
+ ScriptResource*, |
+ const TextPosition&, |
+ bool isForTesting = false); |
+ ClassicPendingScript() = delete; |
- void checkState() const; |
+ void checkState() const override; |
// ScriptResourceClient |
void notifyFinished(Resource*) override; |
@@ -123,19 +72,9 @@ class CORE_EXPORT PendingScript final |
// MemoryCoordinatorClient |
void onPurgeMemory() override; |
- bool m_watchingForLoad; |
- |
- // |m_element| must points to the corresponding ScriptLoader's |
- // ScriptElementBase and thus must be non-null before dispose() is called |
- // (except for unit tests). |
- Member<ScriptElementBase> m_element; |
- |
- TextPosition m_startingPosition; // Only used for inline script tags. |
bool m_integrityFailure; |
- double m_parserBlockingLoadStartTime; |
Member<ScriptStreamer> m_streamer; |
- Member<PendingScriptClient> m_client; |
// This flag is used to skip non-null checks of |m_element| in unit |
// tests, because |m_element| can be null in unit tests. |