Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / inspector / ScriptDebugListener.h
1 /*
2  * Copyright (C) 2008 Apple Inc. All rights reserved.
3  * Copyright (C) 2010 Google Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1.  Redistributions of source code must retain the above copyright
10  *     notice, this list of conditions and the following disclaimer.
11  * 2.  Redistributions in binary form must reproduce the above copyright
12  *     notice, this list of conditions and the following disclaimer in the
13  *     documentation and/or other materials provided with the distribution.
14  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15  *     its contributors may be used to endorse or promote products derived
16  *     from this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 #ifndef ScriptDebugListener_h
31 #define ScriptDebugListener_h
32
33
34 #include "bindings/core/v8/ScriptState.h"
35 #include "wtf/Forward.h"
36 #include "wtf/Vector.h"
37 #include "wtf/text/WTFString.h"
38
39 namespace blink {
40
41 class ExecutionContext;
42 class ScriptValue;
43
44 enum CompileResult { CompileSuccess, CompileError };
45
46 class ScriptDebugListener {
47 public:
48     class Script {
49     public:
50         Script()
51             : startLine(0)
52             , startColumn(0)
53             , endLine(0)
54             , endColumn(0)
55             , isContentScript(false)
56         {
57         }
58
59         String url;
60         String sourceURL;
61         String sourceMappingURL;
62         String source;
63         int startLine;
64         int startColumn;
65         int endLine;
66         int endColumn;
67         bool isContentScript;
68     };
69
70     enum SkipPauseRequest {
71         NoSkip,
72         Continue,
73         StepInto,
74         StepOut
75     };
76
77     virtual ~ScriptDebugListener() { }
78
79     virtual void didParseSource(const String& scriptId, const Script&, CompileResult) = 0;
80     virtual SkipPauseRequest didPause(ScriptState*, const ScriptValue& callFrames, const ScriptValue& exception, const Vector<String>& hitBreakpoints) = 0;
81     virtual void didContinue() = 0;
82     virtual bool v8AsyncTaskEventsEnabled() const = 0;
83     virtual void didReceiveV8AsyncTaskEvent(ExecutionContext*, const String& eventType, const String& eventName, int id) = 0;
84     virtual bool v8PromiseEventsEnabled() const = 0;
85     virtual void didReceiveV8PromiseEvent(ScriptState*, v8::Handle<v8::Object> promise, v8::Handle<v8::Value> parentPromise, int status) = 0;
86 };
87
88 } // namespace blink
89
90
91 #endif // ScriptDebugListener_h