Chromium Code Reviews| 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 27% |
| copy from third_party/WebKit/Source/core/dom/PendingScript.h |
| copy to third_party/WebKit/Source/core/dom/ClassicPendingScript.h |
| index 0be3dcfaacfa6df6aabdf69964b4fca89ff747e7..7687d35947b21a5255f83aef099f40bfb176156a 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 "platform/wtf/Noncopyable.h" |
| -#include "platform/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,60 +20,51 @@ 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>, |
| + |
| +class CORE_EXPORT ClassicPendingScript final |
|
haraken
2017/04/13 01:03:58
Add a class-level comment and explain what Classic
hiroshige
2017/04/13 17:08:31
Done.
|
| + : public PendingScript, |
| public ResourceOwner<ScriptResource>, |
| public MemoryCoordinatorClient { |
| - USING_GARBAGE_COLLECTED_MIXIN(PendingScript); |
| - USING_PRE_FINALIZER(PendingScript, Dispose); |
| - WTF_MAKE_NONCOPYABLE(PendingScript); |
| + 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*); |
| - |
| - ~PendingScript() override; |
| - |
| - TextPosition StartingPosition() const { return starting_position_; } |
| - 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 parser_blocking_load_start_time_; |
| - } |
| + static ClassicPendingScript* CreateForTesting(ScriptResource*); |
| - void WatchForLoad(PendingScriptClient*); |
| - void StopWatchingForLoad(); |
| - |
| - ScriptElementBase* GetElement() const; |
| - |
| - DECLARE_TRACE(); |
| - |
| - ClassicScript* GetSource(const KURL& document_url, |
| - bool& error_occurred) const; |
| + ~ClassicPendingScript() override; |
| void SetStreamer(ScriptStreamer*); |
| void StreamingFinished(); |
| - bool IsReady() const; |
| - bool ErrorOccurred() const; |
| + DECLARE_TRACE(); |
| - void StartStreamingIfPossible(Document*, ScriptStreamer::Type); |
| - void Dispose(); |
| + blink::ScriptType GetScriptType() const override { |
| + return blink::ScriptType::kClassic; |
| + } |
| + |
| + ClassicScript* GetSource(const KURL& document_url, |
| + bool& error_occurred) const override; |
| + bool IsReady() const override; |
| + KURL Url() const override; |
| + bool IsExternal() const override { return GetResource(); } |
| + bool ErrorOccurred() const override; |
| + bool WasCanceled() const override; |
| + void StartStreamingIfPossible(Document*, ScriptStreamer::Type) override; |
| + void RemoveFromMemoryCache() override; |
| + void DisposeInternal() override; |
| private: |
| - PendingScript(ScriptElementBase*, |
| - ScriptResource*, |
| - const TextPosition&, |
| - bool is_for_testing = false); |
| - PendingScript() = delete; |
| + ClassicPendingScript(ScriptElementBase*, |
| + ScriptResource*, |
| + const TextPosition&, |
| + bool is_for_testing = false); |
| + ClassicPendingScript() = delete; |
| - void CheckState() const; |
| + void CheckState() const override; |
| // ScriptResourceClient |
| void NotifyFinished(Resource*) override; |
| @@ -124,19 +74,9 @@ class CORE_EXPORT PendingScript final |
| // MemoryCoordinatorClient |
| void OnPurgeMemory() override; |
| - bool watching_for_load_; |
| - |
| - // |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> element_; |
| - |
| - TextPosition starting_position_; // Only used for inline script tags. |
| bool integrity_failure_; |
| - double parser_blocking_load_start_time_; |
| Member<ScriptStreamer> streamer_; |
| - Member<PendingScriptClient> 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. |