15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2008 Apple Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2010 Google Inc. All rights reserved. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * its contributors may be used to endorse or promote products derived 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * from this software without specific prior written permission. 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef ScriptDebugListener_h 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define ScriptDebugListener_h 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "bindings/v8/ScriptState.h" 355267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "wtf/Forward.h" 365267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "wtf/Vector.h" 375267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "wtf/text/WTFString.h" 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace WebCore { 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class ScriptValue; 41e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochclass JavaScriptCallFrame; 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class ScriptDebugListener { 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) class Script { 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) public: 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) Script() 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) : startLine(0) 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) , startColumn(0) 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) , endLine(0) 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) , endColumn(0) 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) , isContentScript(false) 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) String url; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) String source; 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) String sourceMappingURL; 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int startLine; 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int startColumn; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int endLine; 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int endColumn; 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool isContentScript; 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }; 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual ~ScriptDebugListener() { } 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void didParseSource(const String& scriptId, const Script&) = 0; 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage) = 0; 705267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) virtual void didPause(ScriptState*, const ScriptValue& callFrames, const ScriptValue& exception, const Vector<String>& hitBreakpoints) = 0; 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void didContinue() = 0; 72e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 73f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) enum SkipPauseRequest { 74f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) NoSkip, 75f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) Continue, 76f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) StepInto, 77f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) StepOut 78f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) }; 79f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) 80f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) virtual SkipPauseRequest shouldSkipExceptionPause(RefPtr<JavaScriptCallFrame>& topFrame) = 0; 81f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) virtual SkipPauseRequest shouldSkipBreakpointPause(RefPtr<JavaScriptCallFrame>& topFrame) = 0; 82f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) virtual SkipPauseRequest shouldSkipStepPause(RefPtr<JavaScriptCallFrame>& topFrame) = 0; 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace WebCore 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // ScriptDebugListener_h 89