[LFC][TFC] Compute column min/max widths and table width.
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog-2013-06-11
1 2013-06-10  Timothy Hatcher  <timothy@apple.com>
2
3         Remove Xcode 4 skin and only have the Xcode 5 look.
4
5         Reviewed by Joseph Pecoraro.
6
7         * UserInterface/ButtonNavigationItem.css:
8         (.navigation-bar .item.button.suppress-emboss.disabled > .glyph):
9         * UserInterface/CodeMirrorOverrides.css:
10         * UserInterface/DashboardView.css:
11         (.toolbar .dashboard):
12         (body.window-inactive .toolbar .dashboard):
13         (.toolbar.collapsed .dashboard):
14         (.toolbar.collapsed .dashboard > .logs):
15         * UserInterface/DashboardView.js:
16         (WebInspector.DashboardView):
17         (WebInspector.DashboardView.prototype._setItemEnabled):
18         * UserInterface/DetailsSection.css:
19         * UserInterface/DividerNavigationItem.css:
20         (.navigation-bar .item.divider):
21         * UserInterface/FilterBar.css:
22         (.filter-bar > input[type="search"]):
23         (.filter-bar > input[type="search"]::-webkit-input-placeholder):
24         (.filter-bar > input[type="search"]:valid):
25         * UserInterface/FindBanner.css:
26         (.find-banner > input[type="search"]):
27         (.find-banner > button):
28         * UserInterface/HierarchicalPathComponent.css:
29         * UserInterface/InstrumentSidebarPanel.css:
30         * UserInterface/LayerTreeSidebarPanel.css:
31         * UserInterface/Main.css:
32         (#split-content-browser > .navigation-bar):
33         * UserInterface/NavigationBar.css:
34         * UserInterface/NavigationSidebarPanel.css:
35         * UserInterface/RadioButtonNavigationItem.css:
36         (.navigation-bar .item.radio.button.text-only.selected):
37         * UserInterface/ResourceSidebarPanel.css:
38         * UserInterface/ResourceSidebarPanel.js:
39         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
40         * UserInterface/ScopeBar.css:
41         (.scope-bar > li):
42         (.scope-bar > li:active):
43         (.scope-bar > li:hover):
44         (.scope-bar > li.selected):
45         * UserInterface/SearchBar.css:
46         (.search-bar > input[type="search"]):
47         (.search-bar > input[type="search"]::-webkit-input-placeholder):
48         (.search-bar > input[type="search"]:valid):
49         * UserInterface/TimelinesContentView.css:
50         (.content-view.timelines > .data-grid > .navigation-bar-container > .navigation-bar):
51
52 2013-06-08  Timothy Hatcher  <timothy@apple.com>
53
54         Improve switching from the full view console to the Resource sidebar, so the previous resource is shown in the content browser again.
55
56         Also cleans up my earlier changes and removes an assert that can fire often now.
57
58         <rdar://problem/14075352> Jumping to a resource from the Timelines panel should reveal file in Resources sidebar when showing resource
59
60         Reviewed by Antoine Quint.
61
62         * UserInterface/Main.js:
63         (WebInspector.showFullHeightConsole):
64         (WebInspector._sidebarCollapsedStateDidChange): Call _updateNavigationSidebarForCurrentContentView for the navigation sidebar.
65         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Only do this work if the sidebar is not collapsed. We don't
66         want to deselect items if the sidebar is collapsed, preserving the selection is important when showing the sidebar later.
67         (WebInspector._updateNavigationSidebarForCurrentContentView): Added. Split off from _navigationSidebarPanelSelected. Only do this work
68         if the sidebar is not collapsed.
69         (WebInspector._navigationSidebarPanelSelected): Call _updateNavigationSidebarForCurrentContentView.
70         (WebInspector._contentBrowserCurrentContentViewDidChange): Clean up by returning early if there is no current content view.
71         * UserInterface/ResourceSidebarPanel.js:
72         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Remove an assert that can happen a lot now.
73
74 2013-06-07  Antoine Quint  <graouts@apple.com>
75
76         <rdar://problem/14094308> Styles should come before Layers details sidebar
77
78         Switch Layers and Styles.
79
80         Reviewed by Timothy Hatcher.
81
82         * UserInterface/CSSStyleDetailsSidebarPanel.js:
83         (WebInspector.CSSStyleDetailsSidebarPanel):
84         * UserInterface/LayerTreeSidebarPanel.js:
85         (WebInspector.LayerTreeSidebarPanel):
86         * UserInterface/Main.js:
87         (WebInspector.contentLoaded):
88
89 2013-06-07  Timothy Hatcher  <timothy@apple.com>
90
91         Keep the selected tree element in sync with the current content view.
92
93         <rdar://problem/14075352> Jumping to a resource from the Timelines panel should reveal file in Resources sidebar when showing resource
94
95         Reviewed by Antoine Quint.
96
97         * UserInterface/Main.js:
98         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Added.
99         (WebInspector._navigationSidebarPanelSelected): Call _revealAndSelectRepresentedObjectInNavigationSidebar.
100         (WebInspector._contentBrowserCurrentContentViewDidChange): Ditto.
101
102 2013-06-07  Timothy Hatcher  <timothy@apple.com>
103
104         Keep the navigation sidebar and the current content view in sync with a set of allowed sidebars per content view.
105
106         <rdar://problem/14075352> Jumping to a resource from the Timelines panel should reveal file in Resources sidebar when showing resource
107
108         Reviewed by Antoine Quint.
109
110         * UserInterface/ContentView.js:
111         (WebInspector.ContentView.prototype.get allowedNavigationSidebarPanels): Added.
112         * UserInterface/FrameContentView.js:
113         (WebInspector.FrameContentView.prototype.get allowedNavigationSidebarPanels): Added.
114         * UserInterface/Main.js:
115         (WebInspector.showSplitConsole): Show the navigation sidebar if it was showing.
116         (WebInspector.showFullHeightConsole): Hide the navigation sidebar and remember if it was showing.
117         (WebInspector.toggleConsoleView): Show the sidebar if it was showing.
118         (WebInspector._navigationSidebarPanelSelected): Ensure the navigation sidebar panel is allowed by the current content view.
119         (WebInspector._contentBrowserCurrentContentViewDidChange): Ditto.
120         * UserInterface/NavigationSidebarPanel.js:
121         (WebInspector.NavigationSidebarPanel.prototype.showContentViewForCurrentSelection):
122         (WebInspector.NavigationSidebarPanel.prototype.shown):
123         * UserInterface/ProfileView.js:
124         (WebInspector.ProfileView.prototype.get allowedNavigationSidebarPanels): Added.
125         * UserInterface/ResourceClusterContentView.js:
126         (WebInspector.ResourceClusterContentView.prototype.get allowedNavigationSidebarPanels): Added.
127         * UserInterface/TimelinesContentView.js:
128         (WebInspector.TimelinesContentView.prototype.get allowedNavigationSidebarPanels): Added.
129
130 2013-06-06  Timothy Hatcher  <timothy@apple.com>
131
132         Properly filter into resources with a source map if they haven't been expanded yet.
133
134         <rdar://problem/14072548> Resources filter shows "No Filter Results" after reload with SourceMaps
135
136         Reviewed by Joseph Pecoraro.
137
138         * UserInterface/NavigationSidebarPanel.js:
139         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): Pass false to
140         traverseNextTreeElement to cause the tree elements to be populated. This matches the interactive
141         case when typing into the filter bar, which already worked with source maps.
142
143 2013-06-05  Antoine Quint  <graouts@apple.com>
144
145         <rdar://problem/14077407> Jumping to an error in a JS file form the console highlights to white first before going back to red
146
147         Remove the explicit ÒtoÓ color in the CSS animation we use to highlight a link
148         in the text editor as it is revealed, which means the ÒtoÓ color will be the
149         underlying color set on the element. This will animate to red for errors,
150         yellow for warnings, and transparent for regular lines.
151
152         Reviewed by Timothy Hatcher.
153
154         * UserInterface/TextEditor.css:
155         (@-webkit-keyframes text-editor-highlight-fadeout):
156
157 2013-06-05  Antoine Quint  <graouts@apple.com>
158
159         <rdar://problem/14077152> Activity viewer does not update error count for grouped errors when inspector is closed.
160
161         Take into account the repeat count of an error when incrementing
162         the message count.
163
164         Reviewed by Timothy Hatcher.
165
166         * UserInterface/DashboardManager.js:
167         (WebInspector.DashboardManager.prototype._consoleMessageAdded):
168         (WebInspector.DashboardManager.prototype._consoleMessageWasRepeated):
169         (WebInspector.DashboardManager.prototype._incrementConsoleMessageType):
170
171 2013-06-05  Joseph Pecoraro  <pecoraro@apple.com>
172
173         <rdar://problem/14072409> Pressing Enter/Esc when editing a breakpoint (conditional breakpoint) should dismiss popover
174
175         Handle Esc and Enter on the <input> to dismiss the popover.
176         This behaves like Xcode's breakpoint condition popover.
177
178         Reviewed by Timothy Hatcher.
179
180         * UserInterface/Breakpoint.js:
181         (WebInspector.Breakpoint.prototype._popoverConditionInputKeyDown):
182         (WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
183         (WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
184
185 2013-06-05  Joseph Pecoraro  <pecoraro@apple.com>
186
187         <rdar://problem/14054886> Pressing Enter in a blank console should do nothing, not insert a newline
188
189         Reviewed by Antoine Quint.
190
191         * UserInterface/ConsolePrompt.js:
192
193 2013-06-05  Timothy Hatcher  <timothy@apple.com>
194
195         Add/update copyright and license to all the user interface files in
196         preparation for open sourcing to WebKit.
197
198         Rubber-stamped by Antoine Quint.
199
200         * UserInterface/ActivateButtonNavigationItem.js:
201         * UserInterface/ActivateButtonToolbarItem.js:
202         * UserInterface/ApplicationCacheDetailsSidebarPanel.js:
203         * UserInterface/ApplicationCacheFrame.js:
204         * UserInterface/ApplicationCacheFrameContentView.css:
205         * UserInterface/ApplicationCacheFrameContentView.js:
206         * UserInterface/ApplicationCacheFrameTreeElement.js:
207         * UserInterface/ApplicationCacheIcons.css:
208         * UserInterface/ApplicationCacheManager.js:
209         * UserInterface/ApplicationCacheManifest.js:
210         * UserInterface/ApplicationCacheManifestTreeElement.js:
211         * UserInterface/ApplicationCacheObserver.js:
212         * UserInterface/BinarySearch.js:
213         * UserInterface/BlankStylePropertiesSection.js:
214         * UserInterface/BottomUpProfileDataGridTree.js:
215         * UserInterface/BoxModelDetailsSectionRow.css:
216         * UserInterface/BoxModelDetailsSectionRow.js:
217         * UserInterface/Branch.js:
218         * UserInterface/BranchManager.js:
219         * UserInterface/Breakpoint.css:
220         * UserInterface/Breakpoint.js:
221         * UserInterface/BreakpointIcons.css:
222         * UserInterface/BreakpointTreeElement.css:
223         * UserInterface/BreakpointTreeElement.js:
224         * UserInterface/ButtonNavigationItem.css:
225         * UserInterface/ButtonNavigationItem.js:
226         * UserInterface/ButtonToolbarItem.css:
227         * UserInterface/ButtonToolbarItem.js:
228         * UserInterface/CSSCompletions.js:
229         * UserInterface/CSSKeywordCompletions.js:
230         * UserInterface/CSSMedia.js:
231         * UserInterface/CSSObserver.js:
232         * UserInterface/CSSProperty.js:
233         * UserInterface/CSSRule.js:
234         * UserInterface/CSSSelectorProfileObject.js:
235         * UserInterface/CSSSelectorProfileType.js:
236         * UserInterface/CSSSelectorProfileView.js:
237         * UserInterface/CSSStyleDeclaration.js:
238         * UserInterface/CSSStyleDeclarationSection.css:
239         * UserInterface/CSSStyleDeclarationSection.js:
240         * UserInterface/CSSStyleDeclarationTextEditor.css:
241         * UserInterface/CSSStyleDeclarationTextEditor.js:
242         * UserInterface/CSSStyleDetailsSidebarPanel.css:
243         * UserInterface/CSSStyleDetailsSidebarPanel.js:
244         * UserInterface/CSSStyleManager.js:
245         * UserInterface/CSSStyleSheet.js:
246         * UserInterface/CallFrame.js:
247         * UserInterface/CallFrameIcons.css:
248         * UserInterface/CallFrameTreeElement.js:
249         * UserInterface/ClusterContentView.css:
250         * UserInterface/ClusterContentView.js:
251         * UserInterface/CodeMirrorAdditions.js:
252         * UserInterface/CodeMirrorCompletionController.css:
253         * UserInterface/CodeMirrorCompletionController.js:
254         * UserInterface/CodeMirrorFormatters.js:
255         * UserInterface/CodeMirrorOverrides.css:
256         * UserInterface/CodeMirrorTokenTrackingController.css:
257         * UserInterface/CodeMirrorTokenTrackingController.js:
258         * UserInterface/Color.js:
259         * UserInterface/CompletionSuggestionsView.css:
260         * UserInterface/CompletionSuggestionsView.js:
261         * UserInterface/ComputedStyleDetailsPanel.js:
262         * UserInterface/ConsoleCommand.js:
263         * UserInterface/ConsoleCommandResult.js:
264         * UserInterface/ConsoleGroup.js:
265         * UserInterface/ConsoleMessage.js:
266         * UserInterface/ConsoleMessageImpl.js:
267         * UserInterface/ConsoleObserver.js:
268         * UserInterface/ConsolePrompt.css:
269         * UserInterface/ConsolePrompt.js:
270         * UserInterface/ContentBrowser.css:
271         * UserInterface/ContentBrowser.js:
272         * UserInterface/ContentView.css:
273         * UserInterface/ContentView.js:
274         * UserInterface/ContentViewContainer.css:
275         * UserInterface/ContentViewContainer.js:
276         * UserInterface/ContextMenu.js:
277         * UserInterface/ControlToolbarItem.css:
278         * UserInterface/ControlToolbarItem.js:
279         * UserInterface/CookieIcon.css:
280         * UserInterface/CookieStorageContentView.css:
281         * UserInterface/CookieStorageContentView.js:
282         * UserInterface/CookieStorageObject.js:
283         * UserInterface/CookieStorageTreeElement.js:
284         * UserInterface/DOMDetailsSidebarPanel.js:
285         * UserInterface/DOMNode.js:
286         * UserInterface/DOMNodeDetailsSidebarPanel.js:
287         * UserInterface/DOMNodeStyles.js:
288         * UserInterface/DOMObserver.js:
289         * UserInterface/DOMSearchMatchObject.js:
290         * UserInterface/DOMStorageContentView.css:
291         * UserInterface/DOMStorageContentView.js:
292         * UserInterface/DOMStorageIcons.css:
293         * UserInterface/DOMStorageObject.js:
294         * UserInterface/DOMStorageObserver.js:
295         * UserInterface/DOMStorageTreeElement.js:
296         * UserInterface/DOMTree.js:
297         * UserInterface/DOMTreeContentView.css:
298         * UserInterface/DOMTreeContentView.js:
299         * UserInterface/DOMTreeElement.js:
300         * UserInterface/DOMTreeElementPathComponent.js:
301         * UserInterface/DOMTreeManager.js:
302         * UserInterface/DOMTreeOutline.css:
303         * UserInterface/DOMTreeOutline.js:
304         * UserInterface/DOMTreeUpdater.js:
305         * UserInterface/DOMUtilities.js:
306         * UserInterface/DashboardManager.js:
307         * UserInterface/DashboardView.css:
308         * UserInterface/DashboardView.js:
309         * UserInterface/DataGrid.css:
310         * UserInterface/DataGrid.js:
311         * UserInterface/DatabaseContentView.css:
312         * UserInterface/DatabaseContentView.js:
313         * UserInterface/DatabaseHostTreeElement.js:
314         * UserInterface/DatabaseIcon.css:
315         * UserInterface/DatabaseObject.js:
316         * UserInterface/DatabaseObserver.js:
317         * UserInterface/DatabaseTableContentView.css:
318         * UserInterface/DatabaseTableContentView.js:
319         * UserInterface/DatabaseTableIcon.css:
320         * UserInterface/DatabaseTableObject.js:
321         * UserInterface/DatabaseTableTreeElement.js:
322         * UserInterface/DatabaseTreeElement.js:
323         * UserInterface/DebuggerManager.js:
324         * UserInterface/DebuggerObserver.js:
325         * UserInterface/DebuggerSidebarPanel.css:
326         * UserInterface/DebuggerSidebarPanel.js:
327         * UserInterface/DetailsSection.css:
328         * UserInterface/DetailsSection.js:
329         * UserInterface/DetailsSectionDataGridRow.js:
330         * UserInterface/DetailsSectionGroup.js:
331         * UserInterface/DetailsSectionPropertiesRow.js:
332         * UserInterface/DetailsSectionRow.js:
333         * UserInterface/DetailsSectionSimpleRow.js:
334         * UserInterface/DetailsSidebarPanel.css:
335         * UserInterface/DetailsSidebarPanel.js:
336         * UserInterface/DividerNavigationItem.css:
337         * UserInterface/DividerNavigationItem.js:
338         * UserInterface/Editing.css:
339         * UserInterface/EditingSupport.js:
340         * UserInterface/EventHandler.js:
341         * UserInterface/EventListenerSection.js:
342         * UserInterface/EventListenerSectionGroup.css:
343         * UserInterface/EventListenerSectionGroup.js:
344         * UserInterface/ExecutionContext.js:
345         * UserInterface/ExecutionContextList.js:
346         * UserInterface/FilterBar.css:
347         * UserInterface/FilterBar.js:
348         * UserInterface/FindBanner.css:
349         * UserInterface/FindBanner.js:
350         * UserInterface/FlexibleSpaceNavigationItem.css:
351         * UserInterface/FlexibleSpaceNavigationItem.js:
352         * UserInterface/FolderIcon.css:
353         * UserInterface/FolderTreeElement.js:
354         * UserInterface/FontResourceContentView.css:
355         * UserInterface/FontResourceContentView.js:
356         * UserInterface/Formatter.js:
357         * UserInterface/FormatterContentBuilder.js:
358         * UserInterface/FormatterSourceMap.js:
359         * UserInterface/Frame.js:
360         * UserInterface/FrameContentView.js:
361         * UserInterface/FrameResourceManager.js:
362         * UserInterface/FrameTreeElement.js:
363         * UserInterface/GeneralTreeElement.js:
364         * UserInterface/GeneralTreeElementPathComponent.js:
365         * UserInterface/GenericResourceContentView.js:
366         * UserInterface/Geometry.js:
367         * UserInterface/HierarchicalPathComponent.css:
368         * UserInterface/HierarchicalPathComponent.js:
369         * UserInterface/HierarchicalPathNavigationItem.js:
370         * UserInterface/ImageResourceContentView.css:
371         * UserInterface/ImageResourceContentView.js:
372         * UserInterface/ImageUtilities.js:
373         * UserInterface/IndeterminateProgressSpinner.css:
374         * UserInterface/IndeterminateProgressSpinner.js:
375         * UserInterface/InspectorBackend.js:
376         * UserInterface/InspectorFrontendAPI.js:
377         * UserInterface/InspectorObserver.js:
378         * UserInterface/InstrumentIcons.css:
379         * UserInterface/InstrumentSidebarPanel.css:
380         * UserInterface/InstrumentSidebarPanel.js:
381         * UserInterface/IssueManager.js:
382         * UserInterface/IssueMessage.js:
383         * UserInterface/JavaScriptLogViewController.js:
384         * UserInterface/JavaScriptProfileObject.js:
385         * UserInterface/JavaScriptProfileType.js:
386         * UserInterface/JavaScriptProfileView.css:
387         * UserInterface/JavaScriptProfileView.js:
388         * UserInterface/KeyboardShortcut.js:
389         * UserInterface/LayerTreeDataGrid.js:
390         * UserInterface/LayerTreeDataGridNode.js:
391         * UserInterface/LayerTreeManager.js:
392         * UserInterface/LayerTreeObserver.js:
393         * UserInterface/LayerTreeSidebarPanel.css:
394         * UserInterface/LayerTreeSidebarPanel.js:
395         * UserInterface/LayoutTimelineDataGrid.js:
396         * UserInterface/LayoutTimelineDataGridNode.js:
397         * UserInterface/LayoutTimelineRecord.js:
398         * UserInterface/LoadInspectorBackendCommands.js:
399         * UserInterface/LoadLocalizedStrings.js:
400         * UserInterface/LogContentView.css:
401         * UserInterface/LogContentView.js:
402         * UserInterface/LogIcon.css:
403         * UserInterface/LogManager.js:
404         * UserInterface/LogObject.js:
405         * UserInterface/LogTreeElement.js:
406         * UserInterface/MIMETypeUtilities.js:
407         * UserInterface/Main.css:
408         * UserInterface/Main.html:
409         * UserInterface/Main.js:
410         * UserInterface/MetricsStyleDetailsPanel.js:
411         * UserInterface/NavigationBar.css:
412         * UserInterface/NavigationBar.js:
413         * UserInterface/NavigationItem.js:
414         * UserInterface/NavigationSidebarPanel.css:
415         * UserInterface/NavigationSidebarPanel.js:
416         * UserInterface/NetworkDataGrid.css:
417         * UserInterface/NetworkDataGrid.js:
418         * UserInterface/NetworkGraphCalculator.js:
419         * UserInterface/NetworkObserver.js:
420         * UserInterface/NetworkTimeline.css:
421         * UserInterface/Object.js:
422         * UserInterface/ObjectPropertiesSection.js:
423         * UserInterface/PageObserver.js:
424         * UserInterface/PathComponentIcons.css:
425         * UserInterface/Popover.css:
426         * UserInterface/Popover.js:
427         * UserInterface/ProfileManager.js:
428         * UserInterface/ProfileObject.js:
429         * UserInterface/ProfileType.js:
430         * UserInterface/ProfileView.css:
431         * UserInterface/ProfileView.js:
432         * UserInterface/ProfilerObserver.js:
433         * UserInterface/PropertiesSection.js:
434         * UserInterface/QuickConsole.css:
435         * UserInterface/QuickConsole.js:
436         * UserInterface/QuickConsoleNavigationBar.js:
437         * UserInterface/RadioButtonNavigationItem.css:
438         * UserInterface/RadioButtonNavigationItem.js:
439         * UserInterface/Resource.js:
440         * UserInterface/ResourceClusterContentView.js:
441         * UserInterface/ResourceCollection.js:
442         * UserInterface/ResourceContentView.js:
443         * UserInterface/ResourceDetailsSidebarPanel.js:
444         * UserInterface/ResourceIcons.css:
445         * UserInterface/ResourceSearchMatchObject.js:
446         * UserInterface/ResourceSidebarPanel.css:
447         * UserInterface/ResourceSidebarPanel.js:
448         * UserInterface/ResourceTimelineDataGridNode.js:
449         * UserInterface/ResourceTimelineDataGridNodePathComponent.js:
450         * UserInterface/ResourceTimelineRecord.js:
451         * UserInterface/ResourceTreeElement.css:
452         * UserInterface/ResourceTreeElement.js:
453         * UserInterface/Revision.js:
454         * UserInterface/RulesStyleDetailsPanel.css:
455         * UserInterface/RulesStyleDetailsPanel.js:
456         * UserInterface/RuntimeObserver.js:
457         * UserInterface/ScopeBar.css:
458         * UserInterface/ScopeBar.js:
459         * UserInterface/ScopeBarItem.js:
460         * UserInterface/ScopeChainDetailsSidebarPanel.js:
461         * UserInterface/ScopeChainNode.js:
462         * UserInterface/ScopeVariableTreeElement.js:
463         * UserInterface/Script.js:
464         * UserInterface/ScriptContentView.css:
465         * UserInterface/ScriptContentView.js:
466         * UserInterface/ScriptTimelineDataGrid.js:
467         * UserInterface/ScriptTimelineDataGridNode.js:
468         * UserInterface/ScriptTimelineRecord.js:
469         * UserInterface/ScriptTreeElement.js:
470         * UserInterface/SearchBar.css:
471         * UserInterface/SearchBar.js:
472         * UserInterface/SearchIcons.css:
473         * UserInterface/SearchResultTreeElement.js:
474         * UserInterface/Section.css:
475         * UserInterface/Section.js:
476         * UserInterface/Setting.js:
477         * UserInterface/Sidebar.css:
478         * UserInterface/Sidebar.js:
479         * UserInterface/SidebarPanel.js:
480         * UserInterface/SourceCode.js:
481         * UserInterface/SourceCodeLocation.js:
482         * UserInterface/SourceCodePosition.js:
483         * UserInterface/SourceCodeRevision.js:
484         * UserInterface/SourceCodeTextEditor.css:
485         * UserInterface/SourceCodeTextEditor.js:
486         * UserInterface/SourceCodeTextRange.js:
487         * UserInterface/SourceCodeTreeElement.js:
488         * UserInterface/SourceMap.js:
489         * UserInterface/SourceMapManager.js:
490         * UserInterface/SourceMapResource.js:
491         * UserInterface/SourceMapResourceTreeElement.js:
492         * UserInterface/StorageManager.js:
493         * UserInterface/StorageTreeElement.js:
494         * UserInterface/StyleDetailsPanel.js:
495         * UserInterface/StyleRuleIcons.css:
496         * UserInterface/SyntaxHighlightingDefaultTheme.css:
497         * UserInterface/SyntaxHighlightingSupport.js:
498         * UserInterface/TextContentView.css:
499         * UserInterface/TextContentView.js:
500         * UserInterface/TextEditor.css:
501         * UserInterface/TextEditor.js:
502         * UserInterface/TextRange.js:
503         * UserInterface/TextResourceContentView.css:
504         * UserInterface/TextResourceContentView.js:
505         * UserInterface/TimelineDataGrid.css:
506         * UserInterface/TimelineDataGrid.js:
507         * UserInterface/TimelineDecorations.css:
508         * UserInterface/TimelineDecorations.js:
509         * UserInterface/TimelineEventMarker.js:
510         * UserInterface/TimelineManager.js:
511         * UserInterface/TimelineObserver.js:
512         * UserInterface/TimelineOverview.css:
513         * UserInterface/TimelineOverview.js:
514         * UserInterface/TimelineRecord.js:
515         * UserInterface/TimelinesContentView.css:
516         * UserInterface/TimelinesContentView.js:
517         * UserInterface/TimelinesObject.js:
518         * UserInterface/ToggleButtonNavigationItem.js:
519         * UserInterface/ToggleControlToolbarItem.js:
520         * UserInterface/Toolbar.css:
521         * UserInterface/Toolbar.js:
522         * UserInterface/TreeOutline.js:
523         * UserInterface/Utilities.js:
524         * UserInterface/WebInspector.js:
525
526 2013-06-05  Timothy Hatcher  <timothy@apple.com>
527
528         Properly update the boundaries for the NetworkTransferTimeCalculator.
529
530         It is expected that _lowerBound and _upperBound return NaN instead of 0.
531
532         <rdar://problem/14040314> Web Inspector says it takes ~15,000 days to load developer library
533
534         Reviewed by Joseph Pecoraro.
535
536         * UserInterface/NetworkDataGrid.js:
537         (WebInspector.NetworkDataGrid.prototype._updateHeaderTimes):
538         * UserInterface/NetworkGraphCalculator.js:
539         (WebInspector.NetworkTransferTimeCalculator.prototype._lowerBound):
540         (WebInspector.NetworkTransferTimeCalculator.prototype._upperBound):
541         * UserInterface/TimelineDecorations.js:
542         (WebInspector.TimelineDecorations.prototype.updateHeaderTimes):
543
544 2013-06-05  Timothy Hatcher  <timothy@apple.com>
545
546         Unlocalize the box model labels.
547
548         <rdar://problem/14057745> [WebBrowser]: Euro: 13A476r: Box model should not be localized
549
550         Reviewed by Ada Chan.
551
552         * UserInterface/BoxModelDetailsSectionRow.js:
553         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
554
555 2013-06-05  Timothy Hatcher  <timothy@apple.com>
556
557         Syntax highlight inherit, initial and function names in CSS as keywords.
558
559         Part of: <rdar://problem/14053613> "-webkit-transform" autocompletes with colon in -webkit-transition definition
560
561         Reviewed by Joseph Pecoraro.
562
563         * UserInterface/CSSCompletions.js:
564         (WebInspector.CSSCompletions.requestCSSNameCompletions.propertyNamesCallback):
565         Strip function parenthesis from names. Process the color list to strip function parenthesis from rgb(), etc.
566
567 2013-06-05  Timothy Hatcher  <timothy@apple.com>
568
569         Improve the implicit suffix handling when editing in the middle of a CSS value.
570
571         Part of: <rdar://problem/14053613> "-webkit-transform" autocompletes with colon in -webkit-transition definition
572
573         Reviewed by Joseph Pecoraro.
574
575         * UserInterface/CodeMirrorCompletionController.js:
576         (WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
577
578 2013-06-05  Timothy Hatcher  <timothy@apple.com>
579
580         Autocomplete property names for transition and transition-property.
581
582         Part of: <rdar://problem/14053613> "-webkit-transform" autocompletes with colon in -webkit-transition definition
583
584         Reviewed by Joseph Pecoraro.
585
586         * UserInterface/CSSCompletions.js:
587         (WebInspector.CSSCompletions.prototype.get values):
588         * UserInterface/CSSKeywordCompletions.js:
589         (WebInspector.CSSKeywordCompletions.forProperty):
590
591 2013-06-04  Timothy Hatcher  <timothy@apple.com>
592
593         Properly autocomplete CSS values if the property name is on a previous line.
594
595         Part of: <rdar://problem/14053613> "-webkit-transform" autocompletes with colon in -webkit-transition definition
596
597         Reviewed by Joseph Pecoraro.
598
599         * UserInterface/CodeMirrorCompletionController.js:
600         (WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
601
602 2013-06-03  Timothy Hatcher  <timothy@apple.com>
603
604         Add property names to the value keywords list so they are highlighted for -webkit-transition.
605
606         <rdar://problem/14052662> "-webkit-transform" is not correctly highlighted when editing CSS resource
607
608         Reviewed by Joseph Pecoraro.
609
610         * UserInterface/CSSCompletions.js:
611         (WebInspector.CSSCompletions.requestCSSNameCompletions.collectPropertyNameForCodeMirror):
612
613 2013-06-03  Joseph Pecoraro  <pecoraro@apple.com>
614
615         <rdar://problem/14047312> Add New Rules sometimes doesn't do anything
616
617         Better handle generating selectors for nodes with spaces in class or id attributes.
618
619         Tests: (Cases that were failing before)
620
621           <div class=" x "> => Before: (..x.)  After: (.x)
622           <div id=" x ">    => Before: (# x )  After: (div[id=" x "])
623           <div id='"x"'>    => Before: (#"x")  After: (div[id="\"x\""])
624
625         Reviewed by Timothy Hatcher.
626
627         * UserInterface/DOMNode.js:
628         (WebInspector.DOMNode.prototype.appropriateSelectorFor):
629         * UserInterface/DOMUtilities.js:
630         (WebInspector.displayNameForNode):
631
632 2013-06-03  Antoine Quint  <graouts@apple.com>
633
634         <rdar://problem/13932229> Update CSSKeywordCompletions.js for iOS properties
635
636         Add support for the new Ò-appleÓ-prefixed values for the ÒfontÓ property.
637
638         Reviewed by Timothy Hatcher.
639
640         * UserInterface/CSSKeywordCompletions.js:
641
642 2013-06-03  Joseph Pecoraro  <pecoraro@apple.com>
643
644         <rdar://problem/14047029> Exception CallFrameTreeElement.js:19: TypeError: 'null' is not an object (evaluating 'callFrame.sourceCodeLocation.displaySourceCode')
645
646         Only include a subtitle for call frame tree elements if there is a
647         source code location, because that is used to determine the subtitle.
648
649         Reviewed by Timothy Hatcher.
650
651         * UserInterface/CallFrameTreeElement.js:
652         (WebInspector.CallFrameTreeElement):
653
654 2013-06-03  Timothy Hatcher  <timothy@apple.com>
655
656         Hide the caret in read-only style declarations.
657
658         <rdar://problem/14047344> Locked rules (UA stylesheets) in Styles sidebar shouldn't display a caret
659
660         Reviewed by Joseph Pecoraro.
661
662         * UserInterface/CSSStyleDeclarationTextEditor.css:
663         (.css-style-text-editor.read-only > .CodeMirror .CodeMirror-cursor): Added.
664
665 2013-06-03  Timothy Hatcher  <timothy@apple.com>
666
667         Correctly stop auto recording the Timeline after the load event or a maximum duration (which ever comes first).
668
669         The original fix for <rdar://problem/13180009> was incorrect and caused <rdar://problem/13919974>
670         and also caused infinite auto recording on pages with indefinite timers that rapidly adds records.
671
672         <rdar://problem/14043180> REGRESSION (6.0.5-Curie): Safari Web Content: 100% CPU when using Inspector
673
674         Reviewed by Joseph Pecoraro.
675
676         * UserInterface/TimelineManager.js:
677         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
678         Don't call _stopAutoRecordingSoon for the DOMContent event.
679
680         (WebInspector.TimelineManager.prototype._addRecord):
681         Don't call _stopAutoRecordingSoon. Add the call to _resetAutoRecordingDeadTimeTimeout back.
682
683         (WebInspector.TimelineManager.prototype._startAutoRecording):
684         Use MaximumAutoRecordDuration instead of MaximumAutoRecordDurationAfterLastRecord for the timeout.
685
686         (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
687         Remove the dead time timeout now that it is back in _addRecord.
688
689 2013-06-02  Joseph Pecoraro  <pecoraro@apple.com>
690
691         <rdar://problem/14040519> BoxModelDetailsSectionRow.js:120: ERROR: TypeError: 'null' is not an object (evaluating 'style.propertyForName(width).value')
692
693         Make the sidebar resilient against the possibility of an empty computed
694         style object. The ultimate issue is that the DOM Tree does not have a
695         selected node, but this could should be resilient anyways.
696
697         Reviewed by Timothy Hatcher.
698
699         * UserInterface/BoxModelDetailsSectionRow.js:
700         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
701
702 2013-06-02  Joseph Pecoraro  <pecoraro@apple.com>
703
704         Reveal line sometimes doesn't work with content right at the edge of the screen.
705
706         Reviewed by Timothy Hatcher.
707
708         * UserInterface/TextEditor.js:
709         (WebInspector.TextEditor.prototype._isPositionVisible):
710
711 2013-05-31  Joseph Pecoraro  <pecoraro@apple.com>
712
713         <rdar://problem/14039888> Should not have spellchecking during most HTML editing
714
715         Allow EditingConfig to specify whether or not spellchecking should be enabled.
716         Spellcheck is off by default, because most of the time it is code, and it is
717         only enabled when editing a TextNode in the DOM Tree.
718
719         Reviewed by Timothy Hatcher.
720
721         * UserInterface/DOMTreeElement.js:
722         (WebInspector.DOMTreeElement.prototype._startEditingTextNode):
723         * UserInterface/EditingSupport.js:
724         (WebInspector.EditingConfig):
725         (.cleanUpAfterEditing):
726
727 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
728
729         <rdar://problem/14030289> Goto arrow from Timelines to autoformatted script not highlighting line correctly
730
731         Previously the SourceCodeTextEditor was automatically formatting the
732         content after the content was set on the TextEditor and some initial
733         processing; such as revealing a pending position. This change lets
734         the SourceCodeTextEditor signal to the TextEditor that it should
735         automatically format the incoming string before the extra processing
736         takes place. Now the pending position is updated in _prettyPrint,
737         and revealed appropriately.
738
739         Reviewed by Antoine Quint.
740
741         * UserInterface/SourceCodeTextEditor.js:
742         (WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate):
743         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
744         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
745         Move the auto formatting decision from didPopulate to willPopulate.
746         If autoformatting is needed, we signal the TextEditor before setting
747         the string.
748
749         * UserInterface/TextEditor.js:
750         (WebInspector.TextEditor.prototype.set string.update):
751         (WebInspector.TextEditor.prototype.set string):
752         (WebInspector.TextEditor.prototype.set autoFormat):
753         Keep a boolean for whether or not we should auto format when setting
754         the string. When setting the string, format if needed, after clearing
755         the history and before any pending position reveals.
756
757 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
758
759         <rdar://problem/14030289> Goto arrow from Timelines to autoformatted script not highlighting line correctly
760
761         Rename "revealLine" to "revealPosition". Now, if the first reveal is
762         for a position in pretty printed code, it can be remapped to an
763         appropriate (line, column), instead of whatever (line, 0) mapped to.
764
765         There is one bug fix here, the _prettyPrint in TextEditor was
766         incorrectly doing this._lineNumberToReveal.lineNumber, which should
767         have just been this._lineNumberToReveal. However, this code was not
768         getting reached in its current form. That will be addressed in the
769         next part.
770
771         Reviewed by Antoine Quint.
772
773         * UserInterface/FrameContentView.js:
774         (WebInspector.FrameContentView.prototype.showSourceCode):
775         * UserInterface/ResourceClusterContentView.js:
776         (WebInspector.ResourceClusterContentView.prototype.showResponse):
777         (WebInspector.ResourceClusterContentView.prototype._resourceLoadingDidFinish):
778         * UserInterface/ResourceSidebarPanel.js:
779         (WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
780         (WebInspector.ResourceSidebarPanel.prototype.showSourceCodeLocation):
781         (WebInspector.ResourceSidebarPanel.prototype.showOriginalUnformattedSourceCodeLocation):
782         (WebInspector.ResourceSidebarPanel.prototype.showOriginalOrFormattedSourceCodeLocation):
783         (WebInspector.ResourceSidebarPanel.prototype.showSourceCodeTextRange):
784         (WebInspector.ResourceSidebarPanel.prototype.showOriginalOrFormattedSourceCodeTextRange):
785         * UserInterface/ScriptContentView.js:
786         (WebInspector.ScriptContentView.prototype.revealPosition):
787         * UserInterface/TextContentView.js:
788         (WebInspector.TextContentView.prototype.revealPosition):
789         * UserInterface/TextEditor.js:
790         (WebInspector.TextEditor.prototype.set string.update):
791         (WebInspector.TextEditor.prototype.set string):
792         (WebInspector.TextEditor.prototype.revealNextSearchResult):
793         (WebInspector.TextEditor.prototype.line):
794         (WebInspector.TextEditor.prototype.updateLayout):
795         (WebInspector.TextEditor.prototype._textRangeFromCodeMirrorPosition):
796         (WebInspector.TextEditor.prototype._codeMirrorPositionFromTextRange):
797         * UserInterface/TextResourceContentView.js:
798         (WebInspector.TextResourceContentView.prototype.revealPosition):
799
800 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
801
802         <rdar://problem/14030289> Goto arrow from Timelines to autoformatted script not highlighting line correctly
803
804         Add WebInspector.SourceCodePosition. Rather than passing lineNumber
805         and columnNumber as separate parameters all over the place, we can
806         pass a position object. Create positions as appropriate from other
807         classes like SourceCodeLocation and TextRange.
808
809         Reviewed by Antoine Quint.
810
811         * UserInterface/Main.html:
812         * UserInterface/SourceCodeLocation.js:
813         (WebInspector.SourceCodeLocation.prototype.position):
814         (WebInspector.SourceCodeLocation.prototype.formattedPosition):
815         (WebInspector.SourceCodeLocation.prototype.displayPosition):
816         * UserInterface/SourceCodePosition.js: Added.
817         (WebInspector.SourceCodePosition):
818         (WebInspector.SourceCodePosition.prototype.get lineNumber):
819         (WebInspector.SourceCodePosition.prototype.get columnNumber):
820         * UserInterface/TextRange.js:
821         (WebInspector.TextRange.prototype.startPosition):
822         (WebInspector.TextRange.prototype.endPosition):
823
824 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
825
826         <rdar://problem/14030289> Goto arrow from Timelines to autoformatted script not highlighting line correctly
827
828         Remove a reveal that always happens with line number 0.
829
830         Reviewed by Antoine Quint.
831
832         * UserInterface/Main.js:
833         (WebInspector.toggleConsoleView):
834         * UserInterface/ResourceSidebarPanel.js:
835         (WebInspector.ResourceSidebarPanel.prototype.showMainFrameSourceCode):
836
837 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
838
839         Unprefix uses of "-webkit-calc".
840
841         Reviewed by Timothy Hatcher.
842
843         * UserInterface/CSSStyleDeclarationTextEditor.css:
844         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
845
846 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
847
848         <rdar://problem/14028576> Inspector finds CSS color names in other strings
849
850         Be a little more picky with our CSS regex, and include some post-processing
851         to act as a negative lookbehind, which is not supported in JavaScript regexes.
852         Do not allow color names that are prefixed or post-fixed with '-' or '.'.
853
854         Tests cases that previously would have produced swatches:
855
856           url(gold.png);
857           url("fools-gold.png");
858           url(fools.gold.png);
859
860         Using a regex is of course an imperfect solution, but it covers the majority
861         of cases and works well. It also allows us to detect colors in comments and
862         provide color swatches for those. This allows us to filter out some more
863         inappropriate cases.
864
865         Reviewed by Timothy Hatcher.
866
867         * UserInterface/CSSStyleDeclarationTextEditor.js:
868         (WebInspector.CSSStyleDeclarationTextEditor.prototype.):
869         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
870
871 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
872
873         <rdar://problem/14023649> No -webkit-filter autocompletion
874
875         Add functions to CSS completion suggestions. When the completion
876         suggestion is showing it has both parens, when committed, the cursor is
877         placed inside the two parens so users can keep typing.
878
879         This adds a bunch of common function completions.
880
881         Reviewed by Timothy Hatcher.
882
883         * UserInterface/CSSKeywordCompletions.js:
884         * UserInterface/CodeMirrorCompletionController.js:
885         (WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint):
886
887 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
888
889         <rdar://problem/13994485> Hovering element breadcrumbs should highlight element on page
890
891         When hovering DOMTreeElementPathComponents highlight the associated
892         node on the page, like when you hover the DOMTreeElement.
893
894         Reviewed by Dean Jackson.
895
896         * UserInterface/HierarchicalPathComponent.js:
897         (WebInspector.HierarchicalPathComponent):
898         (WebInspector.HierarchicalPathComponent.prototype._selectElementMouseOver):
899         (WebInspector.HierarchicalPathComponent.prototype._selectElementMouseOut):
900         Provide hooks for subclass mouseOver and mouseOut functions.
901
902         * UserInterface/DOMTreeElementPathComponent.js:
903         (WebInspector.DOMTreeElementPathComponent.prototype.get nextSibling):
904         (WebInspector.DOMTreeElementPathComponent.prototype.mouseOver):
905         (WebInspector.DOMTreeElementPathComponent.prototype.mouseOut):
906         Implement the mouseOver and mouseOut to show / hide the DOM highlight.
907
908 2013-05-30  Joseph Pecoraro  <pecoraro@apple.com>
909
910         <rdar://problem/14020206> Debugger popover not showing for "this"
911
912         Allow popover for the keyword "this".
913
914         Reviewed by Antoine Quint.
915
916         * UserInterface/CodeMirrorTokenTrackingController.js:
917         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
918
919 2013-05-28  Joseph Pecoraro  <pecoraro@apple.com>
920
921         <rdar://problem/14007495> Web Inspector has "Instruments," but this is already a feature in Xcode
922
923         Rename the "Instruments" Navigation Sidebar to "Timelines". Marketing
924         had concerns about using the same name in multiple places.
925
926         Rubber-stamped by Timothy Hatcher.
927
928         * Localizations/en.lproj/localizedStrings.js:
929         * UserInterface/InstrumentSidebarPanel.js:
930         (WebInspector.InstrumentSidebarPanel):
931
932 2013-05-28  Joseph Pecoraro  <pecoraro@apple.com>
933
934         <rdar://problem/14006550> Console errors persist when you navigate to other pages
935
936         The console can clear in two ways, handle both events.
937
938         Reviewed by Timothy Hatcher.
939
940         * UserInterface/DashboardManager.js:
941         (WebInspector.DashboardManager):
942
943 2013-05-27  Timothy Hatcher  <timothy@apple.com>
944
945         Fix copy handeling for DataGrid.
946
947         When text selection was disabled in r48866, that broke the copy event
948         handlers for DataGrid. That change prevents focus from making a caret
949         selection inside the DataGrid (it goes outside to the nearest selectable
950         text). This broke bubbling of the copy event to the right elements.
951
952         Reviewed by Antoine Quint.
953
954         * UserInterface/DataGrid.js:
955         (WebInspector.DataGrid):
956         (WebInspector.DataGrid.prototype.handleBeforeCopyEvent):
957         (WebInspector.DataGrid.prototype.handleCopyEvent):
958         * UserInterface/Main.js:
959         (WebInspector._beforecopy):
960         (WebInspector._copy):
961
962 2013-05-27  Timothy Hatcher  <timothy@apple.com>
963
964         Allow data grid value column's in details sections wrap to multiple lines.
965
966         <rdar://problem/12329905> Can't easily view long header values
967
968         Reviewed by Antoine Quint.
969
970         * UserInterface/DataGrid.css:
971         (.data-grid tr.selected):
972         (.data-grid:focus tr.selected):
973         * UserInterface/DetailsSection.css:
974         (.details-section > .content .data-grid table.data):
975         (.details-section > .content .data-grid tr:nth-child(even)):
976         (.details-section > .content .data-grid tr:nth-child(odd)):
977         (.details-section > .content .data-grid td.value-column):
978         (.details-section > .content .data-grid td.value-column > div):
979
980 2013-05-27  Timothy Hatcher  <timothy@apple.com>
981
982         Only add event markers for the main frame.
983
984         The event markers for frame heavy pages are too noisy and not very
985         useful. We also didn't distinguish frames in the marker tooltips.
986
987         Reviewed by Antoine Quint.
988
989         * UserInterface/TimelineManager.js:
990         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
991         (WebInspector.TimelineManager.prototype.eventRecorded):
992
993 2013-05-26  Timothy Hatcher  <timothy@apple.com>
994
995         Stop using a CSS drop-shadow filter for the Web Inspector popover.
996
997         Use the existing background canvas to draw the drop shadow instead.
998
999         <rdar://problem/13991902> Stop using CSS filters for Popover
1000
1001         This also fixes:
1002         <rdar://problem/13977466> Popover arrow is not perfectly centered with content
1003
1004         Reviewed by Joseph Pecoraro.
1005
1006         * UserInterface/Popover.css:
1007         (.popover):
1008         (.popover > .container):
1009         * UserInterface/Popover.js:
1010         (WebInspector.Popover.prototype._update):
1011         (WebInspector.Popover.prototype._drawBackground):
1012         (WebInspector.Popover.prototype._bestMetricsForEdge):
1013
1014 2013-05-25  Timothy Hatcher  <timothy@apple.com>
1015
1016         Show the popover after a delay so quickly arrowing down the grid does not flash the popover.
1017
1018         Also prevent showing the popover if the element is hidden, which was happening sometimes for
1019         rows at the bottom which were marked as offscreen still. Put MIN_Y before MAX_X so the popover
1020         is more predictably positioned, and this matches NSPopover. Plus always clear the popover
1021         TreeOutline after giving the popover time to animate out when hiding.
1022
1023         Reviewed by Joseph Pecoraro.
1024
1025         * UserInterface/TimelineDataGrid.js:
1026         (WebInspector.TimelineDataGrid.prototype._dataGridSelectedNodeChanged):
1027         (WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon.delayedWork):
1028         (WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
1029         (WebInspector.TimelineDataGrid.prototype._hidePopover):
1030         (WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
1031
1032 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1033
1034         Show a highlight quad on the screen when selecting a Layout/Paint record.
1035
1036         If we know the Quad / Rect of a Paint / Layout we can highlight that
1037         portion on the inspected page. Unfortunately this information is not
1038         very useful after the page scrolls, but it can be useful.
1039
1040         Reviewed by Timothy Hatcher.
1041
1042         * UserInterface/Geometry.js:
1043         (WebInspector.Quad.prototype.toProtocol):
1044         * UserInterface/LayoutTimelineDataGrid.js:
1045         (WebInspector.LayoutTimelineDataGrid):
1046         (WebInspector.LayoutTimelineDataGrid.prototype.reset):
1047         (WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
1048         (WebInspector.LayoutTimelineDataGrid.prototype.hidden):
1049         (WebInspector.LayoutTimelineDataGrid.prototype._layoutDataGridSelectedNodeChanged):
1050         (WebInspector.LayoutTimelineDataGrid.prototype._hideHighlightIfNeeded):
1051         * UserInterface/TimelineDataGrid.js:
1052         (WebInspector.TimelineDataGrid.prototype.shown):
1053         (WebInspector.TimelineDataGrid.prototype.hidden):
1054         * UserInterface/TimelinesContentView.js:
1055         (WebInspector.TimelinesContentView.prototype.showTimelineForRecordType):
1056         (WebInspector.TimelinesContentView.prototype.shown):
1057         (WebInspector.TimelinesContentView.prototype.hidden):
1058
1059 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1060
1061         <rdar://problem/12656683> Show whole JS stack for layout & rendering triggers
1062
1063         Clear the popover's contents when the content view is reset so
1064         we don't leak anything held by the CallFrameTreeElements.
1065
1066         Reviewed by Timothy Hatcher.
1067
1068         * UserInterface/NetworkDataGrid.js:
1069         (WebInspector.NetworkDataGrid.prototype.reset):
1070         * UserInterface/TimelineDataGrid.js:
1071         (WebInspector.TimelineDataGrid.prototype.reset):
1072
1073 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1074
1075         <rdar://problem/12656683> Show whole JS stack for layout & rendering triggers
1076
1077         Stack trace information is already available from the backend. Display
1078         it in a popover when the corresponding row in the data grid is selected.
1079         Users can then click a call frame to jump to that source code location.
1080
1081         Because both Layout and Script timelines include call traces, this is
1082         made generic an put in TimelineDataGrid. Subclasses tell the superclass
1083         which element to anchor the popover next to, but the superclass handles
1084         showing the popover.
1085
1086         Reviewed by Timothy Hatcher.
1087
1088         * UserInterface/CallFrameTreeElement.js:
1089         (WebInspector.CallFrameTreeElement):
1090         Allow a CallFrameTreeElement for native code call frames. Such call
1091         frames don't have a source code location, so they have no subtitle.
1092
1093         * UserInterface/Images/Native.pdf: Added.
1094         * UserInterface/CallFrameIcons.css:
1095         (.native-icon .icon):
1096         This is a duplicate of the DOMNode.pdf gray [N] icon.
1097
1098         * UserInterface/Main.html:
1099         Include new files.
1100
1101         * UserInterface/NetworkDataGrid.js:
1102         (WebInspector.NetworkDataGrid):
1103         * UserInterface/ScriptTimelineDataGrid.js: Added.
1104         (WebInspector.ScriptTimelineDataGrid):
1105         (WebInspector.ScriptTimelineDataGrid.prototype.callFramePopoverAnchorElement):
1106         * UserInterface/LayoutTimelineDataGrid.js: Added.
1107         (WebInspector.LayoutTimelineDataGrid):
1108         (WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
1109         Give each TimelineDataGrid subclass its own class. Implement only
1110         what is needed. The new subclasses provide the element for the
1111         superclass to anchor the call frame popover.
1112
1113         * UserInterface/TimelinesContentView.js:
1114         (WebInspector.TimelinesContentView):
1115         Instantiate the specific DataGrid types.
1116
1117         * UserInterface/TimelineDataGrid.css: Added.
1118         * UserInterface/TimelineDataGrid.js:
1119         (WebInspector.TimelineDataGrid):
1120         (WebInspector.TimelineDataGrid.prototype.callFramePopoverAnchorElement):
1121         (WebInspector.TimelineDataGrid.prototype._scopeBarSelectedItemsDidChange):
1122         (WebInspector.TimelineDataGrid.prototype._dataGridSelectedNodeChanged):
1123         (WebInspector.TimelineDataGrid.prototype._windowResized):
1124         (WebInspector.TimelineDataGrid.prototype._hidePopover):
1125         (WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
1126         Show and manager the popover.
1127
1128         (WebInspector.TimelineDataGrid.prototype._createPopoverContent):
1129         (WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeElementSelected):
1130         Popover content is a TreeOutline containing CallFrameTreeElements.
1131         When a call frame is selected, reveal the source code location.
1132
1133         * UserInterface/DataGrid.js:
1134         (WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
1135         Helper for accessing a specific <td> inside a <tr> by column name.
1136
1137 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1138
1139         Switch from "X" and "Y" to "Area" in the Layout Timeline
1140
1141         For transformed paint rects an X, Y, Width and Height, didn't make
1142         sense, so the backend switched to quads. Instead of showing approximate
1143         values, like the bounding box, lets just remove unknowns and switch
1144         to showing the Area instead.
1145
1146         Reviewed by Timothy Hatcher.
1147
1148         * UserInterface/LayoutTimelineDataGridNode.js:
1149         (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
1150         * UserInterface/TimelinesContentView.js:
1151         (WebInspector.TimelinesContentView):
1152
1153 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1154
1155         Restore Width and Height values for Layouts and Paints in Timeline
1156
1157         The backend changed a while back from including rect values, to quad
1158         values. We should move away from X and Y and instead show Area.
1159
1160         Reviewed by Timothy Hatcher.
1161
1162         * UserInterface/Geometry.js:
1163         (WebInspector.Quad):
1164         Provide a wrapper object for the protocol Quad representation.
1165
1166         * UserInterface/TimelineManager.js:
1167         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1168         (WebInspector.TimelineManager.prototype.eventRecorded):
1169         Ingest new and old Layout and Paint timeline record.
1170
1171         * UserInterface/LayoutTimelineRecord.js:
1172         (WebInspector.LayoutTimelineRecord):
1173         (WebInspector.LayoutTimelineRecord.prototype.get area):
1174         (WebInspector.LayoutTimelineRecord.prototype.get rect):
1175         (WebInspector.LayoutTimelineRecord.prototype.get quad):
1176         A record may be wrapping a quad.
1177
1178 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1179
1180         Use SourceCodeLocations when displaying Script locations.
1181
1182         Using SourceCodeLocations allows the locations to show formatted
1183         and display locations and is therefore more accurate. It also shows
1184         the tooltip and display strings consistent with the rest of the UI.
1185
1186         Reviewed by Timothy Hatcher.
1187
1188         * UserInterface/ScriptTimelineDataGridNode.js:
1189         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
1190         * UserInterface/ScriptTimelineRecord.js:
1191         (WebInspector.ScriptTimelineRecord):
1192         (WebInspector.ScriptTimelineRecord.prototype.get lineNumber):
1193         (WebInspector.ScriptTimelineRecord.prototype.get callFrames):
1194         (WebInspector.ScriptTimelineRecord.prototype.get sourceCodeLocation):
1195         * UserInterface/TimelineManager.js:
1196         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1197         (WebInspector.TimelineManager.prototype.eventRecorded):
1198
1199 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1200
1201         Add Script Timeline records for Installing / Removing Timelines
1202
1203         We had records for TimerFired but not install / remove. It is sometimes
1204         useful to see the stack traces where timers are added and removed.
1205
1206         Reviewed by Timothy Hatcher.
1207
1208         * Localizations/en.lproj/localizedStrings.js:
1209         * UserInterface/ScriptTimelineRecord.js:
1210         (WebInspector.ScriptTimelineRecord.EventType.displayName):
1211         * UserInterface/TimelineManager.js:
1212         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1213         (WebInspector.TimelineManager.prototype.eventRecorded):
1214
1215 2013-05-24  Joseph Pecoraro  <pecoraro@apple.com>
1216
1217         Remove some unused old style DataGrid events.
1218
1219         These events are not used anywhere, and we have a new style event.
1220
1221         Reviewed by Timothy Hatcher.
1222
1223         * UserInterface/DataGrid.js:
1224         (WebInspector.DataGridNode.prototype.select):
1225         (WebInspector.DataGridNode.prototype.deselect):
1226
1227 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1228
1229         Turn off spellchecking on some text inputs.
1230
1231         Reviewed by David Kilzer.
1232
1233         * UserInterface/Breakpoint.js:
1234         (WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
1235         * UserInterface/FindBanner.js:
1236         (WebInspector.FindBanner):
1237
1238 2013-05-24  Timothy Hatcher  <timothy@apple.com>
1239
1240         Tag all Web Inspector images with copyright info.
1241
1242         Added to all images: Copyright © 2013 Apple Inc. All rights reserved.
1243
1244         Requested by Joyce Chow.
1245
1246         * UserInterface/Images/ApplicationCache.png:
1247         * UserInterface/Images/ApplicationCache@2x.png:
1248         * UserInterface/Images/ApplicationCacheManifest.png:
1249         * UserInterface/Images/ApplicationCacheManifest@2x.png:
1250         * UserInterface/Images/BackArrow.pdf:
1251         * UserInterface/Images/BottomUpTree.pdf:
1252         * UserInterface/Images/Breakpoint.png:
1253         * UserInterface/Images/Breakpoint@2x.png:
1254         * UserInterface/Images/BreakpointButton.pdf:
1255         * UserInterface/Images/BreakpointInactive.png:
1256         * UserInterface/Images/BreakpointInactive@2x.png:
1257         * UserInterface/Images/BreakpointInactiveButton.pdf:
1258         * UserInterface/Images/ClippingCSS.png:
1259         * UserInterface/Images/ClippingCSS@2x.png:
1260         * UserInterface/Images/ClippingGeneric.png:
1261         * UserInterface/Images/ClippingGeneric@2x.png:
1262         * UserInterface/Images/ClippingJS.png:
1263         * UserInterface/Images/ClippingJS@2x.png:
1264         * UserInterface/Images/Close.pdf:
1265         * UserInterface/Images/Colors.png:
1266         * UserInterface/Images/Colors@2x.png:
1267         * UserInterface/Images/Cookie.png:
1268         * UserInterface/Images/Cookie@2x.png:
1269         * UserInterface/Images/Crosshair.pdf:
1270         * UserInterface/Images/DOMCharacterData.pdf:
1271         * UserInterface/Images/DOMComment.pdf:
1272         * UserInterface/Images/DOMDocument.pdf:
1273         * UserInterface/Images/DOMDocumentType.pdf:
1274         * UserInterface/Images/DOMElement.pdf:
1275         * UserInterface/Images/DOMNode.pdf:
1276         * UserInterface/Images/DOMTextNode.pdf:
1277         * UserInterface/Images/DOMTree.pdf:
1278         * UserInterface/Images/Database.png:
1279         * UserInterface/Images/Database@2x.png:
1280         * UserInterface/Images/DatabaseTable.png:
1281         * UserInterface/Images/DatabaseTable@2x.png:
1282         * UserInterface/Images/DisclosureTriangleSmallClosed.pdf:
1283         * UserInterface/Images/DisclosureTriangleSmallOpen.pdf:
1284         * UserInterface/Images/DisclosureTriangleTinyClosed.pdf:
1285         * UserInterface/Images/DisclosureTriangleTinyOpen.pdf:
1286         * UserInterface/Images/DockBottom.pdf:
1287         * UserInterface/Images/DockRight.pdf:
1288         * UserInterface/Images/DocumentCSS.png:
1289         * UserInterface/Images/DocumentCSS@2x.png:
1290         * UserInterface/Images/DocumentFont.png:
1291         * UserInterface/Images/DocumentFont@2x.png:
1292         * UserInterface/Images/DocumentGeneric.png:
1293         * UserInterface/Images/DocumentGeneric@2x.png:
1294         * UserInterface/Images/DocumentImage.png:
1295         * UserInterface/Images/DocumentImage@2x.png:
1296         * UserInterface/Images/DocumentJS.png:
1297         * UserInterface/Images/DocumentJS@2x.png:
1298         * UserInterface/Images/DocumentMarkup.png:
1299         * UserInterface/Images/DocumentMarkup@2x.png:
1300         * UserInterface/Images/Error.pdf:
1301         * UserInterface/Images/ErrorSmall.pdf:
1302         * UserInterface/Images/Errors.svg:
1303         * UserInterface/Images/ErrorsEnabled.svg:
1304         * UserInterface/Images/EventListener.pdf:
1305         * UserInterface/Images/Exception.pdf:
1306         * UserInterface/Images/FilterFieldGlyph.pdf:
1307         * UserInterface/Images/FolderGeneric.png:
1308         * UserInterface/Images/FolderGeneric@2x.png:
1309         * UserInterface/Images/ForwardArrow.pdf:
1310         * UserInterface/Images/Function.pdf:
1311         * UserInterface/Images/GoToArrow.pdf:
1312         * UserInterface/Images/HierarchicalNavigationItemChevron.pdf:
1313         * UserInterface/Images/IndeterminateProgressSpinner1.pdf:
1314         * UserInterface/Images/IndeterminateProgressSpinner10.pdf:
1315         * UserInterface/Images/IndeterminateProgressSpinner11.pdf:
1316         * UserInterface/Images/IndeterminateProgressSpinner12.pdf:
1317         * UserInterface/Images/IndeterminateProgressSpinner2.pdf:
1318         * UserInterface/Images/IndeterminateProgressSpinner3.pdf:
1319         * UserInterface/Images/IndeterminateProgressSpinner4.pdf:
1320         * UserInterface/Images/IndeterminateProgressSpinner5.pdf:
1321         * UserInterface/Images/IndeterminateProgressSpinner6.pdf:
1322         * UserInterface/Images/IndeterminateProgressSpinner7.pdf:
1323         * UserInterface/Images/IndeterminateProgressSpinner8.pdf:
1324         * UserInterface/Images/IndeterminateProgressSpinner9.pdf:
1325         * UserInterface/Images/InstructionPointer.png:
1326         * UserInterface/Images/InstructionPointer@2x.png:
1327         * UserInterface/Images/Issues.svg:
1328         * UserInterface/Images/IssuesEnabled.svg:
1329         * UserInterface/Images/LayerBorders.pdf:
1330         * UserInterface/Images/LessColumns.pdf:
1331         * UserInterface/Images/LocalStorage.png:
1332         * UserInterface/Images/LocalStorage@2x.png:
1333         * UserInterface/Images/Locked.pdf:
1334         * UserInterface/Images/Log.png:
1335         * UserInterface/Images/Log@2x.png:
1336         * UserInterface/Images/Logs.svg:
1337         * UserInterface/Images/Memory.svg:
1338         * UserInterface/Images/MoreColumns.pdf:
1339         * UserInterface/Images/NavigationItemAngleBrackets.pdf:
1340         * UserInterface/Images/NavigationItemBrushAndRuler.pdf:
1341         * UserInterface/Images/NavigationItemBug.pdf:
1342         * UserInterface/Images/NavigationItemCurleyBraces.pdf:
1343         * UserInterface/Images/NavigationItemFile.pdf:
1344         * UserInterface/Images/NavigationItemLayers.pdf:
1345         * UserInterface/Images/NavigationItemLog.pdf:
1346         * UserInterface/Images/NavigationItemMagnifyingGlass.pdf:
1347         * UserInterface/Images/NavigationItemStopwatch.pdf:
1348         * UserInterface/Images/NavigationItemStorage.pdf:
1349         * UserInterface/Images/NavigationItemTrash.pdf:
1350         * UserInterface/Images/NavigationItemVariable.pdf:
1351         * UserInterface/Images/Network.png:
1352         * UserInterface/Images/Network@2x.png:
1353         * UserInterface/Images/NetworkBarBlue.png:
1354         * UserInterface/Images/NetworkBarBlue@2x.png:
1355         * UserInterface/Images/NetworkBarGray.png:
1356         * UserInterface/Images/NetworkBarGray@2x.png:
1357         * UserInterface/Images/NetworkBarGreen.png:
1358         * UserInterface/Images/NetworkBarGreen@2x.png:
1359         * UserInterface/Images/NetworkBarLabelCalloutLeft.pdf:
1360         * UserInterface/Images/NetworkBarLabelCalloutRight.pdf:
1361         * UserInterface/Images/NetworkBarLabelCalloutWhiteLeft.pdf:
1362         * UserInterface/Images/NetworkBarLabelCalloutWhiteRight.pdf:
1363         * UserInterface/Images/NetworkBarOrange.png:
1364         * UserInterface/Images/NetworkBarOrange@2x.png:
1365         * UserInterface/Images/NetworkBarPurple.png:
1366         * UserInterface/Images/NetworkBarPurple@2x.png:
1367         * UserInterface/Images/NetworkBarRed.png:
1368         * UserInterface/Images/NetworkBarRed@2x.png:
1369         * UserInterface/Images/NetworkBarWhiteFlat.png:
1370         * UserInterface/Images/NetworkBarWhiteFlat@2x.png:
1371         * UserInterface/Images/NetworkBarYellow.png:
1372         * UserInterface/Images/NetworkBarYellow@2x.png:
1373         * UserInterface/Images/NetworkHollowBarBlue.png:
1374         * UserInterface/Images/NetworkHollowBarBlue@2x.png:
1375         * UserInterface/Images/NetworkHollowBarGray.png:
1376         * UserInterface/Images/NetworkHollowBarGray@2x.png:
1377         * UserInterface/Images/NetworkHollowBarGreen.png:
1378         * UserInterface/Images/NetworkHollowBarGreen@2x.png:
1379         * UserInterface/Images/NetworkHollowBarOrange.png:
1380         * UserInterface/Images/NetworkHollowBarOrange@2x.png:
1381         * UserInterface/Images/NetworkHollowBarPurple.png:
1382         * UserInterface/Images/NetworkHollowBarPurple@2x.png:
1383         * UserInterface/Images/NetworkHollowBarRed.png:
1384         * UserInterface/Images/NetworkHollowBarRed@2x.png:
1385         * UserInterface/Images/NetworkHollowBarYellow.png:
1386         * UserInterface/Images/NetworkHollowBarYellow@2x.png:
1387         * UserInterface/Images/Pause.pdf:
1388         * UserInterface/Images/Percent.pdf:
1389         * UserInterface/Images/Plus.pdf:
1390         * UserInterface/Images/Profile.png:
1391         * UserInterface/Images/Profile@2x.png:
1392         * UserInterface/Images/PseudoElement.pdf:
1393         * UserInterface/Images/Recording.png:
1394         * UserInterface/Images/Recording@2x.png:
1395         * UserInterface/Images/RecordingHovered.png:
1396         * UserInterface/Images/RecordingHovered@2x.png:
1397         * UserInterface/Images/RecordingStopped.png:
1398         * UserInterface/Images/RecordingStopped@2x.png:
1399         * UserInterface/Images/Reflection.pdf:
1400         * UserInterface/Images/Reload.svg:
1401         * UserInterface/Images/ReloadSelected.svg:
1402         * UserInterface/Images/Request.pdf:
1403         * UserInterface/Images/Resources.svg:
1404         * UserInterface/Images/Response.pdf:
1405         * UserInterface/Images/ResultLine.pdf:
1406         * UserInterface/Images/Resume.pdf:
1407         * UserInterface/Images/Script.png:
1408         * UserInterface/Images/Script@2x.png:
1409         * UserInterface/Images/SessionStorage.png:
1410         * UserInterface/Images/SessionStorage@2x.png:
1411         * UserInterface/Images/ShadowDOM.pdf:
1412         * UserInterface/Images/SortIndicatorDownArrow.pdf:
1413         * UserInterface/Images/SortIndicatorUpArrow.pdf:
1414         * UserInterface/Images/SourceCode.pdf:
1415         * UserInterface/Images/SplitToggleDown.pdf:
1416         * UserInterface/Images/SplitToggleUp.pdf:
1417         * UserInterface/Images/StepInto.pdf:
1418         * UserInterface/Images/StepOut.pdf:
1419         * UserInterface/Images/StepOver.pdf:
1420         * UserInterface/Images/Stopwatch.png:
1421         * UserInterface/Images/Stopwatch@2x.png:
1422         * UserInterface/Images/StyleRuleAuthor.pdf:
1423         * UserInterface/Images/StyleRuleInherited.pdf:
1424         * UserInterface/Images/StyleRuleInheritedElement.pdf:
1425         * UserInterface/Images/StyleRuleInspector.pdf:
1426         * UserInterface/Images/StyleRuleUser.pdf:
1427         * UserInterface/Images/StyleRuleUserAgent.pdf:
1428         * UserInterface/Images/Time.svg:
1429         * UserInterface/Images/TimelineBarBlue.png:
1430         * UserInterface/Images/TimelineBarBlue@2x.png:
1431         * UserInterface/Images/TimelineBarOrange.png:
1432         * UserInterface/Images/TimelineBarOrange@2x.png:
1433         * UserInterface/Images/TimelineBarPurple.png:
1434         * UserInterface/Images/TimelineBarPurple@2x.png:
1435         * UserInterface/Images/Undock.pdf:
1436         * UserInterface/Images/UpDownArrows.svg:
1437         * UserInterface/Images/UserInputPrompt.pdf:
1438         * UserInterface/Images/UserInputPromptPrevious.pdf:
1439         * UserInterface/Images/UserInputPromptPreviousSelected.pdf:
1440         * UserInterface/Images/UserInputResult.pdf:
1441         * UserInterface/Images/UserInputResultSelected.pdf:
1442         * UserInterface/Images/Warning.pdf:
1443         * UserInterface/Images/WarningSmall.pdf:
1444         * UserInterface/Images/Weight.svg:
1445
1446 2013-05-24  Timothy Hatcher  <timothy@apple.com>
1447
1448         Workaround an error with minifying the Web Inspector.
1449
1450         jsmin.py does not like: return //.test();
1451
1452         <rdar://problem/13983475> REGRESSION(r51583): Cannot show web inspector in recent spades
1453
1454         * UserInterface/External/CodeMirror/codemirror.js:
1455         (window.CodeMirror):
1456
1457 2013-05-23  Timothy Hatcher  <timothy@apple.com>
1458
1459         Update CodeMirror from 3.12 to 3.13.
1460
1461         Include the new comment.js addon and hook it up to Command-/.
1462
1463         Reviewed by Joseph Pecoraro.
1464
1465         * Scripts/update-codemirror-resources.rb: Added comment.js.
1466         * UserInterface/CodeMirrorAdditions.js:
1467         * UserInterface/External/CodeMirror/clojure.js:
1468         * UserInterface/External/CodeMirror/codemirror.css:
1469         * UserInterface/External/CodeMirror/codemirror.js:
1470         * UserInterface/External/CodeMirror/coffeescript.js:
1471         * UserInterface/External/CodeMirror/comment.js: Added.
1472         * UserInterface/External/CodeMirror/css.js:
1473         * UserInterface/External/CodeMirror/javascript.js:
1474         * UserInterface/External/CodeMirror/less.js:
1475         * UserInterface/External/CodeMirror/placeholder.js:
1476         * UserInterface/External/CodeMirror/runmode.js:
1477         * UserInterface/External/CodeMirror/sass.js:
1478         * UserInterface/External/CodeMirror/searchcursor.js:
1479         * UserInterface/External/CodeMirror/sql.js:
1480         * UserInterface/External/CodeMirror/xml.js:
1481         * UserInterface/Main.html: Include comment.js.
1482
1483 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1484
1485         <rdar://problem/13972577> ER: when deleting break points on a file, don't move up if you can't delete
1486
1487         Reviewed by Timothy Hatcher.
1488
1489         * UserInterface/DebuggerSidebarPanel.js:
1490         (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
1491
1492 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1493
1494         <rdar://problem/7545262> Command-E should put selected text in the search box
1495
1496         Don't implicitly preventDefault with the keyboard shortcut. This allows the
1497         default behavior of populating the system find pasteboard.
1498
1499         Reviewed by Timothy Hatcher.
1500
1501         * UserInterface/FindBanner.js:
1502         (WebInspector.FindBanner):
1503
1504 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1505
1506         <rdar://problem/7545262> Command-E should put selected text in the search box
1507
1508         Pass the "changeFocus" parameter through the internal cursor relative reveal functions.
1509
1510         Reviewed by Timothy Hatcher.
1511
1512         * UserInterface/TextEditor.js:
1513         (WebInspector.TextEditor.prototype.revealPreviousSearchResult):
1514         (WebInspector.TextEditor.prototype.revealNextSearchResult):
1515         (WebInspector.TextEditor.prototype._revealFirstSearchResultBeforeCursor):
1516         (WebInspector.TextEditor.prototype._revealFirstSearchResultAfterCursor):
1517
1518 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1519
1520         <rdar://problem/7545262> Command-E should put selected text in the search box
1521
1522         Instead of continuing the binary search when we encounter an invalid entry,
1523         just break out immediately. This way we can revalidate all of the search results
1524         and accurately search forward or back.
1525
1526         Reviewed by Timothy Hatcher.
1527
1528         * UserInterface/CodeMirrorAdditions.js:
1529         * UserInterface/TextEditor.js:
1530         (WebInspector.TextEditor.prototype._binarySearchInsertionIndexInSearchResults):
1531         (WebInspector.TextEditor.prototype._revealFirstSearchResultBeforeCursor):
1532         (WebInspector.TextEditor.prototype._revealFirstSearchResultAfterCursor):
1533         (WebInspector.TextEditor.prototype._cursorDoesNotMatchLastRevealedSearchResult):
1534         (WebInspector.TextEditor.prototype._revalidateSearchResults):
1535
1536 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1537
1538         <rdar://problem/7545262> Command-E should put selected text in the search box
1539
1540         Clear the automaticallyRevealFirstSearchResult state after revealing a search term.
1541
1542         Reviewed by Timothy Hatcher.
1543
1544         * UserInterface/TextEditor.js:
1545
1546 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1547
1548         <rdar://problem/7545262> Command-E should put selected text in the search box
1549
1550         When searching forwards and backwards search relative to the current cursor position.
1551         If we were already on a particular result we can keep the old path and just move
1552         forward / back in the result list. Otherwise we binary search the closest position
1553         to the cursor. Because results can be removed in the search path we have a
1554         bit of added complexity.
1555
1556         Reviewed by Timothy Hatcher.
1557
1558         * UserInterface/TextEditor.js:
1559         (WebInspector.TextEditor.prototype.set automaticallyRevealFirstSearchResult):
1560         (WebInspector.TextEditor.prototype.addSearchResults.markRanges):
1561         When automatically revealing, do so relative to the cursor.
1562
1563         (WebInspector.TextEditor.prototype.revealPreviousSearchResult):
1564         (WebInspector.TextEditor.prototype.revealNextSearchResult):
1565         (WebInspector.TextEditor.prototype._cursorDoesNotMatchLastRevealedSearchResult):
1566         If we don't have a search result index, or if the cursor moved off
1567         of the last search result index, search relative to the cursor.
1568
1569         (WebInspector.TextEditor.prototype._comparePositions):
1570         (WebInspector.TextEditor.prototype._binarySearchInsertionIndexInSearchResults):
1571         (WebInspector.TextEditor.prototype._revealFirstSearchResultBeforeCursor):
1572         (WebInspector.TextEditor.prototype._revealFirstSearchResultAfterCursor):
1573         Binary search search results handling the possibility that a search result
1574         could be null. I'm not sure if this works perfectly in such cases, but
1575         it worked fine in practice.
1576         
1577         (WebInspector.TextEditor.prototype._revalidateSearchResults):
1578         When we try to traverse to a search result and it was deleted, revalidate
1579         all the search results. This can happen if in a CSS file and the user
1580         deleted some instances of a search result.
1581
1582 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1583
1584         <rdar://problem/7545262> Command-E should put selected text in the search box
1585
1586         Step 1, make Command+E populate the FindBanner's search query, and silently
1587         perform the search so that Command+G and Shift+Command+G work. Expose a
1588         new ContentView method "searchQueryWithSelection" to get a search query
1589         from the selection in that ContentView. This currently only works with
1590         TextEditor ContentViews.
1591
1592         Reviewed by Timothy Hatcher.
1593
1594         * UserInterface/FindBanner.js:
1595         (WebInspector.FindBanner): Add the keyboard shortcut.
1596         (WebInspector.FindBanner.prototype._populateSearchQueryFromSelection):
1597         Ask the delegate (ContentBrowser) for a search query from selection.
1598         If we get one, silently perform a search.
1599
1600         * UserInterface/TextEditor.js:
1601         (WebInspector.TextEditor.prototype.searchQueryWithSelection):
1602         Get the selection from CodeMirror and return that.
1603
1604         * UserInterface/ContentView.js:
1605         (WebInspector.ContentView.prototype.searchQueryWithSelection):
1606         Default implementation returns null, meaning no change.
1607
1608         * UserInterface/ClusterContentView.js:
1609         (WebInspector.ClusterContentView.prototype.searchQueryWithSelection):
1610         * UserInterface/ContentBrowser.js:
1611         (WebInspector.ContentBrowser.prototype.findBannerSearchQueryForSelection):
1612         * UserInterface/ScriptContentView.js:
1613         (WebInspector.ScriptContentView.prototype.searchQueryWithSelection):
1614         * UserInterface/TextContentView.js:
1615         (WebInspector.TextContentView.prototype.searchQueryWithSelection):
1616         * UserInterface/TextResourceContentView.js:
1617         (WebInspector.TextResourceContentView.prototype.searchQueryWithSelection):
1618         Plumbing the message down the content views heirarchy.
1619
1620 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1621
1622         Remove unnecessary return for setter.
1623
1624         This was just a copy / paste error from when it was originally written.
1625
1626         Reviewed by Timothy Hatcher.
1627
1628         * UserInterface/ClusterContentView.js:
1629         (WebInspector.ClusterContentView.prototype.set automaticallyRevealFirstSearchResult):
1630
1631 2013-05-23  Joseph Pecoraro  <pecoraro@apple.com>
1632
1633         Remove unused instance variable TextEditor._pendingSearchResultLineNumbers
1634
1635         Reviewed by Timothy Hatcher.
1636
1637         * UserInterface/TextEditor.js:
1638         (WebInspector.TextEditor):
1639
1640 2013-05-22  Joseph Pecoraro  <pecoraro@apple.com>
1641
1642         <rdar://problem/13961791> Stopping recording clears the timeline
1643
1644         It actually seems like a non-main frame resource change causes the
1645         timeline to clear. Only clear on main frame main resource changes.
1646
1647         Reviewed by Timothy Hatcher.
1648
1649         * UserInterface/TimelineManager.js:
1650         (WebInspector.TimelineManager.prototype._mainResourceDidChange):
1651
1652 2013-05-22  Joseph Pecoraro  <pecoraro@apple.com>
1653
1654         <rdar://problem/12837326> REGRESSION: Content just displays a spinner when it stops on a breakpoint during load
1655
1656         When a BreakpointTreeElement is selected and the page is reloaded the
1657         breakpoint tree elements are removed. When removing the tree element
1658         the parent, ResourceTreeElement, was selected and the tree outline
1659         created a content view to show for that resource. This content view
1660         was being orphaned and replaced when new resources were loaded.
1661
1662         We never want to create a content view for a Script/ResourceTreeElement
1663         in the DebuggerSidebarPanel when it has no children. That is a sign
1664         that the tree element is about to be deleted.
1665
1666         Reviewed by Timothy Hatcher.
1667
1668         * UserInterface/DebuggerSidebarPanel.js:
1669         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
1670
1671 2013-05-22  Joseph Pecoraro  <pecoraro@apple.com>
1672
1673         <rdar://problem/12837326> REGRESSION: Content just displays a spinner when it stops on a breakpoint during load
1674
1675         Prevent the populate with script content path from requesting content
1676         multiple times. This is just an optimization to prevent duplicated work.
1677         This can happen the first time the debugger is paused, by setting the
1678         active call frame, opening the resource, and then triggering the active
1679         call frame did change notification.
1680
1681         Reviewed by Timothy Hatcher.
1682
1683         * UserInterface/SourceCodeTextEditor.js:
1684         (WebInspector.SourceCodeTextEditor.prototype._activeCallFrameDidChange):
1685         (WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent.scriptContentAvailable):
1686         (WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent):
1687         (WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
1688
1689 2013-05-22  Joseph Pecoraro  <pecoraro@apple.com>
1690
1691         <rdar://problem/12837326> REGRESSION: Content just displays a spinner when it stops on a breakpoint during load
1692
1693         On iOS 6, when associating a Script with a Resource also update the type
1694         to be Script, that way the resource will get a TextResourceContentView
1695         instead of a GeneralResourceContentView and fall into the existing path
1696         that will fetch Script Source for an editor when it is on a breakpoint
1697         and cannot load the resource content.
1698
1699         Also, replace instances of "scriptsForResource" with the new scripts
1700         accessor on WebInspector.Resource.
1701
1702         Reviewed by Timothy Hatcher.
1703
1704         * UserInterface/DebuggerManager.js:
1705         (WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
1706         * UserInterface/Resource.js:
1707         (WebInspector.Resource.prototype.associateWithScript):
1708         * UserInterface/SourceCodeTextEditor.js:
1709         (WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
1710
1711 2013-05-22  Joseph Pecoraro  <pecoraro@apple.com>
1712
1713         <rdar://problem/12837326> REGRESSION: Content just displays a spinner when it stops on a breakpoint during load
1714
1715         Never loading content while on a breakpoint is possible in scripts if
1716         the backend is paused executing the script before it has sent the
1717         frontend information that the resource has finished loading. In these
1718         cases, it is still possible for the frontend to get the "script source"
1719         instead of the "resource content". These patches do that.
1720
1721         Start by creating an association between WebInspector.Resource and
1722         WebInspector.Script. The order of events is always such that the Resource
1723         is created first:
1724
1725           - Network.requestWillBeSent => create WebInspector.Resource
1726           - Debugger.scriptParsed => create WebInspector.Script
1727
1728         So associate a Script with a Resource, if there is one, when the Script
1729         is created. Currently we can only create the association with URLs,
1730         which is not perfect if resources have the same URL but different
1731         contents. That has never worked perfectly.
1732
1733         Reviewed by Timothy Hatcher.
1734
1735         * UserInterface/Script.js:
1736         (WebInspector.Script):
1737         (WebInspector.Script.prototype.get resource):
1738         (WebInspector.Script.prototype.requestContentFromBackend):
1739         (WebInspector.Script.prototype._resolveResource):
1740         On creation associate with a Resource via URL.
1741
1742         * UserInterface/Resource.js:
1743         (WebInspector.Resource.prototype.get scripts):
1744         (WebInspector.Resource.prototype.associateWithScript):
1745         Allow a Script to associate with this resource.
1746
1747         * UserInterface/FrameResourceManager.js:
1748         Remove "resourceForScript". Script's now have a resource property.
1749
1750         * UserInterface/DebuggerSidebarPanel.js:
1751         (WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
1752         * UserInterface/Main.js:
1753         (WebInspector.linkifyLocation):
1754         * UserInterface/ResourceSidebarPanel.js:
1755         (WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
1756         (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
1757         * UserInterface/ScriptContentView.js:
1758         (WebInspector.ScriptContentView):
1759         * UserInterface/SourceCodeTextEditor.js:
1760         (WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointToggled):
1761         * UserInterface/SourceMapManager.js:
1762         (WebInspector.SourceMapManager.prototype._loadAndParseSucceeded):
1763         Refactor to the simpler script.resource.
1764
1765 2013-05-21  Joseph Pecoraro  <pecoraro@apple.com>
1766
1767         Remove generic event listeners when ClusterContentViews are closed.
1768
1769         Some event listeners were removed, but not all. This would have
1770         caused the cluster content views to be leaked.
1771
1772         Reviewed by Timothy Hatcher.
1773
1774         * UserInterface/ClusterContentView.js:
1775         (WebInspector.ClusterContentView.prototype.closed):
1776
1777 2013-05-21  Joseph Pecoraro  <pecoraro@apple.com>
1778
1779         Remove the concept of left and right navigation items.
1780
1781         They are unused. So just remove them.
1782
1783         Reviewed by Timothy Hatcher.
1784
1785         * UserInterface/ContentBrowser.js:
1786         (WebInspector.ContentBrowser):
1787         (WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
1788         * UserInterface/Sidebar.js:
1789         (WebInspector.Sidebar):
1790
1791 2013-05-22  Timothy Hatcher  <timothy@apple.com>
1792
1793         Fix auto complete property caching.
1794
1795         <rdar://problem/13961832> Autocomplete of function return value causes side-effects multiple times
1796
1797         Reviewed by Joseph Pecoraro.
1798
1799         * UserInterface/JavaScriptLogViewController.js:
1800
1801 2013-05-21  Antoine Quint  <graouts@apple.com>
1802
1803         <rdar://problem/13948862> REGRESSION (r150395): Sticky headers are mis-positioned
1804
1805         Reviewed by Joseph Pecoraro.
1806
1807         * UserInterface/DetailsSection.css:
1808         (.details-section > .header):
1809         (.details-section .details-section > .header):
1810         Position and layer the headers correctly such that they snap to
1811         the right position when scrolling.
1812
1813         * UserInterface/Main.js:
1814         (WebInspector.updateDockedState):
1815         (WebInspector._toolbarDisplayModeDidChange):
1816         (WebInspector._toolbarSizeModeDidChange):
1817         Remove unnecessary code now that sticky-positioned elements behave
1818         as expected in Òoverflow: scrollÓ elements.
1819
1820 2013-05-21  Antoine Quint  <graouts@apple.com>
1821
1822         <rdar://problem/13941438> Debugger popovers should prefer placement to the bottom/right over left to not cover expression
1823
1824         Reviewed by Timothy Hatcher.
1825
1826         Let Popover.present() be provided with a list of preferred edges in order
1827         of preference and let the source code popovers prefer layout above, below and on
1828         the right, in this order.
1829
1830         * UserInterface/Breakpoint.js:
1831         (WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
1832         * UserInterface/LayerTreeSidebarPanel.js:
1833         (WebInspector.LayerTreeSidebarPanel.prototype._updatePopoverForSelectedNode):
1834         Adopt new Popover.present() parameter type.
1835
1836         * UserInterface/Popover.js:
1837         (WebInspector.Popover):
1838         (WebInspector.Popover.prototype.present):
1839         Rename ÒpreferredEdgeÓ to ÒpreferredEdgesÓ (plural).
1840
1841         (WebInspector.Popover.prototype._update):
1842         Instead of gathering metrics sorted by keys, gather them sorted in the
1843         order of preference provided by the ÒpreferredEdgesÓ argument.
1844
1845         * UserInterface/SourceCodeTextEditor.js:
1846         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
1847         Adopt new Popover.present() parameter type and provide the desired list
1848         of preferred edges in order.
1849
1850 2013-05-20  Joseph Pecoraro  <pecoraro@apple.com>
1851
1852         <rdar://problem/13945892> Console messages not working with iOS 6
1853
1854         Reviewed by Timothy Hatcher.
1855
1856         Don't use the enums right now. They were not generated for the iOS 6
1857         InspectorBackend commands file. In the future we should generate it
1858         for Legacy systems as well as trunk, and use constants instead of
1859         magic values in code.
1860
1861         * UserInterface/ConsoleObserver.js:
1862         (WebInspector.ConsoleObserver.prototype.messageAdded):
1863
1864 2013-05-19  Timothy Hatcher  <timothy@apple.com>
1865
1866         Prevent selection and deselect all messages when clicking disclosure triangles in the console.
1867
1868         This mostly worked before, but if a selection did happen it wouldn't go away by itself. Now
1869         it will go away if a disclosure triangle is clicked. Also the initial focus mouse down always
1870         selected the row, now it does not.
1871
1872         <rdar://problem/13839762> REGRESSION: When inspecting an object in the console, the entire object becomes highlighted
1873
1874         Reviewed by Joseph Pecoraro.
1875
1876         * UserInterface/ConsoleGroup.js:
1877         (WebInspector.ConsoleGroup.prototype.addMessage):
1878         (WebInspector.ConsoleGroup.prototype._titleMouseDown): Added.
1879         (WebInspector.ConsoleGroup.prototype._titleClicked):
1880         Don't select a group row when the title is clicked.
1881
1882         * UserInterface/DOMTreeOutline.js:
1883         (WebInspector.DOMTreeOutline.prototype._onmousedown):
1884         Prevent default instead of stopping propagation.
1885
1886         * UserInterface/LogContentView.css:
1887         (.outline-disclosure li.parent::before):
1888         Drive by disclosure triangle position tweak.
1889
1890         * UserInterface/LogContentView.js:
1891         (WebInspector.LogContentView.prototype._mousedown):
1892         Check for defaultPrevented and deselect all messages.
1893
1894         * UserInterface/TreeOutline.js:
1895         (TreeElement.treeElementMouseDown):
1896         Prevent default instead of stopping propagation.
1897
1898 2013-05-19  Timothy Hatcher  <timothy@apple.com>
1899
1900         Fix the issue where console logs would overlap on reload.
1901
1902         Rejigger the console elements so the flex element can grow to fit and the parent does the scrolling.
1903
1904         <rdar://problem/13932826> REGRESSION (r147261): Reloading page causes overlapping console logs (116404)
1905
1906         Reviewed by Antoine Quint.
1907
1908         * UserInterface/JavaScriptLogViewController.js:
1909         (WebInspector.JavaScriptLogViewController):
1910         (WebInspector.JavaScriptLogViewController.prototype.isScrolledToBottom):
1911         (WebInspector.JavaScriptLogViewController.prototype.scrollToBottom.delayedWork):
1912         (WebInspector.JavaScriptLogViewController.prototype.scrollToBottom):
1913         * UserInterface/LogContentView.css:
1914         (.content-view.log):
1915         (.console-messages):
1916         * UserInterface/LogContentView.js:
1917         (WebInspector.LogContentView):
1918         (WebInspector.LogContentView.prototype.updateLayout):
1919         (WebInspector.LogContentView.prototype.get scrollableElements):
1920         (WebInspector.LogContentView.prototype._ensureMessageIsVisible):
1921         (WebInspector.LogContentView.prototype._positionForMessage):
1922
1923 2013-05-18  Timothy Hatcher  <timothy@apple.com>
1924
1925         Make prefixed keywords syntax highlight correctly.
1926
1927         CodeMirror parses the vendor prefix separate from the property or keyword name,
1928         so we need to strip vendor prefixes from our all our names, not just properties.
1929
1930         Reviewed by Joseph Pecoraro.
1931
1932         * UserInterface/CSSCompletions.js:
1933         (WebInspector.CSSCompletions.requestCSSNameCompletions.nameForCodeMirror):
1934         (WebInspector.CSSCompletions.requestCSSNameCompletions.collectPropertyNameForCodeMirror):
1935
1936 2013-05-18  Joseph Pecoraro  <pecoraro@apple.com>
1937
1938         <rdar://problem/13774412> Update CSSKeywordCompletions.js for Curie + iOS
1939
1940         This is a pretty mechanical update to CSS autocompletion suggestions.
1941         Also fix suggestions not working for "-webkit-" properties.
1942
1943         Most of this list was manually generated by looking at specifications
1944         and walking CSSParser::parseValue, isValidKeywordPropertyAndValue,
1945         CSSProperty::isInheritedProperty, the related .in files, and a bit
1946         of sleuthing. It is not meant to be perfect, webkit differs from
1947         specs slightly and doesn't implement all properties, but it does
1948         a better job than before.
1949
1950         Rubber-stamped by Timothy Hatcher.
1951
1952         * UserInterface/CSSKeywordCompletions.js:
1953         (WebInspector.CSSKeywordCompletions.forProperty):
1954
1955 2013-05-17  Timothy Hatcher  <timothy@apple.com>
1956
1957         Drop -webkit- prefixes from CSS properties that no longer require them.
1958
1959         Reviewed by Joseph Pecoraro.
1960
1961         * UserInterface/CSSStyleDeclarationSection.css:
1962         * UserInterface/CodeMirrorOverrides.css:
1963         * UserInterface/DOMTreeOutline.css:
1964         * UserInterface/Editing.css:
1965         * UserInterface/LogContentView.css:
1966         * UserInterface/Main.css:
1967         * UserInterface/NavigationSidebarPanel.css:
1968         * UserInterface/Section.css:
1969         * UserInterface/TimelinesContentView.css:
1970
1971 2013-05-17  Joseph Pecoraro  <pecoraro@apple.com>
1972
1973         <rdar://problem/13919974> 11A368: Instruments tab of RWI is almost empty when loading apple.com on device
1974
1975         Fix a typo in the constant name. It was using a non-existent constant
1976         which resulted in a 0ms timeout instead of the intended 15s.
1977
1978         Reviewed by Timothy Hatcher.
1979
1980         * UserInterface/TimelineManager.js:
1981         (WebInspector.TimelineManager.prototype._startAutoRecording):
1982
1983 2013-05-16  Joseph Pecoraro  <pecoraro@apple.com>
1984
1985         <rdar://problem/13917982> Inconsistency between right-clicking and control-clicking in Debugger gutter
1986
1987         Ignore "Ctrl + Left Click" in more places:
1988
1989           * in drag / resize scenarios
1990           * text editor gutter on a breakpoint
1991
1992         Reviewed by Timothy Hatcher.
1993
1994         * UserInterface/DataGrid.js:
1995         (WebInspector.DataGrid.prototype._startResizerDragging):
1996         (WebInspector.DataGrid.prototype._resizerDragging):
1997         (WebInspector.DataGrid.prototype._endResizerDragging):
1998         * UserInterface/Main.js:
1999         (WebInspector._dockedResizerMouseDown.dockedResizerDrag):
2000         (WebInspector._dockedResizerMouseDown.dockedResizerDragEnd):
2001         (WebInspector._dockedResizerMouseDown):
2002         (WebInspector._moveWindowMouseDown.toolbarDrag):
2003         (WebInspector._moveWindowMouseDown.toolbarDragEnd):
2004         (WebInspector._moveWindowMouseDown):
2005         * UserInterface/Sidebar.js:
2006         (WebInspector.Sidebar.prototype._resizerMouseDown):
2007         (WebInspector.Sidebar.prototype._resizerMouseUp):
2008         * UserInterface/TextEditor.js:
2009         (WebInspector.TextEditor.prototype._gutterMouseDown):
2010
2011 2013-05-17  Timothy Hatcher  <timothy@apple.com>
2012
2013         Make clicking completions work again in the Style details sidebar.
2014
2015         <rdar://problem/13919341> REGRESSION: Mouse clicking a CSS autocompletion suggestion no longer works
2016
2017         Reviewed by Antoine Quint.
2018
2019         * UserInterface/CSSStyleDeclarationTextEditor.js:
2020         (WebInspector.CSSStyleDeclarationTextEditor.prototype._editorBlured):
2021         Clicking a suggestion causes the editor to blur. We don't want to reset content in this case.
2022
2023         * UserInterface/CodeMirrorCompletionController.js:
2024         (WebInspector.CodeMirrorCompletionController.prototype.isHandlingClickEvent): Added.
2025         (WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions): Use this.isHandlingClickEvent().
2026
2027 2013-05-16  Timothy Hatcher  <timothy@apple.com>
2028
2029         Reset the branches when the main frame navigates.
2030
2031         This makes sure the SourceCodeRevisions don't stick around between page loads and take up memory.
2032
2033         Reviewed by Joseph Pecoraro.
2034
2035         * UserInterface/BranchManager.js:
2036         (WebInspector.BranchManager):
2037         (WebInspector.BranchManager.prototype.initialize):
2038         (WebInspector.BranchManager.prototype.deleteBranch):
2039         (WebInspector.BranchManager.prototype._mainResourceDidChange):
2040
2041 2013-05-16  Timothy Hatcher  <timothy@apple.com>
2042
2043         Some random style tweaks.
2044
2045         Reviewed by Joseph Pecoraro.
2046
2047         * UserInterface/CSSStyleDeclarationSection.css:
2048         (.style-declaration-section > .header): Smaller top margin to align with the icon better.
2049         * UserInterface/CodeMirrorOverrides.css:
2050         (.CodeMirror .CodeMirror-gutters): Lighter border color to match Xcode 5.
2051
2052 2013-05-16  Timothy Hatcher  <timothy@apple.com>
2053
2054         Fix a case where we would enter an infinite loop, consuming memory and hang.
2055
2056         <rdar://problem/13911608> REGRESSION (r50998): Massive memory growth and hanging (115811)
2057
2058         Reviewed by Joseph Pecoraro.
2059
2060         * UserInterface/Resource.js:
2061         (WebInspector.Resource.prototype.updateForRedirectResponse):
2062         (WebInspector.Resource.prototype.updateForResponse):
2063         (WebInspector.Resource.prototype.increaseSize):
2064         (WebInspector.Resource.prototype.markAsFinished):
2065         (WebInspector.Resource.prototype.markAsFailed):
2066         Timestamps are expected to be NaN instead of null. This wasn't an issue before because
2067         the timeline code didn't use these timestamps. Now Resource.firstTimestamp uses them,
2068         which is used by ResourceTimelineRecord.startTime.
2069
2070 2013-05-15  Timothy Hatcher  <timothy@apple.com>
2071
2072         Allow Command-K to clear the console anywhere in the Inspector.
2073
2074         <rdar://problem/13888241> Command-K doesn't clear the Console unless it has focus
2075
2076         Reviewed by Antoine Quint.
2077
2078         * UserInterface/JavaScriptLogViewController.js:
2079         (WebInspector.JavaScriptLogViewController):
2080
2081 2013-05-15  Timothy Hatcher  <timothy@apple.com>
2082
2083         Fix the Save As... keyboard shortcut.
2084
2085         Reviewed by Antoine Quint.
2086
2087         * UserInterface/ContentBrowser.js:
2088         (WebInspector.ContentBrowser):
2089         Don't require the Option key. It is Command-Shift-S.
2090
2091 2013-05-15  Timothy Hatcher  <timothy@apple.com>
2092
2093         Make clicking the console icons in the dashboard toggle the scope.
2094
2095         <rdar://problem/13884713> Improve console filtering via the dashboard buttons
2096
2097         Reviewed by Antoine Quint.
2098
2099         * UserInterface/Main.js:
2100         (WebInspector.showFullHeightConsole):
2101         If the requested scope is already selected and the console is showing, then switch back to All.
2102
2103 2013-05-15  Timothy Hatcher  <timothy@apple.com>
2104
2105         Make the tab key commit the completion of there is only one suggestion.
2106
2107         <rdar://problem/13897001> REGRESSION (Safari 6): Tab to accept autocomplete with 1 result
2108         should dismiss completion suggestions popover
2109
2110         Reviewed by Antoine Quint.
2111
2112         * UserInterface/CodeMirrorCompletionController.js:
2113         (WebInspector.CodeMirrorCompletionController.prototype._handleTabKey):
2114         Commit the current completion if there is only one suggestion.
2115
2116 2013-05-14  Timothy Hatcher  <timothy@apple.com>
2117
2118         Always evaluate the console prompt if the cursor is not at the last position.
2119
2120         <rdar://problem/13854691> New Return key behavior in Web Inspector breaks my typical usage
2121
2122         Reviewed by Joseph Pecoraro.
2123
2124         * UserInterface/ConsolePrompt.js:
2125         (WebInspector.ConsolePrompt.prototype._handleEnterKey):
2126         * UserInterface/JavaScriptLogViewController.js:
2127
2128 2013-05-14  Timothy Hatcher  <timothy@apple.com>
2129
2130         Update Frame.securityOrigin when committing the provisional load.
2131
2132         Reviewed by Joseph Pecoraro.
2133
2134         * UserInterface/Frame.js:
2135         (WebInspector.Frame.prototype.commitProvisionalLoad):
2136         * UserInterface/FrameResourceManager.js:
2137         (WebInspector.FrameResourceManager.prototype.frameDidNavigate):
2138
2139 2013-05-14  Timothy Hatcher  <timothy@apple.com>
2140
2141         Add DOMStorage when the main resource changes.
2142
2143         <rdar://problem/13844066> REGRESSION: If the Web Inspector is displayed when you refresh the page, local and session storage is not visible
2144
2145         Reviewed by Joseph Pecoraro.
2146
2147         * UserInterface/StorageManager.js:
2148         (WebInspector.StorageManager.prototype._mainResourceDidChange):
2149         (WebInspector.StorageManager.prototype._addDOMStorageIfNeeded):
2150         (WebInspector.StorageManager.prototype._securityOriginDidChange):
2151
2152 2013-05-13  Joseph Pecoraro  <pecoraro@apple.com>
2153
2154         <rdar://problem/13876379> Pretty printing while paused in the debugger loses the execution line
2155
2156         When pretty printing we replace the entire contents of the editor. If
2157         the display location didn't change at all, then when we re-set the
2158         execution line number, we wouldn't update the style on the line.
2159
2160         This change makes updating the execution line more of the TextEditor's
2161         responsibility on a pretty print. Previously it was working in most cases
2162         but now it should always work as long as the TextEditor has been given
2163         an accurate execution line and column number. In pretty print we delete
2164         the execution line handle so we are guaranteed to recreate it.
2165
2166         Just in case, also update SourceCodeLocation to listen to any location
2167         changes, not just display location changes.
2168
2169         Reviewed by Timothy Hatcher.
2170
2171         * UserInterface/SourceCodeTextEditor.js:
2172         (WebInspector.SourceCodeTextEditor.prototype.close):
2173         (WebInspector.SourceCodeTextEditor.prototype._activeCallFrameDidChange):
2174         (WebInspector.SourceCodeTextEditor.prototype._activeCallFrameSourceCodeLocationChanged):
2175         * UserInterface/TextEditor.js:
2176         (WebInspector.TextEditor):
2177         (WebInspector.TextEditor.prototype.get executionColumnNumber):
2178         (WebInspector.TextEditor.prototype.set executionColumnNumber):
2179
2180 2013-05-13  Timothy Hatcher  <timothy@apple.com>
2181
2182         Fix the shortcut for the Layer details sidebar panel.
2183
2184         Also fix the naming of the toolbar buttons for the Style details sidebar and
2185         Layer details sidebar so they are plural while the name in the tooltip is still singular.
2186
2187         <rdar://problem/13871872> Layers details sidebar shortcut should be control-shift-4, not control-shift-5
2188
2189         Reviewed by Joseph Pecoraro.
2190
2191         * Localizations/en.lproj/localizedStrings.js:
2192         * UserInterface/ApplicationCacheDetailsSidebarPanel.js:
2193         (WebInspector.ApplicationCacheDetailsSidebarPanel):
2194         * UserInterface/CSSStyleDetailsSidebarPanel.js:
2195         (WebInspector.CSSStyleDetailsSidebarPanel):
2196         * UserInterface/DOMDetailsSidebarPanel.js:
2197         (WebInspector.DOMDetailsSidebarPanel):
2198         * UserInterface/DOMNodeDetailsSidebarPanel.js:
2199         (WebInspector.DOMNodeDetailsSidebarPanel):
2200         * UserInterface/DetailsSidebarPanel.js:
2201         (WebInspector.DetailsSidebarPanel):
2202         * UserInterface/LayerTreeSidebarPanel.js:
2203         (WebInspector.LayerTreeSidebarPanel):
2204         * UserInterface/ResourceDetailsSidebarPanel.js:
2205         (WebInspector.ResourceDetailsSidebarPanel):
2206         * UserInterface/ScopeChainDetailsSidebarPanel.js:
2207         (WebInspector.ScopeChainDetailsSidebarPanel):
2208
2209 2013-05-13  Timothy Hatcher  <timothy@apple.com>
2210
2211         Tweak the console completions to work as expected in more cases.
2212
2213         Also prevent empty prefix completions unless it is the start of property access.
2214         This was a regression from the fix for <rdar://problem/13860627>.
2215
2216         <rdar://problem/13871885> Command-line API functions don't autocomplete when passed as parameter
2217
2218         Reviewed by Joseph Pecoraro.
2219
2220         * UserInterface/CodeMirrorCompletionController.js:
2221         (WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
2222         * UserInterface/ConsolePrompt.js:
2223         (WebInspector.ConsolePrompt.prototype.completionControllerCompletionsNeeded):
2224         * UserInterface/JavaScriptLogViewController.js:
2225
2226 2013-05-12  Timothy Hatcher  <timothy@apple.com>
2227
2228         Update the toolbar height so the save sheet is positioned correctly and window gradient is accurate.
2229
2230         <rdar://problem/13871067> Save sheet on the Web Inspector does not come out from under the toolbar
2231
2232         Reviewed by Antoine Quint.
2233
2234         * UserInterface/Main.js:
2235         (WebInspector.contentLoaded):
2236         (WebInspector.updateDockedState):
2237         (WebInspector._updateToolbarHeight):
2238         (WebInspector._toolbarDisplayModeDidChange):
2239         (WebInspector._toolbarSizeModeDidChange):
2240
2241 2013-05-13  Joseph Pecoraro  <pecoraro@apple.com>
2242
2243         Improve String.prototype.startsWith to not search the entire string.
2244
2245         Using the optional second parameter of lastIndexOf we can only search
2246         for a substring from index 0, and not check the rest of the string.
2247
2248         I also went through and replaced all uses of str.indexOf(...) === 0 with
2249         str.startsWith(...), or if a single character str.charAt(0) === "?".
2250
2251         Reviewed by Timothy Hatcher.
2252
2253         * UserInterface/CSSCompletions.js:
2254         (WebInspector.CSSCompletions.prototype.startsWith):
2255         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
2256         * UserInterface/CallFrameTreeElement.js:
2257         (WebInspector.CallFrameTreeElement):
2258         * UserInterface/CookieStorageContentView.js:
2259         (WebInspector.cookieMatchesResourceURL):
2260         * UserInterface/DOMTreeElement.js:
2261         (WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
2262         * UserInterface/EditingSupport.js:
2263         * UserInterface/InstrumentSidebarPanel.js:
2264         (WebInspector.InstrumentSidebarPanel.prototype._titleForProfile):
2265         * UserInterface/JavaScriptProfileView.js:
2266         * UserInterface/Main.js:
2267         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
2268         * UserInterface/Resource.js:
2269         (WebInspector.Resource.Type.fromMIMEType):
2270         * UserInterface/Utilities.js:
2271
2272 2013-05-13  Joseph Pecoraro  <pecoraro@apple.com>
2273
2274         Make mailto: href links behave correctly.
2275
2276         Test: data:text/html,<a href="mailto:pecoraro@apple.com?subject=email">Email Joe</a>
2277
2278         Reviewed by Timothy Hatcher.
2279
2280         * UserInterface/Utilities.js:
2281
2282 2013-05-13  Joseph Pecoraro  <pecoraro@apple.com>
2283
2284         <rdar://problem/13572739> REGRESSION: Styles sidebar url(...) should have a way to jump to the resource
2285
2286         TextEditor / SourceCodeTextEditor (most resources) already had behavior where
2287         clicking a "link" would attempt to open it in the Inspector, and fallback to
2288         opening a new browser tab for the URL. This hardens that behavior in the
2289         "jump to symbol" case, and makes it work in the CSS Sidebar with Command+Click.
2290
2291         To encourage editing in the style sidebar, style url(...)s as strings,
2292         which is how they displayed before these patches.
2293
2294         Reviewed by Timothy Hatcher.
2295
2296         * UserInterface/TextEditor.js:
2297         (WebInspector.TextEditor.prototype._openClickedLinks):
2298         Cleanup the code a bit.
2299
2300         * UserInterface/SourceCodeTextEditor.js:
2301         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2302         Don't jump to symbol when clicking a link. Fallback to TextEditor's link opening behavior.
2303
2304         * UserInterface/CSSStyleDeclarationTextEditor.js:
2305         (WebInspector.CSSStyleDeclarationTextEditor.prototype):
2306         Handle jump to symbol when clicking a link to behave link TextEditor's link opening behavior.
2307
2308         * UserInterface/CSSStyleDeclarationTextEditor.css:
2309         (.css-style-text-editor > .CodeMirror .cm-link):
2310         In the Style sidebar editors display links as strings by default.
2311
2312 2013-05-13  Joseph Pecoraro  <pecoraro@apple.com>
2313
2314         <rdar://problem/13572739> REGRESSION: Styles sidebar url(...) should have a way to jump to the resource
2315
2316         Add extendedCSSToken, modeled after extendedXMLToken to parse url(...)
2317         links and give them a "link" style class.
2318
2319         Normally CodeMirror parses "url", "(", <optionally quoted string>, ")".
2320         We hook into this case and manually parse the optionally quoted string
2321         ourselves so that we can handle quotes and whitespace exactly how we
2322         want to.
2323
2324         Reviewed by Timothy Hatcher.
2325
2326         * UserInterface/CodeMirrorAdditions.js:
2327
2328 2013-05-15  Joseph Pecoraro  <pecoraro@apple.com>
2329
2330         <rdar://problem/13865123> REGRESSION: Incorrect link tokenization of unquoted src/href links - <img src=...>
2331
2332         Handle unquoted attributes when we take over tokenization of link attribute values.
2333
2334         Reviewed by Timothy Hatcher.
2335
2336         * UserInterface/CodeMirrorAdditions.js:
2337
2338 2013-05-11  Timothy Hatcher  <timothy@apple.com>
2339
2340         Make the tab behavior consistent among all CodeMirror editors.
2341
2342         Making this a setting is tracked by <rdar://problem/10593948>.
2343
2344         Reviewed by Darin Adler.
2345
2346         * UserInterface/CSSStyleDeclarationTextEditor.js:
2347         (WebInspector.CSSStyleDeclarationTextEditor):
2348         * UserInterface/TextEditor.js:
2349         (WebInspector.TextEditor):
2350
2351 2013-05-11  Timothy Hatcher  <timothy@apple.com>
2352
2353         Allow editing any local file since edits can be saved and reloaded right from the Inspector.
2354
2355         Reviewed by Dean Jackson.
2356
2357         * UserInterface/ScriptContentView.js:
2358         (WebInspector.ScriptContentView.prototype._contentWillPopulate):
2359         * UserInterface/TextResourceContentView.js:
2360         (WebInspector.TextResourceContentView.prototype._contentWillPopulate):
2361
2362 2013-05-11  Timothy Hatcher  <timothy@apple.com>
2363
2364         Support saving text resources and the console log to a local file.
2365
2366         <rdar://problem/5827275> PARITY (Chrome Developer Tools): Add an option to save a resource locally
2367
2368         Reviewed by Dean Jackson.
2369
2370         * Localizations/en.lproj/localizedStrings.js: Updated.
2371         * UserInterface/ClusterContentView.js:
2372         (WebInspector.ClusterContentView.prototype.get supportsSave):
2373         (WebInspector.ClusterContentView.prototype.get saveData):
2374         * UserInterface/ConsoleMessageImpl.js:
2375         (WebInspector.ConsoleMessageImpl.prototype.toClipboardString): Always include the level. It was omitted
2376         when we didn't have text range selection to make it easier to copy and paste. But we also include the
2377         file and line info, so it was already has more info than just the message.
2378         * UserInterface/ContentBrowser.js:
2379         (WebInspector.ContentBrowser):
2380         (WebInspector.ContentBrowser.prototype._saveDataToFile):
2381         (WebInspector.ContentBrowser.prototype._save):
2382         (WebInspector.ContentBrowser.prototype._saveAs):
2383         * UserInterface/LogContentView.js:
2384         (WebInspector.LogContentView.prototype.get supportsSave):
2385         (WebInspector.LogContentView.prototype.get saveData):
2386         (WebInspector.LogContentView.prototype.handleCopyEvent):
2387         (WebInspector.LogContentView.prototype._formatMessagesAsData.var):
2388         (WebInspector.LogContentView.prototype._formatMessagesAsData):
2389         * UserInterface/ScriptContentView.js:
2390         (WebInspector.ScriptContentView.prototype.get supportsSave):
2391         (WebInspector.ScriptContentView.prototype.get saveData):
2392         * UserInterface/TextContentView.js:
2393         (WebInspector.TextContentView.prototype.get supportsSave):
2394         (WebInspector.TextContentView.prototype.get saveData):
2395         * UserInterface/TextResourceContentView.js:
2396         (WebInspector.TextResourceContentView.prototype.get supportsSave):
2397         (WebInspector.TextResourceContentView.prototype.get saveData):
2398
2399 2013-05-11  Timothy Hatcher  <timothy@apple.com>
2400
2401         Fix an exception I saw while navigating between pages.
2402
2403         I only reproduced this once, but the fix is a simple null check.
2404         I'm assuming close was called a second time.
2405
2406         Reviewed by Anders Carlsson.
2407
2408         * UserInterface/DOMTreeOutline.js:
2409         (WebInspector.DOMTreeOutline.prototype.close):
2410
2411 2013-05-10  Timothy Hatcher  <timothy@apple.com>
2412
2413         Tweak layer borders icon.
2414
2415         <rdar://problem/13717886> Two layers buttons with different meanings
2416
2417         * UserInterface/Images/LayerBorders.pdf:
2418
2419 2013-05-10  Joseph Pecoraro  <pecoraro@apple.com>
2420
2421         <rdar://problem/13769698> Should be a way to jump between SourceMap resource and Original resource
2422
2423         Add a "jump to symbol" mode when the command key is down for the CSS
2424         style sidebar to jump to the display CSS Resource.
2425
2426         Reviewed by Timothy Hatcher.
2427
2428         * UserInterface/CSSStyleDeclarationTextEditor.js:
2429         (WebInspector.CSSStyleDeclarationTextEditor):
2430         (WebInspector.CSSStyleDeclarationTextEditor.prototype.set style):
2431         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
2432         Listen for GlobalModifierKeysDidChange events when the style for the
2433         editor has an owner rule and that owner rule has a source code location.
2434
2435         (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2436         Jump to the display resource when clicking the highlighted range.
2437
2438         (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2439         Immediately highlight hovered ranges for jump to symbol mode.
2440
2441 2013-05-10  Joseph Pecoraro  <pecoraro@apple.com>
2442
2443         <rdar://problem/13769698> Should be a way to jump between SourceMap resource and Original resource
2444
2445         Add a "jump to symbol" mode when the command key is down, to quickly
2446         jump between a SourceMapResource and the original resources for the
2447         hovered token. This mode takes precedence over debugger popovers if
2448         enabled (because the command key is pressed).
2449
2450         Reviewed by Timothy Hatcher.
2451
2452         * UserInterface/SourceCodeTextEditor.js:
2453         (WebInspector.SourceCodeTextEditor):
2454         (WebInspector.SourceCodeTextEditor.prototype.hidden):
2455         (WebInspector.SourceCodeTextEditor.prototype.close):
2456         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
2457         (WebInspector.SourceCodeTextEditor.prototype._shouldTrackTokenHovering):
2458         Listen for GlobalModifierKeysDidChange events when this file has a source map
2459         (either it is a SourceMapResource or it is a SourceCode with sourceMap resources).
2460
2461         (WebInspector.SourceCodeTextEditor.prototype._startTrackingTokenHoveringIfNeeded):
2462         (WebInspector.SourceCodeTextEditor.prototype._stopTrackingTokenHoveringIfNeeded):
2463         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2464         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2465         (WebInspector.SourceCodeTextEditor.prototype._sourceCodeSourceMapAdded):
2466         In SourceCodeTextEditors there are 2 possible reasons we may have hover tracking,
2467         when on a breakpoint for JavaScript or in Jump To Symbol tracking mode.
2468
2469         (WebInspector.SourceCodeTextEditor.prototype._updateJumpToSymbolTrackingMode):
2470         (WebInspector.SourceCodeTextEditor.prototype._enableJumpToSymbolTrackingModeSettings):
2471         (WebInspector.SourceCodeTextEditor.prototype._disableJumpToSymbolTrackingModeSettings):
2472         Switch between and different tracking modes with different settings.
2473
2474         (WebInspector.SourceCodeTextEditor.prototype._sourceCodeLocationForEditorPosition):
2475         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2476         When in jump to symbol mode, determine the sourceCodeLocation relating to the
2477         token that was clicked and jump between resources.
2478         
2479         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2480         When in jump to symbol mode, that takes precedence. Highlight just the hovered token.
2481
2482 2013-05-10  Joseph Pecoraro  <pecoraro@apple.com>
2483
2484         <rdar://problem/13769698> Should be a way to jump between SourceMap resource and Original resource
2485
2486         Move token tracking out of TextEditor into its own class with settings,
2487         CodeMirrorTokenTrackingController. You can now set the token mode on
2488         the controller to get different types of candidate hovered token results
2489         back to the delegate (TextEditor subclass).
2490
2491         The CodeMirrorTokenTrackingController can start/stop tracking, highlight
2492         a given text range, set delays for mousing over and out of tokens before
2493         actions are taken, and provide different candidates depending the chosen
2494         mode. The current modes are:
2495         
2496             NonSymbolTokens - returns a candidate for just the hovered token.
2497             JavaScriptExpression - returns a candidate for the hovered token with
2498             extra information about the JavaScript expression ending at that token.
2499
2500         When tracking is enabled, the delegate may be notified of changes:
2501
2502             tokenTrackingControllerCanReleaseHighlightedRange - should remove the highlight
2503             tokenTrackingControllerHighlightedRangeReleased - the highlight was removed
2504             tokenTrackingControllerHighlightedRangeWasClicked - the highlight was clicked
2505             tokenTrackingControllerNewHighlightCandidate - new hovered highlight candidate
2506
2507         A plus side of this is that TextEditor now no longer knows about
2508         "JavaScript". It shouldn't need to know about a certain mode of
2509         content that it contains.
2510
2511         Reviewed by Timothy Hatcher.
2512
2513         * UserInterface/Main.html:
2514         * UserInterface/CodeMirrorTokenTrackingController.css: Added.
2515         (.CodeMirror .jump-to-symbol-highlight): Shared style for any type of editor.
2516         * UserInterface/CodeMirrorTokenTrackingController.js: Added.
2517         (WebInspector.CodeMirrorTokenTrackingController):
2518         (WebInspector.CodeMirrorTokenTrackingController.prototype.get delegate):
2519         (WebInspector.CodeMirrorTokenTrackingController.prototype.set delegate):
2520         (WebInspector.CodeMirrorTokenTrackingController.prototype.get mode):
2521         (WebInspector.CodeMirrorTokenTrackingController.prototype.set mode):
2522         (WebInspector.CodeMirrorTokenTrackingController.prototype.get mouseOverDelayDuration):
2523         (WebInspector.CodeMirrorTokenTrackingController.prototype.set mouseOverDelayDuration):
2524         (WebInspector.CodeMirrorTokenTrackingController.prototype.get mouseOutReleaseDelayDuration):
2525         (WebInspector.CodeMirrorTokenTrackingController.prototype.set mouseOutReleaseDelayDuration):
2526         (WebInspector.CodeMirrorTokenTrackingController.prototype.get classNameForHighlightedRange):
2527         (WebInspector.CodeMirrorTokenTrackingController.prototype.set classNameForHighlightedRange):
2528         Different settings of the controller.
2529
2530         (WebInspector.CodeMirrorTokenTrackingController.prototype.get tracking):
2531         (WebInspector.CodeMirrorTokenTrackingController.prototype.get candidate):
2532         Accessors for current state, but cannot be modified.
2533
2534         (WebInspector.CodeMirrorTokenTrackingController.prototype.startTracking):
2535         (WebInspector.CodeMirrorTokenTrackingController.prototype.stopTracking):
2536         (WebInspector.CodeMirrorTokenTrackingController.prototype.highlightRange):
2537         (WebInspector.CodeMirrorTokenTrackingController.prototype.removeHighlightedRange):
2538         API to make use of the tracker to start/stop/highlight.
2539
2540         (WebInspector.CodeMirrorTokenTrackingController.prototype.boundsForRange):
2541         Helper for getting the bounds of a given codemirror text range.
2542
2543         (WebInspector.CodeMirrorTokenTrackingController.prototype.handleEvent):
2544         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseMovedWithMarkedText):
2545         (WebInspector.CodeMirrorTokenTrackingController.prototype._markedTextIsNoLongerHovered):
2546         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseMovedOverEditor):
2547         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseMovedOutOfEditor):
2548         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasPressedOverEditor):
2549         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseButtonWasReleasedOverEditor):
2550         (WebInspector.CodeMirrorTokenTrackingController.prototype._windowLostFocus):
2551         Events handled while tracking. Very few changes.
2552
2553         (WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
2554         (WebInspector.CodeMirrorTokenTrackingController.prototype._processNonSymbolToken):
2555         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
2556         When a token is hovered, create a candidate depending on the controller's mode.
2557
2558         * UserInterface/TextEditor.js:
2559         (WebInspector.TextEditor):
2560         (WebInspector.TextEditor.prototype.get tokenTrackingController):
2561         Create and expose the tokenTrackingController.
2562
2563         * UserInterface/SourceCodeTextEditor.js:
2564         (WebInspector.SourceCodeTextEditor):
2565         (WebInspector.SourceCodeTextEditor.prototype._breakpointRemoved):
2566         (WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
2567         (WebInspector.SourceCodeTextEditor.prototype._shouldTrackTokenHovering):
2568         (WebInspector.SourceCodeTextEditor.prototype._startTrackingTokenHoveringIfNeeded):
2569         (WebInspector.SourceCodeTextEditor.prototype._stopTrackingTokenHoveringIfNeeded):
2570         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2571         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2572         (WebInspector.SourceCodeTextEditor.prototype._updateJumpToSymbolTrackingMode):
2573         (WebInspector.SourceCodeTextEditor.prototype._enableJumpToSymbolTrackingModeSettings):
2574         (WebInspector.SourceCodeTextEditor.prototype._disableJumpToSymbolTrackingModeSettings):
2575         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerCanReleaseHighlightedRange):
2576         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
2577         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
2578         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
2579         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
2580         Switch to the tracking controller instead of TextEditor methods and properties.
2581
2582         * UserInterface/TextEditor.css:
2583         (.text-editor > .CodeMirror .hovered-expression-highlight):
2584         (@-webkit-keyframes text-editor-hovered-expression-highlight-fadeout):
2585         Renamed the class name for expressions to have "expression" in the name.
2586
2587
2588 2013-05-10  Joseph Pecoraro  <pecoraro@apple.com>
2589
2590         <rdar://problem/13769698> Should be a way to jump between SourceMap resource and Original resource
2591
2592         Introduce WebInspector.modifierKeys to know which modifier keys are
2593         active at any time (command, option, shift). Trigger events on changes
2594         through WebInspector.notifications.
2595
2596         Reviewed by Timothy Hatcher.
2597
2598         * UserInterface/Main.js:
2599         (WebInspector.contentLoaded):
2600         (WebInspector._updateModifierKeys):
2601         (WebInspector._windowKeyDown):
2602         (WebInspector._windowKeyUp):
2603         * UserInterface/Object.js:
2604
2605 2013-05-10  Joseph Pecoraro  <pecoraro@apple.com>
2606
2607         Do a little renaming on ResourceSidebarPanel show methods for text
2608         ranges. This better matches the showSourceCodeLocation method names.
2609
2610         Reviewed by Timothy Hatcher.
2611
2612         * UserInterface/ResourceSidebarPanel.js:
2613         (WebInspector.ResourceSidebarPanel.prototype.showSourceCodeTextRange):
2614         (WebInspector.ResourceSidebarPanel.prototype.showOriginalOrFormattedSourceCodeTextRange):
2615         (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
2616
2617 2013-05-10  Timothy Hatcher  <timothy@apple.com>
2618
2619         Make the console prompt suggest completions after typing "." or "[".
2620
2621         <rdar://problem/13860627> REGRESSION: Console autocompletion does not suggest anything until first character is typed
2622
2623         Reviewed by Joseph Pecoraro.
2624
2625         * UserInterface/CodeMirrorCompletionController.js:
2626         (WebInspector.CodeMirrorCompletionController.prototype.updateCompletions):
2627         (WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
2628         (WebInspector.CodeMirrorCompletionController.prototype._scanStringForExpression):
2629         (WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
2630
2631 2013-05-09  Timothy Hatcher  <timothy@apple.com>
2632
2633         Tell WebInspector.Resource about its type when it is created instead of changing it later.
2634         
2635         This depends on: https://webkit.org/b/74935
2636
2637         <rdar://problem/13726105> Timeline network filters don't update as resources change type (74935)
2638
2639         Reviewed by David Kilzer.
2640
2641         * UserInterface/FrameResourceManager.js:
2642         (WebInspector.FrameResourceManager.prototype.frameDidNavigate):
2643         (WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
2644         (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
2645         (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
2646         (WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
2647         * UserInterface/InspectorBackendCommands.js:
2648         * UserInterface/NetworkObserver.js:
2649         (WebInspector.NetworkObserver.prototype.requestWillBeSent):
2650
2651 2013-05-09  Timothy Hatcher  <timothy@apple.com>
2652
2653         Use a different image for the layer border toggle button.
2654
2655         <rdar://problem/13717886> Two layers buttons with different meanings
2656
2657         Reviewed by Joseph Pecoraro.
2658
2659         * UserInterface/DOMTreeContentView.js:
2660         (WebInspector.DOMTreeContentView):
2661         * UserInterface/Images/LayerBorders.pdf: Added.
2662
2663 2013-05-08  Timothy Hatcher  <timothy@apple.com>
2664
2665         Fix the heirarchical path components for unrevealed source map resources.
2666
2667         <rdar://problem/13681487> Missing heirarchical path components selecting breakpoints in source map resources in Debugger sidebar
2668
2669         Reviewed by Joseph Pecoraro.
2670
2671         * UserInterface/ResourceSidebarPanel.js:
2672         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
2673         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject.getParent):
2674         Special case WebInspector.SourceMapResource.
2675
2676         * UserInterface/SourceCodeTreeElement.js:
2677         (WebInspector.SourceCodeTreeElement.prototype._updateSourceCode):
2678         Revert r50608.
2679
2680 2013-05-07  Timothy Hatcher  <timothy@apple.com>
2681
2682         Fix the background color for the Timeline navigation bar.
2683
2684         The container is taller than the navigation bar, and it used for mouse over slop.
2685         So the background color needs to be on the navigation bar.
2686
2687         Reviewed by Joseph Pecoraro.
2688
2689         * UserInterface/TimelinesContentView.css:
2690         (.content-view.timelines > .data-grid > .navigation-bar-container):
2691         (.content-view.timelines > .data-grid > .navigation-bar-container > .navigation-bar):
2692
2693 2013-05-07  Timothy Hatcher  <timothy@apple.com>
2694
2695         Compare async resource types by their first timestamp so they are in chronological order.
2696
2697         <rdar://problem/13827118> Web Inspector: cannot see order of xhrs in resource inspector (115728)
2698
2699         Reviewed by Joseph Pecoraro.
2700
2701         * UserInterface/ResourceTreeElement.js:
2702         (WebInspector.ResourceTreeElement.compareResourceTreeElements):
2703
2704 2013-05-07  Timothy Hatcher  <timothy@apple.com>
2705
2706         Fix and simplify the layout path for Toolbar.
2707
2708         <rdar://problem/13828232> REGRESSION: Toolbar overflows when using Icons and Text (Horizontal) mode
2709
2710         Reviewed by Joseph Pecoraro.
2711
2712         * UserInterface/Toolbar.css:
2713         (.toolbar .control-section):
2714         * UserInterface/Toolbar.js:
2715         (WebInspector.Toolbar.prototype.customUpdateLayout.isOverflowingToolbar):
2716         (WebInspector.Toolbar.prototype.customUpdateLayout):
2717
2718 2013-05-07  Joseph Pecoraro  <pecoraro@apple.com>
2719
2720         <rdar://problem/13821139> After deleting a node when remote inspecting, Web Inspector is broken
2721
2722         When using the remote inspector, there is enough of a delay between
2723         messages that the didRemoveNode handler triggers the DOMTreeUpdater to
2724         refresh the portion of the tree before this removeNodeCallback happens.
2725         Since removeNodeCallback is asynchronous anyways, we should bail if
2726         the tree element was already removed from the tree (has no parent).
2727
2728         Reviewed by Timothy Hatcher.
2729
2730         * UserInterface/DOMTreeElement.js:
2731         (WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
2732         (WebInspector.DOMTreeElement.prototype.remove):
2733
2734 2013-05-07  Joseph Pecoraro  <pecoraro@apple.com>
2735
2736         Fix member name typo.
2737
2738         This was the only occurrence of _selectDOMNode. This looks
2739         like it was just a typo of _selectedDOMNode.
2740
2741         Reviewed by Darin Adler.
2742
2743         * UserInterface/DOMTreeOutline.js:
2744         (WebInspector.DOMTreeOutline):
2745
2746 2013-05-07  Timothy Hatcher  <timothy@apple.com>
2747
2748         Use a brighter blue for selected labels in the label-only toolbar mode.
2749
2750         This better matches the blue used in the selected toolbar icons.
2751
2752         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2753
2754         Reviewed by Antoine Quint.
2755
2756         * UserInterface/ButtonToolbarItem.css:
2757         (.toolbar.label-only .item.activate.button.activated > .label):
2758
2759 2013-05-07  Timothy Hatcher  <timothy@apple.com>
2760
2761         Only allow the LCD to be a single line, giving less difference between toolbar modes and sizes.
2762
2763         This better distributes the space in the LCD and makes it collapse down to 3 items when
2764         there isn't enough room for all 6 items.
2765
2766         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2767
2768         Reviewed by Antoine Quint.
2769
2770         * UserInterface/DashboardView.css:
2771         (.toolbar .dashboard):
2772         (body.nightly-build .toolbar .dashboard):
2773         (body.nightly-build .toolbar.collapsed .dashboard):
2774         (body:not(.nightly-build) .toolbar.collapsed .dashboard):
2775         (body:not(.nightly-build) .toolbar.collapsed .dashboard > .logs):
2776         (.toolbar .dashboard > .item):
2777         (.toolbar .dashboard > .resourcesSize):
2778         (.toolbar .dashboard > .item > div):
2779         (.toolbar.normal-size.icon-and-label-vertical .dashboard):
2780         (.toolbar.normal-size.icon-and-label-horizontal .dashboard > .item):
2781         * UserInterface/DashboardView.js:
2782         (WebInspector.DashboardView):
2783
2784 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2785
2786         Update the LCD background to match Xcode 5.
2787
2788         This change is conditional to non-nightlies.
2789
2790         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2791
2792         Reviewed by Joseph Pecoraro.
2793
2794         * UserInterface/DashboardView.css:
2795         (.toolbar .dashboard):
2796         (body:not(.nightly-build) .toolbar .dashboard):
2797         (body.window-inactive:not(.nightly-build) .toolbar .dashboard):
2798         (body.nightly-build .toolbar .dashboard):
2799         (.toolbar .dashboard > .item):
2800         (.toolbar.small-size.icon-and-label-horizontal .dashboard):
2801         (body.nightly-build .toolbar.small-size.icon-and-label-horizontal .dashboard):
2802         (.toolbar.small-size.icon-and-label-horizontal .dashboard > .item):
2803         (body.nightly-build .toolbar.small-size.icon-and-label-horizontal .dashboard > .item):
2804         (.toolbar.normal-size.icon-and-label-horizontal .dashboard):
2805         (body.nightly-build .toolbar.normal-size.icon-and-label-horizontal .dashboard):
2806         (.toolbar.small-size.icon-and-label-vertical .dashboard):
2807         (body.nightly-build .toolbar.small-size.icon-and-label-vertical .dashboard):
2808         (.toolbar.normal-size.icon-and-label-vertical .dashboard):
2809         (body.nightly-build .toolbar.normal-size.icon-and-label-vertical .dashboard):
2810         (.toolbar.icon-and-label-vertical .dashboard > .item):
2811         (body.nightly-build .toolbar.icon-and-label-vertical .dashboard > .item):
2812
2813 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2814
2815         Update the filter field placeholder in the Resources sidebar when showing search results.
2816
2817         Reviewed by Antoine Quint.
2818
2819         * Localizations/en.lproj/localizedStrings.js:
2820         * UserInterface/ResourceSidebarPanel.js:
2821
2822 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2823
2824         Always have the HierarchicalPathComponent take space so it gives the last item some padding.
2825
2826         Reviewed by Antoine Quint.
2827
2828         * UserInterface/HierarchicalPathComponent.css:
2829         (.hierarchical-path:not(.always-show-last-path-component-separator) > .hierarchical-path-component:last-child > .separator):
2830         Use visibility: hidden instead of display: none.
2831
2832 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2833
2834         Make ScopeBarItem and RadioButtonNavigationItem have a min-width so when they are selected the bold
2835         weight does not cause the item to change its width.
2836
2837         This adds some updateLayout calls to places that needed it now or were missing it already.
2838
2839         This change is not conditional to non-nightlies. It does no harm to always do this.
2840
2841         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2842
2843         Reviewed by Antoine Quint.
2844
2845         * UserInterface/ButtonNavigationItem.js:
2846         (WebInspector.ButtonNavigationItem.prototype.set label):
2847         * UserInterface/CSSStyleDetailsSidebarPanel.js:
2848         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
2849         * UserInterface/Main.js:
2850         (WebInspector._contentBrowserSizeDidChange):
2851         * UserInterface/RadioButtonNavigationItem.js:
2852         (WebInspector.RadioButtonNavigationItem.prototype.get selected):
2853         (WebInspector.RadioButtonNavigationItem.prototype.set selected):
2854         (WebInspector.RadioButtonNavigationItem.prototype.get active):
2855         (WebInspector.RadioButtonNavigationItem.prototype.set active):
2856         (WebInspector.RadioButtonNavigationItem.prototype.updateLayout):
2857         * UserInterface/ScopeBar.js:
2858         (WebInspector.ScopeBar.prototype.updateLayout):
2859         (WebInspector.ScopeBar.prototype._populate):
2860         * UserInterface/TimelineDataGrid.js:
2861         (WebInspector.TimelineDataGrid):
2862         (WebInspector.TimelineDataGrid.prototype.updateLayout):
2863
2864 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2865
2866         Show overflow shadow pockets in the navigation sidebar when content can scroll.
2867
2868         This change is conditional to non-nightlies.
2869
2870         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2871
2872         Reviewed by Antoine Quint.
2873
2874         * UserInterface/NavigationSidebarPanel.css:
2875         (.sidebar > .panel.navigation > .overflow-shadow):
2876         (body.nightly-build .sidebar > .panel.navigation > .overflow-shadow):
2877         (.sidebar > .panel.navigation > .overflow-shadow.top):
2878         * UserInterface/NavigationSidebarPanel.js:
2879         (WebInspector.NavigationSidebarPanel):
2880         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
2881         (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
2882         (WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
2883         (WebInspector.NavigationSidebarPanel.prototype.shown):
2884         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
2885         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2886         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
2887         (WebInspector.NavigationSidebarPanel.prototype._treeElementExpandedOrCollapsed):
2888         * UserInterface/ResourceSidebarPanel.js:
2889         (WebInspector.ResourceSidebarPanel):
2890         * UserInterface/TreeOutline.js:
2891         (TreeElement.prototype.collapse):
2892         (TreeElement.prototype.expand):
2893
2894 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2895
2896         Update focus and active focus generated images to match the blues used by Xcode 5.
2897
2898         This change is not conditional to non-nightlies. It shouldn't be too revealing.
2899
2900         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2901
2902         Reviewed by Antoine Quint.
2903
2904         * UserInterface/ImageUtilities.js:
2905         (.generateImage):
2906
2907 2013-05-06  Timothy Hatcher  <timothy@apple.com>
2908
2909         Update styles to match the majority of Xcode 5's design changes.
2910
2911         The style changes are conditional so they wont apply when running a WebKit nightly.
2912         After WWDC we can remove the condition and the extra style rules this adds.
2913
2914         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
2915
2916         Rubber-stamped by Antoine Quint.
2917
2918         * UserInterface/ButtonNavigationItem.css:
2919         (.navigation-bar .item.button.text-only):
2920         (body.nightly .navigation-bar .item.button:not(.disabled):not(.radio):not(.suppress-bezel):active):
2921         * UserInterface/CodeMirrorOverrides.css:
2922         (.CodeMirror .CodeMirror-gutters):
2923         (.body.nightly-build .CodeMirror .CodeMirror-gutters):
2924         (.CodeMirror .CodeMirror-linenumber):
2925         * UserInterface/DetailsSection.css:
2926         (.details-section > .header):
2927         (.details-section .details-section > .header):
2928         (body.nightly-build .details-section > .header):
2929         (body.nightly-build .details-section .details-section > .header):
2930         * UserInterface/DividerNavigationItem.css:
2931         (.navigation-bar .item.divider):
2932         (body.nightly .navigation-bar .item.divider):
2933         * UserInterface/FilterBar.css:
2934         (.filter-bar):
2935         (body.nightly-build .filter-bar):
2936         (body:not(.nightly-build) .filter-bar > input[type="search"]):
2937         (body:not(.nightly-build) .filter-bar > input[type="search"]::-webkit-input-placeholder):
2938         (body:not(.nightly-build) .filter-bar > input[type="search"]:valid):
2939         * UserInterface/FilterBar.js:
2940         (WebInspector.FilterBar):
2941         * UserInterface/FindBanner.css:
2942         (body.nightly-build .find-banner):
2943         (body:not(.nightly) .find-banner > input[type="search"]):
2944         (body:not(.nightly) .find-banner > button):
2945         (.find-banner > button > .glyph):
2946         (body.nightly .find-banner > button > .glyph):
2947         * UserInterface/HierarchicalPathComponent.css:
2948         (body.nightly .hierarchical-path-component > .separator):
2949         (.hierarchical-path-component.text-only > select):
2950         * UserInterface/InstrumentSidebarPanel.css:
2951         (.sidebar > .panel.instrument > .title-bar):
2952         (body.nightly-build .sidebar > .panel.instrument > .title-bar):
2953         (.sidebar > .panel.instrument > .title-bar.profiles):
2954         (body.nightly-build .sidebar > .panel.instrument > .title-bar.profiles):
2955         * UserInterface/LayerTreeSidebarPanel.css:
2956         (.layer-tree.panel .bottom-bar):
2957         (body.nightly-build .layer-tree.panel .bottom-bar):
2958         * UserInterface/Main.css:
2959         (#split-content-browser > .navigation-bar):
2960         (body.nightly-build #split-content-browser > .navigation-bar):
2961         * UserInterface/NavigationBar.css:
2962         (.navigation-bar):
2963         (body.nightly-build .navigation-bar):
2964         (body.nightly-build.window-inactive .navigation-bar):
2965         * UserInterface/NavigationSidebarPanel.css:
2966         (.sidebar > .panel.navigation > .content):
2967         (body.nightly-build .sidebar > .panel.navigation > .content):
2968         (.sidebar > .panel.navigation > .overflow-shadow):
2969         (.sidebar > .panel.navigation > .overflow-shadow.top):
2970         * UserInterface/RadioButtonNavigationItem.css:
2971         (.navigation-bar .item.radio.button.text-only.selected):
2972         (body:not(.nightly) .navigation-bar .item.radio.button.text-only.selected):
2973         (body.nightly .navigation-bar .item.radio.button.selected):
2974         * UserInterface/ResourceSidebarPanel.css:
2975         (.sidebar > .panel.resource > .empty-content-placeholder):
2976         (body.nightly-build .sidebar > .panel.resource > .empty-content-placeholder):
2977         (.sidebar > .panel.resource > .search-bar):
2978         (body.nightly-build .sidebar > .panel.resource > .search-bar):
2979         * UserInterface/ResourceSidebarPanel.js:
2980         (WebInspector.ResourceSidebarPanel):
2981         * UserInterface/ScopeBar.css:
2982         (.scope-bar > li):
2983         (body:not(.nightly-build) .scope-bar > li):
2984         (body:not(.nightly-build) .scope-bar > li:active):
2985         (body:not(.nightly-build) .scope-bar > li.selected):
2986         (body.nightly-build .scope-bar > li):
2987         (body.nightly-build .scope-bar > li:active):
2988         (.scope-bar > li:hover):
2989         (.scope-bar > li.selected):
2990         (.scope-bar > li:active):
2991         (body.nightly-build .scope-bar > li.selected):
2992         * UserInterface/SearchBar.css:
2993         (.search-bar > input[type="search"]):
2994         (body:not(.nightly-build) .search-bar > input[type="search"]):
2995         (body:not(.nightly-build) .search-bar > input[type="search"]::-webkit-input-placeholder):
2996         (body:not(.nightly-build) .search-bar > input[type="search"]:valid):
2997         * UserInterface/SearchBar.js:
2998         (WebInspector.SearchBar):
2999         * UserInterface/TimelinesContentView.css:
3000         (.content-view.timelines > .data-grid):
3001         (body.nightly-build .content-view.timelines > .data-grid):
3002         (.content-view.timelines > .data-grid th):
3003         (body.nightly-build .content-view.timelines > .data-grid th):
3004         (.content-view.timelines > .data-grid th:not(:last-child)):
3005         (body.nightly-build .content-view.timelines > .data-grid th:not(:last-child)):
3006         (.content-view.timelines > .data-grid th.sortable:not(.mouse-over-collapser):active):
3007         (body.nightly-build .content-view.timelines > .data-grid th.sortable:not(.mouse-over-collapser):active):
3008         (.content-view.timelines > .data-grid th.sort-descending):
3009         (body.nightly-build .content-view.timelines > .data-grid th.sort-descending):
3010         (.content-view.timelines > .data-grid > .navigation-bar-container):
3011         (.content-view.timelines > .data-grid > .navigation-bar-container > .navigation-bar):
3012         (body.nightly-build .content-view.timelines > .data-grid > .navigation-bar-container > .navigation-bar):
3013
3014 2013-05-06  Timothy Hatcher  <timothy@apple.com>
3015
3016         Add a nightly-build class so we can hide new UI from nightly WebKit builds.
3017
3018         Part of: <rdar://problem/13810992> Update Web Inspector to match Xcode 5's new design language
3019
3020         Reviewed by Antoine Quint.
3021
3022         * UserInterface/Main.js:
3023         (WebInspector.contentLoaded):
3024         Set the nightly-build class on body if we are in a nightly build.
3025
3026 2013-05-03  Timothy Hatcher  <timothy@apple.com>
3027
3028         Add stubs for savedURL and appendedToURL.
3029
3030         https://webkit.org/b/115561
3031         rdar://problem/13806055
3032
3033         Reviewed by Joseph Pecoraro.
3034
3035         * UserInterface/InspectorFrontendAPI.js:
3036         (InspectorFrontendAPI.savedURL):
3037         (InspectorFrontendAPI.appendedToURL):
3038
3039 2013-05-02  Timothy Hatcher  <timothy@apple.com>
3040
3041         Fix the alignment of the titles in the Timelines sidebar.
3042
3043         Reviewed by Joseph Pecoraro.
3044
3045         * UserInterface/GeneralTreeElement.js:
3046         (WebInspector.GeneralTreeElement.prototype._updateTitleElements):
3047         Only create a subtitle if the string has a value, not an empty string.
3048
3049 2013-05-01  Timothy Hatcher  <timothy@apple.com>
3050
3051         Make the Dashboard timer and Timeline views more robust when going back/forward.
3052
3053         <rdar://problem/13612025> Dashboard: LCD timer never stops when going back/forward
3054         <rdar://problem/13180009> Recording sometimes never stops because the load event marker is never added
3055         <rdar://problem/13510955> Intermittently, timeline is in "days" after refreshing wsj.com site
3056
3057         Reviewed by Antoine Quint.
3058
3059         * UserInterface/DashboardManager.js:
3060         (WebInspector.DashboardManager):
3061         (WebInspector.DashboardManager.prototype._mainResourceDidChange):
3062         (WebInspector.DashboardManager.prototype._recordingStopped):
3063         (WebInspector.DashboardManager.prototype._startUpdatingTime):
3064         (WebInspector.DashboardManager.prototype._stopUpdatingTime): Added.
3065         (WebInspector.DashboardManager.prototype._updateTime):
3066
3067         * UserInterface/NetworkGraphCalculator.js:
3068         (WebInspector.NetworkTransferTimeCalculator.prototype._lowerBound):
3069         (WebInspector.NetworkTransferTimeCalculator.prototype._upperBound):
3070         (WebInspector.NetworkTransferDurationCalculator.prototype._upperBound):
3071         Don't return NaN for the bounds.
3072
3073         * UserInterface/Resource.js:
3074         (WebInspector.Resource.prototype.get firstTimestamp): Added.
3075         Added as a helper to prevent using NaN as the start time.
3076
3077         * UserInterface/ResourceTimelineRecord.js:
3078         (WebInspector.ResourceTimelineRecord.prototype.get startTime):
3079         Use firstTimestamp.
3080
3081         * UserInterface/TimelineManager.js:
3082         (WebInspector.TimelineManager.prototype.startRecording):
3083         (WebInspector.TimelineManager.prototype.stopRecording):
3084         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
3085         (WebInspector.TimelineManager.prototype.eventRecorded):
3086         (WebInspector.TimelineManager.prototype._clear):
3087         (WebInspector.TimelineManager.prototype._addRecord):
3088         (WebInspector.TimelineManager.prototype._startAutoRecording):
3089         (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
3090         (WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
3091         (WebInspector.TimelineManager.prototype._mainResourceDidChange):
3092         Fire an event on clear so the timeline view clears even if recording does not start.
3093         Track the main resource object and not the request identifier, since a resource
3094         might not have a request identifier in the back/forward case. Auto stop recording soon
3095         after every record, not just the load event since we don't always have load events.
3096
3097         * UserInterface/TimelinesContentView.js:
3098         (WebInspector.TimelinesContentView):
3099         (WebInspector.TimelinesContentView.prototype._recordsCleared):
3100         Use RecordsCleared event instead of RecordingStarted to clear the view.
3101
3102 2013-05-01  Timothy Hatcher  <timothy@apple.com>
3103
3104         Reveal the line (if supplied) when showing a ScriptContentView.
3105
3106         <rdar://problem/13785027> REGRESSION: Extra Scripts: no autoscroll to debugger statement.
3107
3108         Reviewed by Joseph Pecoraro.
3109
3110         * UserInterface/ResourceSidebarPanel.js:
3111         (WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
3112
3113 2013-05-01  Timothy Hatcher  <timothy@apple.com>
3114
3115         Don't update the dashboard text unless it has changed.
3116
3117         Also step up the interval we update the time so it does not try to update every 50ms when the
3118         duration is long enough to not matter.
3119
3120         <rdar://problem/13718056> While JS debugging, everything in the inspector window is repainting all the time
3121
3122         Reviewed by Joseph Pecoraro.
3123
3124         * UserInterface/DashboardManager.js:
3125         (WebInspector.DashboardManager.prototype._startUpdatingTime):
3126         (WebInspector.DashboardManager.prototype._updateTime):
3127         * UserInterface/DashboardView.js:
3128         (WebInspector.DashboardView.prototype.set logs):
3129         (WebInspector.DashboardView.prototype.set issues):
3130         (WebInspector.DashboardView.prototype.set errors):
3131         (WebInspector.DashboardView.prototype.set time):
3132         (WebInspector.DashboardView.prototype.set resourcesCount):
3133         (WebInspector.DashboardView.prototype.set resourcesSize):
3134         (WebInspector.DashboardView.prototype._appendElementForNamedItem.):
3135
3136 2013-05-01  Timothy Hatcher  <timothy@apple.com>
3137
3138         Breakpoint context menu items should appear for Extra and Anonymous Scripts.
3139
3140         <rdar://problem/13776299>
3141
3142         Reviewed by Joseph Pecoraro.
3143
3144         * UserInterface/DebuggerSidebarPanel.js:
3145         (WebInspector.DebuggerSidebarPanel.prototype._breakpointsBeneathTreeElement):
3146         (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
3147         (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
3148         Check for WebInspector.ScriptTreeElement in addition to WebInspector.ResourceTreeElement.
3149
3150 2013-04-30  Timothy Hatcher  <timothy@apple.com>
3151
3152         Disable spellcheck and smart quotes in the console prompt.
3153
3154         I'll upstream this to CodeMirror once I get approval from legal.
3155
3156         <rdar://problem/13757709>
3157
3158         Reviewed by Ricky Mondello.
3159
3160         * UserInterface/External/CodeMirror/codemirror.js:
3161         (window.CodeMirror):
3162
3163 2013-04-30  Timothy Hatcher  <timothy@apple.com>
3164
3165         Tweak the Toolbar layout code to not hide the Dashboard when sizes are off by one.
3166
3167         This wasn't needed when sub-pixel layout was on, but that was disabled in http://webkit.org/b/149209.
3168
3169         <rdar://problem/13757354> REGRESSION: Toolbar thinks it is collapsed, so dashboard is hidden
3170
3171         Reviewed by Joseph Pecoraro.
3172
3173         * UserInterface/Toolbar.js:
3174         (WebInspector.Toolbar.prototype.customUpdateLayout):
3175
3176 2013-04-30  Timothy Hatcher  <timothy@apple.com>
3177
3178         Have dashboard buttons (console summary buttons) do filtering as well.
3179
3180         <rdar://problem/13685685>
3181
3182         Reviewed by Joseph Pecoraro.
3183
3184         * UserInterface/DashboardView.js:
3185         (WebInspector.DashboardView):
3186         (WebInspector.DashboardView.prototype._consoleItemWasClicked):
3187         * UserInterface/LogContentView.js:
3188         (WebInspector.LogContentView.prototype.get scopeBar):
3189         * UserInterface/Main.js:
3190         (WebInspector.showFullHeightConsole):
3191         (WebInspector.showConsoleView):
3192
3193 2013-04-30  Joseph Pecoraro  <pecoraro@apple.com>
3194
3195         <rdar://problem/12719925> Call stack should show live line number next to file name
3196
3197         Reviewed by Timothy Hatcher.
3198
3199         * UserInterface/GeneralTreeElement.js:
3200         (WebInspector.GeneralTreeElement):
3201         (WebInspector.GeneralTreeElement.prototype.get tooltipHandledSeparately):
3202         (WebInspector.GeneralTreeElement.prototype.set tooltipHandledSeparately):
3203         (WebInspector.GeneralTreeElement.prototype._updateTitleElements):
3204         Allow clients to handle the tooltip themselves, and to set subtitle as
3205         an element, instead of a string (already possible with mainTitle).
3206
3207         * UserInterface/CallFrameTreeElement.js:
3208         (WebInspector.CallFrameTreeElement):
3209         Set the subtitle as a live location <span>.
3210         (WebInspector.CallFrameTreeElement.prototype.onattach):
3211         Set the tooltip on the entire tree element once it is created.
3212
3213         * UserInterface/SourceCodeLocation.js:
3214         (WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationTooltip):
3215         Allow an optional prefix before the location string.
3216
3217 2013-04-29  Timothy Hatcher  <timothy@apple.com>
3218
3219         Remove an assert from StyleDetailsPanel.prototype.shown.
3220
3221         The shown function can be called multiple times. Just keep the early return.
3222         Also make sure to call StyleDetailsPanel.prototype.hidden in another case.
3223
3224         Reviewed by Joseph Pecoraro.
3225
3226         * UserInterface/CSSStyleDetailsSidebarPanel.js:
3227         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
3228         * UserInterface/StyleDetailsPanel.js:
3229         (WebInspector.StyleDetailsPanel.prototype.shown):
3230
3231 2013-04-29  Timothy Hatcher  <timothy@apple.com>
3232
3233         Skip invalid properties when associating related properties.
3234
3235         <rdar://problem/13752586> DOMNodeStyles.js:981: console.assert(property.overridden); on html5please.com
3236
3237         Reviewed by Joseph Pecoraro.
3238
3239         * UserInterface/DOMNodeStyles.js:
3240         (WebInspector.DOMNodeStyles.prototype._associateRelatedProperties):
3241
3242 2013-04-29  Joseph Pecoraro  <pecoraro@apple.com>
3243
3244         Don't allow Command+Enter in the Console with an empty expression.
3245
3246         Reviewed by Timothy Hatcher.
3247
3248         * UserInterface/ConsolePrompt.js:
3249
3250 2013-04-29  Joseph Pecoraro  <pecoraro@apple.com>
3251
3252         <rdar://problem/13616567> Can no longer clear the console with clear()
3253
3254         LogContentView starts listening for an event in the constructor which
3255         was getting removed in close and not being added back. This ContentView
3256         is already treated like a singleton with other events, treat this the
3257         same and just avoid removing event listeners in close.
3258
3259         Reviewed by Timothy Hatcher.
3260
3261         * UserInterface/LogContentView.js:
3262
3263 2013-04-29  Joseph Pecoraro  <pecoraro@apple.com>
3264
3265         <rdar://problem/13765474> REGRESSION: Console should not clear on reload
3266
3267         The backend sends the frontend a messagesCleared messages for many reasons.
3268         We should not clear the active log when there was a navigation. In those
3269         cases the LogManager will send out a Cleared or SessionStarted event.
3270         It would be messy and brittle to determine if we are in the middle of a
3271         main resource load, so it is easier to do a setTimeout and send an event
3272         if we did not do a navigation.
3273
3274         This works well with all common cases, but breaks:
3275
3276             js> console.log(1); console.clear(); console.log(2);
3277
3278         Filed the follow-up bug to handle fixing this by providing the frontend
3279         with the information it needs in messagesCleared.
3280
3281         Reviewed by Timothy Hatcher.
3282
3283         * UserInterface/ConsoleObserver.js:
3284         (WebInspector.ConsoleObserver.prototype.messageAdded):
3285         Don't append a blank ConsoleMessage row for console.clear messages.
3286
3287         * UserInterface/LogManager.js:
3288         (WebInspector.LogManager.prototype.messagesCleared):
3289         (WebInspector.LogManager.prototype._mainResourceDidChange):
3290         Defer ActiveLogCleared events so that we don't issue one while we
3291         are reloading the page.
3292
3293 2013-04-29  Joseph Pecoraro  <pecoraro@apple.com>
3294
3295         <rdar://problem/13764663> Tooltips on live location links are no longer working
3296
3297         Changing the content in mousemove, even if the content was the same,
3298         would cause the tooltip to disappear. Avoid changing the content unless
3299         we absolutely need to.
3300
3301         Reviewed by Timothy Hatcher.
3302
3303         * UserInterface/SourceCodeLocation.js:
3304         (WebInspector.SourceCodeLocation.prototype.updateDisplayString):
3305         Avoid unnecessary content updates.
3306
3307         (WebInspector.SourceCodeLocation.prototype._locationString):
3308         Fix typo causing column numbers to not show up in tooltips.
3309
3310 2013-04-29  Joseph Pecoraro  <pecoraro@apple.com>
3311
3312         <rdar://problem/13763988> Jump to "rs.js" error location link not live on theverge.com
3313
3314         The URL in the ConsoleMessage is the URL of the Script, which contains
3315         a fragment. The URL of the Resource does not contain the fragment. When
3316         we create a sourceCodeLocation in linkifyLocation we want to get the
3317         resource that has a sidebar item, because that is the resource in the
3318         sidebar that will show a ContentView. So if we get a Script try to get
3319         the Resource for that Script if one exists.
3320
3321         Reviewed by Timothy Hatcher.
3322
3323         * UserInterface/Main.js:
3324         (WebInspector.linkifyLocation):
3325
3326 2013-04-29  Joseph Pecoraro  <pecoraro@apple.com>
3327
3328         <rdar://problem/13442566> Console context selector should truncate or generate better names when the names are long
3329
3330         Truncate the context selector quick console nav bar item. And modify
3331         how items are sorted in the context menu to show the frame name if one
3332         is available.
3333
3334         Reviewed by Timothy Hatcher.
3335
3336         * UserInterface/HierarchicalPathComponent.js:
3337         (WebInspector.HierarchicalPathComponent):
3338         (WebInspector.HierarchicalPathComponent.prototype.get displayName):
3339         (WebInspector.HierarchicalPathComponent.prototype.set displayName):
3340         (WebInspector.HierarchicalPathComponent.prototype.get truncatedDisplayNameLength):
3341         (WebInspector.HierarchicalPathComponent.prototype.set truncatedDisplayNameLength):
3342         Separate the display name property from the title element's content, so we
3343         can truncate the display but store the real name.
3344
3345         (WebInspector.HierarchicalPathComponent.prototype._updateElementTitleAndText):
3346         Truncate the display in the navigation bar.
3347
3348         (WebInspector.HierarchicalPathComponent.prototype._updateSelectElement.createOption):
3349         (WebInspector.HierarchicalPathComponent.prototype._updateSelectElement):
3350         Work around an NSMenu issue and truncate in the option text in the context menu.
3351
3352         * UserInterface/QuickConsole.js:
3353         (WebInspector.QuickConsole.prototype._createExecutionContextPathComponent):
3354         (WebInspector.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
3355         (WebInspector.QuickConsole.prototype._compareExecutionContextPathComponents):
3356         Set the Frame on the PathComponents to use later for sorting.
3357
3358 2013-04-29  Timothy Hatcher  <timothy@apple.com>
3359
3360         Abort earlier when loading completions for a null or undefined value.
3361
3362         <rdar://problem/13764611> JavaScriptLogViewController.js:293: CONSOLEAPI ERROR: Unknown result type: undefined
3363
3364         Reviewed by Joseph Pecoraro.
3365
3366         * UserInterface/JavaScriptLogViewController.js:
3367         (WebInspector.JavaScriptLogViewController.prototype.consolePromptCompletionsNeeded):
3368         Return early if the RemoteObject is null or undefined. Also release the completion group.
3369
3370 2013-04-29  Timothy Hatcher  <timothy@apple.com>
3371
3372         Correct the layout of navigation items when an item has selector arrows.
3373
3374         <rdar://problem/13717922> Layer border toggle button disappears sometimes
3375
3376         Reviewed by Joseph Pecoraro.
3377
3378         * UserInterface/HierarchicalPathComponent.js:
3379         (WebInspector.HierarchicalPathComponent):
3380         (WebInspector.HierarchicalPathComponent.prototype.get minimumWidth): Added.
3381         (WebInspector.HierarchicalPathComponent.prototype.set forcedWidth):
3382         (WebInspector.HierarchicalPathComponent.prototype.get selectorArrows): Added.
3383         (WebInspector.HierarchicalPathComponent.prototype.set selectorArrows): Added.
3384         Account for the width of the selector arrows when using minimum width.
3385
3386         * UserInterface/HierarchicalPathNavigationItem.js:
3387         (WebInspector.HierarchicalPathNavigationItem.prototype.updateLayout):
3388         Ask HierarchicalPathComponent for its minimum width.
3389
3390         * UserInterface/NavigationBar.js:
3391         (WebInspector.NavigationBar.prototype.updateLayout):
3392         Skip flexible space items since they can take up no space at the minimum width.
3393
3394 2013-04-27  Dean Jackson  <dino@apple.com>
3395
3396         <rdar://problem/13441708> Make the Web Inspector work if HiDPI canvas is disabled on OS X
3397
3398         Reviewed by Tim Hatcher.
3399
3400         For <rdar://problem/13437328>, HIGH_DPI_CANVAS was disabled on retina devices, so
3401         the places in the inspector that use a canvas must double the dimensions of
3402         the image buffers they request.
3403
3404         * UserInterface/DashboardView.css:
3405         (.toolbar .dashboard): Since the image being pased in as background might be 2x,
3406             make sure that it uses the element size for the background.
3407         * UserInterface/DashboardView.js: Request a 2x canvas if necessary.
3408
3409         * UserInterface/ImageUtilities.js:
3410         (generateColoredImage): No need to pass in scale, as this method is passed the
3411             correct width and height the caller needs. Use get/setImageData methods.
3412         (generateColoredImagesForCSS): Calculate a scaledWidth/Height to be used throughout
3413             this method. Make sure we create contexts with the correct dimensions, and save/restore
3414             them at full size.
3415         (._drawImageShadow): Use scaledWidth/Height.
3416         (._invertMaskImage): No need to pass in width and height..
3417         (._applyImageMask): Ditto.
3418         (generateEmbossedImages): Calculate a scaledWidth/Height to be used throughout
3419             this method. Make sure we create contexts with the correct dimensions.
3420
3421         * UserInterface/Popover.js:
3422         (WebInspector.Popover.prototype.set frame): Make sure to set the background size when
3423             the frame is updated.
3424         (WebInspector.Popover.prototype._drawBackground): Create a correctly scaled canvas,
3425             and some minor code cleanup.
3426
3427 2013-04-27  Timothy Hatcher  <timothy@apple.com>
3428
3429         Fix the speed of typing in the Web Inspector.
3430
3431         ToggleControlToolbarItem regenerates its images every time 'toggled' is set, even
3432         if the flag does not change! And the dock button updates 'toggled' on keydown and
3433         keyup to update when Option is pressed.
3434
3435         <rdar://problem/13756496> REGRESSION: Dock/undock buttons regenerates ever keydown and keyup!
3436
3437         Reviewed by Dean Jackson.
3438
3439         * UserInterface/ToggleButtonNavigationItem.js:
3440         (WebInspector.ToggleButtonNavigationItem.prototype.set toggled): Return early if flag does not change.
3441
3442 2013-04-27  Joseph Pecoraro  <pecoraro@apple.com>
3443
3444         <rdar://problem/13143692> Object literal properties should not have popovers
3445
3446         Given test:
3447
3448           var foo = 300, o = { foo: 1 };
3449           var result = o.foo;
3450
3451         This patch makes it so hovering "foo" in the object literal does not
3452         show a popover, it used to show 300. While hovering the variable "foo"
3453         or hovering the property access "o.foo" both show expected values.
3454
3455         Reviewed by Timothy Hatcher.
3456
3457         * UserInterface/TextEditor.js:
3458         (WebInspector.TextEditor.prototype._mouseMovedOverEditor):
3459         If we are hovering a JavaScript token inside of a <script> in HTML resources
3460         then the JavaScript state is actually token.state.localState. If it is in
3461         a JavaScript resource then it is just token.state. Pass the most specific
3462         state on our partial "token" object.
3463
3464         (WebInspector.TextEditor.prototype._checkHoveredToken):
3465         Bail for JavaScript object literal properties.
3466
3467 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3468
3469         <rdar://problem/13753106> SourceCodeTextEditor.js:815: JS ERROR: TypeError: undefined is not an object (evaluating this.hoveredToken.bounds)
3470
3471         We have a complete token in tokenWasHovered, however between then and
3472         when the async DebuggerAgent.evaluateOnCallFrame callback happens the
3473         hovered token can change. If it changed, bail, so we don't end up
3474         trying to put the popover on the wrong hovered token or worse
3475         hit this exception and break execution.
3476
3477         Reviewed by Timothy Hatcher.
3478
3479         * UserInterface/SourceCodeTextEditor.js:
3480         (WebInspector.SourceCodeTextEditor.prototype.tokenWasHovered.populate):
3481         (WebInspector.SourceCodeTextEditor.prototype.tokenWasHovered):
3482         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
3483         Add asserts and preventative bails in multiple places to catch
3484         similar issues in the future if new paths are added.
3485
3486 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3487
3488         <rdar://problem/13746094> Esc inside a read only editor (JavaScript) should not bring up completion suggestions
3489
3490         Pass on "Esc" if the editor is read only.
3491
3492         Reviewed by Timothy Hatcher.
3493
3494         * UserInterface/CodeMirrorCompletionController.js:
3495         (WebInspector.CodeMirrorCompletionController.prototype._handleEscapeKey):
3496
3497 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3498
3499         <rdar://problem/13573902> Line numbers in JS console.log / console.error Messages should be live, they jump to the wrong location
3500         <rdar://problem/13702357> Line numbers in JS Console Error Messages should be live, they jump to the wrong location
3501
3502         Make the ConsoleMessage and Profiler links live when possible. Create
3503         a live link with createSourceCodeLocationLink or linkifyLocation.
3504         ConsoleMessages's have line and column information now both at the
3505         base and in stack traces. Profiler nodes don't have column info, but we
3506         can still make them live, just not entirely accurate.
3507
3508         Reviewed by Timothy Hatcher.
3509
3510         * UserInterface/ConsoleMessageImpl.js:
3511         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
3512         (WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
3513         Use WebInspector.linkifyLocation with url, line, and column.
3514
3515         * UserInterface/Main.js:
3516         (.showSourceCodeLocation):
3517         (WebInspector.createSourceCodeLocationLink):
3518         (WebInspector.linkifyLocation):
3519         If we have the resource with url passed into linkifyLocation
3520         it creates a link with a sourceCodeLocation. Otherwise it just
3521         creates a basic link with the appropriate styles.
3522
3523         * UserInterface/CSSSelectorProfileView.js:
3524         (WebInspector.CSSSelectorDataGridNode.prototype.createCell):
3525         (WebInspector.CSSSelectorDataGridNode.prototype._linkifyLocation):
3526         * UserInterface/ProfileDataGridTree.js:
3527         (WebInspector.ProfileDataGridNode.prototype._linkifyLocation):
3528         Use WebInspector.linkifyLocation with url and lineNumber. Add
3529         a FIXME about the missing column number.
3530
3531 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3532
3533         <rdar://problem/13573902> Line numbers in JS console.log / console.error Messages should be live, they jump to the wrong location
3534         <rdar://problem/13702357> Line numbers in JS Console Error Messages should be live, they jump to the wrong location
3535
3536         Give ConsoleMessage a column number. The backend now sends us this info.
3537
3538         Reviewed by Timothy Hatcher.
3539
3540         * UserInterface/ConsoleCommandResult.js:
3541         (WebInspector.ConsoleCommandResult):
3542         * UserInterface/ConsoleMessage.js:
3543         (WebInspector.ConsoleMessage):
3544         (WebInspector.ConsoleMessage.create):
3545         * UserInterface/ConsoleMessageImpl.js:
3546         (WebInspector.ConsoleMessageImpl):
3547         (WebInspector.ConsoleMessageImpl.prototype.get levelString):
3548         * UserInterface/ConsoleObserver.js:
3549         (WebInspector.ConsoleObserver.prototype.messageAdded):
3550         * UserInterface/LogManager.js:
3551         (WebInspector.LogManager.prototype.messageWasAdded):
3552
3553 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3554
3555         <rdar://problem/13745104> First revealLine to SourceMapResource lineNumber is not working
3556
3557         SourceMapResource's may lazily load their data. In such cases the
3558         ContentView for the resource will be Generic and ignore the revealLine.
3559         Once loaded, the Generic ContentView will be replaced by a better view,
3560         but the line number to reveal has been lost. Save that information in
3561         the cluster content view, as long as the resource has not finished,
3562         and pass it on to the new content view when the resource finishes.
3563
3564         Reviewed by Timothy Hatcher.
3565
3566         * UserInterface/SourceMapResource.js:
3567         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
3568         Mark as finished after updating types.
3569
3570         * UserInterface/ResourceClusterContentView.js:
3571         (WebInspector.ResourceClusterContentView.prototype.showResponse):
3572         (WebInspector.ResourceClusterContentView.prototype._resourceTypeDidChange):
3573         (WebInspector.ResourceClusterContentView.prototype._resourceLoadingDidFinish):
3574         If a revealLine comes in for a resource not yet finished loading, replay
3575         the reveal line when the resource does finish. If subsequent reveals come
3576         in, the most recent one wins.
3577
3578         * UserInterface/TextEditor.js:
3579         (WebInspector.TextEditor._prettyPrint.prettyPrintAndUpdateEditor):
3580         When a file is formatted we updated the delayed line number to reveal, but
3581         didn't update the delayed text range to select. Do that just in case.
3582
3583 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3584
3585         <rdar://problem/13701579> Styles sidebar should show source map location by default instead of on hover
3586
3587         When hovering a link with Command we are showing the original,
3588         unformatted location. So make sure that when clicked we jump
3589         to that exact, unformatted location.
3590
3591         Reviewed by Timothy Hatcher.
3592
3593         * UserInterface/Main.js:
3594         (WebInspector.createGoToArrowButton):
3595         Handle Command+Click to jump to an unformatted location.
3596
3597         * UserInterface/ResourceSidebarPanel.js:
3598         (WebInspector.ResourceSidebarPanel.prototype.showSourceCode):
3599         (WebInspector.ResourceSidebarPanel.prototype.showOriginalUnformattedSourceCodeLocation):
3600         Allow showing a source code that forces unformatting.
3601
3602         * UserInterface/TextEditor.js:
3603         (WebInspector.TextEditor.prototype._revealPendingLineIfPossible):
3604         (WebInspector.TextEditor.prototype.revealLine):
3605         May need to unformat the resource before revealing the line.
3606
3607         * UserInterface/FrameContentView.js:
3608         (WebInspector.FrameContentView.prototype.showSourceCode):
3609         * UserInterface/ResourceClusterContentView.js:
3610         (WebInspector.ResourceClusterContentView.prototype.showResponse):
3611         * UserInterface/ScriptContentView.js:
3612         (WebInspector.ScriptContentView.prototype.revealLine):
3613         * UserInterface/TextContentView.js:
3614         (WebInspector.TextContentView.prototype.revealLine):
3615         * UserInterface/TextResourceContentView.js:
3616         (WebInspector.TextResourceContentView.prototype.revealLine):
3617         Pass the forceUnformat option through revealLine paths.
3618
3619 2013-04-26  Joseph Pecoraro  <pecoraro@apple.com>
3620
3621         <rdar://problem/13701579> Styles sidebar should show source map location by default instead of on hover
3622
3623         Update the rules for a live location display.
3624
3625           - Show display location by default if there is one.
3626           - Show display locations in italics, original locations display non-italics.
3627           - Command+Mouseover a display location will show the original location.
3628           - Provide different display styles for column numbers. Default to "OnlyIfLarge"
3629             meaning only show column numbers if the column is > 80.
3630
3631         Reviewed by Timothy Hatcher.
3632
3633         * UserInterface/CallFrameTreeElement.js:
3634         (WebInspector.CallFrameTreeElement):
3635         Simplify by using SourceCodeLocation.prototype.tooltipString.
3636
3637         * UserInterface/SourceCodeLocation.js:
3638         (WebInspector.SourceCodeLocation.prototype.originalLocationString):
3639         (WebInspector.SourceCodeLocation.prototype.formattedLocationString):
3640         (WebInspector.SourceCodeLocation.prototype.displayLocationString):
3641         Add the new column style parameter. Pass it through to _locationString.
3642
3643         (WebInspector.SourceCodeLocation.prototype.tooltipString):
3644         Always show full URLs and columns in tooltips.
3645
3646         (WebInspector.SourceCodeLocation.prototype._locationString):
3647         Respect the column style when including column numbers.
3648
3649         (WebInspector.SourceCodeLocation.prototype.updateDisplayString):
3650         (WebInspector.SourceCodeLocation.prototype.mouseOverOrMove):
3651         (WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationString):
3652         Update the default value to&nb