| 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.
|
|
|