b225079013eb58b3c37c060f7ecb47def5c7c468
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2014-10-04  Brian J. Burg  <burg@cs.washington.edu>
2
3         Unreviewed, rolling out r174319.
4
5         Causes assertions in fast/profiler tests. Needs nontrivial
6         investigation, will take offline.
7
8         Reverted changeset:
9
10         "Web Inspector: timelines should not count time elapsed while
11         paused in the debugger"
12         https://bugs.webkit.org/show_bug.cgi?id=136351
13         http://trac.webkit.org/changeset/174319
14
15 2014-10-04  Brian J. Burg  <burg@cs.washington.edu>
16
17         Web Inspector: timelines should not count time elapsed while paused in the debugger
18         https://bugs.webkit.org/show_bug.cgi?id=136351
19
20         Reviewed by Timothy Hatcher.
21
22         Don't update the timeline's current time when the debugger is paused.
23
24         Start and end times for timeline records are now in seconds elapsed since timeline
25         recording started, rather than milliseconds since the epoch. Add a workaround to
26         preserve compatibility with old backends.
27
28         * UserInterface/Controllers/TimelineManager.js:
29         (WebInspector.TimelineManager.prototype.capturingStarted):
30         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
31         (WebInspector.TimelineManager.prototype.eventRecorded):
32         * UserInterface/Views/TimelineContentView.js:
33         (WebInspector.TimelineContentView.prototype._debuggerPaused):
34         (WebInspector.TimelineContentView.prototype._debuggerResumed):
35
36 2014-10-03  Saam Barati  <saambarati1@gmail.com>
37
38         Web Inspector: Move the computation that results in UI strings from JSC to the Web Inspector
39         https://bugs.webkit.org/show_bug.cgi?id=137295
40
41         Reviewed by Timothy Hatcher.
42
43         The inspector now computes a set of properties that was previously 
44         computed inside JSC. 
45
46         This patch also addresses the weird experience of the 
47         type of an expression claiming to be both a Number and 
48         an Integer. This could be a bit confusing because Number 
49         is supposed to represent Double|Integer and the previous
50         UI implied that Number was equivalent to Double. The new UI only 
51         ever shows either the type of Number or Integer when showing
52         the type information of an expression. It never shows both Number
53         and Integer simultaneously to describe a single expression.
54
55         * UserInterface/Models/TypeSet.js:
56         (WebInspector.TypeSet):
57         (WebInspector.TypeSet.prototype.isContainedIn):
58         (WebInspector.TypeSet.prototype.get primitiveTypeNames):
59         * UserInterface/Views/TypePropertiesSection.js:
60         (WebInspector.TypePropertiesSection):
61         (WebInspector.TypePropertiesSection.prototype.onpopulate):
62         * UserInterface/Views/TypeTokenView.js:
63         (WebInspector.TypeTokenView):
64         (WebInspector.TypeTokenView.prototype.update):
65         (WebInspector.TypeTokenView.prototype._shouldShowPopover):
66         (WebInspector.TypeTokenView.prototype._displayTypeName):
67
68 2014-10-02  Joseph Pecoraro  <pecoraro@apple.com>
69
70         Web Inspector: Cannot add a new CSS Rule to elements with 3 or more class names
71         https://bugs.webkit.org/show_bug.cgi?id=137375
72
73         Reviewed by Timothy Hatcher.
74
75         Correctly merge all class names with dots instead of just the first two.
76
77         * UserInterface/Models/DOMNode.js:
78
79 2014-10-02  Mark Lam  <mark.lam@apple.com>
80
81         Fixed the Inspector to be able to properly distinguish between scope types.
82         <https://webkit.org/b/137279>
83
84         Reviewed by Geoffrey Garen and Joseph Pecoraro.
85
86         * Localizations/en.lproj/localizedStrings.js:
87         * UserInterface/Controllers/DebuggerManager.js:
88         * UserInterface/Models/ScopeChainNode.js:
89         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
90         - Added handling of the FunctionNameScope case.
91
92 2014-10-02  Andres Gomez  <agomez@igalia.com>
93
94         Web Inspector: [GTK] Missing icons and enhancing the proportion and visibility of some icons
95         https://bugs.webkit.org/show_bug.cgi?id=137248
96
97         Reviewed by Carlos Garcia Campos.
98
99         Add more free icons and removed some unused ones for the Web
100         Inspector in GTK+.
101         Also, enhanced the visibility and/or proportion of several of the
102         icons.
103
104         * UserInterface/Images/gtk/AUTHORS:
105         * UserInterface/Images/gtk/COPYING:
106         * UserInterface/Images/gtk/Checkers.svg: Added.
107         * UserInterface/Images/gtk/Circle.svg: Added.
108         * UserInterface/Images/gtk/CloseLarge.svg: Added.
109         * UserInterface/Images/gtk/CloseTimeline.png: Removed.
110         * UserInterface/Images/gtk/CloseTimeline@2x.png: Removed.
111         * UserInterface/Images/gtk/Crosshair.svg:
112         * UserInterface/Images/gtk/DOMCharacterData.svg:
113         * UserInterface/Images/gtk/DOMComment.svg:
114         * UserInterface/Images/gtk/DOMDocument.svg:
115         * UserInterface/Images/gtk/DOMDocumentType.svg:
116         * UserInterface/Images/gtk/DOMElement.svg:
117         * UserInterface/Images/gtk/DOMNode.svg:
118         * UserInterface/Images/gtk/DOMTextNode.svg:
119         * UserInterface/Images/gtk/DOMTree.svg:
120         * UserInterface/Images/gtk/EventListener.svg:
121         * UserInterface/Images/gtk/Exception.svg:
122         * UserInterface/Images/gtk/Function.svg:
123         * UserInterface/Images/gtk/GradientStop.png: Added.
124         * UserInterface/Images/gtk/GradientStop@2x.png: Added.
125         * UserInterface/Images/gtk/GradientStopSelected.png: Added.
126         * UserInterface/Images/gtk/GradientStopSelected@2x.png: Added.
127         * UserInterface/Images/gtk/Issues.svg:
128         * UserInterface/Images/gtk/IssuesEnabled.svg:
129         * UserInterface/Images/gtk/LessColumns.svg: Removed.
130         * UserInterface/Images/gtk/Logs.svg:
131         * UserInterface/Images/gtk/Memory.svg: Removed.
132         * UserInterface/Images/gtk/MoreColumns.svg: Removed.
133         * UserInterface/Images/gtk/Native.svg:
134         * UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
135         * UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
136         * UserInterface/Images/gtk/NavigationItemBug.svg:
137         * UserInterface/Images/gtk/NavigationItemFile.svg:
138         * UserInterface/Images/gtk/NavigationItemLayers.svg:
139         * UserInterface/Images/gtk/NavigationItemMagnifyingGlass.svg: Removed.
140         * UserInterface/Images/gtk/NavigationItemProbes.pdf: Added.
141         * UserInterface/Images/gtk/NavigationItemStopwatch.svg:
142         * UserInterface/Images/gtk/NavigationItemTypes.svg: Added.
143         * UserInterface/Images/gtk/PaintFlashing.svg: Added.
144         * UserInterface/Images/gtk/PseudoElement.svg:
145         * UserInterface/Images/gtk/Record.svg: Added.
146         * UserInterface/Images/gtk/Recording.png: Removed.
147         * UserInterface/Images/gtk/Recording@2x.png: Removed.
148         * UserInterface/Images/gtk/RecordingHovered.png: Removed.
149         * UserInterface/Images/gtk/RecordingHovered@2x.png: Removed.
150         * UserInterface/Images/gtk/RecordingStopped.png: Removed.
151         * UserInterface/Images/gtk/RecordingStopped@2x.png: Removed.
152         * UserInterface/Images/gtk/Reflection.svg:
153         * UserInterface/Images/gtk/ReplayPauseButton.svg: Added.
154         * UserInterface/Images/gtk/ReplayPlayButton.svg: Added.
155         * UserInterface/Images/gtk/ReplayRecordingButton.svg: Added.
156         * UserInterface/Images/gtk/Request.svg:
157         * UserInterface/Images/gtk/Resources.svg:
158         * UserInterface/Images/gtk/Response.svg:
159         * UserInterface/Images/gtk/ResultLine.svg:
160         * UserInterface/Images/gtk/SourceCode.svg:
161         * UserInterface/Images/gtk/Stop.svg: Added.
162         * UserInterface/Images/gtk/StyleRuleAuthor.svg:
163         * UserInterface/Images/gtk/StyleRuleInherited.svg:
164         * UserInterface/Images/gtk/StyleRuleInheritedElement.svg:
165         * UserInterface/Images/gtk/StyleRuleInspector.svg:
166         * UserInterface/Images/gtk/StyleRuleUser.svg:
167         * UserInterface/Images/gtk/StyleRuleUserAgent.svg:
168         * UserInterface/Images/gtk/Time.svg:
169         * UserInterface/Images/gtk/TimelineRecordAnimation.svg:
170         * UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Added.
171         * UserInterface/Images/gtk/TimelineRecordEvent.svg:
172         * UserInterface/Images/gtk/TimelineRecordLayout.svg:
173         * UserInterface/Images/gtk/TimelineRecordPaint.svg:
174         * UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Added.
175         * UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
176         * UserInterface/Images/gtk/TimelineRecordStyle.svg:
177         * UserInterface/Images/gtk/TimelineRecordTimer.svg:
178         * UserInterface/Images/gtk/Weight.svg:
179
180 2014-09-27  Brian J. Burg  <burg@cs.washington.edu>
181
182         Web Replay: Playback position updates should be sent before the next event loop input is dispatched
183         https://bugs.webkit.org/show_bug.cgi?id=137162
184
185         Reviewed by Timothy Hatcher.
186
187         Pausing playback from the UI was broken because of a typo. Fix this, and rename
188         stopPlayback to cancelPlayback.
189
190         * UserInterface/Controllers/ReplayManager.js:
191         (WebInspector.ReplayManager.prototype.switchSession.if):
192
193 2014-09-26  Joseph Pecoraro  <pecoraro@apple.com>
194
195         Web Inspector: Automatic Inspection should continue once all breakpoints are loaded
196         https://bugs.webkit.org/show_bug.cgi?id=137038
197
198         Reviewed by Timothy Hatcher.
199
200         * UserInterface/Base/Main.js:
201         Send the initialized message after we have sent all other setup messages,
202         such as enabling features and setting breakpoints.
203
204 2014-09-26  Saam Barati  <saambarati1@gmail.com>
205
206         Web Inspector: Type Token View shows type information on hover when it shouldn't
207         https://bugs.webkit.org/show_bug.cgi?id=137152
208
209         Reviewed by Brian J. Burg.
210
211         TypeTokenView should only show type information when there is 
212         more than one primitive type or more than zero objects types. 
213         This fixes a bug in checking the length of object types.
214
215         * UserInterface/Views/TypeTokenView.js:
216         (WebInspector.TypeTokenView.prototype._shouldShowPopover):
217
218 2014-09-25  Timothy Hatcher  <timothy@apple.com>
219
220         Web Inspector: Show type info icon is blurry
221         https://bugs.webkit.org/show_bug.cgi?id=137125
222
223         Reviewed by Darin Adler.
224
225         * UserInterface/Images/NavigationItemTypes.svg:
226         * UserInterface/Views/ScriptContentView.js:
227         (WebInspector.ScriptContentView):
228         * UserInterface/Views/TextContentView.js:
229         (WebInspector.TextContentView):
230         * UserInterface/Views/TextResourceContentView.js:
231         (WebInspector.TextResourceContentView):
232
233 2014-09-25  Saam Barati  <saambarati1@gmail.com>
234
235         Web Inspector: console.assert(bitString) TypeSet:50 
236         https://bugs.webkit.org/show_bug.cgi?id=137051
237
238         Reviewed by Joseph Pecoraro.
239
240         This fixes TypeSet's isContainedIn method by ensuring that 
241         the type bit string isn't zero because the test would trivially 
242         pass if the bit string is zero.
243
244         * UserInterface/Models/TypeSet.js:
245         (WebInspector.TypeSet.prototype.isContainedIn):
246
247 2014-09-25  Brian J. Burg  <burg@cs.washington.edu>
248
249         Web Inspector: FunctionCall timeline records omit profile data if the debugger has paused
250         https://bugs.webkit.org/show_bug.cgi?id=136805
251
252         Reviewed by Timothy Hatcher.
253
254         * UserInterface/Test.html: Add missing include for ScopeChainNode.js.
255
256 2014-09-25  Brian J. Burg  <burg@cs.washington.edu>
257
258         Web Inspector: sort probe details sidebar sections by source code location string
259         https://bugs.webkit.org/show_bug.cgi?id=137080
260
261         Reviewed by Timothy Hatcher.
262
263         Probe sections should display in the same order as associated breakpoint tree elements.
264
265         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
266         (WebInspector.ProbeDetailsSidebarPanel.prototype.inspect.inspectedProbeSets):
267         (WebInspector.ProbeDetailsSidebarPanel.prototype.inspect):
268
269 2014-09-25  Andres Gomez  <agomez@igalia.com>
270
271         Unreviewed. Add more free icons for the Web Inspector in GTK+.
272
273         * UserInterface/Images/gtk/AUTHORS:
274         * UserInterface/Images/gtk/ApplicationCacheManifest.png: Added.
275         * UserInterface/Images/gtk/ApplicationCacheManifest@2x.png: Added.
276         * UserInterface/Images/gtk/COPYING:
277         * UserInterface/Images/gtk/COPYING_LGPL2: Added.
278         * UserInterface/Images/gtk/Cookie.png: Added.
279         * UserInterface/Images/gtk/Cookie@2x.png: Added.
280         * UserInterface/Images/gtk/HoverMenuButton.png: Added.
281         * UserInterface/Images/gtk/HoverMenuButton@2x.png: Added.
282         * UserInterface/Images/gtk/InstructionPointer.png: Added.
283         * UserInterface/Images/gtk/InstructionPointer@2x.png: Added.
284         * UserInterface/Images/gtk/Log.png: Added.
285         * UserInterface/Images/gtk/Log@2x.png: Added.
286         * UserInterface/Images/gtk/Profile.png: Added.
287         * UserInterface/Images/gtk/Profile@2x.png: Added.
288         * UserInterface/Images/gtk/Recording.png: Added.
289         * UserInterface/Images/gtk/Recording@2x.png: Added.
290         * UserInterface/Images/gtk/RecordingHovered.png: Added.
291         * UserInterface/Images/gtk/RecordingHovered@2x.png: Added.
292         * UserInterface/Images/gtk/RecordingStopped.png: Added.
293         * UserInterface/Images/gtk/RecordingStopped@2x.png: Added.
294         * UserInterface/Images/gtk/Script.png: Added.
295         * UserInterface/Images/gtk/Script@2x.png: Added.
296         * UserInterface/Images/gtk/ScriptLarge.png: Added.
297         * UserInterface/Images/gtk/ScriptLarge@2x.png: Added.
298         * UserInterface/Images/gtk/SliderThumb.png: Added.
299         * UserInterface/Images/gtk/SliderThumb@2x.png: Added.
300         * UserInterface/Images/gtk/SliderThumbPressed.png: Added.
301         * UserInterface/Images/gtk/SliderThumbPressed@2x.png: Added.
302         * UserInterface/Images/gtk/Stopwatch.png: Added.
303         * UserInterface/Images/gtk/Stopwatch@2x.png: Added.
304
305 2014-09-21  Timothy Hatcher  <timothy@apple.com>
306
307         Make the Web Inspector use a separate web process.
308
309         https://bugs.webkit.org/show_bug.cgi?id=135120
310
311         Reviewed by Anders Carlsson.
312
313         * Localizations/en.lproj/localizedStrings.js: Updated.
314
315         * UserInterface/Base/Main.js:
316         (WebInspector.loaded):
317         (WebInspector.contentLoaded):
318         Move InspectorFrontendHost.loaded to later in the load.
319         Calling it early just shows the window before we have
320         a user interface to show.
321
322         * UserInterface/Base/Test.js:
323         (WebInspector.loaded):
324         (WebInspector.contentLoaded):
325         Match the changes in Main.js.
326
327         * UserInterface/Protocol/InspectorFrontendAPI.js:
328         (InspectorFrontendAPI.savedURL): Change comment.
329         (InspectorFrontendAPI.appendedToURL): Change comment.
330         (InspectorFrontendAPI.dispatch): Add an assert and early
331         return to be safe from unknown commands.
332         (InspectorFrontendAPI.loadCompleted): Delete _pendingCommands,
333         no need to keep an empty array around a one time use.
334
335 2014-09-24  Andres Gomez  <agomez@igalia.com>
336
337         Unreviewed. Add more free icons for the Web Inspector in GTK+
338
339         * UserInterface/Images/gtk/AUTHORS:
340         * UserInterface/Images/gtk/ApplicationCache.png: Added.
341         * UserInterface/Images/gtk/ApplicationCache@2x.png: Added.
342         * UserInterface/Images/gtk/BottomUpTree.svg: Added.
343         * UserInterface/Images/gtk/Breakpoint.png: Added.
344         * UserInterface/Images/gtk/Breakpoint@2x.png: Added.
345         * UserInterface/Images/gtk/BreakpointButton.svg:
346         * UserInterface/Images/gtk/BreakpointInactive.png: Added.
347         * UserInterface/Images/gtk/BreakpointInactive@2x.png: Added.
348         * UserInterface/Images/gtk/BreakpointInactiveButton.svg:
349         * UserInterface/Images/gtk/COPYING:
350         * UserInterface/Images/gtk/COPYING_CCBYSA3: Copied from Source/WebInspectorUI/UserInterface/Images/gtk/COPYING.
351         * UserInterface/Images/gtk/ClippingCSS.png: Added.
352         * UserInterface/Images/gtk/ClippingCSS@2x.png: Added.
353         * UserInterface/Images/gtk/ClippingGeneric.png: Added.
354         * UserInterface/Images/gtk/ClippingGeneric@2x.png: Added.
355         * UserInterface/Images/gtk/ClippingJS.png: Added.
356         * UserInterface/Images/gtk/ClippingJS@2x.png: Added.
357         * UserInterface/Images/gtk/CloseTimeline.png: Added.
358         * UserInterface/Images/gtk/CloseTimeline@2x.png: Added.
359         * UserInterface/Images/gtk/ColorIcon.png: Added.
360         * UserInterface/Images/gtk/ColorIcon@2x.png: Added.
361         * UserInterface/Images/gtk/Colors.png: Added.
362         * UserInterface/Images/gtk/Colors@2x.png: Added.
363         * UserInterface/Images/gtk/ColorsLarge.png: Added.
364         * UserInterface/Images/gtk/ColorsLarge@2x.png: Added.
365         * UserInterface/Images/gtk/Database.png: Added.
366         * UserInterface/Images/gtk/Database@2x.png: Added.
367         * UserInterface/Images/gtk/DatabaseTable.png: Added.
368         * UserInterface/Images/gtk/DatabaseTable@2x.png: Added.
369         * UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Added.
370         * UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Added.
371         * UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Added.
372         * UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Added.
373         * UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Added.
374         * UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Added.
375         * UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Added.
376         * UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Added.
377         * UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Added.
378         * UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Added.
379         * UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Added.
380         * UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Added.
381         * UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Added.
382         * UserInterface/Images/gtk/Issues.svg: Added.
383         * UserInterface/Images/gtk/IssuesEnabled.svg: Added.
384         * UserInterface/Images/gtk/LayerBorders.svg: Added.
385         * UserInterface/Images/gtk/LessColumns.svg: Added.
386         * UserInterface/Images/gtk/LocalStorage.png: Added.
387         * UserInterface/Images/gtk/LocalStorage@2x.png: Added.
388         * UserInterface/Images/gtk/Locked.svg: Added.
389         * UserInterface/Images/gtk/Logs.svg: Added.
390         * UserInterface/Images/gtk/Memory.svg: Added.
391         * UserInterface/Images/gtk/MoreColumns.svg: Added.
392         * UserInterface/Images/gtk/Native.svg: Added.
393         * UserInterface/Images/gtk/NavigationItemAngleBrackets.svg: Added.
394         * UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg: Added.
395         * UserInterface/Images/gtk/NavigationItemBug.svg: Added.
396         * UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Added.
397         * UserInterface/Images/gtk/NavigationItemFile.svg: Added.
398         * UserInterface/Images/gtk/NavigationItemLayers.svg: Added.
399         * UserInterface/Images/gtk/NavigationItemLog.svg: Added.
400         * UserInterface/Images/gtk/NavigationItemMagnifyingGlass.svg: Added.
401         * UserInterface/Images/gtk/NavigationItemStopwatch.svg: Added.
402         * UserInterface/Images/gtk/NavigationItemStorage.svg: Added.
403         * UserInterface/Images/gtk/NavigationItemTrash.svg: Added.
404         * UserInterface/Images/gtk/NavigationItemVariable.svg: Added.
405         * UserInterface/Images/gtk/Network.png: Added.
406         * UserInterface/Images/gtk/Network@2x.png: Added.
407         * UserInterface/Images/gtk/NetworkLarge.png: Added.
408         * UserInterface/Images/gtk/NetworkLarge@2x.png: Added.
409         * UserInterface/Images/gtk/Pause.svg: Added.
410         * UserInterface/Images/gtk/Percent.svg: Added.
411         * UserInterface/Images/gtk/Plus.svg: Added.
412         * UserInterface/Images/gtk/PseudoElement.svg: Added.
413         * UserInterface/Images/gtk/Reflection.svg: Added.
414         * UserInterface/Images/gtk/Reload.svg: Added.
415         * UserInterface/Images/gtk/Request.svg: Added.
416         * UserInterface/Images/gtk/Response.svg: Added.
417         * UserInterface/Images/gtk/ResultLine.svg: Added.
418         * UserInterface/Images/gtk/Resume.svg: Added.
419         * UserInterface/Images/gtk/SessionStorage.png: Added.
420         * UserInterface/Images/gtk/SessionStorage@2x.png: Added.
421         * UserInterface/Images/gtk/ShadowDOM.svg: Added.
422         * UserInterface/Images/gtk/SourceCode.svg: Added.
423         * UserInterface/Images/gtk/SplitToggleDown.svg: Added.
424         * UserInterface/Images/gtk/SplitToggleUp.svg: Added.
425         * UserInterface/Images/gtk/StepInto.svg: Added.
426         * UserInterface/Images/gtk/StepOut.svg: Added.
427         * UserInterface/Images/gtk/StepOver.svg: Added.
428         * UserInterface/Images/gtk/StyleRuleAuthor.svg: Added.
429         * UserInterface/Images/gtk/StyleRuleInherited.svg: Added.
430         * UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Added.
431         * UserInterface/Images/gtk/StyleRuleInspector.svg: Added.
432         * UserInterface/Images/gtk/StyleRuleUser.svg: Added.
433         * UserInterface/Images/gtk/StyleRuleUserAgent.svg: Added.
434         * UserInterface/Images/gtk/Time.svg: Added.
435         * UserInterface/Images/gtk/TimelineRecordAnimation.svg: Added.
436         * UserInterface/Images/gtk/TimelineRecordEvent.svg: Added.
437         * UserInterface/Images/gtk/TimelineRecordLayout.svg: Added.
438         * UserInterface/Images/gtk/TimelineRecordPaint.svg: Added.
439         * UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Added.
440         * UserInterface/Images/gtk/TimelineRecordStyle.svg: Added.
441         * UserInterface/Images/gtk/TimelineRecordTimer.svg: Added.
442         * UserInterface/Images/gtk/Undock.svg: Added.
443         * UserInterface/Images/gtk/UserInputPrompt.svg: Added.
444         * UserInterface/Images/gtk/UserInputPromptPrevious.svg: Added.
445         * UserInterface/Images/gtk/UserInputResult.svg: Added.
446         * UserInterface/Images/gtk/Warning.svg: Added.
447         * UserInterface/Images/gtk/Weight.svg: Added.
448
449 2014-09-23  Timothy Hatcher  <timothy@apple.com>
450
451         Web Inspector: Remove UserInterface/Images/gtk from Apple builds
452         https://bugs.webkit.org/show_bug.cgi?id=136955
453
454         Reviewed by Joseph Pecoraro.
455
456         * Scripts/copy-user-interface-resources.pl:
457         Remove Images/Legacy and Images/gtk on Mac and Windows builds by looking
458         at the MAC_OS_X_VERSION_MAJOR and OFFICIAL_BUILD environment vars.
459
460 2014-09-21  Saam Barati  <saambarati1@gmail.com>
461
462         Web Inspector: fix TypeSet hierarchy in TypeTokenView
463         https://bugs.webkit.org/show_bug.cgi?id=136982
464
465         Reviewed by Joseph Pecoraro.
466
467         The protocol object representation of TypeSet was being computed 
468         incorrectly in JSC::TypeSet. This patch fixes that problem
469         and also asserts that the type information that the Web Inspector
470         receives is not empty.
471
472         * UserInterface/Models/TypeSet.js:
473         (WebInspector.TypeSet):
474         * UserInterface/Views/TypeTokenView.js:
475         (WebInspector.TypeTokenView.prototype._displayTypeName):
476
477 2014-09-21  Saam Barati  <saambarati1@gmail.com>
478
479         Web Inspector: unlocalized 'many' string in type profiler inline bubble
480         https://bugs.webkit.org/show_bug.cgi?id=136980
481
482         Reviewed by Timothy Hatcher.
483
484         Generate the localizable string for the type profiler's "many" inline bubble.
485
486         * Localizations/en.lproj/localizedStrings.js:
487         * UserInterface/Views/TypeTokenView.js:
488
489 2014-09-20  Joseph Pecoraro  <pecoraro@apple.com>
490
491         Web Inspector: Option+Click on CSS url(...) should jump to resource view
492         https://bugs.webkit.org/show_bug.cgi?id=136965
493
494         Reviewed by Timothy Hatcher.
495
496         * UserInterface/Views/CodeMirrorAdditions.js:
497         When parsing CSS url(...) tokens, the contents of url(...)
498         are a "string" type, not "atom".
499
500 2014-09-19  Daniel Bates  <dabates@apple.com>
501
502         Always assume internal SDK when building configuration Production
503         https://bugs.webkit.org/show_bug.cgi?id=136925
504         <rdar://problem/18362399>
505
506         Reviewed by Dan Bernstein.
507
508         * Configurations/DebugRelease.xcconfig: Also move #include of HaveInternalSDK.xcconfig from DebugRelease.xcconfig
509         to Base.xcconfig so as to be consistent with the format of other Base.xcconfig/DebugRelease.xcconfig files
510         (e.g. Source/WebCore/Configurations/Base.xcconfig and Source/WebCore/Configurations/DebugRelease.xcconfig).
511
512 2014-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>
513
514         Webkitgtk 2.5.3: tarball contains APPLE LICENSE file - stating not distributable
515         https://bugs.webkit.org/show_bug.cgi?id=136632
516
517         Reviewed by Gustavo Noronha Silva.
518
519         Add free icons for the GTK port. These icons are from the GNOME
520         project, some of them adapted by Andres Gomez for the inspector.
521         This is only a subset of the icons, since we still don't have a
522         free replacement for all of them, but at least it makes the
523         inspector kind of usable.
524
525         * UserInterface/Images/gtk/AUTHORS: Added.
526         * UserInterface/Images/gtk/BackArrow.svg: Added.
527         * UserInterface/Images/gtk/BreakpointActionAdd.svg: Added.
528         * UserInterface/Images/gtk/BreakpointActionRemove.svg: Added.
529         * UserInterface/Images/gtk/BreakpointButton.svg: Added.
530         * UserInterface/Images/gtk/BreakpointInactiveButton.svg: Added.
531         * UserInterface/Images/gtk/Breakpoints.svg: Added.
532         * UserInterface/Images/gtk/COPYING: Added.
533         * UserInterface/Images/gtk/Close.svg: Added.
534         * UserInterface/Images/gtk/CloseWhite.svg: Added.
535         * UserInterface/Images/gtk/ContentFlow.svg: Added.
536         * UserInterface/Images/gtk/Crosshair.svg: Added.
537         * UserInterface/Images/gtk/DOMCharacterData.svg: Added.
538         * UserInterface/Images/gtk/DOMComment.svg: Added.
539         * UserInterface/Images/gtk/DOMDocument.svg: Added.
540         * UserInterface/Images/gtk/DOMDocumentType.svg: Added.
541         * UserInterface/Images/gtk/DOMElement.svg: Added.
542         * UserInterface/Images/gtk/DOMNode.svg: Added.
543         * UserInterface/Images/gtk/DOMTextNode.svg: Added.
544         * UserInterface/Images/gtk/DOMTree.svg: Added.
545         * UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Added.
546         * UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Added.
547         * UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Added.
548         * UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Added.
549         * UserInterface/Images/gtk/DockBottom.svg: Added.
550         * UserInterface/Images/gtk/DockRight.svg: Added.
551         * UserInterface/Images/gtk/DocumentCSS.png: Added.
552         * UserInterface/Images/gtk/DocumentCSS@2x.png: Added.
553         * UserInterface/Images/gtk/DocumentFont.png: Added.
554         * UserInterface/Images/gtk/DocumentFont@2x.png: Added.
555         * UserInterface/Images/gtk/DocumentGeneric.png: Added.
556         * UserInterface/Images/gtk/DocumentGeneric@2x.png: Added.
557         * UserInterface/Images/gtk/DocumentImage.png: Added.
558         * UserInterface/Images/gtk/DocumentImage@2x.png: Added.
559         * UserInterface/Images/gtk/DocumentJS.png: Added.
560         * UserInterface/Images/gtk/DocumentJS@2x.png: Added.
561         * UserInterface/Images/gtk/DocumentMarkup.png: Added.
562         * UserInterface/Images/gtk/DocumentMarkup@2x.png: Added.
563         * UserInterface/Images/gtk/DownloadArrow.svg: Added.
564         * UserInterface/Images/gtk/Error.svg: Added.
565         * UserInterface/Images/gtk/Errors.svg: Added.
566         * UserInterface/Images/gtk/ErrorsEnabled.svg: Added.
567         * UserInterface/Images/gtk/EventListener.svg: Added.
568         * UserInterface/Images/gtk/Exception.svg: Added.
569         * UserInterface/Images/gtk/FilterFieldGlyph.svg: Added.
570         * UserInterface/Images/gtk/FolderGeneric.png: Added.
571         * UserInterface/Images/gtk/FolderGeneric@2x.png: Added.
572         * UserInterface/Images/gtk/ForwardArrow.svg: Added.
573         * UserInterface/Images/gtk/Function.svg: Added.
574         * UserInterface/Images/gtk/GoToArrow.svg: Added.
575         * UserInterface/Images/gtk/Resources.svg: Added.
576         * UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Added.
577         * UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Added.
578         * UserInterface/Images/gtk/UpDownArrows.svg: Added.
579
580 2014-09-17  Joseph Pecoraro  <pecoraro@apple.com>
581
582         Web Inspector: Remove unnecessary prefixes in WebInspectorUI CSS
583         https://bugs.webkit.org/show_bug.cgi?id=136905
584
585         Reviewed by Timothy Hatcher.
586
587         Removed vendor prefixes from justify-content and a few lingering
588         occurances with transition, box-shadow, and display.
589
590         * UserInterface/Views/BreakpointActionView.css:
591         * UserInterface/Views/BreakpointTreeElement.css:
592         * UserInterface/Views/ButtonNavigationItem.css:
593         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
594         * UserInterface/Views/ControlToolbarItem.css:
595         * UserInterface/Views/DebuggerDashboardView.css:
596         * UserInterface/Views/DefaultDashboardView.css:
597         * UserInterface/Views/FontResourceContentView.css:
598         * UserInterface/Views/ImageResourceContentView.css:
599         * UserInterface/Views/LayerTreeSidebarPanel.css:
600         * UserInterface/Views/Main.css:
601         * UserInterface/Views/NavigationBar.css:
602         * UserInterface/Views/NavigationSidebarPanel.css:
603         * UserInterface/Views/Popover.css:
604         * UserInterface/Views/ReplayDashboardView.css:
605         * UserInterface/Views/Toolbar.css:
606
607 2014-09-17  Dean Jackson  <dino@apple.com>
608
609         WebInpector can use unprefixed flexbox
610         https://bugs.webkit.org/show_bug.cgi?id=136899
611
612         Reviewed by Joseph Pecoraro.
613
614         Now the inspector UI itself can use a non-prefixed flexbox. This was
615         a basic search and replace for the following properties:
616         - align-content
617         - align-items
618         - align-self
619         - flex-basis
620         - flex-direction
621         - flex-wrap
622         - flex-grow
623         - flex-shrink
624         - flex
625         - flex-flow
626         - justify
627
628         * UserInterface/Views/ButtonToolbarItem.css:
629         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
630         * UserInterface/Views/ContentBrowser.css:
631         * UserInterface/Views/ControlToolbarItem.css:
632         * UserInterface/Views/DebuggerDashboardView.css:
633         * UserInterface/Views/DefaultDashboardView.css:
634         * UserInterface/Views/FilterBar.css:
635         * UserInterface/Views/FlexibleSpaceNavigationItem.css:
636         * UserInterface/Views/FontResourceContentView.css:
637         * UserInterface/Views/HierarchicalPathComponent.css:
638         * UserInterface/Views/ImageResourceContentView.css:
639         * UserInterface/Views/LayerTreeSidebarPanel.css:
640         * UserInterface/Views/LogContentView.css:
641         * UserInterface/Views/Main.css:
642         * UserInterface/Views/NavigationBar.css:
643         * UserInterface/Views/NavigationSidebarPanel.css:
644         * UserInterface/Views/Popover.css:
645         * UserInterface/Views/QuickConsole.css:
646         * UserInterface/Views/ReplayDashboardView.css:
647         * UserInterface/Views/ResourceSidebarPanel.css:
648         * UserInterface/Views/Toolbar.css:
649
650 2014-09-16  Dean Jackson  <dino@apple.com>
651
652         Add unprefixed flexbox display values and property names/values
653         https://bugs.webkit.org/show_bug.cgi?id=136880
654         <rdar://problem/18361137>
655
656         Reviewed by Benjamin Poulain with some extra comments by Joseph Pecoraro.
657
658         * UserInterface/Models/CSSKeywordCompletions.js: Switch to all the unprefixed
659         flex properties.
660
661 2014-09-16  Joseph Pecoraro  <pecoraro@apple.com>
662
663         Web Inspector: Add Versioned Inspector protocol JSON files for iOS 8.0
664         https://bugs.webkit.org/show_bug.cgi?id=136873
665
666         Reviewed by Timothy Hatcher.
667
668         * Scripts/update-LegacyInspectorBackendCommands.rb:
669         * UserInterface/Protocol/Legacy/8.0/InspectorJSBackendCommands.js: Added.
670         * UserInterface/Protocol/Legacy/8.0/InspectorWebBackendCommands.js: Added.
671         * Versions/InspectorJS-iOS-8.0.json: Added.
672         * Versions/InspectorWeb-iOS-8.0.json: Added.
673
674 2014-09-16  Joseph Pecoraro  <pecoraro@apple.com>
675
676         Web Inspector: Fix ESLint no-extra-bind warnings
677         https://bugs.webkit.org/show_bug.cgi?id=136659
678
679         Reviewed by Timothy Hatcher.
680
681         * .eslintrc:
682         * UserInterface/Controllers/LayerTreeManager.js:
683         (WebInspector.LayerTreeManager.prototype.layersForNode):
684
685 2014-09-15  Matt Baker  <mattbaker@apple.com>
686
687         Web Inspector: mouse drifts away from resizer when resizing docked inspector
688         https://bugs.webkit.org/show_bug.cgi?id=22263
689
690         Reviewed by Joseph Pecoraro.
691
692         Modified the docked resizer dragging logic to record the initial mouse down position relative to the
693         resizer client rectangle. Added check while dragging the resizer to ensure that the cursor is positioned
694         correctly with respect to the resize direction before updating the attached window dimension.
695
696         * UserInterface/Base/Main.js:
697         (WebInspector._dockedResizerMouseDown.dockedResizerDrag):
698
699 2014-09-11  Joseph Pecoraro  <pecoraro@apple.com>
700
701         Web Inspector: Fix assert in QuickConsole - main frame execution context path component
702         https://bugs.webkit.org/show_bug.cgi?id=136748
703
704         Reviewed by Timothy Hatcher.
705
706         This can get called for the MainFrame on page navigations.
707         In such cases we can return a better result from this method.
708
709         * UserInterface/Views/QuickConsole.js:
710         (WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
711
712 2014-09-11  Joseph Pecoraro  <pecoraro@apple.com>
713
714         Web Inspector: Hide DOM search result highlights when find banner is not showing
715         https://bugs.webkit.org/show_bug.cgi?id=136749
716
717         Reviewed by Timothy Hatcher.
718
719         Match search highlights in TextEditor by only showing the highlight
720         when the find banner is showing.
721
722         * UserInterface/Views/DOMTreeOutline.css:
723         (.showing-find-banner .dom-tree-outline .search-result):
724         (.dom-tree-outline .search-highlight): Deleted.
725
726 2014-09-11  Joseph Pecoraro  <pecoraro@apple.com>
727
728         Web Inspector: DOM Tree search highlights are not appearing
729         https://bugs.webkit.org/show_bug.cgi?id=136662
730
731         Reviewed by Timothy Hatcher.
732
733         When performing a search within the DOMTreeContentView all
734         search results should immediately highlight. When moving
735         between search results, emphasize the current with a bouncy.
736         Remember to remove the highlights when the search is changed
737         or cleared.
738
739         * UserInterface/Views/DOMTreeContentView.js:
740         (WebInspector.DOMTreeContentView.prototype.performSearch.searchResultsReady):
741         (WebInspector.DOMTreeContentView.prototype.searchCleared):
742         Shor or hide highlights when searches change.
743
744         (WebInspector.DOMTreeContentView.prototype.revealResult):
745         (WebInspector.DOMTreeContentView.prototype._revealSearchResult):
746         Emphasize the highlight when moving to a new current result.
747
748         (WebInspector.DOMTreeContentView.prototype._showSearchHighlights):
749         (WebInspector.DOMTreeContentView.prototype._hideSearchHighlights):
750         On each affected DOMTreeElement show or hide search highlights.
751
752         * UserInterface/Views/DOMTreeElement.js:
753         (WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight.animationEnded):
754         (WebInspector.DOMTreeElement.prototype.emphasizeSearchHighlight):
755         Give a brief bouncy-highlight when told to emphasize the search highlight.
756
757         (WebInspector.DOMTreeElement.prototype.updateTitle):
758         Remove unused and unnecessary style class on each row.
759
760         (WebInspector.DOMTreeElement.prototype._highlightSearchResults):
761         Update the stale code to use new function names and accessors.
762
763         * UserInterface/Views/DOMTreeOutline.css:
764         (.dom-tree-outline .search-highlight):
765         Styles for the search highlight match search highlights in the sidebar.
766
767         * UserInterface/Views/Main.css:
768         (.bouncy-highlight):
769         * UserInterface/Views/TextEditor.css:
770         Move bouncy-highlight to Main.css.
771
772 2014-09-10  Saam Barati  <saambarati1@gmail.com>
773
774         Web Inspector: Modify the type profiler runtime protocol to transfer some computation into the WebInspector
775         https://bugs.webkit.org/show_bug.cgi?id=136500
776
777         Reviewed by Joseph Pecoraro.
778
779         This patch maintains the same UI in the Web Inspector for displaying
780         type information, but now accounts for the new protocol for type profiling.
781         
782         The Inspector now has a TypeSet class that wraps the TypeDescription 
783         protocol object and creates a simple interface for asking protocol objects 
784         about their type.
785
786         * UserInterface/Controllers/TypeTokenAnnotator.js:
787         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
788         * UserInterface/Main.html:
789         * UserInterface/Models/TypeSet.js: Added.
790         (WebInspector.TypeSet):
791         (WebInspector.TypeSet.fromPayload):
792         (WebInspector.TypeSet.prototype.isContainedIn):
793         * UserInterface/Views/SourceCodeTextEditor.js:
794         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
795         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
796         * UserInterface/Views/TypePropertiesSection.js:
797         (WebInspector.TypePropertiesSection.prototype.onpopulate):
798         (WebInspector.TypePropertyTreeElement.prototype.onpopulate):
799         * UserInterface/Views/TypeTokenView.js:
800         (WebInspector.TypeTokenView.prototype.update):
801         (WebInspector.TypeTokenView.prototype._shouldShowPopover):
802         (WebInspector.TypeTokenView.prototype._displayTypeName):
803
804 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
805
806         Web Inspector: Eliminate typeof "undefined" checks
807         https://bugs.webkit.org/show_bug.cgi?id=136691
808
809         Reviewed by Alexey Proskuryakov.
810
811         * UserInterface/Base/Main.js:
812         (WebInspector.linkifyURLAsNode):
813         (WebInspector.linkifyStringAsFragment):
814         * UserInterface/Protocol/InspectorBackend.js:
815         (InspectorBackend.Command.prototype._invokeWithArguments):
816         * UserInterface/Views/DataGrid.js:
817         (WebInspector.DataGrid.prototype.get resizeMethod):
818         * UserInterface/Views/NavigationBar.js:
819         (WebInspector.NavigationBar.prototype.get minimumWidth):
820
821 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
822
823         Web Inspector: Fix obscure ESLint warnings and skip directories
824         https://bugs.webkit.org/show_bug.cgi?id=136686
825
826         Reviewed by Timothy Hatcher.
827
828         * .eslintignore: Added.
829         Skip directories we do not want ESLint to process.
830
831         * .eslintrc:
832         Add rules we've seen and sort sections.
833
834         * UserInterface/Controllers/FormatterContentBuilder.js:
835         (FormatterContentBuilder.prototype._appendIndent):
836         * UserInterface/Models/Color.js:
837         * UserInterface/Models/DOMNodeStyles.js:
838         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
839         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
840         * UserInterface/Views/DOMTreeDataGridNode.js:
841         * UserInterface/Views/DOMTreeElement.js:
842         (WebInspector.DOMTreeElement.prototype.ondelete):
843         (WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
844         (WebInspector.DOMTreeElement.prototype._distinctClosingTagElement):
845         * UserInterface/Views/EditingSupport.js:
846         (WebInspector.EditingConfig):
847         * UserInterface/Views/LayerTreeDataGridNode.js:
848         (WebInspector.LayerTreeDataGridNode.prototype._makeOutlet):
849         * UserInterface/Views/TreeOutline.js:
850         (TreeOutline.prototype.appendChild):
851         (TreeOutline.prototype.insertChild):
852         (TreeOutline.prototype.removeChildAtIndex):
853         (TreeOutline.prototype.removeChild):
854         (TreeElement.prototype.expandRecursively):
855         Fix linter issues.
856
857 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
858
859         Web Inspector: Fix ESLint consistent-return warnings
860         https://bugs.webkit.org/show_bug.cgi?id=136682
861
862         Reviewed by Timothy Hatcher.
863
864         * .eslintrc:
865         * UserInterface/Controllers/BranchManager.js:
866         (WebInspector.BranchManager.prototype.createBranch):
867         * UserInterface/Controllers/FrameResourceManager.js:
868         (WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
869         * UserInterface/Models/DOMNodeStyles.js:
870         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
871         * UserInterface/Views/BoxModelDetailsSectionRow.js:
872         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
873         * UserInterface/Views/DOMTreeElement.js:
874         (WebInspector.DOMTreeElement.prototype.showChild):
875         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
876         (WebInspector.DOMTreeElement.prototype._startEditing):
877         * UserInterface/Views/EditingSupport.js:
878         * UserInterface/Views/EventListenerSectionGroup.js:
879         (WebInspector.EventListenerSectionGroup.prototype._nodeTextOrLink):
880         * UserInterface/Views/FrameContentView.js:
881         (WebInspector.FrameContentView.prototype._showContentViewForIdentifier):
882         * UserInterface/Views/NavigationBar.js:
883         (WebInspector.NavigationBar.prototype.insertNavigationItem):
884         (WebInspector.NavigationBar.prototype.removeNavigationItem):
885         * UserInterface/Views/QuickConsole.js:
886         (WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
887         * UserInterface/Views/Sidebar.js:
888         (WebInspector.Sidebar.prototype.addSidebarPanel):
889         (WebInspector.Sidebar.prototype.removeSidebarPanel):
890         * UserInterface/Views/TextEditor.js:
891         (WebInspector.TextEditor.prototype.addStyleClassToLine):
892         (WebInspector.TextEditor.prototype.removeStyleClassFromLine):
893         (WebInspector.TextEditor.prototype.toggleStyleClassForLine):
894
895 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
896
897         Web Inspector: Fix ESLint no-undef warnings
898         https://bugs.webkit.org/show_bug.cgi?id=136660
899
900         Reviewed by Timothy Hatcher.
901
902         * UserInterface/Models/DOMSearchMatchObject.js:
903         (WebInspector.DOMSearchMatchObject.prototype._generateClassName):
904         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
905         * UserInterface/Models/Gradient.js:
906         (WebInspector.Gradient.fromString):
907         * UserInterface/Views/CodeMirrorAdditions.js:
908         * UserInterface/Views/ReplayDashboardView.js:
909         (WebInspector.ReplayDashboardView):
910
911 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
912
913         Web Inspector: Remove unused Console search highlight methods
914         https://bugs.webkit.org/show_bug.cgi?id=136661
915
916         Reviewed by Timothy Hatcher.
917
918         ESLint's no-undef warning complained about some undefined references
919         in these functions that would have thrown exceptions. Turns out this
920         code is unused, and we do highlighting in the console separately.
921
922         * UserInterface/Views/ConsoleCommand.js:
923         (WebInspector.ConsoleCommand.prototype.clearHighlight): Deleted.
924         (WebInspector.ConsoleCommand.prototype.highlightSearchResults): Deleted.
925         (WebInspector.ConsoleCommand.prototype.matchesRegex): Deleted.
926         * UserInterface/Views/ConsoleMessageImpl.js:
927         (WebInspector.ConsoleMessageImpl.prototype.clearHighlight): Deleted.
928         (WebInspector.ConsoleMessageImpl.prototype.highlightSearchResults): Deleted.
929         (WebInspector.ConsoleMessageImpl.prototype.matchesRegex): Deleted.
930
931 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
932
933         Web Inspector: Fix ESLint* no-avoidable-bind warnings
934         https://bugs.webkit.org/show_bug.cgi?id=136690
935
936         Reviewed by Timothy Hatcher.
937
938         * UserInterface/Protocol/RemoteObject.js:
939         (WebInspector.LocalJSONObject.prototype._children):
940         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
941         (WebInspector.CSSStyleDetailsSidebarPanel):
942         * UserInterface/Views/LayerTreeSidebarPanel.js:
943         (WebInspector.LayerTreeSidebarPanel.prototype._updateDataGrid):
944         * UserInterface/Views/LogContentView.js:
945         (WebInspector.LogContentView.prototype._filterMessages):
946         * UserInterface/Views/TextResourceContentView.js:
947         (WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
948
949 2014-09-09  Benjamin Poulain  <bpoulain@apple.com>
950
951         Disable the "unreachable-code" warning
952         https://bugs.webkit.org/show_bug.cgi?id=136677
953
954         Reviewed by Darin Adler.
955
956         * Configurations/Base.xcconfig:
957
958 2014-09-08  Joseph Pecoraro  <pecoraro@apple.com>
959
960         Web Inspector: Fix ESLint no-trailing-spaces warnings
961         https://bugs.webkit.org/show_bug.cgi?id=136657
962
963         Reviewed by Andy Estes.
964
965         * .eslintrc:
966         * UserInterface/Base/DOMUtilities.js:
967         * UserInterface/Base/URLUtilities.js:
968         (relativePath):
969         * UserInterface/Base/Utilities.js:
970         * UserInterface/Controllers/CodeMirrorColorEditingController.js:
971         (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
972         * UserInterface/Controllers/CodeMirrorDragToAdjustNumberController.js:
973         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
974         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
975         * UserInterface/Controllers/CodeMirrorEditingController.js:
976         (WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
977         * UserInterface/Controllers/CodeMirrorGradientEditingController.js:
978         (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
979         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
980         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
981         * UserInterface/Controllers/DragToAdjustController.js:
982         (WebInspector.DragToAdjustController.prototype.set active):
983         (WebInspector.DragToAdjustController.prototype._setDragging):
984         (WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
985         * UserInterface/External/Esprima/esprima.js:
986         * UserInterface/Models/ApplicationCacheFrame.js:
987         (WebInspector.ApplicationCacheFrame):
988         * UserInterface/Models/ApplicationCacheManifest.js:
989         (WebInspector.ApplicationCacheManifest):
990         (WebInspector.ApplicationCacheManifest.prototype.get manifestURL):
991         * UserInterface/Models/CookieStorageObject.js:
992         * UserInterface/Models/DOMSearchMatchObject.js:
993         (WebInspector.DOMSearchMatchObject.prototype.get title):
994         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
995         * UserInterface/Models/DatabaseObject.js:
996         (WebInspector.DatabaseObject.prototype.getTableNames):
997         * UserInterface/Models/DatabaseTableObject.js:
998         (WebInspector.DatabaseTableObject):
999         * UserInterface/Models/Gradient.js:
1000         (WebInspector.Gradient.fromString):
1001         (WebInspector.RadialGradient.prototype.toString):
1002         * UserInterface/Models/IssueMessage.js:
1003         (WebInspector.IssueMessage.prototype._formatTextIfNecessary):
1004         * UserInterface/Models/Resource.js:
1005         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
1006         (WebInspector.Resource.prototype.getImageSize):
1007         * UserInterface/Models/Script.js:
1008         (WebInspector.Script.prototype._makeSyntaxTree):
1009         * UserInterface/Models/SourceCodeLocation.js:
1010         (WebInspector.SourceCodeLocation.prototype.hasDifferentDisplayLocation):
1011         * UserInterface/Models/TextMarker.js:
1012         * UserInterface/Protocol/PageObserver.js:
1013         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
1014         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.set applicationCacheFrame):
1015         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.refresh):
1016         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype._networkStateUpdated):
1017         * UserInterface/Views/ApplicationCacheFrameTreeElement.js:
1018         (WebInspector.ApplicationCacheFrameTreeElement):
1019         * UserInterface/Views/ApplicationCacheManifestTreeElement.js:
1020         (WebInspector.ApplicationCacheManifestTreeElement.prototype.get name):
1021         (WebInspector.ApplicationCacheManifestTreeElement.prototype.get secondaryName):
1022         * UserInterface/Views/ButtonNavigationItem.js:
1023         (WebInspector.ButtonNavigationItem):
1024         * UserInterface/Views/ColorPicker.js:
1025         * UserInterface/Views/ColorWheel.js:
1026         (WebInspector.ColorWheel.prototype._draw):
1027         * UserInterface/Views/CompletionSuggestionsView.js:
1028         (WebInspector.CompletionSuggestionsView.prototype.show):
1029         * UserInterface/Views/ConsoleCommand.js:
1030         * UserInterface/Views/ConsolePrompt.js:
1031         * UserInterface/Views/ContentFlowTreeElement.js:
1032         * UserInterface/Views/CookieStorageTreeElement.js:
1033         (WebInspector.CookieStorageTreeElement):
1034         * UserInterface/Views/EventListenerSectionGroup.js:
1035         (WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
1036         * UserInterface/Views/GeneralTreeElementPathComponent.js:
1037         * UserInterface/Views/GoToLineDialog.js:
1038         (WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
1039         * UserInterface/Views/LayerTreeDataGridNode.js:
1040         (WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
1041         * UserInterface/Views/LayerTreeSidebarPanel.js:
1042         * UserInterface/Views/LogContentView.js:
1043         (WebInspector.LogContentView.prototype._highlightRanges):
1044         * UserInterface/Views/NavigationBar.js:
1045         (WebInspector.NavigationBar):
1046         * UserInterface/Views/NavigationItem.js:
1047         (WebInspector.NavigationItem):
1048         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1049         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
1050         * UserInterface/Views/ScopeBar.js:
1051         * UserInterface/Views/ScopeBarItem.js:
1052         (WebInspector.ScopeBarItem):
1053         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1054         (WebInspector.ScopeChainDetailsSidebarPanel):
1055         * UserInterface/Views/ScriptTimelineDataGridNode.js:
1056         (WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
1057         * UserInterface/Views/ScriptTreeElement.js:
1058         (WebInspector.ScriptTreeElement):
1059         * UserInterface/Views/SearchBar.js:
1060         * UserInterface/Views/SearchResultTreeElement.js:
1061         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
1062         * UserInterface/Views/Slider.js:
1063
1064 2014-09-09  Joseph Pecoraro  <pecoraro@apple.com>
1065
1066         Web Inspector: Fix ESLint eqeqeq warnings
1067         https://bugs.webkit.org/show_bug.cgi?id=136658
1068
1069         Reviewed by Andy Estes.
1070
1071         * UserInterface/Controllers/DOMTreeManager.js:
1072         (WebInspector.DOMTreeManager.prototype.mycallback):
1073         (WebInspector.DOMTreeManager.prototype.searchResult):
1074         * UserInterface/Models/Breakpoint.js:
1075         (WebInspector.Breakpoint.prototype.clearActions):
1076         * UserInterface/Models/DOMTree.js:
1077         (WebInspector.DOMTree.prototype._requestRootDOMNode.rootObjectAvailable):
1078         (WebInspector.DOMTree.prototype._requestRootDOMNode.rootDOMNodeAvailable):
1079         (WebInspector.DOMTree.prototype._requestRootDOMNode.dispatchCallbacks):
1080         (WebInspector.DOMTree.prototype._requestRootDOMNode):
1081         * UserInterface/Models/ProbeSet.js:
1082         (WebInspector.ProbeSet.prototype.removeProbe):
1083         * UserInterface/Models/ProbeSetDataTable.js:
1084         (WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
1085         * UserInterface/Views/CodeMirrorAdditions.js:
1086         * UserInterface/Views/CookieStorageContentView.js:
1087         (WebInspector.CookieStorageContentView.prototype._filterCookies):
1088         (WebInspector.cookieMatchesResourceURL):
1089         * UserInterface/Views/DOMStorageContentView.js:
1090         (WebInspector.DOMStorageContentView.prototype._editingCallback):
1091         * UserInterface/Views/DOMTreeElement.js:
1092         (WebInspector.DOMTreeElement):
1093         (WebInspector.DOMTreeElement.prototype._updateChildren):
1094         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
1095         (WebInspector.DOMTreeElement.prototype._textNodeEditingCommitted):
1096         * UserInterface/Views/DataGrid.js:
1097         (WebInspector.DataGrid.prototype._resizerDragging):
1098         * UserInterface/Views/DatabaseContentView.js:
1099         (WebInspector.DatabaseContentView.prototype._queryError):
1100         * UserInterface/Views/DetailsSectionSimpleRow.js:
1101         (.valueElementClicked):
1102         (WebInspector.DetailsSectionSimpleRow):
1103         * UserInterface/Views/Slider.js:
1104         (WebInspector.Slider.prototype.get _maxX):
1105         * UserInterface/Views/TreeOutline.js:
1106         (TreeElement.prototype.expand):
1107
1108 2014-09-09  Jono Wells  <jonowells@apple.com>
1109
1110         Web Inspector: Fix ESLint no-extra-semi
1111         https://bugs.webkit.org/show_bug.cgi?id=136666
1112
1113         Reviewed by Andy Estes.
1114
1115         Add explicit no-extra-semi rule to .eslintrc. Remove all unnecessary
1116         semicolons as identified by ESLint.
1117
1118         * .eslintrc:
1119         * Tools/PrettyPrinting/Formatter.js:
1120         (Formatter):
1121         * UserInterface/Controllers/Formatter.js:
1122         (Formatter):
1123         * UserInterface/Models/Resource.js:
1124         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
1125         (WebInspector.Resource.prototype.getImageSize):
1126         * UserInterface/Views/LayerTreeSidebarPanel.js:
1127         (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
1128         (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
1129         * UserInterface/Views/ObjectPropertiesSection.js:
1130         (WebInspector.ObjectPropertyTreeElement.prototype.callback):
1131         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
1132
1133 2014-09-09  Jono Wells  <jonowells@apple.com>
1134
1135         Web Inspector: Fix ESLint semi (missing semicolon)
1136         https://bugs.webkit.org/show_bug.cgi?id=136665
1137
1138         Reviewed by Andy Estes.
1139
1140         Add missing semicolons as identified by ESLint. Add explicit semi rule to .eslintrc.
1141
1142         * .eslintrc:
1143         * Tools/PrettyPrinting/FormatterContentBuilder.js:
1144         * Tools/PrettyPrinting/FormatterDebug.js:
1145         (Formatter.prototype.debug):
1146         * UserInterface/Base/DOMUtilities.js:
1147         * UserInterface/Base/EventListener.js:
1148         (WebInspector.EventListener):
1149         (WebInspector.EventListener.prototype.this._callback):
1150         (WebInspector.EventListener.prototype.connect):
1151         * UserInterface/Base/Object.js:
1152         (WebInspector.Object):
1153         (WebInspector.Object.addConstructorFunctions):
1154         (WebInspector.Event):
1155         * UserInterface/Base/URLUtilities.js:
1156         (WebInspector.displayNameForURL):
1157         (WebInspector.displayNameForHost):
1158         * UserInterface/Base/Utilities.js:
1159         (.):
1160         * UserInterface/Controllers/BranchManager.js:
1161         (WebInspector.BranchManager):
1162         * UserInterface/Controllers/CSSStyleManager.js:
1163         (WebInspector.CSSStyleManager):
1164         * UserInterface/Controllers/CodeMirrorColorEditingController.js:
1165         (WebInspector.CodeMirrorColorEditingController):
1166         * UserInterface/Controllers/CodeMirrorEditingController.js:
1167         (WebInspector.CodeMirrorEditingController):
1168         * UserInterface/Controllers/CodeMirrorGradientEditingController.js:
1169         (WebInspector.CodeMirrorGradientEditingController):
1170         (WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
1171         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
1172         * UserInterface/Controllers/FormatterContentBuilder.js:
1173         * UserInterface/Controllers/FormatterSourceMap.js:
1174         (WebInspector.FormatterSourceMap.fromBuilder):
1175         * UserInterface/Controllers/IssueManager.js:
1176         (WebInspector.IssueManager):
1177         * UserInterface/Controllers/LogManager.js:
1178         (WebInspector.LogManager):
1179         * UserInterface/Models/BreakpointAction.js:
1180         * UserInterface/Models/CSSCompletions.js:
1181         (WebInspector.CSSCompletions):
1182         (WebInspector.CSSCompletions.requestCSSNameCompletions):
1183         * UserInterface/Models/CSSKeywordCompletions.js:
1184         (WebInspector.CSSKeywordCompletions.forProperty):
1185         (WebInspector.CSSKeywordCompletions.isColorAwareProperty):
1186         * UserInterface/Models/CSSStyleSheet.js:
1187         (WebInspector.CSSStyleSheet.resetUniqueDisplayNameNumbers):
1188         * UserInterface/Models/Color.js:
1189         (WebInspector.Color):
1190         (WebInspector.Color.fromString):
1191         * UserInterface/Models/DOMNode.js:
1192         (WebInspector.DOMNode):
1193         * UserInterface/Models/DOMSearchMatchObject.js:
1194         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
1195         * UserInterface/Models/ExecutionContext.js:
1196         (WebInspector.ExecutionContext.supported):
1197         * UserInterface/Models/Gradient.js:
1198         (WebInspector.LinearGradient):
1199         (WebInspector.LinearGradient.linearGradientWithComponents):
1200         (WebInspector.RadialGradient):
1201         (WebInspector.RadialGradient.radialGradientWithComponents):
1202         * UserInterface/Models/IssueMessage.js:
1203         (WebInspector.IssueMessage):
1204         * UserInterface/Models/ReplaySessionSegment.js:
1205         (WebInspector.IncompleteSessionSegment):
1206         * UserInterface/Models/Resource.js:
1207         (WebInspector.Resource.prototype.associateWithScript):
1208         * UserInterface/Models/Script.js:
1209         (WebInspector.Script.resetUniqueDisplayNameNumbers):
1210         * UserInterface/Models/Setting.js:
1211         (WebInspector.Setting):
1212         * UserInterface/Models/SourceCodePosition.js:
1213         (WebInspector.SourceCodePosition):
1214         * UserInterface/Models/SourceMap.js:
1215         (WebInspector.SourceMap):
1216         (WebInspector.SourceMap.StringCharIterator):
1217         * UserInterface/Models/TextMarker.js:
1218         (WebInspector.TextMarker):
1219         * UserInterface/Models/TextRange.js:
1220         (WebInspector.TextRange):
1221         * UserInterface/Protocol/InspectorFrontendHostStub.js:
1222         (.WebInspector.InspectorFrontendHostStub):
1223         * UserInterface/Protocol/MessageDispatcher.js:
1224         (WebInspector.dispatchNextQueuedMessageFromBackend):
1225         (WebInspector.dispatchMessageFromBackend):
1226         * UserInterface/Protocol/RemoteObject.js:
1227         (WebInspector.RemoteObject):
1228         (WebInspector.RemoteObject.fromPrimitiveValue):
1229         (WebInspector.RemoteObject.fromLocalObject):
1230         (WebInspector.RemoteObject.resolveNode):
1231         (WebInspector.RemoteObject.fromPayload):
1232         (WebInspector.RemoteObject.type):
1233         (WebInspector.RemoteObjectProperty):
1234         (WebInspector.RemoteObjectProperty.fromPrimitiveValue):
1235         (WebInspector.LocalJSONObject):
1236         * UserInterface/Protocol/ReplayObserver.js:
1237         (WebInspector.ReplayPosition.fromProtocol):
1238         * UserInterface/Views/BreakpointActionView.js:
1239         (WebInspector.BreakpointActionView.displayStringForType):
1240         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1241         (WebInspector.CSSStyleDeclarationTextEditor.prototype.if):
1242         * UserInterface/Views/ClusterContentView.js:
1243         (WebInspector.ClusterContentView.prototype.goBack):
1244         (WebInspector.ClusterContentView.prototype.goForward):
1245         * UserInterface/Views/CodeMirrorAdditions.js:
1246         * UserInterface/Views/ColorWheel.js:
1247         (WebInspector.ColorWheel):
1248         * UserInterface/Views/ConsoleMessage.js:
1249         (WebInspector.ConsoleMessage):
1250         (WebInspector.ConsoleMessage.create):
1251         * UserInterface/Views/ConsoleMessageImpl.js:
1252         (WebInspector.ConsoleMessageImpl):
1253         * UserInterface/Views/ContextMenu.js:
1254         (WebInspector.ContextMenuItem):
1255         (WebInspector.ContextSubMenuItem):
1256         (WebInspector.ContextMenu):
1257         (WebInspector.ContextMenu.Provider):
1258         (WebInspector.ContextMenu.registerProvider):
1259         (WebInspector.contextMenuItemSelected):
1260         (WebInspector.contextMenuCleared):
1261         * UserInterface/Views/DOMTreeElement.js:
1262         (WebInspector.DOMTreeElement):
1263         * UserInterface/Views/DOMTreeOutline.js:
1264         (WebInspector.DOMTreeOutline):
1265         * UserInterface/Views/DOMTreeUpdater.js:
1266         (WebInspector.DOMTreeUpdater):
1267         * UserInterface/Views/DatabaseContentView.js:
1268         (WebInspector.DatabaseContentView):
1269         * UserInterface/Views/EditingSupport.js:
1270         (WebInspector.isBeingEdited):
1271         (WebInspector.markBeingEdited):
1272         (WebInspector.isEditingAnyField):
1273         (WebInspector.isEventTargetAnEditableField):
1274         (WebInspector.EditingConfig):
1275         (WebInspector.startEditing):
1276         * UserInterface/Views/EventListenerSection.js:
1277         (WebInspector.EventListenerSection):
1278         * UserInterface/Views/EventListenerSectionGroup.js:
1279         (WebInspector.EventListenerSectionGroup):
1280         * UserInterface/Views/FindBanner.js:
1281         * UserInterface/Views/GeneralTreeElement.js:
1282         (WebInspector.GeneralTreeElement):
1283         * UserInterface/Views/GoToLineDialog.js:
1284         (WebInspector.GoToLineDialog):
1285         * UserInterface/Views/IndeterminateProgressSpinner.js:
1286         (WebInspector.IndeterminateProgressSpinner):
1287         * UserInterface/Views/LayoutTimelineDataGrid.js:
1288         (WebInspector.LayoutTimelineDataGrid):
1289         * UserInterface/Views/LogContentView.js:
1290         (WebInspector.LogContentView):
1291         * UserInterface/Views/NavigationItem.js:
1292         * UserInterface/Views/ObjectPropertiesSection.js:
1293         (WebInspector.ObjectPropertiesSection):
1294         (WebInspector.ObjectPropertiesSection.CompareProperties):
1295         (WebInspector.ObjectPropertyTreeElement):
1296         * UserInterface/Views/ProbeSetDetailsSection.js:
1297         * UserInterface/Views/PropertiesSection.js:
1298         (WebInspector.PropertiesSection):
1299         * UserInterface/Views/ResourceTreeElement.js:
1300         (WebInspector.ResourceTreeElement.compareResourceTreeElements):
1301         (WebInspector.ResourceTreeElement.compareFolderAndResourceTreeElements):
1302         * UserInterface/Views/ScriptTimelineDataGrid.js:
1303         (WebInspector.ScriptTimelineDataGrid):
1304         * UserInterface/Views/SearchResultTreeElement.js:
1305         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
1306         * UserInterface/Views/TimelineRuler.js:
1307         (WebInspector.TimelineRuler):
1308         (WebInspector.TimelineRuler.prototype.get allowsClippedLabels):
1309         (WebInspector.TimelineRuler.prototype._handleMouseUp):
1310         * UserInterface/Views/Toolbar.js:
1311         * UserInterface/Views/TreeOutline.js:
1312         (TreeOutline.prototype.appendChild):
1313         (TreeOutline.prototype.insertChild):
1314         (TreeOutline.prototype.removeChildAtIndex):
1315         (TreeOutline.prototype.removeChild):
1316         (TreeOutline.prototype.removeChildren):
1317         (TreeOutline.prototype.removeChildrenRecursive):
1318         (TreeOutline.prototype._rememberTreeElement):
1319         (TreeOutline.prototype._forgetTreeElement):
1320         (TreeOutline.prototype._forgetChildrenRecursive):
1321         (TreeOutline.prototype.getCachedTreeElement):
1322         (TreeOutline.prototype.findTreeElement):
1323         (TreeOutline.prototype._treeElementDidChange):
1324         (TreeOutline.prototype.treeElementFromPoint):
1325         (TreeOutline.prototype._treeKeyDown):
1326         (TreeOutline.prototype.expand):
1327         (TreeOutline.prototype.collapse):
1328         (TreeOutline.prototype.revealed):
1329         (TreeOutline.prototype.reveal):
1330         (TreeOutline.prototype.select):
1331         (TreeOutline.prototype.revealAndSelect):
1332         (TreeElement.prototype._attach):
1333         (TreeElement.prototype._detach):
1334         (TreeElement.treeElementMouseDown):
1335         (TreeElement.treeElementToggled):
1336         (TreeElement.treeElementDoubleClicked):
1337         (TreeElement.prototype.collapse):
1338         (TreeElement.prototype.collapseRecursively):
1339         (TreeElement.prototype.expand):
1340         (TreeElement.prototype.expandRecursively):
1341         (TreeElement.prototype.hasAncestor):
1342         (TreeElement.prototype.reveal):
1343         (TreeElement.prototype.revealed):
1344         (TreeElement.prototype.selectOnMouseDown):
1345         (TreeElement.prototype.select):
1346         (TreeElement.prototype.revealAndSelect):
1347         (TreeElement.prototype.deselect):
1348         (TreeElement.prototype.onpopulate):
1349         (TreeElement.prototype.traverseNextTreeElement):
1350         (TreeElement.prototype.traversePreviousTreeElement):
1351         (TreeElement.prototype.isEventWithinDisclosureTriangle):
1352         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
1353         (WebInspector.TreeOutlineDataGridSynchronizer):
1354
1355 2014-09-08  Joseph Pecoraro  <pecoraro@apple.com>
1356
1357         Web Inspector: Inspector frequently restores wrong view when opened (often Timelines instead of Resource)
1358         https://bugs.webkit.org/show_bug.cgi?id=135965
1359
1360         Reviewed by Timothy Hatcher.
1361
1362         There were numerous subtle race conditions in state restoration.
1363         This patch intends to fix a number of them to get what feels
1364         like sane behavior for selected sidebar state restoration.
1365
1366         1. Starting a Timeline recording no longer automatically switches to the TimelineContentView.
1367         This was making every reload switch to Timelines. If you had
1368         a resource selected (e.g. the DOM Tree) we should go back
1369         to showing the DOM tree.
1370
1371         2. Background sidebars should not reveal and select tree elements.
1372         This was making resources get selected in Timelines when reloading the page
1373         because the background Resources sidebar was restoring selection of the resource.
1374         That is an unexpected selection and breaks the experience of Timelines.
1375
1376         3. ContentView changes during page navigation / reload should not be saved, and improve Resource restoration.
1377         If a TimelineContentView was in the ContentBrowser back/forward history,
1378         a reload with a resource selected in the Resources sidebar would end up
1379         showing the Timelines sidebar. This was because when ContentViews are
1380         closed during the navigation, the ContentBrowser would fall back to the
1381         remaining TimelineContentView and switch to its only allowed sidebar
1382         (Timelines). ResourceSidebarPanel, knowing a resource was selected,
1383         would select the MainFrame intending to stay in the Resource sidebar,
1384         but the resource is okay with showing in any sidebar, so we stay on Timelines.
1385
1386         4. Resource sidebar state restoration should propertly restore selection.
1387         On reload, state restoration would know the resource to re-select in the
1388         Resources sidebar. As ResourceTreeElements are added to the sidebar
1389         they are checked against the state restoration cookie. If they match,
1390         they would select the element and delete the cookie. Unfortunately,
1391         if this was the first TreeElement child being added to a FrameTreeElement,
1392         the FrameTreeElement onpopulate would remove all children and re-add
1393         them in a unique way. Unfortunately this means the TreeElement we
1394         selected based on the cookie, immediately got thrown away and recreated,
1395         and we no longer reveal and select it. This is a special case for
1396         FrameTreeElements which use the onpopulate SPI. So, instead of starting
1397         processing the new element queue, if this is the first time just trigger
1398         the onpopulate and elements are made just once.
1399
1400         5. Show Error Console triggering early, could have unexpected sidebar behavior.
1401         Opening Web Inspector directly to the console can run before
1402         WebInspector.contentLoaded (DOMContentLoaded). So in that case
1403         WebInspector.showFullHeightConsole was not handling if the contentBrowser
1404         had no content view yet, and the sidebar might be-reopened later on
1405         in contentLoaded based on the setting value.
1406
1407         6. Improve automatic resource selection for sidebars with multiple tree outlines.
1408         Selecting a call frame tree element was unexpectedly changing the
1409         selection to a Resource where the breakpoint was set. This was
1410         because we were only looking at one of potentially many content
1411         tree outlines in the sidebar to see if there was a user action.
1412         
1413         * UserInterface/Base/Main.js:
1414         (WebInspector.contentLoaded):
1415         (WebInspector.showFullHeightConsole):
1416         (WebInspector.toggleConsoleView):
1417         (WebInspector._mainResourceDidChange):
1418         (WebInspector._provisionalLoadStarted):
1419         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
1420         (WebInspector._updateCookieForInspectorViewState):
1421         (WebInspector._contentBrowserCurrentContentViewDidChange):
1422         * UserInterface/Views/NavigationSidebarPanel.js:
1423         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
1424         * UserInterface/Views/ResourceSidebarPanel.js:
1425         (WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
1426         (WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
1427         * UserInterface/Views/TimelineSidebarPanel.js:
1428         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
1429
1430 2014-09-08  Matt Baker  <mattbaker@apple.com>
1431
1432         Web Inspector: Add layout test for lowercase CSSProperty names
1433         https://bugs.webkit.org/show_bug.cgi?id=135961
1434
1435         Reviewed by Joseph Pecoraro.
1436
1437         Modified test components to support testing CSSStyleManager and related classes:
1438         - Added required models to Test.html
1439         - Added CSSCompletions initialization to Test.js
1440         - CSSCompletions doesn't assume presence of CodeMirror.
1441
1442         * UserInterface/Base/Test.js:
1443         (WebInspector.loaded):
1444         * UserInterface/Models/CSSCompletions.js:
1445         * UserInterface/Test.html:
1446
1447 2014-09-08  Matt Baker  <mattbaker@apple.com>
1448
1449         Web Inspector: Fixes to layout test infrastructure
1450         https://bugs.webkit.org/show_bug.cgi?id=136360
1451
1452         Reviewed by Joseph Pecoraro.
1453
1454         Added missing includes to Test.html, which was breaking tests that
1455         depended on SourceCodeLocation and LazySourceCodeLocation. Also fixed
1456         bug which prevented test results from being resent after reloading the
1457         page under test.
1458
1459         * UserInterface/Base/Test.js:
1460         (InspectorTest.reloadPage):
1461         * UserInterface/Test.html:
1462
1463 2014-09-07  Timothy Hatcher  <timothy@apple.com>
1464
1465         Use a <circle> instead of a <path> in DownloadArrow.svg.
1466         https://bugs.webkit.org/show_bug.cgi?id=136608
1467
1468         Reviewed by Antoine Quint.
1469
1470         * UserInterface/Images/DownloadArrow.svg:
1471         * UserInterface/Views/TreeElementStatusButton.css:
1472         (.item > .status > .status-button > svg .filled):
1473         (body.mac-platform.legacy .item > .status > .status-button > svg .filled):
1474         (:focus .item.selected > .status > .status-button > svg .filled):
1475         (.item > .status > .status-button > svg .stroked):
1476         (body.mac-platform.legacy .item > .status > .status-button > svg .stroked):
1477         (:focus .item.selected > .status > .status-button > svg .stroked):
1478         Tweak CSS selectors to apply to other shapes, not just path.
1479
1480 2014-09-06  Darin Adler  <darin@apple.com>
1481
1482         Make updates suggested by new version of Xcode
1483         https://bugs.webkit.org/show_bug.cgi?id=136603
1484
1485         Reviewed by Mark Rowe.
1486
1487         * Configurations/Base.xcconfig: Added CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_CONSTANT_CONVERSION,
1488         CLANG_WARN_EMPTY_BODY, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION,
1489         CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN__DUPLICATE_METHOD_MATCH, ENABLE_STRICT_OBJC_MSGSEND,
1490         GCC_WARN_UNDECLARED_SELECTOR, and GCC_WARN_UNUSED_FUNCTION as suggested by Xcode update check.
1491         Also removed duplicate GCC_WARN_UNUSED_VARIABLE line.
1492
1493         * WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
1494
1495 2014-09-02  Brian J. Burg  <burg@cs.washington.edu>
1496
1497         LegacyProfiler: remove redundant ProfileNode members and other cleanup
1498         https://bugs.webkit.org/show_bug.cgi?id=136380
1499
1500         Reviewed by Timothy Hatcher.
1501
1502         Remove unused Profile.idleTime member.
1503
1504         * UserInterface/Models/Profile.js:
1505         (WebInspector.Profile.prototype.get idleTime): Deleted.
1506         * UserInterface/Models/ScriptTimelineRecord.js:
1507         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
1508
1509 2014-09-02  Brian J. Burg  <burg@cs.washington.edu>
1510
1511         Web Inspector: remove ProfilerAgent and legacy profiler files in the frontend
1512         https://bugs.webkit.org/show_bug.cgi?id=136462
1513
1514         Reviewed by Timothy Hatcher.
1515
1516         The legacy profiler manager didn't do anything, and its views and models
1517         have been superseded by new views and models based on the Timeline classes.
1518
1519         * .eslintrc:
1520         * UserInterface/Base/Main.js:
1521         (WebInspector.loaded):
1522         (WebInspector.openURL): Remove profile URL handling code.
1523         * UserInterface/Controllers/LegacyProfileManager.js: Removed.
1524         * UserInterface/Main.html:
1525         * UserInterface/Protocol/ConsoleObserver.js:
1526         (WebInspector.ConsoleObserver.prototype.messageAdded):
1527         * UserInterface/Protocol/InspectorFrontendAPI.js:
1528         (InspectorFrontendAPI.isProfilingJavaScript): Deleted.
1529         (InspectorFrontendAPI.startProfilingJavaScript): Deleted.
1530         (InspectorFrontendAPI.stopProfilingJavaScript): Deleted.
1531         * UserInterface/Protocol/LegacyProfilerObserver.js: Removed.
1532         * UserInterface/Views/LegacyBottomUpProfileDataGridTree.js: Removed.
1533         * UserInterface/Views/LegacyJavaScriptProfileObject.js: Removed.
1534         * UserInterface/Views/LegacyJavaScriptProfileType.js: Removed.
1535         * UserInterface/Views/LegacyJavaScriptProfileView.css: Removed.
1536         * UserInterface/Views/LegacyJavaScriptProfileView.js: Removed.
1537         * UserInterface/Views/LegacyProfileDataGridTree.js: Removed.
1538         * UserInterface/Views/LegacyProfileObject.js: Removed.
1539         * UserInterface/Views/LegacyProfileType.js: Removed.
1540         * UserInterface/Views/LegacyProfileView.css: Removed.
1541         * UserInterface/Views/LegacyProfileView.js: Removed.
1542         * UserInterface/Views/LegacyTopDownProfileDataGridTree.js: Removed.
1543
1544 2014-08-29  Saam Barati  <saambarati1@gmail.com>
1545
1546         Web Inspector: Create a UI for displaying JavaScript type information
1547         https://bugs.webkit.org/show_bug.cgi?id=135142
1548
1549         Reviewed by Joseph Pecoraro.
1550
1551         JavaScriptCore now has a type profiler. This patch provides a frontend
1552         user interface for displaying this type information in the Web Inspector.
1553         The user interface works by placing inline "type tokens" next to important
1554         JavaScript expressions: function arguments, function return types, and 
1555         variable declarations. Type information can also be seen for almost every
1556         JavaScipt expression just by hovering over it while viewing a JavaScript file.
1557
1558         Currently, turning on the type profiler is expensive, so the inspector
1559         ensures to never turn on type profiling until the user specifically asks 
1560         for type information to be turned on.
1561
1562         * UserInterface/Base/Main.js:
1563         (WebInspector.loaded):
1564         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
1565         (WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
1566         (WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
1567         Added a new type profiling mode.
1568
1569         * UserInterface/Controllers/FormatterSourceMap.js:
1570         (WebInspector.FormatterSourceMap.prototype.originalToFormatted):
1571         (WebInspector.FormatterSourceMap.prototype.originalPositionToFormatted):
1572         (WebInspector.FormatterSourceMap.prototype.formattedToOriginal):
1573         (WebInspector.FormatterSourceMap.prototype.formattedToOriginalOffset):
1574         * UserInterface/Controllers/TypeTokenAnnotator.js: Added.
1575         (WebInspector.TypeTokenAnnotator):
1576         (WebInspector.TypeTokenAnnotator.prototype.get isActive):
1577         (WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor):
1578         (WebInspector.TypeTokenAnnotator.prototype.pause):
1579         (WebInspector.TypeTokenAnnotator.prototype.resume):
1580         (WebInspector.TypeTokenAnnotator.prototype.refresh):
1581         (WebInspector.TypeTokenAnnotator.prototype.reset):
1582         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
1583         (WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.):
1584         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
1585         (WebInspector.TypeTokenAnnotator.prototype._insertToken):
1586         (WebInspector.TypeTokenAnnotator.prototype.isLineTerminator):
1587         (WebInspector.TypeTokenAnnotator.prototype._translateToOffsetAfterFunctionParameterList):
1588         (WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded):
1589         This class is responsible for producing the inline "type token" annotations.
1590
1591         * UserInterface/Images/NavigationItemTypes.svg: Added.
1592         * UserInterface/Main.html:
1593         * UserInterface/Models/Script.js:
1594         (WebInspector.Script.prototype.get scriptSyntaxTree):
1595         * UserInterface/Models/ScriptSyntaxTree.js:
1596         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
1597         (WebInspector.ScriptSyntaxTree.prototype.):
1598         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
1599         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1600         * UserInterface/Views/ScriptContentView.js:
1601         (WebInspector.ScriptContentView):
1602         (WebInspector.ScriptContentView.prototype.get navigationItems):
1603         (WebInspector.ScriptContentView.prototype._contentDidPopulate):
1604         (WebInspector.ScriptContentView.prototype._toggleTypeAnnotations):
1605         (WebInspector.ScriptContentView.prototype._showJavaScriptTypeInformationSettingChanged):
1606         * UserInterface/Views/SourceCodeTextEditor.js:
1607         (WebInspector.SourceCodeTextEditor):
1608         (WebInspector.SourceCodeTextEditor.prototype.shown):
1609         (WebInspector.SourceCodeTextEditor.prototype.hidden):
1610         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
1611         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
1612         (WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
1613         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
1614         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
1615         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
1616         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
1617         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
1618         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
1619         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
1620         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
1621         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
1622         (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
1623         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
1624         (WebInspector.SourceCodeTextEditor.prototype._enableScrollEventsForTypeTokenAnnotator):
1625         (WebInspector.SourceCodeTextEditor.prototype._disableScrollEventsForTypeTokenAnnotator):
1626         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
1627         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
1628         * UserInterface/Views/TextContentView.js:
1629         (WebInspector.TextContentView.prototype.get navigationItems):
1630         * UserInterface/Views/TextEditor.js:
1631         (WebInspector.TextEditor.prototype.set formatted):
1632         (WebInspector.TextEditor.prototype.canShowTypeAnnotations):
1633         (WebInspector.TextEditor.prototype.visibleRangeOffsets):
1634         (WebInspector.TextEditor.prototype.originalOffsetToCurrentPosition):
1635         (WebInspector.TextEditor.prototype.currentOffsetToCurrentPosition):
1636         (WebInspector.TextEditor.prototype.currentPositionToOriginalOffset):
1637         (WebInspector.TextEditor.prototype.currentPositionToCurrentOffset):
1638         (WebInspector.TextEditor.prototype.setInlineWidget):
1639         (WebInspector.TextEditor.prototype.addScrollHandler):
1640         (WebInspector.TextEditor.prototype.removeScrollHandler):
1641         (WebInspector.TextEditor.prototype._scrollIntoViewCentered):
1642         * UserInterface/Views/TextResourceContentView.js:
1643         (WebInspector.TextResourceContentView):
1644         (WebInspector.TextResourceContentView.prototype.get navigationItems):
1645         (WebInspector.TextResourceContentView.prototype._contentDidPopulate):
1646         (WebInspector.TextResourceContentView.prototype._toggleTypeAnnotations):
1647         (WebInspector.TextResourceContentView.prototype._showJavaScriptTypeInformationSettingChanged):
1648         * UserInterface/Views/TypePropertiesSection.js: Added.
1649         (WebInspector.TypePropertiesSection):
1650         (WebInspector.TypePropertiesSection.prototype.onpopulate):
1651         (WebInspector.TypePropertiesSection.PropertyComparator):
1652         (WebInspector.TypePropertyTreeElement):
1653         (WebInspector.TypePropertyTreeElement.prototype.onpopulate):
1654         * UserInterface/Views/TypeTokenView.css: Added.
1655         (.type-token):
1656         (.type-token-left-spacing):
1657         (.type-token-right-spacing):
1658         (.type-token-function, .type-token-boolean):
1659         (.type-token-number):
1660         (.type-token-string):
1661         (.type-token-default):
1662         (.type-token-empty):
1663         (.type-token-many):
1664         * UserInterface/Views/TypeTokenView.js: Added.
1665         (WebInspector.TypeTokenView):
1666         (WebInspector.TypeTokenView.titleForPopover):
1667         (WebInspector.TypeTokenView.prototype.update):
1668         (WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
1669         (WebInspector.TypeTokenView.prototype._shouldShowPopover):
1670         The inline "type token" view.
1671
1672 2014-08-29  Saam Barati  <sbarati@apple.com>
1673
1674         Web Inspector: Fix how Popover animates
1675         https://bugs.webkit.org/show_bug.cgi?id=136353
1676
1677         Reviewed by Timothy Hatcher.
1678
1679         Popovers currently don't animate properly because they use 
1680         window.requestAnimationFrame which won't fire its callback 
1681         while the inspector is paused in the debugger. This patches
1682         switches the callback mechanism to setTimeout and also changes
1683         how a Popover's anchor animates to prevent visual glitches.
1684
1685         Popover also has a new function that allows a new target
1686         frame and new content to be set simultaneously and to
1687         animate to show the new content while changing the 
1688         location of the popover frame.
1689
1690         SourceCodeTextEditor uses Popover's new API for animating
1691         between popovers when paused in the debugger. SourceCodeTextEditor 
1692         also now ensures proper balancing of popover tracking event 
1693         listeners.
1694
1695         * UserInterface/Views/Popover.js:
1696         (WebInspector.Popover.prototype.present):
1697         (WebInspector.Popover.prototype.presentNewContentWithFrame):
1698         (WebInspector.Popover.prototype.dismiss):
1699         (WebInspector.Popover.prototype._update):
1700         (WebInspector.Popover.prototype.drawBackground):
1701         (WebInspector.Popover.prototype._animateFrame):
1702         (WebInspector.Popover.prototype._drawFrame):
1703         (WebInspector.Popover.prototype._addListenersIfNeeded):
1704         (WebInspector.Popover.prototype._animateFrame.drawBackground): Deleted.
1705         * UserInterface/Views/SourceCodeTextEditor.js:
1706         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
1707         (WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
1708         (WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
1709
1710 2014-08-28  Saam Barati  <sbarati@apple.com>
1711
1712         Web Inspector: Write tests for ScriptSyntaxTree and fix bugs in the data structure
1713         https://bugs.webkit.org/show_bug.cgi?id=136272
1714
1715         Reviewed by Joseph Pecoraro.
1716
1717         Include the necessary files in Test.html to test ScriptSyntaxTree.
1718         Also, ScriptSyntaxTree had a couple of errors for two of its nodes
1719         where they simply ignored one of the properties on the node.
1720         These errors were found while writing the tests and are fixed
1721         in this patch.
1722
1723         * UserInterface/Models/ScriptSyntaxTree.js:
1724         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1725         * UserInterface/Test.html:
1726
1727 2014-08-27  Saam Barati  <sbarati@apple.com>
1728
1729         Web Inspector: Layout issues for popover on not legacy OS
1730         https://bugs.webkit.org/show_bug.cgi?id=136268
1731
1732         Reviewed by Joseph Pecoraro.
1733
1734         On the latest OS, popovers invade the title bar's space which will
1735         cause layout issues because the title bar will render above
1736         the popover. Fix this by providing some padding for popovers on 
1737         not legacy OSs.
1738
1739         * UserInterface/Views/Popover.js:
1740
1741 2014-08-27  Timothy Hatcher  <timothy@apple.com>
1742
1743         REGRESSION: Web Inspector: Legacy toolbar has two different colors in unfocused windowed mode
1744         https://bugs.webkit.org/show_bug.cgi?id=136289
1745
1746         Reviewed by Darin Adler.
1747
1748         * UserInterface/Views/Toolbar.css:
1749         (body.mac-platform.legacy .toolbar): Override the background-color as transparent. Non-legacy
1750         uses a solid color instead of a gradient for window-inactive.
1751
1752 2014-08-26  Saam Barati  <sbarati@apple.com>
1753
1754         Web Inspector: Fix CodeMirrorTokenTrackingController::_startTracking assertion
1755         https://bugs.webkit.org/show_bug.cgi?id=136160
1756
1757         Reviewed by Joseph Pecoraro.
1758
1759         Check if '_tracking' is already true before calling '_startTracking'
1760         to prevent the assertion from always firing.
1761
1762         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
1763         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseEntered):
1764
1765 2014-08-25  Brent Fulgham  <bfulgham@apple.com>
1766
1767         [Win] Pass OFFICIAL_BUILD flag to WebInspectorUI build process
1768         https://bugs.webkit.org/show_bug.cgi?id=136229
1769
1770         Reviewed by Dean Jackson.
1771
1772         * WebInspectorUI.vcxproj/WebInspectorUI.make: Pass OFFICIAL_BUILD
1773         flag to build-webinspectorui.pl.
1774         * WebInspectorUI.vcxproj/build-webinspectorui.pl: Accept and use
1775         the OFFICIAL_BUILD flag.
1776
1777 2014-08-24  Benjamin Poulain  <benjamin@webkit.org>
1778
1779         The inspector should not use the "after" pseudo element with the compatibility syntax
1780         https://bugs.webkit.org/show_bug.cgi?id=136204
1781
1782         Reviewed by Darin Adler.
1783
1784         We should only use hte proper pseudo element syntax inside WebKit.
1785
1786         * Tools/PrettyPrinting/codemirror-additions.css:
1787         * Tools/PrettyPrinting/populate/apple.css:
1788
1789 2014-08-24  Brian J. Burg  <burg@cs.washington.edu>
1790
1791         Web Inspector: Rename DOM.RGBA and remove workarounds in the bindings generator
1792         https://bugs.webkit.org/show_bug.cgi?id=136025
1793
1794         Reviewed by Joseph Pecoraro.
1795
1796         Also rename DOM.RGBA in legacy protocol specifications.
1797
1798         * Versions/Inspector-iOS-6.0.json:
1799         * Versions/Inspector-iOS-7.0.json:
1800
1801 2014-08-21  Simon Fraser  <simon.fraser@apple.com>
1802
1803         Add a button to enable paint flashing in the web inspector
1804         https://bugs.webkit.org/show_bug.cgi?id=136133
1805
1806         Reviewed by Tim Hatcher.
1807         
1808         Add a button to the right of the layer borders button to turn on paint flashing.
1809         Future patches will actually enable this feature.
1810
1811         * Localizations/en.lproj/localizedStrings.js: Tooltip strings.
1812         * UserInterface/Images/PaintFlashing.svg: Added. "Paintbrush" icon.
1813         * UserInterface/Views/DOMTreeContentView.js:
1814         (WebInspector.DOMTreeContentView):
1815         (WebInspector.DOMTreeContentView.prototype.get navigationItems):
1816         (WebInspector.DOMTreeContentView.prototype._togglePaintFlashing):
1817
1818 2014-08-20  Saam Barati  <sbarati@apple.com>
1819
1820         Rename HighFidelityTypeProfiling variables for more clarity
1821         https://bugs.webkit.org/show_bug.cgi?id=135899
1822
1823         Reviewed by Geoffrey Garen.
1824
1825         Change a reference in a comment to a JavaScriptCore file to its 
1826         newly renamed variant.
1827
1828         * UserInterface/Models/ScriptSyntaxTree.js:
1829
1830 2014-08-18  Saam Barati  <sbarati@apple.com>
1831
1832         Web Inspector: Introduce an inspector Abstract Syntax Tree.
1833         https://bugs.webkit.org/show_bug.cgi?id=135763
1834
1835         Reviewed by Joseph Pecoraro.
1836
1837         This patch adds an Abstract Syntax Tree to the Web inspector. 
1838         This syntax tree is modeled off the Esprima.js syntax tree
1839         which complies with the Mozilla Parser API:
1840         https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API
1841         Script is the owner of the Web Inspector syntax tree, and has an API
1842         for accessing its syntax tree property.
1843
1844         * UserInterface/External/Esprima/esprima.js:
1845         * UserInterface/Main.html:
1846         * UserInterface/Models/Script.js:
1847         (WebInspector.Script):
1848         (WebInspector.Script.prototype.requestScriptSyntaxTree.makeSyntaxTreeAndCallCallback):
1849         (WebInspector.Script.prototype._resolveResource):
1850         (WebInspector.Script.prototype._makeSyntaxTree):
1851         * UserInterface/Models/ScriptSyntaxTree.js: Added.
1852         (WebInspector.ScriptSyntaxTree):
1853         (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
1854         (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
1855         (WebInspector.ScriptSyntaxTree.prototype.):
1856         (WebInspector.ScriptSyntaxTree.prototype.filter):
1857         (WebInspector.ScriptSyntaxTree.prototype.filterForNodesInRange):
1858         (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
1859         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
1860         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
1861         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
1862         (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
1863         (WebInspector.ScriptSyntaxTree.prototype._recurse):
1864         (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
1865         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1866
1867 2014-08-16  Joseph Pecoraro  <pecoraro@apple.com>
1868
1869         Web Inspector: Improve performance of selection range changes viewing Scripts timeline
1870         https://bugs.webkit.org/show_bug.cgi?id=136015
1871
1872         Reviewed by Timothy Hatcher.
1873
1874         * UserInterface/Base/Utilities.js:
1875         (clamp):
1876         Helper function to clamp a value between a min and max.
1877
1878         * UserInterface/Models/ProfileNode.js:
1879         (WebInspector.ProfileNode.prototype.get startTime):
1880         (WebInspector.ProfileNode.prototype.get endTime):
1881         These can be quickly calculated, so avoid full calculation to grab the values.
1882
1883         * UserInterface/Views/ScriptTimelineView.js:
1884         (WebInspector.ScriptTimelineView.prototype.updateLayout):
1885         Update ranges with a smart helper, instead of blindly doing it and needing refresh.
1886
1887         * UserInterface/Views/ProfileNodeDataGridNode.js:
1888         (WebInspector.ProfileNodeDataGridNode.prototype.get rangeEndTime):
1889         (WebInspector.ProfileNodeDataGridNode.prototype.get data):
1890         (WebInspector.ProfileNodeDataGridNode.prototype.updateRangeTimes):
1891         (WebInspector.ProfileNodeDataGridNode.prototype.set rangeStartTime): Deleted.
1892         (WebInspector.ProfileNodeDataGridNode.prototype.set rangeEndTime): Deleted.
1893         * UserInterface/Views/ScriptTimelineDataGridNode.js:
1894         (WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
1895         (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeStartTime): Deleted.
1896         (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeEndTime): Deleted.
1897         When updating the range selection, compare to the last range selection
1898         on this DataGridNode. If the visible portion of this node's time range
1899         changes, we need a refresh. Otherwise, we don't need a refresh.
1900
1901 2014-08-15  Joseph Pecoraro  <pecoraro@apple.com>
1902
1903         Web Inspector: Update Scripts/update-LegacyInspectorBackendCommands.rb for the new generator
1904         https://bugs.webkit.org/show_bug.cgi?id=136006
1905
1906         Reviewed by Timothy Hatcher.
1907
1908         * Scripts/update-LegacyInspectorBackendCommands.rb:
1909         Use the new generator and pass the appropriate flags.
1910
1911         * UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
1912         * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
1913         Newly generated files using the new generator.
1914
1915         * Versions/Inspector-iOS-6.0.json:
1916         Remove unsupported features.
1917
1918 2014-08-15  Joseph Pecoraro  <pecoraro@apple.com>
1919
1920         Web Inspector: Remove forced layouts during recording caused by striped background element resizing
1921         https://bugs.webkit.org/show_bug.cgi?id=136009
1922
1923         Reviewed by Timothy Hatcher.
1924
1925         We used to manually resize and a custom striped background behind
1926         the timeline tree outline content area. This can happen frequently
1927         during timeline recordings causing forced layouts. We can eliminate
1928         the hack and instead put the stripe background on the tree outline.
1929
1930         * UserInterface/Views/TimelineSidebarPanel.js:
1931         (WebInspector.TimelineSidebarPanel.prototype.updateCustomContentOverflow): Deleted.
1932         * UserInterface/Views/TimelineSidebarPanel.css:
1933         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button):
1934         (.sidebar > .panel.navigation.timeline > .content > .stripe-background): Deleted.
1935         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background): Deleted.
1936         Eliminate the striped background element.
1937
1938         * UserInterface/Views/TimelineView.css:
1939         (.panel.navigation.timeline > .content > .navigation-sidebar-panel-content-tree-outline):
1940         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
1941         Give the timeline content tree outlines the striped background.
1942
1943         * UserInterface/Views/NavigationSidebarPanel.js:
1944         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
1945         (WebInspector.NavigationSidebarPanel.prototype.updateCustomContentOverflow): Deleted.
1946         Remove the now unused updateCustomContentOverflow method.
1947
1948 2014-08-15  Jono Wells  <jonowells@apple.com>
1949
1950         Web Inspector: Inspect Element doesn't always highlight the correct element when inspector is closed before inspecting
1951         https://bugs.webkit.org/show_bug.cgi?id=135995
1952
1953         Reviewed by Joseph Pecoraro.
1954
1955         Change so if an element is inspected via the Inspect Element context menu, selected
1956         node restoration is disallowed until the main resource in the main frame changes.
1957         This way an attempt by a sub-frame will not change the highlighted element in the
1958         Main Frame's DOM tree unexpectedly.
1959
1960         * UserInterface/Controllers/DOMTreeManager.js:
1961         (WebInspector.DOMTreeManager):
1962         (WebInspector.DOMTreeManager.prototype._mainResourceDidChange):
1963         (WebInspector.DOMTreeManager.prototype.inspectElement):
1964
1965 2014-08-15  Brian J. Burg  <burg@cs.washington.edu>
1966
1967         Web Inspector: rewrite CodeGeneratorInspector to be modular and testable
1968         https://bugs.webkit.org/show_bug.cgi?id=131596
1969
1970         Reviewed by Joseph Pecoraro.
1971
1972         Also apply type extraction refactorings to old protocol versions for consistency.
1973
1974         * Versions/Inspector-iOS-6.0.json:
1975         * Versions/Inspector-iOS-7.0.json:
1976
1977 2014-08-15  Timothy Hatcher  <timothy@apple.com>
1978
1979         Web Inspector: Probe details sidebar data grids do not show data
1980         https://bugs.webkit.org/show_bug.cgi?id=135992
1981
1982         Reviewed by Joseph Pecoraro.
1983
1984         * UserInterface/Views/ProbeSetDataGrid.js:
1985         (WebInspector.ProbeSetDataGrid): Make the DataGrid be inline to show the data correctly.
1986
1987 2014-08-15  Timothy Hatcher  <timothy@apple.com>
1988
1989         Web Inspector: Legacy Mac toolbar appearance looks wrong
1990         https://bugs.webkit.org/show_bug.cgi?id=135962
1991
1992         Reviewed by Joseph Pecoraro.
1993
1994         * UserInterface/Views/Toolbar.css:
1995         (body.mac-platform.legacy .toolbar): Don't draw a gradient background when not docked.
1996         Move border-bottom-color from body.mac-platform.legacy.docked .toolbar to here so it
1997         applies all the time as it should have.
1998
1999 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
2000
2001         Web Inspector: Dragging Undocked inspector by window title has broken behavior
2002         https://bugs.webkit.org/show_bug.cgi?id=135950
2003
2004         Reviewed by Timothy Hatcher.
2005
2006         * UserInterface/Base/Main.js:
2007         On Mac ports where we the inspector content goes everywhere, window dragging behavior
2008         still exists for the top 22px of the window. So don't do our JavaScript based window
2009         dragging for this special region.
2010
2011         * UserInterface/Models/KeyboardShortcut.js:
2012         (WebInspector.KeyboardShortcut.Modifier.get CommandOrControl):
2013         (WebInspector.KeyboardShortcut.prototype.get displayName):
2014         Instead of calling a host function, use the value already in the frontend.
2015
2016 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
2017
2018         Web Inspector: Split console toggle button wrong - Images/Images/SplitToggleUp.svg does not exist
2019         https://bugs.webkit.org/show_bug.cgi?id=135957
2020
2021         Reviewed by Timothy Hatcher.
2022
2023         * UserInterface/Views/LogContentView.js:
2024         (WebInspector.LogContentView):
2025         Wrong image path passed to platformImagePath.
2026
2027 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
2028
2029         Web Inspector: Avoid re-binding the same function over and over
2030         https://bugs.webkit.org/show_bug.cgi?id=135949
2031
2032         Reviewed by Timothy Hatcher.
2033
2034         * UserInterface/Controllers/TimelineManager.js:
2035         (WebInspector.TimelineManager.prototype._startAutoCapturing):
2036         (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
2037         (WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
2038         Stash a bound copy of the function once, and reuse it.
2039
2040 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
2041
2042         Web Inspector: Timelines can get caught in requestAnimationFrame loop when not recording
2043         https://bugs.webkit.org/show_bug.cgi?id=135946
2044
2045         Reviewed by Timothy Hatcher.
2046
2047         Each TimelineContentView was listening for the TimelineManager's start/stop
2048         capturing events. However, only the active recording could possibly update.
2049         Likewise, if a pre-existing recording started and stopped we did not properly
2050         stop in the case where we were waiting for an event to update the current time,
2051         which would result in an infinite rAF loop of no updates.
2052
2053         * UserInterface/Models/TimelineRecording.js:
2054         (WebInspector.TimelineRecording.prototype.unloaded):
2055         When a timeline recording is unloaded trigger an event.
2056
2057         * UserInterface/Views/TimelineContentView.js:
2058         (WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
2059         Assert we were not already waiting.
2060
2061         (WebInspector.TimelineContentView.prototype._stopUpdatingCurrentTime):
2062         Properly handle the case of starting/stoping an already existing recording
2063         without a new event coming in.
2064
2065         (WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
2066         (WebInspector.TimelineContentView.prototype._recordingReset):
2067         Convert to a boolean instead of deleting state.
2068
2069         (WebInspector.TimelineContentView.prototype._recordingUnloaded):
2070         Stop listening to timeline manager events that no longer affect unloaded recordings.
2071
2072 2014-08-13  Jono Wells  <jonowells@apple.com>
2073
2074         Web Inspector: eslint configuration should be stored as .eslintrc
2075         https://bugs.webkit.org/show_bug.cgi?id=135916
2076
2077         .eslintrc file added to allow for ESLint solutions, within editors and otherwise,
2078         to be automatically configured based on the WebKit JavaScript coding style. The
2079         initial file is incomplete.
2080
2081         Reviewed by Joseph Pecoraro.
2082
2083         * .eslintrc: Added.
2084         * External/.eslintrc: Added.
2085
2086 2014-08-13  Timothy Hatcher  <timothy@apple.com>
2087
2088         Web Inspector: Missing semicolon after console.assert in TimelineSidebarPanel.js
2089         https://bugs.webkit.org/show_bug.cgi?id=135917
2090
2091         Reviewed by Joseph Pecoraro.
2092
2093         * UserInterface/Views/TimelineSidebarPanel.js:
2094
2095 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
2096
2097         Web Inspector: Inline DataGrid inside details sidebar has double thick top border with legacy styles
2098         https://bugs.webkit.org/show_bug.cgi?id=135894
2099
2100         Reviewed by Timothy Hatcher.
2101
2102         * UserInterface/Views/DetailsSection.css:
2103         (body.mac-platform.legacy .details-section:not(.collapsed) .data-grid.inline):
2104         In legacy styles the details-section header always has a 1px bottom border.
2105         In all styles, an inline data grid had a 1px border everywhere. So, handle
2106         this specific case by removing the top border of an inline data grid
2107         that is inside an expanded details section.
2108
2109 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
2110
2111         Web Inspector: "No Filter Results" view only shows once, does not show again
2112         https://bugs.webkit.org/show_bug.cgi?id=135892
2113
2114         Reviewed by Timothy Hatcher.
2115
2116         * UserInterface/Views/NavigationSidebarPanel.js:
2117         (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
2118         We were checking at the wrong level for a parent. Check if the root
2119         placeholder element has a parent or not.
2120
2121 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
2122
2123         Web Inspector: Incorrect border colors in event listeners sections in details sidebar
2124         https://bugs.webkit.org/show_bug.cgi?id=135891
2125
2126         Reviewed by Timothy Hatcher.
2127
2128         * UserInterface/Views/DetailsSection.css:
2129         (.details-section .details-section > .header):
2130         (.details-section .details-section:not(.collapsed) > .header):
2131         Remove box-shadow and replace with a bottom border.
2132
2133         (body.mac-platform.legacy .details-section .details-section.collapsed > .header):
2134         (.details-section .details-section.collaspsed > .header): Deleted.
2135         Collapsed was spelled incorrectly so this was not applying properly before.
2136         But correct this for legacy because legacy still uses a box-shadow.
2137
2138 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
2139
2140         Web Inspector: Timeline Close buttons can use polish for new and legacy styles
2141         https://bugs.webkit.org/show_bug.cgi?id=135870
2142
2143         Reviewed by Timothy Hatcher.
2144
2145         * UserInterface/Images/Legacy/Close.svg:
2146         Ensure this has fill colors in tree selections.
2147
2148         * UserInterface/Views/TimelineSidebarPanel.css:
2149         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
2150         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content .close-button):
2151         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button):
2152         Size the close-button for the top overviews differently in new styles (14x14) and legacy (12x12).
2153
2154 2014-08-13  Timothy Hatcher  <timothy@apple.com>
2155
2156         Web Inspector: Workaround a NSWindow change to the title bar.
2157         https://bugs.webkit.org/show_bug.cgi?id=135880
2158
2159         Reviewed by Joseph Pecoraro.
2160
2161         * UserInterface/Base/Main.js:
2162         (WebInspector._updateToolbarHeight): Don't call in legacy mode.
2163
2164         * UserInterface/Views/DashboardContainerView.css:
2165         (.toolbar .dashboard-container):
2166         (.toolbar .dashboard):
2167         Drive-by fix some errant drop-shadows. The transparent border was pushing the inset top
2168         drop shadow down when it shouldn't. Remove duplicate background and shadow.
2169
2170         * UserInterface/Views/Main.css:
2171         (body): Set the background white, never needs to be transparent now.
2172         (body.mac-platform.legacy:not(.docked)): Set background to transparent when not docked in legacy.
2173         (body.docked.bottom): Update border color.
2174         (body.docked.right): Ditto.
2175         (body.docked.bottom.mac-platform.legacy): Keep old border color.
2176         (body.docked.right.mac-platform.legacy): Ditto.
2177
2178         * UserInterface/Views/Toolbar.css:
2179         (.toolbar): Set a default border and background gradient.
2180         (body.window-inactive .toolbar): No gradient but use a solid color when inactive.
2181         (body.mac-platform:not(.legacy):not(.docked) .toolbar): Padding on the top for the title bar.
2182         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Account for title bar height.
2183         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Ditto.
2184         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Ditto.
2185         (body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Ditto.
2186         (body.mac-platform.legacy .toolbar): No inset shadow in legacy when not docked.
2187         (body.mac-platform.legacy.docked .toolbar): Restore legacy border color.
2188         (body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Only disable sub-pixel antialiasing on legacy!
2189         (body.mac-platform.legacy.window-inactive .toolbar): Restore legacy border color.
2190
2191 2014-08-13  Timothy Hatcher  <timothy@apple.com>
2192
2193         Web Inspector: Restore Helvetica as the dashboard font in legacy mode
2194         https://bugs.webkit.org/show_bug.cgi?id=135886
2195
2196         Reviewed by Joseph Pecoraro.
2197
2198         * UserInterface/Views/DefaultDashboardView.css:
2199         (body.mac-platform.legacy .toolbar .dashboard.default > .item):
2200
2201 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2202
2203         Web Inspector: Timeline record content view close button does not work after scrolling, invisible scrollbar
2204         https://bugs.webkit.org/show_bug.cgi?id=135863
2205
2206         Reviewed by Timothy Hatcher.
2207
2208         A workaround is to not have position:relative content inside of
2209         scrollable region. Turns out this was only done in two places,
2210         and I do not see any absolutely positioned content in navigation
2211         sidebar content tree outlines. This also fixes clicking on the
2212         reload button if you've scrolled the Resources sidebar. 
2213
2214         * UserInterface/Views/NavigationSidebarPanel.css:
2215         (.navigation-sidebar-panel-content-tree-outline .children): Deleted.
2216         (.navigation-sidebar-panel-content-tree-outline .item): Deleted.
2217
2218 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2219
2220         Web Inspector: Remove unused variable in Platform.js
2221         https://bugs.webkit.org/show_bug.cgi?id=135869
2222
2223         Reviewed by Timothy Hatcher.
2224
2225         * UserInterface/Base/Platform.js:
2226
2227 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2228
2229         Web Inspector: Timeline selection range creation does not work when clicking event bubble or near bottom of overview
2230         https://bugs.webkit.org/show_bug.cgi?id=135849
2231
2232         Reviewed by Timothy Hatcher.
2233
2234         Click events on elements in the graph container (event bubbles) or
2235         in the scroll container (bottom 16px) were becoming the event targets.
2236         As siblings of the ruler, the dispatch would not go through the ruler.
2237         The ruler was supposed to be overlaying everything in the overview,
2238         so give the ruler a z-index so it really is overlaying elements.
2239
2240         * UserInterface/Views/TimelineRuler.css:
2241         (.timeline-ruler):
2242
2243 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2244
2245         Web Inspector: GoToLine dialog clear text button looks poor
2246         https://bugs.webkit.org/show_bug.cgi?id=135828
2247
2248         Reviewed by Timothy Hatcher.
2249
2250         Legacy/CloseWhite.svg was not used, but in the case where the white
2251         close button is needed the thicker bars looks better. Re-use the
2252         Legacy image as the default CloseWhite.svg.
2253
2254         * UserInterface/Images/CloseWhite.svg:
2255         * UserInterface/Images/Legacy/CloseWhite.svg: Removed.
2256
2257 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2258
2259         Web Inspector: Easier Way to go back to the Timeline Overviews
2260         https://bugs.webkit.org/show_bug.cgi?id=135827
2261
2262         Reviewed by Timothy Hatcher.
2263
2264         * Localizations/en.lproj/localizedStrings.js:
2265         Added new tooltip UIString.
2266
2267         * UserInterface/Images/Close.svg:
2268         * UserInterface/Images/CloseLarge.svg:
2269         * UserInterface/Images/Legacy/Close.svg:
2270         Add "stroked" class so the buttons can fill with white on selected rows.
2271         Also re-center the non-legacy images horizontally.
2272
2273         * UserInterface/Views/GeneralTreeElement.js:
2274         (WebInspector.GeneralTreeElement.prototype.set status):
2275         Do not recreate elements if the status did not change.
2276
2277         * UserInterface/Views/LayoutTimelineView.js:
2278         (WebInspector.LayoutTimelineView):
2279         (WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
2280         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
2281         (WebInspector.LayoutTimelineView.prototype._updateTreeElementWithCloseButton):
2282         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
2283         * UserInterface/Views/NetworkTimelineView.js:
2284         (WebInspector.NetworkTimelineView):
2285         (WebInspector.NetworkTimelineView.prototype._treeElementDeselected):
2286         (WebInspector.NetworkTimelineView.prototype._treeElementSelected):
2287         (WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton):
2288         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
2289         * UserInterface/Views/OverviewTimelineView.js:
2290         (WebInspector.OverviewTimelineView.prototype._treeElementDeselected):
2291         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
2292         (WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton):
2293         (WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked):
2294         * UserInterface/Views/ScriptTimelineView.js:
2295         (WebInspector.ScriptTimelineView):
2296         (WebInspector.ScriptTimelineView.prototype._treeElementDeselected):
2297         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
2298         (WebInspector.ScriptTimelineView.prototype._updateTreeElementWithCloseButton):
2299         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
2300         Provide select/deselect handlers to show/hide the close status bar button
2301         when selecting a row that shows a non-Timeline content view. Currently the
2302         only content views the tree elements can show are Resource views, so the
2303         tooltip is the same everywhere.
2304
2305 2014-08-12  Timothy Hatcher  <timothy@apple.com>
2306
2307         Web Inspector: Expect to see top level JavaScript function profiler details for event handlers in timeline
2308         https://bugs.webkit.org/show_bug.cgi?id=132109
2309
2310         Reviewed by Joseph Pecoraro.
2311
2312         * UserInterface/Views/ScriptTimelineView.js:
2313         (WebInspector.ScriptTimelineView.prototype._processPendingRecords): Don't promote root node children if
2314         there is only one child.
2315
2316 2014-08-11  Brian J. Burg  <burg@cs.washington.edu>
2317
2318         Web Inspector: show a replay dashboard when capturing or replaying
2319         https://bugs.webkit.org/show_bug.cgi?id=135170
2320
2321         Reviewed by Timothy Hatcher.
2322
2323         This patch adds a replay dashboard with record/play/pause buttons. It
2324         is shown automatically when the user starts capturing an execution from
2325         the replay menu in the Timelines sidebar panel.
2326
2327         * UserInterface/Base/Main.js:
2328         (WebInspector.loaded):
2329         (WebInspector._captureDidStart):
2330         * UserInterface/Controllers/DashboardManager.js:
2331         (WebInspector.DashboardManager):
2332         * UserInterface/Images/ReplayPauseButton.svg: Added.
2333         * UserInterface/Images/ReplayPlayButton.svg: Added.
2334         * UserInterface/Images/ReplayRecordingButton.svg: Added.
2335         * UserInterface/Main.html:
2336         * UserInterface/Models/ReplayDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
2337         (WebInspector.ReplayDashboard):
2338         * UserInterface/Views/DashboardView.js:
2339         (WebInspector.DashboardView):
2340         * UserInterface/Views/ReplayDashboardView.css: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
2341         (.toolbar .dashboard.replay):
2342         (.toolbar .dashboard.replay div.navigation-bar):
2343         (.toolbar .dashboard.replay .item.button > .glyph):
2344         (.toolbar.label-only .dashboard.replay .item.button > .glyph):
2345         * UserInterface/Views/ReplayDashboardView.js: Added.
2346         (WebInspector.ReplayDashboardView):
2347         (WebInspector.ReplayDashboardView.prototype._captureButtonItemClicked):
2348         (WebInspector.ReplayDashboardView.prototype._replayButtonItemClicked):
2349         (WebInspector.ReplayDashboardView.prototype._captureStarted):
2350         (WebInspector.ReplayDashboardView.prototype._captureStopped):
2351         (WebInspector.ReplayDashboardView.prototype._playbackStarted):
2352         (WebInspector.ReplayDashboardView.prototype._playbackPaused):
2353         (WebInspector.ReplayDashboardView.prototype._playbackFinished):
2354
2355 2014-08-08  Brian J. Burg  <burg@cs.washington.edu>
2356
2357         Web Inspector: DebuggerManager commands should return promises
2358         https://bugs.webkit.org/show_bug.cgi?id=135690
2359
2360         Reviewed by Timothy Hatcher.
2361
2362         Convert the existing debugger commands to return promises. This
2363         requires separately waiting for protocol command's promise to be
2364         fulfilled, as well as waiting for the appropriate DebuggerManager
2365         event. If the protocol command promise is rejected, tear down the
2366         single-fire event listener.
2367
2368         * UserInterface/Controllers/DebuggerManager.js:
2369         (WebInspector.DebuggerManager.prototype.pause):
2370         (WebInspector.DebuggerManager.prototype.resume):
2371         (WebInspector.DebuggerManager.prototype.stepOver):
2372         (WebInspector.DebuggerManager.prototype.stepInto):
2373         (WebInspector.DebuggerManager.prototype.stepOut):
2374         * UserInterface/Controllers/ReplayManager.js: Use the promise-based API.
2375         (WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
2376
2377 2014-08-11  Timothy Hatcher  <timothy@apple.com>
2378
2379         Web Inspector: Update folder icons
2380         https://bugs.webkit.org/show_bug.cgi?id=135808
2381
2382         Reviewed by Joseph Pecoraro.
2383
2384         * UserInterface/Images/FolderGeneric.png: Updated.
2385         * UserInterface/Images/FolderGeneric@2x.png: Updated.
2386
2387 2014-08-11  Timothy Hatcher  <timothy@apple.com>
2388
2389         Web Inspector: DataGrid and its clients are a cluster-cuss of styles
2390         https://bugs.webkit.org/show_bug.cgi?id=135788
2391
2392         Clean up DataGrid and its subclasses and client styles.
2393
2394         Reviewed by Joseph Pecoraro.
2395
2396         * Localizations/en.lproj/localizedStrings.js:
2397         * UserInterface/Views/ApplicationCacheFrameContentView.css:
2398         (.content-view.application-cache-frame > .data-grid):
2399         * UserInterface/Views/CookieStorageContentView.css:
2400         (.content-view.cookie-storage > .data-grid):
2401         * UserInterface/Views/DOMStorageContentView.css:
2402         (.content-view.dom-storage > .data-grid):
2403         * UserInterface/Views/DOMTreeDataGrid.css:
2404         (.dom-tree-data-grid .data-grid):
2405         (.dom-tree-data-grid .name-column .icon):
2406         * UserInterface/Views/DOMTreeDataGrid.js:
2407         (WebInspector.DOMTreeDataGrid):
2408         * UserInterface/Views/DataGrid.css:
2409         (.data-grid):
2410         (.data-grid table):
2411         (.data-grid .data-container):
2412         (.data-grid.inline):
2413         (.data-grid th):
2414         (.data-grid :-webkit-any(th, td):not(:last-child)):
2415         (.data-grid th.sortable:active):
2416         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending)):
2417         (.data-grid table.data):
2418         (.data-grid td):
2419         (.data-grid:focus tr.selected td:not(:last-child)):
2420         (body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)):
2421         (.data-grid :-webkit-any(th, td) > div):
2422         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child):
2423         (.data-grid th.sort-ascending > div:first-child::after):
2424         (.data-grid th.sort-descending > div:first-child::after):
2425         (.data-grid td .subtitle):
2426         (.data-grid td .subtitle::before):
2427         (.data-grid:focus tr.selected td .subtitle):
2428         (.data-grid td.error):
2429         (.data-grid tr.selected td.error):
2430         (.data-grid td .icon):
2431         (.data-grid td .go-to-arrow):
2432         (.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow):
2433         * UserInterface/Views/DatabaseContentView.css:
2434         (.storage-view):
2435         * UserInterface/Views/DatabaseTableContentView.css:
2436         (.content-view.database-table > .data-grid):
2437         * UserInterface/Views/DetailsSection.css:
2438         (.details-section > .content .data-grid):
2439         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
2440         (.content-view.indexed-database-object-store > .data-grid):
2441         * UserInterface/Views/LayerTreeDataGridNode.js:
2442         (WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
2443         (WebInspector.LayerTreeDataGridNode.prototype._updateNameCellData):
2444         * UserInterface/Views/LayerTreeSidebarPanel.css:
2445         (.layer-tree.panel .data-grid):
2446         (.layer-tree.panel .name-column .icon):
2447         (.layer-tree.panel tr.reflection .name-column .icon):
2448         (.layer-tree.panel tr.pseudo-element .name-column .icon):
2449         (.layer-tree.panel .name-column .reflection):
2450         (.layer-tree.panel tr.selected .name-column .reflection):
2451         (.layer-tree.panel .bottom-bar):
2452         (body.mac-platform.legacy .layer-tree.panel .bottom-bar):
2453         (.layer-tree.panel .bottom-bar > div):
2454         (body.mac-platform.legacy .layer-tree.panel .bottom-bar > div):
2455         (body.mac-platform.legacy .layer-tree-popover):
2456         * UserInterface/Views/LayerTreeSidebarPanel.js:
2457         (WebInspector.LayerTreeSidebarPanel):
2458         (WebInspector.LayerTreeSidebarPanel.prototype._buildLayerInfoSection):
2459         (WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
2460         (WebInspector.LayerTreeSidebarPanel.prototype._buildBottomBar):
2461         (WebInspector.LayerTreeSidebarPanel.prototype._updateMetrics):
2462         * UserInterface/Views/LegacyJavaScriptProfileView.css:
2463         (.content-view.profile-view > .data-grid):
2464         * UserInterface/Views/LegacyProfileView.css:
2465         * UserInterface/Views/LogContentView.css:
2466         (.console-message .bubble):
2467         * UserInterface/Views/NetworkTimelineView.css:
2468         (.timeline-view.network > .data-grid):
2469         * UserInterface/Views/OverviewTimelineView.css:
2470         (.timeline-view.overview > .timeline-ruler > .header):
2471         (.timeline-view.overview > .data-grid):
2472         * UserInterface/Views/OverviewTimelineView.js:
2473         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
2474         (.details-section.probe-set .options > .probe-add):
2475         (.popover .probe-popover):
2476         * UserInterface/Views/ProbeSetDataGrid.css:
2477         (.details-section.probe-set .data-grid tr.past-value td):
2478         (.details-section.probe-set .data-grid > td.unknown-value):
2479         (.details-section.probe-set .data-grid tr.revealed.highlighted):
2480         (.details-section.probe-set .data-grid tr.separator):
2481         (.details-section.probe-set .data-grid > tr.data-updated):
2482         (.details-section.probe-set .data-grid .selected .section *):
2483         (.details-section.probe-set .data-grid .selected td.unknown-value):
2484         (.details-section.probe-set .data-grid .section):
2485         * UserInterface/Views/QuickConsole.css:
2486         (.quick-console):
2487         * UserInterface/Views/TimelineDataGrid.css:
2488         (.data-grid.timeline th):
2489         (.data-grid.timeline > .navigation-bar-container > .navigation-bar):
2490         * UserInterface/Views/TimelineRuler.css:
2491         (.timeline-ruler > .header):
2492         (.timeline-ruler > .header > .divider):
2493
2494 2014-08-11  Brent Fulgham  <bfulgham@apple.com>
2495
2496         [Win] Adjust build script for Windows production build.
2497         https://bugs.webkit.org/show_bug.cgi?id=135806
2498         <rdar://problem/17978299>
2499
2500         Reviewed by Timothy Hatcher.
2501
2502         * WebInspectorUI.vcxproj/WebInspectorUI.make: Make sure target for
2503         xcopy operation exists.
2504         * WebInspectorUI.vcxproj/WebInspectorUI.proj: Don't create directories
2505         we don't need, make sure the target location exists before we build.
2506         * WebInspectorUI.vcxproj/build-webinspectorui.pl: Make sure that
2507         production builds get the intermediary command files from the
2508         right place.
2509
2510 2014-08-11  Brian J. Burg  <burg@cs.washington.edu>
2511
2512         Web Inspector: Add a helper to avoid leaking single-fire event listeners in Promise chains
2513         https://bugs.webkit.org/show_bug.cgi?id=135772
2514
2515         Reviewed by Timothy Hatcher.
2516
2517         A common pattern when working with promise chains is to convert an event
2518         handler into a promise by using a single-fire event listener with the
2519         resolve continuation as the callback. This is fine if the event fires;
2520         if it doesn't fire, then the event emitter permanently keeps a reference to the
2521         this-object and the callback.
2522
2523         This patch adds EventListener, a proxy object for events that can be manipulated
2524         from multiple promise callback functions. If a promise is rejected, the catch
2525         block can disconnect any event listeners set up earlier in the promise chain.
2526
2527         This patch also reimplements EventListenerSet to use multiple EventListeners,
2528         since they share the same logic to uniformly handle Inspector and DOM events.
2529
2530         Test: inspector/event-listener.html
2531         Test: inspector/event-listener-set.html
2532
2533         * UserInterface/Base/EventListener.js: Added.
2534         (WebInspector.EventListener):
2535         (WebInspector.EventListener.prototype.this._callback):
2536         (WebInspector.EventListener.prototype.connect):
2537         (WebInspector.EventListener.prototype.disconnect):
2538         * UserInterface/Base/EventListenerSet.js: Update license block.
2539         (WebInspector.EventListenerSet.prototype.register):
2540         (WebInspector.EventListenerSet.prototype.install):
2541         (WebInspector.EventListenerSet.prototype.uninstall):
2542         * UserInterface/Main.html: Include EventListener.
2543         * UserInterface/Test.html: Include EventListener and EventListenerSet.
2544
2545 2014-08-10  Timothy Hatcher  <timothy@apple.com>
2546
2547         Web Inspector: new glyphs are visible on OS X 10.9 builds
2548         https://bugs.webkit.org/show_bug.cgi?id=135743
2549
2550         Reviewed by Joseph Pecoraro.
2551
2552         * UserInterface/Images/Legacy/UserInputPrompt.svg: Removed.
2553         * UserInterface/Images/Legacy/UserInputPromptPrevious.svg: Removed.
2554         * UserInterface/Images/Legacy/UserInputResult.svg: Removed.
2555         Removed images that were not used.
2556
2557         * UserInterface/Views/DashboardContainerView.css:
2558         (body.mac-platform.legacy .dashboard-container .advance-arrow):
2559         * UserInterface/Views/DebuggerDashboardView.js:
2560         (WebInspector.DebuggerDashboardView):
2561         * UserInterface/Views/FolderIcon.css:
2562         (body.mac-platform.legacy .folder-icon .icon):
2563         * UserInterface/Views/HierarchicalPathComponent.css:
2564         (body.mac-platform.legacy .hierarchical-path-component > .selector-arrows):
2565         * UserInterface/Views/LogContentView.js:
2566         (WebInspector.LogContentView):
2567         Use legacy images.
2568
2569         * UserInterface/Views/NavigationSidebarPanel.css:
2570         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected .subtitle):
2571         Fix color for selected subtitle.
2572
2573         * UserInterface/Views/TimelineSidebarPanel.js:
2574         (WebInspector.TimelineSidebarPanel):
2575         Use legacy images.
2576
2577 2014-08-09  Brian J. Burg  <burg@cs.washington.edu>
2578
2579         Web Inspector: TimelineManager should reuse empty recordings
2580         https://bugs.webkit.org/show_bug.cgi?id=135749
2581
2582         Reviewed by Timothy Hatcher.
2583
2584         Check whether the recording is empty before creating a new one.
2585
2586         * UserInterface/Controllers/TimelineManager.js:
2587         (WebInspector.TimelineManager.prototype._loadNewRecording):
2588         * UserInterface/Models/TimelineRecording.js:
2589         (WebInspector.TimelineRecording.prototype.isEmpty):
2590         (WebInspector.TimelineRecording.prototype.unloaded):
2591
2592 2014-08-08  Brian J. Burg  <burg@cs.washington.edu>
2593
2594         Web Inspector: add debugging flag to InspectorTest for unbuffered logging to stderr
2595         https://bugs.webkit.org/show_bug.cgi?id=135726
2596
2597         Reviewed by Timothy Hatcher.
2598
2599         Added a flag for debugging inspector tests which will synchronously log messages.
2600         This avoids failure modes that prevent logging from being added to the test page.
2601
2602         * UserInterface/Base/Test.js:
2603         (InspectorTest.debugLog):
2604         (InspectorTest.addResult):
2605
2606 2014-08-08  Joseph Pecoraro  <pecoraro@apple.com>
2607
2608         Web Inspector: When Switching Recordings, the UI datagrids do not update to match selection
2609         https://bugs.webkit.org/show_bug.cgi?id=135764
2610
2611         Reviewed by Timothy Hatcher.
2612
2613         * UserInterface/Views/TimelineSidebarPanel.js:
2614         When changing the activeContentView trigger an update of the datagrids by
2615         re-applying the filter, which will be different now that the view is different.
2616
2617 2014-08-08  Joseph Pecoraro  <pecoraro@apple.com>
2618
2619         Web Inspector: Uncaught Exception opening Web Inspector - TypeError: undefined is not a function - candidateObjectCookie.every
2620         https://bugs.webkit.org/show_bug.cgi?id=135762
2621
2622         Reviewed by Timothy Hatcher.
2623
2624         * UserInterface/Views/NavigationSidebarPanel.js:
2625         (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
2626         Fix a typo, the wrong object was being used.
2627
2628 2014-08-07  Brian J. Burg  <burg@cs.washington.edu>
2629
2630         REGRESSION(r172094): timeline views are blank after reloading in some situations
2631         https://bugs.webkit.org/show_bug.cgi?id=135742
2632
2633         Reviewed by Timothy Hatcher.
2634
2635         Address various bugs that cause the wrong timeline content views to appear when
2636         starting a recording by reloading the inspected page. Fix other small oversights
2637         that were encountered in the sidebar-based view state restoration code.
2638
2639         * UserInterface/Models/TimelineRecording.js:
2640         (WebInspector.TimelineRecording.prototype.saveIdentityToCookie): Add a dummy implementation.
2641
2642         * UserInterface/Views/NavigationSidebarPanel.js:
2643         (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
2644         This code erroneously matches any tree element whose represented object's
2645         saveIdentityToCookie function produces an empty cookie.
2646
2647         * UserInterface/Views/TimelineContentView.js:
2648         (WebInspector.TimelineContentView.prototype._showTimelineView): Add an assertion
2649         that will find mismatches between represented objects of the TimelineContentView
2650         and TimelineViews.
2651
2652         * UserInterface/Views/TimelineSidebarPanel.js:
2653         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Don't call
2654         the superclass's implementation, since we do not want to perform a relaxed match
2655         against any of our tree elements. The only thing that can be restored across reopen
2656         is a selected timeline tree element, which is already handled by this override.
2657
2658 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
2659
2660         Web Inspector: Fix accidental always true comparison
2661         https://bugs.webkit.org/show_bug.cgi?id=135741
2662
2663         Reviewed by Timothy Hatcher.
2664
2665         Remove accidental "!" that would always cause this comparison to succeed.
2666
2667         * UserInterface/Views/OverviewTimelineView.js:
2668         (WebInspector.OverviewTimelineView.prototype.updateLayout):
2669
2670 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
2671
2672         Web Inspector: Timeline Filter Bars are not appearing at all
2673         https://bugs.webkit.org/show_bug.cgi?id=135740
2674
2675         Reviewed by Timothy Hatcher.
2676
2677         * UserInterface/Views/TimelineDataGrid.css:
2678         (.data-grid.timeline.has-non-default-filter > .navigation-bar-container):
2679         (.data-grid.timeline > .navigation-bar-container > .navigation-bar):
2680         (body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar):
2681         Update the positioning and height for non-legacy because the console is now taller.
2682
2683         * UserInterface/Views/ScopeBar.js:
2684         (WebInspector.ScopeBar.prototype.hasNonDefaultItemSelected):
2685         Helper to know if there is a non-default filter.
2686
2687         * UserInterface/Views/TimelineDataGrid.js:
2688         (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
2689         (WebInspector.TimelineDataGrid.prototype._scopeBarSelectedItemsDidChange):
2690         Update scope bar visibility. If non-default we want to always show it.
2691         
2692         (WebInspector.TimelineDataGrid.prototype._updateScopeBarForcedVisibility):
2693         If there is a non-default filter, force showing the bar.
2694
2695 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
2696
2697         Web Inspector: breakpoints enabled state is not persisted across re-opening the inspector
2698         https://bugs.webkit.org/show_bug.cgi?id=135745
2699
2700         Reviewed by Timothy Hatcher.
2701
2702         When restoring breakpoints when the inspector is initializing, do not
2703         let setting these breakpoints automatically enable breakpoints. We should
2704         respect the setting in this case.
2705
2706         * UserInterface/Controllers/DebuggerManager.js:
2707         (WebInspector.DebuggerManager.restoreBreakpointsSoon):
2708         (WebInspector.DebuggerManager):
2709
2710 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2711
2712         Web Inspector: Combine and minify Esprima
2713         https://bugs.webkit.org/show_bug.cgi?id=135728
2714
2715         Reviewed by Joseph Pecoraro.
2716
2717         * Scripts/combine-resources.pl:
2718         * Scripts/copy-user-interface-resources.pl:
2719         * UserInterface/External/Esprima/LICENSE: Added.
2720
2721 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2722
2723         Fix regression where tree outline keyboard navigation is broken.
2724
2725         https://bugs.webkit.org/show_bug.cgi?id=135718
2726
2727         Reviewed by Joseph Pecoraro.
2728
2729         * UserInterface/Views/TreeOutline.js:
2730         (TreeElement.prototype.revealed): Fix the check for currentAncestor.hidden.
2731
2732 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2733
2734         Web Inspector: Filter bar text and icon are positioned too low and tight
2735         https://bugs.webkit.org/show_bug.cgi?id=135723
2736
2737         Reviewed by Joseph Pecoraro.
2738
2739         * UserInterface/Views/FilterBar.css:
2740         (.filter-bar > input[type="search"]):
2741         (.filter-bar > input[type="search"]::-webkit-search-decoration):
2742         * UserInterface/Views/SearchBar.css:
2743         (.search-bar > input[type="search"]):
2744
2745 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2746
2747         Web Inspector: Dashboard error and warning icons should be filled when enabled
2748         https://bugs.webkit.org/show_bug.cgi?id=135725
2749
2750         Reviewed by Joseph Pecoraro.
2751
2752         * UserInterface/Images/ErrorsEnabled.svg:
2753         * UserInterface/Images/IssuesEnabled.svg:
2754
2755 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
2756
2757         Web Inspector: Dashboard contents shift when window changes active state
2758         https://bugs.webkit.org/show_bug.cgi?id=135724
2759
2760         Reviewed by Timothy Hatcher.
2761
2762         The container was getting a 1px border when inactive and none when active.
2763         Give it a transparent border when active so contents don't change size.
2764
2765         * UserInterface/Views/DashboardContainerView.css:
2766         (.toolbar .dashboard-container):
2767
2768 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2769
2770         Fix reference to missing CloseTimeline.svg image.
2771
2772         Rubber-stamped by Joseph Pecoraro.
2773
2774         * UserInterface/Views/TimelineSidebarPanel.js:
2775         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Use CloseLarge.svg instead.
2776
2777 2014-08-07  Brent Fulgham  <bfulgham@apple.com>
2778
2779         [Win] Unreviewed build fix.
2780
2781         Add a WebInspectorUI.proj file for use with MSBuild utility.
2782
2783         * WebInspectorUI.vcxproj/WebInspectorUI.proj: Added.
2784
2785 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
2786
2787         Get rid of INPUT_SPEECH
2788         https://bugs.webkit.org/show_bug.cgi?id=135672
2789
2790         Reviewed by Andreas Kling.
2791
2792         * UserInterface/Models/CSSKeywordCompletions.js:
2793
2794 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
2795
2796         Web Inspector: Dragging selection window when mouse goes out of window bounds does not behave as expected
2797         https://bugs.webkit.org/show_bug.cgi?id=135372
2798
2799         Reviewed by Timothy Hatcher.
2800
2801         Constrain move selection window dragging to the ruler bounds
2802         based on the mouse down position on the drag window.
2803
2804         * UserInterface/Views/TimelineRuler.js:
2805         (WebInspector.TimelineRuler.prototype._handleMouseDown):
2806         (WebInspector.TimelineRuler.prototype._handleMouseMove):
2807         (WebInspector.TimelineRuler.prototype._handleMouseUp):
2808
2809 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2810
2811         Web Inspector: Update glyphs to be more like Xcode 6
2812         https://bugs.webkit.org/show_bug.cgi?id=135705
2813
2814         Reviewed by Joseph Pecoraro.
2815
2816         * Localizations/en.lproj/localizedStrings.js: Updated.
2817
2818         * UserInterface/Base/ImageUtilities.js:
2819         (platformImagePath): Added.
2820         (generateEmbossedImages.generateImage):
2821         Bump the base image version. Helper function. Use isLegacyMacOS.
2822
2823         * UserInterface/Base/Main.js:
2824         (WebInspector.contentLoaded):
2825         (WebInspector._updateDockNavigationItems):
2826         (WebInspector._generateDisclosureTriangleImages):
2827         Use new images and add legacy path. Remove the shadow.
2828
2829         * UserInterface/Images: Updated images.
2830         * UserInterface/Images/Legacy: Added. Moved legacy images here.
2831
2832         * UserInterface/Views/CSSStyleDeclarationSection.css:
2833         (.style-declaration-section):
2834         (body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
2835         (.style-declaration-section.last-in-group):
2836         (.style-declaration-section.last-in-group + .style-declaration-section):
2837         Use a consistent gray for borders.
2838
2839         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2840         (.sidebar > .panel.details.css-style > .content > .pseudo-classes):
2841         Use a consistent gray for borders.
2842
2843         * UserInterface/Views/ContentBrowser.js:
2844         (WebInspector.ContentBrowser):
2845         Use new images and add legacy path.
2846
2847         * UserInterface/Views/ControlToolbarItem.css:
2848         (.toolbar .item.control):
2849         (body.mac-platform.legacy .toolbar .item.control):
2850         (.toolbar .item.control:hover):
2851         (body.mac-platform.legacy .toolbar .item.control:hover):
2852         Adjust the opacity for controls.
2853
2854         * UserInterface/Views/DOMTreeContentView.js:
2855         (WebInspector.DOMTreeContentView):
2856         Use new images and add legacy path.
2857
2858         * UserInterface/Views/DataGrid.css:
2859         (.data-grid tr.selected):
2860         Use a consistent gray for borders.
2861
2862         * UserInterface/Views/DataGrid.js:
2863         (WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):
2864         Use new images and add legacy path. Remove the shadow.
2865
2866         * UserInterface/Views/DebuggerSidebarPanel.js:
2867         (WebInspector.DebuggerSidebarPanel):
2868         Use new images and add legacy path.
2869
2870         * UserInterface/Views/DefaultDashboardView.css:
2871         (.toolbar .dashboard.default > .item):
2872         (body.mac-platform.legacy .toolbar .dashboard.default > .item):
2873         (body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img):
2874         (body.mac-platform.legacy .toolbar .dashboard.default > .time > img):
2875         (body.mac-platform.legacy .toolbar .dashboard.default > .logs > img):
2876         (body.mac-platform.legacy .toolbar .dashboard.default > .resourcesSize > img):
2877         (body.mac-platform.legacy .toolbar .dashboard.default > .errors > img):
2878         (body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img):
2879         (body.mac-platform.legacy .toolbar .dashboard.default > .issues > img):
2880         (body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img):
2881         Use new images and add legacy path.
2882
2883         * UserInterface/Views/DetailsSection.css:
2884         (.details-section):
2885         (.details-section .details-section:first-child):
2886         (body.mac-platform.legacy .details-section > .header):
2887         (.details-section > .content > .group):
2888         (.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *):
2889         (body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
2890         Use a consistent gray for borders.
2891
2892         * UserInterface/Views/FilterBar.css:
2893         (body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration):
2894         Use new images and add legacy path.
2895
2896         * UserInterface/Views/FindBanner.css:
2897         (.find-banner):
2898         Use a consistent gray for borders.
2899
2900         * UserInterface/Views/FindBanner.js:
2901         (WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
2902         Add legacy path.
2903
2904         * UserInterface/Views/FrameTreeElement.js:
2905         (WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
2906         Use new images and add legacy path.
2907
2908         * UserInterface/Views/LogContentView.js:
2909         (WebInspector.LogContentView):
2910         Use new images and add legacy path.
2911
2912         * UserInterface/Views/Main.css:
2913         (#split-content-browser):
2914         Use a consistent gray for borders.
2915
2916         * UserInterface/Views/NavigationSidebarPanel.css:
2917         (.sidebar > .panel.navigation > .overflow-shadow):
2918         (body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow):
2919         (.sidebar > .panel.navigation > .overflow-shadow.top):
2920         (body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top):
2921         (.sidebar > .panel.navigation > .empty-content-placeholder):
2922         (body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder):
2923         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected .disclosure-button):
2924         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected.expanded .disclosure-button):
2925         (.navigation-sidebar-panel-content-tree-outline .item.selected):
2926         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
2927         Adjust the styles to make the selected item use white text and icons only when focused.
2928
2929         * UserInterface/Views/NavigationSidebarPanel.js:
2930         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
2931         (WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):
2932         Remove the shadow from the disclosure triangles. Make the overflow shadow not fade.
2933
2934         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
2935         (.details-section.probe-set .options > .probe-clear-samples):
2936         (.details-section.probe-set .options > .probe-remove):
2937         (.details-section.probe-set .options > .probe-add):
2938         (body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples):
2939         (body.mac-platform.legacy .details-section.probe-set .options > .probe-remove):
2940         (body.mac-platform.legacy .details-section.probe-set .options > .probe-add):
2941         Tweak size and position of icons and use legacy paths.
2942
2943         * UserInterface/Views/QuickConsole.css:
2944         (.quick-console):
2945         Adjust padding to match filter bar height.
2946
2947         * UserInterface/Views/ResourceSidebarPanel.css:
2948         (.sidebar > .panel.navigation.resource > .search-bar):
2949         Adjust height.
2950
2951         * UserInterface/Views/RulesStyleDetailsPanel.css:
2952         (.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
2953         (.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
2954         (body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img):
2955         Use a consistent gray for borders. Don't bold the New Rule label.
2956
2957         * UserInterface/Views/ScriptContentView.js:
2958         (WebInspector.ScriptContentView):
2959         Use new images and add legacy path.
2960
2961         * UserInterface/Views/Sidebar.css:
2962         (.sidebar.left):
2963         (.sidebar.right):
2964         Use a consistent gray for borders.
2965
2966         * UserInterface/Views/TextContentView.js:
2967         (WebInspector.TextContentView):
2968         Use new images and add legacy path.
2969
2970         * UserInterface/Views/TextResourceContentView.js:
2971         (WebInspector.TextResourceContentView):
2972         Use new images and add legacy path.
2973
2974         * UserInterface/Views/TimelineContentView.js:
2975         (WebInspector.TimelineContentView):
2976         Use new images and add legacy path.
2977
2978         * UserInterface/Views/TimelineDataGrid.css:
2979         (.data-grid.timeline th):
2980         (.data-grid.timeline th.sortable:active):
2981         (.data-grid.timeline th.sort-descending):
2982         Fix a regression with the gradient background showing in legacy mode.
2983
2984         * UserInterface/Views/TimelineIcons.css:
2985         (body.mac-platform.legacy .network-icon .icon):
2986         (body.mac-platform.legacy .network-icon.large .icon):
2987         (body.mac-platform.legacy .colors-icon .icon):
2988         (body.mac-platform.legacy .colors-icon.large .icon):
2989         Added legacy versions of these icons.
2990
2991         * UserInterface/Views/TimelineSidebarPanel.css:
2992         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2993         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
2994         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active):
2995         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
2996         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2997         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
2998         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
2999         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
3000         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
3001         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
3002         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
3003         (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
3004         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
3005         Update the styles for the recording button and close button.
3006
3007         * UserInterface/Views/TimelineSidebarPanel.js:
3008         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
3009         Use TreeElementStatusButton instead of a styled image.
3010
3011         * UserInterface/Views/TreeElementStatusButton.css:
3012         (.item > .status > .status-button > svg path.filled):
3013         (body.mac-platform.legacy .item > .status > .status-button > svg path.filled):
3014         (:focus .item.selected > .status > .status-button > svg path.filled):
3015         (.item > .status > .status-button > svg path.stroked):
3016         (body.mac-platform.legacy .item > .status > .status-button > svg path.stroked):
3017         (:focus .item.selected > .status > .status-button > svg path.stroked):
3018         (.item.selected > .status > .status-button:active):
3019         (.item > .status > .status-button.disabled):
3020         Updated selectors and styles to work with stroke or fill.
3021
3022 2014-08-07  Brian J. Burg  <burg@cs.washington.edu>
3023
3024         Web Inspector: DebuggerManager sends spurious setBreakpointsActive commands when setting a breakpoint
3025         https://bugs.webkit.org/show_bug.cgi?id=135674
3026
3027         Reviewed by David Kilzer.
3028
3029         * UserInterface/Controllers/DebuggerManager.js:
3030         (WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Fix a typo.
3031
3032 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
3033
3034         Web Inspector: breakpoint resolved state should not depend on all breakpoints being enabled
3035         https://bugs.webkit.org/show_bug.cgi?id=135517
3036
3037         Reviewed by Joseph Pecoraro.
3038
3039         Previously, Breakpoint.resolved returned false if all breakpoints were disabled, even if
3040         the breakpoint had an associated SourceCode. This was a weird hack to make it easier to
3041         style breakpoint widgets. This made it hard for other code to deal with resolved
3042         breakpoints that were also disabled, or SourceCodeLocations that resolve and unresolve.
3043         This patch removes that consideration and fixes style update code to manually check if all
3044         breakpoints are being suppressed.
3045
3046         The code now enforces that a Breakpoint must have a SourceCode before it can be resolved.
3047         (As a performance optimization when loading the initial frame tree, we sometimes we give
3048         Breakpoints a SourceCode before the debugger officially says that the breakpoint has been
3049         resolved. Thus, it's possible to be unresolved with a SourceCode, but not vice-versa.)
3050
3051         This patch also adds a few guards where we assumed a SourceCodeLocation had a SourceCode.
3052
3053         * UserInterface/Controllers/DebuggerManager.js:
3054         (WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Remove spurious
3055         ResolvedStateDidChange events.
3056
3057         (WebInspector.DebuggerManager.prototype.breakpointResolved): Set the breakpoint's SourceCode
3058         if it has not been set already by DebuggerManager.associateBreakpointsWithSourceCode.
3059
3060         * UserInterface/Models/Breakpoint.js:
3061         (WebInspector.Breakpoint.prototype.get resolved):
3062         (WebInspector.Breakpoint.prototype.set resolved.isSpecialBreakpoint):
3063         (WebInspector.Breakpoint.prototype.set resolved): Add an assertion.
3064         * UserInterface/Models/SourceCodeLocation.js: Add guards for !SourceCode.
3065         (WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationTooltip):
3066         * UserInterface/Views/BreakpointTreeElement.js: Account for DebuggerManager.breakpointsEnabled.
3067         (WebInspector.BreakpointTreeElement):
3068         (WebInspector.BreakpointTreeElement.prototype._updateStatus):
3069         * UserInterface/Views/ProbeSetDetailsSection.js:
3070         (WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Loosen the assertion.
3071         * UserInterface/Views/SourceCodeTextEditor.js: Account for DebuggerManager.breakpointsEnabled.
3072         (WebInspector.SourceCodeTextEditor):
3073         (WebInspector.SourceCodeTextEditor.prototype.close):
3074         (WebInspector.SourceCodeTextEditor.prototype._breakpointStatusDidChange):
3075         (WebInspector.SourceCodeTextEditor.prototype._breakpointsEnabledDidChange):
3076         (WebInspector.SourceCodeTextEditor.prototype._updateBreakpointStatus):
3077         * UserInterface/Views/TextEditor.js: Account for DebuggerManager.breakpointsEnabled.
3078
3079 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
3080
3081         Web Inspector: ReplayManager should unpause and suppress breakpoints before capturing/replaying
3082         https://bugs.webkit.org/show_bug.cgi?id=135608
3083
3084         Reviewed by Timothy Hatcher.
3085
3086         It is jarring when the debugger pauses during capturing or replaying. For now, we should suppress
3087         all breakpoints during capturing or replaying, and restore breakpoint enabled state when
3088         capturing finishes, when replaying finishes, or during temporary replay pauses.
3089
3090         In the future, the debugger will be selectively enabled during playback to seek to specific
3091         breakpoint hits. This is tracked in https://bugs.webkit.org/show_bug.cgi?id=135663.
3092
3093         * UserInterface/Controllers/ReplayManager.js:
3094         (WebInspector.ReplayManager.prototype.startCapturing.result):
3095         (WebInspector.ReplayManager.prototype.replayToPosition.result):
3096         (WebInspector.ReplayManager.prototype.replayToCompletion.result):
3097         (WebInspector.ReplayManager.prototype.captureStopped):
3098         (WebInspector.ReplayManager.prototype.playbackPaused):
3099         (WebInspector.ReplayManager.prototype.playbackFinished):
3100         (WebInspector.ReplayManager.prototype._changeSegmentState):
3101         (WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
3102
3103 2014-08-06  Brent Fulgham  <bfulgham@apple.com>
3104
3105         [Win] Build fix.
3106
3107         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: DebugSuffix target was missing
3108         proper path settings for final output.
3109
3110 2014-08-06  Wenson Hsieh  <wenson_hsieh@apple.com>
3111
3112         Implement parsing for CSS scroll snap points
3113         https://bugs.webkit.org/show_bug.cgi?id=134301
3114
3115         Reviewed by Dean Jackson.
3116
3117         * UserInterface/Models/CSSKeywordCompletions.js: Added snap point property keywords, such as mandatory, proximity, elements, and repeat.
3118
3119 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
3120
3121         REGRESSION(r172094): tests fail because Inspector test harness does not include UIString
3122         https://bugs.webkit.org/show_bug.cgi?id=135658
3123
3124         Reviewed by Joseph Pecoraro.
3125
3126         * UserInterface/Base/Test.js:
3127         (WebInspector.contentLoaded): Fix brace placement.
3128         (WebInspector.UIString): Added. This is the identity function during testing.
3129
3130 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
3131
3132         Web Inspector: convert ReplayManager to a promise-based API
3133         https://bugs.webkit.org/show_bug.cgi?id=135249
3134
3135         Reviewed by Timothy Hatcher.
3136
3137         Convert replay commands to an asynchronous, promise-based API. This addresses
3138         two problems with a synchronous replay API: clients can only use the synchronous
3139         API if session and segment state are exactly correct, and trying to change state
3140         to match this requirement requires chaining multiple commands and events.
3141
3142         The asynchronous API allows clients to issue replay commands with impunity,
3143         as long as they can be unambiguously handled. For example, issuing
3144         pausePlayback() while capturing is not allowed, but issuing startCapturing()
3145         while replaying is allowed. The API also hides implementation details that
3146         are not important, such as steps to unpause or temporarily disable the debugger.
3147
3148         This patch also cleans up uses of promises, such as adding error re-throwing.
3149         It adds return type annotations to public ReplayManager asynchronous methods.
3150
3151         * UserInterface/Controllers/ReplayManager.js:
3152         (WebInspector.ReplayManager.catch):
3153         (WebInspector.ReplayManager):
3154         (WebInspector.ReplayManager.prototype.createSession):
3155         (WebInspector.ReplayManager.prototype.switchSession):
3156         (WebInspector.ReplayManager.prototype.startCapturing):
3157         (WebInspector.ReplayManager.prototype.stopCapturing):
3158         (WebInspector.ReplayManager.prototype.replayToPosition):
3159         (WebInspector.ReplayManager.prototype.replayToCompletion):
3160         (WebInspector.ReplayManager.prototype.sessionCreated.catch): re-throw.
3161         (WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
3162         (WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
3163         (WebInspector.ReplayManager.prototype.segmentUnloaded.catch): re-throw.
3164         (WebInspector.ReplayManager.prototype.sessionCreated.catech): re-throw.
3165
3166 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
3167
3168         Web Inspector: protocol command invocations should return a promise if no callback is supplied
3169         https://bugs.webkit.org/show_bug.cgi?id=130702
3170
3171         Reviewed by Timothy Hatcher.
3172
3173         This allows the trailing Agent.command.promise(args) to be dropped in favor of just
3174         Agent.command(args). It should make it a bit easier to convert code to use promises.
3175
3176         Test: LayoutTests/inspector/protocol-promise-result.html
3177
3178         * UserInterface/Controllers/ReplayManager.js: Drop use of .promise().
3179         * UserInterface/Controllers/TimelineManager.js: Drop use of .promise().
3180         (WebInspector.TimelineManager.prototype.startCapturing):
3181         * UserInterface/Protocol/InspectorBackend.js:
3182         (.callable): Redirect to the promise entry point if the last argument isn't a function.
3183         (InspectorBackend.Command.create):
3184
3185 2014-08-05  James Craig  <jcraig@apple.com>
3186
3187         Web Inspector: AXI: Add label string once AccessibilityObject::computedLabel() is available
3188         https://bugs.webkit.org/show_bug.cgi?id=129940
3189
3190         Reviewed by Chris Fleizach.
3191
3192         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI update for label field in Node Inspector.
3193         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
3194
3195 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
3196
3197         Web Inspector: support storing multiple timeline recordings in the manager
3198         https://bugs.webkit.org/show_bug.cgi?id=132875
3199
3200         Reviewed by Timothy Hatcher.
3201
3202         This patch adds support for capturing multiple timeline recordings and switching
3203         between them in the user interface using hierarchical path components.
3204
3205         * Localizations/en.lproj/localizedStrings.js:
3206         * UserInterface/Base/Main.js:
3207         (WebInspector.contentLoaded): Remove hard-coded priming of the timeline sidebar panel.
3208         Instead, load the first recording in the timeline manager after the initial load.
3209
3210         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Don't suppress
3211         onselect events when selecting the tree element for a newly shown content view. This
3212         allows the sidebar to sync the current content view and timeline tree element selection
3213         with what is displayed in the content browser.
3214
3215         * UserInterface/Controllers/TimelineManager.js: Add two new events, RecordingCreated and
3216         RecordingLoaded. A recording is considered active when any new records recieved will be
3217         appended to that recording. The user interface is not necessarily viewing the active
3218         recording.
3219
3220         (WebInspector.TimelineManager.delayedWork):
3221         (WebInspector.TimelineManager): Keep a list of recordings, and load the first recording
3222         asynchronously so that everyone can add an event listener for it.
3223
3224         (WebInspector.TimelineManager.prototype.get activeRecording):
3225         (WebInspector.TimelineManager.prototype.get recordings):
3226         (WebInspector.TimelineManager.prototype.startCapturing):
3227         (WebInspector.TimelineManager.prototype.stopCapturing): Use promises to make the iOS 7
3228         fallback path better match the async semantics of the non-fallback path.
3229
3230         (WebInspector.TimelineManager.prototype.unloadRecording):
3231         (WebInspector.TimelineManager.prototype._loadNewRecording): Stop capturing and unload
3232         any existing recording before creating and loading a new recording.
3233
3234         (WebInspector.TimelineManager.prototype._startAutoCapturing): Create a new recording
3235         rather than resetting the current recording.
3236
3237         * UserInterface/Models/NetworkTimeline.js:
3238         (WebInspector.NetworkTimeline):
3239         * UserInterface/Models/Timeline.js:
3240         (WebInspector.Timeline):
3241         (WebInspector.Timeline.prototype.get type): Each timeline stores its TimelineRecord.Type
3242         so that other code can create type-specific views using the Timeline as a representedObject.
3243
3244         * UserInterface/Models/TimelineRecording.js: For each recording, add new state for a unique identifier,
3245         display string, and an isWritable flag. Once a recording is unloaded, it becomes read-only.
3246         (WebInspector.TimelineRecording.prototype.get displayName):
3247         (WebInspector.TimelineRecording.prototype.get identifier):
3248         (WebInspector.TimelineRecording.prototype.isWritable):
3249         (WebInspector.TimelineRecording.prototype.unloaded):
3250         (WebInspector.TimelineRecording.prototype.reset): A recording can only be reset if it is writable.
3251
3252         * UserInterface/Protocol/InspectorFrontendAPI.js:
3253         (InspectorFrontendAPI.setTimelineProfilingEnabled): Don't make redundant start/stop capturing calls.
3254
3255         * UserInterface/Views/LayoutTimelineOverviewGraph.js: Use a timeline as the representedObject for all
3256         timeline-specific graphs and views. Otherwise, use the recording.
3257         (WebInspector.LayoutTimelineOverviewGraph):
3258         * UserInterface/Views/LayoutTimelineView.js:
3259         (WebInspector.LayoutTimelineView):
3260         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
3261         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
3262         (WebInspector.NetworkTimelineOverviewGraph):
3263         * UserInterface/Views/NetworkTimelineView.js:
3264         (WebInspector.NetworkTimelineView):
3265         * UserInterface/Views/OverviewTimelineView.js:
3266         (WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
3267         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
3268         (WebInspector.ScriptTimelineOverviewGraph):
3269         * UserInterface/Views/ScriptTimelineView.js:
3270         (WebInspector.ScriptTimelineView):
3271         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
3272
3273         * UserInterface/Views/TimelineContentView.js: Iterate over timeline objects when setting up maps. Use timelines
3274         as keys rather than their type identifiers.
3275         (WebInspector.TimelineContentView.prototype.showTimelineViewForTimeline): Renamed from showTimelineView. This
3276         function takes a Timeline instance rather than an identifier, since the conten view is specific to one recording.
3277         (WebInspector.TimelineContentView.prototype.get selectionPathComponents): Match types against the currently
3278         visible timeline's representedObject.
3279         (WebInspector.TimelineContentView.prototype.get currentTimelineView): Used by the sidebar panel to sync timeline
3280         tree element selections to TimelineView shown by the TimelineContentView.
3281         (WebInspector.TimelineContentView.prototype.shown): Sync enablement of the "Clear Timelines" button to recording
3282         read-only state.
3283
3284         (WebInspector.TimelineContentView.prototype.saveToCookie):
3285         (WebInspector.TimelineContentView.prototype.restoreFromCookie): Added. Only handle saving/restoring the subview.
3286
3287         (WebInspector.TimelineContentView.prototype._pathComponentSelected):
3288         (WebInspector.TimelineContentView.prototype._showTimelineView): Relax the early return so that timeline views
3289         and content tree outlines are reattached when re-navigating to the same timeline view via back-forward entries.
3290         (WebInspector.TimelineContentView.prototype.showTimelineView): Deleted.
3291
3292         * UserInterface/Views/TimelineOverviewGraph.js:
3293         (WebInspector.TimelineOverviewGraph):
3294
3295         * UserInterface/Views/TimelineSidebarPanel.js:
3296         (WebInspector.TimelineSidebarPanel): Keep a tree outline and tree element map for storing available recordings.
3297         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
3298         (WebInspector.TimelineSidebarPanel.prototype.shown): Added.
3299         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView): Add a guard.
3300         (WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Added. Selected recording tree elements
3301         should be considered when deciding whether a represented object has been selected in the sidebar panel.
3302
3303         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
3304         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
3305         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
3306         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
3307         (WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForType): Renamed to explicit take a type identifier.
3308         Delegate the actual showing of the timeline view to the onselect handler for the timelines tree outline.
3309
3310         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
3311         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie): Fix a typo.
3312         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Fix a typo.
3313         (WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Sync the currently displayed
3314         recording object and content view, and sync the selected tree element to the displayed timeline subview.
3315
3316         (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): If this is a user action, show the timeline.
3317         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange): Use classList.toggle().
3318         (WebInspector.TimelineSidebarPanel.prototype._recordingCreated): Dynamically add new recordings to the interface.
3319         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded): Automatically show recordings when they are loaded.
3320         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked): Shift+click will force-create a new recording.
3321         (WebInspector.TimelineSidebarPanel.prototype.initialize): Deleted.
3322         * UserInterface/Views/TimelineView.js:
3323         (WebInspector.TimelineView):
3324         (WebInspector.TimelineView.prototype.get representedObject):
3325
3326 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
3327
3328         Web Inspector: ReplayManager shouldn't assume replay status when the inspector is opened
3329         https://bugs.webkit.org/show_bug.cgi?id=135212
3330
3331         Reviewed by Timothy Hatcher.
3332
3333         The inspector could be closed and reopened at any point during capturing or replaying.
3334         ReplayManager should query the current state on initialization rather than assuming
3335         that the replay controller is still in its initial state.
3336
3337         ReplayManager's initialization code requires querying the backend for the current replay
3338         state. This could race with replay protocol events that mutate the manager's state before
3339         it is fully initialized, leading to undefined behavior.
3340
3341         To mitigate this, all protocol event handlers (called by ReplayObserver) are wrapped
3342         with a guard that enqueues the callback if initialization is not yet complete. This
3343         queue is implemented via multiple then-chaining of a shared 'initialization' promise
3344         which resolves when initialization completes.
3345
3346         * UserInterface/Controllers/ReplayManager.js:
3347         (WebInspector.ReplayManager.then):
3348         (WebInspector.ReplayManager.catch):
3349         (WebInspector.ReplayManager): Rewrite the initialization code to first query the replay
3350         state, set the initialization flag to true, and then request and update session records.
3351         The sessions must be loaded after querying initial state because ReplayManager.sessionCreated
3352         requires replay state to be initialized.
3353
3354         (WebInspector.ReplayManager.prototype.get sessionState):
3355         (WebInspector.ReplayManager.prototype.get segmentState):
3356         (WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
3357         (WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
3358         (WebInspector.ReplayManager.prototype.get playbackSpeed):
3359         (WebInspector.ReplayManager.prototype.set playbackSpeed):
3360         (WebInspector.ReplayManager.prototype.get currentPosition): Add assertions to catch uses of
3361         manager state before the manager is fully initialized.
3362
3363         (WebInspector.ReplayManager.prototype.waitUntilInitialized): Added. It returns a shared promise
3364         that is fulfilled when initialization is complete.
3365
3366         (WebInspector.ReplayManager.prototype.captureStarted):
3367         (WebInspector.ReplayManager.prototype.captureStopped):
3368         (WebInspector.ReplayManager.prototype.playbackStarted):
3369         (WebInspector.ReplayManager.prototype.playbackHitPosition):
3370         (WebInspector.ReplayManager.prototype.playbackPaused):
3371         (WebInspector.ReplayManager.prototype.playbackFinished):
3372         (WebInspector.ReplayManager.prototype.sessionModified):
3373         (WebInspector.ReplayManager.prototype.sessionLoaded):
3374         (WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
3375         (WebInspector.ReplayManager.prototype.segmentCompleted):
3376         (WebInspector.ReplayManager.prototype.segmentRemoved.then):
3377         (WebInspector.ReplayManager.prototype.segmentRemoved):
3378         (WebInspector.ReplayManager.prototype.segmentLoaded): Add initialization guards.
3379
3380 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
3381
3382         Web Replay: rename protocol methods for getting replay session/segment data
3383         https://bugs.webkit.org/show_bug.cgi?id=135618
3384
3385         Reviewed by Timothy Hatcher.
3386
3387         * UserInterface/Controllers/ReplayManager.js:
3388         (WebInspector.ReplayManager.prototype.getSession.get var):
3389         (WebInspector.ReplayManager.prototype.getSegment.get var):
3390         * UserInterface/Models/ReplaySession.js:
3391         (WebInspector.ReplaySession.prototype.segmentsChanged):
3392
3393 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
3394
3395         Web Inspector: cannot navigate between multiple applicable dashboards
3396         https://bugs.webkit.org/show_bug.cgi?id=135130
3397
3398         Reviewed by Timothy Hatcher.
3399
3400         Add navigation arrows between dashboards when multiple dashboards are applicable.
3401         For example, the user should be able to go back to the default dashboard while paused
3402         at a breakpoint. Dashboards form a stack based on when they are first introduced.
3403
3404         * UserInterface/Views/DashboardContainerView.css:
3405         (.toolbar .dashboard): Increase padding-right a bit to make room for arrows.
3406         (.toolbar .dashboard:not(.visible)): Fix a bug where higher dashboards in the dashboard stack
3407         can shine through when animating between two lower dashboards that have transparent background.
3408         This ensures that at most two dashboards (namely, the ones being animated) are displayed.
3409
3410         (.dashboard-container .advance-arrow): Main style class for navigation arrows.
3411         (.dashboard-container .advance-arrow:hover):
3412         (.dashboard-container .advance-arrow:active):
3413         (.dashboard-container .advance-arrow.inactive):
3414         (.toolbar.label-only .dashboard-container .advance-arrow): Make arrows slightly smaller when
3415         the dashboards get shorter.
3416
3417         (.dashboard-container .advance-arrow.advance-forward):
3418         (.dashboard-container .advance-arrow.advance-backward):
3419         * UserInterface/Views/DashboardContainerView.js:
3420         (WebInspector.DashboardContainerView): Arrow styles are updated when a dashboard is shown,
3421         hidden, or closed. When moving away, we dismiss (i.e., set zero opacity) arrows at animation
3422         start. When the animation finishes, redisplay arrows that are applicable for the new dashboard.
3423
3424         (WebInspector.DashboardContainerView.prototype._advanceForwardArrowClicked):
3425         (WebInspector.DashboardContainerView.prototype._advanceBackwardArrowClicked):
3426         (WebInspector.DashboardContainerView.prototype._dismissAdvanceArrows):
3427         (WebInspector.DashboardContainerView.prototype._updateAdvanceArrowVisibility):
3428         (WebInspector.DashboardContainerView.prototype._showDashboardAtIndex): There was a bug here
3429         where it would unconditionally use the same animation direction when showing a dashboard, but
3430         it was hard to spot without arrows that must correlate with the animation direction.
3431
3432         (WebInspector.DashboardContainerView.prototype.animationEnded):
3433         (WebInspector.DashboardContainerView.prototype._showDashboardView):
3434         (WebInspector.DashboardContainerView.prototype._hideDashboardView):
3435         (WebInspector.DashboardContainerView.prototype._closeDashboardView):
3436
3437 2014-08-05  Saam Barati  <sbarati@apple.com>
3438
3439         Web Inspector: shown() called on a content view when stepping over an instruction in the debugger
3440         https://bugs.webkit.org/show_bug.cgi?id=135311
3441
3442         Reviewed by Timothy Hatcher.
3443
3444         ContentViewContainer should not repeatedly call ContentView.prototype.shown 
3445         on ContentViews that are already visible. ContentViewContainer now passes
3446         a flag to BackForwardEntry.prototype.prepareToShow indicating whether it should
3447         call the shown function on the ContentView it is about to display.
3448         ContentViewContainer.prototype.showBackForwardEntryForIndex passes in this
3449         flag based on its ContentView being visible.
3450
3451         * UserInterface/Models/BackForwardEntry.js:
3452         (WebInspector.BackForwardEntry.prototype.prepareToShow):
3453         * UserInterface/Views/ContentViewContainer.js:
3454         (WebInspector.ContentViewContainer.prototype.showBackForwardEntryForIndex):
3455         (WebInspector.ContentViewContainer.prototype.replaceContentView):
3456         (WebInspector.ContentViewContainer.prototype.closeAllContentViewsOfPrototype):
3457         (WebInspector.ContentViewContainer.prototype.shown):
3458         (WebInspector.ContentViewContainer.prototype._showEntry):
3459
3460 2014-08-01  Jonathan Wells  <jonowells@apple.com>
3461
3462         Web Inspector: Timeline header height doesn't match style updates.
3463         https://bugs.webkit.org/show_bug.cgi?id=135516
3464
3465         Reviewed by Timothy Hatcher.
3466
3467         Update the timeline header height to match the updates
3468         to the navigation bars in other panels made in
3469         https://bugs.webkit.org/show_bug.cgi?id=135445. Also
3470         update the shadows on some of the search bars.
3471
3472         * UserInterface/Views/FilterBar.css:
3473         (.filter-bar > input[type="search"]):
3474         (body.mac-platform.legacy .filter-bar > input[type="search"]):
3475         * UserInterface/Views/FindBanner.css:
3476         (.find-banner > input[type="search"]):
3477         (body.mac-platform.legacy .find-banner > input[type="search"]):
3478         * UserInterface/Views/LogContentView.css:
3479         (.search-bar.log-search-bar > input[type="search"]):
3480         (body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]):
3481         Remove inset shadows on search bars.
3482
3483         * UserInterface/Views/TimelineSidebarPanel.css:
3484         (.sidebar > .panel.navigation.timeline > .status-bar):
3485         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar):
3486         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
3487         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
3488         (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
3489         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status):
3490         (.sidebar > .panel.navigation.timeline > .title-bar.timelines):
3491         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines):
3492         (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
3493         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
3494         (.sidebar > .panel.navigation.timeline > .timelines-content):
3495         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content):
3496         (.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
3497         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder):
3498         Update the height of the timeline status bar.
3499
3500 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
3501
3502         Web Inspector: "Stop Recording" button feels unresponsive, recording takes a long time to stop
3503         https://bugs.webkit.org/show_bug.cgi?id=135490
3504
3505         Reviewed by Timothy Hatcher.
3506
3507         * UserInterface/Controllers/TimelineManager.js:
3508         (WebInspector.TimelineManager.prototype.stopCapturing):
3509         Immediately stop the recording without waiting for an event from the backend.
3510         This makes the Web Inspector UI feel responsive to the user stopping the recording.
3511         This also matches behavior before r171195.
3512
3513 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
3514
3515         Web Inspector: Timeline recording is not working inspecting iOS 7 and earlier
3516         https://bugs.webkit.org/show_bug.cgi?id=135466
3517
3518         Reviewed by Timothy Hatcher.
3519
3520         Start / stop capturing for older backends that won't emit start / stop events.
3521
3522         * UserInterface/Protocol/InspectorBackend.js:
3523         (InspectorBackend.Agent.prototype.hasEvent):
3524         Provide a way to check if an event is supported.
3525
3526         * UserInterface/Controllers/TimelineManager.js:
3527         (WebInspector.TimelineManager.prototype.startCapturing):
3528         (WebInspector.TimelineManager.prototype.stopCapturing):
3529         Fallback to starting and stopping capturing manually if the backend
3530         does not provide the events.
3531
3532 2014-07-31  Jonathan Wells  <jonowells@apple.com>
3533
3534         Web Inspector: Sync button look and feel with Xcode updates.
3535         https://bugs.webkit.org/show_bug.cgi?id=135445
3536
3537         Reviewed by Timothy Hatcher.
3538
3539         Update styles to match recent changes to Xcode text-only
3540         buttons, the navigation bar, and search fields. Include
3541         older style rules for older Mac platforms.
3542
3543         * UserInterface/Views/ButtonNavigationItem.css:
3544         (.navigation-bar .item.button.text-only):
3545         (body.mac-platform.legacy .navigation-bar .item.button.text-only):
3546         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
3547         (.sidebar > .panel.details.css-style > .navigation-bar):
3548         (.sidebar > .panel.details.css-style > .content):
3549         (body.mac-platform.legacy .sidebar > .panel.details.css-style > .content):
3550         * UserInterface/Views/DebuggerSidebarPanel.css:
3551         (.sidebar > .panel.navigation.debugger > .content):
3552         (body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content):
3553         * UserInterface/Views/DividerNavigationItem.css:
3554         (.navigation-bar .item.divider):
3555         (body.mac-platform.legacy .navigation-bar .item.divider):
3556         * UserInterface/Views/FilterBar.css:
3557         (.filter-bar):
3558         (body.mac-platform.legacy .filter-bar):
3559         (.filter-bar > input[type="search"]):
3560         (body.mac-platform.legacy .filter-bar > input[type="search"]):
3561         * UserInterface/Views/LogContentView.css:
3562         (.search-bar.log-search-bar > input[type="search"]):
3563         (@media reader):
3564         (.log-search-bar > input): Deleted.
3565         * UserInterface/Views/Main.css:
3566         (#split-content-browser > .navigation-bar):
3567         (body.mac-platform.legacy #split-content-browser > .navigation-bar):
3568         * UserInterface/Views/NavigationBar.css:
3569         (.navigation-bar):
3570         (body.mac-platform.legacy .navigation-bar):
3571         (.navigation-bar .item):
3572         (body.mac-platform.legacy .navigation-bar .item):
3573         * UserInterface/Views/NavigationSidebarPanel.css:
3574         (.sidebar > .panel.navigation > .content):
3575         (body.mac-platform.legacy .sidebar > .panel.navigation > .content):
3576         * UserInterface/Views/QuickConsole.css:
3577         (.quick-console):
3578         (body.mac-platform.legacy .quick-console):
3579         * UserInterface/Views/RadioButtonNavigationItem.css:
3580         (.navigation-bar .item.radio.button.text-only:hover):
3581         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover):
3582         (.navigation-bar .item.radio.button.text-only.selected):
3583         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
3584         (.navigation-bar .item.radio.button.text-only:active):
3585         (.navigation-bar .item.radio.button.text-only.selected:active):
3586         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active):
3587         * UserInterface/Views/ResourceSidebarPanel.css:
3588         (.sidebar > .panel.navigation.resource > .empty-content-placeholder):
3589         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder):
3590         (.sidebar > .panel.navigation.resource > .search-bar):
3591         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar):
3592         (.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
3593         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
3594         * UserInterface/Views/ScopeBar.css:
3595         (.scope-bar > li):
3596         (body.mac-platform.legacy .scope-bar > li):
3597         (.scope-bar > li:hover):
3598         (body.mac-platform.legacy .scope-bar > li:hover):
3599         (.scope-bar > li.selected):
3600         (.scope-bar > li:active):
3601         (body.mac-platform.legacy .scope-bar > li:active):
3602         (.scope-bar > li.selected:active):
3603         (body.mac-platform.legacy .scope-bar > li.selected:active):
3604         * UserInterface/Views/SearchBar.css:
3605         (.search-bar > input[type="search"]):
3606         (body.mac-platform.legacy .search-bar > input[type="search"]):
3607         Update styles and apply older styles to legacy Mac platforms.
3608
3609 2014-07-31  Brian J. Burg  <burg@cs.washington.edu>
3610
3611         Web Inspector: MessageDispatcher should not synchronously dispatch all backend messages
3612         https://bugs.webkit.org/show_bug.cgi?id=135427
3613
3614         Reviewed by Timothy Hatcher.
3615
3616         The frontend dispatches all queued messages from the backend synchronously, even if there are
3617         hundreds of messages, or even if some of the messages take a long time (>10ms) to process.
3618
3619         This patch adds a time limit to the frontend's message dispatcher. If the time limit is exceeded
3620         when processing the message queue, unhandled messages remain in the queue and the dispatcher goes
3621         to sleep until the next run loop (obtained by a new setTimeout).
3622
3623         This has the effect of removing stutters when the message queue has hundreds of small messages.
3624         The outliers are still the same since some single messages can take over 200ms to be handled.
3625
3626         This patch also improves performance logging in InspectorBackend so that it is easier to see
3627         message handling times and their distribution among run loop turns.
3628
3629         * UserInterface/Protocol/InspectorBackend.js:
3630         (InspectorBackendClass): Add a new diagnostic flag that warns about slow message handling.
3631         (InspectorBackendClass.prototype._dispatchCallback.get if): Improve logging.
3632         (InspectorBackendClass.prototype._dispatchCallback): Improve logging.
3633         (InspectorBackendClass.prototype._dispatchEvent): Improve logging.
3634         * UserInterface/Protocol/MessageDispatcher.js:
3635         (WebInspector.dispatchNextQueuedMessageFromBackend): Keep track of a time limit for message
3636         dispatching, and set a new timeout if we exceed the time limit.
3637
3638 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
3639
3640         Web Inspector: Right edge of Timeline Record button does not work
3641         https://bugs.webkit.org/show_bug.cgi?id=135444
3642
3643         Reviewed by Timothy Hatcher.
3644
3645         When hovering the record button we would show the status text, however
3646         because the left edge of the status text box would overlap the right
3647         edge of the record button causing completely unexpected behavior.
3648
3649         Position the status text correctly so that it never overlaps the record
3650         button. 5px to match the left margin of the record button, and another
3651         2px for some padding between the button and text.
3652
3653         * UserInterface/Views/TimelineSidebarPanel.css:
3654         (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
3655
3656 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
3657
3658         Web Inspector: console.profile missing profile information
3659         https://bugs.webkit.org/show_bug.cgi?id=135432
3660
3661         Reviewed by Timothy Hatcher.
3662
3663         * UserInterface/Models/ScriptTimelineRecord.js:
3664         Delete the payload information as soon as it has been processed.
3665         It is no longer needed anymore and can be garbage collected.
3666
3667 2014-07-30  Brian J. Burg  <burg@cs.washington.edu>
3668
3669         Web Inspector: ProbeSetDetailsSection should not create live location links for unresolved breakpoints
3670         https://bugs.webkit.org/show_bug.cgi?id=135367
3671
3672         Reviewed by Timothy Hatcher.
3673
3674         Regenerate the source code link whenever the breakpoint resolved status changes. If it is
3675         resolved, then we can create a live location link that respects source maps.
3676
3677         * UserInterface/Views/ProbeSetDetailsSection.js:
3678         (WebInspector.ProbeSetDetailsSection):
3679         (WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Added.
3680         (WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink): Deleted.
3681
3682 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
3683
3684         Web Inspector: 80% of time during recording is spent creating source code locations for profile nodes
3685         https://bugs.webkit.org/show_bug.cgi?id=135399
3686
3687         Reviewed by Timothy Hatcher.
3688
3689         Profiling the inspector while recording a timeline, a significant amount of
3690         time was spent creating SourceCodeLocation objects for profiling information
3691         and call frames. A lot of this data was eagerly being processed, even though
3692         it would not immediately be presentable to the user.
3693
3694         This makes two significant changes. We create a LazySourceCodeLocation class
3695         which does as little as possible until display information is requested. We
3696         also lazily convert the profiler payload data to a Profile object, so the
3697         processing is only done if you drill into the Script specific timeline.
3698
3699         This results in a significant performance improvement in the overview view.
3700
3701         * UserInterface/Controllers/TimelineManager.js:
3702         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
3703         (WebInspector.TimelineManager.prototype.eventRecorded):
3704         (WebInspector.TimelineManager.prototype._callFramesFromPayload.createCallFrame):
3705         (WebInspector.TimelineManager.prototype._callFramesFromPayload):
3706         (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload): Deleted.
3707         (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload): Deleted.
3708         (WebInspector.TimelineManager.prototype._profileFromPayload): Deleted.
3709         Do not eagerly process profile payloads. Instead pass the payload to ScriptTimelineRecords.
3710         Likewise create callframes with lazy source code locations to do the minimum amount of work.
3711
3712         * UserInterface/Models/ScriptTimelineRecord.js:
3713         (WebInspector.ScriptTimelineRecord):
3714         (WebInspector.ScriptTimelineRecord.prototype.get profile):
3715         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
3716         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
3717         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
3718         Only when the profile is asked do we process the profiler payload information.
3719         This defer the processing until at least the user drills into the Script timeline.
3720
3721         * UserInterface/Main.html:
3722         Add the new class and ensure SourceCodeLocation is available beforehand.
3723
3724         * UserInterface/Models/LazySourceCodeLocation.js: Added.
3725         (WebInspector.LazySourceCodeLocation):
3726         (WebInspector.LazySourceCodeLocation.prototype.isEqual):
3727         (WebInspector.LazySourceCodeLocation.prototype.get sourceCode):
3728         (WebInspector.LazySourceCodeLocation.prototype.set sourceCode):
3729         (WebInspector.LazySourceCodeLocation.prototype.get formattedLineNumber):
3730         (WebInspector.LazySourceCodeLocation.prototype.get formattedColumnNumber):
3731         (WebInspector.LazySourceCodeLocation.prototype.formattedPosition):
3732         (WebInspector.LazySourceCodeLocation.prototype.hasFormattedLocation):
3733         (WebInspector.LazySourceCodeLocation.prototype.hasDifferentDisplayLocation):
3734         (WebInspector.LazySourceCodeLocation.prototype.resolveMappedLocation):
3735         (WebInspector.LazySourceCodeLocation.prototype._lazyInitialization):
3736         Only when display information is requested will we perform extra processing.
3737         For basic information we do not need to check for formatted (pretty-printed) info.
3738
3739         * UserInterface/Models/SourceCode.js:
3740         (WebInspector.SourceCode.prototype.createLazySourceCodeLocation):
3741         Provide an explict create function for lazy source codes.
3742
3743         * UserInterface/Models/SourceCodeLocation.js:
3744         (WebInspector.SourceCodeLocation.prototype.set sourceCode):
3745         (WebInspector.SourceCodeLocation.prototype.get displaySourceCode):
3746         (WebInspector.SourceCodeLocation.prototype.get displayLineNumber):
3747         (WebInspector.SourceCodeLocation.prototype.get displayColumnNumber):
3748         (WebInspector.SourceCodeLocation.prototype.hasMappedLocation):
3749         (WebInspector.SourceCodeLocation.prototype.setSourceCode):
3750         (WebInspector.SourceCodeLocation.prototype.resolveMappedLocation):
3751         (WebInspector.SourceCodeLocation.prototype._makeChangeAndDispatchChangeEventIfNeeded):
3752         (WebInspector.SourceCodeLocation.prototype._resolveMappedLocation): Deleted.
3753         Include two protected functions which LazySourceCodeLocation overrides.
3754
3755 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
3756
3757         Web Inspector: Only compute full ProfileNode times if needed - Legacy Profiler
3758         https://bugs.webkit.org/show_bug.cgi?id=135406
3759
3760         Reviewed by Timothy Hatcher.
3761
3762         Full ProfileNode times are only used by the Legacy Profiler. The new profile
3763         information in the Scripts Timelines currently never uses the pass. We should
3764         avoid calculating it if we never use it.
3765
3766         * UserInterface/Models/ProfileNode.js:
3767         (WebInspector.ProfileNode.prototype.get startTime):
3768         (WebInspector.ProfileNode.prototype.get endTime):
3769         (WebInspector.ProfileNode.prototype.get selfTime):
3770         (WebInspector.ProfileNode.prototype.get totalTime):
3771         (WebInspector.ProfileNode.prototype.establishRelationships):
3772         (WebInspector.ProfileNode.prototype._computeTotalTimes):
3773
3774 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
3775
3776         Web Inspector: Reduce forced layouts in TimelineOverview
3777         https://bugs.webkit.org/show_bug.cgi?id=135405
3778
3779         Reviewed by Timothy Hatcher.
3780
3781         Remove another forced layout. The scroll container won't
3782         change size unless the ContentView itself resized. Make the
3783         distinction between a layout update due to a resize and
3784         normal events (scale changes, etc) and only calculate
3785         element sizes then.
3786
3787         * UserInterface/Views/TimelineContentView.js:
3788         (WebInspector.TimelineContentView.prototype.updateLayout):
3789         * UserInterface/Views/TimelineOverview.js:
3790         (WebInspector.TimelineOverview):
3791         (WebInspector.TimelineOverview.prototype.get visibleDuration):
3792         (WebInspector.TimelineOverview.prototype.updateLayoutForResize):
3793
3794 2014-07-29  Brian J. Burg  <burg@cs.washington.edu>
3795
3796         Web Inspector: breakpoints are always speculatively resolved when restored from local storage
3797         https://bugs.webkit.org/show_bug.cgi?id=135396
3798
3799         Reviewed by Timothy Hatcher.
3800
3801         A longstanding quirk/optimization in the frontend is that we immediately set a breakpoint
3802         as resolved if the breakpoint was successfully set in the backend. This ensures that clicking in
3803         the gutter immediately produces a resolved breakpoint with only one round-trip.
3804
3805         However, not all breakpoints should be speculatively resolved, because the corresponding resource
3806         may not be loaded yet. This situation causes problems for code that assumes a resolved breakpoint
3807         also has a valid sourceCodeLocation.sourceCode.
3808
3809         * UserInterface/Controllers/DebuggerManager.js:
3810         (WebInspector.DebuggerManager.restoreBreakpointsSoon): Don't leak the variable to global scope.
3811         (WebInspector.DebuggerManager):
3812         (WebInspector.DebuggerManager.prototype.speculativelyResolveBreakpoint):
3813         (WebInspector.DebuggerManager.prototype.addBreakpoint): Speculatively resolve here if requested
3814         using the success callback passed to _setBreakpoint.
3815
3816         (WebInspector.DebuggerManager.prototype.didSetBreakpoint): Emit simulated
3817         Debugger.breakpointResolved events since they are only sent by the backend when a script is parsed.
3818
3819         (WebInspector.DebuggerManager.prototype._setBreakpoint):
3820         * UserInterface/Views/SourceCodeTextEditor.js:
3821         (WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded): Request speculative resolve.
3822
3823 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
3824
3825         Web Inspector: Eliminate more forced layouts during timeline recordings
3826         https://bugs.webkit.org/show_bug.cgi?id=135397
3827
3828         Reviewed by Timothy Hatcher.
3829
3830         Instead of computing the secondsPerPixel in each overview graph,
3831         we can ask the overview view itself which has a cached value.
3832         The computation used to force a layout, now it doesn't need to.
3833
3834         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
3835         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
3836         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
3837         * UserInterface/Views/TimelineOverview.js:
3838         (WebInspector.TimelineOverview):
3