Chromium Code Reviews| Index: Source/bindings/core/v8/ScriptSourceCode.h |
| diff --git a/Source/bindings/core/v8/ScriptSourceCode.h b/Source/bindings/core/v8/ScriptSourceCode.h |
| index b7db957876c4130195800b0e930a55b92aaf3136..6c5248001b2f99161c59af48fddb57caa27f30d7 100644 |
| --- a/Source/bindings/core/v8/ScriptSourceCode.h |
| +++ b/Source/bindings/core/v8/ScriptSourceCode.h |
| @@ -34,68 +34,52 @@ |
| #include "bindings/core/v8/ScriptStreamer.h" |
| #include "core/fetch/ResourcePtr.h" |
| #include "core/fetch/ScriptResource.h" |
| +#include "platform/heap/Handle.h" |
| #include "platform/weborigin/KURL.h" |
| -#include "wtf/PassOwnPtr.h" |
| #include "wtf/text/TextPosition.h" |
| #include "wtf/text/WTFString.h" |
| namespace blink { |
| -class ScriptSourceCode { |
| -public: |
| - ScriptSourceCode(const String& source, const KURL& url = KURL(), const TextPosition& startPosition = TextPosition::minimumPosition()) |
| - : m_source(source) |
| - , m_resource(0) |
| - , m_url(url) |
| - , m_startPosition(startPosition) |
| - { |
| - if (!m_url.isEmpty()) |
| - m_url.removeFragmentIdentifier(); |
| - } |
| +template <class R> class ResourcePtr; |
| +class ScriptResource; |
| +class ScriptSourceCode final { |
| + ALLOW_ONLY_INLINE_ALLOCATION(); |
| +public: |
| + ScriptSourceCode(); |
| // We lose the encoding information from ScriptResource. |
| // Not sure if that matters. |
| - ScriptSourceCode(ScriptResource* resource) |
| - : m_source(resource->script()) |
| - , m_resource(resource) |
| - , m_startPosition(TextPosition::minimumPosition()) |
| - { |
| - } |
| + explicit ScriptSourceCode(ScriptResource*); |
| + ScriptSourceCode(const String&, const KURL& = KURL(), const TextPosition& startPosition = TextPosition::minimumPosition()); |
| + ScriptSourceCode(PassRefPtrWillBeRawPtr<ScriptStreamer>, ScriptResource*); |
| - ScriptSourceCode(PassRefPtr<ScriptStreamer> streamer, ScriptResource* resource) |
| - : m_source(resource->script()) |
| - , m_resource(resource) |
| - , m_streamer(streamer) |
| - , m_startPosition(TextPosition::minimumPosition()) |
| - { |
| - } |
| + ~ScriptSourceCode(); |
| + void trace(Visitor*); |
| bool isEmpty() const { return m_source.isEmpty(); } |
| + bool isNull() const { return m_source.isNull(); } |
|
haraken
2015/01/22 13:38:36
Shall we add a comment about the difference?
sof
2015/01/22 14:04:12
Added.
|
| const String& source() const { return m_source; } |
| ScriptResource* resource() const { return m_resource.get(); } |
| - const KURL& url() const |
| - { |
| - if (m_url.isEmpty() && m_resource) { |
| - m_url = m_resource->response().url(); |
| - if (!m_url.isEmpty()) |
| - m_url.removeFragmentIdentifier(); |
| - } |
| - return m_url; |
| - } |
| + const KURL& url() const; |
| int startLine() const { return m_startPosition.m_line.oneBasedInt(); } |
| const TextPosition& startPosition() const { return m_startPosition; } |
| ScriptStreamer* streamer() const { return m_streamer.get(); } |
| private: |
| + void treatNullSourceAsEmpty(); |
| + |
| String m_source; |
| ResourcePtr<ScriptResource> m_resource; |
| - RefPtr<ScriptStreamer> m_streamer; |
| + RefPtrWillBeMember<ScriptStreamer> m_streamer; |
| mutable KURL m_url; |
| TextPosition m_startPosition; |
| }; |
| } // namespace blink |
| +WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::ScriptSourceCode); |
| + |
| #endif // ScriptSourceCode_h |