<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[163735] trunk/Source/WebInspectorUI</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/163735">163735</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2014-02-08 18:56:50 -0800 (Sat, 08 Feb 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Web Inspector: show probe sets for script content views in the details sidebar
https://bugs.webkit.org/show_bug.cgi?id=128333
Reviewed by Timothy Hatcher.
This patch adds a new details sidebar for showing the probes associated with any
breakpoint in the currently visible source file. Each probe set (corresponding to
multiple actions of single breakpoint) gets its own ProbeSetDetailsSection. The
section contains a custom DataGrid subclass to display probe data, and some icons
for clearing samples, deleting the probe, and adding a new probe expression.
The table containing probe data keeps its columns in sync with the probe set's
probe expressions. To support this, DataGrid has been further refactored to support
removing columns, and inserting columns (rather than only appending). With this
capability, probe columns are removed and re-inserted when the expression changes.
The availability of the probe details sidebar is controlled by providing the
probe sets matching the script content view's resource URL as supplemental
represented objects.
Lastly, added the utility EventListenerSet class. This holds a set of event listeners
that should be added and removed together, and takes care of binding `thisObject`
according to whether the event emitter is a `Node` or `WebInspector.Object`.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/BreakpointActionView.js:
(WebInspector.BreakpointActionView):
(WebInspector.BreakpointActionView.prototype._removeAction): Renamed from removeButtonClicked.
(WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Change the behavior
of CodeMirror-backed editors for probe and evaluate expression actions. If the expression
consists entirely of trimmable whitespace, then delete the action rather than saving it.
* UserInterface/DataGrid.js:
(WebInspector.DataGrid): Copy over the column data into a map inside insertColumn() instead.
(WebInspector.DataGrid.prototype.insertColumn): Renamed from addColumn. It now takes an
optional `insertionIndex` argument and splices the column before the element at that index.
Also, convert code to use EventListenerSet for adding/removing per-column event listeners.
(WebInspector.DataGrid.prototype.removeColumn): Added. It splices the column out.
(WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle): Whitespace.
* UserInterface/EventListenerSet.js: Added.
(WebInspector.EventListenerSet):
(WebInspector.EventListenerSet.prototype.register):
(WebInspector.EventListenerSet.prototype.unregister):
(WebInspector.EventListenerSet.prototype.install):
(WebInspector.EventListenerSet.prototype.uninstall):
* UserInterface/Images/NavigationItemProbes.pdf: Added.
* UserInterface/LayerTreeDataGrid.js:
(WebInspector.LayerTreeDataGrid.prototype._updateChildren): Fix a missing column.get().
* UserInterface/Main.html: Add new JavaScript and CSS files.
* UserInterface/Main.js:
(WebInspector.contentLoaded): Add the probe details sidebar.
* UserInterface/ProbeDetailsSidebarPanel.css: Added.
(.sidebar > .panel.probes > .navigation-bar):
(.sidebar > .panel.probes > .content):
(.details-section.probe-set .options > .probe-add):
(.details-section.probe-set .options > .probe-clear-samples):
(.details-section.probe-set .options > .probe-remove):
(.details-section.probe-set .options > input):
(.panel.probes ::-webkit-scrollbar):
(.panel.probes ::-webkit-scrollbar-track):
(.panel.probes ::-webkit-scrollbar-thumb):
(.panel.probes ::-webkit-scrollbar-corner):
(.popover .probe-popover):
(.popover .probe-popover input):
* UserInterface/ProbeDetailsSidebarPanel.js: Added.
(WebInspector.ProbeDetailsSidebarPanel):
(WebInspector.ProbeDetailsSidebarPanel.prototype.get inspectedProbeSets):
(WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
* UserInterface/ProbeManager.js: Remove unused `probeSetForBreakpoint` function.
* UserInterface/ProbeSet.js: Fix erroneous uses of `probe.identifier` instead of `probe.id`.
(WebInspector.ProbeSet.prototype.removeProbe):
(WebInspector.ProbeSet.prototype._sampleCollected):
* UserInterface/ProbeSetDataGrid.css: Added.
(.details-section.probe-set .data-grid .data-container tr.past-value td):
(.details-section.probe-set .data-grid > .data-container td.unknown-value):
(.details-section.probe-set .data-grid .data-container tr.revealed.highlighted):
(@-webkit-keyframes blink-frame-highlight):
(100%):
(.details-section.probe-set .data-grid .data-container tr.separator):
(.details-section.probe-set .data-grid > .data-container tr.data-updated):
(@-webkit-keyframes blink-probe-frame):
(.details-section.probe-set .data-grid .data-container .selected .section *):
(.details-section.probe-set .data-grid .data-container .selected td.unknown-value):
(.details-section.probe-set .data-grid .data-container .section):
(.details-section.probe-set .data-grid th):
(.details-section.probe-set .data-grid th:not(:last-child)):
(.details-section.probe-set .data-grid td):
* UserInterface/ProbeSetDataGrid.js: Added.
(WebInspector.ProbeSetDataGrid):
(WebInspector.ProbeSetDataGrid.prototype.closed):
(WebInspector.ProbeSetDataGrid.prototype._setupProbe):
(WebInspector.ProbeSetDataGrid.prototype._teardownProbe):
(WebInspector.ProbeSetDataGrid.prototype._setupData):
(WebInspector.ProbeSetDataGrid.prototype._teardownData):
(WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.sortFunction):
(WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.set node):
(WebInspector.ProbeSetDataGrid.prototype._dataFrameInserted):
(WebInspector.ProbeSetDataGrid.prototype._dataSeparatorInserted):
(WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get var):
* UserInterface/ProbeSetDataGridNode.js: Added.
(WebInspector.ProbeSetDataGridNode):
(WebInspector.ProbeSetDataGridNode.prototype.get element):
(WebInspector.ProbeSetDataGridNode.prototype.get data):
(WebInspector.ProbeSetDataGridNode.prototype.set frame):
(WebInspector.ProbeSetDataGridNode.prototype.get frame):
(WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
(WebInspector.ProbeSetDataGridNode.prototype.updateCellsFromFrame):
(WebInspector.ProbeSetDataGridNode.prototype.updateCellsForSeparator):
* UserInterface/ProbeSetDataTable.js:
(WebInspector.ProbeSetDataTable.prototype.removeProbe): Fix a typo in for..of loop refactor.
* UserInterface/ProbeSetDetailsSection.js: Added.
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype.closed):
(WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink):
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._removeButtonClicked):
(WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
* UserInterface/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
Add probe sets whose breakpoint matches the represented object's URL.
(WebInspector.TextResourceContentView.prototype._probeSetsChanged): Tell listeners
to re-fetch `supplementalRepresentedObjects` when probe sets are added or removed.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUILocalizationsenlprojlocalizedStringsjs">trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceBreakpointActionViewjs">trunk/Source/WebInspectorUI/UserInterface/BreakpointActionView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceDataGridjs">trunk/Source/WebInspectorUI/UserInterface/DataGrid.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceLayerTreeDataGridjs">trunk/Source/WebInspectorUI/UserInterface/LayerTreeDataGrid.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceMainhtml">trunk/Source/WebInspectorUI/UserInterface/Main.html</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceMainjs">trunk/Source/WebInspectorUI/UserInterface/Main.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeManagerjs">trunk/Source/WebInspectorUI/UserInterface/ProbeManager.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeSetjs">trunk/Source/WebInspectorUI/UserInterface/ProbeSet.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeSetDataTablejs">trunk/Source/WebInspectorUI/UserInterface/ProbeSetDataTable.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceTextResourceContentViewjs">trunk/Source/WebInspectorUI/UserInterface/TextResourceContentView.js</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceEventListenerSetjs">trunk/Source/WebInspectorUI/UserInterface/EventListenerSet.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceImagesNavigationItemProbespdf">trunk/Source/WebInspectorUI/UserInterface/Images/NavigationItemProbes.pdf</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeDetailsSidebarPanelcss">trunk/Source/WebInspectorUI/UserInterface/ProbeDetailsSidebarPanel.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeDetailsSidebarPaneljs">trunk/Source/WebInspectorUI/UserInterface/ProbeDetailsSidebarPanel.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeSetDataGridcss">trunk/Source/WebInspectorUI/UserInterface/ProbeSetDataGrid.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeSetDataGridjs">trunk/Source/WebInspectorUI/UserInterface/ProbeSetDataGrid.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeSetDataGridNodejs">trunk/Source/WebInspectorUI/UserInterface/ProbeSetDataGridNode.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceProbeSetDetailsSectionjs">trunk/Source/WebInspectorUI/UserInterface/ProbeSetDetailsSection.js</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (163734 => 163735)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2014-02-09 02:37:38 UTC (rev 163734)
+++ trunk/Source/WebInspectorUI/ChangeLog        2014-02-09 02:56:50 UTC (rev 163735)
</span><span class="lines">@@ -1,3 +1,130 @@
</span><ins>+2014-02-07 Brian Burg <bburg@apple.com>
+
+ Web Inspector: show probe sets for script content views in the details sidebar
+ https://bugs.webkit.org/show_bug.cgi?id=128333
+
+ Reviewed by Timothy Hatcher.
+
+ This patch adds a new details sidebar for showing the probes associated with any
+ breakpoint in the currently visible source file. Each probe set (corresponding to
+ multiple actions of single breakpoint) gets its own ProbeSetDetailsSection. The
+ section contains a custom DataGrid subclass to display probe data, and some icons
+ for clearing samples, deleting the probe, and adding a new probe expression.
+
+ The table containing probe data keeps its columns in sync with the probe set's
+ probe expressions. To support this, DataGrid has been further refactored to support
+ removing columns, and inserting columns (rather than only appending). With this
+ capability, probe columns are removed and re-inserted when the expression changes.
+
+ The availability of the probe details sidebar is controlled by providing the
+ probe sets matching the script content view's resource URL as supplemental
+ represented objects.
+
+ Lastly, added the utility EventListenerSet class. This holds a set of event listeners
+ that should be added and removed together, and takes care of binding `thisObject`
+ according to whether the event emitter is a `Node` or `WebInspector.Object`.
+
+ * Localizations/en.lproj/localizedStrings.js:
+ * UserInterface/BreakpointActionView.js:
+ (WebInspector.BreakpointActionView):
+ (WebInspector.BreakpointActionView.prototype._removeAction): Renamed from removeButtonClicked.
+ (WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Change the behavior
+ of CodeMirror-backed editors for probe and evaluate expression actions. If the expression
+ consists entirely of trimmable whitespace, then delete the action rather than saving it.
+
+ * UserInterface/DataGrid.js:
+ (WebInspector.DataGrid): Copy over the column data into a map inside insertColumn() instead.
+ (WebInspector.DataGrid.prototype.insertColumn): Renamed from addColumn. It now takes an
+ optional `insertionIndex` argument and splices the column before the element at that index.
+ Also, convert code to use EventListenerSet for adding/removing per-column event listeners.
+
+ (WebInspector.DataGrid.prototype.removeColumn): Added. It splices the column out.
+ (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle): Whitespace.
+ * UserInterface/EventListenerSet.js: Added.
+ (WebInspector.EventListenerSet):
+ (WebInspector.EventListenerSet.prototype.register):
+ (WebInspector.EventListenerSet.prototype.unregister):
+ (WebInspector.EventListenerSet.prototype.install):
+ (WebInspector.EventListenerSet.prototype.uninstall):
+ * UserInterface/Images/NavigationItemProbes.pdf: Added.
+ * UserInterface/LayerTreeDataGrid.js:
+ (WebInspector.LayerTreeDataGrid.prototype._updateChildren): Fix a missing column.get().
+ * UserInterface/Main.html: Add new JavaScript and CSS files.
+ * UserInterface/Main.js:
+ (WebInspector.contentLoaded): Add the probe details sidebar.
+ * UserInterface/ProbeDetailsSidebarPanel.css: Added.
+ (.sidebar > .panel.probes > .navigation-bar):
+ (.sidebar > .panel.probes > .content):
+ (.details-section.probe-set .options > .probe-add):
+ (.details-section.probe-set .options > .probe-clear-samples):
+ (.details-section.probe-set .options > .probe-remove):
+ (.details-section.probe-set .options > input):
+ (.panel.probes ::-webkit-scrollbar):
+ (.panel.probes ::-webkit-scrollbar-track):
+ (.panel.probes ::-webkit-scrollbar-thumb):
+ (.panel.probes ::-webkit-scrollbar-corner):
+ (.popover .probe-popover):
+ (.popover .probe-popover input):
+ * UserInterface/ProbeDetailsSidebarPanel.js: Added.
+ (WebInspector.ProbeDetailsSidebarPanel):
+ (WebInspector.ProbeDetailsSidebarPanel.prototype.get inspectedProbeSets):
+ (WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
+ * UserInterface/ProbeManager.js: Remove unused `probeSetForBreakpoint` function.
+ * UserInterface/ProbeSet.js: Fix erroneous uses of `probe.identifier` instead of `probe.id`.
+ (WebInspector.ProbeSet.prototype.removeProbe):
+ (WebInspector.ProbeSet.prototype._sampleCollected):
+ * UserInterface/ProbeSetDataGrid.css: Added.
+ (.details-section.probe-set .data-grid .data-container tr.past-value td):
+ (.details-section.probe-set .data-grid > .data-container td.unknown-value):
+ (.details-section.probe-set .data-grid .data-container tr.revealed.highlighted):
+ (@-webkit-keyframes blink-frame-highlight):
+ (100%):
+ (.details-section.probe-set .data-grid .data-container tr.separator):
+ (.details-section.probe-set .data-grid > .data-container tr.data-updated):
+ (@-webkit-keyframes blink-probe-frame):
+ (.details-section.probe-set .data-grid .data-container .selected .section *):
+ (.details-section.probe-set .data-grid .data-container .selected td.unknown-value):
+ (.details-section.probe-set .data-grid .data-container .section):
+ (.details-section.probe-set .data-grid th):
+ (.details-section.probe-set .data-grid th:not(:last-child)):
+ (.details-section.probe-set .data-grid td):
+ * UserInterface/ProbeSetDataGrid.js: Added.
+ (WebInspector.ProbeSetDataGrid):
+ (WebInspector.ProbeSetDataGrid.prototype.closed):
+ (WebInspector.ProbeSetDataGrid.prototype._setupProbe):
+ (WebInspector.ProbeSetDataGrid.prototype._teardownProbe):
+ (WebInspector.ProbeSetDataGrid.prototype._setupData):
+ (WebInspector.ProbeSetDataGrid.prototype._teardownData):
+ (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.sortFunction):
+ (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.set node):
+ (WebInspector.ProbeSetDataGrid.prototype._dataFrameInserted):
+ (WebInspector.ProbeSetDataGrid.prototype._dataSeparatorInserted):
+ (WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get var):
+ * UserInterface/ProbeSetDataGridNode.js: Added.
+ (WebInspector.ProbeSetDataGridNode):
+ (WebInspector.ProbeSetDataGridNode.prototype.get element):
+ (WebInspector.ProbeSetDataGridNode.prototype.get data):
+ (WebInspector.ProbeSetDataGridNode.prototype.set frame):
+ (WebInspector.ProbeSetDataGridNode.prototype.get frame):
+ (WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
+ (WebInspector.ProbeSetDataGridNode.prototype.updateCellsFromFrame):
+ (WebInspector.ProbeSetDataGridNode.prototype.updateCellsForSeparator):
+ * UserInterface/ProbeSetDataTable.js:
+ (WebInspector.ProbeSetDataTable.prototype.removeProbe): Fix a typo in for..of loop refactor.
+ * UserInterface/ProbeSetDetailsSection.js: Added.
+ (WebInspector.ProbeSetDetailsSection):
+ (WebInspector.ProbeSetDetailsSection.prototype.closed):
+ (WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink):
+ (WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
+ (WebInspector.ProbeSetDetailsSection.prototype._removeButtonClicked):
+ (WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
+ * UserInterface/TextResourceContentView.js:
+ (WebInspector.TextResourceContentView):
+ (WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
+ Add probe sets whose breakpoint matches the represented object's URL.
+ (WebInspector.TextResourceContentView.prototype._probeSetsChanged): Tell listeners
+ to re-fetch `supplementalRepresentedObjects` when probe sets are added or removed.
+
</ins><span class="cx"> 2014-02-08 Dan Bernstein <mitz@apple.com>
</span><span class="cx">
</span><span class="cx"> Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
</span></span></pre></div>
<a id="trunkSourceWebInspectorUILocalizationsenlprojlocalizedStringsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (163734 => 163735)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js        2014-02-09 02:37:38 UTC (rev 163734)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js        2014-02-09 02:56:50 UTC (rev 163735)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx">