Commit 7f231c95 authored by timothy@apple.com's avatar timothy@apple.com

Adds a Breakpoint object and basic add/remove functions on

BreakpointsSidebarPane that call the InspectorController to
add/remove the breakpoint.

Reviewed by Kevin McCullough.

* page/inspector/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get enabled): Return _enabled.
(WebInspector.Breakpoint.prototype.set enabled): Set _enabled and
dispatch the enabled/disabled event to listeners.
* page/inspector/BreakpointsSidebarPane.js:
(WebInspector.BreakpointsSidebarPane): Add a breakpoints array.
(WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
Adds the breakpoint to the breakpoints array. Registers for the disabled
and enabled event types. Call InspectorController.addBreakpoint if attached.
(WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
Removes the breakpoint from the breakpoints array. Deregisters for the disabled
and enabled event types. Call InspectorController.removeBreakpoint if attached.
(WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
Call InspectorController.addBreakpoint or InspectorController.removeBreakpoint
depending on the enabled state of the breakpoint.
* WebCore.vcproj/WebCore.vcproj: Add new files.
* page/inspector/WebKit.qrc: Ditto.
* page/inspector/inspector.html: Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 70545d68
2008-05-13 Timothy Hatcher <timothy@apple.com>
Adds a Breakpoint object and basic add/remove functions on
BreakpointsSidebarPane that call the InspectorController to
add/remove the breakpoint.
Reviewed by Kevin McCullough.
* page/inspector/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get enabled): Return _enabled.
(WebInspector.Breakpoint.prototype.set enabled): Set _enabled and
dispatch the enabled/disabled event to listeners.
* page/inspector/BreakpointsSidebarPane.js:
(WebInspector.BreakpointsSidebarPane): Add a breakpoints array.
(WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
Adds the breakpoint to the breakpoints array. Registers for the disabled
and enabled event types. Call InspectorController.addBreakpoint if attached.
(WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
Removes the breakpoint from the breakpoints array. Deregisters for the disabled
and enabled event types. Call InspectorController.removeBreakpoint if attached.
(WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
Call InspectorController.addBreakpoint or InspectorController.removeBreakpoint
depending on the enabled state of the breakpoint.
* WebCore.vcproj/WebCore.vcproj: Add new files.
* page/inspector/WebKit.qrc: Ditto.
* page/inspector/inspector.html: Ditto.
2008-05-13 Timothy Hatcher <timothy@apple.com>
Make addSourceToFrame not dependent on InspectorResource so it
......@@ -3646,6 +3646,18 @@
RelativePath="..\page\inspector\MetricsSidebarPane.js"
>
</File>
<File
RelativePath="..\page\inspector\CallStackSidebarPane.js"
>
</File>
<File
RelativePath="..\page\inspector\BreakpointsSidebarPane.js"
>
</File>
<File
RelativePath="..\page\inspector\Breakpoint.js"
>
</File>
<File
RelativePath="..\page\inspector\Panel.js"
>
......
/*
* Copyright (C) 2008 Apple 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.
*/
WebInspector.Breakpoint = function(url, line, sourceID)
{
this.url = url;
this.line = line;
this.sourceID = sourceID;
this._enabled = true;
}
WebInspector.Breakpoint.prototype = {
get enabled()
{
return this._enabled;
},
set enabled(x)
{
if (this._enabled === x)
return;
this._enabled = x;
if (this._enabled)
this.dispatchEventToListeners("enabled");
else
this.dispatchEventToListeners("disabled");
}
}
WebInspector.Breakpoint.prototype.__proto__ = WebInspector.Object.prototype;
......@@ -26,10 +26,53 @@
WebInspector.BreakpointsSidebarPane = function()
{
WebInspector.SidebarPane.call(this, WebInspector.UIString("Breakpoints"));
this.breakpoints = [];
}
WebInspector.BreakpointsSidebarPane.prototype = {
addBreakpoint: function(breakpoint)
{
this.breakpoints.push(breakpoint);
breakpoint.addEventListener("enabled", this._breakpointEnableChanged, this);
breakpoint.addEventListener("disabled", this._breakpointEnableChanged, this);
// FIXME: add to the breakpoints UI.
if (!InspectorController.debuggerAttached() || !breakpoint.sourceID)
return;
InspectorController.addBreakpoint(breakpoint.sourceID, breakpoint.line);
},
removeBreakpoint: function(breakpoint)
{
this.breakpoints.remove(breakpoint);
breakpoint.removeEventListener("enabled", null, this);
breakpoint.removeEventListener("disabled", null, this);
// FIXME: remove from the breakpoints UI.
if (!InspectorController.debuggerAttached() || !breakpoint.sourceID)
return;
InspectorController.removeBreakpoint(breakpoint.sourceID, breakpoint.line);
},
_breakpointEnableChanged: function(event)
{
var breakpoint = event.target;
// FIXME: change the breakpoint checkbox state in the UI.
if (!InspectorController.debuggerAttached() || !breakpoint.sourceID)
return;
if (breakpoint.enabled)
InspectorController.addBreakpoint(breakpoint.sourceID, breakpoint.line);
else
InspectorController.removeBreakpoint(breakpoint.sourceID, breakpoint.line);
}
}
WebInspector.BreakpointsSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/webkit/inspector">
<file>Breakpoint.js</file>
<file>BreakpointsSidebarPane.js</file>
<file>CallStackSidebarPane.js</file>
<file>Console.js</file>
......
......@@ -40,6 +40,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<script type="text/javascript" src="Resource.js"></script>
<script type="text/javascript" src="ResourceCategory.js"></script>
<script type="text/javascript" src="Database.js"></script>
<script type="text/javascript" src="Breakpoint.js"></script>
<script type="text/javascript" src="SidebarPane.js"></script>
<script type="text/javascript" src="SidebarTreeElement.js"></script>
<script type="text/javascript" src="PropertiesSection.js"></script>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment