Title: [193246] branches/safari-601-branch/Source

Diff

Modified: branches/safari-601-branch/Source/_javascript_Core/ChangeLog (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/ChangeLog	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/ChangeLog	2015-12-03 19:01:42 UTC (rev 193246)
@@ -1,5 +1,44 @@
 2015-12-02  Timothy Hatcher  <[email protected]>
 
+        Merge r190542. rdar://problem/23221163
+
+    2015-10-02  Matt Baker  <[email protected]>
+
+            Web Inspector: Add breakpoint option to ignore n times before stopping
+            https://bugs.webkit.org/show_bug.cgi?id=147664
+
+            Reviewed by Timothy Hatcher.
+
+            * debugger/Breakpoint.h:
+            (JSC::Breakpoint::Breakpoint):
+            Added ignoreCount and hitCount fields. Cleaned up initializers.
+
+            * debugger/Debugger.cpp:
+            (JSC::Debugger::hasBreakpoint):
+            If a breakpoint matches the current text position, increment breakpoint hit count and
+            compare with ignore count before testing the breakpoint condition.
+
+            * inspector/ScriptBreakpoint.h:
+            (Inspector::ScriptBreakpoint::ScriptBreakpoint):
+            Added ignoreCount field. Cleaned up initializers.
+
+            * inspector/ScriptDebugServer.cpp:
+            (Inspector::ScriptDebugServer::setBreakpoint):
+            Added ignoreCount field.
+
+            * inspector/agents/InspectorDebuggerAgent.cpp:
+            (Inspector::buildObjectForBreakpointCookie):
+            (Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
+            (Inspector::InspectorDebuggerAgent::setBreakpoint):
+            (Inspector::InspectorDebuggerAgent::continueToLocation):
+            (Inspector::InspectorDebuggerAgent::didParseSource):
+            Plumbing for ignoreCount property.
+
+            * inspector/protocol/Debugger.json:
+            Added optional ignoreCount property to BreakpointOptions object.
+
+2015-12-02  Timothy Hatcher  <[email protected]>
+
         Merge r190146. rdar://problem/23221163
 
     2015-09-22  Saam barati  <[email protected]>

Modified: branches/safari-601-branch/Source/_javascript_Core/debugger/Breakpoint.h (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/debugger/Breakpoint.h	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/debugger/Breakpoint.h	2015-12-03 19:01:42 UTC (rev 193246)
@@ -35,21 +35,16 @@
 
 struct Breakpoint : public DoublyLinkedListNode<Breakpoint> {
     Breakpoint()
-        : id(noBreakpointID)
-        , sourceID(noSourceID)
-        , line(0)
-        , column(0)
-        , autoContinue(false)
     {
     }
 
-    Breakpoint(SourceID sourceID, unsigned line, unsigned column, const String& condition, bool autoContinue)
-        : id(noBreakpointID)
-        , sourceID(sourceID)
+    Breakpoint(SourceID sourceID, unsigned line, unsigned column, const String& condition, bool autoContinue, unsigned ignoreCount)
+        : sourceID(sourceID)
         , line(line)
         , column(column)
         , condition(condition)
         , autoContinue(autoContinue)
+        , ignoreCount(ignoreCount)
     {
     }
 
@@ -60,15 +55,19 @@
         , column(other.column)
         , condition(other.condition)
         , autoContinue(other.autoContinue)
+        , ignoreCount(other.ignoreCount)
+        , hitCount(other.hitCount)
     {
     }
 
-    BreakpointID id;
-    SourceID sourceID;
-    unsigned line;
-    unsigned column;
+    BreakpointID id { noBreakpointID };
+    SourceID sourceID { noSourceID };
+    unsigned line { 0 };
+    unsigned column { 0 };
     String condition;
-    bool autoContinue;
+    bool autoContinue { false };
+    unsigned ignoreCount { 0 };
+    unsigned hitCount { 0 };
 
     static const unsigned unspecifiedColumn = UINT_MAX;
 

Modified: branches/safari-601-branch/Source/_javascript_Core/debugger/Debugger.cpp (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/debugger/Debugger.cpp	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/debugger/Debugger.cpp	2015-12-03 19:01:42 UTC (rev 193246)
@@ -480,6 +480,10 @@
     if (hitBreakpoint)
         *hitBreakpoint = *breakpoint;
 
+    breakpoint->hitCount++;
+    if (breakpoint->ignoreCount >= breakpoint->hitCount)
+        return false;
+
     if (breakpoint->condition.isEmpty())
         return true;
 

Modified: branches/safari-601-branch/Source/_javascript_Core/inspector/ScriptBreakpoint.h (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/inspector/ScriptBreakpoint.h	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/inspector/ScriptBreakpoint.h	2015-12-03 19:01:42 UTC (rev 193246)
@@ -62,28 +62,31 @@
     {
     }
 
-    ScriptBreakpoint(int lineNumber, int columnNumber, const String& condition, bool autoContinue)
+    ScriptBreakpoint(int lineNumber, int columnNumber, const String& condition, bool autoContinue, unsigned ignoreCount)
         : lineNumber(lineNumber)
         , columnNumber(columnNumber)
         , condition(condition)
         , autoContinue(autoContinue)
+        , ignoreCount(ignoreCount)
     {
     }
 
-    ScriptBreakpoint(int lineNumber, int columnNumber, const String& condition, BreakpointActions& actions, bool autoContinue)
+    ScriptBreakpoint(int lineNumber, int columnNumber, const String& condition, BreakpointActions& actions, bool autoContinue, unsigned ignoreCount)
         : lineNumber(lineNumber)
         , columnNumber(columnNumber)
         , condition(condition)
         , actions(actions)
         , autoContinue(autoContinue)
+        , ignoreCount(ignoreCount)
     {
     }
 
-    int lineNumber;
-    int columnNumber;
+    int lineNumber { 0 };
+    int columnNumber { 0 };
     String condition;
     BreakpointActions actions;
-    bool autoContinue;
+    bool autoContinue { false };
+    unsigned ignoreCount { 0 };
 };
 
 } // namespace Inspector

Modified: branches/safari-601-branch/Source/_javascript_Core/inspector/ScriptDebugServer.cpp (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/inspector/ScriptDebugServer.cpp	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/inspector/ScriptDebugServer.cpp	2015-12-03 19:01:42 UTC (rev 193246)
@@ -61,7 +61,7 @@
     if (!sourceID)
         return JSC::noBreakpointID;
 
-    JSC::Breakpoint breakpoint(sourceID, scriptBreakpoint.lineNumber, scriptBreakpoint.columnNumber, scriptBreakpoint.condition, scriptBreakpoint.autoContinue);
+    JSC::Breakpoint breakpoint(sourceID, scriptBreakpoint.lineNumber, scriptBreakpoint.columnNumber, scriptBreakpoint.condition, scriptBreakpoint.autoContinue, scriptBreakpoint.ignoreCount);
     JSC::BreakpointID id = Debugger::setBreakpoint(breakpoint, *actualLineNumber, *actualColumnNumber);
     if (id != JSC::noBreakpointID && !scriptBreakpoint.actions.isEmpty()) {
 #ifndef NDEBUG

Modified: branches/safari-601-branch/Source/_javascript_Core/inspector/agents/InspectorDebuggerAgent.cpp (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/inspector/agents/InspectorDebuggerAgent.cpp	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/inspector/agents/InspectorDebuggerAgent.cpp	2015-12-03 19:01:42 UTC (rev 193246)
@@ -189,7 +189,7 @@
         breakProgram(DebuggerFrontendDispatcher::Reason::Assert, buildAssertPauseReason(message));
 }
 
-static Ref<InspectorObject> buildObjectForBreakpointCookie(const String& url, int lineNumber, int columnNumber, const String& condition, RefPtr<InspectorArray>& actions, bool isRegex, bool autoContinue)
+static Ref<InspectorObject> buildObjectForBreakpointCookie(const String& url, int lineNumber, int columnNumber, const String& condition, RefPtr<InspectorArray>& actions, bool isRegex, bool autoContinue, unsigned ignoreCount)
 {
     Ref<InspectorObject> breakpointObject = InspectorObject::create();
     breakpointObject->setString(ASCIILiteral("url"), url);
@@ -198,6 +198,7 @@
     breakpointObject->setString(ASCIILiteral("condition"), condition);
     breakpointObject->setBoolean(ASCIILiteral("isRegex"), isRegex);
     breakpointObject->setBoolean(ASCIILiteral("autoContinue"), autoContinue);
+    breakpointObject->setInteger(ASCIILiteral("ignoreCount"), ignoreCount);
 
     if (actions)
         breakpointObject->setArray(ASCIILiteral("actions"), actions);
@@ -300,20 +301,22 @@
 
     String condition = emptyString();
     bool autoContinue = false;
+    unsigned ignoreCount = 0;
     RefPtr<InspectorArray> actions;
     if (options) {
         options->getString(ASCIILiteral("condition"), condition);
         options->getBoolean(ASCIILiteral("autoContinue"), autoContinue);
         options->getArray(ASCIILiteral("actions"), actions);
+        options->getInteger(ASCIILiteral("ignoreCount"), ignoreCount);
     }
 
     BreakpointActions breakpointActions;
     if (!breakpointActionsFromProtocol(errorString, actions, &breakpointActions))
         return;
 
-    m_javaScriptBreakpoints.set(breakpointIdentifier, buildObjectForBreakpointCookie(url, lineNumber, columnNumber, condition, actions, isRegex, autoContinue));
+    m_javaScriptBreakpoints.set(breakpointIdentifier, buildObjectForBreakpointCookie(url, lineNumber, columnNumber, condition, actions, isRegex, autoContinue, ignoreCount));
 
-    ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition, breakpointActions, autoContinue);
+    ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition, breakpointActions, autoContinue, ignoreCount);
     for (ScriptsMap::iterator it = m_scripts.begin(); it != m_scripts.end(); ++it) {
         String scriptURL = !it->value.sourceURL.isEmpty() ? it->value.sourceURL : it->value.url;
         if (!matches(scriptURL, url, isRegex))
@@ -351,11 +354,13 @@
 
     String condition = emptyString();
     bool autoContinue = false;
+    unsigned ignoreCount = 0;
     RefPtr<InspectorArray> actions;
     if (options) {
         options->getString(ASCIILiteral("condition"), condition);
         options->getBoolean(ASCIILiteral("autoContinue"), autoContinue);
         options->getArray(ASCIILiteral("actions"), actions);
+        options->getInteger(ASCIILiteral("ignoreCount"), ignoreCount);
     }
 
     BreakpointActions breakpointActions;
@@ -368,7 +373,7 @@
         return;
     }
 
-    ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition, breakpointActions, autoContinue);
+    ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition, breakpointActions, autoContinue, ignoreCount);
     actualLocation = resolveBreakpoint(breakpointIdentifier, sourceID, breakpoint);
     if (!actualLocation) {
         errorString = ASCIILiteral("Could not resolve breakpoint");
@@ -406,7 +411,7 @@
     if (!parseLocation(errorString, location, sourceID, lineNumber, columnNumber))
         return;
 
-    ScriptBreakpoint breakpoint(lineNumber, columnNumber, "", false);
+    ScriptBreakpoint breakpoint(lineNumber, columnNumber, "", false, 0);
     m_continueToLocationBreakpointID = scriptDebugServer().setBreakpoint(sourceID, breakpoint, &lineNumber, &columnNumber);
     resume(errorString);
 }
@@ -641,6 +646,7 @@
         breakpointObject->getInteger(ASCIILiteral("columnNumber"), breakpoint.columnNumber);
         breakpointObject->getString(ASCIILiteral("condition"), breakpoint.condition);
         breakpointObject->getBoolean(ASCIILiteral("autoContinue"), breakpoint.autoContinue);
+        breakpointObject->getInteger(ASCIILiteral("ignoreCount"), breakpoint.ignoreCount);
         ErrorString errorString;
         RefPtr<InspectorArray> actions;
         breakpointObject->getArray(ASCIILiteral("actions"), actions);

Modified: branches/safari-601-branch/Source/_javascript_Core/inspector/protocol/Debugger.json (193245 => 193246)


--- branches/safari-601-branch/Source/_javascript_Core/inspector/protocol/Debugger.json	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/_javascript_Core/inspector/protocol/Debugger.json	2015-12-03 19:01:42 UTC (rev 193246)
@@ -48,7 +48,8 @@
             "properties": [
                 { "name": "condition", "type": "string", "optional": true, "description": "_expression_ to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this _expression_ evaluates to true." },
                 { "name": "actions", "type": "array", "optional": true, "items": { "$ref": "BreakpointAction" }, "description": "Actions to perform automatically when the breakpoint is triggered." },
-                { "name": "autoContinue", "type": "boolean", "optional": true, "description": "Automatically continue after hitting this breakpoint and running actions." }
+                { "name": "autoContinue", "type": "boolean", "optional": true, "description": "Automatically continue after hitting this breakpoint and running actions." },
+                { "name": "ignoreCount", "type": "integer", "optional": true, "description": "Number of times to ignore this breakpoint, before stopping on the breakpoint and running actions." }
             ],
             "description": "Extra options that modify breakpoint behavior."
         },

Modified: branches/safari-601-branch/Source/WebInspectorUI/ChangeLog (193245 => 193246)


--- branches/safari-601-branch/Source/WebInspectorUI/ChangeLog	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/WebInspectorUI/ChangeLog	2015-12-03 19:01:42 UTC (rev 193246)
@@ -1,5 +1,43 @@
 2015-12-02  Timothy Hatcher  <[email protected]>
 
+        Merge r190542. rdar://problem/23221163
+
+    2015-10-02  Matt Baker  <[email protected]>
+
+            Web Inspector: Add breakpoint option to ignore n times before stopping
+            https://bugs.webkit.org/show_bug.cgi?id=147664
+
+            Reviewed by Timothy Hatcher.
+
+            * Localizations/en.lproj/localizedStrings.js:
+            New strings for breakpoint popover labels.
+
+            * UserInterface/Controllers/BreakpointPopoverController.js:
+            (WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
+            Add ignoreCount UI to popover, if backend support exists. UI based on same
+            feature in Xcode's breakpoint editing dialog.
+            (WebInspector.BreakpointPopoverController.prototype._popoverIgnoreInputChanged):
+            User input sanity checks on numeric input.
+
+            * UserInterface/Controllers/DebuggerManager.js:
+            Listen for changes to breakpoint ignoreCount property.
+
+            * UserInterface/Models/Breakpoint.js:
+            (WebInspector.Breakpoint):
+            (WebInspector.Breakpoint.prototype.get ignoreCount):
+            (WebInspector.Breakpoint.prototype.set ignoreCount):
+            New property for ignoreCount.
+            (WebInspector.Breakpoint.prototype.get options):
+            Added ignoreCount to options object.
+            (WebInspector.Breakpoint.prototype.get info):
+            Added ignoreCount to info object.
+
+            * UserInterface/Views/BreakpointPopoverController.css:
+            (#edit-breakpoint-popover-ignore):
+            New styles for breakpoint popover.
+
+2015-12-02  Timothy Hatcher  <[email protected]>
+
         Merge r190540. rdar://problem/23221163
 
     2015-10-02  Matt Baker  <[email protected]>

Modified: branches/safari-601-branch/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (193245 => 193246)


--- branches/safari-601-branch/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2015-12-03 19:01:42 UTC (rev 193246)
@@ -312,6 +312,7 @@
 localizedStrings["Icon and Text (Horizontal)"] = "Icon and Text (Horizontal)";
 localizedStrings["Icon and Text (Vertical)"] = "Icon and Text (Vertical)";
 localizedStrings["Identity"] = "Identity";
+localizedStrings["Ignore"] = "Ignore";
 localizedStrings["Ignored"] = "Ignored";
 localizedStrings["Image"] = "Image";
 localizedStrings["Image Size"] = "Image Size";
@@ -628,5 +629,6 @@
 localizedStrings["key"] = "key";
 localizedStrings["line "] = "line ";
 localizedStrings["originally %s"] = "originally %s";
+localizedStrings["times before stopping"] = "times before stopping";
 localizedStrings["value"] = "value";
 localizedStrings[" %s  Profile Recorded"] = " %s  Profile Recorded";

Modified: branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js (193245 => 193246)


--- branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js	2015-12-03 19:01:42 UTC (rev 193246)
@@ -124,7 +124,7 @@
         var checkboxLabel = document.createElement("label");
         checkboxLabel.className = "toggle";
         checkboxLabel.appendChild(checkboxElement);
-        checkboxLabel.append(this._breakpoint.sourceCodeLocation.displayLocationString());
+        checkboxLabel.appendChild(document.createTextNode(this._breakpoint.sourceCodeLocation.displayLocationString()));
 
         var table = document.createElement("table");
 
@@ -144,6 +144,27 @@
 
         // COMPATIBILITY (iOS 7): Debugger.setBreakpoint did not support options.
         if (DebuggerAgent.setBreakpoint.supports("options")) {
+            // COMPATIBILITY (iOS 9): Legacy backends don't support breakpoint ignore count. Since support
+            // can't be tested directly, check for CSS.getSupportedSystemFontFamilyNames.
+            // FIXME: Use explicit version checking once https://webkit.org/b/148680 is fixed.
+            if (CSSAgent.getSupportedSystemFontFamilyNames) {
+                var ignoreCountRow = table.appendChild(document.createElement("tr"));
+                var ignoreCountHeader = ignoreCountRow.appendChild(document.createElement("th"));
+                var ignoreCountLabel = ignoreCountHeader.appendChild(document.createElement("label"));
+                var ignoreCountData = ignoreCountRow.appendChild(document.createElement("td"));
+                this._ignoreCountInput = ignoreCountData.appendChild(document.createElement("input"));
+                this._ignoreCountInput.id = "edit-breakpoint-popover-ignore";
+                this._ignoreCountInput.type = "number";
+                this._ignoreCountInput.min = 0;
+                this._ignoreCountInput.value = this._ignoreCount || 0;
+                this._ignoreCountInput.addEventListener("change", this._popoverIgnoreInputChanged.bind(this));
+
+                var ignoreCountText = ignoreCountData.appendChild(document.createElement("span"));
+                ignoreCountLabel.setAttribute("for", this._ignoreCountInput.id);
+                ignoreCountLabel.textContent = WebInspector.UIString("Ignore");
+                ignoreCountText.textContent = WebInspector.UIString("times before stopping");
+            }
+
             var actionRow = table.appendChild(document.createElement("tr"));
             var actionHeader = actionRow.appendChild(document.createElement("th"));
             var actionData = this._actionsContainer = actionRow.appendChild(document.createElement("td"));
@@ -191,6 +212,19 @@
         this._breakpoint.condition = event.target.value;
     }
 
+    _popoverIgnoreInputChanged(event)
+    {
+        var ignoreCount = 0;
+        if (event.target.value) {
+            ignoreCount = parseInt(event.target.value, 10);
+            if (isNaN(ignoreCount) || ignoreCount < 0)
+                ignoreCount = 0;
+        }
+
+        this._ignoreCountInput.value = ignoreCount;
+        this._breakpoint.ignoreCount = ignoreCount;
+    }
+
     _popoverToggleAutoContinueCheckboxChanged(event)
     {
         this._breakpoint.autoContinue = event.target.checked;

Modified: branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js (193245 => 193246)


--- branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js	2015-12-03 19:01:42 UTC (rev 193246)
@@ -35,6 +35,7 @@
         WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.DisplayLocationDidChange, this._breakpointDisplayLocationDidChange, this);
         WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.DisabledStateDidChange, this._breakpointDisabledStateDidChange, this);
         WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.ConditionDidChange, this._breakpointEditablePropertyDidChange, this);
+        WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.IgnoreCountDidChange, this._breakpointEditablePropertyDidChange, this);
         WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.AutoContinueDidChange, this._breakpointEditablePropertyDidChange, this);
         WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.ActionsDidChange, this._breakpointEditablePropertyDidChange, this);
 

Modified: branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Models/Breakpoint.js (193245 => 193246)


--- branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Models/Breakpoint.js	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Models/Breakpoint.js	2015-12-03 19:01:42 UTC (rev 193246)
@@ -39,6 +39,7 @@
             var lineNumber = sourceCodeLocationOrInfo.lineNumber || 0;
             var columnNumber = sourceCodeLocationOrInfo.columnNumber || 0;
             var location = new WebInspector.SourceCodeLocation(null, lineNumber, columnNumber);
+            var ignoreCount = sourceCodeLocationOrInfo.ignoreCount || 0;
             var autoContinue = sourceCodeLocationOrInfo.autoContinue || false;
             var actions = sourceCodeLocationOrInfo.actions || [];
             for (var i = 0; i < actions.length; ++i)
@@ -53,6 +54,7 @@
         this._scriptIdentifier = scriptIdentifier || null;
         this._disabled = disabled || false;
         this._condition = condition || "";
+        this._ignoreCount = ignoreCount || 0;
         this._autoContinue = autoContinue || false;
         this._actions = actions || [];
         this._resolved = false;
@@ -141,6 +143,25 @@
         this.dispatchEventToListeners(WebInspector.Breakpoint.Event.ConditionDidChange);
     }
 
+    get ignoreCount()
+    {
+        return this._ignoreCount;
+    }
+
+    set ignoreCount(ignoreCount)
+    {
+        console.assert(ignoreCount >= 0, "Ignore count cannot be negative.");
+        if (ignoreCount < 0)
+            return;
+
+        if (this._ignoreCount === ignoreCount)
+            return;
+
+        this._ignoreCount = ignoreCount;
+
+        this.dispatchEventToListeners(WebInspector.Breakpoint.Event.IgnoreCountDidChange);
+    }
+
     get autoContinue()
     {
         return this._autoContinue;
@@ -165,6 +186,7 @@
     {
         return {
             condition: this._condition,
+            ignoreCount: this._ignoreCount,
             actions: this._serializableActions(),
             autoContinue: this._autoContinue
         };
@@ -179,6 +201,7 @@
             columnNumber: this._sourceCodeLocation.columnNumber,
             disabled: this._disabled,
             condition: this._condition,
+            ignoreCount: this._ignoreCount,
             actions: this._serializableActions(),
             autoContinue: this._autoContinue
         };
@@ -325,6 +348,7 @@
     DisabledStateDidChange: "breakpoint-disabled-state-did-change",
     ResolvedStateDidChange: "breakpoint-resolved-state-did-change",
     ConditionDidChange: "breakpoint-condition-did-change",
+    IgnoreCountDidChange: "breakpoint-ignore-count-did-change",
     ActionsDidChange: "breakpoint-actions-did-change",
     AutoContinueDidChange: "breakpoint-auto-continue-did-change",
     LocationDidChange: "breakpoint-location-did-change",

Modified: branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Views/BreakpointPopoverController.css (193245 => 193246)


--- branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Views/BreakpointPopoverController.css	2015-12-03 19:01:31 UTC (rev 193245)
+++ branches/safari-601-branch/Source/WebInspectorUI/UserInterface/Views/BreakpointPopoverController.css	2015-12-03 19:01:42 UTC (rev 193246)
@@ -60,6 +60,11 @@
     width: 100%;
 }
 
+#edit-breakpoint-popover-ignore {
+    width: 40px;
+    margin-right: 4px;
+}
+
 #edit-breakpoint-popoover-auto-continue {
     margin-left: 0;
     margin-right: 4px;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to