REGRESSION (r185629): Web Inspector: Filtering doesn't display any items if folders...
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-07-08  Timothy Hatcher  <timothy@apple.com>
2
3         REGRESSION (r185629): Web Inspector: Filtering doesn't display any items if folders are used to organize the web page resources
4         https://bugs.webkit.org/show_bug.cgi?id=146675
5
6         Reviewed by Joseph Pecoraro.
7
8         * UserInterface/Views/TreeOutline.js:
9         (WebInspector.TreeElement.prototype.revealed): Added ignoreHidden parameter.
10         (WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip): Pass true to ignore hidden elements.
11         (WebInspector.TreeElement.prototype.traverseNextTreeElement): Populate up front like the old traverseNextTreeElement.
12         This is needed to traverse into lazy populated tree elements. Don't call shouldSkip in the loop.
13         (WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip): Pass true to ignore hidden elements.
14         (WebInspector.TreeElement.prototype.traversePreviousTreeElement): Add some newlines.
15
16 2015-07-08  Devin Rousso  <drousso@apple.com>
17
18         Web Inspector: Pressing delete in the styles sidebar with no text causes text to become misaligned
19         https://bugs.webkit.org/show_bug.cgi?id=146715
20
21         Reviewed by Timothy Hatcher.
22
23         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
24         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange):
25         Now returns if the change was in the first character of the first line.
26
27 2015-07-07  Nikita Vasilyev  <nvasilyev@apple.com>
28
29         Web Inspector: Use "hairline" borders on retina screen
30         https://bugs.webkit.org/show_bug.cgi?id=146619
31
32         Reviewed by Timothy Hatcher.
33
34         * UserInterface/Views/CSSStyleDeclarationSection.css:
35         (.style-declaration-section):
36         (.style-declaration-section.locked):
37         (.style-declaration-section:not(.locked)):
38         (.style-declaration-section.last-in-group):
39         (.style-declaration-section + .style-declaration-section):
40         (.style-declaration-section.last-in-group + .style-declaration-section):
41         (@media (-webkit-min-device-pixel-ratio: 2)):
42         * UserInterface/Views/DetailsSection.css:
43         (.details-section .details-section):
44         (.details-section > .content > .group:nth-child(even)):
45         (@media (-webkit-min-device-pixel-ratio: 2)):
46         * UserInterface/Views/DividerNavigationItem.css:
47         (@media (-webkit-min-device-pixel-ratio: 2)):
48         * UserInterface/Views/RulesStyleDetailsPanel.css:
49         (.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
50         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
51         (.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
52         (.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .label):
53         (@media (-webkit-min-device-pixel-ratio: 2)):
54
55 2015-07-07  Devin Rousso  <drousso@apple.com>
56
57         Web Inspector: Pressing tab on a comment in the styles sidebar doesn't highlight the comment
58         https://bugs.webkit.org/show_bug.cgi?id=146709
59
60         Reviewed by Timothy Hatcher.
61
62         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
63         (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty):
64         (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty):
65         (WebInspector.CSSStyleDeclarationTextEditor.prototype._textAtCursorIsComment):
66         (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
67         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
68         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey):
69         (WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine):
70         Determines if the text at the given cursor position in the given line is a comment.
71         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey):
72         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
73
74 2015-07-07  Devin Rousso  <drousso@apple.com>
75
76         Web Inspector: spacebar should pause/resume timeline recording when timelines are open
77         https://bugs.webkit.org/show_bug.cgi?id=143267
78
79         Reviewed by Timothy Hatcher.
80
81         * Localizations/en.lproj/localizedStrings.js:
82         * UserInterface/Views/TimelineTabContentView.js:
83         (WebInspector.TimelineSidebarPanel): Added two new keyboard shortcuts: space and shift-space.
84         (WebInspector.TimelineSidebarPanel.prototype.shown): Enables the keyboard shortcuts.
85         (WebInspector.TimelineSidebarPanel.prototype.hidden): Disables the keyboard shortcuts.
86         (WebInspector.TimelineSidebarPanel.prototype._toggleRecordingOnSpacebar):
87         (WebInspector.TimelineSidebarPanel.prototype._toggleNewRecordingOnSpacebar):
88         (WebInspector.TimelineSidebarPanel.prototype._toggleRecording): Starts/stops recording.
89
90 2015-07-07  Joseph Pecoraro  <pecoraro@apple.com>
91
92         Web Inspector: Improve names for unprefixed animation events
93         https://bugs.webkit.org/show_bug.cgi?id=146708
94
95         Reviewed by Timothy Hatcher.
96
97         * UserInterface/Models/ScriptTimelineRecord.js:
98
99 2015-07-07  Timothy Hatcher  <timothy@apple.com>
100
101         Web Inspector: Timeline record bars are not white when the row is selected from the sidebar
102         https://bugs.webkit.org/show_bug.cgi?id=146694
103
104         Reviewed by Joseph Pecoraro.
105
106         * UserInterface/Views/TimelineRecordBar.css:
107         (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment):
108         (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive):
109         (:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
110
111 2015-07-07  Devin Rousso  <drousso@apple.com>
112
113         Web Inspector: Unnecessary space added after -webkit- prefixed property values
114         https://bugs.webkit.org/show_bug.cgi?id=146671
115
116         Reviewed by Joseph Pecoraro.
117
118         * Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Added.
119         * Tools/PrettyPrinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Added.
120         * Tools/PrettyPrinting/index.html:
121         * UserInterface/Views/CodeMirrorFormatters.js: Now only adds a space if both the current and previous
122         tokens are a property, value, or atom.
123
124 2015-07-07  Matt Baker  <mattbaker@apple.com>
125
126         Web Inspector: Pad ruler selection area by 1px in the Rendering Frames timeline overview
127         https://bugs.webkit.org/show_bug.cgi?id=146248
128
129         Reviewed by Timothy Hatcher.
130
131         * UserInterface/Views/RenderingFrameTimelineOverview.js:
132         Enable duration pixel alignment.
133
134         * UserInterface/Views/TimelineOverview.css:
135         (.timeline-overview.frames > .timeline-ruler > .header > .divider):
136         (.timeline-overview.frames > .timeline-ruler > .selection-handle.right):
137         (.timeline-overview.frames > .timeline-ruler > .shaded-area.right):
138         Shift ruler elements 1 pixel to the right, so that selection boundaries and dividers are
139         positioned inside the gap between frame elements.
140
141         * UserInterface/Views/TimelineOverview.js:
142         (WebInspector.TimelineOverview):
143         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
144         (WebInspector.TimelineOverview.prototype.get pixelAlignDuration):
145         (WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
146         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
147         Added a property to force the overview graph to align duration units on the y-axis to pixel boundaries.
148         When enabled, frame elements are displayed in integer widths while zooming, preventing subpixel blurring
149         and maintaining a consistent 1 pixel gap between frames.
150
151 2015-07-07  Devin Rousso  <drousso@apple.com>
152
153         Web Inspector: Tabbing in the styles sidebar doesn't highlight the next section of text
154         https://bugs.webkit.org/show_bug.cgi?id=146676
155
156         Reviewed by Timothy Hatcher.
157
158         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
159         (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue): Modified the logic to only search the
160         remaining text after the current cursor position.
161         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Now only searches for matches before the colon.
162
163 2015-07-07  Devin Rousso  <drousso@apple.com>
164
165         Web Inspector: Option+Click not jumping to resource
166         https://bugs.webkit.org/show_bug.cgi?id=146498
167
168         Reviewed by Timothy Hatcher.
169
170         * UserInterface/Base/Main.js: Always show the tab which contains the represented object.
171         (WebInspector._domNodeWasInspected):
172         (WebInspector._frameWasAdded):
173         (WebInspector.showConsoleTab):
174         (WebInspector.showRepresentedObject): Removed forceShowTab parameter.
175         (WebInspector.showMainFrameDOMTree):
176         (WebInspector.showContentFlowDOMTree):
177         (WebInspector.showSourceCodeForFrame):
178         (WebInspector.showSourceCode):
179         (WebInspector.showSourceCodeLocation):
180         (WebInspector.showOriginalUnformattedSourceCodeLocation):
181         (WebInspector.showOriginalOrFormattedSourceCodeLocation):
182         (WebInspector.showOriginalOrFormattedSourceCodeTextRange):
183         (WebInspector.showResourceRequest):
184         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
185         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasReleasedOverEditor):
186         * UserInterface/Protocol/InspectorFrontendAPI.js:
187         (InspectorFrontendAPI.showMainResourceForFrame):
188         * UserInterface/Views/ComputedStyleDetailsPanel.js:
189         (WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
190         (WebInspector.ComputedStyleDetailsPanel):
191         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
192         (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
193         (WebInspector.ObjectTreeBaseTreeElement):
194
195 2015-07-07  Devin Rousso  <drousso@apple.com>
196
197         Web Inspector: Regression: CSS autocompletion suggestion applies on pressing delete
198         https://bugs.webkit.org/show_bug.cgi?id=146672
199
200         Reviewed by Timothy Hatcher.
201
202         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
203         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now returns if completions are showing.
204
205 2015-07-07  Nikita Vasilyev  <nvasilyev@apple.com>
206
207         Web Inspector: Properly align checkboxes in the styles sidebar
208         https://bugs.webkit.org/show_bug.cgi?id=146673
209
210         Reviewed by Timothy Hatcher.
211
212         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
213         (.css-style-text-editor > .CodeMirror .CodeMirror-lines input[type=checkbox]):
214
215 2015-07-06  Matt Baker  <mattbaker@apple.com>
216
217         Web Inspector: Rendering Frame bars appear misaligned and contain gaps when displaying small task segments
218         https://bugs.webkit.org/show_bug.cgi?id=146475
219
220         Reviewed by Timothy Hatcher.
221
222         Displaying all task segments within a frame in the Rendering Frames graph is impossible, as very short tasks
223         would result in a bar with a height of less than 1 pixel. Consecutive small tasks, each less than a visible
224         pixel, appear as gaps in the frame bar. This patch addresses these shortcomings by introducing a minimum
225         displayable frame height (3 pixels), and setting the height of every frame to a multiple of the minimum height.
226
227         * UserInterface/Base/Utilities.js:
228         (.value):
229         Added Math.roundTo to simplify rounding to arbitrary intervals.
230
231         * UserInterface/Views/TimelineRecordFrame.css:
232         (.timeline-record-frame):
233         (.timeline-record-frame > .frame > .duration):
234         Enforce 3px min height for frames & segments. TimelineRenderingFrame's segment height calculator
235         creates segments that are always at least 3px, this is just a precaution.
236
237         * UserInterface/Views/TimelineRecordFrame.js:
238         (WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.updateDurationRemainder):
239         (WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.pushCurrentSegment):
240         (WebInspector.TimelineRecordFrame.prototype._calculateFrameDisplayData.invisibleSegments.forEach):
241         (WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement): Deleted.
242         Added algorithm for calculating frame segment heights, rather than simply dividing each task's
243         duration by the frame duration. Results are cached so the segment heights aren't needlessly
244         recalculated on every scroll/zoom.
245
246 2015-07-06  Timothy Hatcher  <timothy@apple.com>
247
248         Web Inspector: Force show Console tab when supportsSplitContentBrowser is false
249         https://bugs.webkit.org/show_bug.cgi?id=146661
250
251         Reviewed by Joseph Pecoraro.
252
253         * UserInterface/Base/Main.js:
254         (WebInspector.showConsoleTab):
255
256 2015-07-06  Devin Rousso  <drousso@apple.com>
257
258         Web Inspector: Clearing the console does not remove the unread message icon
259         https://bugs.webkit.org/show_bug.cgi?id=146649
260
261         Reviewed by Timothy Hatcher.
262
263         * UserInterface/Views/LogContentView.js:
264         (WebInspector.LogContentView.prototype._clearLog): Removes the "unread" class from all scope bar items.
265
266 2015-07-02  Timothy Hatcher  <timothy@apple.com>
267
268         Web Inspector: Add a dedicated Network tab that is always live
269         https://bugs.webkit.org/show_bug.cgi?id=146568
270
271         Reviewed by Joseph Pecoraro.
272
273         * Localizations/en.lproj/localizedStrings.js: Updated.
274
275         * UserInterface/Base/Main.js:
276         (WebInspector.loaded):
277         (WebInspector.isTabTypeAllowed):
278         (WebInspector._tabContentViewForType):
279         (WebInspector._updateNewTabButtonState):
280         Add NetworkTabContentView to the right places.
281
282         * UserInterface/Controllers/TimelineManager.js:
283         (WebInspector.TimelineManager):
284         (WebInspector.TimelineManager.prototype.get persistentNetworkTimeline):
285         (WebInspector.TimelineManager.prototype._mainResourceDidChange):
286         (WebInspector.TimelineManager.prototype._resourceWasAdded):
287         Add a persistent network timeline that always has all resources.
288
289         * UserInterface/Images/Network.svg: Added.
290
291         * UserInterface/Main.html: Added new files.
292
293         * UserInterface/Views/NavigationSidebarPanel.css:
294         (.sidebar > .panel.navigation > .content):
295         Drive-by fix. The bottom was off by one. This caused misalignment between sidebar and content view when
296         scrolled all the way to the bottom of the content view.
297
298         * UserInterface/Views/NetworkGridContentView.css: Added.
299         (.content-view.network-grid > .data-grid):
300         (.content-view.network-grid > .data-grid th):
301         (.content-view.network-grid > .data-grid td):
302         (.content-view.network-grid > .data-grid table.data):
303         Mostly copied from TimelineView.css and NetworkTimelineView.css.
304
305         * UserInterface/Views/NetworkGridContentView.js: Added.
306         (WebInspector.NetworkGridContentView):
307         (WebInspector.NetworkGridContentView.prototype.get navigationSidebarTreeOutline):
308         (WebInspector.NetworkGridContentView.prototype.get selectionPathComponents):
309         (WebInspector.NetworkGridContentView.prototype.get zeroTime):
310         (WebInspector.NetworkGridContentView.prototype.shown):
311         (WebInspector.NetworkGridContentView.prototype.hidden):
312         (WebInspector.NetworkGridContentView.prototype.closed):
313         (WebInspector.NetworkGridContentView.prototype.updateLayout):
314         (WebInspector.NetworkGridContentView.prototype.needsLayout):
315         (WebInspector.NetworkGridContentView.prototype.reset):
316         (WebInspector.NetworkGridContentView.prototype._processPendingRecords):
317         (WebInspector.NetworkGridContentView.prototype._networkTimelineReset):
318         (WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
319         (WebInspector.NetworkGridContentView.prototype._treeElementPathComponentSelected):
320         (WebInspector.NetworkGridContentView.prototype._dataGridNodeSelected):
321         Mostly copied from NetworkTimelineView.
322
323         * UserInterface/Views/NetworkSidebarPanel.css: Added.
324         (.sidebar > .panel.navigation.network > :matches(.content, .empty-content-placeholder)):
325         (.sidebar > .panel.navigation.network > .navigation-bar):
326         (.sidebar > .panel.navigation.network > .title-bar):
327         (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content):
328         (.sidebar > .panel.navigation.network .item:hover:not(.selected) .status .close.status-button):
329         (.sidebar > .panel.navigation.network:not(.network-grid-content-view-showing) .status .go-to-arrow.status-button):
330         (.sidebar > .panel.navigation.network.network-grid-content-view-showing .status .close.status-button):
331         (.sidebar > .panel.navigation.network.network-grid-content-view-showing .navigation-sidebar-panel-content-tree-outline.network-grid .item .subtitle):
332         (.sidebar > .panel.navigation.network > .content > .navigation-sidebar-panel-content-tree-outline):
333         (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
334         Mostly copied from TimelineSidebarPanel.css and NetworkTimelineView.css.
335
336         * UserInterface/Views/NetworkSidebarPanel.js: Added.
337         (WebInspector.NetworkSidebarPanel):
338         (WebInspector.NetworkSidebarPanel.prototype.closed):
339         (WebInspector.NetworkSidebarPanel.prototype.showDefaultContentView):
340         (WebInspector.NetworkSidebarPanel.prototype.saveStateToCookie):
341         (WebInspector.NetworkSidebarPanel.prototype.restoreStateFromCookie):
342         (WebInspector.NetworkSidebarPanel.prototype.hasCustomFilters):
343         (WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
344         (WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
345         (WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
346         (WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
347         (WebInspector.NetworkSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
348         (WebInspector.NetworkSidebarPanel.prototype._treeElementGoToArrowWasClicked):
349         (WebInspector.NetworkSidebarPanel.prototype._treeElementCloseButtonClicked):
350         (WebInspector.NetworkSidebarPanel.prototype._canShowDifferentContentView):
351         (WebInspector.NetworkSidebarPanel.prototype._treeElementSelected):
352         (WebInspector.NetworkSidebarPanel.prototype._scopeBarSelectionDidChange):
353         A hybrid of ResourceSidebarPanel and TimelineSidebarPanel.
354
355         * UserInterface/Views/NetworkTabContentView.js: Added.
356         (WebInspector.NetworkTabContentView):
357         (WebInspector.NetworkTabContentView.prototype.get type):
358         (WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
359
360         * UserInterface/Views/NewTabContentView.js:
361         (WebInspector.NewTabContentView): Add Network tab and sort the tabs by their localized name.
362
363         * UserInterface/Views/TabBar.js:
364         (WebInspector.TabBar.prototype._handleNewTabClick):
365         Drive-by fix. Don't fire the click event if the new tab button is disabled.
366
367 2015-07-06  Nikita Vasilyev  <nvasilyev@apple.com>
368
369         Web Inspector: Mark console filters that have unseen messages by colored dots
370         https://bugs.webkit.org/show_bug.cgi?id=146616
371
372         Reviewed by Timothy Hatcher.
373
374         * UserInterface/Views/LogContentView.css:
375         (.log-scope-bar > li.unread::before):
376         (.log-scope-bar > li.unread:hover::before):
377         (.log-scope-bar > li.unread.errors::before):
378         (.log-scope-bar > li.unread.warnings::before):
379         (.log-scope-bar > li.unread.logs::before):
380         (@keyframes unread-background-pulse):
381
382 2015-07-06  Timothy Hatcher  <timothy@apple.com>
383
384         Web Inspector: Exceptions in Network timeline when resource updates and filters are applied
385         https://bugs.webkit.org/show_bug.cgi?id=146609
386
387         Reviewed by Joseph Pecoraro.
388
389         * UserInterface/Views/DataGrid.js:
390         (WebInspector.DataGrid.prototype.insertChild):
391         (WebInspector.DataGrid.prototype.removeChild):
392         (WebInspector.DataGridNode.prototype.savePosition):
393         Convert exceptions to asserts and early returns.
394
395         * UserInterface/Views/TimelineDataGrid.js:
396         (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes): Add some asserts and checks.
397
398         * UserInterface/Views/TreeOutline.js:
399         (WebInspector.TreeOutline.prototype.appendChild):
400         (WebInspector.TreeOutline.prototype.insertChild):
401         (WebInspector.TreeOutline.prototype.removeChildAtIndex):
402         (WebInspector.TreeOutline.prototype.removeChild):
403         Convert exceptions to asserts and early returns.
404
405 2015-07-05  Timothy Hatcher  <timothy@apple.com>
406
407         Web Inspector: Cached resources are missing startTime and size in Network timeline
408         https://bugs.webkit.org/show_bug.cgi?id=146607
409
410         Reviewed by Joseph Pecoraro.
411
412         * UserInterface/Controllers/FrameResourceManager.js:
413         (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): Pass elapsedTime in the right argument order.
414         Add missing calls to Resource.increaseSize and Resource.increaseTransferSize.
415         (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): Pass elapsedTime in the right argument order.
416
417 2015-07-05  Timothy Hatcher  <timothy@apple.com>
418
419         Web Inspector: Dim more borders when the window is inactive
420         https://bugs.webkit.org/show_bug.cgi?id=146608
421
422         Reviewed by Joseph Pecoraro.
423
424         * UserInterface/Views/DataGrid.css:
425         (body.window-inactive .data-grid th):
426         (body.window-inactive .data-grid :matches(th, td):not(:last-child)):
427         * UserInterface/Views/NavigationSidebarPanel.css:
428         (body.window-inactive .sidebar > .panel.navigation > .overflow-shadow):
429         * UserInterface/Views/OverviewTimelineView.css:
430         (body.window-inactive .timeline-view.overview > .timeline-ruler > .header):
431         * UserInterface/Views/TimelineDataGrid.css:
432         (body.window-inactive .data-grid.timeline th):
433         (body.window-inactive .data-grid.timeline > .navigation-bar-container > .navigation-bar):
434         * UserInterface/Views/TimelineRuler.css:
435         (body.window-inactive .timeline-ruler > .header):
436         (body.window-inactive .timeline-ruler > .header > .divider):
437         * UserInterface/Views/TimelineSidebarPanel.css:
438         (body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar):
439         (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar):
440         (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
441
442 2015-07-05  Timothy Hatcher  <timothy@apple.com>
443
444         Web Inspector: Timeline row selection should have same background color in sidebar and data grid
445         https://bugs.webkit.org/show_bug.cgi?id=146606
446
447         Support a force-focus class name that TreeOutlineDataGridSynchronizer applies when one of the
448         elements is focused, so the other can look focused too.
449
450         Reviewed by Joseph Pecoraro.
451
452         * UserInterface/Views/DataGrid.css:
453         (.data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)):
454         (.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before):
455         (.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before):
456         (.data-grid:matches(:focus, .force-focus) tr.selected):
457         (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
458
459         * UserInterface/Views/Main.css:
460         (:matches(:focus, .force-focus) .selected .go-to-arrow):
461         (:matches(:focus, .force-focus) .selected .go-to-arrow:active):
462
463         * UserInterface/Views/NavigationSidebarPanel.css:
464         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button):
465         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button):
466         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected):
467         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle):
468
469         * UserInterface/Views/TreeElementStatusButton.css:
470         (:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .filled):
471         (:matches(:focus, .force-focus) .item.selected > .status > .status-button > svg .stroked):
472
473         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
474         (WebInspector.TreeOutlineDataGridSynchronizer):
475         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridGainedFocus): Added.
476         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._dataGridLostFocus): Added.
477         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineGainedFocus): Added.
478         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeOutlineLostFocus): Added.
479
480 2015-07-05  Devin Rousso  <drousso@apple.com>
481
482         Web Inspector: Deleting in the CSS sidebar causes the warning icon to appear mid-word
483         https://bugs.webkit.org/show_bug.cgi?id=146617
484
485         Reviewed by Timothy Hatcher.
486
487         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
488         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): Now removes all marks whenever the user deletes.
489         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): The invalid marker now calculates
490         it's position based off of where the semicolon is in the property text.
491
492 2015-07-05  Devin Rousso  <drousso@apple.com>
493
494         Web Inspector: CSS rule with 2 pseudo-selectors appears twice
495         https://bugs.webkit.org/show_bug.cgi?id=146576
496
497         Reviewed by Timothy Hatcher.
498
499         * UserInterface/Views/RulesStyleDetailsPanel.js:
500         (WebInspector.RulesStyleDetailsPanel.prototype.refresh):
501         Only adds pseudo-elements if the previous pseudo-element has a different selector.
502
503 2015-07-04  Devin Rousso  <drousso@apple.com>
504
505         Web Inspector: Wrong cursor position in styles panel when deleting a line break
506         https://bugs.webkit.org/show_bug.cgi?id=146577
507
508         Reviewed by Timothy Hatcher.
509
510         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
511         (WebInspector.CSSStyleDeclarationTextEditor):
512         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleBeforeChange): If the change is a deletion at the beginning of a line,
513         remove all markers on that line to ensure that there is no blank space on the previous line after deleting.
514
515 2015-07-04  Devin Rousso  <drousso@apple.com>
516
517         Web Inspector: Pressing tab on a newline in the console should insert a tab character
518         https://bugs.webkit.org/show_bug.cgi?id=146612
519
520         Reviewed by Timothy Hatcher.
521
522         * UserInterface/Views/ConsolePrompt.js:
523         (WebInspector.ConsolePrompt.prototype._handleTabKey): Tabs can now be inserted at the beginning of newlines and before the first
524         non-space character on any other line.
525
526 2015-07-04  Devin Rousso  <drousso@apple.com>
527
528         Web Inspector: Pressing enter on a newline in the styles sidebar inserts a semicolon
529         https://bugs.webkit.org/show_bug.cgi?id=146611
530
531         Reviewed by Timothy Hatcher.
532
533         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
534         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Now returns if the line is empty.
535
536 2015-07-04  Devin Rousso  <drousso@apple.com>
537
538         Web Inspector: Console should indicate if you have unseen messages in console due to filters
539         https://bugs.webkit.org/show_bug.cgi?id=143166
540
541         Reviewed by Timothy Hatcher.
542
543         * UserInterface/Controllers/JavaScriptLogViewController.js:
544         (WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount): Now returns true/false depending on if
545         the message count was actually updated.
546         * UserInterface/Views/LogContentView.css:
547         (.log-scope-bar > li.unread): Applies the unread-border-pulse keyframe animation.
548         (.log-scope-bar > li.unread.errors): The pulsing border is colored red.
549         (.log-scope-bar > li.unread.warnings): The pulsing border is colored yellow(ish).
550         (.log-scope-bar > li.unread.logs): The pulsing border is colored grey.
551         (@keyframes unread-border-pulse): Changes the color of the border from transparent to whatever is specificed.
552         * UserInterface/Views/LogContentView.js:
553         (WebInspector.LogContentView):
554         (WebInspector.LogContentView.prototype._determineMessageLevel):
555         (WebInspector.LogContentView.prototype._pulseScopeBarItemBorder): Adds the class "unread" to the scope bar item whose panel
556         the newest message belongs to, but only if that panel or the All panel is not visible.
557         (WebInspector.LogContentView.prototype._messageAdded):
558         (WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
559         (WebInspector.LogContentView.prototype._scopeBarSelectionDidChange): Clears the "unread" class on the selected scope bar item.
560         (WebInspector.LogContentView.prototype._filterMessageElements):
561         * UserInterface/Views/ScopeBar.js:
562         (WebInspector.ScopeBar.prototype.get items): Returns a list of all the items in the scope bar.
563         * UserInterface/Views/ScopeBarItem.js:
564         (WebInspector.ScopeBarItem): Added another parameter to allow for a custom class name.
565
566 2015-07-04  Devin Rousso  <drousso@apple.com>
567
568         Web Inspector: Pseudo Styles Ordering and Media Queries
569         https://bugs.webkit.org/show_bug.cgi?id=145979
570
571         Reviewed by Timothy Hatcher.
572
573         * UserInterface/Views/RulesStyleDetailsPanel.css:
574         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)):
575         Fix filter label styling with pseudo selectors.
576         * UserInterface/Views/RulesStyleDetailsPanel.js:
577         (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Pseudo-selector rules will now order directly after the last style that
578         matches the pseudo-selector without the pseudo-element.  If no rules match, place the pseudo-selector rules above the first
579         inherited or UserAgent rule (whichever comes first).
580
581 2015-07-04  Devin Rousso  <drousso@apple.com>
582
583         REGRESSION(r184000): Web Inspector: Multiline CSS in Styles Sidebar is marked as invalid
584         https://bugs.webkit.org/show_bug.cgi?id=146178
585
586         Reviewed by Timothy Hatcher.
587
588         First changes made by Tobias Reiss  <tobi+webkit@basecode.de>
589
590         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values-expected.css: Added.
591         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-values.css: Added.
592         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules-expected.css: Added.
593         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-between-rules.css: Added.
594         * Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values-expected.css: Added.
595         * Tools/PrettyPrinting/css-rule-tests/remove-newline-between-values.css: Added.
596         * Tools/PrettyPrinting/index.html:
597         Add regression tests.
598         * UserInterface/Views/CodeMirrorFormatters.js:
599         Remove newlines before values that belong in one line and add whitespace between values. 
600
601 2015-07-04  Nikita Vasilyev  <nvasilyev@apple.com>
602
603         Web Inspector: The arrow that appears for Web Inspector Layout & Rendering records overlaps the category switcher
604         https://bugs.webkit.org/show_bug.cgi?id=146605
605
606         Reviewed by Timothy Hatcher.
607
608         * UserInterface/Views/TimelineDataGrid.css:
609         (.data-grid.timeline > .navigation-bar-container):
610
611 2015-07-03  Dan Bernstein  <mitz@apple.com>
612
613         [Xcode] Update some build settings as recommended by Xcode 7
614         https://bugs.webkit.org/show_bug.cgi?id=146597
615
616         Reviewed by Sam Weinig.
617
618         * Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and
619         GCC_NO_COMMON_BLOCKS.
620         * WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
621
622 2015-07-02  Devin Rousso  <drousso@apple.com>
623
624         Web Inspector: Show suggest popover on Tab press even if it wasn't showing before
625         https://bugs.webkit.org/show_bug.cgi?id=146496
626
627         Reviewed by Timothy Hatcher.
628
629         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
630         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will try to autocomplete before trying
631         to add an ending colon/semicolon or highlight the next section of text.
632
633 2015-07-01  Joseph Pecoraro  <pecoraro@apple.com>
634
635         Web Inspector: Aggregate profile call information on the backend to drastically reduce profile sizes
636         https://bugs.webkit.org/show_bug.cgi?id=146536
637
638         Reviewed by Timothy Hatcher.
639
640         Since we still support legacy backends, the frontend documents where
641         it is handling legacy backends with compatibility comments.
642
643         * UserInterface/Models/ProfileNode.js:
644         (WebInspector.ProfileNode):
645         (WebInspector.ProfileNode.prototype.get callInfo):
646         Handle a ProfileNode created with callInfo or calls. They are mutually exclusive.
647
648         * UserInterface/Models/ScriptTimelineRecord.js:
649         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
650         If the profile has per-call information, construct ProfileNodeCall objects, otherwise
651         just construct the ProfileNode with the aggregate callInfo value.
652
653         * UserInterface/Views/ScriptTimelineDataGridNode.js:
654         (WebInspector.ScriptTimelineDataGridNode.prototype.get data):
655         When we have aggregate call information we cannot easily partition a script,
656         so we instead treat the entire script as one large atomic unit in the timeline.
657         If the timeline range has any portion of the script, show the entire script.
658         Users used to be able to select a portion of a script and view the relevant
659         functions called in just that sliver, but this doesn't appear to be a well
660         known feature or commonly used. In fact, given the small ranges of time it
661         could be confusing for users.
662
663         * UserInterface/Views/TimelineRecordingContentView.js:
664         (WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters):
665         Treat as a discrete unit.
666
667 2015-07-01  Devin Rousso  <drousso@apple.com>
668
669         Web Inspector: When autocompleting, pressing tab twice shouldn't insert a tab character
670         https://bugs.webkit.org/show_bug.cgi?id=145885
671
672         Reviewed by Timothy Hatcher.
673
674         * UserInterface/Controllers/CodeMirrorCompletionController.js:
675         (WebInspector.CodeMirrorCompletionController):
676         (WebInspector.CodeMirrorCompletionController.prototype.updateCompletions): Resolves the promise as having completions.
677         (WebInspector.CodeMirrorCompletionController.prototype.hideCompletions): Resolves the promise as not having completions.
678         (WebInspector.CodeMirrorCompletionController.prototype.completeAtCurrentPositionIfNeeded): Returns a WrappedPromise that allows
679         callers of this function to determine if the autocomplete had any values or was instead not shown.
680         (WebInspector.CodeMirrorCompletionController.prototype._resolveUpdatePromise):
681         * UserInterface/Main.html: Added WrappedPromise class.
682         * UserInterface/Models/WrappedPromise.js: Added WrappedPromise object to expose resolve and reject functions.
683         * UserInterface/Views/ConsolePrompt.js:
684         (WebInspector.ConsolePrompt.prototype._handleTabKey): Attempts to find completions for current text.  If there are none, beep.
685
686 2015-07-01  Devin Rousso  <drousso@apple.com>
687
688         Make the first click on a rule section create a newline for easy property addition
689         https://bugs.webkit.org/show_bug.cgi?id=146490
690
691         Reviewed by Timothy Hatcher.
692
693         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
694         (WebInspector.CSSStyleDeclarationTextEditor):
695         (WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
696         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleEnterKey): Inserts a semicolon if the line is missing one.
697         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown): If the user clicks on a property with the editor being
698         unfocused, the name/value containing the cursor will be highlighted.  If instead the user clicks at the end of a line, the
699         cursor's position is saved for mouseUp.
700         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp): If the mouseDown cursor position was saved and is equal
701         to the current cursor's position (the user did not drag), add a newline after the current line and place the cursor on that line.
702         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey):
703         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue): Deleted.
704
705 2015-06-30  Devin Rousso  <drousso@apple.com>
706
707         Web Inspector: add " = $0" hint after selected element in main DOMTreeOutline
708         https://bugs.webkit.org/show_bug.cgi?id=145739
709
710         Reviewed by Timothy Hatcher.
711
712         * UserInterface/Views/DOMTreeOutline.css: Adds a semi-opaque " = $0" to the selected element in the DOM tree.
713         (.dom-tree-outline li.selected > span::after):
714         (.dom-tree-outline:focus li.selected > span::after):
715
716 2015-06-30  Joseph Pecoraro  <pecoraro@apple.com>
717
718         Web Inspector: ProfileNode cleanup
719         https://bugs.webkit.org/show_bug.cgi?id=146472
720
721         Reviewed by Timothy Hatcher.
722
723         * UserInterface/Models/ProfileNode.js:
724         (WebInspector.ProfileNode):
725         Use Array.prototype.every instead of reduce.
726         Correct the name of a function to be what callers expect!
727
728 2015-06-30  Joseph Pecoraro  <pecoraro@apple.com>
729
730         Web Inspector: iOS 8: Profile Nodes not showing in JavaScript Timeline
731         https://bugs.webkit.org/show_bug.cgi?id=146471
732
733         Reviewed by Brian Burg.
734
735         * UserInterface/Models/ScriptTimelineRecord.js:
736         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
737         For legacy backends, convert the startTime to the proper timestamp type.
738
739 2015-06-30  Matt Baker  <mattbaker@apple.com>
740
741         Web Inspector: Reduce rendering frames "Other" time by instrumenting compositing
742         https://bugs.webkit.org/show_bug.cgi?id=146168
743
744         Reviewed by Brian Burg.
745
746         * Localizations/en.lproj/localizedStrings.js:
747         * UserInterface/Controllers/TimelineManager.js:
748         (WebInspector.TimelineManager.prototype._processRecord):
749         Added handling for new Composite record type. Paint records with a parent Composite record
750         are flagged to simplify processing after the event hierarchy is unpacked.
751
752         * UserInterface/Images/TimelineRecordComposite.svg: Added.
753         New composite record icon.
754
755         * UserInterface/Models/LayoutTimelineRecord.js:
756         (WebInspector.LayoutTimelineRecord):
757         (WebInspector.LayoutTimelineRecord.displayNameForEventType):
758         (WebInspector.LayoutTimelineRecord.prototype.get duringComposite): Added
759         Composite record support.
760
761         * UserInterface/Models/RenderingFrameTimelineRecord.js:
762         (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
763         Add compositing time when bucketing runloop tasks, ignoring Paint events that are
764         contained within a Composite event.
765
766         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
767         (WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
768         Add Composite records to paint timeline row.
769
770         * UserInterface/Views/RenderingFrameTimelineView.js:
771         (WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
772         Small unrelated fix.
773
774         * UserInterface/Views/TimelineIcons.css:
775         (.composite-record .icon):
776         * UserInterface/Views/TimelineRecordBar.css:
777         (.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-composite > .segment):
778         * UserInterface/Views/TimelineRecordTreeElement.js:
779         (WebInspector.TimelineRecordTreeElement):
780         New styles and tree element icon.
781
782 2015-06-30  Joseph Pecoraro  <pecoraro@apple.com>
783
784         Web Inspector: iOS 8: Uncaught Exception expanding Object Prototype
785         https://bugs.webkit.org/show_bug.cgi?id=146427
786
787         Reviewed by Timothy Hatcher.
788
789         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
790         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
791         * UserInterface/Views/ObjectTreeView.js:
792         (WebInspector.ObjectTreeView.prototype._updateProperties):
793         We are supposed to receive value properties for __proto__ properties
794         so that we can immediately start showing information about the property.
795         When that is not the case, which appeared to only be on legacy
796         backends for the top level prototype, just ignore it.
797
798 2015-06-30  Joseph Pecoraro  <pecoraro@apple.com>
799
800         Web Inspector: Misc. Timeline cleanup
801         https://bugs.webkit.org/show_bug.cgi?id=146430
802
803         Reviewed by Timothy Hatcher.
804
805         * UserInterface/Models/Timeline.js:
806         (WebInspector.Timeline.prototype.reset):
807         Nobody listens for this event. Just remove it.
808
809         * UserInterface/Models/TimelineRecording.js:
810         Avoiding doing multiple lookups.
811
812         * UserInterface/Views/TimelineDataGridNode.js:
813         * UserInterface/Views/TimelineRecordingContentView.js:
814         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
815         * UserInterface/Views/TimelineView.js:
816         (WebInspector.TimelineView.prototype.updateLayout):
817         Eliminate some unnecessary deletes.
818
819 2015-06-29  Nikita Vasilyev  <nvasilyev@apple.com>
820
821         Web Inspector: Unable to select the text of an inline error message
822         https://bugs.webkit.org/show_bug.cgi?id=145813
823
824         Reviewed by Timothy Hatcher.
825
826         * UserInterface/Views/CodeMirrorOverrides.css:
827         (.CodeMirror-linewidget):
828         * UserInterface/Views/TextEditor.js:
829         (WebInspector.TextEditor.prototype.createWidgetForLine):
830
831 2015-06-29  Joseph Pecoraro  <pecoraro@apple.com>
832
833         Web Inspector: Remove harmless error for not getting named flows
834         https://bugs.webkit.org/show_bug.cgi?id=146417
835
836         Reviewed by Darin Adler.
837
838         * UserInterface/Controllers/DOMTreeManager.js:
839
840 2015-06-29  Joseph Pecoraro  <pecoraro@apple.com>
841
842         Web Inspector: Network errors (404) are missing location link in console messages
843         https://bugs.webkit.org/show_bug.cgi?id=146442
844
845         Reviewed by Darin Adler.
846
847         * UserInterface/Views/ConsoleMessageView.js:
848         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
849         Restore behavior of adding a location link for network messages with urls.
850
851 2015-06-29  Joseph Pecoraro  <pecoraro@apple.com>
852
853         Web Inspector: iOS 8: Resources Timeline Data does not show up
854         https://bugs.webkit.org/show_bug.cgi?id=146433
855
856         Reviewed by Timothy Hatcher.
857
858         There were a couple issues with initializing the legacy base timestamp
859         for attempting to dynamically compute monotonically increasing timestamps
860         for timeline events for legacy backends.
861
862             * Sometimes legacy timestamps were in seconds since epochs,
863               sometimes milliseconds. The frontend did not handle both.
864
865             * On navigations, even while resetting the base timestamp for
866               the first new record received, the main resource still had
867               a will send request time computed from the previous page's
868               time system. This patch re-uses the original timestamp for
869               this main resource as the new base and all future records
870               are computed relative to this.
871
872         * UserInterface/Controllers/FrameResourceManager.js:
873         (WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
874         (WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
875         * UserInterface/Models/Resource.js:
876         (WebInspector.Resource):
877         (WebInspector.Resource.prototype.get originalRequestWillBeSentTimestamp):
878         For legacy timestamp calculations, save the original request will be sent
879         timestamp on the Resource in case it is needed.
880
881         * UserInterface/Controllers/TimelineManager.js:
882         (WebInspector.TimelineManager.prototype._loadNewRecording):
883         When auto-starting a new recording for a navigation / reload, use the
884         main resource's request will be sent timestamp as the new base.
885
886         * UserInterface/Models/TimelineRecording.js:
887         Address legacy timeline timestamps by handling both legacy timestamps
888         that may be seconds / milliseconds.
889
890 2015-06-29  Joseph Pecoraro  <pecoraro@apple.com>
891
892         REGRESSION: Web Inspector: Jump to Definition is broken
893         https://bugs.webkit.org/show_bug.cgi?id=146376
894
895         Reviewed by Timothy Hatcher.
896
897         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
898         (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
899         Allow changing tabs when jumping to function definition.
900
901 2015-06-28  Nikita Vasilyev  <nvasilyev@apple.com>
902
903         Web Inspector: Wrong border color of console messages when filters are enabled
904         https://bugs.webkit.org/show_bug.cgi?id=146392
905
906         Reviewed by Timothy Hatcher.
907
908         * UserInterface/Views/LogContentView.css:
909         (.console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
910         (.console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
911
912 2015-06-25  Matt Baker  <mattbaker@apple.com>
913
914         Web Inspector: Wrong timeline selected after switching from Rendering Frames to Timelines
915         https://bugs.webkit.org/show_bug.cgi?id=146331
916
917         Reviewed by Timothy Hatcher.
918
919         * UserInterface/Views/TimelineSidebarPanel.js:
920         Set previously selected timeline type to null if no tree element is selected when switching
921         view mode to Rendering Frames.
922
923 2015-06-25  Joseph Pecoraro  <pecoraro@apple.com>
924
925         [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging
926         https://bugs.webkit.org/show_bug.cgi?id=146324
927
928         Reviewed by Timothy Hatcher.
929
930         * UserInterface/Base/Main.js:
931         On Mac 10.11 transition to using InspectorFrontendHost.startWindowDrag.
932         For older Macs continue to use InspectorFrontendHost.moveWindowBy.
933         
934         * UserInterface/Protocol/InspectorFrontendHostStub.js:
935         (WebInspector.InspectorFrontendHostStub.prototype.startWindowDrag):
936         Add the stub for InspectorFrontendHostStub.
937
938 2015-06-24  Devin Rousso  <drousso@apple.com>
939
940         Web Inspector: Pressing tab in the styles sidebar shouldn't insert a tab character
941         https://bugs.webkit.org/show_bug.cgi?id=146189
942
943         Reviewed by Timothy Hatcher.
944
945         * UserInterface/Controllers/CodeMirrorCompletionController.js: Added variable to control whether semicolons are added to the end of autocompleted css values.
946         (WebInspector.CodeMirrorCompletionController):
947         (WebInspector.CodeMirrorCompletionController.prototype.set noEndingSemicolon):
948         (WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
949         * UserInterface/Views/CSSStyleDeclarationSection.js:
950         (WebInspector.CSSStyleDeclarationSection):
951         (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorSwitchRule):
952         (WebInspector.CSSStyleDeclarationSection.prototype.focusRuleSelector):
953         (WebInspector.CSSStyleDeclarationSection.prototype.selectLastProperty):
954         (WebInspector.CSSStyleDeclarationSection.prototype.get selectorLocked):
955         (WebInspector.CSSStyleDeclarationSection.prototype.get locked):
956         (WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
957         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
958         (WebInspector.CSSStyleDeclarationTextEditor): Added functions for "Tab", "Shift-Tab", and "Shift-Enter" keypresses to improve usability.
959         (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectFirstProperty): Highlights the first property.
960         (WebInspector.CSSStyleDeclarationTextEditor.prototype.selectLastProperty): Highlights the last property.
961         (WebInspector.CSSStyleDeclarationTextEditor.prototype._insertNewlineAfterCurrentLine): Inserts a newline after the currently selected line.
962         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
963         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey): Pressing shift-tab will move the cursor to the previous non-word character that is immediately after a word character.
964         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
965         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey.highlightNextNameOrValue):
966         (WebInspector.CSSStyleDeclarationTextEditor.prototype._handleTabKey): Pressing tab will move the cursor to each space character until the end of the line is reached, at
967         which point the cursor will move to the beginning of the next line.  Once the cursor is at the last line, pressing tab again will insert a newline.
968         * UserInterface/Views/RulesStyleDetailsPanel.js:
969         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorNextRule): Switches the focused rule to the next section.
970         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorPrevRule): Switches the focused rule to the previous section.
971
972 2015-06-24  Joseph Pecoraro  <pecoraro@apple.com>
973
974         Web Inspector: console.group looks poor in console
975         https://bugs.webkit.org/show_bug.cgi?id=146295
976
977         Reviewed by Timothy Hatcher.
978
979         * Localizations/en.lproj/localizedStrings.js:
980         String for the default group name if you use console.group() without a name parameter.
981
982         * UserInterface/Views/LogContentView.css:
983         (.console-group-title::before):
984         Tweak the positioning and eliminate the log level ::before image.
985
986         * UserInterface/Views/ConsoleMessageView.js:
987         (WebInspector.ConsoleMessageView):
988         Reorder a bit to reduce a couple branches.
989
990         (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
991         Take a very straightforward approach for group names.
992
993 2015-06-24  Devin Rousso  <drousso@apple.com>
994
995         Web Inspector: Show warning icon for invalid CSS properties and/or values
996         https://bugs.webkit.org/show_bug.cgi?id=145657
997
998         Reviewed by Timothy Hatcher.
999
1000         * UserInterface/Models/CSSCompletions.js:
1001         (WebInspector.CSSCompletions.prototype.getClosestPropertyName): Calculates the levenshtein distance between a given property and every existing property name.  Returns the property name with the smallest distance or, in the case of multiple properties having the same distance, the first property in alphabetical order.
1002         (WebInspector.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Retruns if the property name exists only with a '-webkit-' prefix.
1003         (WebInspector.CSSCompletions):
1004         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1005         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker):
1006         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker.clickable:hover):
1007         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1008         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.duplicatePropertyExistsBelow): Determines if there exists a property below (visually) the given property that has the same name.
1009         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.generateInvalidMarker): Creates a warning icon marker at the given position with the given title.
1010         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded.instancesOfProperty): Returns the number of properties in the rule that have the same name.
1011         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): A button with a warning icon is now added to the beginning of an invalid property.  If this button is clicked, the property is replaced with the closest matching property and the autocomplete menu is opened.
1012
1013 2015-06-24  Devin Rousso  <drousso@apple.com>
1014
1015         Web Inspector: Background of Computed Styles is missing
1016         https://bugs.webkit.org/show_bug.cgi?id=146209
1017
1018         Reviewed by Timothy Hatcher.
1019
1020         * UserInterface/Views/ComputedStyleDetailsPanel.css:
1021         (.computed-style-properties.details-section): Added white background.
1022
1023 2015-06-24  Joseph Pecoraro  <pecoraro@apple.com>
1024
1025         Web Inspector: Right/Left arrow no longer works in console to expand/collapse ObjectTrees
1026         https://bugs.webkit.org/show_bug.cgi?id=141949
1027
1028         Reviewed by Timothy Hatcher.
1029
1030         * UserInterface/Views/ConsoleMessageView.js:
1031         (WebInspector.ConsoleMessageView):
1032         (WebInspector.ConsoleMessageView.prototype.get expandable):
1033         (WebInspector.ConsoleMessageView.prototype.set expandable): Deleted.
1034         (WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
1035         (WebInspector.ConsoleMessageView.prototype._appendStackTrace):
1036         (WebInspector.ConsoleMessageView.prototype._makeExpandable):
1037         Clarify what makes a ConsoleMessageView expandable or not.
1038
1039         (WebInspector.ConsoleMessageView.prototype.expand):
1040         (WebInspector.ConsoleMessageView.prototype.collapse):
1041         Handle the expand/collapse cases which could apply to the
1042         ConsoleMessageView itself or an inner ObjectTreeView if that is all we contain.
1043
1044         (WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
1045         Delete out of date comment. A console.log("message", obj) will want the
1046         object tree member variable to handle auto expanding/collapsing of the
1047         single object in the message.
1048
1049         * UserInterface/Views/LogContentView.js:
1050         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
1051         (WebInspector.LogContentView.prototype._rightArrowWasPressed):
1052         Use the higher level ConsoleMessageView objects accessible from the element
1053         to call through to expand/collapse.
1054
1055 2015-06-23  Joseph Pecoraro  <pecoraro@apple.com>
1056
1057         Web Inspector: Reduce QuickConsole DidResize events if it did not change
1058         https://bugs.webkit.org/show_bug.cgi?id=146258
1059
1060         Reviewed by Timothy Hatcher.
1061
1062         * UserInterface/Views/QuickConsole.js:
1063         (WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged):
1064         Do not trigger the event unless there was a change in visibility.
1065
1066 2015-06-23  Joseph Pecoraro  <pecoraro@apple.com>
1067
1068         Web Inspector: TextEditor scroll position not correctly restored when switching tabs
1069         https://bugs.webkit.org/show_bug.cgi?id=146254
1070
1071         Reviewed by Timothy Hatcher.
1072
1073         * UserInterface/Views/TextEditor.js:
1074         (WebInspector.TextEditor.prototype.updateLayout):
1075         Workaround a larger issue with ContentView restoration so that
1076         TextEditors restore their scroll position as expected.
1077
1078 2015-06-23  Joseph Pecoraro  <pecoraro@apple.com>
1079
1080         Web Inspector: Some brief previews are incorrectly treated as lossless
1081         https://bugs.webkit.org/show_bug.cgi?id=146247
1082
1083         Reviewed by Timothy Hatcher.
1084
1085         * UserInterface/Views/ObjectPreviewView.js:
1086         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
1087         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1088         When we have a brief preview we may need to override lossless / overflow
1089         if the preview view itself shows less properties than were in the preview.
1090
1091 2015-06-23  Matt Baker  <mattbaker@apple.com>
1092
1093         Web Inspector: Layout & Rendering timeline should show paint and layout records in separate rows
1094         https://bugs.webkit.org/show_bug.cgi?id=146119
1095
1096         Reviewed by Timothy Hatcher.
1097
1098         This patch makes the original Layout & Rendering timeline visually consistent with the Rendering Frames
1099         timeline, which uses green to distinguish Paint from Layout. In order to support having record bars with
1100         different colors in the same overview graph, the timeline has been split into two rows.
1101
1102         * UserInterface/Views/LayoutTimelineOverviewGraph.css:
1103         (.timeline-overview-graph.layout > .graph-row):
1104         (.timeline-overview-graph.layout > .graph-row > .timeline-record-bar):
1105         (.timeline-overview-graph.layout > .graph-row > .timeline-record-bar > .segment):
1106         New row styles.
1107
1108         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
1109         (WebInspector.LayoutTimelineOverviewGraph.prototype.reset.createRecordRow):
1110         (WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
1111         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
1112         (WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar):
1113         (WebInspector.LayoutTimelineOverviewGraph.prototype._updateRowLayout):
1114         (WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
1115         (WebInspector.LayoutTimelineOverviewGraph): Deleted.
1116         Added bookkeeping objects for timeline row elements and their associated records.
1117
1118         * UserInterface/Views/TimelineRecordBar.css:
1119         (.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-paint > .segment):
1120         New style for layout record event types.
1121
1122         * UserInterface/Views/TimelineRecordBar.js:
1123         (WebInspector.TimelineRecordBar.prototype.set records):
1124         Add style class for eventType, if present.
1125
1126 2015-06-22  Devin Rousso  <drousso@apple.com>
1127
1128         Web Inspector: gaps between sections of the styles sidebar rules tab confusing, should say "Media: all"
1129         https://bugs.webkit.org/show_bug.cgi?id=142918
1130
1131         Reviewed by Timothy Hatcher.
1132
1133         * UserInterface/Views/RulesStyleDetailsPanel.css:
1134         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) ~ .label):
1135         Now properly adds padding to filtered labels.
1136         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label): Deleted.
1137         * UserInterface/Views/RulesStyleDetailsPanel.js:
1138         (WebInspector.RulesStyleDetailsPanel.prototype.refresh): If a section of CSS rules has no media or inheritance, add
1139         a label that says "Media: all" above the section.
1140
1141 2015-06-22  Nikita Vasilyev  <nvasilyev@apple.com>
1142
1143         Web Inspector: Consider making read-only style rules have a darker background
1144         https://bugs.webkit.org/show_bug.cgi?id=145983
1145
1146         Reviewed by Timothy Hatcher.
1147
1148         * UserInterface/Views/CSSStyleDeclarationSection.css:
1149         (.style-declaration-section:not(.locked)):
1150         (.style-declaration-section): Deleted.
1151         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1152         (.css-style-text-editor.read-only > .CodeMirror):
1153
1154 2015-06-22  Nikita Vasilyev  <nvasilyev@apple.com>
1155
1156         Web Inspector: Unable to select text of user input messages in the console
1157         https://bugs.webkit.org/show_bug.cgi?id=145888
1158
1159         Reviewed by Timothy Hatcher.
1160
1161         * UserInterface/Views/ConsoleMessageView.css:
1162         (.console-user-command > .console-message-text):
1163
1164 2015-06-20  Nikita Vasilyev  <nvasilyev@apple.com>
1165
1166         Web Inspector: Unable to select parent element in the DOM tree path bar
1167         https://bugs.webkit.org/show_bug.cgi?id=145810
1168
1169         Reviewed by Timothy Hatcher.
1170
1171         * UserInterface/Views/DOMTreeContentView.js:
1172         (WebInspector.DOMTreeContentView.prototype.get selectionPathComponents):
1173         * UserInterface/Views/HierarchicalPathComponent.js:
1174         (WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
1175         (WebInspector.HierarchicalPathComponent.prototype._selectElementMouseUp):
1176         (WebInspector.HierarchicalPathComponent.prototype._selectElementSelectionChanged):
1177         (WebInspector.HierarchicalPathComponent):
1178         (WebInspector.HierarchicalPathComponent.prototype._selectElementMouseDown): Deleted.
1179
1180 2015-06-19  Joseph Pecoraro  <pecoraro@apple.com>
1181
1182         Web Inspector: Duplication of style attribute in rules panel for shadow content
1183         https://bugs.webkit.org/show_bug.cgi?id=146176
1184
1185         Reviewed by Timothy Hatcher.
1186
1187         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1188         The styleText can be non-empty for a readonly editor if the editor is for
1189         the style attribute of a shadow dom node. Instead of assuming it is empty
1190         we can just clear the editor ourselves and regenerate from properties.
1191
1192 2015-06-19  Devin Rousso  <drousso@apple.com>
1193
1194         Web Inspector: Highlight currently edited CSS selector
1195         https://bugs.webkit.org/show_bug.cgi?id=145658
1196
1197         Reviewed by Joseph Pecoraro.
1198
1199         * UserInterface/Views/CSSStyleDeclarationSection.js:
1200         (WebInspector.CSSStyleDeclarationSection): Added event listeners on the selector text for mouseover and mouseout.
1201         (WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector): Selector text mouseover action that highlights all nodes that match the selector string in the corresponding frame.
1202         (WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Selector text mouseout action that clears all highlights on matching nodes.
1203         * UserInterface/Views/DOMNode.js:
1204         (WebInspector.DOMNode): If the payload contains a frameId, then save it.
1205         (WebInspector.DOMNode.frameIdentifier):
1206
1207 2015-06-19  Joseph Pecoraro  <pecoraro@apple.com>
1208
1209         Web Inspector: Overlapping dashboard views causing lots of layers in source view
1210         https://bugs.webkit.org/show_bug.cgi?id=146153
1211
1212         Reviewed by Darin Adler.
1213
1214         * UserInterface/Views/DashboardContainerView.css:
1215         (.toolbar .dashboard:not(.visible)):
1216         Hide non-visible dashboard views. The !important is used
1217         to override more specific toolbar .dashboard.foo styles.
1218
1219 2015-06-19  Devin Rousso  <drousso@apple.com>
1220
1221         Web Inspector: Make rule icon toggle all properties for that selector on and off
1222         https://bugs.webkit.org/show_bug.cgi?id=146031
1223
1224         Reviewed by Timothy Hatcher.
1225
1226         * UserInterface/Views/CSSStyleDeclarationSection.css:
1227         (.style-declaration-section > .header > .icon.toggle-able:hover):
1228         (.style-declaration-section.rule-disabled > .header > .icon):
1229         * UserInterface/Views/CSSStyleDeclarationSection.js:
1230         (WebInspector.CSSStyleDeclarationSection): Added event listener to selector icon to toggle commenting of all properties for that rule.
1231         (WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff): Adds or removes comments to all properties for that rule.
1232         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1233         (WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties.uncommentProperties):
1234         (WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties): Uncomments all properties.
1235         (WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties): Comments out all properties.
1236         (WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCheckboxChanged): Moved comment logic to its own function.
1237         (WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged): Moved uncomment logic to its own function.
1238
1239 2015-06-19  Jon Lee  <jonlee@apple.com>
1240
1241         Update font and font-family keyword completions
1242         https://bugs.webkit.org/show_bug.cgi?id=144558
1243         <rdar://problem/20795292>
1244
1245         Reviewed by Timothy Hatcher.
1246
1247         * UserInterface/Models/CSSKeywordCompletions.js: Replace -webkit-system-font and
1248         -apple-system-font with -apple-system, which is the recommended token for getting the
1249         system font. Also add -title{1,2,3} for font, as they were missing, but already exist
1250         in font-family.
1251
1252 2015-06-19  Joseph Pecoraro  <pecoraro@apple.com>
1253
1254         Web Inspector: Avoid getOwnPropertyNames/Symbols on very large lists
1255         https://bugs.webkit.org/show_bug.cgi?id=146141
1256
1257         Reviewed by Timothy Hatcher.
1258
1259         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
1260         (WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
1261         When building completions for a large array, instead of building a list of all the indices
1262         just send a single number back to the frontend and let it generate a list for completion.
1263         We should do even better and avoid building a lookup table here for completion of an index.
1264
1265 2015-06-18  Matt Baker  <mattbaker@apple.com>
1266
1267         Web Inspector: Rendering Frames timeline selection should snap to frame boundaries
1268         https://bugs.webkit.org/show_bug.cgi?id=146120
1269
1270         Reviewed by Timothy Hatcher.
1271
1272         * UserInterface/Views/RenderingFrameTimelineOverview.js:
1273         Enable snapping to frame boundaries.
1274
1275         * UserInterface/Views/TimelineRecordingContentView.js:
1276         (WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
1277         Updated filtering to account for ruler snapping.
1278
1279         * UserInterface/Views/TimelineRuler.js:
1280         (WebInspector.TimelineRuler.prototype.get snapInterval):
1281         (WebInspector.TimelineRuler.prototype.set snapInterval):
1282         (WebInspector.TimelineRuler.prototype.set selectionStartTime):
1283         (WebInspector.TimelineRuler.prototype.set selectionEndTime):
1284         (WebInspector.TimelineRuler.prototype._snapValue):
1285         (WebInspector.TimelineRuler.prototype._handleMouseMove):
1286         Added support for snapping to a specified interval.
1287
1288         * UserInterface/Views/TimelineSidebarPanel.js:
1289         Removed unnecessary code.
1290
1291 2015-06-18  Devin Rousso  <drousso@apple.com>
1292
1293         Web Inspector: Add a filter for CSS properties in the Styles sidebar
1294         https://bugs.webkit.org/show_bug.cgi?id=145536
1295
1296         Reviewed by Timothy Hatcher.
1297
1298         * UserInterface/Base/Utilities.js: Added function to Strings that returns an array of all matching indexes of a given string.
1299         (.value):
1300         * UserInterface/Views/CSSStyleDeclarationSection.js:
1301         (WebInspector.CSSStyleDeclarationSection):
1302         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
1303         (WebInspector.CSSStyleDeclarationSection.prototype.findMatchingPropertiesAndSelectors): Loops through the property list and selectors of each section to find matches to the filtered text.
1304         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1305         (WebInspector.CSSStyleDeclarationTextEditor.prototype.findMatchingProperties): Searches through the properties list to find and highlight all matching properties.
1306         (WebInspector.CSSStyleDeclarationTextEditor.prototype.removeNonMatchingProperties): Removes all properties that do not match and highlights the specific matched text in matching properties.
1307         (WebInspector.CSSStyleDeclarationTextEditor.prototype.resetFilteredProperties): Restores all properties to full visibility and removes any highlighting.
1308         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Classes are added to selections of the text editor of that partiular selection contains text which matches the filter (see CSSStyleDetailsSidebarPanel.css for different classes).
1309         (WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties): If a filter is active, find properties matching the filter instead of all properties.
1310         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1311         (.sidebar > .panel.details.css-style > .content.has-filter-bar + .filter-bar):
1312         (.sidebar > .panel.details.css-style > .content:not(.has-filter-bar) + .filter-bar):
1313         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1314         (WebInspector.CSSStyleDetailsSidebarPanel): Added a filter bar to the CSS sidebar.
1315         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): Switching panels preserves and applies filter bar text.
1316         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange): Function called when the filter bar text changes that calls the current panel's filterDidChange function if it exists.
1317         * UserInterface/Views/FilterBar.js: Added function and variable to check if the text in the filter bar had changed.
1318         * UserInterface/Views/MetricsStyleDetailsPanel.js:
1319         (WebInspector.MetricsStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
1320         (WebInspector.MetricsStyleDetailsPanel): Added delegate variable to constructor.
1321         * UserInterface/Views/RulesStyleDetailsPanel.css:
1322         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label):
1323         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label ~ .label):
1324         (.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label):
1325         (.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule):
1326         (.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)):
1327         (.sidebar > .panel.details.css-style > .content:not(.filter-in-progress) > .rules > .new-rule + .style-declaration-section):
1328         (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .no-filter-results):
1329         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results):
1330         (.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules.filter-non-matching > .no-filter-results > .no-filter-results-message):
1331         * UserInterface/Views/RulesStyleDetailsPanel.js:
1332         (WebInspector.RulesStyleDetailsPanel): Added delegate variable to constructor.
1333         (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Now calls superclass refresh.
1334         (WebInspector.RulesStyleDetailsPanel.prototype.filterDidChange): Function to search through the computed styles list and highlight all matched properties and selectors of the filter bar text, turning all non matching properties slightly opaque (unless a selector for that property is a match).
1335         (WebInspector.StyleDetailsPanel): Added delegate variable to constructor.
1336         (WebInspector.StyleDetailsPanel.prototype.refresh): Added event dispatch for panel refresh.
1337
1338 2015-06-18  Devin Rousso  <drousso@apple.com>
1339
1340         Web Inspector: Ability to Copy entire CSS Rule from Styles Sidebar
1341         https://bugs.webkit.org/show_bug.cgi?id=138812
1342
1343         Reviewed by Timothy Hatcher.
1344
1345         * Localizations/en.lproj/localizedStrings.js:
1346         * UserInterface/Views/CSSStyleDeclarationSection.js:
1347         (WebInspector.CSSStyleDeclarationSection): Right clicking on the header of a rule will replcae the default context menu to allow copying of the entire rule to the clipboard.
1348         (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent): Creates a new context menu to copy the entire CSS rule.
1349         (WebInspector.CSSStyleDeclarationSection.prototype._generateCSSRuleString): Generates a string representing the formatted CSS rule.
1350
1351 2015-06-18  Joseph Pecoraro  <pecoraro@apple.com>
1352
1353         Web Inspector: Improve a few more node preview types
1354         https://bugs.webkit.org/show_bug.cgi?id=146048
1355
1356         Reviewed by Timothy Hatcher.
1357
1358         * UserInterface/Views/FormattedValue.js:
1359         (WebInspector.FormattedValue.createElementForNodePreview):
1360
1361 2015-06-18  Devin Rousso  <drousso@apple.com>
1362
1363         Web Inspector: New Rule button doesn't reveal the newly added rule if not visible upon creation
1364         https://bugs.webkit.org/show_bug.cgi?id=117600
1365
1366         Reviewed by Timothy Hatcher.
1367
1368         * UserInterface/Views/RulesStyleDetailsPanel.js: Made previousFocusedSection into a member variable of the RulesStyleDetailsPanel.  This way, when the nodeStyles is refreshed (when a new rule is added), the previousFocusedSection will be scrolled into view.
1369         (WebInspector.RulesStyleDetailsPanel):
1370         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
1371         (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
1372         (WebInspector.RulesStyleDetailsPanel.prototype.refresh): Deleted.
1373
1374 2015-06-18  Commit Queue  <commit-queue@webkit.org>
1375
1376         Unreviewed, rolling out r185671.
1377         https://bugs.webkit.org/show_bug.cgi?id=146114
1378
1379         Caused frequent flaky failures on profiler tests (Requested by
1380         ap on #webkit).
1381
1382         Reverted changeset:
1383
1384         "Web Inspector: Improve a few more node preview types"
1385         https://bugs.webkit.org/show_bug.cgi?id=146048
1386         http://trac.webkit.org/changeset/185671
1387
1388 2015-06-17  Joseph Pecoraro  <pecoraro@apple.com>
1389
1390         Web Inspector: Improve a few more node preview types
1391         https://bugs.webkit.org/show_bug.cgi?id=146048
1392
1393         Reviewed by Timothy Hatcher.
1394
1395         * UserInterface/Views/FormattedValue.js:
1396         (WebInspector.FormattedValue.createElementForNodePreview):
1397
1398 2015-06-17  Diego Pino Garcia  <dpino@igalia.com>
1399
1400         Web Inspector: Show/Hide sidebar buttons have inconsistent highlighted state
1401         https://bugs.webkit.org/show_bug.cgi?id=145073
1402
1403         Reviewed by Joseph Pecoraro.
1404
1405         * UserInterface/Views/ContentBrowserTabContentView.js:
1406         (WebInspector.ContentBrowserTabContentView.prototype._detailsSidebarPanelSelected):
1407
1408 2015-06-16  Joseph Pecoraro  <pecoraro@apple.com>
1409
1410         Web Inspector: Inspector Scripts evaluated in the page should not be searchable
1411         https://bugs.webkit.org/show_bug.cgi?id=146040
1412
1413         Reviewed by Darin Adler.
1414
1415         Any script with a __WebInspector source URL will be hidden by the tools.
1416         There were a number of ways the inspector could evaluate script on the page
1417         without getting the sourceURL and therefore not getting hidden. Audit
1418         all cases of Runtime.evaluate, Runtime.callFunctionOn, and
1419         Debugger.evaluateOnCallFrame, to ensure we have an appropriate source URL.
1420
1421         * UserInterface/Base/Utilities.js:
1422         (appendWebInspectorSourceURL):
1423         Helper to append a __WebInspectorInternal__ sourceURL to a string that may
1424         be evaluated directly on the inspected context.
1425
1426         * UserInterface/Controllers/DOMTreeManager.js:
1427         (WebInspector.DOMTreeManager.domNodeResolved):
1428         * UserInterface/Controllers/JavaScriptLogViewController.js:
1429         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted): Deleted.
1430         * UserInterface/Controllers/RuntimeManager.js:
1431         * UserInterface/Models/DOMTree.js:
1432         (WebInspector.DOMTree.prototype._requestRootDOMNode):
1433         * UserInterface/Protocol/RemoteObject.js:
1434         (WebInspector.RemoteObject.):
1435         * UserInterface/Views/SourceCodeTextEditor.js:
1436         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
1437         Ensure all cases that evaluate directly on the inspected page / context
1438         have the intenral source URL.
1439
1440 2015-06-16  Matt Baker  <mattbaker@apple.com>
1441
1442         Web Inspector: REGRESSION (r171645): up/down key navigation of timeline sidebar tree elements is broken when scope bar filters are applied
1443         https://bugs.webkit.org/show_bug.cgi?id=142315
1444
1445         Reviewed by Timothy Hatcher.
1446
1447         TreeOutline's element traversal algorithms have been rewritten to correctly skip over unrevealed tree elements.
1448         Previously traversal would halt after encountering a hidden element. We now use an iterative approach, with
1449         each iteration producing the next (or previous) element, with respect to the last candidate element. Iteration
1450         begins with the current node, and halts once a valid element is found or candidate elements are exhausted.
1451
1452         * UserInterface/Views/TreeOutline.js:
1453         (WebInspector.TreeElement.prototype.traverseNextTreeElement.shouldSkip):
1454         (WebInspector.TreeElement.prototype.traverseNextTreeElement):
1455         (WebInspector.TreeElement.prototype.traversePreviousTreeElement.shouldSkip):
1456         (WebInspector.TreeElement.prototype.traversePreviousTreeElement):
1457
1458 2015-06-15  Joseph Pecoraro  <pecoraro@apple.com>
1459
1460         Web Inspector: Stylize Node Previews
1461         https://bugs.webkit.org/show_bug.cgi?id=145990
1462
1463         Reviewed by Timothy Hatcher.
1464
1465         * UserInterface/Views/FormattedValue.js:
1466         (WebInspector.FormattedValue.createElementForNodePreview):
1467         Style a node preview like a DOMNode. It is a simple small snippet.
1468
1469         * UserInterface/Views/ObjectPreviewView.js:
1470         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1471         Use node previews in ObjectPreviewViews.
1472
1473 2015-06-15  Joseph Pecoraro  <pecoraro@apple.com>
1474
1475         Web Inspector: Improve some cases of "Object?" Type Annotations
1476         https://bugs.webkit.org/show_bug.cgi?id=145954
1477
1478         Reviewed by Timothy Hatcher.
1479
1480         * UserInterface/Views/TypeTokenView.js:
1481         (WebInspector.TypeTokenView.prototype._displayTypeName):
1482         The TypeSet inclusions cover all types, so we can use the leastCommonAncestor
1483         name as long as the type set is just object or object and null/undefined.
1484         If the typeset includes other primitives then it will gracefully go down
1485         below to become something like Object or (many). 
1486
1487 2015-06-14  Andres Gomez  <agomez@igalia.com>
1488
1489         [GTK] Web Inspector: Update icon so Rendering Frames timeline distinguish between layout and painting
1490         https://bugs.webkit.org/show_bug.cgi?id=145956
1491
1492         Reviewed by Carlos Garcia Campos.
1493
1494         * UserInterface/Images/gtk/TimelineRecordPaint.svg:
1495         Changed to use green color.
1496
1497 2015-06-13  Joseph Pecoraro  <pecoraro@apple.com>
1498
1499         Web Inspector: console.table() with a list of objects no longer works
1500         https://bugs.webkit.org/show_bug.cgi?id=145952
1501
1502         Reviewed by Timothy Hatcher.
1503
1504         * UserInterface/Views/ConsoleMessageView.js:
1505         (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
1506         (WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
1507         Don't allow expanding a cosole.table message, and don't output the total
1508         object even if the table preview was lossless, as the experience is poor.
1509
1510 2015-06-11  Joseph Pecoraro  <pecoraro@apple.com>
1511
1512         Web Inspector: CSS Regions not displaying DOM Trees in inspector
1513         https://bugs.webkit.org/show_bug.cgi?id=145903
1514
1515         Reviewed by Timothy Hatcher.
1516
1517         * UserInterface/Controllers/DOMTreeManager.js:
1518         (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
1519         Fix function inside the assertion to actually return a value.
1520
1521         * UserInterface/Views/DOMTreeOutline.js:
1522         (WebInspector.DOMTreeOutline.prototype.update):
1523         For DOMTreeOutlines without a root node, don't clear the tree on updates,
1524         since that will clear the nodes that have already been added explicitly.
1525
1526         * UserInterface/Views/ResourceSidebarPanel.js:
1527         (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
1528         * UserInterface/Views/ResourcesTabContentView.js:
1529         (WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
1530         ResourceTab and sidebar can deal with ContentFlow related views.
1531
1532 2015-06-11  Joseph Pecoraro  <pecoraro@apple.com>
1533
1534         Web Inspector: IndexedDB data not showing for MDN example page
1535         https://bugs.webkit.org/show_bug.cgi?id=145851
1536
1537         Reviewed by Anders Carlsson.
1538
1539         * UserInterface/Views/StorageSidebarPanel.js:
1540         (WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
1541         Fix typo in Storage tab refactoring that was causing an
1542         uncaught exception and not showing Indexed DBs.
1543
1544 2015-06-11  Devin Rousso  <drousso@apple.com>
1545
1546         Web Inspector: font-family names interpreted as color
1547         https://bugs.webkit.org/show_bug.cgi?id=123468
1548
1549         Reviewed by Timothy Hatcher.
1550
1551         * UserInterface/Views/CodeMirrorAdditions.js: Added logic to prevent color picker buttons from appearing before colors that come after a quote character (both " and ').
1552
1553 2015-06-11  Matt Baker  <mattbaker@apple.com>
1554
1555         Web Inspector: Rendering Frames timeline should distinguish between layout and painting
1556         https://bugs.webkit.org/show_bug.cgi?id=145856
1557
1558         Reviewed by Timothy Hatcher.
1559
1560         This patch formalizes the runloop task concept in the frontend, adds new Paint task type to the Rendering
1561         Frames timeline, and reorders UI elements such as chart sections and frame "segments" to match the order in
1562         which tasks are executed within the runloop.
1563
1564         We will need to make UI changes to the standard Timelines view in a follow up patch, since tree element icons
1565         for Paint records now use a different color that those of other Layout records.
1566
1567         * UserInterface/Images/TimelineRecordPaint.svg:
1568         Changed to use green color.
1569
1570         * UserInterface/Models/RenderingFrameTimelineRecord.js:
1571         (WebInspector.RenderingFrameTimelineRecord):
1572         (WebInspector.RenderingFrameTimelineRecord.displayNameForTaskType):
1573         (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.get validRecordForTaskType):
1574         (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask.set return):
1575         (WebInspector.RenderingFrameTimelineRecord.prototype.durationForTask):
1576         (WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder): Deleted.
1577         (WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var): Deleted.
1578         Added TaskType enum to decouple runloop task types from timeline record types, and removed duration remainder
1579         support now that "Other" has an associated task type.
1580
1581         * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
1582         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
1583         (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
1584         * UserInterface/Views/RenderingFrameTimelineView.js:
1585         (WebInspector.RenderingFrameTimelineView):
1586         Added new grid column for Paint task, reordered columns to be consistent with the rest of the UI.
1587
1588         * UserInterface/Views/TimelineRecordFrame.css:
1589         (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-script):
1590         (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-layout):
1591         (.timeline-record-frame > .frame > .duration.rendering-frame-timeline-record-paint):
1592         (.timeline-record-frame > .frame > .duration): Deleted.
1593         (.timeline-record-frame > .frame > .duration.timeline-record-type-network): Deleted.
1594         (.timeline-record-frame > .frame > .duration.timeline-record-type-layout): Deleted.
1595         (.timeline-record-frame > .frame > .duration.timeline-record-type-script): Deleted.
1596         Updated styles for Render Frame tasks.
1597
1598         * UserInterface/Views/TimelineRecordFrame.js:
1599         (WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
1600         Updated to use Render Frame task types. Frame segment insertion order is now consistent with the rest of the UI.
1601
1602         * UserInterface/Views/TimelineSidebarPanel.js:
1603         (WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.chartData.Object.keys.map):
1604         (WebInspector.TimelineSidebarPanel.set this):
1605         (WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.get this):
1606         (WebInspector.TimelineSidebarPanel): Deleted.
1607         (WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart.durationForRecordType): Deleted.
1608         (WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart): Deleted.
1609         Updated to use Render Frame task types.
1610
1611 2015-06-11  Matt Baker  <mattbaker@apple.com>
1612
1613         Web Inspector: Wrong overview graph shown after switching from Frames to Timelines
1614         https://bugs.webkit.org/show_bug.cgi?id=145778
1615
1616         Reviewed by Timothy Hatcher.
1617
1618         TimelineSidebarPanel stores a reference to the selected timeline before switching to the Rendering Frames view,
1619         which is used to restore the tree selection, overview graph, and content views when switching back to the
1620         standard Timelines view. However if another recording is created before switching, the previously selected
1621         timeline tracked by the sidebar cannot be restored, since it doesn't belong to the active recording.
1622
1623         This is addressed by storing the previously selected timeline type, rather than the timeline object itself.
1624         The type is also updated whenever the selected timeline in the tree outline changes, ensuring that the correct
1625         timeline will always be restored.
1626
1627         * UserInterface/Views/TimelineSidebarPanel.js:
1628         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
1629         (WebInspector.TimelineSidebarPanel.get else): Deleted.
1630         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if): Deleted.
1631         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject): Deleted.
1632
1633 2015-06-08  Matt Baker  <mattbaker@apple.com>
1634
1635         Web Inspector: Clearing active Timeline recording should stop capturing
1636         https://bugs.webkit.org/show_bug.cgi?id=145767
1637
1638         Reviewed by Joseph Pecoraro.
1639
1640         * UserInterface/Views/TimelineRecordingContentView.js:
1641         (WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
1642         Stop capturing if necessary.
1643
1644 2015-06-07  Tobias Reiss  <tobi+webkit@basecode.de>
1645
1646         Web Inspector: Add PrettyPrinter CSSRule tests
1647         https://bugs.webkit.org/show_bug.cgi?id=145740
1648
1649         Reviewed by Brian Burg.
1650
1651         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon-expected.css: Added.
1652         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-colon.css: Added.
1653         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma-expected.css: Added.
1654         * Tools/PrettyPrinting/css-rule-tests/add-whitespace-after-comma.css: Added.
1655         * Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon-expected.css: Added.
1656         * Tools/PrettyPrinting/css-rule-tests/do-not-append-semicolon.css: Added.
1657         * Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Added.
1658         * Tools/PrettyPrinting/css-rule-tests/invalid-property-is-not-removed.css: Added.
1659         * Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value-expected.css: Added.
1660         * Tools/PrettyPrinting/css-rule-tests/keep-prefixed-value.css: Added.
1661         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Added.
1662         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-colon.css: Added.
1663         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Added.
1664         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-comment.css: Added.
1665         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Added.
1666         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Added.
1667         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Added.
1668         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Added.
1669         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property-expected.css: Added.
1670         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-property.css: Added.
1671         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Added.
1672         * Tools/PrettyPrinting/css-rule-tests/remove-whitespace-before-semicolon.css: Added.
1673         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Added.
1674         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-comment.css: Added.
1675         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Added.
1676         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Added.
1677         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Added.
1678         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Added.
1679         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property-expected.css: Added.
1680         * Tools/PrettyPrinting/css-rule-tests/split-comment-followed-by-property.css: Added.
1681         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Added.
1682         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Added.
1683         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Added.
1684         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Added.
1685         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Added.
1686         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Added.
1687         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Added.
1688         * Tools/PrettyPrinting/css-rule-tests/split-invalid-property-followed-by-property.css: Added.
1689         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment-expected.css: Added.
1690         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-comment.css: Added.
1691         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Added.
1692         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-invalid-property.css: Added.
1693         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Added.
1694         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Added.
1695         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property-expected.css: Added.
1696         * Tools/PrettyPrinting/css-rule-tests/split-property-followed-by-property.css: Added.
1697         * Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Added.
1698         * Tools/PrettyPrinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Added.
1699
1700 2015-06-05  Devin Rousso  <drousso@apple.com>
1701
1702         Web Inspector: Fixing code style and adding more limitations for bug 141262
1703         https://bugs.webkit.org/show_bug.cgi?id=145668
1704
1705         Reviewed by Timothy Hatcher.
1706
1707         * UserInterface/Models/CSSCompletions.js:
1708         (WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name.
1709         (WebInspector.CSSCompletions): Added isValidPropertyName function.
1710         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1711         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly.
1712
1713 2015-06-05  Devin Rousso  <drousso@apple.com>
1714
1715         Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections
1716         https://bugs.webkit.org/show_bug.cgi?id=145399
1717
1718         Reviewed by Timothy Hatcher.
1719
1720         * UserInterface/Views/CSSStyleDeclarationSection.js:
1721         (WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor.
1722         (WebInspector.CSSStyleDeclarationSection.prototype.clearSelection):
1723         (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):
1724         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1725         (WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus".
1726         (WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0.
1727         (WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused
1728         * UserInterface/Views/RulesStyleDetailsPanel.js:
1729         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
1730         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them.
1731
1732 2015-06-05  Joseph Pecoraro  <pecoraro@apple.com>
1733
1734         REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value')
1735         https://bugs.webkit.org/show_bug.cgi?id=145695
1736
1737         Reviewed by Mark Lam.
1738
1739         Move and rename the clear log on reload setting property from
1740         WebInspector (Main.js) to LogManager (shared with tests).
1741
1742         * UserInterface/Base/Main.js:
1743         (WebInspector.loaded): Deleted.
1744         * UserInterface/Controllers/LogManager.js:
1745         (WebInspector.LogManager):
1746         (WebInspector.LogManager.prototype._delayedMessagesCleared):
1747         * UserInterface/Views/LogContentView.js:
1748         (WebInspector.LogContentView.prototype._sessionStarted):
1749         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
1750         (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
1751
1752 2015-06-05  Nikita Vasilyev  <nvasilyev@apple.com>
1753
1754         Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates
1755         https://bugs.webkit.org/show_bug.cgi?id=144553
1756
1757         Add missing _mainResourceDidChange, which was removed after switching to the tabs UI.
1758
1759         Reviewed by Timothy Hatcher.
1760
1761         * UserInterface/Models/DefaultDashboard.js:
1762         (WebInspector.DefaultDashboard):
1763         _waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it.
1764
1765         (WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added.
1766
1767         (WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed.
1768         Unused.
1769
1770 2015-06-05  Matt Baker  <mattbaker@apple.com>
1771
1772         Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline
1773         https://bugs.webkit.org/show_bug.cgi?id=145671
1774
1775         Reviewed by Timothy Hatcher.
1776
1777         * Localizations/en.lproj/localizedStrings.js:
1778         "Idle" string no longer used.
1779
1780         * UserInterface/Views/TimelineRecordFrame.js:
1781         Reduced maximum frame width by 2px.
1782
1783         * UserInterface/Views/TimelineSidebarPanel.js:
1784         (WebInspector.TimelineSidebarPanel):
1785         (WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
1786         Added inner radius to chart and removed "Idle" value.
1787
1788 2015-06-04  Joseph Pecoraro  <pecoraro@apple.com>
1789
1790         Web Inspector: Class constructor appearing as Object Tree property does not include parameters
1791         https://bugs.webkit.org/show_bug.cgi?id=145661
1792
1793         Reviewed by Timothy Hatcher.
1794
1795         * UserInterface/Protocol/RemoteObject.js:
1796         (WebInspector.RemoteObject):
1797         (WebInspector.RemoteObject.fromPrimitiveValue):
1798         (WebInspector.RemoteObject.fromPayload):
1799         (WebInspector.RemoteObject.prototype.get functionDescription):
1800         Include the className as only use it for "class" types to override
1801         the normal description string. Stash the actual function description
1802         in a property we can access later.
1803
1804         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1805         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
1806         Even if this property is a "class" we want to specifically parse it's
1807         function description string. So use functionDescription.
1808
1809 2015-06-04  Nikita Vasilyev  <nvasilyev@apple.com>
1810
1811         Web Inspector: Close and open tabs on mouseup, not mousedown
1812         https://bugs.webkit.org/show_bug.cgi?id=145656
1813
1814         Match Safari's behaviour.
1815
1816         Reviewed by Timothy Hatcher.
1817
1818         * UserInterface/Views/TabBar.js:
1819         (WebInspector.TabBar):
1820         (WebInspector.TabBar.prototype.set newTabItem):
1821         (WebInspector.TabBar.prototype._handleMouseDown):
1822         (WebInspector.TabBar.prototype._handleClick): Added.
1823         (WebInspector.TabBar.prototype._handleMouseUp):
1824         (WebInspector.TabBar.prototype._handleNewTabClick): Added.
1825         (WebInspector.TabBar.prototype._handleMouseMoved):
1826
1827 2015-06-04  Nikita Vasilyev  <nvasilyev@apple.com>
1828
1829         Web Inspector: Decrease tabs height to match Safari's tabs height
1830         https://bugs.webkit.org/show_bug.cgi?id=145647
1831
1832         Reviewed by Timothy Hatcher.
1833
1834         * UserInterface/Views/TabBar.css:
1835         (.tab-bar):
1836
1837 2015-06-04  Tobias Reiss  <tobi+webkit@basecode.de>
1838         
1839         Web Inspector: Activity Viewer does not update on "Clear Log on reload"
1840         https://bugs.webkit.org/show_bug.cgi?id=145466
1841         
1842         Reviewed by Joseph Pecoraro.
1843
1844         1. Isolate logic within LogManager and remove hacks/logic from all other files
1845         2. Within LogManager: Differentiate "messagesCleared" calls
1846          a) that happen as a result of a "requested clear" by Frontend (e.g. Button)
1847          b) that happen on page reload and install "clear/keep-on-page-reload" logic
1848          c) that happen on frame navigated, console.clear() or clear()
1849         3. Unify "ActiveLogCleared" and "Cleared" events to "Cleared"
1850         
1851         For step 2b and 2c it is important to delay the handling and wait until
1852         "_mainResourceDidChange" has determined whether a page reload happened or
1853         not.
1854         
1855         * UserInterface/Base/Main.js:
1856         (WebInspector.loaded):
1857         Store "clear-log-on-reload" setting globally.
1858         
1859         * UserInterface/Controllers/IssueManager.js:
1860         (WebInspector.IssueManager):
1861         * UserInterface/Models/DefaultDashboard.js:
1862         (WebInspector.DefaultDashboard): Deleted.
1863         * UserInterface/Views/ObjectTreeView.js:
1864         (WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
1865         (WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
1866         (WebInspector.ObjectTreeView): Deleted.
1867         Remove deleted events.
1868         
1869         * UserInterface/Controllers/JavaScriptLogViewController.js:
1870         (WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
1871         (WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
1872         Remove delegate function call and call LogManager directly.
1873         
1874         * UserInterface/Controllers/LogManager.js:
1875         (WebInspector.LogManager):
1876         (WebInspector.LogManager.prototype.messagesCleared):
1877         (WebInspector.LogManager.prototype._delayedMessagesCleared):
1878         (WebInspector.LogManager.prototype.requestClearMessages):
1879         (WebInspector.LogManager.prototype._mainResourceDidChange):
1880         Isolate "clear log" logic, especially clear/keep-log-on-reload logic.
1881         
1882         * UserInterface/Views/LogContentView.js:
1883         (WebInspector.LogContentView):
1884         (WebInspector.LogContentView.prototype._sessionStarted):
1885         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
1886         (WebInspector.LogContentView.prototype._logCleared):
1887         (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
1888         (WebInspector.LogContentView.prototype._clearLog):
1889         (WebInspector.LogContentView.prototype.didClearMessages): Deleted.
1890         (WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
1891         (WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
1892         (WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
1893         Make it a consumer of LogManager and remove special hacks. Simplify code.
1894
1895 2015-06-03  Devin Rousso  <drousso@apple.com>
1896
1897         Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value
1898         https://bugs.webkit.org/show_bug.cgi?id=141262
1899
1900         Reviewed by Timothy Hatcher.
1901
1902         * UserInterface/Models/CSSCompletions.js:
1903         (WebInspector.CSSCompletions.prototype.nameMatchesValidPropertyExactly): Loops through the full property list and returns true only if a property exactly matches the given property name.
1904         (WebInspector.CSSCompletions): Added nameMatchesValidPropertyExactly function.
1905         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1906         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property.
1907
1908 2015-06-03  Nikita Vasilyev  <nvasilyev@apple.com>
1909
1910         Web Inspector: Search field bottom border doesn't match the rest of the toolbar
1911         https://bugs.webkit.org/show_bug.cgi?id=145611
1912
1913         Reviewed by Timothy Hatcher.
1914
1915         * UserInterface/Views/Toolbar.css:
1916         (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
1917
1918 2015-06-03  Joseph Pecoraro  <pecoraro@apple.com>
1919
1920         Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar
1921         https://bugs.webkit.org/show_bug.cgi?id=145589
1922
1923         Reviewed by Timothy Hatcher.
1924
1925         * UserInterface/Views/NavigationBar.js:
1926         (WebInspector.NavigationBar.prototype._mouseDown):
1927         (WebInspector.NavigationBar.prototype._mouseUp):
1928         When mouse dragging for navigation bars, only match against navigation
1929         bar items inside this navigation bar. Also, fix horizontal detection
1930         of navigation bar items by scanning in the middle of the navigation
1931         bar instead of the top, which missed the items.
1932
1933 2015-06-03  Joseph Pecoraro  <pecoraro@apple.com>
1934
1935         Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree
1936         https://bugs.webkit.org/show_bug.cgi?id=145594
1937
1938         Reviewed by Timothy Hatcher.
1939
1940         * UserInterface/Controllers/DOMTreeManager.js:
1941         (WebInspector.DOMTreeManager.prototype.inspectElement):
1942         Previously we could get an exception later on if we tried to
1943         inspect an element that was not in the DOM. Bail if the node
1944         is not in the DOM or not.
1945
1946         * UserInterface/Views/SourceCodeTextEditor.css:
1947         (.popover .debugger-popover-content > .title > .go-to-arrow):
1948         * UserInterface/Views/SourceCodeTextEditor.js:
1949         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend):
1950         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
1951         For a node type, add a go-to-arrow in the popover if it is in the DOM or not.
1952
1953 2015-06-02  Joseph Pecoraro  <pecoraro@apple.com>
1954
1955         Web Inspector: Remove uses of delete in Sidebar related code
1956         https://bugs.webkit.org/show_bug.cgi?id=145592
1957
1958         Reviewed by Timothy Hatcher.
1959
1960         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1961         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
1962         Clear value instead of deleting.
1963
1964         * UserInterface/Views/SearchSidebarPanel.js:
1965         (WebInspector.SearchSidebarPanel.prototype.performSearch):
1966         Just clear the search identifier. Also assert it (a required string) is always non-falsey.
1967
1968         * UserInterface/Views/Sidebar.js:
1969         (WebInspector.Sidebar.prototype.resizerDragEnded): Deleted.
1970         This entire callback is unnecessary because whenever we start
1971         a drag we save the value.
1972
1973 2015-06-02  Joseph Pecoraro  <pecoraro@apple.com>
1974
1975         Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
1976         https://bugs.webkit.org/show_bug.cgi?id=145591
1977
1978         Reviewed by Timothy Hatcher.
1979
1980         * UserInterface/Views/Sidebar.js:
1981         (WebInspector.Sidebar.prototype.removeSidebarPanel):
1982         When removing a sidebar panel, ensure we call hidden if it was the visible panel.
1983
1984         * UserInterface/Views/SidebarPanel.js:
1985         (WebInspector.SidebarPanel):
1986         (WebInspector.SidebarPanel.prototype.shown):
1987         (WebInspector.SidebarPanel.prototype.hidden):
1988         Save and restore content element scroll position when sidebar panels are shown / hidden.
1989
1990         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
1991         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
1992         * UserInterface/Views/ComputedStyleDetailsPanel.js:
1993         (WebInspector.ComputedStyleDetailsPanel.prototype.shown):
1994         * UserInterface/Views/DetailsSidebarPanel.js:
1995         (WebInspector.DetailsSidebarPanel.prototype.shown):
1996         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1997         (WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
1998         (WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
1999         Cleanup. Since sidebar panels are using ES6 classes, have super class calls use `super`!
2000
2001 2015-06-02  Nikita Vasilyev  <nvasilyev@apple.com>
2002
2003         Web Inspector: Use non-monospace font for the frame selector
2004         https://bugs.webkit.org/show_bug.cgi?id=145586
2005
2006         Reviewed by Timothy Hatcher.
2007
2008         * UserInterface/Views/HierarchicalPathComponent.css:
2009         (.hierarchical-path-component):
2010
2011 2015-06-02  Nikita Vasilyev  <nvasilyev@apple.com>
2012
2013         Web Inspector: Dashboard arrow icon on the right is overlapped by a long function/file name
2014         https://bugs.webkit.org/show_bug.cgi?id=145540
2015
2016         Also, increase clickable area of the arrow icon.
2017
2018         Reviewed by Timothy Hatcher.
2019
2020         * UserInterface/Views/DashboardContainerView.css:
2021         (.dashboard-container .advance-arrow):
2022         (.dashboard-container .advance-arrow.advance-forward):
2023         (.dashboard-container .advance-arrow.advance-backward):
2024         * UserInterface/Views/DebuggerDashboardView.css:
2025         (.dashboard.debugger > .location):
2026         (.toolbar .dashboard.debugger):
2027         Increase padding on the right so the content of the dashboard would be never be overlayed by the arrow.
2028
2029 2015-06-02  Joseph Pecoraro  <pecoraro@apple.com>
2030
2031         Web Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text
2032         https://bugs.webkit.org/show_bug.cgi?id=145562
2033
2034         Reviewed by Timothy Hatcher.
2035
2036         * UserInterface/Views/TabBrowser.js:
2037         (WebInspector.TabBrowser):
2038         Only these keyboard shortcuts should check if we are in an editable field.
2039         Remove the implicit prevent default so they can fall back to system behavior
2040         if necessary.
2041
2042         (WebInspector.TabBrowser.prototype._showNextTabCheckingForEditableField):
2043         (WebInspector.TabBrowser.prototype._showPreviousTabCheckingForEditableField):
2044         Bail if we are in an editable field. Otherwise perform the action and prevent default.
2045
2046 2015-06-02  Joseph Pecoraro  <pecoraro@apple.com>
2047
2048         Web Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick console
2049         https://bugs.webkit.org/show_bug.cgi?id=145546
2050
2051         Reviewed by Timothy Hatcher.
2052
2053         Scope ContentBrowser keyboard events within the ContentBrowser instead
2054         of global, where they might conflict between ContentBrowsers. The scoped
2055         shortcuts now no longer need to be enabled/disabled.
2056
2057         * UserInterface/Views/ContentBrowser.js:
2058         (WebInspector.ContentBrowser):
2059         Scope the keyboard shortcuts.
2060
2061         (WebInspector.ContentBrowser.prototype.shown):
2062         (WebInspector.ContentBrowser.prototype.hidden):
2063         No longer need to control enabling / disabling these non-global shortcuts.
2064
2065 2015-06-01  Jono Wells  <jonowells@apple.com>
2066
2067         Web Inspector: Type token text descenders touch bottom of container
2068         https://bugs.webkit.org/show_bug.cgi?id=145544
2069
2070         Reviewed by Timothy Hatcher.
2071
2072         Move 1px padding from top to bottom of token.
2073
2074         * UserInterface/Views/TypeTokenView.css:
2075         (.type-token):
2076
2077 2015-06-01  Joseph Pecoraro  <pecoraro@apple.com>
2078
2079         Web Inspector: Better handle keyboard events in the quick console prompt
2080         https://bugs.webkit.org/show_bug.cgi?id=145548
2081
2082         Reviewed by Timothy Hatcher.
2083
2084         * UserInterface/Base/Main.js:
2085         (WebInspector.saveDataToFile):
2086         Move generic InspectorFrontendHost code here.
2087
2088         * UserInterface/Views/ContentBrowser.js:
2089         (WebInspector.ContentBrowser.prototype._save):
2090         (WebInspector.ContentBrowser.prototype._saveAs):
2091         (WebInspector.ContentBrowser.prototype._saveDataToFile): Deleted.
2092         Use the generic save code.
2093
2094         * UserInterface/Controllers/JavaScriptLogViewController.js:
2095         (WebInspector.JavaScriptLogViewController):
2096         (WebInspector.JavaScriptLogViewController.prototype._save):
2097         (WebInspector.JavaScriptLogViewController.prototype._saveAs):
2098         Handle save keyboard shortcuts while the prompt is focused.
2099
2100         * UserInterface/Views/LogContentView.js:
2101         (WebInspector.LogContentView.prototype.focusSearchBar):
2102         (WebInspector.LogContentView.prototype.save):
2103         (WebInspector.LogContentView.prototype.saveAs):
2104         Better handle keyboard shortcut cases in the console prompt for cases
2105         like a collapsed or split console view.
2106
2107 2015-06-01  Nikita Vasilyev  <nvasilyev@apple.com>
2108
2109         Web Inspector: Pause/resume button in the debugger dashboard is vertically misaligned
2110         https://bugs.webkit.org/show_bug.cgi?id=145534
2111
2112         Reviewed by Timothy Hatcher.
2113
2114         * UserInterface/Views/ButtonNavigationItem.css:
2115         (.navigation-bar .item.button.suppress-emboss):
2116         Never show borders for the pause/resume button.
2117
2118         * UserInterface/Views/DebuggerDashboardView.css:
2119         (.dashboard.debugger .navigation-bar .item.button):
2120
2121 2015-05-31  Yusuke Suzuki  <utatane.tea@gmail.com>
2122
2123         Web Inspector: Drop forEach from WeakMap / WeakSet native member function maps
2124         https://bugs.webkit.org/show_bug.cgi?id=145497
2125
2126         Reviewed by Sam Weinig.
2127
2128         WeakMap / WeakSet don't have forEach method.
2129         This patch drops it from the native prototype function parameters map.
2130
2131         * UserInterface/Models/NativeFunctionParameters.js:
2132
2133 2015-05-29  Timothy Hatcher  <timothy@apple.com>
2134
2135         Web Inspector: Resources tab navigation sidebar should have a type filter header
2136         https://bugs.webkit.org/show_bug.cgi?id=145474
2137
2138         Reviewed by Joseph Pecoraro.
2139
2140         * Localizations/en.lproj/localizedStrings.js: Updated.
2141
2142         * UserInterface/Images/UpDownArrows.svg: Make styleable.
2143
2144         * UserInterface/Main.html: Added new files.
2145
2146         * UserInterface/Views/LogContentView.js:
2147         (WebInspector.LogContentView): Drive-by fix. Mark All as exclusive.
2148
2149         * UserInterface/Views/MultipleScopeBarItem.js: Added.
2150         (WebInspector.MultipleScopeBarItem):
2151         (WebInspector.MultipleScopeBarItem.prototype.get element):
2152         (WebInspector.MultipleScopeBarItem.prototype.get exclusive):
2153         (WebInspector.MultipleScopeBarItem.prototype.get scopeBarItems):
2154         (WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption):
2155         (WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems):
2156         (WebInspector.MultipleScopeBarItem.prototype.get selected):
2157         (WebInspector.MultipleScopeBarItem.prototype.set selected):
2158         (WebInspector.MultipleScopeBarItem.prototype.get selectedScopeBarItem):
2159         (WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
2160         (WebInspector.MultipleScopeBarItem.prototype._clicked):
2161         (WebInspector.MultipleScopeBarItem.prototype._selectElementSelectionChanged):
2162         (WebInspector.MultipleScopeBarItem.prototype._itemSelectionDidChange):
2163
2164         * UserInterface/Views/NavigationSidebarPanel.js:
2165         (WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
2166         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
2167         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
2168         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
2169         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2170         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
2171         Improve filtering so non-text filters can choose to auto-expand the tree.
2172
2173         * UserInterface/Views/ResourceSidebarPanel.css: Added.
2174         (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
2175         (.sidebar > .panel.navigation.resource > .navigation-bar):
2176
2177         * UserInterface/Views/ResourceSidebarPanel.js:
2178         (WebInspector.ResourceSidebarPanel):
2179         (WebInspector.ResourceSidebarPanel.prototype.hasCustomFilters):
2180         (WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
2181         (WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2182         (WebInspector.ResourceSidebarPanel.prototype._scopeBarSelectionDidChange):
2183         Make a ScopeBar and make it filter the TreeOutline when needed.
2184
2185         * UserInterface/Views/ScopeBar.css:
2186         (.scope-bar > li.multiple):
2187         (.scope-bar > li.multiple > select):
2188         (.scope-bar > li.multiple.selected > select):
2189         (.scope-bar > li.multiple > .arrows):
2190         (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .filled):
2191         (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .stroked):
2192
2193         * UserInterface/Views/ScopeBar.js:
2194         (WebInspector.ScopeBar): Support shouldGroupNonExclusiveItems which will use MultipleScopeBarItem.
2195         (WebInspector.ScopeBar.prototype._populate):
2196         (WebInspector.ScopeBar.prototype._itemSelectionDidChange):
2197         (WebInspector.ScopeBar.prototype.updateLayout): Deleted. Not needed for our current styles.
2198
2199         * UserInterface/Views/ScopeBarItem.js:
2200         (WebInspector.ScopeBarItem):
2201         (WebInspector.ScopeBarItem.prototype.get id):
2202         (WebInspector.ScopeBarItem.prototype.get label):
2203         (WebInspector.ScopeBarItem.prototype.get exclusive):
2204         (WebInspector.ScopeBarItem.prototype.setSelected):
2205         (WebInspector.ScopeBarItem.prototype._clicked):
2206         (WebInspector.ScopeBarItem.prototype.get element): Deleted.
2207         (WebInspector.ScopeBarItem.prototype._markElementSelected): Deleted.
2208         Cleaned up and modernized a bit.
2209
2210 2015-05-29  Tobias Reiss  <tobi+webkit@basecode.de>
2211
2212         Web Inspector: Activity Viewer does not update on "clear all console messages"
2213         https://bugs.webkit.org/show_bug.cgi?id=144681
2214
2215         Reviewed by Joseph Pecoraro.
2216
2217         Do not apply "ignoreDidClearMessages" hack on "Clear log" Button and Context menu.
2218
2219         * UserInterface/Views/LogContentView.js:
2220         (WebInspector.LogContentView.prototype._sessionStarted):
2221         (WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages):
2222         (WebInspector.LogContentView.prototype._clearLog): Deleted.
2223
2224 2015-05-29  Matt Baker  <mattbaker@apple.com>
2225
2226         Web Inspector: Remove unused expandTreeElementsWhenArrowing property from TreeOutline
2227         https://bugs.webkit.org/show_bug.cgi?id=145470
2228
2229         Reviewed by Joseph Pecoraro.
2230
2231         * UserInterface/Views/TreeOutline.js:
2232         (WebInspector.TreeOutline.prototype._treeKeyDown):
2233         Replaced uses of removed property with boolean literal.
2234
2235 2015-05-29  Joseph Pecoraro  <pecoraro@apple.com>
2236
2237         Web Inspector: Tabs should have Context Menus
2238         https://bugs.webkit.org/show_bug.cgi?id=144208
2239
2240         Reviewed by Timothy Hatcher.
2241
2242         Give non-pinned tabs "Close Tab" and "Close Other Tabs" context
2243         menu items to affect other non-pinned tabs.
2244
2245         * Localizations/en.lproj/localizedStrings.js:
2246         * UserInterface/Views/TabBarItem.js:
2247         (WebInspector.TabBarItem):
2248         (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab):
2249         (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs):
2250         (WebInspector.TabBarItem.prototype._handleContextMenuEvent):
2251
2252 2015-05-29  Matt Baker  <mattbaker@apple.com>
2253
2254         Web Inspector: Restoring the last selected DOM node fails on reload (DOMAgent: No node with given path found)
2255         https://bugs.webkit.org/show_bug.cgi?id=144231
2256
2257         Reviewed by Timothy Hatcher.
2258
2259         Removed _restoreSelectedNodeIsAllowed flag from DOMTreeContentView. The frontend receives two documentUpdated
2260         events from the DOM Agent during page reload, and the flag was preventing DOMTreeContentView from restoring
2261         the previous selection in response to the second event.
2262
2263         * UserInterface/Views/DOMTreeContentView.js:
2264         (WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
2265         (WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
2266
2267 2015-05-28  Nikita Vasilyev  <nvasilyev@apple.com>
2268
2269         Web Inspector: Update toolbar styles
2270         https://bugs.webkit.org/show_bug.cgi?id=145419
2271
2272         Also, use hairline borders (1 phisical pixel) on retina (DPI >= 2).
2273
2274         Reviewed by Timothy Hatcher.
2275
2276         * UserInterface/Views/ButtonToolbarItem.css:
2277         (.toolbar .item.button): Deleted.
2278         (.toolbar.icon-and-label-vertical .item.button): Deleted.
2279         (.toolbar.icon-and-label-horizontal .item.button): Deleted.
2280         (.toolbar .item.button > .glyph): Deleted.
2281         (.toolbar.small-size .item.button > .glyph): Deleted.
2282         * UserInterface/Views/DashboardContainerView.css:
2283         (.toolbar .dashboard-container): Deleted.
2284         (.toolbar.collapsed .dashboard-container): Deleted.
2285         (.toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
2286         (.toolbar .dashboard.slide-out-down): Deleted.
2287         (.toolbar .dashboard.slide-in-up): Deleted.
2288         * UserInterface/Views/Toolbar.css:
2289         (.toolbar .search-bar > input[type="search"]):
2290         (.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container):
2291         (body:not(.unknown-mac) .toolbar .dashboard-container):
2292         (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
2293         (body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus):
2294         (body:not(.unknown-mac) .toolbar .item.button:active):
2295         (body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container):
2296         (body.unknown-mac .toolbar .dashboard-container):
2297         (body.unknown-mac .toolbar .search-bar > input[type="search"]):
2298         (body.unknown-mac .toolbar .search-bar > input[type="search"]:focus):
2299         (@media (-webkit-min-device-pixel-ratio: 2)):
2300         (body.unknown-mac .toolbar .item.button:active):
2301         (body.unknown-mac.window-inactive .toolbar .dashboard-container):
2302
2303 2015-05-28  Devin Rousso  <drousso@apple.com>
2304
2305         Web Inspector: Jump from a computed style to the rule it came from
2306         https://bugs.webkit.org/show_bug.cgi?id=120640
2307
2308         Reviewed by Timothy Hatcher.
2309
2310         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2311         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
2312         If the delegate of CSSStyleDeclarationTextEditor has cssStyleDeclarationTextEditorShouldAddPropertyGoToArrows set to true, add a goToArrow to all CSS property entries.
2313         (WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch):
2314         (WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.hasMatchingLonghandProperty):
2315         (WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty):
2316         Determines if a given CSS property is in the CSS style section and if so, select that CSS property, focus on the section containing that CSS property, and return true.
2317         * UserInterface/Views/CSSStyleDeclarationSection.js:
2318         (WebInspector.CSSStyleDeclarationSection.prototype.highlightProperty):
2319         Searches through the properties of the section for a given property and scrolls to it if found.
2320         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2321         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
2322         Switches to the rulesStyleDetailsPanel and scrolls to and hightlights a given property in that panel.
2323         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected):
2324         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
2325         Moved this function out of _navigationItemSelected for better reusablity.
2326         * UserInterface/Views/ComputedStyleDetailsPanel.js:
2327         (WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
2328         Function that calls the delegate (which should be CSSStyleDetailsSidebarPanel) function computedStyleDetailsPanelShowProperty.
2329         * UserInterface/Views/RulesStyleDetailsPanel.js:
2330         (WebInspector.RulesStyleDetailsPanel):
2331         (WebInspector.RulesStyleDetailsPanel.prototype.refresh):
2332         (WebInspector.RulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
2333         Searches through all the sections of the RulesStyleDetailsPanel for a given CSS property.
2334         (WebInspector.RulesStyleDetailsPanel.prototype.shown):
2335         (WebInspector.RulesStyleDetailsPanel.prototype.hidden):
2336         (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
2337         Added a flag to this function that will highlight and scroll to a given property (_propertyToSelectAndHighlight) if set on load.
2338         * UserInterface/Views/StyleDetailsPanel.js:
2339         (WebInspector.StyleDetailsPanel.prototype.markAsNeedsRefresh):
2340         (WebInspector.StyleDetailsPanel.prototype.nodeStylesRefreshed):
2341         Made into protected function to allow it to be overridden.
2342         (WebInspector.StyleDetailsPanel.prototype._nodeStylesRefreshed): Deleted.
2343
2344 2015-05-28  Joseph Pecoraro  <pecoraro@apple.com>
2345
2346         Web Inspector: Should have a keyboard shortcut to switch between inspector tabs
2347         https://bugs.webkit.org/show_bug.cgi?id=144207
2348
2349         Reviewed by Timothy Hatcher.
2350
2351         These keyboard shortcuts work well in an undocked inspector window.
2352         Be careful that some keyboard shortcuts, when used inside a text
2353         editor / text field are just text actions. However, some keyboard
2354         shortcuts will work no matter where you trigger them.
2355
2356         * UserInterface/Models/KeyboardShortcut.js:
2357         * UserInterface/Views/TabBar.js:
2358         (WebInspector.TabBar.prototype.selectPreviousTab):
2359         (WebInspector.TabBar.prototype.selectNextTab):
2360         * UserInterface/Views/TabBrowser.js:
2361         (WebInspector.TabBrowser):
2362         (WebInspector.TabBrowser.prototype._showPreviousTab):
2363         (WebInspector.TabBrowser.prototype._showNextTab):
2364
2365 2015-05-28  Joseph Pecoraro  <pecoraro@apple.com>
2366
2367         Web Inspector: NewTabContentView should update button disabled state as other tabs are added/removed
2368         https://bugs.webkit.org/show_bug.cgi?id=145448
2369
2370         Reviewed by Timothy Hatcher.
2371
2372         * UserInterface/Views/NewTabContentView.js:
2373         (WebInspector.NewTabContentView):
2374         Always add a click listener and add the type as a private property on the element.
2375
2376         (WebInspector.NewTabContentView.prototype.shown):
2377         (WebInspector.NewTabContentView.prototype.hidden):
2378         Add / remove event listeners for tab changes. Also update the view when shown.
2379         
2380         (WebInspector.NewTabContentView.prototype._createNewTab):
2381         A disabled button an now be clicked. Do nothing if a new tab of this type is not allowed.
2382
2383         (WebInspector.NewTabContentView.prototype._updateTabItems):
2384         Refresh the disabled state for each of the buttons.
2385
2386 2015-05-27  Joseph Pecoraro  <pecoraro@apple.com>
2387
2388         Web Inspector: Show Page Source does not switch to Resources tab if inspector was closed
2389         https://bugs.webkit.org/show_bug.cgi?id=145423
2390
2391         Reviewed by Timothy Hatcher.
2392
2393         * UserInterface/Base/Main.js:
2394         (WebInspector._frameWasAdded.delayedWork):
2395         (WebInspector._frameWasAdded):
2396         In the special case where we are holding to show a frame's source code when
2397         the frame becomes available (_frameIdentifierToShowSourceCodeWhenAvailable)
2398         we should be forcing to show the tab.
2399
2400 2015-05-27  Joseph Pecoraro  <pecoraro@apple.com>
2401
2402         Web Inspector: Toggling an inherited property sometimes stops working
2403         https://bugs.webkit.org/show_bug.cgi?id=145416
2404
2405         Reviewed by Timothy Hatcher.
2406
2407         * UserInterface/Models/DOMNodeStyles.js:
2408         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
2409         Ensure we update the existing model objects with the new state information
2410         before possibly bailing. This may produce changed events that update
2411         parts of the inspector appropriately.
2412
2413 2015-05-27  Joseph Pecoraro  <pecoraro@apple.com>
2414
2415         Web Inspector: REGRESSION(r179286) Editing Style Metrics Values no longer works
2416         https://bugs.webkit.org/show_bug.cgi?id=143164
2417
2418         Reviewed by Brian Burg.
2419
2420         * UserInterface/Views/BoxModelDetailsSectionRow.js:
2421         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
2422         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.toggleInlineStyleProperty):
2423         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode.didToggle):
2424         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput.resolvedNode):
2425         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
2426         Make it so editing in the metrics pane just evaluates elem.style.setProperty
2427         on the inspected page. Use "!important" to try and give the maximum priority
2428         possible, which is a change from older behavior. Finally, refresh the sidebar
2429         to update all values, and update the UI if bad input didn't change styles.
2430
2431 2015-05-26  Joseph Pecoraro  <pecoraro@apple.com>
2432
2433         Web Inspector: Function parameter string parsing improperly handles empty parameter list
2434         https://bugs.webkit.org/show_bug.cgi?id=145391
2435
2436         Reviewed by Darin Adler.
2437
2438         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2439         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2440
2441 2015-05-26  Joseph Pecoraro  <pecoraro@apple.com>
2442
2443         Web Inspector: Add Array.prototype.copyWithin parameter list
2444         https://bugs.webkit.org/show_bug.cgi?id=145388
2445
2446         Reviewed by Darin Adler.
2447
2448         * UserInterface/Models/NativeFunctionParameters.js:
2449
2450 2015-05-26  Nikita Vasilyev  <nvasilyev@apple.com>
2451
2452         Web Inspector: focus outline of a search field should have a radius
2453         https://bugs.webkit.org/show_bug.cgi?id=145383
2454
2455         Add a focus outline animation to roughly mimic the default focus outline of OS X.
2456
2457         Reviewed by Timothy Hatcher.
2458
2459         * UserInterface/Views/Toolbar.css:
2460         (.toolbar .search-bar > input[type="search"]):
2461         -webkit-focus-ring-color doesn't follow element's curvature (e.g. border-radius)
2462         and it cannot be animated. Replace it with box-shadow.
2463
2464         (.toolbar .search-bar > input[type="search"]:focus):
2465
2466 2015-05-26  Nikita Vasilyev  <nvasilyev@apple.com>
2467
2468         Web Inspector: The bottom part "debugger" is clipped in the tab’s title
2469         https://bugs.webkit.org/show_bug.cgi?id=145381
2470
2471         Reviewed by Timothy Hatcher.
2472
2473         * UserInterface/Views/TabBar.css:
2474         (.tab-bar > .item):
2475         Set line-height to fit "debugger". Setting line-height to 16px, which is the
2476         size of the tabs icons, moves the text one pixel up, so set it to 15px.
2477
2478 2015-05-26  Dan Bernstein  <mitz@apple.com>
2479
2480         <rdar://problem/21104551> Update build settings
2481
2482         Reviewed by Anders Carlsson.
2483
2484         * Configurations/Base.xcconfig:
2485         * Configurations/DebugRelease.xcconfig:
2486         * Configurations/Version.xcconfig:
2487
2488 2015-05-23  Dan Bernstein  <mitz@apple.com>
2489
2490         Remove unused definitions of WEBKIT_VERSION_MIN_REQUIRED
2491         https://bugs.webkit.org/show_bug.cgi?id=145345
2492
2493         Reviewed by Sam Weinig.
2494
2495         * Configurations/Base.xcconfig:
2496
2497 2015-05-23  Joseph Pecoraro  <pecoraro@apple.com>
2498
2499         Web Inspector: Remove code related with unused style classes
2500         https://bugs.webkit.org/show_bug.cgi?id=145332
2501
2502         Reviewed by Timothy Hatcher.
2503
2504         * UserInterface/Views/ConsoleMessageView.js:
2505         (WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
2506         (WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString):
2507         The "type-string" class has no styles associated with it. So the entire span can be removed.
2508
2509         * UserInterface/Views/DOMTreeElement.js:
2510         Both of these style classes have no styles associated with them. Remove the class names.
2511
2512 2015-05-23  Joseph Pecoraro  <pecoraro@apple.com>
2513
2514         Web Inspector: Improve native parameter lists a bit
2515         https://bugs.webkit.org/show_bug.cgi?id=145338
2516
2517         Reviewed by Timothy Hatcher.
2518
2519         * UserInterface/Models/NativeFunctionParameters.js:
2520         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2521         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2522
2523 2015-05-23  Joseph Pecoraro  <pecoraro@apple.com>
2524
2525         Web Inspector: Update CSS Autocompletion properties and values
2526         https://bugs.webkit.org/show_bug.cgi?id=145341
2527
2528         Reviewed by Timothy Hatcher.
2529
2530         * UserInterface/Models/CSSKeywordCompletions.js:
2531
2532 2015-05-22  Joseph Pecoraro  <pecoraro@apple.com>
2533
2534         Web Inspector: Adopt Object.setPrototypeOf
2535         https://bugs.webkit.org/show_bug.cgi?id=145335
2536
2537         Reviewed by Timothy Hatcher.
2538
2539         For a case that won't easily move to ES6 classes use Object.setPrototypeOf.
2540
2541         * UserInterface/Protocol/InspectorBackend.js:
2542         (InspectorBackend.Command.create):
2543
2544 2015-05-22  Joseph Pecoraro  <pecoraro@apple.com>
2545
2546         Web Inspector: Inline use once class names and remove some unused class names
2547         https://bugs.webkit.org/show_bug.cgi?id=145334
2548
2549         Reviewed by Timothy Hatcher.
2550
2551         * UserInterface/Views/ApplicationCacheFrameContentView.js:
2552         (WebInspector.ApplicationCacheFrameContentView):
2553         * UserInterface/Views/BoxModelDetailsSectionRow.js:
2554         (WebInspector.BoxModelDetailsSectionRow):
2555         * UserInterface/Views/CSSStyleDeclarationSection.js:
2556         (WebInspector.CSSStyleDeclarationSection):
2557         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2558         (WebInspector.CSSStyleDetailsSidebarPanel):
2559         * UserInterface/Views/ClusterContentView.js:
2560         (WebInspector.ClusterContentView):
2561         * UserInterface/Views/CompletionSuggestionsView.js:
2562         (WebInspector.CompletionSuggestionsView):
2563         * UserInterface/Views/ConsolePrompt.js:
2564         (WebInspector.ConsolePrompt):
2565         * UserInterface/Views/ContentBrowser.js:
2566         (WebInspector.ContentBrowser):
2567         * UserInterface/Views/ContentFlowTreeElement.js:
2568         (WebInspector.ContentFlowTreeElement):
2569         * UserInterface/Views/ContentView.js:
2570         (WebInspector.ContentView):
2571         * UserInterface/Views/ContentViewContainer.js:
2572         (WebInspector.ContentViewContainer):
2573         * UserInterface/Views/CookieStorageContentView.js:
2574         (WebInspector.CookieStorageContentView):
2575         * UserInterface/Views/CookieStorageTreeElement.js:
2576         (WebInspector.CookieStorageTreeElement):
2577         * UserInterface/Views/DOMStorageContentView.js:
2578         (WebInspector.DOMStorageContentView):
2579         * UserInterface/Views/DOMTreeContentView.js:
2580         (WebInspector.DOMTreeContentView):
2581         * UserInterface/Views/DashboardView.js:
2582         (WebInspector.DashboardView):
2583         * UserInterface/Views/DatabaseTableContentView.js:
2584         (WebInspector.DatabaseTableContentView):
2585         * UserInterface/Views/DebuggerDashboardView.js:
2586         (WebInspector.DebuggerDashboardView):
2587         (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
2588         * UserInterface/Views/DetailsSection.js:
2589         (WebInspector.DetailsSection):
2590         * UserInterface/Views/DetailsSectionSimpleRow.js:
2591         * UserInterface/Views/FontResourceContentView.js:
2592         (WebInspector.FontResourceContentView):
2593         (WebInspector.FontResourceContentView.prototype.createMetricElement):
2594         (WebInspector.FontResourceContentView.prototype.contentAvailable):
2595         * UserInterface/Views/HierarchicalPathComponent.js:
2596         (WebInspector.HierarchicalPathComponent):
2597         (WebInspector.HierarchicalPathComponent.prototype.set selectorArrows):
2598         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
2599         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
2600         (WebInspector.LayoutTimelineOverviewGraph):
2601         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
2602         (WebInspector.NetworkTimelineOverviewGraph):
2603         * UserInterface/Views/OverviewTimelineView.js:
2604         * UserInterface/Views/ProbeSetDetailsSection.js:
2605         * UserInterface/Views/QuickConsole.js:
2606         * UserInterface/Views/ReplayDashboardView.js:
2607         * UserInterface/Views/ScriptContentView.js:
2608         (WebInspector.ScriptContentView):
2609         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
2610         (WebInspector.ScriptTimelineOverviewGraph):
2611         * UserInterface/Views/TextContentView.js:
2612         (WebInspector.TextContentView):
2613         * UserInterface/Views/TimelineOverview.js:
2614         (WebInspector.TimelineOverview):
2615         * UserInterface/Views/TimelineOverviewGraph.js:
2616         (WebInspector.TimelineOverviewGraph):
2617         * UserInterface/Views/TimelineRecordBar.js:
2618         (WebInspector.TimelineRecordBar):
2619         * UserInterface/Views/TimelineRecordFrame.js:
2620         (WebInspector.TimelineRecordFrame):
2621         * UserInterface/Views/TimelineRecordingContentView.js:
2622         (WebInspector.TimelineRecordingContentView):
2623         * UserInterface/Views/TimelineRuler.js:
2624         (WebInspector.TimelineRuler):
2625         (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
2626
2627 2015-05-22  Joseph Pecoraro  <pecoraro@apple.com>
2628
2629         Web Inspector: DOMTree Keyboard Shortcut 'H' to toggle element visibility is not working
2630         https://bugs.webkit.org/show_bug.cgi?id=145331
2631
2632         Reviewed by Brian Burg.
2633
2634         We no longer have CSSProperty.value setters. Instead of attempting
2635         to toggle and clobber inline style values on the element we:
2636         
2637           1. inject a <style> on the page like ".WebInspectorHide { visibility:hidden }"
2638           2. toggle the WebInspectorHide class on the selected element
2639
2640         This approach is inspired by the original WebKit change in the
2641         old inspector frontend: <https://webkit.org/b/110641>.
2642
2643         The old approach toggled a few properties (opacity and pointer events)
2644         while the new approach uses visibility, matching other browsers.
2645
2646         * UserInterface/Views/DOMTreeOutline.js:
2647         (WebInspector.DOMTreeOutline.prototype._hideElement.resolvedNode.injectStyleAndToggleClass):
2648         (WebInspector.DOMTreeOutline.prototype._hideElement.resolvedNode):
2649         (WebInspector.DOMTreeOutline.prototype._hideElement):
2650         (WebInspector.DOMTreeOutline.prototype._hideElement.toggleProperties): Deleted.
2651
2652 2015-05-21  Joseph Pecoraro  <pecoraro@apple.com>
2653
2654         Web Inspector: Give Toolbar buttons an active style
2655         https://bugs.webkit.org/show_bug.cgi?id=145292
2656
2657         Reviewed by Timothy Hatcher.
2658
2659         * UserInterface/Views/ButtonToolbarItem.css:
2660         (.toolbar .item.button:active):
2661
2662 2015-05-21  Nikita Vasilyev  <nvasilyev@apple.com>
2663
2664         Web Inspector: Dashboard debugger information can be clipped
2665         https://bugs.webkit.org/show_bug.cgi?id=144209
2666
2667         Reviewed by Timothy Hatcher.
2668
2669         * UserInterface/Views/DashboardContainerView.css:
2670         (.toolbar .dashboard-container):
2671         Make dashboard flexible by using vw (viewport width units).
2672
2673         * UserInterface/Views/DefaultDashboardView.css:
2674         (.toolbar .dashboard.default):
2675         Center default dashboard icons in the middle, don't spread them along the dashboard.
2676
2677 2015-05-21  Joseph Pecoraro  <pecoraro@apple.com>
2678
2679         Web Inspector: Improve the UI of the type profiler popover
2680         https://bugs.webkit.org/show_bug.cgi?id=140737
2681
2682         Reviewed by Timothy Hatcher.
2683
2684         Display TypeDescriptions in a Tree similiar to ObjectTrees.
2685         Currently the only information we have in a TypeDescription
2686         is the property names, and not their types, so all we can
2687         display in the tree are names.
2688
2689         * Localizations/en.lproj/localizedStrings.js:
2690         * UserInterface/Controllers/TypeTokenAnnotator.js:
2691         (WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
2692         * UserInterface/Main.html:
2693         * UserInterface/Models/ScriptSyntaxTree.js:
2694         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
2695         * UserInterface/Models/StructureDescription.js: Added.
2696         (WebInspector.StructureDescription):
2697         (WebInspector.StructureDescription.fromPayload):
2698         (WebInspector.StructureDescription.prototype.get fields):
2699         (WebInspector.StructureDescription.prototype.get optionalFields):
2700         (WebInspector.StructureDescription.prototype.get constructorName):
2701         (WebInspector.StructureDescription.prototype.get prototypeStructure):
2702         (WebInspector.StructureDescription.prototype.get imprecise):
2703         * UserInterface/Models/TypeDescription.js: Added.
2704         (WebInspector.TypeDescription):
2705         (WebInspector.TypeDescription.fromPayload):
2706         (WebInspector.TypeDescription.prototype.get leastCommonAncestor):
2707         (WebInspector.TypeDescription.prototype.get typeSet):
2708         (WebInspector.TypeDescription.prototype.get structures):
2709         (WebInspector.TypeDescription.prototype.get valid):
2710         (WebInspector.TypeDescription.prototype.get truncated):
2711         * UserInterface/Models/TypeSet.js:
2712         (WebInspector.TypeSet):
2713         (WebInspector.TypeSet.prototype.get primitiveTypeNames):
2714         * UserInterface/Views/ObjectTreeView.js:
2715         (WebInspector.ObjectTreeView.prototype._updateChildren):
2716         * UserInterface/Views/Section.css: Removed.
2717         * UserInterface/Views/Section.js: Removed.
2718         * UserInterface/Views/SourceCodeTextEditor.css:
2719         (.popover .expandable):
2720         * UserInterface/Views/SourceCodeTextEditor.js:
2721         (WebInspector.SourceCodeTextEditor):
2722         (WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
2723         (WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
2724         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
2725         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
2726         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
2727         * UserInterface/Views/TypePropertiesSection.js: Removed.
2728         * UserInterface/Views/TypeTokenView.js:
2729         (WebInspector.TypeTokenView):
2730         (WebInspector.TypeTokenView.titleForPopover):
2731         (WebInspector.TypeTokenView.prototype.update):
2732         (WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
2733         (WebInspector.TypeTokenView.prototype._shouldShowPopover):
2734         (WebInspector.TypeTokenView.prototype._displayTypeName):
2735         * UserInterface/Views/TypeTreeElement.css: Added.
2736         (.type-tree-element):
2737         (.type-tree-element > .titles):
2738         (.type-tree-element > .disclosure-button):
2739         (.type-tree-element.parent > .disclosure-button):
2740         (.type-tree-element.parent.expanded > .disclosure-button):
2741         (.type-tree-element > .icon):
2742         (.type-tree-element.prototype):
2743         (.type-tree-element.prototype:focus):
2744         (.type-tree-element.prototype + ol):
2745         * UserInterface/Views/TypeTreeElement.js: Added.
2746         (WebInspector.TypeTreeElement):
2747         (WebInspector.TypeTreeElement.prototype.get name):
2748         (WebInspector.TypeTreeElement.prototype.get isPrototype):
2749         (WebInspector.TypeTreeElement.prototype.onpopulate):
2750         (WebInspector.TypeTreeElement.prototype.onexpand):
2751         * UserInterface/Views/TypeTreeView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/PropertiesSection.js.
2752         (.type-tree):
2753         (.type-tree-outline):
2754         (.type-tree-outline li):
2755         (.type-tree-outline ol):
2756         (.type-tree-outline ol.expanded):
2757         (.type-tree-outline li .empty-message):
2758         * UserInterface/Views/TypeTreeView.js: Added.
2759         (WebInspector.TypeTreeView):
2760         (WebInspector.TypeTreeView.prototype.get typeDescription):
2761         (WebInspector.TypeTreeView.prototype.get element):
2762         (WebInspector.TypeTreeView.prototype.get treeOutline):
2763         (WebInspector.TypeTreeView.prototype._populate):
2764
2765 2015-05-20  Joseph Pecoraro  <pecoraro@apple.com>
2766
2767         Web Inspector: Fix WebInspector.StackTrace style
2768         https://bugs.webkit.org/show_bug.cgi?id=145240
2769
2770         Reviewed by Timothy Hatcher.
2771
2772         * UserInterface/Models/StackTrace.js:
2773         Reorder and add our usual marker comments.
2774
2775 2015-05-19  Joseph Pecoraro  <pecoraro@apple.com>
2776
2777         Web Inspector: Improve Preview for NodeList / array like collections
2778         https://bugs.webkit.org/show_bug.cgi?id=145177
2779
2780         Reviewed by Timothy Hatcher.
2781
2782         * UserInterface/Views/ObjectPreviewView.js:
2783         (WebInspector.ObjectPreviewView.prototype._appendPreview):
2784         Show the class name for a non-basic-Array, but still hide
2785         it for a basic Array.
2786
2787 2015-05-19  Nikita Vasilyev  <nvasilyev@apple.com>
2788
2789         Web Inspector: Convert stackTrace from raw payload data to an array of CallFrames
2790         https://bugs.webkit.org/show_bug.cgi?id=144982
2791
2792         Reviewed by Joseph Pecoraro.
2793
2794         * UserInterface/Controllers/LogManager.js:
2795         * UserInterface/Main.html:
2796         * UserInterface/Models/CallFrame.js:
2797         (WebInspector.CallFrame.fromPayload):
2798         Consider an empty string url as a native code as it was in 
2799         WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame
2800
2801         * UserInterface/Models/ConsoleMessage.js:
2802         (WebInspector.ConsoleMessage):
2803         Convert _stackTrace from an array of payload objects to WebInspector.StackTrace model.
2804
2805         * UserInterface/Models/StackTrace.js: Added.
2806         (WebInspector.StackTrace):
2807         (WebInspector.StackTrace.prototype.get callFrames):
2808         (WebInspector.StackTrace.prototype.get firstNonNativeCallFrame): Added.
2809         (WebInspector.StackTrace.fromPayload):
2810         * UserInterface/Test.html:
2811         * UserInterface/Views/CallFrameView.js:
2812         (WebInspector.CallFrameView):
2813         Don't show a URL when sourceCodeLocation is missing, fix webkit.org/b/145071.
2814
2815         * UserInterface/Views/ConsoleMessageView.js:
2816         (WebInspector.ConsoleMessageView):
2817         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2818         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
2819         (WebInspector.ConsoleMessageView.prototype._appendStackTrace):
2820         (WebInspector.ConsoleMessageView.prototype._shouldShowStackTrace):
2821         (WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):
2822         (WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame): Deleted.
2823
2824 2015-05-18  Joseph Pecoraro  <pecoraro@apple.com>
2825
2826         Web Inspector: Improve Reliability of Closing and Reopening Elements Tab
2827         https://bugs.webkit.org/show_bug.cgi?id=145139
2828
2829         Reviewed by Timothy Hatcher.
2830
2831         * UserInterface/Views/DOMTreeElement.js:
2832         (WebInspector.DOMTreeElement.prototype.highlightSearchResults):
2833         (WebInspector.DOMTreeElement.prototype.hideSearchHighlights):
2834         (WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight.animationEnded):
2835         (WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):
2836         (WebInspector.DOMTreeElement.prototype._updateChildren):
2837         (WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
2838         (WebInspector.DOMTreeElement.prototype._startEditingAsHTML.dispose):
2839         (WebInspector.DOMTreeElement.prototype._startEditingAsHTML):
2840         (WebInspector.DOMTreeElement.prototype.updateTitle):
2841         Stop using the `delete` operator.
2842
2843         * UserInterface/Views/DOMTreeOutline.js:
2844         (WebInspector.DOMTreeOutline.prototype.setVisible):
2845         Trigger an update when the outline is made visible.
2846
2847         * UserInterface/Views/FrameDOMTreeContentView.js:
2848         (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
2849         Provide a reasonable default selection if there is no body or document element.
2850         For example in an augmented DOM tree.
2851
2852 2015-05-18  Joseph Pecoraro  <pecoraro@apple.com>
2853
2854         Web Inspector: Tab Restoration incorrectly makes ContentViews "shown" in background tabs
2855         https://bugs.webkit.org/show_bug.cgi?id=145080
2856
2857         Reviewed by Timothy Hatcher.
2858
2859         Many tabs have their own content browser / navigation sidebar. During
2860         state restoration, each tab would immediately try to restore an
2861         appropriate ContentView after the load / navigation. However, in doing
2862         so, we weren't respecting whether or not the Tab the ContentBrowser
2863         was in was hidden or not, so ContentViews in background tags were
2864         still being treated as shown/visible.
2865
2866         This patch changes state restoration to only affect the foreground
2867         tab, and be delayed on all background tabs until that tab is shown.
2868         This reduces the amount of work on load and navigation to just a
2869         single tab instead of all tabs. Most importantly, it avoids having
2870         performing work on ContentBrowsers that are non-visible, so state
2871         restoration only happens for visible ContentBrowsers.
2872
2873         For simplicity, in the case of a delayed tab restoration triggered
2874         by the user switching tabs, we don't try twice (like we occasionally
2875         do on load/reload). We could add back some hueristic here if needed.
2876
2877         * UserInterface/Base/Main.js:
2878         (WebInspector.contentLoaded):
2879         (WebInspector.activateExtraDomains):
2880         (WebInspector._mainResourceDidChange):
2881         (WebInspector._restoreCookieForOpenTabs):
2882         * UserInterface/Views/NavigationSidebarPanel.js:
2883
2884         * UserInterface/Views/TabContentView.js:
2885         (WebInspector.TabContentView.prototype.shown):
2886         (WebInspector.TabContentView.prototype.restoreStateFromCookie):
2887         (WebInspector.TabContentView.prototype.saveStateToCookie):
2888         When asked to restore state, save that logic until the next time the tab is shown.
2889
2890         * UserInterface/Views/TextEditor.js:
2891         (WebInspector.TextEditor.prototype.get visible):
2892         * UserInterface/Views/SourceCodeTextEditor.js:
2893         (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidStartEditing):
2894         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState): Deleted.
2895         Although this didn't actually catch the issue, it could potentially
2896         catch other issues in the future. We don't want to enable the annotators
2897         in a non-visible text editor, as it could be a performance issue.
2898
2899 2015-05-15  Matt Baker  <mattbaker@apple.com>
2900
2901         Web Inspector: empty timeline should not use previous timeline's zoom interval
2902         https://bugs.webkit.org/show_bug.cgi?id=132754
2903
2904         Reviewed by Joseph Pecoraro.
2905
2906         When a timeline recording is started in response to a provisional load, TimelineManager should check whether
2907         the main resource url is changing before loading a new timeline recording. If the main resource is changing,
2908         set the selection start, selection duration, and duration-per-pixel settings of the TimelineOverview to their
2909         default values.
2910
2911         * UserInterface/Controllers/TimelineManager.js:
2912         (WebInspector.TimelineManager):
2913         (WebInspector.TimelineManager.prototype.isCapturingPageReload):
2914         (WebInspector.TimelineManager.prototype.capturingStopped):
2915         (WebInspector.TimelineManager.prototype.pageDidLoad):
2916         (WebInspector.TimelineManager.prototype._startAutoCapturing):
2917         Added a property for checking whether auto capture was triggered by a page reload.
2918
2919         * UserInterface/Views/LinearTimelineOverview.js:
2920         (WebInspector.LinearTimelineOverview):
2921         Increase default selection time to 15 seconds.
2922
2923         * UserInterface/Views/TimelineOverview.js:
2924         (WebInspector.TimelineOverview):
2925         Reset selection and zoom if TimelineManager isn't capturing in response to a page reload.
2926
2927         (WebInspector.TimelineOverview.prototype.reset):
2928         Reset selection and zoom.
2929
2930         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
2931         (WebInspector.TimelineOverview.prototype._resetSelection):
2932         Added a helper function for resetting selection and zoom to their default values.
2933
2934 2015-05-15  Matt Baker  <mattbaker@apple.com>
2935
2936         Web Inspector: Timeline data grid displays wrong records after switching between Timelines/Frames mode
2937         https://bugs.webkit.org/show_bug.cgi?id=145084
2938
2939         Reviewed by Timothy Hatcher.
2940
2941         Update timeline sidebar filter whenever the view mode changes.
2942
2943         * UserInterface/Views/TimelineSidebarPanel.js:
2944         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
2945         (WebInspector.TimelineSidebarPanel.get else):
2946         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
2947         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
2948
2949 2015-05-15  Joseph Pecoraro  <pecoraro@apple.com>
2950
2951         Web Inspector: Bump image format number to force image regeneration
2952         https://bugs.webkit.org/show_bug.cgi?id=145074
2953
2954         Reviewed by Timothy Hatcher.
2955
2956         * UserInterface/Base/ImageUtilities.js:
2957
2958 2015-05-15  Joseph Pecoraro  <pecoraro@apple.com>
2959
2960         Web Inspector: Reduce type annotation update frequency
2961         https://bugs.webkit.org/show_bug.cgi?id=145066
2962
2963         Reviewed by Timothy Hatcher.
2964
2965         * UserInterface/Controllers/TypeTokenAnnotator.js:
2966         Reduce the frequency which could commonly be 16-24ms
2967         to a minimum of 100ms and maximum of 2000ms.
2968
2969 2015-05-15  Joseph Pecoraro  <pecoraro@apple.com>
2970
2971         Web Inspector: Fix some possible event listener leakers in content views
2972         https://bugs.webkit.org/show_bug.cgi?id=145068
2973
2974         Reviewed by Timothy Hatcher.
2975
2976         Now that some content views can be closed that weren't closable before, ensure
2977         we clean up after global event listeners that may strongly reference "this".
2978
2979         * UserInterface/Views/DOMTreeContentView.js:
2980         (WebInspector.DOMTreeContentView.prototype.closed):
2981         * UserInterface/Views/DOMTreeOutline.js:
2982         (WebInspector.DOMTreeOutline.prototype.close):
2983         * UserInterface/Views/LayoutTimelineView.js:
2984         (WebInspector.LayoutTimelineView.prototype.closed):
2985         * UserInterface/Views/NetworkTimelineView.js:
2986         (WebInspector.NetworkTimelineView.prototype.closed):
2987         * UserInterface/Views/RenderingFrameTimelineView.js:
2988         (WebInspector.RenderingFrameTimelineView.prototype.closed):
2989         * UserInterface/Views/ScriptContentView.js:
2990         (WebInspector.ScriptContentView.prototype.closed):
2991         * UserInterface/Views/ScriptTimelineView.js:
2992         (WebInspector.ScriptTimelineView.prototype.closed):
2993         * UserInterface/Views/SourceCodeTextEditor.js:
2994         (WebInspector.SourceCodeTextEditor.prototype.close):
2995         * UserInterface/Views/TextResourceContentView.js:
2996         (WebInspector.TextResourceContentView.prototype.closed):
2997         * UserInterface/Views/TimelineDataGrid.js:
2998         (WebInspector.TimelineDataGrid.prototype.closed):
2999         (WebInspector.TimelineDataGrid.prototype.handleEvent):
3000
3001 2015-05-15  Joseph Pecoraro  <pecoraro@apple.com>
3002
3003         Web Inspector: Initiator Popovers no longer work in Layout Timeline
3004         https://bugs.webkit.org/show_bug.cgi?id=145067
3005
3006         Reviewed by Timothy Hatcher.
3007
3008         * UserInterface/Views/LayoutTimelineDataGrid.js:
3009         (WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
3010         Update the column name, which changed in r183134.
3011
3012 2015-05-14  Joseph Pecoraro  <pecoraro@apple.com>
3013
3014         Web Inspector: Update the New Tab button disabled state after extra domains are activated
3015         https://bugs.webkit.org/show_bug.cgi?id=145028
3016
3017         Reviewed by Timothy Hatcher.
3018
3019         * UserInterface/Base/Main.js:
3020         (WebInspector.activateExtraDomains):
3021
3022 2015-05-14  Matt Baker  <mattbaker@apple.com>
3023
3024         Web Inspector: Current time marker is always at zero in Rendering Frames ruler
3025         https://bugs.webkit.org/show_bug.cgi?id=144518
3026
3027         Reviewed by Timothy Hatcher.
3028
3029         The current and end time values for the rendering frame timeline overview should always be equal to the frame
3030         number of the last record in the rendering frames timeline.
3031
3032         * UserInterface/Views/TimelineOverview.js:
3033         (WebInspector.TimelineOverview):
3034         (WebInspector.TimelineOverview.prototype.updateLayout):
3035         * UserInterface/Views/TimelineRecordingContentView.js:
3036         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
3037         (WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
3038
3039 2015-05-11  Brent Fulgham  <bfulgham@apple.com>
3040
3041         [Win] Move Windows build target to Windows 7 (or newer)
3042         https://bugs.webkit.org/show_bug.cgi?id=144890
3043         <rdar://problem/20707307>
3044
3045         Reviewed by Anders Carlsson.
3046
3047         Update linked SDK and minimal Windows level to be compatible with
3048         Windows 7 or newer.
3049
3050         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
3051
3052 2015-05-11  Timothy Hatcher  <timothy@apple.com>
3053
3054         Web Inspector: REGRESSION (Tabs): Issues reloading a resource with breakpoints
3055         https://bugs.webkit.org/show_bug.cgi?id=144650
3056
3057         Fix a number of issues with Debugger tab and navigation/reloading:
3058         - Close old content views in the Debugger tab when main frame navigates.
3059         - Prune old resource tree elements before attempting to restore a cookie that might match an old resource.
3060         - Allow breakpoint selections to be restored from a saved cookie.
3061         - Fix an assert when closing a content view that isn't the current index, but is the current view.
3062         - Avoid calling closed() multiple times when a ContentView is in the back/forward list more than once.
3063         - Make restoreStateFromCookie properly set and use the causedByNavigation argument for a longer restore delay.
3064         - Create a new cookie object per tab instead of it being cumulative from the previous cookie.
3065
3066         Reviewed by Brian Burg.
3067
3068         * UserInterface/Base/Main.js:
3069         (WebInspector._mainResourceDidChange): Delay calling _restoreCookieForOpenTabs to give time for sidebars
3070         and tabs to respond to the main resource change.
3071         (WebInspector._restoreCookieForOpenTabs): Rename causedByReload to causedByNavigation. Nothing special about
3072         reload since we restore on all navigation.
3073
3074         * UserInterface/Views/ContentView.js:
3075         (WebInspector.ContentView): Support Breakpoint as a represented object, which happens during a cookie restore.
3076         (WebInspector.ContentView.isViewable): Ditto.
3077
3078         * UserInterface/Views/ContentViewContainer.js:
3079         (WebInspector.ContentViewContainer.prototype.closeAllContentViews): Disassociate if the view is current and not just
3080         the current entry index. This matches other close functions. This fixes an assert in _disassociateFromContentView.
3081         (WebInspector.ContentViewContainer.prototype._disassociateFromContentView): Don't disassociate multiple times. This
3082         avoids calling the closed() function on a view more than once.
3083
3084         * UserInterface/Views/DebuggerSidebarPanel.js:
3085         (WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
3086         (WebInspector.DebuggerSidebarPanel.prototype._mainResourceDidChange): Renamed from _mainResourceChanged.
3087         Close all content views if this is the main frame. Also prune all old resources. Doing this now avoids a flash
3088         of having old and new resources in the tree caused by the default delay in NavigationSidebarPanel's _checkForOldResources.
3089
3090         * UserInterface/Views/NavigationSidebarPanel.js:
3091         (WebInspector.NavigationSidebarPanel): Set _autoPruneOldTopLevelResourceTreeElements for later.
3092         (WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineToAutoPrune): Deleted.
3093         (WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView): Fix typo.
3094         (WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement): Fix whitespace.
3095         (WebInspector.NavigationSidebarPanel.prototype.pruneOldResourceTreeElements): Added. Broken out from
3096         _checkForOldResources.delayedWork so it can be called manually. Also check all visible tree outlines.
3097         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): Pass treeElement in an array.
3098         (WebInspector.NavigationSidebarPanel.prototype._checkForOldResourcesIfNeeded): Added.
3099         (WebInspector.NavigationSidebarPanel.prototype._checkForOldResources): Call pruneOldResourceTreeElements on a delay.
3100         (WebInspector.NavigationSidebarPanel.prototype._checkForOldResources.delayedWork): Deleted.
3101         (WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie): Call _checkForOldResourcesIfNeeded.
3102         (WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie): Remove array folding code.
3103
3104         * UserInterface/Views/TabContentView.js:
3105         (WebInspector.TabContentView.prototype.restoreStateFromCookie): Rename causedByReload to causedByNavigation.
3106         (WebInspector.TabContentView.prototype.saveStateToCookie): Don't allow the cookie to build on the old cookie.
3107
3108 2015-05-11  Timothy Hatcher  <timothy@apple.com>
3109
3110         Web Inspector: NavigationSidebarPanel leaks some event listeners
3111         https://bugs.webkit.org/show_bug.cgi?id=144523
3112
3113         Reviewed by Joseph Pecoraro.
3114
3115         * UserInterface/Views/NavigationSidebarPanel.js:
3116         (WebInspector.NavigationSidebarPanel):
3117         (WebInspector.NavigationSidebarPanel.prototype.closed):
3118         * UserInterface/Views/ResourceSidebarPanel.js:
3119         (WebInspector.ResourceSidebarPanel.prototype.closed):
3120         * UserInterface/Views/SearchSidebarPanel.js:
3121         (WebInspector.SearchSidebarPanel.prototype.closed):
3122         * UserInterface/Views/StorageSidebarPanel.js:
3123         (WebInspector.StorageSidebarPanel.prototype.closed):
3124         * UserInterface/Views/TimelineSidebarPanel.js:
3125         (WebInspector.TimelineSidebarPanel.prototype.closed):
3126
3127 2015-05-10  Nikita Vasilyev  <nvasilyev@apple.com>
3128
3129         Web Inspector: In the console, show function name next to the source link
3130         https://bugs.webkit.org/show_bug.cgi?id=144372
3131
3132         Introduce CallFrameView to display counsole message source links. It looks like this:
3133
3134             [f] functionName - filename.js:42
3135
3136         Reviewed by Timothy Hatcher.
3137
3138         * UserInterface/Base/Main.js:
3139         (WebInspector.createSourceCodeLocationLink):
3140         (WebInspector.linkifyLocation):
3141         (.showSourceCodeLocation):
3142         (WebInspector.linkifyElement):
3143         Abstract this out as it's used in WebInspector.CallFrameView and WebInspector.createSourceCodeLocationLink.
3144
3145         (WebInspector.sourceCodeForURL):
3146         Move this code from Timeline to Main.js as it's used by Console too.
3147
3148         (WebInspector.linkifyURLAsNode):
3149         Remove tooltipText argument as it is never used.
3150
3151         * UserInterface/Controllers/TimelineManager.js:
3152         (WebInspector.TimelineManager.prototype._callFramesFromPayload):
3153         * UserInterface/Main.html:
3154         * UserInterface/Models/CallFrame.js:
3155         (WebInspector.CallFrame.fromPayload):
3156         Abstract this out as it's used in WebInspector.TimelineManager.prototype._callFramesFromPayload and
3157         WebInspector.ConsoleMessageView._appendLocationLink.
3158
3159         (WebInspector.CallFrame):
3160         * UserInterface/Views/CallFrameTreeElement.js:
3161         (WebInspector.CallFrameTreeElement):
3162         Move it to WebInspector.CallFrameView.iconForCallFrame.
3163
3164         * UserInterface/Views/CallFrameView.css: Added.
3165         (.call-frame):
3166         (.call-frame .icon):
3167         (.call-frame .titles):
3168         (.call-frame .title):
3169         (.call-frame .source-link):
3170         (.call-frame .title + .subtitle > .source-link):
3171         (.call-frame .subtitle .source-link):
3172         (.call-frame:focus .subtitle .source-link):
3173         (.call-frame .subtitle:empty):
3174         (.call-frame .subtitle):
3175         (.call-frame .colon):
3176         (.call-frame .title + .subtitle::before):
3177         * UserInterface/Views/CallFrameView.js: Added.
3178         (WebInspector.CallFrameView):
3179         (WebInspector.CallFrameView.iconClassNameForCallFrame):
3180         * UserInterface/Views/ConsoleMessageView.css:
3181         (.console-message .console-message-location):
3182         (.console-message .call-frame):
3183         (.console-message .go-to-link):
3184         (.console-message .go-to-link:focus):
3185         (.console-message .console-message-url::before):
3186         (.console-saved-variable): Deleted.
3187         * UserInterface/Views/ConsoleMessageView.js:
3188         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
3189         * UserInterface/Views/DebuggerDashboardView.js:
3190         * UserInterface/Views/Main.css:
3191         (.hidden): Deleted.
3192         * UserInterface/Views/ProfileNodeTreeElement.js:
3193         (WebInspector.ProfileNodeTreeElement):
3194         * UserInterface/Views/TimelineDataGridNode.js:
3195         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
3196
3197 2015-05-08  Tobias Reiss  <tobi+webkit@basecode.de>
3198
3199         Web Inspector: Styles sidebar editing with incomplete property looks poor in UI
3200         https://bugs.webkit.org/show_bug.cgi?id=141692
3201
3202         Reviewed by Timothy Hatcher.
3203
3204         Add "css-rule" Formatter that breaks CSS declarations into multiple lines,
3205         keeps comments and invalid styles and adds whitespace.
3206
3207         * Tools/PrettyPrinting/css-rule-tests/*.css: Added.
3208         Add test cases.
3209
3210         * Tools/PrettyPrinting/index.html:
3211         Enable Test setup to be able to run "css-rule" Formatter tests.
3212
3213         * UserInterface/Controllers/Formatter.js:
3214         (Formatter.prototype._handleToken):
3215         * UserInterface/Controllers/FormatterContentBuilder.js:
3216         (FormatterContentBuilder.prototype.removeLastNewline):
3217         (FormatterContentBuilder.prototype.removeLastWhitespace):
3218         (FormatterContentBuilder.prototype._popFormattedContent):
3219         (FormatterContentBuilder.prototype._popNewLine): Deleted.
3220         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
3221         (WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
3222         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set this):
3223         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
3224         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
3225         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
3226         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.countNewLineCharacters): Deleted.
3227         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.else): Deleted.
3228         * UserInterface/Views/CodeMirrorFormatters.js:
3229
3230 2015-05-07  Joseph Pecoraro  <pecoraro@apple.com>
3231
3232         Web Inspector: Expanding Object with only __proto__ looks poor should have a label
3233         https://bugs.webkit.org/show_bug.cgi?id=144755
3234
3235         Reviewed by Timothy Hatcher.
3236
3237         Better handle cases where expanding an object has only a __proto__
3238         and no other properties.
3239
3240         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
3241         (WebInspector.ObjectTreePropertyTreeElement.mode.prototype.this.children.length):
3242         (WebInspector.ObjectTreePropertyTreeElement):
3243         * UserInterface/Views/ObjectTreeView.css:
3244         (.object-tree-outline li .empty-message):
3245         * UserInterface/Views/ObjectTreeView.js:
3246         (WebInspector.ObjectTreeView.createEmptyMessageElement):
3247         (WebInspector.ObjectTreeView.comparePropertyDescriptors):
3248         (WebInspector.ObjectTreeView.prototype._updateProperties):
3249
3250 2015-05-07  Joseph Pecoraro  <pecoraro@apple.com>
3251
3252         Web Inspector: Fix querySelector in ResourceContentView.js, caught by assertion
3253         https://bugs.webkit.org/show_bug.cgi?id=144756
3254
3255         Reviewed by Timothy Hatcher.
3256
3257         * UserInterface/Views/ResourceContentView.js:
3258         (WebInspector.ResourceContentView.prototype._hasContent):
3259         Ensure querySelector call is using the class name correctly.
3260
3261 2015-05-06  Joseph Pecoraro  <pecoraro@apple.com>
3262
3263         Web Inspector: Docking Toolbar Buttons do not respect Docking Availability
3264         https://bugs.webkit.org/show_bug.cgi?id=144714
3265
3266         Reviewed by Timothy Hatcher.
3267
3268         * UserInterface/Base/Main.js:
3269         (WebInspector.contentLoaded):
3270         (WebInspector.updateDockingAvailability):
3271         (WebInspector._updateDockNavigationItems):
3272         Update the Toolbar UI based on docking availability.
3273         Assume docking is unavailable by default.
3274
3275         * UserInterface/Protocol/InspectorFrontendAPI.js:
3276         (InspectorFrontendAPI.setDockingUnavailable):
3277         Add back this API as the backend may be calling it when
3278         docking availability changes. This just calls out to
3279         global WebInspector functions to update the Toolbar UI.
3280
3281         * UserInterface/Base/Test.js:
3282         (WebInspector.updateDockedState):
3283         (WebInspector.updateDockingAvailability):
3284         Do nothing in tests.
3285
3286 2015-05-06  Matt Baker  <mattbaker@apple.com>
3287
3288         Web Inspector: The text in the left pane overlaps the "Filter Time Events" field in the Timeline after the Web Inspector is resized
3289         https://bugs.webkit.org/show_bug.cgi?id=144720
3290
3291         Reviewed by Timothy Hatcher.
3292
3293         * UserInterface/Views/FilterBar.css:
3294         (.filter-bar):
3295         (.filter-bar > .navigation-bar):
3296         (.filter-bar > input[type="search"]):
3297         (.filter-bar > .navigation-bar > .item): Deleted.
3298         Filter bar now has opaque background and height updated to the ubiquitous 29px.
3299
3300 2015-05-06  Joseph Pecoraro  <pecoraro@apple.com>
3301
3302         Web Inspector: DOMStorage exception and issue with sessionStorage
3303         https://bugs.webkit.org/show_bug.cgi?id=144646
3304
3305         Reviewed by Timothy Hatcher.
3306
3307         * UserInterface/Views/DOMStorageContentView.js:
3308         (WebInspector.DOMStorageContentView):
3309         (WebInspector.DOMStorageContentView.prototype._populate):
3310         (WebInspector.DOMStorageContentView.prototype.reset): Deleted.
3311         Always have the datagrid be available with a default sort.
3312
3313         (WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):
3314         (WebInspector.DOMStorageContentView.prototype._sortDataGrid):
3315         Simplify and correct the order.
3316
3317         (WebInspector.DOMStorageContentView.prototype.cleanup):
3318         Cleanup some uses of delete.
3319
3320         * UserInterface/Views/DataGrid.js:
3321         (WebInspector.DataGrid.prototype.sortNodesImmediately):
3322         Provide a way to sort immediately without a visible delay.
3323
3324         (WebInspector.DataGrid.prototype._sortNodesCallback):
3325         Cleanup some dead code to simplify sorting.
3326
3327         (WebInspector.DataGridNode.prototype._attach):
3328         When sorting, the children list does not match the child node list,
3329         so ensure that placeholder nodes are added to the end.
3330
3331         (WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
3332         Cleanup some uses of delete.
3333
3334 2015-05-06  Joseph Pecoraro  <pecoraro@apple.com>
3335
3336         Web Inspector: SourceCodeTextEditor shows "undefined" instead of resource content when pausing during resource load
3337         https://bugs.webkit.org/show_bug.cgi?id=144662
3338
3339         Reviewed by Timothy Hatcher.
3340
3341         * UserInterface/Protocol/InspectorBackend.js:
3342         (InspectorBackend.Command.prototype.promise):
3343         Start standardizing on rejecting Promises with Error objects.
3344
3345         * UserInterface/Views/ResourceContentView.js:
3346         (WebInspector.ResourceContentView):
3347         (WebInspector.ResourceContentView.prototype._protocolError):
3348         When there is a protocol error, show a nice UI string for the error.
3349
3350         (WebInspector.ResourceContentView.prototype._contentAvailable):
3351         (WebInspector.ResourceContentView.prototype._contentError):
3352         (WebInspector.ResourceContentView.prototype._hasContent):
3353         Whenever we hit an error case in ResourceContentView, check to make sure
3354         that a subclass hasn't already populated the content view with content.
3355         This can happen when a TextResourceContentView populates a Resource with
3356         Script content while paused, because the Resource content would be
3357         unavailable. We check that content has loaded by checking that the
3358         indeterminate spinner is no longer showing.
3359
3360 2015-05-05  Andres Gomez  <agomez@igalia.com>
3361
3362         [GTK] Web Inspector: Further optimize SVG images
3363         https://bugs.webkit.org/show_bug.cgi?id=144441
3364
3365         SVG images optimized with a combination of sed replacements, the
3366         usage of the scour tool (http://www.codedread.com/scour/) and a
3367         forked version of the svgo tool (https://github.com/tanty/svgo).
3368
3369         Also, added the class attribute to the shape elements following
3370         the convention used in Apple's images.
3371
3372         Reviewed by Joseph Pecoraro.
3373
3374         * UserInterface/Images/gtk/BackArrow.svg: Optimized.
3375         * UserInterface/Images/gtk/BreakpointActionAdd.svg: Optimized.
3376         * UserInterface/Images/gtk/BreakpointActionRemove.svg: Optimized.
3377         * UserInterface/Images/gtk/BreakpointButton.svg: Optimized.
3378         * UserInterface/Images/gtk/BreakpointInactiveButton.svg: Optimized.
3379         * UserInterface/Images/gtk/Breakpoints.svg: Optimized.
3380         * UserInterface/Images/gtk/Checkers.svg: Optimized.
3381         * UserInterface/Images/gtk/Circle.svg: Optimized.
3382         * UserInterface/Images/gtk/Close.svg: Optimized.
3383         * UserInterface/Images/gtk/CloseLarge.svg: Optimized.
3384         * UserInterface/Images/gtk/CloseWhite.svg: Optimized.
3385         * UserInterface/Images/gtk/ContentFlow.svg: Optimized.
3386         * UserInterface/Images/gtk/Crosshair.svg: Optimized.
3387         * UserInterface/Images/gtk/DOMCharacterData.svg: Optimized.
3388         * UserInterface/Images/gtk/DOMComment.svg: Optimized.
3389         * UserInterface/Images/gtk/DOMDocument.svg: Optimized.
3390         * UserInterface/Images/gtk/DOMDocumentType.svg: Optimized.
3391         * UserInterface/Images/gtk/DOMElement.svg: Optimized.
3392         * UserInterface/Images/gtk/DOMNode.svg: Optimized.
3393         * UserInterface/Images/gtk/DOMTextNode.svg: Optimized.
3394         * UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Optimized.
3395         * UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Optimized.
3396         * UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Optimized.
3397         * UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Optimized.
3398         * UserInterface/Images/gtk/DockBottom.svg: Optimized.
3399         * UserInterface/Images/gtk/DockRight.svg: Optimized.
3400         * UserInterface/Images/gtk/DownloadArrow.svg: Optimized.
3401         * UserInterface/Images/gtk/Error.svg: Optimized.
3402         * UserInterface/Images/gtk/Errors.svg: Optimized.
3403         * UserInterface/Images/gtk/ErrorsEnabled.svg: Optimized.
3404         * UserInterface/Images/gtk/EventListener.svg: Optimized.
3405         * UserInterface/Images/gtk/Exception.svg: Optimized.
3406         * UserInterface/Images/gtk/Eye.svg: Optimized.
3407         * UserInterface/Images/gtk/FilterFieldGlyph.svg: Optimized.
3408         * UserInterface/Images/gtk/ForwardArrow.svg: Optimized.
3409         * UserInterface/Images/gtk/Function.svg: Optimized.
3410         * UserInterface/Images/gtk/GoToArrow.svg: Optimized.
3411         * UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Optimized.
3412         * UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Optimized.
3413         * UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Optimized.
3414         * UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Optimized.
3415         * UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Optimized.
3416         * UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Optimized.
3417         * UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Optimized.
3418         * UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Optimized.
3419         * UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Optimized.
3420         * UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Optimized.
3421         * UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Optimized.
3422         * UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Optimized.
3423         * UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Optimized.
3424         * UserInterface/Images/gtk/Issues.svg: Optimized.
3425         * UserInterface/Images/gtk/IssuesEnabled.svg: Optimized.
3426         * UserInterface/Images/gtk/LayerBorders.svg: Optimized.
3427         * UserInterface/Images/gtk/Locked.svg: Optimized.
3428         * UserInterface/Images/gtk/Logs.svg: Optimized.
3429         * UserInterface/Images/gtk/Native.svg: Optimized.
3430         * UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Optimized.
3431         * UserInterface/Images/gtk/NavigationItemTrash.svg: Optimized.
3432         * UserInterface/Images/gtk/NavigationItemTypes.svg: Optimized.
3433         * UserInterface/Images/gtk/PaintFlashing.svg: Optimized.
3434         * UserInterface/Images/gtk/Pause.svg: Optimized.
3435         * UserInterface/Images/gtk/PausedBreakpoint.svg: Optimized.
3436         * UserInterface/Images/gtk/Pencil.svg: Optimized.
3437         * UserInterface/Images/gtk/Plus.svg: Optimized. Text element
3438         converted into a shape.
3439         * UserInterface/Images/gtk/PseudoElement.svg: Optimized.
3440         * UserInterface/Images/gtk/Record.svg: Optimized.
3441         * UserInterface/Images/gtk/Reflection.svg: Optimized.
3442         * UserInterface/Images/gtk/ReloadFull.svg: Optimized.
3443         * UserInterface/Images/gtk/ReplayPauseButton.svg: Optimized.
3444         * UserInterface/Images/gtk/ReplayPlayButton.svg: Optimized.
3445         * UserInterface/Images/gtk/ReplayRecordingButton.svg: Optimized.
3446         * UserInterface/Images/gtk/Request.svg: Optimized.
3447         * UserInterface/Images/gtk/Resources.svg: Optimized.
3448         * UserInterface/Images/gtk/Response.svg: Optimized.
3449         * UserInterface/Images/gtk/ResultLine.svg: Optimized.
3450         * UserInterface/Images/gtk/Resume.svg: Optimized.
3451         * UserInterface/Images/gtk/ShadowDOM.svg: Optimized.
3452         * UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Optimized.
3453         * UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Optimized.
3454         * UserInterface/Images/gtk/SplitToggleUp.svg: Optimized.
3455         * UserInterface/Images/gtk/StepInto.svg: Optimized.
3456         * UserInterface/Images/gtk/StepOut.svg: Optimized.
3457         * UserInterface/Images/gtk/StepOver.svg: Optimized.
3458         * UserInterface/Images/gtk/Stop.svg: Optimized.
3459         * UserInterface/Images/gtk/StyleRuleAuthor.svg: Optimized.
3460         * UserInterface/Images/gtk/StyleRuleInherited.svg: Optimized.
3461         * UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Optimized.
3462         * UserInterface/Images/gtk/StyleRuleInspector.svg: Optimized.
3463         * UserInterface/Images/gtk/StyleRuleUser.svg: Optimized.
3464         * UserInterface/Images/gtk/StyleRuleUserAgent.svg: Optimized.
3465         * UserInterface/Images/gtk/TimelineRecordAnimation.svg: Optimized.
3466         * UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Optimized.
3467         * UserInterface/Images/gtk/TimelineRecordEvent.svg: Optimized.
3468         * UserInterface/Images/gtk/TimelineRecordLayout.svg: Optimized.
3469         * UserInterface/Images/gtk/TimelineRecordPaint.svg: Optimized.
3470         * UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Optimized.
3471         * UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Optimized.
3472         * UserInterface/Images/gtk/TimelineRecordStyle.svg: Optimized.
3473         * UserInterface/Images/gtk/TimelineRecordTimer.svg: Optimized.
3474         * UserInterface/Images/gtk/TypeBoolean.svg: Optimized.
3475         * UserInterface/Images/gtk/TypeNull.svg: Optimized.
3476         * UserInterface/Images/gtk/TypeNumber.svg: Optimized.
3477         * UserInterface/Images/gtk/TypeObject.svg: Optimized.
3478         * UserInterface/Images/gtk/TypeRegex.svg: Optimized. Removed
3479         mistaken extra shape.
3480         * UserInterface/Images/gtk/TypeString.svg: Optimized.
3481         * UserInterface/Images/gtk/TypeSymbol.svg: Optimized. Removed
3482         mistaken extra shape.
3483         * UserInterface/Images/gtk/TypeUndefined.svg: Optimized.
3484         * UserInterface/Images/gtk/Undock.svg: Optimized.
3485         * UserInterface/Images/gtk/UpDownArrows.svg: Optimized.
3486         * UserInterface/Images/gtk/UserInputPrompt.svg: Optimized.
3487         * UserInterface/Images/gtk/UserInputPromptPrevious.svg: Optimized.
3488         * UserInterface/Images/gtk/UserInputResult.svg: Optimized.
3489         * UserInterface/Images/gtk/Warning.svg: Optimized.
3490
3491 2015-05-05  Timothy Hatcher  <timothy@apple.com>
3492
3493         REGRESSION: Web Inspector: no way to navigate to a resource/source location from overview timeline view
3494         https://bugs.webkit.org/show_bug.cgi?id=144539
3495
3496         Reviewed by Brian Burg.
3497
3498         * UserInterface/Views/GeneralTreeElement.js:
3499         (WebInspector.GeneralTreeElement.prototype.set status): Call didChange() so the onchange event fires. This allows
3500         TimelineSidebarPanel to update the status element when it goes from a spinner to empty for ResourceTreeElements.
3501         (WebInspector.GeneralTreeElement.prototype.onattach): Don't call _updateStatusElement, just append it if needed.
3502         Calling _updateStatusElement caused DOMNodeFragments as status elements to be appended a second time and fail.
3503         * UserInterface/Views/NavigationSidebarPanel.js:
3504         (WebInspector.NavigationSidebarPanel.prototype.treeElementAddedOrChanged):
3505         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
3506         * UserInterface/Views/NetworkTimelineView.js:
3507         (WebInspector.NetworkTimelineView.prototype.canShowContentViewForTreeElement):
3508         (WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
3509         (WebInspector.NetworkTimelineView.prototype.treeElementSelected):
3510         (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
3511         (WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
3512         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked): Deleted.
3513         * UserInterface/Views/OverviewTimelineView.js:
3514         (WebInspector.OverviewTimelineView.prototype.canShowContentViewForTreeElement):
3515         (WebInspector.OverviewTimelineView.prototype.showContentViewForTreeElement):
3516         (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
3517         (WebInspector.OverviewTimelineView.prototype._treeElementDeselected): Deleted.
3518         (WebInspector.OverviewTimelineView.prototype._treeElementSelected): Deleted.
3519         (WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
3520         (WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked): Deleted.
3521         * UserInterface/Views/RenderingFrameTimelineView.js:
3522         (WebInspector.RenderingFrameTimelineView.prototype.canShowContentViewForTreeElement):
3523         (WebInspector.RenderingFrameTimelineView.prototype.showContentViewForTreeElement):
3524         * UserInterface/Views/ResourceTimelineDataGridNode.js:
3525         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent): Don't show a go-to arrow in the Domain column.
3526         (WebInspector.ResourceTimelineDataGridNode.prototype._goToResource): Deleted.
3527         * UserInterface/Views/ScriptTimelineView.js:
3528         (WebInspector.ScriptTimelineView.prototype.canShowContentViewForTreeElement):
3529         (WebInspector.ScriptTimelineView.prototype.showContentViewForTreeElement):
3530         (WebInspector.ScriptTimelineView.prototype.treeElementSelected):
3531         * UserInterface/Views/TimelineRecordTreeElement.js:
3532         (WebInspector.TimelineRecordTreeElement.prototype.get sourceCodeLocation):
3533         * UserInterface/Views/TimelineSidebarPanel.css:
3534         (.sidebar > .panel.navigation.timeline .item:hover:not(.selected) .status .close.status-button):
3535         (.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .status .go-to-arrow.status-button):
3536         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .status .close.status-button):
3537         * UserInterface/Views/TimelineSidebarPanel.js:
3538         (WebInspector.TimelineSidebarPanel.prototype.treeElementAddedOrChanged): Added.
3539         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
3540         (WebInspector.TimelineSidebarPanel.prototype._treeElementGoToArrowWasClicked): Added.
3541         (WebInspector.TimelineSidebarPanel.prototype._treeElementCloseButtonClicked): Added.
3542         * UserInterface/Views/TimelineView.js:
3543         (WebInspector.TimelineView):
3544         (WebInspector.TimelineView.prototype.canShowContentViewForTreeElement):
3545         (WebInspector.TimelineView.prototype.showContentViewForTreeElement):
3546         (WebInspector.TimelineView.prototype.treeElementDeselected):
3547         (WebInspector.TimelineView.prototype.treeElementSelected):
3548         (WebInspector.TimelineView.prototype.needsLayout):
3549         (WebInspector.TimelineView.prototype._closeStatusButtonClicked): Deleted.
3550         (WebInspector.TimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
3551         * UserInterface/Views/TreeElementStatusButton.css:
3552         (.item > .status > .status-button): Fix an alignment issue with close and go-to arrows being side-by-side.
3553         Does not happen in the final patch because they are mutually exclusive, but still good to fix.
3554
3555 2015-05-05  Timothy Hatcher  <timothy@apple.com>
3556
3557         Web Inspector: Fix some issues with Search tabs
3558         https://bugs.webkit.org/show_bug.cgi?id=144531
3559
3560         Reviewed by Darin Adler.
3561
3562         * UserInterface/Views/ContentView.js:
3563         (WebInspector.ContentView):
3564         (WebInspector.ContentView.isViewable):
3565         Support DOMSearchMatchObject and SourceCodeSearchMatchObject representedObjects. These are usually
3566         handled at a higher level, but cookie restoring requires ContentView to handle them.
3567
3568         * UserInterface/Views/DOMTreeContentView.js:
3569         (WebInspector.DOMTreeContentView):
3570         (WebInspector.DOMTreeContentView.prototype.selectAndRevealDOMNode):
3571         (WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
3572         (WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
3573         Don't allow restoring the previous selected node when another not has already been selected.
3574
3575         * UserInterface/Views/SearchTabContentView.js:
3576         (WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
3577         Allow Script objects to be shown in the Search tab.
3578
3579 2015-05-05  Timothy Hatcher  <timothy@apple.com>
3580
3581         Web Inspector: Source/WebInspectorUI/UserInterface/Images/Logs.svg has unknown attribute "fille"
3582         https://bugs.webkit.org/show_bug.cgi?id=144627
3583
3584         Reviewed by Darin Adler.
3585
3586         * UserInterface/Images/Logs.svg: Change "fille" to "fill".
3587
3588 2015-05-05  Andres Gomez  <agomez@igalia.com>
3589
3590         [GTK] Web Inspector: New Images added in r183339, r183338, r183332, r183323, r182660, and r182186
3591         https://bugs.webkit.org/show_bug.cgi?id=144329
3592
3593         Reviewed by Joseph Pecoraro.
3594
3595         * UserInterface/Images/gtk/Console.svg: Added.
3596         * UserInterface/Images/gtk/Debugger.svg: Added.
3597         * UserInterface/Images/gtk/Elements.svg: Added.
3598         * UserInterface/Images/gtk/Gear.svg: Added.
3599         * UserInterface/Images/gtk/NewTab.svg: Added.
3600         * UserInterface/Images/gtk/NewTabPlus.svg: Added.
3601         * UserInterface/Images/gtk/ReloadToolbar.svg: Added.
3602         * UserInterface/Images/gtk/SearchResults.svg: Added.
3603         * UserInterface/Images/gtk/Storage.svg: Added.
3604         * UserInterface/Images/gtk/Timeline.svg: Added.
3605         * UserInterface/Images/gtk/TimelineRecordRenderingFrame.svg: Added.
3606         * UserInterface/Images/gtk/ToggleLeftSidebar.svg: Added.
3607         * UserInterface/Images/gtk/ToggleRightSidebar.svg: Added.
3608
3609 2015-05-05  Andres Gomez  <agomez@igalia.com>
3610
3611         [GTK] Web Inspector: icons for console.info() messages
3612         https://bugs.webkit.org/show_bug.cgi?id=144461
3613
3614         Reviewed by Joseph Pecoraro.
3615
3616         * UserInterface/Images/gtk/Debug.svg: Added.
3617         * UserInterface/Images/gtk/Info.svg: Added.
3618         * UserInterface/Images/gtk/Log.svg: Added.
3619
3620 2015-05-04  Joseph Pecoraro  <pecoraro@apple.com>
3621
3622         Web Inspector: Always expand initial top level DOM tree nodes when not including the root (frame views)
3623         https://bugs.webkit.org/show_bug.cgi?id=144607
3624
3625         Reviewed by Timothy Hatcher.
3626
3627         * UserInterface/Views/DOMTreeOutline.js:
3628         (WebInspector.DOMTreeOutline.prototype.update):
3629
3630 2015-05-04  Timothy Hatcher  <timothy@apple.com>
3631
3632         Web Inspector: Allow closing and reopening the Debugger tab
3633         https://bugs.webkit.org/show_bug.cgi?id=144536
3634
3635         Reviewed by Joseph Pecoraro.
3636
3637         * UserInterface/Base/Main.js:
3638         (WebInspector._updateNewTabButtonState):
3639         * UserInterface/Views/DebuggerSidebarPanel.js:
3640         (WebInspector.DebuggerSidebarPanel):
3641         (WebInspector.DebuggerSidebarPanel.prototype.closed):
3642         (WebInspector.DebuggerSidebarPanel.prototype._addIssuesForSourceCode):
3643         (WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
3644         (WebInspector.DebuggerSidebarPanel.prototype._resourceAdded):
3645         (WebInspector.DebuggerSidebarPanel.prototype._addResource):
3646         (WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
3647         (WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
3648         (WebInspector.DebuggerSidebarPanel.prototype._addScript):
3649         * UserInterface/Views/DebuggerTabContentView.js:
3650         (WebInspector.DebuggerTabContentView):
3651         * UserInterface/Views/NewTabContentView.js:
3652         (WebInspector.NewTabContentView):
3653
3654 2015-05-04  Timothy Hatcher  <timothy@apple.com>
3655
3656         REGRESSION: Web Inspector: FrameTreeElement does not folders properly when loading a page
3657         https://bugs.webkit.org/show_bug.cgi?id=144535
3658
3659         Reviewed by Joseph Pecoraro.
3660
3661         * UserInterface/Views/FolderizedTreeElement.js:
3662         (WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Fix an exception if not in a tree.
3663         (WebInspector.FolderizedTreeElement.prototype.prepareToPopulate):
3664         (WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):
3665
3666 2015-05-04  Timothy Hatcher  <timothy@apple.com>
3667
3668         Web Inspector: Allow closing and reopening the Timelines tab
3669         https://bugs.webkit.org/show_bug.cgi?id=144520
3670
3671         Reviewed by Joseph Pecoraro.
3672
3673         * UserInterface/Base/Main.js:
3674         (WebInspector._updateNewTabButtonState):
3675         * UserInterface/Controllers/TimelineManager.js:
3676         (WebInspector.TimelineManager): No need for a delay now. Call reset().
3677         (WebInspector.TimelineManager.prototype.reset):
3678         (WebInspector.TimelineManager.delayedWork): Deleted.
3679         * UserInterface/Views/ContentBrowserTabContentView.js:
3680         (WebInspector.ContentBrowserTabContentView):
3681         (WebInspector.ContentBrowserTabContentView.prototype.closed):
3682         * UserInterface/Views/LayoutTimelineView.js:
3683         (WebInspector.LayoutTimelineView.prototype.closed): Added. Fixed leak.
3684         * UserInterface/Views/NetworkTimelineView.js:
3685         (WebInspector.NetworkTimelineView.prototype.closed): Added. Fixed leak.
3686         * UserInterface/Views/NewTabContentView.js:
3687         (WebInspector.NewTabContentView): Added Timelines.
3688         * UserInterface/Views/OverviewTimelineView.js:
3689         (WebInspector.OverviewTimelineView.prototype.closed): Added. Fixed leak.
3690         * UserInterface/Views/RenderingFrameTimelineView.js:
3691         (WebInspector.RenderingFrameTimelineView.prototype.closed): Added. Fixed leak.
3692         * UserInterface/Views/ScriptTimelineView.js:
3693         (WebInspector.ScriptTimelineView.prototype.closed):
3694         * UserInterface/Views/SearchTabContentView.js:
3695         (WebInspector.SearchTabContentView.prototype.closed): Deleted. Made generic
3696         in ContentBrowserTabContentView.prototype.closed.
3697         * UserInterface/Views/TabBrowser.js:
3698         (WebInspector.TabBrowser.prototype._tabBarItemSelected): Fix a potential exception
3699         when selectedTabBarItem is null.
3700         * UserInterface/Views/TimelineSidebarPanel.js:
3701         (WebInspector.TimelineSidebarPanel):
3702         (WebInspector.TimelineSidebarPanel.prototype.closed):
3703         (WebInspector.TimelineSidebarPanel._recordingCreated): Call _addRecording.
3704         (WebInspector.TimelineSidebarPanel._addRecording): Added.
3705         * UserInterface/Views/TimelineTabContentView.js:
3706         (WebInspector.TimelineTabContentView):
3707
3708 2015-05-04  Timothy Hatcher  <timothy@apple.com>
3709
3710         Web Inspector: Switching recordings in the Timeline navigation bar is broken
3711         https://bugs.webkit.org/show_bug.cgi?id=144519
3712
3713         Reviewed by Joseph Pecoraro.
3714
3715         * UserInterface/Views/ContentBrowser.js:
3716         (WebInspector.ContentBrowser.prototype._hierarchicalPathComponentWasSelected): Use revealAndSelect
3717         on the TreeElement instead of showing the representedObject directly. This fixes an exception in
3718         TimelineRecordingContentView where it wouldn't be initialized with the TimelineSidebarPanel extra argument.
3719         * UserInterface/Views/TimelineOverview.js:
3720         (WebInspector.TimelineOverview.prototype.get visibleDuration): Fix an annoying assert. We show the view
3721         early in construction, before it is in the document. Future updateLayout calls work and fix this.
3722         * UserInterface/Views/TimelineRecordingContentView.js:
3723         (WebInspector.TimelineRecordingContentView.prototype.shown): Call _currentContentViewDidChange
3724         to trigger the sidebar to update when this recording view is shown.
3725         * UserInterface/Views/TimelineSidebarPanel.js:
3726         (WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Moved code from here...
3727         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected): ... to here. Take two different paths
3728         to state restoration here. If the view existed before, use its state. If now, use the current state that
3729         is captured by the cookie logic and explicitly restore it.
3730
3731 2015-05-03  Timothy Hatcher  <timothy@apple.com>
3732
3733         Web Inspector: Exception under ContentViewContainer _disassociateFromContentView
3734         https://bugs.webkit.org/show_bug.cgi?id=144546
3735
3736         Reviewed by Brian Burg.
3737
3738         * UserInterface/Views/ContentViewContainer.js:
3739         (WebInspector.ContentViewContainer.prototype.showContentView):
3740         Make sure to pass the ContentView to _disassociateFromContentView. Also negate the result
3741         of the _backForwardList.some(), since we don't want to dissociate if the content view is
3742         still in the back-forward list.
3743
3744 2015-05-02  Matt Baker  <mattbaker@apple.com>
3745
3746         Web Inspector: Relocate the selected range details in the Rendering Frames timeline UI
3747         https://bugs.webkit.org/show_bug.cgi?id=144346
3748
3749         This patch removes the details sidebar used by the rendering frames view, and relocates the frame selection
3750         chart the Timelines navigation sidebar.
3751
3752         Reviewed by Timothy Hatcher.
3753
3754         * Localizations/en.lproj/localizedStrings.js:
3755         * UserInterface/Base/Main.js:
3756         (WebInspector.contentLoaded):
3757         RenderingFramesDetailsSidebar is no longer used.
3758
3759         * UserInterface/Controllers/TimelineManager.js:
3760         (WebInspector.TimelineManager.prototype._loadNewRecording):
3761         Reordered timelines.
3762
3763         * UserInterface/Main.html:
3764         Removed references to deleted files.
3765
3766         * UserInterface/Views/ChartDetailsSectionLegendRow.js: Removed.
3767         No longer used. The legend is now a child element of the chart.
3768
3769         * UserInterface/Views/ChartDetailsSectionRow.css:
3770         (.details-section > .content > .group > .row.chart > .title):
3771         (.details-section > .content > .group > .row.chart > .chart-content):
3772         (.details-section > .content > .group > .row.chart > .chart-content > .legend):
3773         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item):
3774         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch):
3775         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label):
3776         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .value):
3777         (.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > *):
3778         New chart and legend styles.
3779
3780         * UserInterface/Views/ChartDetailsSectionRow.js:
3781         (WebInspector.ChartDetailsSectionRow):
3782         (WebInspector.ChartDetailsSectionRow.prototype.set title):
3783         (WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
3784         (WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
3785         (WebInspector.ChartDetailsSectionRow.prototype.get total):
3786         (WebInspector.ChartDetailsSectionRow.set data):
3787         (WebInspector.ChartDetailsSectionRow.prototype.set data):
3788         (WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
3789         (WebInspector.ChartDetailsSectionRow.prototype._refresh):
3790
3791         A few changes have been made to the appearance and behavior of the chart. A chart title can now be set,
3792         and the legend appears to the right of the chart rather than in a separate details group.
3793