1 2014-06-17 Jono Wells <jonowells@apple.com>
3 Web Inspector: style declaration editor: visual highlight doesn't match actual selected text
4 https://bugs.webkit.org/show_bug.cgi?id=133965
6 Reviewed by Joseph Pecoraro.
8 Update styles for css style editor to fix highlighting visual mismatch glitch.
10 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
11 (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
12 (.css-style-text-editor > .CodeMirror pre):
13 (.css-style-text-editor.read-only > .CodeMirror pre):
14 Updated styles to eliminate highlight mismatch by adjusting the padding and
17 2014-06-10 Brian J. Burg <burg@cs.washington.edu>
19 Web Inspector: recording is overused as both noun and verb in TimelineManager
20 https://bugs.webkit.org/show_bug.cgi?id=132878
22 Reviewed by Joseph Pecoraro.
24 Rename most uses of the verb 'recording' to the verb 'capturing' for timelines.
25 Rename getter for the recording to activeRecording, and recordingEnabled to isCapturing().
27 When the timeline manager can handle multiple timeline data sets (i.e., 'recordings'),
28 it will be very confusing to have 'recording' as a plural noun and verb in the model.
30 * UserInterface/Controllers/TimelineManager.js:
31 (WebInspector.TimelineManager):
32 (WebInspector.TimelineManager.prototype.get activeRecording):
33 (WebInspector.TimelineManager.prototype.isCapturing):
34 (WebInspector.TimelineManager.prototype.startCapturing):
35 (WebInspector.TimelineManager.prototype.stopCapturing):
36 (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
37 (WebInspector.TimelineManager.prototype.eventRecorded):
38 (WebInspector.TimelineManager.prototype._addRecord):
39 (WebInspector.TimelineManager.prototype._startAutoCapturing):
40 (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
41 (WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
42 (WebInspector.TimelineManager.prototype._mainResourceDidChange):
43 (WebInspector.TimelineManager.prototype._resourceWasAdded):
44 (WebInspector.TimelineManager.prototype.get recording): Deleted.
45 (WebInspector.TimelineManager.prototype.get recordingEnabled): Deleted.
46 (WebInspector.TimelineManager.prototype.startRecording): Deleted.
47 (WebInspector.TimelineManager.prototype.stopRecording): Deleted.
48 (WebInspector.TimelineManager.prototype._startAutoRecording): Deleted.
49 * UserInterface/Models/DefaultDashboard.js:
50 (WebInspector.DefaultDashboard):
51 (WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
52 (WebInspector.DefaultDashboard.prototype._capturingStopped):
53 (WebInspector.DefaultDashboard.prototype._recordingStopped): Deleted.
54 * UserInterface/Protocol/InspectorFrontendAPI.js:
55 (InspectorFrontendAPI.isTimelineProfilingEnabled):
56 (InspectorFrontendAPI.setTimelineProfilingEnabled):
57 * UserInterface/Views/TimelineContentView.js:
58 (WebInspector.TimelineContentView.prototype._capturingStarted):
59 (WebInspector.TimelineContentView.prototype._capturingStopped):
60 (WebInspector.TimelineContentView.prototype._recordingStarted): Deleted.
61 (WebInspector.TimelineContentView.prototype._recordingStopped): Deleted.
62 * UserInterface/Views/TimelineSidebarPanel.js:
63 (WebInspector.TimelineSidebarPanel.prototype.initialize):
64 (WebInspector.TimelineSidebarPanel.prototype._capturingStarted):
65 (WebInspector.TimelineSidebarPanel.prototype._capturingStopped):
66 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver):
67 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut):
68 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
69 (WebInspector.TimelineSidebarPanel.prototype._replayCaptureButtonClicked):
70 (WebInspector.TimelineSidebarPanel.prototype._recordingStarted): Deleted.
71 (WebInspector.TimelineSidebarPanel.prototype._recordingStopped): Deleted.
73 2014-06-09 Jono Wells <jonowells@apple.com>
75 REGRESSION: Web Inspector: Exception showing the DOM tree for a node with too many children
76 https://bugs.webkit.org/show_bug.cgi?id=129696
78 Fix issue where sometimes inspecting an element will try to attach the "show all nodes" button
79 before the expand function is called in TreeElement before _childrenListNode has been set.
81 Reviewed by Joseph Pecoraro.
83 * UserInterface/Views/TreeOutline.js:
84 (TreeOutline.prototype.appendChild):
85 (TreeOutline.prototype.insertChild):
86 Added check for existance of this._childrenListNode.
88 2014-05-29 Timothy Hatcher <timothy@apple.com>
90 Fix an exception in InspectorBackend.Command.prototype.supports.
92 https://bugs.webkit.org/show_bug.cgi?id=133384
94 Reviewed by Joseph Pecoraro.
96 * UserInterface/Protocol/InspectorBackend.js:
97 (InspectorBackend.Command.prototype.supports): Use some not any.
99 2014-05-19 Jono Wells <jonowells@apple.com>
101 Web Inspector: Inspect Element sometimes does not select the right DOM Node
102 https://bugs.webkit.org/show_bug.cgi?id=127938
104 Reviewed by Joseph Pecoraro.
106 Inspecting an element when the inspector is in a closed state was selecting the node but then
107 overriding the selection when DOMTreeContentView#_restoreSelectedNodeAfterUpdate was called.
108 Now when an element is inspected a flag prevents the restore from taking place.
110 * UserInterface/Controllers/DOMTreeManager.js:
111 (WebInspector.DOMTreeManager):
112 (WebInspector.DOMTreeManager.prototype.inspectElement):
113 (WebInspector.DOMTreeManager.prototype.inspectNodeObject):
114 Add WebInspector.DOMTreeManager#_restoreSelectedNodeIsAllowed.
116 (WebInspector.DOMTreeManager.prototype.get restoreSelectedNodeIsAllowed):
119 * UserInterface/Views/FrameDOMTreeContentView.js:
120 (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
121 Add check for WebInspector.domTreeManager.restoreSelectedNodeIsAllowed.
123 2014-05-15 Jono Wells <jonowells@apple.com>
125 Web Inspector: Should remove JSDoc comment blocks.
126 https://bugs.webkit.org/show_bug.cgi?id=132984
128 Reviewed by Timothy Hatcher.
130 Remove JSDoc comment blocks. These are no longer necessary.
132 * UserInterface/Base/Main.js:
133 * UserInterface/Base/Object.js:
134 * UserInterface/Controllers/DOMTreeManager.js:
135 * UserInterface/Models/CSSCompletions.js:
136 * UserInterface/Models/DOMNode.js:
137 * UserInterface/Models/SourceMap.js:
138 * UserInterface/Protocol/InspectorBackend.js:
139 * UserInterface/Protocol/RemoteObject.js:
140 * UserInterface/Views/ApplicationCacheFrameContentView.js:
141 * UserInterface/Views/ConsoleMessage.js:
142 * UserInterface/Views/ConsoleMessageImpl.js:
143 * UserInterface/Views/ContextMenu.js:
144 * UserInterface/Views/DOMTreeElement.js:
145 * UserInterface/Views/DOMTreeOutline.js:
146 * UserInterface/Views/DOMTreeUpdater.js:
147 * UserInterface/Views/DataGrid.js:
148 * UserInterface/Views/DatabaseContentView.js:
149 * UserInterface/Views/EditingSupport.js:
150 * UserInterface/Views/ObjectPropertiesSection.js:
151 * UserInterface/Views/Popover.js:
152 * UserInterface/Views/TreeOutline.js:
153 JSDoc style comment blocks removed.
155 2014-05-13 Radu Stavila <stavila@adobe.com>
157 Web Inspector: Restore regionLayoutUpdated event in iOS7 inspector and remove regionOversetChanged
158 https://bugs.webkit.org/show_bug.cgi?id=132731
160 Reviewed by Joseph Pecoraro.
162 Added the regionLayoutUpdated event back into the inspector for compatibility with iOS 7
163 and removed regionOversetChanged from the iOS7 inspector as iOS 7 does not implement that event.
165 * UserInterface/Models/ScriptTimelineRecord.js:
166 * UserInterface/Protocol/CSSObserver.js:
167 (WebInspector.CSSObserver.prototype.regionLayoutUpdated):
168 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
169 * Versions/Inspector-iOS-7.0.json:
171 2014-05-12 Brent Fulgham <bfulgham@apple.com>
173 [Win] Correct Cygwin Path Confusion in WebInspectorUI Build
174 https://bugs.webkit.org/show_bug.cgi?id=132826
176 Reviewed by Joseph Pecoraro.
178 * Scripts/copy-user-interface-resources.pl: If the build is running
179 under Cygwin, be sure to use '/usr/bin/python', instead of just
180 'python' to avoid build errors.
182 2014-05-09 Alberto Garcia <berto@igalia.com>
184 jsmin.py license header confusing, mentions non-free license
185 https://bugs.webkit.org/show_bug.cgi?id=123665
187 Reviewed by Darin Adler.
189 Pull the most recent version from upstream, which has a clear
194 2014-05-08 Jono Wells <jonowells@apple.com>
196 Web Inspector: Console error when launching Web Inspector "Mode htmlmixed failed to advance stream"
197 https://bugs.webkit.org/show_bug.cgi?id=132703
199 Reviewed by Timothy Hatcher.
201 The CodeMirror 4 update brought with it a change in the XML mode that
202 causes our XML mode extension to fail to consume empty paired quotes
205 * UserInterface/Views/CodeMirrorAdditions.js:
206 Updated extendedXMLToken() to properly handle empty paired quotes.
208 2014-05-08 Jono Wells <jonowells@apple.com>
210 Web Inspector: Selecting frame in debugger sidebar doesn't reveal code
211 https://bugs.webkit.org/show_bug.cgi?id=132112
213 Reviewed by Joseph Pecoraro.
215 WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar was checking
216 only one of the two content trees in the DebuggerSidebarPanel instance. Added
217 base getter elementIsSelected to NavigationSidebarPanel and extended it in
218 DebuggerSidebarPanel.
220 * UserInterface/Base/Main.js:
221 (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): modified logic to check `selectedSidebarPanel.elementIsSelected`.
222 * UserInterface/Views/DebuggerSidebarPanel.js:
223 (WebInspector.DebuggerSidebarPanel.prototype.get elementIsSelected): Checks breakpoint and call stack trees.
224 * UserInterface/Views/NavigationSidebarPanel.js:
225 (WebInspector.NavigationSidebarPanel.prototype.get elementIsSelected): Base implementation.
227 2014-05-06 Radu Stavila <stavila@adobe.com>
229 Web Inspector: [CSS Regions] Add the regionOversetChange event to the iOS 7.0 WebInspector UI
230 https://bugs.webkit.org/show_bug.cgi?id=132566
232 Reviewed by Antti Koivisto.
234 The regionOversetChange event was missing from the iOS7 WebInspector.
236 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
237 * Versions/Inspector-iOS-7.0.json:
239 2014-05-05 Radu Stavila <stavila@adobe.com>
241 [CSS Regions] Remove regionLayoutUpdate event
242 https://bugs.webkit.org/show_bug.cgi?id=132564
244 Reviewed by Simon Fraser.
246 The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events:
247 regionOversetChange and regionFragmentChange.
249 * UserInterface/Controllers/DOMTreeManager.js:
250 (WebInspector.DOMTreeManager.prototype.get regionLayoutUpdated): Deleted.
251 * UserInterface/Models/ScriptTimelineRecord.js:
252 * UserInterface/Protocol/CSSObserver.js:
253 (WebInspector.CSSObserver.prototype.regionLayoutUpdated): Deleted.
254 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
255 * Versions/Inspector-iOS-7.0.json:
257 2014-05-02 Jono Wells <jonowells@apple.com>
259 Web Inspector: CodeMirror 4 CSS mode new state data structure breaks helpers.
260 https://bugs.webkit.org/show_bug.cgi?id=132149
262 Reviewed by Joseph Pecoraro.
264 The update to CodeMirror 4 included dramatic changes to the CSS mode,
265 particularly the way it handles tokens. `state.stack` is gone, replaced
268 * Tools/PrettyPrinting/CodeMirrorFormatters.js:
269 * Tools/PrettyPrinting/codemirror.js:
270 * UserInterface/External/CodeMirror/codemirror.js:
271 * UserInterface/External/CodeMirror/livescript.js:
272 * UserInterface/External/CodeMirror/runmode.js:
273 Updates from ToT CodeMirror.
275 * UserInterface/Controllers/CodeMirrorCompletionController.js:
276 (WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
277 * UserInterface/Views/CodeMirrorAdditions.js:
278 * UserInterface/Views/CodeMirrorFormatters.js: `lastToken` is null now for ":" characters.
279 Changes to match structural changes to the state object and changes to expected values of `lastToken`.
281 2014-04-30 Brian J. Burg <burg@cs.washington.edu>
283 Web Inspector: clean up and decompose InspectorBackend functionality
284 https://bugs.webkit.org/show_bug.cgi?id=132387
286 Reviewed by Joseph Pecoraro.
288 Aside from renaming variables and other minor cleanup, this patch
289 changes the following:
291 When calling a command, only store callback data when a callback is passed.
292 Use explicit model objects for the agent, event, enum, and commands.
293 Separate the agent models from encoding and decoding of JSON messages.
295 * UserInterface/Protocol/InspectorBackend.js:
296 (InspectorBackendClass):
297 (InspectorBackendClass.prototype.registerCommand):
298 (InspectorBackendClass.prototype.registerEnum):
299 (InspectorBackendClass.prototype.registerEvent):
300 (InspectorBackendClass.prototype.registerDomainDispatcher):
301 (InspectorBackendClass.prototype.dispatch):
302 (InspectorBackendClass.prototype.runAfterPendingDispatches):
303 (InspectorBackendClass.prototype._agentForDomain):
304 (InspectorBackendClass.prototype._registerSentCommand):
305 (InspectorBackendClass.prototype._dispatchCallback):
306 (InspectorBackendClass.prototype._dispatchEvent):
307 (InspectorBackendClass.prototype._invokeCommand):
308 (InspectorBackendClass.prototype._reportProtocolError):
309 (InspectorBackend.Agent):
310 (InspectorBackend.Agent.prototype.get domainName):
311 (InspectorBackend.Agent.prototype.set dispatcher):
312 (InspectorBackend.Agent.prototype.addEnum):
313 (InspectorBackend.Agent.prototype.addCommand):
314 (InspectorBackend.Agent.prototype.addEvent):
315 (InspectorBackend.Agent.prototype.getEvent):
316 (InspectorBackend.Agent.prototype.dispatchEvent):
317 (InspectorBackend.Command):
318 (InspectorBackend.Command.create):
319 (InspectorBackend.Command.prototype.get qualifiedName):
320 (InspectorBackend.Command.prototype.get commandName):
321 (InspectorBackend.Command.prototype.get callSignature):
322 (InspectorBackend.Command.prototype.get replySignature):
323 (InspectorBackend.Command.prototype.invoke):
324 (InspectorBackend.Command.prototype.supports):
325 (InspectorBackend.Command.prototype._invokeWithArguments):
326 (InspectorBackend.Event):
327 (InspectorBackend.Enum):
328 (InspectorBackendClass.prototype.callback): Deleted.
329 (InspectorBackendClass.prototype._registerPendingResponse): Deleted.
330 (InspectorBackendClass.prototype._invokeMethod): Deleted.
331 (InspectorBackendClass.prototype._getAgent): Deleted.
332 (InspectorBackendClass.prototype.reportProtocolError): Deleted.
333 (InspectorBackendCommand): Deleted.
334 (InspectorBackendCommand.create): Deleted.
335 (InspectorBackendCommand.prototype.invoke): Deleted.
336 (InspectorBackendCommand.prototype.supports): Deleted.
337 (InspectorBackendCommand.prototype._invokeWithArguments): Deleted.
339 2014-04-29 Brian J. Burg <burg@cs.washington.edu>
341 Web Inspector: reduce per-protocol method function creation in InspectorBackend
342 https://bugs.webkit.org/show_bug.cgi?id=130701
344 Reviewed by Timothy Hatcher.
346 Instead of creating 4 bound functions for every backend method on startup, we
347 can share common functionality on the InspectorBackendCommand prototype. This
348 also splits the various client-facing protocol introspection mechanisms from
349 the message encoding/decoding code.
351 We use a workaround to make the command instances themselves callable as well
352 as having .invoke, .promise, and .supports. InspectorAgent.methodName returns a
353 trampoline function that performs the default method invocation. The trampoline's
354 __proto__ is patched to point to InspectorBackendClass.prototype, and the command
355 instance is saved in the closure and on the trampoline function itself.
357 * UserInterface/Protocol/InspectorBackend.js:
358 (InspectorBackendClass.prototype._registerPendingResponse):
359 (InspectorBackendClass.prototype._invokeMethod):
360 (InspectorBackendClass.prototype.registerCommand):
361 (InspectorBackendClass.prototype.registerEvent):
362 (InspectorBackendCommand):
364 (InspectorBackendCommand.create):
365 (InspectorBackendCommand.prototype.invoke):
366 (InspectorBackendCommand.prototype.promise):
367 (InspectorBackendCommand.prototype.supports):
368 (InspectorBackendCommand.prototype._invokeWithArguments):
369 (InspectorBackendClass.prototype._wrap): Deleted.
370 (InspectorBackendClass.prototype._invoke): Deleted.
371 (InspectorBackendClass.prototype._promise): Deleted.
372 (InspectorBackendClass.prototype._supports): Deleted.
373 (InspectorBackendClass.prototype._sendMessageToBackend): Deleted.
374 (InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject): Deleted.
375 (InspectorBackendClass.prototype.sendMessageObjectToBackend): Deleted.
377 2014-04-29 Brian J. Burg <burg@cs.washington.edu>
379 Web Inspector: DataGrid columns should be objects not Maps
380 https://bugs.webkit.org/show_bug.cgi?id=129383
382 Reviewed by Timothy Hatcher.
384 This reverts an earlier conversion to maps, so that column properties
385 (which rarely change) can be optimized.
387 String literals for column properties have been preserved so columns
388 can be easily converted into objects with methods.
390 * UserInterface/Views/DataGrid.js:
391 (WebInspector.DataGrid.prototype.autoSizeColumns):
392 (WebInspector.DataGrid.prototype.set var):
393 (WebInspector.DataGrid.prototype.set if):
394 (WebInspector.DataGrid.prototype.insertColumn):
395 (WebInspector.DataGrid.prototype.removeColumn.get this):
396 (WebInspector.DataGrid.prototype.removeColumn):
397 (WebInspector.DataGrid.prototype.columnWidthsMap):
398 (WebInspector.DataGrid.prototype.applyColumnWidthsMap):
399 (WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
400 (WebInspector.DataGridNode.prototype.createCell.get if):
401 (WebInspector.DataGridNode.prototype.createCell):
402 (WebInspector.DataGrid.prototype.get length): Deleted.
403 * UserInterface/Views/ProbeSetDataGrid.js:
404 (WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get this):
405 (WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged):
406 * UserInterface/Views/TimelineDataGrid.js:
407 (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get string_appeared_here):
408 (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
410 2014-04-25 Jonathan Wells <jonowells@apple.com>
412 Web Inspector: DOM Tree debugger popover obscures dashboard
413 https://bugs.webkit.org/show_bug.cgi?id=132205
415 Reviewed by Timothy Hatcher.
417 * UserInterface/Views/DashboardContainerView.css:
418 (.toolbar .dashboard.visible): Change z-index to 1. Force stacking context.
419 * UserInterface/Views/Popover.css:
420 (.popover): Add z-index: 100.
422 2014-04-24 Timothy Hatcher <timothy@apple.com>
424 Web Inspector: Dashboard when paused in debugger shows some missing glyph boxes
425 https://bugs.webkit.org/show_bug.cgi?id=132113
427 Reviewed by Joseph Pecoraro.
429 * UserInterface/Views/DebuggerDashboardView.css:
430 (.dashboard.debugger > .location .function-name::after): Fix the codepoint for nbsp.
432 2014-04-24 Jonathan Wells <jonowells@apple.com>
434 Web Inspector: Should update to CodeMirror 4.1
435 https://bugs.webkit.org/show_bug.cgi?id=132140
437 Reviewed by Timothy Hatcher.
439 Updated to CodeMirror 4.1, which contains several bugfixes.
440 Release notes: http://codemirror.net/doc/releases.html#v4
442 * Tools/PrettyPrinting/codemirror.js:
443 * Tools/PrettyPrinting/css.js:
444 * Tools/PrettyPrinting/javascript.js:
445 * UserInterface/External/CodeMirror/codemirror.js:
446 * UserInterface/External/CodeMirror/css.js:
447 * UserInterface/External/CodeMirror/javascript.js:
448 * UserInterface/External/CodeMirror/livescript.js:
449 * UserInterface/External/CodeMirror/runmode.js:
450 * UserInterface/External/CodeMirror/xml.js:
451 Updated to CodeMirror 4.1.
453 2014-04-24 Jonathan Wells <jonowells@apple.com>
455 Web Inspector: CSS autofill suggests properties instead of values when values are needed
456 https://bugs.webkit.org/show_bug.cgi?id=132090
458 Reviewed by Joseph Pecoraro.
460 Updates are required to the CodeMirror helpers to be compatible with
461 CodeMirror 4. Some of those changes have been made to fix an issue
462 with CSS autofill, CSS code coloring, and also
463 https://bugs.webkit.org/show_bug.cgi?id=131859. The main issue is that
464 CodeMirror 4's CSS mode (css.js) stores its parsing modes in a different
465 data structure. All references to state.stack are obsolete. Many
466 are fixed here and more will be in an upcoming patch.
468 * Tools/PrettyPrinting/CodeMirrorFormatters.js: Removed exception for checking state.stack properties.
469 * UserInterface/Controllers/CodeMirrorCompletionController.js:
470 (WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions): Corrected "block" state detection.
471 * UserInterface/External/CodeMirror/less.js: Removed.
472 * UserInterface/Views/CodeMirrorAdditions.js: Sets default state of "block" correctly.
473 * UserInterface/Views/CodeMirrorFormatters.js: Removed exception for checking state.stack properties.
474 * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: Fix styles to match CSS mode changes.
476 2014-04-24 Antoine Quint <graouts@webkit.org>
478 Web Inspector: gradient editor does not appear for linear-gradient with no specified angle
479 https://bugs.webkit.org/show_bug.cgi?id=132083
481 Reviewed by Timothy Hatcher.
483 Only assume we're parsing a legacy-formatted gradient if the first parameter is not a color.
485 * UserInterface/Models/Gradient.js:
486 (WebInspector.LinearGradient.linearGradientWithComponents):
488 2014-04-22 Brent Fulgham <bfulgham@apple.com>
490 [Win] Support Python 2.7 in Cygwin
491 https://bugs.webkit.org/show_bug.cgi?id=132023
493 Reviewed by Michael Saboff.
495 * WebInspectorUI.vcxproj/build-webinspectorui.sh: use
496 proper path to Python under Cygwin.
498 2014-04-18 Katie Madonna <madonnk@gmail.com>
500 Web Inspector: add entries for probe samples in the JS/Events timeline UI
501 https://bugs.webkit.org/show_bug.cgi?id=131173
503 Reviewed by Timothy Hatcher.
505 Create probe sample fired entries for the JS/Events timeline UI.
507 * Localizations/en.lproj/localizedStrings.js:
508 * UserInterface/Controllers/ProbeManager.js:
509 (WebInspector.ProbeManager.prototype.probeForIdentifier): Added.
510 * UserInterface/Controllers/TimelineManager.js: Added cases for probe sample recorded.
511 (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
512 (WebInspector.TimelineManager.prototype.eventRecorded):
513 * UserInterface/Images/TimelineRecordProbeSampled.svg: Added.
514 * UserInterface/Models/ScriptTimelineRecord.js: Create ProbeSampleRecorded record for ProbeSample case.
515 * UserInterface/Views/TimelineIcons.css:
516 (.probe-record .icon): Added.
517 * UserInterface/Views/TimelineRecordTreeElement.js:
518 (WebInspector.TimelineRecordTreeElement): Added case for probe sample recorded.
520 2014-04-15 Timothy Hatcher <timothy@apple.com>
522 Web Inspector: CodeMirror LICENSE is not properly added to combined files
523 https://bugs.webkit.org/show_bug.cgi?id=131674
525 Reviewed by Darin Adler.
527 * Scripts/copy-user-interface-resources.pl: Use $CODE_MIRROR_LICENSE instead
528 for CodeMirror.css and CodeMirror.js.
530 2014-04-14 Jono Wells <jonowells@apple.com>
532 Update to CodeMirror 4.0.
533 https://bugs.webkit.org/show_bug.cgi?id=130019
535 The CodeMirror 4.0 library adds multiple selections and the ability to
536 undo/redo selections. Selections are made by holding the Command (Cmd) key
537 and clicking into an editor, or by holding Option (Alt) and making a block
538 selection followed by entering a character or moving the cursor.
540 Reviewed by Timothy Hatcher.
542 * Scripts/update-codemirror-resources.rb:
543 * Scripts/update-pretty-printer.rb:
544 Update scripts to reflect updated locations for CodeMirror files.
545 No longer copies LESS mode file as this has been integrated into CSS mode
548 * Tools/PrettyPrinting/codemirror.css:
549 * Tools/PrettyPrinting/codemirror.js:
550 * Tools/PrettyPrinting/css.js:
551 * Tools/PrettyPrinting/javascript.js:
552 * UserInterface/External/CodeMirror/clojure.js:
553 * UserInterface/External/CodeMirror/closebrackets.js:
554 * UserInterface/External/CodeMirror/codemirror.css:
555 * UserInterface/External/CodeMirror/codemirror.js:
556 * UserInterface/External/CodeMirror/coffeescript.js:
557 * UserInterface/External/CodeMirror/comment.js:
558 * UserInterface/External/CodeMirror/css.js:
559 * UserInterface/External/CodeMirror/htmlmixed.js:
560 * UserInterface/External/CodeMirror/javascript.js:
561 * UserInterface/External/CodeMirror/livescript.js:
562 * UserInterface/External/CodeMirror/matchbrackets.js:
563 * UserInterface/External/CodeMirror/overlay.js:
564 * UserInterface/External/CodeMirror/placeholder.js:
565 * UserInterface/External/CodeMirror/runmode.js:
566 * UserInterface/External/CodeMirror/sass.js:
567 * UserInterface/External/CodeMirror/searchcursor.js:
568 * UserInterface/External/CodeMirror/sql.js:
569 * UserInterface/External/CodeMirror/xml.js:
570 Update to CodeMirror 4.0.
572 * UserInterface/Main.html: Remove less.js which is now part of css.js.
574 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
575 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
576 (WebInspector.CSSStyleDeclarationTextEditor.prototype.):
577 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
578 (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
579 * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
580 Update styles to match CodeMirror changes. Update CSSStyleDeclarationTextEditor.js
581 to match CodeMirror API updates (doc.removeLine() has been removed, so
582 replaceRange() is used instead). Also the tokenTrackingController is now enabled in the
583 CSSStyleDeclarationTextEditor and SourceCodeTextEditor when the Option (Alt) key
584 is pressed instead of the Command (Cmd) key so as not to conflict with multiple
585 cursor placement in the CodeMirror update.
587 2014-04-08 Brent Fulgham <bfulgham@apple.com>
589 [Windows] Generate Optimized WebInspectorUI in Release Build
590 https://bugs.webkit.org/show_bug.cgi?id=120120
592 Reviewed by Timothy Hatcher.
594 * Scripts/copy-user-interface-resources.pl: Copied from Scripts/copy-user-interface-resources.sh.
595 * Scripts/copy-user-interface-resources.sh: Removed.
596 * Scripts/remove-console-asserts.pl:
597 * WebInspectorUI.vcxproj/WebInspectorUI.make: Added.
598 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Switch to Makefile style.
599 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: Ditto.
600 * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: More work should
601 be done in the new build-webinspectorui.sh file.
602 * WebInspectorUI.vcxproj/build-webinspectorui.sh: Added.
603 * WebInspectorUI.xcodeproj/project.pbxproj:
605 2014-04-08 Timothy Hatcher <timothy@apple.com>
607 Fix corrupt APPLE_IMAGES_LICENSE.rtf after r165676.
608 https://bugs.webkit.org/show_bug.cgi?id=131384
610 Reviewed by Joseph Pecoraro.
612 * APPLE_IMAGES_LICENSE.rtf:
614 2014-04-08 Timothy Hatcher <timothy@apple.com>
616 Clean up old protocol JSON files to better match the latest
617 https://bugs.webkit.org/show_bug.cgi?id=131308
619 Reviewed by Joseph Pecoraro.
621 * Versions/Inspector-iOS-6.0.json:
622 * Versions/Inspector-iOS-7.0.json:
624 2014-04-05 Brian J. Burg <burg@cs.washington.edu>
626 Enable WEB_REPLAY for PLATFORM(MAC)
627 https://bugs.webkit.org/show_bug.cgi?id=130700
629 Reviewed by Timothy Hatcher.
631 If the ReplayAgent is available, then add an option to toggle between the
632 replay interface and normal Timeline interface from the timeline
633 sidebar panel. The option is available through a context menu item on the
634 sidebar panel's top navigation bar.
636 If web replay not available, just show the non-replay interface.
638 * Localizations/en.lproj/localizedStrings.js:
639 * UserInterface/Base/Main.js: Add WebInspector.showReplayInterfaceSetting.
640 (WebInspector.loaded):
642 * UserInterface/Views/TimelineSidebarPanel.js: Unconditionally create the replay
643 interface elements, but only show them if showReplayInterfaceSetting is enabled.
644 (WebInspector.TimelineSidebarPanel.prototype._updateReplayInterfaceVisibility): Added
645 (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar.toggleReplayInterface): Added.
646 (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar): Added.
648 2014-04-05 Brian J. Burg <burg@cs.washington.edu>
650 Web Inspector: remove unused metrics and commands from the Timeline agent
651 https://bugs.webkit.org/show_bug.cgi?id=131184
653 Reviewed by Timothy Hatcher.
655 Remove the Memory domain from old protocol versions. Remove enum values
656 BeginFrame and CompositeLayers. Remove arguments to Timeline.start.
657 Remove miscellaneous Timeline commands that no longer exist and were never used.
659 * UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
660 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
661 * Versions/Inspector-iOS-6.0.json:
662 * Versions/Inspector-iOS-7.0.json:
664 2014-04-03 Brian J. Burg <burg@cs.washington.edu>
666 Web Inspector: hook up probe samples to TimelineAgent's records
667 https://bugs.webkit.org/show_bug.cgi?id=131127
669 Reviewed by Timothy Hatcher.
671 * UserInterface/Controllers/TimelineManager.js: Stub out a case for the ProbeSample record type.
672 (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
673 (WebInspector.TimelineManager.prototype.eventRecorded):
675 2014-04-04 Joseph Pecoraro <pecoraro@apple.com>
677 Web Inspector: JSContext inspection Resource search throws exception
678 https://bugs.webkit.org/show_bug.cgi?id=131253
680 Reviewed by Timothy Hatcher.
682 Fail gracefully when none of the supported search backends are available.
683 In JSContext inspection the DOM and Page agents are unavailable.
685 * UserInterface/Views/ResourceSidebarPanel.js:
686 (WebInspector.ResourceSidebarPanel.prototype.performSearch):
688 2014-04-04 Joseph Pecoraro <pecoraro@apple.com>
690 Web Inspector: JSContext inspection - TypeError: null is not an object (evaluating 'contentView.showSourceCode')
691 https://bugs.webkit.org/show_bug.cgi?id=129857
693 Reviewed by Timothy Hatcher.
695 When inspecting a JSContext, there is no main frame resource, so
696 attempting to show it was resulting in a runtime error.
697 Instead, check to see if there is a main frame resource, fallback
698 to selecting the first tree element.
700 * UserInterface/Base/Main.js:
701 (WebInspector.toggleConsoleView):
702 * UserInterface/Views/DebuggerSidebarPanel.js:
703 (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
704 * UserInterface/Views/ResourceSidebarPanel.js:
705 (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
707 2014-04-04 Ion Rosca <rosca@adobe.com>
709 [CSS Blending] Add compositing reason for isolation.
710 https://bugs.webkit.org/show_bug.cgi?id=131153
712 Reviewed by Joseph Pecoraro.
714 * Localizations/en.lproj/localizedStrings.js:
715 * UserInterface/Views/LayerTreeSidebarPanel.js:
716 (WebInspector.LayerTreeSidebarPanel.prototype._populateListOfCompositingReasons):
718 2014-04-02 Timothy Hatcher <timothy@apple.com>
720 Remove Input domain from the Web Inspector protocol.
722 https://bugs.webkit.org/show_bug.cgi?id=131073
724 Reviewed by Joseph Pecoraro.
726 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Updated.
727 * Versions/Inspector-iOS-7.0.json: Removed Input domain.
729 2014-04-01 Timothy Hatcher <timothy@apple.com>
731 Remove HeapProfiler from the Web Inspector protocol.
733 https://bugs.webkit.org/show_bug.cgi?id=131070
735 Reviewed by Joseph Pecoraro.
737 * UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js: Updated.
738 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Ditto.
739 * Versions/Inspector-iOS-6.0.json: Removed heap related stuff.
740 * Versions/Inspector-iOS-7.0.json: Ditto.
742 2014-04-01 Joseph Pecoraro <pecoraro@apple.com>
744 Web Inspector: Remove stale localStorage deletion transition code
745 https://bugs.webkit.org/show_bug.cgi?id=131061
747 Reviewed by Timothy Hatcher.
749 * UserInterface/Base/ImageUtilities.js:
750 This code has been in for a while. We have transitioned to Web SQL.
752 2014-04-01 Zoltan Horvath <zoltan@webkit.org>
754 [CSS Exclusions] Remove exclusions parsing support
755 https://bugs.webkit.org/show_bug.cgi?id=131046
757 Reviewed by David Hyatt.
759 * UserInterface/Models/CSSKeywordCompletions.js:
761 2014-04-01 Timothy Hatcher <timothy@apple.com>
763 Remove the rest of the old Canvas inspection support.
765 https://bugs.webkit.org/show_bug.cgi?id=131066
767 Reviewed by Joseph Pecoraro.
769 * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Updated.
770 * Versions/Inspector-iOS-7.0.json: Removed Canvas domain.
772 2014-03-28 James Craig <jcraig@apple.com>
774 Web Inspector: AXI: support for live regions
775 https://bugs.webkit.org/show_bug.cgi?id=130725
777 Reviewed by Timothy Hatcher.
779 Initial support for @aria-live, @aria-atomic, and @aria-busy.
781 * Localizations/en.lproj/localizedStrings.js:
782 * UserInterface/Models/DOMNode.js:
783 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
784 * UserInterface/Views/Main.css:
786 2014-03-28 Joseph Pecoraro <pecoraro@apple.com>
788 Web Inspector: console.warn is showing as error instead of warning
789 https://bugs.webkit.org/show_bug.cgi?id=130921
791 Reviewed by Timothy Hatcher.
793 * UserInterface/Models/DefaultDashboard.js:
794 (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
795 Use our enums instead of hardcoded strings.
797 2014-03-28 James Craig <jcraig@apple.com>
799 Web Inspector: AXI: expose what elements get generic "clickable" status
800 https://bugs.webkit.org/show_bug.cgi?id=130721
802 Reviewed by Timothy Hatcher.
804 Expose ancestor element link to "Click Listener" or generic "Clickable: Yes" if current node has mouse handler.
806 * Localizations/en.lproj/localizedStrings.js: New "Mouse Event" string.
807 * UserInterface/Models/DOMNode.js: Added nodeId and mouseEventNodeId.
808 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI for new detail row.
810 2014-03-27 James Craig <jcraig@apple.com>
812 Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
813 https://bugs.webkit.org/show_bug.cgi?id=130827
815 Reviewed by Timothy Hatcher.
817 UI updates for "Selected Item(s)" and "Child(ren)" rows in accessibility node inspector.
819 * Localizations/en.lproj/localizedStrings.js:
820 * UserInterface/Models/DOMNode.js:
821 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
823 2014-03-27 Antoine Quint <graouts@webkit.org>
825 Web Inspector: clearing the console log doesn't update the activity viewer
826 https://bugs.webkit.org/show_bug.cgi?id=130774
828 Reviewed by Joseph Pecoraro.
830 Ensure we take the changes made to the ivars into account on the view.
832 * UserInterface/Models/DefaultDashboard.js:
833 (WebInspector.DefaultDashboard.prototype._consoleWasCleared):
835 2014-03-27 Brent Fulgham <bfulgham@apple.com>
837 [Win] Correct handling of autogenerated WebInspectorUI files
838 https://bugs.webkit.org/show_bug.cgi?id=130846
840 Reviewed by Joseph Pecoraro.
842 * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Files need to be placed in the
843 'Protocol' subdirectory of the WebInspectorUI directory.
845 2014-03-25 James Craig <jcraig@apple.com>
847 Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
848 https://bugs.webkit.org/show_bug.cgi?id=130712
850 Reviewed by Timothy Hatcher.
852 Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.
854 * Localizations/en.lproj/localizedStrings.js:
855 * UserInterface/Models/DOMNode.js:
856 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
858 2014-03-25 Martin Robinson <mrobinson@igalia.com>
860 [GTK] Remove the autotools build
861 https://bugs.webkit.org/show_bug.cgi?id=130717
863 Reviewed by Anders Carlsson.
865 * GNUmakefile.am: Removed.
867 2014-03-24 Timothy Hatcher <timothy@apple.com>
869 Lazy load source code referred to from the source map, instead of when
870 the source code is revealed in the Resources sidebar.
872 https://bugs.webkit.org/show_bug.cgi?id=130625
874 Reviewed by Joseph Pecoraro.
876 * UserInterface/Models/SourceMapResource.js:
877 (WebInspector.SourceMapResource): Set up the type info here so it can be used to
878 dispaly the right icon in the sidebar.
879 (WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Use _contentRequested.
880 (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
881 Reset finished and remove the type change dance we had before.
882 * UserInterface/Views/SourceMapResourceTreeElement.js:
883 (WebInspector.SourceMapResourceTreeElement.prototype.onattach): Removed. Don't request content here.
885 2014-03-23 James Craig <jcraig@apple.com>
887 Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
888 https://bugs.webkit.org/show_bug.cgi?id=130635
890 Reviewed by Timothy Hatcher.
892 Support for @aria-owns, @aria-controls, and @aria-flowto.
894 * Localizations/en.lproj/localizedStrings.js:
895 * UserInterface/Models/DOMNode.js:
896 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
898 2014-03-21 James Craig <jcraig@apple.com>
900 Web Inspector: AXI: Expose Accessibility Tree children of the selected node
901 https://bugs.webkit.org/show_bug.cgi?id=130264
903 Reviewed by Timothy Hatcher.
905 Expose the accessibility tree children (different from DOM children) of the
906 current node in the accessibility node inspector.
908 * Localizations/en.lproj/localizedStrings.js: New "Children" string.
909 * UserInterface/Base/DOMUtilities.js: Added linkifyAccessibilityNodeReference.
910 * UserInterface/Models/DOMNode.js: Support for accessibility children.
911 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Support for accessibility children.
912 * UserInterface/Views/Main.css: New styles for .node-link-list.
914 2014-03-20 Brian Burg <bburg@apple.com>
916 Web Inspector: add temporary buttons to capture/play/pause replay recordings
917 https://bugs.webkit.org/show_bug.cgi?id=129692
919 Reviewed by Timothy Hatcher.
921 If the Replay agent is available, replace the existing ad-hoc navigation bar
922 in the Timelines sidebar panel with a record and pause/play button. This UI
925 * Localizations/en.lproj/localizedStrings.js:
926 * UserInterface/Controllers/ReplayManager.js: Turn two segment state assertions into
927 FIXMEs because the assertions are too strong until the public API uses async chains.
928 (WebInspector.ReplayManager.prototype.replayToMarkIndex):
929 (WebInspector.ReplayManager.prototype.replayToCompletion):
930 * UserInterface/Images/Circle.svg: Added.
931 * UserInterface/Views/ActivateButtonNavigationItem.js:
932 (WebInspector.ActivateButtonNavigationItem.prototype.generateStyleText):
933 * UserInterface/Views/ButtonNavigationItem.css: Adjust styles so the default style
934 has opacity:1 and the glyph color is darker.
935 (.navigation-bar .item.button.suppress-emboss > .glyph):
936 (.navigation-bar .item.button.suppress-emboss.disabled > .glyph):
937 * UserInterface/Views/ButtonNavigationItem.js:
938 (WebInspector.ButtonNavigationItem.prototype.generateStyleText): Explicitly
939 generate the width and height properties so that separate button instances do
940 not influence the size of each other.
942 * UserInterface/Views/TimelineSidebarPanel.js:
943 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
944 (WebInspector.TimelineSidebarPanel.prototype._replayCaptureButtonClicked):
945 (WebInspector.TimelineSidebarPanel.prototype._replayPauseResumeButtonClicked):
946 (WebInspector.TimelineSidebarPanel.prototype._captureStarted):
947 (WebInspector.TimelineSidebarPanel.prototype._captureStopped):
948 (WebInspector.TimelineSidebarPanel.prototype._playbackStarted):
949 (WebInspector.TimelineSidebarPanel.prototype._playbackPaused):
951 2014-03-20 Brian Burg <bburg@apple.com>
953 Web Inspector: add frontend controller and models for replay sessions
954 https://bugs.webkit.org/show_bug.cgi?id=130145
956 Reviewed by Joseph Pecoraro.
958 Upstream the frontend models and controller for web replay. The replay manager
959 syncs with the backend controller's replay state and replay sessions by using
960 the same state machines and transitions.
962 Session and segment models update their data asynchronously using promises.
964 * UserInterface/Base/Main.js:
965 (WebInspector.loaded): Add the replay manager.
966 * UserInterface/Base/Test.js:
967 (WebInspector.loaded): Add the replay manager.
968 (InspectorTest.debugLog): Fix a bug in the unescape/escape trick.
969 (InspectorTest.addResult): Don't try to add results until the test page has loaded.
970 (InspectorTest.testPageDidLoad): Clear the isReloading flag.
971 (InspectorTest.reloadPage): Reimplement using promises. Return a promise.
972 * UserInterface/Base/Utilities.js: Implement Map.take in the obvious way.
973 * UserInterface/Controllers/ReplayManager.js: Added.
974 (WebInspector.ReplayManager):
976 (WebInspector.ReplayManager.prototype.get sessionState):
977 (WebInspector.ReplayManager.prototype.get segmentState):
978 (WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
979 (WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
980 (WebInspector.ReplayManager.prototype.get playbackSpeed):
981 (WebInspector.ReplayManager.prototype.set playbackSpeed):
982 (WebInspector.ReplayManager.prototype.get currentPosition):
983 (WebInspector.ReplayManager.prototype.getSession.get var):
984 (WebInspector.ReplayManager.prototype.getSegment.get var):
985 (WebInspector.ReplayManager.prototype.captureStarted):
986 (WebInspector.ReplayManager.prototype.captureStopped):
987 (WebInspector.ReplayManager.prototype.playbackStarted):
988 (WebInspector.ReplayManager.prototype.playbackHitPosition):
989 (WebInspector.ReplayManager.prototype.playbackPaused):
990 (WebInspector.ReplayManager.prototype.playbackFinished):
991 (WebInspector.ReplayManager.prototype.sessionCreated.set catch):
992 (WebInspector.ReplayManager.prototype.sessionCreated.this):
993 (WebInspector.ReplayManager.prototype.sessionCreated):
994 (WebInspector.ReplayManager.prototype.sessionModified):
995 (WebInspector.ReplayManager.prototype.sessionRemoved.then):
996 (WebInspector.ReplayManager.prototype.sessionRemoved):
997 (WebInspector.ReplayManager.prototype.segmentCreated.set this):
998 (WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
999 (WebInspector.ReplayManager.prototype.segmentCompleted):
1000 (WebInspector.ReplayManager.prototype.segmentRemoved.then):
1001 (WebInspector.ReplayManager.prototype.segmentRemoved):
1002 (WebInspector.ReplayManager.prototype.segmentLoaded):
1003 (WebInspector.ReplayManager.prototype.segmentUnloaded):
1004 (WebInspector.ReplayManager.prototype.startCapturing):
1005 (WebInspector.ReplayManager.prototype.stopCapturing):
1006 (WebInspector.ReplayManager.prototype.replayToMarkIndex):
1007 (WebInspector.ReplayManager.prototype.replayToCompletion):
1008 (WebInspector.ReplayManager.prototype.pausePlayback):
1009 (WebInspector.ReplayManager.prototype.stopPlayback):
1010 (WebInspector.ReplayManager.prototype._changeSessionState):
1011 (WebInspector.ReplayManager.prototype._changeSegmentState):
1012 * UserInterface/Main.html:
1013 * UserInterface/Models/ReplaySession.js: Added.
1014 (WebInspector.ReplaySession):
1015 (WebInspector.ReplaySession.fromPayload):
1016 (WebInspector.ReplaySession.prototype.get segments):
1017 (WebInspector.ReplaySession.prototype.segmentsChanged):
1018 (WebInspector.ReplaySession.prototype._updateFromPayload):
1019 * UserInterface/Models/ReplaySessionSegment.js: Added.
1020 (WebInspector.IncompleteSessionSegment):
1021 (WebInspector.IncompleteSessionSegment.prototype.get isComplete):
1022 (WebInspector.ReplaySessionSegment):
1023 (WebInspector.ReplaySessionSegment.prototype.get isComplete):
1024 * UserInterface/Protocol/InspectorBackend.js:
1025 (InspectorBackendClass.prototype.registerCommand):
1026 (InspectorBackendClass.prototype._promise): Add a promise-returning method for
1027 invoking backend commands that return a result asynchronously.
1028 * UserInterface/Protocol/ReplayObserver.js: Added.
1029 (WebInspector.ReplayPosition):
1030 (WebInspector.ReplayPosition.fromProtocol):
1031 (WebInspector.ReplayObserver):
1032 (WebInspector.ReplayObserver.prototype.captureStarted):
1033 (WebInspector.ReplayObserver.prototype.captureStopped):
1034 (WebInspector.ReplayObserver.prototype.playbackStarted):
1035 (WebInspector.ReplayObserver.prototype.playbackHitPosition):
1036 (WebInspector.ReplayObserver.prototype.playbackPaused):
1037 (WebInspector.ReplayObserver.prototype.playbackFinished):
1038 (WebInspector.ReplayObserver.prototype.inputSuppressionChanged):
1039 (WebInspector.ReplayObserver.prototype.sessionCreated):
1040 (WebInspector.ReplayObserver.prototype.sessionModified):
1041 (WebInspector.ReplayObserver.prototype.sessionRemoved):
1042 (WebInspector.ReplayObserver.prototype.sessionLoaded):
1043 (WebInspector.ReplayObserver.prototype.segmentCreated):
1044 (WebInspector.ReplayObserver.prototype.segmentRemoved):
1045 (WebInspector.ReplayObserver.prototype.segmentCompleted):
1046 (WebInspector.ReplayObserver.prototype.segmentLoaded):
1047 (WebInspector.ReplayObserver.prototype.segmentUnloaded):
1048 * UserInterface/Test.html:
1050 2014-03-20 Joseph Pecoraro <pecoraro@apple.com>
1052 Web Inspector: DebuggerDashboardView looks scrunched debugging JSContext
1053 https://bugs.webkit.org/show_bug.cgi?id=130527
1055 Reviewed by Timothy Hatcher.
1057 Instead of using body.javascript to force a collapsed style,
1058 actually use the toolbar's collapsed class.
1060 * UserInterface/Views/DashboardContainerView.css:
1061 (.toolbar.collapsed .dashboard-container):
1062 * UserInterface/Views/Toolbar.js:
1064 2014-03-20 Katie Madonna <madonnk@gmail.com>
1066 Web Inspector: probe sidebar should use overflow:scroll and split space evenly
1067 https://bugs.webkit.org/show_bug.cgi?id=129627
1069 Reviewed by Timothy Hatcher.
1071 Use flexbox to split space evenly in the probe sidebar, which required changes to collapse
1072 format, remove scrollbar styles from old timelapse branch.
1074 * UserInterface/Views/ProbeDetailsSidebarPanel.css: Space elements evenly with flexbox
1075 and make collapse correctly, remove scrollbar style.
1076 * UserInterface/Views/ProbeSetDetailsSection.js: Removed inline style.
1078 2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
1080 Web Inspector: Make update-InspectorBackendCommands.rb only update legacy protocol versions
1081 https://bugs.webkit.org/show_bug.cgi?id=130412
1083 Reviewed by Timothy Hatcher.
1085 Rename the script and simplify to only update Legacy protocol versions.
1087 * Scripts/update-LegacyInspectorBackendCommands.rb: Renamed from Source/WebInspectorUI/Scripts/update-InspectorBackendCommands.rb.
1089 2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
1091 Web Inspector: sourceMapResourceLoaded expects statusCode parameter
1092 https://bugs.webkit.org/show_bug.cgi?id=130377
1094 Reviewed by Timothy Hatcher.
1096 * UserInterface/Models/SourceMapResource.js:
1098 2014-03-17 Joseph Pecoraro <pecoraro@apple.com>
1100 Web Inspector: Uncaught Exception in JSContext Inspector
1101 https://bugs.webkit.org/show_bug.cgi?id=130368
1103 Reviewed by Timothy Hatcher.
1105 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1106 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
1107 Feature check DOMAgent as well as the function.
1109 2014-03-16 Brian Burg <bburg@apple.com>
1111 Web Inspector: vended backend commands file should be generated as part of the build
1112 https://bugs.webkit.org/show_bug.cgi?id=130110
1114 Reviewed by Timothy Hatcher.
1116 Copy the backend commands generated in other frameworks into our built products directory.
1118 * Configurations/WebInspectorUIFramework.xcconfig: Set up variables so we can pull backend
1119 commands files from the private headers directory of other frameworks.
1120 * Scripts/copy-user-interface-resources.sh: Always ditto inspector backend commands.
1121 * UserInterface/Protocol/InspectorJSBackendCommands.js: Removed.
1122 * UserInterface/Protocol/InspectorWebBackendCommands.js: Removed.
1123 * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Copy over the generated
1124 backend commands files from the other frameworks.
1125 * WebInspectorUI.xcodeproj/project.pbxproj: Add JavaScriptCore and WebCore as
1126 framework dependencies so Xcode builds them first.
1128 2014-03-15 David Kilzer <ddkilzer@apple.com>
1130 [iOS] Define SYSTEM_VERSION_PREFIX consistently
1131 <http://webkit.org/b/130293>
1132 <rdar://problem/15926359>
1134 Reviewed by Dan Bernstein.
1136 * Configurations/Version.xcconfig:
1137 (SYSTEM_VERSION_PREFIX): Sync with
1138 Source/WebKit/mac/Version.xcconfig.
1140 2014-03-14 Maciej Stachowiak <mjs@apple.com>
1142 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
1143 https://bugs.webkit.org/show_bug.cgi?id=130276
1144 <rdar://problem/16266927>
1146 Reviewed by Simon Fraser.
1148 * APPLE_IMAGES_LICENSE.rtf:
1149 * UserInterface/Base/DOMUtilities.js:
1150 * UserInterface/Models/Color.js:
1151 * UserInterface/Views/ConsoleCommand.js:
1152 * UserInterface/Views/ConsoleCommandResult.js:
1153 * UserInterface/Views/ConsoleGroup.js:
1154 * UserInterface/Views/ConsoleMessage.js:
1155 * UserInterface/Views/ConsoleMessageImpl.js:
1156 * UserInterface/Views/DOMTreeElement.js:
1157 * UserInterface/Views/DOMTreeOutline.js:
1158 * UserInterface/Views/DOMTreeUpdater.js:
1159 * UserInterface/Views/GradientSlider.css:
1160 * UserInterface/Views/GradientSlider.js:
1161 * UserInterface/Views/TreeOutline.js:
1163 2014-03-14 Bem Jones-Bey <bjonesbe@adobe.com>
1165 [CSS Shapes] Add autocomplete for -webkit-shape-outside
1166 https://bugs.webkit.org/show_bug.cgi?id=130268
1168 Reviewed by Joseph Pecoraro.
1170 Add completions for -webkit-shape-outside. Also add the box shapes to
1171 the possible completions for clip-path.
1173 * UserInterface/Models/CSSKeywordCompletions.js:
1175 2014-03-14 Joseph Pecoraro <pecoraro@apple.com>
1177 Web Inspector: Update shapes autocompletion suggestions
1178 https://bugs.webkit.org/show_bug.cgi?id=130255
1180 Reviewed by Bem Jones-Bey.
1182 * UserInterface/Models/CSSKeywordCompletions.js:
1184 2014-03-14 James Craig <jcraig@apple.com>
1186 Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
1187 https://bugs.webkit.org/show_bug.cgi?id=129943
1189 Reviewed by Timothy Hatcher.
1191 Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
1193 Web Accessibility Node Inspector now displays a link to the AX parent node,
1194 because it's not a 1:1 match with the DOMNode parent.
1196 * Localizations/en.lproj/localizedStrings.js: new "Parent" string.
1197 * UserInterface/Base/DOMUtilities.js: Updating linkifyNodeReference to include role; adding new roleSelectorForNode method.
1198 * UserInterface/Models/DOMNode.js: AX Parent support and adding role to DOMNode (will be exposed as AX Parent link and in overlays).
1199 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Accessibility parent node.
1201 2014-03-14 Diego Pino Garcia <dpino@igalia.com>
1203 Web Inspector: Resource and Frame saveIdentityToCookie should store URL hashes not URLs
1204 https://bugs.webkit.org/show_bug.cgi?id=126833
1206 Reviewed by Timothy Hatcher.
1208 * UserInterface/Models/Frame.js:
1209 (WebInspector.Frame.prototype.saveIdentityToCookie):
1210 * UserInterface/Models/Resource.js:
1211 (WebInspector.Resource.prototype.saveIdentityToCookie):
1213 2014-03-13 James Craig <jcraig@apple.com>
1215 Web Inspector: AXI: Use loc strings for known aria-invalid types
1216 https://bugs.webkit.org/show_bug.cgi?id=129952
1218 Reviewed by Joseph Pecoraro.
1220 Updating inspector-protocol and UI display values for @aria-invalid.
1222 Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
1224 * Localizations/en.lproj/localizedStrings.js: "Grammar" and "Spelling" value strings.
1225 * UserInterface/Protocol/InspectorWebBackendCommands.js: New enum for DOM.AccessibilityPropertiesInvalid
1226 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Use enum instead of passing value through directly.
1228 2014-03-13 Diego Pino Garcia <dpino@igalia.com>
1230 Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
1231 https://bugs.webkit.org/show_bug.cgi?id=129779
1233 Reviewed by Timothy Hatcher.
1235 * Localizations/en.lproj/localizedStrings.js: Add label "Focused".
1236 * UserInterface/Models/DOMNode.js: Set property "focused" in
1237 accessibilityProperties.
1238 (WebInspector.DOMNode.prototype.accessibilityProperties): Add row for
1240 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1241 (WebInspector.DOMNodeDetailsSidebarPanel):
1242 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
1243 Refresh value of property "focused" in UI.
1245 2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
1247 Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
1248 https://bugs.webkit.org/show_bug.cgi?id=130217
1250 Reviewed by Timothy Hatcher.
1252 * UserInterface/Protocol/InspectorFrontendHostStub.js:
1254 2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
1256 Web Inspector: Network.loadResource should include the response status code
1257 https://bugs.webkit.org/show_bug.cgi?id=130216
1259 Reviewed by Timothy Hatcher.
1261 * UserInterface/Controllers/SourceMapManager.js:
1262 (WebInspector.SourceMapManager.prototype.sourceMapLoaded):
1263 (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
1264 * UserInterface/Models/SourceMapResource.js:
1265 (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
1266 If the response is 400 or larger, treat it as an error / failed load.
1268 * UserInterface/Protocol/InspectorWebBackendCommands.js:
1269 Update protocol to provide status code parameter.
1271 2014-03-12 Brian Burg <bburg@apple.com>
1273 Web Inspector: Remove unused callId parameter from evaluateInWebInspector
1274 https://bugs.webkit.org/show_bug.cgi?id=129744
1276 Reviewed by Timothy Hatcher.
1278 * UserInterface/Protocol/InspectorJSBackendCommands.js:
1279 * UserInterface/Protocol/InspectorObserver.js:
1280 (WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
1282 2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
1284 Web Inspector: [iOS 6] uncaught exception attempting to use CSSAgent.getNamedFlowCollection
1285 https://bugs.webkit.org/show_bug.cgi?id=130167
1287 Reviewed by Timothy Hatcher.
1289 Feature check the protocol method before using it. It is
1290 fine to do nothing if the feature is not supported.
1292 * UserInterface/Controllers/DOMTreeManager.js:
1294 2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
1296 Web Inspector: Feature check for accessibility support before using it (DOMAgent.getAccessibilityPropertiesForNode)
1297 https://bugs.webkit.org/show_bug.cgi?id=130037
1299 Reviewed by Timothy Hatcher.
1301 Feature detect if accessibility information is supported before
1302 creating or attempting to update the accessibility section.
1304 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1305 (WebInspector.DOMNodeDetailsSidebarPanel):
1306 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
1307 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
1309 2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
1311 Web Inspector: Fix multiple console.assert stripping issues
1312 https://bugs.webkit.org/show_bug.cgi?id=130166
1314 Reviewed by Timothy Hatcher.
1316 There were a couple console.assert stripping issues in production.
1317 One line required a semicolon so was avoiding getting stripped.
1318 One resulted in a logic change, when stripping the only statement
1319 of a control flow block. Add a warning for such cases.
1321 * Scripts/remove-console-asserts.pl:
1322 Add warning for a console.assert being the only statement in a control flow block
1323 without braces. When it is stripped it may change the flow of the function.
1325 * Scripts/remove-console-asserts-dryrun.rb: Added.
1326 Add a script to quickly test running remove console asserts on our files, to
1327 help catch errors not in a production build and in the original non-combined
1328 files, so you can more easily fix issues.
1330 * UserInterface/Controllers/DOMTreeManager.js:
1331 (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
1332 Convert the for loop into a single console.assert statement.
1334 * UserInterface/Views/DataGrid.js:
1335 (WebInspector.DataGrid.prototype.removeChild):
1336 Add missing semicolon.
1338 2014-03-12 Brian Burg <bburg@apple.com>
1340 Web Inspector: convert model tests and inspector-test.js to use Test.html
1341 https://bugs.webkit.org/show_bug.cgi?id=129217
1343 Reviewed by Timothy Hatcher.
1345 Miscellaneous changes to make the inspector model test harness work well in
1346 scenarios where the test page must navigate or reload. Also improve reporting
1347 test failures so that messages will be dumped correctly even when an exception
1348 is thrown in the Inspector or the test times out.
1350 * UserInterface/Base/Test.js:
1351 (WebInspector.loaded): register new managers and observers.
1352 (InspectorTest.log): Stringify the argument if it's an object.
1353 (InspectorTest.assert): Stringify the argument if it's an object. Don't log
1354 unless the condition is false.
1356 (InspectorTest.expectThat): Added. Like assert(), but always logs.
1357 (InspectorTest.debugLog): Escape and unescape the string properly.
1358 (InspectorTest.completeTest): Fix teardown so messages are not lost.
1359 (InspectorTest.evaluateInPage): Accept a callback argument.
1360 (InspectorTest.addResult): Don't rebuild results when adding a new result.
1361 (InspectorTest._resendResults.decrementPendingResponseCount): Added.
1363 (InspectorTest._resendResults): Added. Track the number of pending
1364 responses and invoke a given callback when everything has been resent.
1366 (InspectorTest.testPageDidLoad): Renamed from `pageLoaded`.
1367 (InspectorTest.reloadPage): Added.
1368 (InspectorTest.reportUncaughtException): Prevent the default handler from running.
1369 * UserInterface/Protocol/InspectorBackend.js:
1370 (InspectorBackendClass.prototype.dispatch): Report uncaught exceptions when dispatching
1371 messages on the inspector page without blowing away the entire call stack.
1373 * UserInterface/Test.html: Add files used by Network and Timeline domains.
1375 2014-03-11 Brian Burg <bburg@apple.com>
1377 Web Inspector: DataGrid should have an API to set sort column and direction
1378 https://bugs.webkit.org/show_bug.cgi?id=128783
1380 Reviewed by Timothy Hatcher.
1382 Previously there was no way for DataGrid clients to programmatically change
1383 the sort order or sort column identifier after the data grid was constructed.
1384 This patch modernizes DataGrid sorting by exposing getters and setters for
1385 sortOrder and sortColumnIdentifier, which trigger the SortChanged event if
1386 the sort settings have changed.
1388 This patch also modernizes sorting functionality in DataGrid clients, and in
1389 a few clients it moves column identifiers from numbers to string identifiers.
1391 * UserInterface/Main.html:
1392 * UserInterface/Views/ApplicationCacheFrameContentView.js: Use string column identifiers
1393 instead of numbers. Don't repopulate the entire table when the sort changes, instead
1394 call DataGrid.sortNodes from the sorting callback. Explicitly set the sort order.
1396 (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
1397 (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
1398 (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):
1399 (WebInspector.ApplicationCacheFrameContentView.prototype._populateDataGrid):
1401 * UserInterface/Views/CookieStorageContentView.js: Use string column identifiers instead
1402 of numbers. Don't sort the cookies themselves, just the data grid nodes representing
1403 each cookie. Use DataGrid.sortNodes as the sorting implementation, and provide a
1404 comparator. Don't rebuild the entire table when the sort changes.
1406 (WebInspector.CookieStorageContentView.prototype._rebuildTable):
1407 (WebInspector.CookieStorageContentView.prototype._sortDataGrid):
1408 (WebInspector.CookieStorageContentView.prototype._sortDataGrid.numberCompare):
1409 (WebInspector.CookieStorageContentView.prototype._sortDataGrid.expiresCompare):
1411 * UserInterface/Views/DataGrid.js: Add the DataGrid.SortOrder enum. Put sortOrder
1412 and sortColumnIdentifier behind getters and setters. Pull some hardcoded style
1413 class names into constants. Remove the "sort" field on column config objects; instead
1414 should use the DataGrid.sortColumnIdentifier setter after construction.
1416 (WebInspector.DataGrid): Keep sort settings in private variables.
1417 (WebInspector.DataGrid.prototype.get sortOrder): Reimplemented.
1418 (WebInspector.DataGrid.prototype.get sortColumnIdentifier): Reimplemented.
1419 (WebInspector.DataGrid.prototype.moveToNextCell):
1420 (WebInspector.DataGrid.prototype._editingCommitted):
1421 (WebInspector.DataGrid.prototype.sortNodes): Use requestAnimationFrame to
1422 coalesce multiple sort requests within the same draw frame.
1423 (WebInspector.DataGrid.prototype._sortNodesCallback):
1424 (WebInspector.DataGrid.prototype._headerCellClicked): Use the new sort API.
1425 * UserInterface/Views/LayerTreeDataGrid.js: Removed. Unnecessary for performance
1426 now that sort requests are coalesced by requestAnimationFrame.
1428 * UserInterface/Views/LayerTreeSidebarPanel.js: Use DataGrid instead of LayerTreeDataGrid.
1429 Hook up the _sortDataGrid method to the built-in DataGrid.sortNodes API.
1431 (WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
1432 (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
1433 (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
1434 * UserInterface/Views/LayoutTimelineView.js:
1435 * UserInterface/Views/LegacyJavaScriptProfileView.js:
1436 (WebInspector.LegacyJavaScriptProfileView.prototype._sortProfile):
1437 * UserInterface/Views/NetworkTimelineView.js:
1438 * UserInterface/Views/ResourceDetailsSidebarPanel.js: Use the DataGrid.sortNodes API.
1439 (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):
1440 (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid):
1441 (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
1442 * UserInterface/Views/ScriptTimelineView.js:
1443 * UserInterface/Views/TimelineDataGrid.js:
1444 (WebInspector.TimelineDataGrid.prototype._sortComparator):
1446 2014-03-10 James Craig <jcraig@apple.com>
1448 Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
1449 https://bugs.webkit.org/show_bug.cgi?id=129781
1451 Reviewed by Joseph Pecoraro.
1453 Enabling several more properties to be exposed in the Accessibility Node Inspector.
1455 Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
1457 * Localizations/en.lproj/localizedStrings.js:
1458 * UserInterface/Models/DOMNode.js:
1459 * UserInterface/Protocol/InspectorWebBackendCommands.js:
1460 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1462 2014-03-10 Brian Burg <bburg@apple.com>
1464 Web Inspector: show a debugging-oriented dashboard when scripts pause
1465 https://bugs.webkit.org/show_bug.cgi?id=129913
1467 Reviewed by Timothy Hatcher.
1469 Using the dashboard swapping functionality just added, show a debugger dashboard
1470 whenever the debugger pauses, and hide it when it resumes. The debugger manager
1471 already coalesces pause/resume events across stepping commands.
1473 The dashboard itself is straightforward, with the exception of how it uses the
1474 navigation bar buttons. Since buttons from the same URL can't be reused if they
1475 are bezeled, we don't bezel our button, and set the button image as the glyph mask
1476 instead of the background image. This lets us easily animate the glyph shape.
1478 We also have to more forcefully declare a bunch of icon rules that would otherwise
1479 be messed up by the toolbar's icon rules (whereas we want to mostly emulate navigation
1482 * Localizations/en.lproj/localizedStrings.js:
1483 * UserInterface/Base/Main.js:
1484 (WebInspector.loaded):
1485 (WebInspector.contentLoaded):
1486 (WebInspector._debuggerDidPause):
1487 (WebInspector._debuggerDidResume):
1488 * UserInterface/Controllers/DashboardManager.js:
1489 (WebInspector.DashboardManager):
1490 * UserInterface/Main.html:
1491 * UserInterface/Models/DebuggerDashboard.js: Added.
1492 (WebInspector.DebuggerDashboard):
1493 * UserInterface/Views/ButtonNavigationItem.css:
1494 (.navigation-bar .item.button.suppress-emboss > .glyph):
1495 * UserInterface/Views/ButtonNavigationItem.js:
1496 (WebInspector.ButtonNavigationItem.prototype._updateImage):
1497 * UserInterface/Views/DashboardView.js:
1498 (WebInspector.DashboardView):
1499 * UserInterface/Views/DebuggerDashboardView.css: Added.
1500 (.toolbar .dashboard.debugger):
1501 (.dashboard.debugger > .message):
1502 (.dashboard.debugger .navigation-bar):
1503 (.toolbar:not(.small-size) .dashboard.debugger .navigation-bar):
1504 (.dashboard.debugger .navigation-bar .item.button):
1505 (.dashboard.debugger .navigation-bar .item.button > .glyph):
1506 (@-webkit-keyframes pulse-pause-button):
1508 (.dashboard.debugger > .divider):
1509 (.dashboard.debugger > div):
1510 (.dashboard.debugger > .location > :first-child):
1511 (.toolbar:not(.small-size) .dashboard.debugger > .location :not(:first-child)):
1512 (.dashboard.debugger > .location img.icon):
1513 (.dashboard.debugger > .location .function-name):
1514 (.dashboard.debugger > .location .function-name::after):
1515 (.dashboard.debugger > .location .go-to-link):
1516 (.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )):
1517 (.toolbar.small-size .dashboard.debugger > .message):
1518 (.toolbar.small-size .dashboard.debugger > .location > :first-child):
1519 * UserInterface/Views/DebuggerDashboardView.js: Added.
1520 (WebInspector.DebuggerDashboardView):
1521 (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
1522 (WebInspector.DebuggerDashboardView.prototype._resumeButtonClicked):
1523 * UserInterface/Views/DebuggerSidebarPanel.js:
1524 (WebInspector.DebuggerSidebarPanel):
1526 2014-03-10 Brian Burg <bburg@apple.com>
1528 Web Inspector: convert the dashboard toolbar item to support multiple dashboards
1529 https://bugs.webkit.org/show_bug.cgi?id=129898
1531 Reviewed by Timothy Hatcher.
1533 We want to ability to swap in and out different dashboard contents depending on
1534 circumstances such as debugger activity and page loading. This patch converts the
1535 existing hard-coded dashboard implementation to follow the container-based approach
1536 used by WebInspector.ContentViewContainer.
1538 As part of the refactoring, we introduce dashboard model objects to store persistent
1539 dashboard data. Some CSS has also been split between the container and specific dashboard.
1541 * UserInterface/Controllers/DashboardManager.js:
1542 (WebInspector.DashboardManager):
1543 (WebInspector.DashboardManager.prototype.get toolbarItem):
1544 * UserInterface/Main.html:
1545 * UserInterface/Models/DefaultDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
1546 (WebInspector.DefaultDashboard):
1547 (WebInspector.DefaultDashboard.prototype.get resourcesCount):
1548 (WebInspector.DefaultDashboard.prototype.set resourcesCount):
1549 (WebInspector.DefaultDashboard.prototype.get resourcesSize):
1550 (WebInspector.DefaultDashboard.prototype.set resourcesSize):
1551 (WebInspector.DefaultDashboard.prototype.get time):
1552 (WebInspector.DefaultDashboard.prototype.set time):
1553 (WebInspector.DefaultDashboard.prototype.get logs):
1554 (WebInspector.DefaultDashboard.prototype.set logs):
1555 (WebInspector.DefaultDashboard.prototype.get errors):
1556 (WebInspector.DefaultDashboard.prototype.set errors):
1557 (WebInspector.DefaultDashboard.prototype.get issues):
1558 (WebInspector.DefaultDashboard.prototype.set issues):
1559 (WebInspector.DefaultDashboard.prototype._dataDidChange):
1560 (WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
1561 (WebInspector.DefaultDashboard.prototype._recordingStopped):
1562 (WebInspector.DefaultDashboard.prototype._resourceWasAdded):
1563 (WebInspector.DefaultDashboard.prototype._frameWasAdded):
1564 (WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
1565 (WebInspector.DefaultDashboard.prototype._startUpdatingTime):
1566 (WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
1567 (WebInspector.DefaultDashboard.prototype._updateTime):
1568 (WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
1569 (WebInspector.DefaultDashboard.prototype._consoleMessageWasRepeated):
1570 (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
1571 (WebInspector.DefaultDashboard.prototype._consoleWasCleared):
1572 * UserInterface/Views/DashboardContainerView.css: Added.
1573 (.toolbar .dashboard-container):
1574 (body.window-inactive .toolbar .dashboard-container):
1575 (body.javascript .toolbar .dashboard-container):
1576 (.toolbar.normal-size.icon-and-label-vertical .dashboard-container):
1577 (.toolbar.small-size.icon-and-label-horizontal .dashboard-container):
1578 (.toolbar.normal-size.icon-and-label-horizontal .dashboard-container):
1579 (.toolbar .dashboard-container):
1580 (.toolbar .dashboard):
1581 (.toolbar .dashboard.visible):
1582 (.toolbar .dashboard.slide-out-up):
1583 (.toolbar .dashboard.slide-out-down):
1584 (.toolbar .dashboard.slide-in-up):
1585 (.toolbar .dashboard.slide-in-down):
1586 (@-webkit-keyframes slide-top-edge):
1588 (@-webkit-keyframes slide-bottom-edge):
1589 * UserInterface/Views/DashboardContainerView.js: Added.
1590 (WebInspector.DashboardContainerView):
1591 (WebInspector.DashboardContainerView.prototype.get toolbarItem):
1592 (WebInspector.DashboardContainerView.prototype.get currentDashboardView):
1593 (WebInspector.DashboardContainerView.prototype.showDashboardViewForRepresentedObject):
1594 (WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):
1595 (WebInspector.DashboardContainerView.prototype._showDashboardView):
1596 * UserInterface/Views/DashboardView.css: Removed.
1597 * UserInterface/Views/DashboardView.js:
1598 (WebInspector.DashboardView):
1599 (WebInspector.DashboardView.prototype.get element):
1600 (WebInspector.DashboardView.prototype.get parentContainer):
1601 (WebInspector.DashboardView.prototype.get representedObject):
1602 (WebInspector.DashboardView.prototype.shown):
1603 (WebInspector.DashboardView.prototype.hidden):
1604 * UserInterface/Views/DefaultDashboardView.css: Added.
1605 (body.web .toolbar.collapsed .dashboard.default > .logs):
1606 (body.javascript .toolbar .dashboard.default > .resourcesCount):
1607 (.toolbar .dashboard.default):
1608 (.toolbar .dashboard.default > .item):
1609 (.toolbar .dashboard.default > .resourcesSize):
1610 (.toolbar .dashboard.default > .item.enabled:hover):
1611 (.toolbar .dashboard.default > .item.enabled:active):
1612 (.toolbar .dashboard.default > .item > *):
1613 (.toolbar .dashboard.default > .item > img):
1614 (.toolbar .dashboard.default > .item.enabled > img):
1615 (.toolbar .dashboard.default > .item.enabled:hover > img):
1616 (.toolbar .dashboard.default > .item > div):
1617 (.toolbar .dashboard.default > .item.enabled > div):
1618 (.toolbar .dashboard.default > .item.enabled:hover > div):
1619 (.toolbar .dashboard.default > .resourcesCount > img):
1620 (.toolbar .dashboard.default > .time > img):
1621 (.toolbar .dashboard.default > .logs > img):
1622 (.toolbar .dashboard.default > .resourcesSize > img):
1623 (.toolbar .dashboard.default > .errors > img):
1624 (.toolbar .dashboard.default > .errors.enabled > img):
1625 (.toolbar .dashboard.default > .errors.enabled:hover > img):
1626 (.toolbar .dashboard.default > .errors.enabled > div):
1627 (.toolbar .dashboard.default > .errors.enabled:hover > div):
1628 (.toolbar .dashboard.default > .issues > img):
1629 (.toolbar .dashboard.default > .issues.enabled > img):
1630 (.toolbar .dashboard.default > .issues.enabled:hover > img):
1631 (.toolbar .dashboard.default > .issues.enabled > div):
1632 (.toolbar .dashboard.default > .issues.enabled:hover > div):
1633 (.toolbar .dashboard.default > .item.pulsing):
1634 (@-webkit-keyframes console-item-pulse):
1635 (.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item):
1636 (.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item):
1637 * UserInterface/Views/DefaultDashboardView.js: Copied from Source/WebInspectorUI/UserInterface/Views/DashboardView.js.
1638 (WebInspector.DefaultDashboardView):
1639 (WebInspector.DefaultDashboardView.prototype._updateDisplay):
1640 (WebInspector.DefaultDashboardView.prototype._formatPossibleLargeNumber):
1641 (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.):
1642 (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
1643 (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
1644 (WebInspector.DefaultDashboardView.prototype._itemWasClicked):
1645 (WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):
1646 (WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
1647 (WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):
1648 (WebInspector.DefaultDashboardView.prototype.animationEnded):
1649 (WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
1650 (WebInspector.DefaultDashboardView.prototype._setItemEnabled):
1652 2014-03-08 Joseph Pecoraro <pecoraro@apple.com>
1654 Web Inspector: update-InspectorBackendCommands.rb is putting legacy protocol files in the wrong place
1655 https://bugs.webkit.org/show_bug.cgi?id=129959
1657 Reviewed by Timothy Hatcher.
1659 The script was putting legacy generated files into UserInterface
1660 instead of UserInterface/Protocol.
1662 * Scripts/update-InspectorBackendCommands.rb:
1664 2014-03-07 Timothy Hatcher <timothy@apple.com>
1666 Load source maps and their resources asynchronously.
1668 https://bugs.webkit.org/show_bug.cgi?id=112071
1670 Reviewed by Joseph Pecoraro.
1672 * UserInterface/Controllers/SourceMapManager.js:
1673 (WebInspector.SourceMapManager.prototype.loadAndParseSourceMap):
1674 (WebInspector.SourceMapManager.prototype.downloadSourceMap):
1675 (WebInspector.SourceMapManager.prototype.sourceMapLoaded):
1676 (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
1677 Use NetworkAgent.loadResource.
1679 * UserInterface/Models/SourceMapResource.js:
1680 (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
1681 (WebInspector.SourceMapResource.prototype.createSourceCodeTextRange):
1682 Use NetworkAgent.loadResource.
1684 * UserInterface/Protocol/InspectorWebBackendCommands.js: Updated.
1686 2014-03-04 Brian Burg <bburg@apple.com>
1688 Inspector does not restore breakpoints after a page reload
1689 https://bugs.webkit.org/show_bug.cgi?id=129655
1691 Reviewed by Joseph Pecoraro.
1693 Fix some console asserts that fire when breakpoints resolve.
1695 * UserInterface/Controllers/DebuggerManager.js:
1696 (WebInspector.DebuggerManager.prototype.breakpointResolved):
1697 This had a typo, it should be `breakpoint.identifier`.
1698 (WebInspector.DebuggerManager.prototype.scriptDidParse):
1699 Sometimes the `url` parameter is empty instead of null.
1701 2014-03-04 Diego Pino Garcia <dpino@igalia.com>
1703 Web Inspector: Remove WebInspector.EventHandler in favor of WebInspector.EventListenerSet
1704 https://bugs.webkit.org/show_bug.cgi?id=129185
1706 Reviewed by Timothy Hatcher.
1708 * UserInterface/Base/EventHandler.js: Removed.
1709 * UserInterface/Main.html: Don't include EventHandler.js.
1710 * UserInterface/Views/SourceCodeTextEditor.js:
1711 (WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
1712 (WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
1713 Use EventListenerSet instead of EventHandler.
1715 2014-03-03 Jonathan Wells <jonowells@apple.com>
1717 Web Inspector: Match color of regex in source view with a popover
1718 https://bugs.webkit.org/show_bug.cgi?id=129645
1720 Reviewed by Timothy Hatcher.
1722 * UserInterface/Views/LogContentView.css:
1723 (.console-formatted-string):
1724 (.console-formatted-regexp):
1726 2014-03-03 Jonathan Wells <jonowells@apple.com>
1728 Web Inspector: Better Debugger popovers for RegExp values
1729 https://bugs.webkit.org/show_bug.cgi?id=129633
1731 Reviewed by Timothy Hatcher.
1733 * UserInterface/Views/SourceCodeTextEditor.js:
1734 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
1735 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
1736 (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
1738 2014-03-03 Timothy Hatcher <timothy@apple.com>
1740 Don't try to parse legacy CSS gradients -- we don't support them.
1742 https://bugs.webkit.org/show_bug.cgi?id=129623
1744 Reviewed by Joseph Pecoraro.
1746 * UserInterface/Models/Gradient.js:
1747 (WebInspector.Gradient.stopsWithComponents): Fix a possible exception on malformed stops.
1748 (WebInspector.LinearGradient.linearGradientWithComponents): Return early for legacy gradients.
1750 2014-03-03 Timothy Hatcher <timothy@apple.com>
1752 Remove an innocuous error message and support default views for Resource and Debugger sidebars.
1754 https://bugs.webkit.org/show_bug.cgi?id=129622
1756 Reviewed by Joseph Pecoraro.
1758 * UserInterface/Views/DebuggerSidebarPanel.js:
1759 (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView): Added.
1760 * UserInterface/Views/ResourceSidebarPanel.js:
1761 (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView): Added.
1762 (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Don't log an error
1763 if the tree element isn't a Script. We try to find any represented object, and it can fail.
1765 2014-03-03 Timothy Hatcher <timothy@apple.com>
1767 Fix an exception caused by trying to access the DOM before it is loaded.
1769 https://bugs.webkit.org/show_bug.cgi?id=129617
1771 Reviewed by Andreas Kling.
1773 * UserInterface/Base/Main.js:
1774 (WebInspector.loaded): Move global event listeners from here...
1775 (WebInspector.contentLoaded): ... to here.
1777 2014-03-01 Timothy Hatcher <timothy@apple.com>
1779 Make Start Timeline Recording in the Develop menu show the Timeline view again.
1781 This also fixes a noticeable delay between showing the sidebar and the default Timeline
1782 view when initially opening the Web Inspector to the Timeline.
1784 https://bugs.webkit.org/show_bug.cgi?id=129545
1786 Reviewed by Joseph Pecoraro.
1788 * UserInterface/Base/Main.js:
1789 (WebInspector.contentLoaded): Call TimelineSidebarPanel.initialize to prime the content view.
1790 This is needed so the view is ready in this run loop cycle, where it was delayed before.
1791 * UserInterface/Protocol/InspectorFrontendAPI.js:
1792 (InspectorFrontendAPI.setTimelineProfilingEnabled): Call TimelineSidebarPanel.showTimelineOverview.
1793 * UserInterface/Views/TimelineSidebarPanel.js:
1794 (WebInspector.TimelineSidebarPanel.prototype.initialize): Added.
1796 2014-03-01 Timothy Hatcher <timothy@apple.com>
1798 Select the Resource navigation sidebar by default when there is no cookie.
1800 https://bugs.webkit.org/show_bug.cgi?id=129544
1802 Reviewed by Joseph Pecoraro.
1804 * UserInterface/Base/Main.js:
1805 (WebInspector._restoreInspectorViewStateFromCookie):
1807 2014-03-01 Timothy Hatcher <timothy@apple.com>
1809 Label JavaScript forced layouts as such in the Timeline.
1811 https://bugs.webkit.org/show_bug.cgi?id=129546
1813 Reviewed by David Kilzer.
1815 * Localizations/en.lproj/localizedStrings.js: Updated.
1816 * UserInterface/Controllers/TimelineManager.js:
1817 (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1818 (WebInspector.TimelineManager.prototype.eventRecorded):
1819 * UserInterface/Models/LayoutTimelineRecord.js:
1820 (WebInspector.LayoutTimelineRecord.EventType.displayName):
1821 * UserInterface/Views/TimelineRecordTreeElement.js:
1822 (WebInspector.TimelineRecordTreeElement):
1824 2014-02-28 Timothy Hatcher <timothy@apple.com>
1826 Enable breakpoints when adding a new breakpoint or enabling an existing breakpoint.
1828 This eliminates a multi-step process for the user that can be confusing.
1830 https://bugs.webkit.org/show_bug.cgi?id=129426
1832 Reviewed by Joseph Pecoraro.
1834 * UserInterface/Controllers/DebuggerManager.js:
1835 (WebInspector.DebuggerManager.prototype.set breakpointsEnabled):
1836 (WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
1837 * UserInterface/Views/DebuggerSidebarPanel.js:
1838 (WebInspector.DebuggerSidebarPanel):
1839 (WebInspector.DebuggerSidebarPanel.prototype._breakpointsEnabledDidChange):
1840 (WebInspector.DebuggerSidebarPanel.prototype._breakpointsToggleButtonClicked):
1842 2014-02-27 Timothy Hatcher <timothy@apple.com>
1844 Use a RegExp when when using CodeMirror's SearchCursor.
1846 This avoids doing toLowerCase() on every line of the TextEditor.
1848 https://bugs.webkit.org/show_bug.cgi?id=129463
1850 Reviewed by Joseph Pecoraro.
1852 * UserInterface/Views/TextEditor.js:
1853 (TextEditor.prototype.performSearch): Use a RegExp for query. Pass false for the caseFold
1854 argument, but it is ignored for RegExp searches anyway.
1856 2014-02-27 Brian Burg <bburg@apple.com>
1858 Web Inspector: model tests should use a special Test.html inspector page
1859 https://bugs.webkit.org/show_bug.cgi?id=129190
1861 Reviewed by Timothy Hatcher.
1863 * UserInterface/Base/Test.js: Added.
1864 (WebInspector.loaded):
1865 (WebInspector.contentLoaded):
1866 (WebInspector.updateDockedState):
1867 (InspectorTest.log):
1868 (InspectorTest.assert):
1869 (InspectorTest.debugLog):
1870 (InspectorTest.completeTest):
1871 (InspectorTest.evaluateInPage):
1872 (InspectorTest.addResult):
1873 (InspectorTest.clearResults):
1874 (InspectorTest.pageLoaded):
1875 (InspectorTest.reportUncaughtException):
1877 * UserInterface/Protocol/InspectorBackend.js:
1878 (InspectorBackendClass):
1879 (InspectorBackendClass.prototype.dispatch):
1880 (InspectorBackendClass.prototype.runAfterPendingDispatches):
1881 (InspectorBackendClass.prototype._flushPendingScripts):
1882 * UserInterface/Protocol/InspectorObserver.js:
1883 (WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
1884 * UserInterface/Test.html: Added.
1886 2014-02-27 Joseph Pecoraro <pecoraro@apple.com>
1888 Web Inspector: JSContext inspection should report exceptions in the console
1889 https://bugs.webkit.org/show_bug.cgi?id=128776
1891 Reviewed by Timothy Hatcher.
1893 * UserInterface/ConsoleMessageImpl.js:
1894 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1895 (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1896 (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1897 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1898 Provide better handling for "[native code]" and legacy "undefined"
1899 call frame URLs. Never linkify these. Also, when showing a link
1900 for an exception, always use the first non-native call frame as
1903 2014-02-26 Timothy Hatcher <timothy@apple.com>
1905 Fix an issue where the Timeline filter scope bars were not applying.
1907 Reviewed by Joseph Pecoraro.
1909 * UserInterface/Views/TimelineDataGrid.js:
1910 (TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Use .get() to access the ScopeBar.
1912 2014-02-25 Andreas Kling <akling@apple.com>
1914 Prune dead code for Web Inspector memory instrumentation.
1915 <https://webkit.org/b/129286>
1917 Reviewed by Sam Weinig.
1919 * UserInterface/Protocol/InspectorWebBackendCommands.js:
1921 2014-02-24 Timothy Hatcher <timothy@apple.com>
1923 Switch from prefixed CSS gradient to unprefixed.
1925 https://bugs.webkit.org/show_bug.cgi?id=129279
1927 Reviewed by Andreas Kling.
1929 * UserInterface/Views/BreakpointActionView.css:
1930 (.breakpoint-action-append-button):
1931 (.breakpoint-action-remove-button):
1932 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1933 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
1934 * UserInterface/Views/CompletionSuggestionsView.css:
1935 (.completion-suggestions-container > .item:active):
1936 * UserInterface/Views/DashboardView.css:
1937 (.toolbar .dashboard):
1938 * UserInterface/Views/DataGrid.css:
1940 (.data-grid table.data):
1941 (.data-grid th.sortable:not(.mouse-over-collapser):active):
1942 (.data-grid th.sort-ascending, .data-grid th.sort-descending):
1943 (.data-grid th.sortable.sort-ascending:not(.mouse-over-collapser):active, .data-grid th.sortable.sort-descending:not(.mouse-over-collapser):active):
1944 (body.window-inactive .data-grid th.sort-descending):
1945 * UserInterface/Views/DetailsSection.css:
1946 (.details-section > .header):
1947 (.details-section .details-section > .header):
1948 * UserInterface/Views/DividerNavigationItem.css:
1949 (.navigation-bar .item.divider):
1950 * UserInterface/Views/FindBanner.css:
1951 (.find-banner > button:active:not(:disabled)):
1952 * UserInterface/Views/Main.css:
1953 (#split-content-browser > .navigation-bar):
1954 * UserInterface/Views/NavigationSidebarPanel.css:
1955 (.sidebar > .panel.navigation > .overflow-shadow):
1956 (.navigation-sidebar-panel-content-tree-outline .item.selected):
1957 (.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
1958 (body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
1959 * UserInterface/Views/ProbeSetDataGrid.css:
1960 (.details-section.probe-set .data-grid > .data-container td.unknown-value):
1961 (.details-section.probe-set .data-grid th):
1962 * UserInterface/Views/RadioButtonNavigationItem.css:
1963 (.navigation-bar .item.radio.button.text-only.selected):
1964 * UserInterface/Views/TextEditor.css:
1965 (.text-editor .bouncy-highlight):
1966 * UserInterface/Views/TimelineContentView.css:
1967 (.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
1968 * UserInterface/Views/TimelineDataGrid.css:
1969 (.timeline-data-grid-tree-outline .item:hover):
1970 * UserInterface/Views/TimelineRuler.css:
1971 (.timeline-ruler > .header > .divider):
1972 * UserInterface/Views/TimelineSidebarPanel.css:
1973 (.sidebar > .panel.timeline > .title-bar):
1974 (.sidebar > .panel.timeline > .content > .stripe-background):
1975 * UserInterface/Views/Toolbar.css:
1976 (body:not(.mac-platform) .toolbar):
1977 (body.docked.mac-platform.mavericks .toolbar):
1979 2014-02-24 Timothy Hatcher <timothy@apple.com>
1981 Fix the missing navigation bar in the Debugger sidebar panel.
1983 Sorting the CSS resources caused specificity issue.
1985 https://bugs.webkit.org/show_bug.cgi?id=129251
1987 Reviewed by Joseph Pecoraro.
1989 * UserInterface/Views/DebuggerSidebarPanel.css:
1990 (.sidebar > .panel.navigation.debugger > .content):
1991 (.sidebar > .panel.navigation.debugger > .navigation-bar):
1992 * UserInterface/Views/LayoutTimelineView.css:
1993 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
1994 * UserInterface/Views/NetworkTimelineView.css:
1995 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
1996 * UserInterface/Views/ResourceSidebarPanel.css:
1997 (.sidebar > .panel.navigation.resource > .empty-content-placeholder):
1998 (.sidebar > .panel.navigation.resource > .search-bar):
1999 (.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
2000 * UserInterface/Views/ScriptTimelineView.css:
2001 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
2002 * UserInterface/Views/TimelineSidebarPanel.css:
2003 (.sidebar > .panel.navigation.timeline > .status-bar):
2004 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2005 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
2006 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
2007 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
2008 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
2009 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
2010 (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
2011 (.sidebar > .panel.navigation.timeline > .title-bar):
2012 (.sidebar > .panel.navigation.timeline > .title-bar.timelines):
2013 (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
2014 (.sidebar > .panel.navigation.timeline > .timelines-content):
2015 (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
2016 (.sidebar > .panel.navigation.timeline > .timelines-content li.item .icon):
2017 (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected .close-button):
2018 (.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):nth-child(even)):
2019 (.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):not(:first-child)):
2020 (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
2021 (.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
2022 (.sidebar > .panel.navigation.timeline > .timelines-content .close-button:active):
2023 (.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
2024 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content):
2025 (.sidebar > .panel.navigation.timeline > .content > .stripe-background):
2026 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background):
2028 2014-02-24 Timothy Hatcher <timothy@apple.com>
2030 Give non-Mac platforms a default toolbar background so it isn't just white.
2032 https://bugs.webkit.org/show_bug.cgi?id=129260
2034 Reviewed by Joseph Pecoraro.
2036 * UserInterface/Base/Main.js:
2037 (WebInspector.contentLoaded): Style the boby with platform classes.
2038 * UserInterface/Base/Utilities.js:
2039 (String.prototype.contains): Added.
2040 * UserInterface/Views/Toolbar.css:
2041 (body.docked .toolbar, body:not(.mac-platform) .toolbar): Added. Default toolbar background.
2042 (body.docked.mac-platform.mavericks .toolbar, body.docked.mac-platform.mountain-lion): Added.
2043 (body.mac-platform:not(.docked) .toolbar .item.button > .label): Only apply to Mac.
2045 2014-02-24 Diego Pino Garcia <dpino@igalia.com>
2047 Web Inspector: Remove single quote characters from Web Inspector JavaScript files
2048 https://bugs.webkit.org/show_bug.cgi?id=129253
2050 Reviewed by Timothy Hatcher.
2052 * UserInterface/Base/Main.js:
2053 (WebInspector.openURL):
2054 * UserInterface/Views/CookieStorageContentView.js:
2055 (WebInspector.cookieDomainMatchesResourceDomain):
2056 * UserInterface/Views/DOMTreeElement.js:
2057 (WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
2058 (WebInspector.DOMTreeElement.prototype._startEditingTagName.editingComitted):
2059 (WebInspector.DOMTreeElement.prototype._startEditingTagName.editingCancelled):
2060 (WebInspector.DOMTreeElement.prototype._startEditingTagName):
2061 * UserInterface/Views/DOMTreeOutline.js:
2062 (WebInspector.DOMTreeOutline.prototype._ondragover):
2063 * UserInterface/Views/DataGrid.js:
2064 (WebInspector.DataGrid.prototype.addPlaceholderNode):
2066 2014-02-23 Dan Bernstein <mitz@apple.com>
2068 Removed -Wno-format-y2k from WARNING_CFLAGS
2070 Rubber-stamped by Sam Weinig.
2072 * Configurations/Base.xcconfig:
2074 2014-02-23 Diego Pino GarcÃa <dpino@igalia.com>
2076 [GTK] Fix build after Web Inspector code reorganization (r164543)
2077 https://bugs.webkit.org/show_bug.cgi?id=129231
2079 Reviewed by Dean Jackson.
2082 Modify paths to Web Inspector code.
2084 2014-02-23 Antoine Quint <graouts@webkit.org>
2086 Web Inspector: color picker sliders aren't laid out correctly
2087 https://bugs.webkit.org/show_bug.cgi?id=129234
2089 Reviewed by Joseph Pecoraro.
2091 While it's unclear to me what happened, the "position" property for the color picker sliders
2092 wasn't being computed as expected and used relative positioning. I assume this is related to
2093 r164543 when the order of CSS files changed.
2095 * UserInterface/Views/Slider.css:
2098 2014-02-22 Dan Bernstein <mitz@apple.com>
2100 REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
2101 https://bugs.webkit.org/show_bug.cgi?id=129227
2103 Reviewed by Eric Carlson.
2107 * UserInterface/Views/ConsoleMessageImpl.js:
2108 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2109 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
2111 2014-02-21 Timothy Hatcher <timothy@apple.com>
2113 Organize WebInspectorUI/UserInterface into sub-directories.
2115 https://bugs.webkit.org/show_bug.cgi?id=129194
2117 Rubber-stamped by Joseph Pecoraro.
2119 * Scripts/copy-user-interface-resources.sh: Fix Image URLs and Protocol paths.
2120 * UserInterface/Base: Added.
2121 * UserInterface/Controllers: Added.
2122 * UserInterface/Images: Added.
2123 * UserInterface/Main.html: Updated.
2124 * UserInterface/Models Added.
2125 * UserInterface/Protocol Added.
2126 * UserInterface/Views: Added.
2128 2014-02-21 Timothy Hatcher <timothy@apple.com>
2130 Add inspection user interface for IndexedDB.
2132 https://bugs.webkit.org/show_bug.cgi?id=129162
2134 Reviewed by Joseph Pecoraro.
2136 * Localizations/en.lproj/localizedStrings.js: Updated.
2137 * UserInterface/ContentView.js:
2138 (WebInspector.ContentView):
2139 (WebInspector.ContentView.isViewable):
2140 * UserInterface/IndexedDatabase.js: Added.
2141 (WebInspector.IndexedDatabase):
2142 (WebInspector.IndexedDatabase.prototype.get name):
2143 (WebInspector.IndexedDatabase.prototype.get securityOrigin):
2144 (WebInspector.IndexedDatabase.prototype.get host):
2145 (WebInspector.IndexedDatabase.prototype.get version):
2146 (WebInspector.IndexedDatabase.prototype.get objectStores):
2147 (WebInspector.IndexedDatabase.prototype.saveIdentityToCookie):
2148 * UserInterface/IndexedDatabaseEntryDataGridNode.js: Added.
2149 (WebInspector.IndexedDatabaseEntryDataGridNode):
2150 (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.get entry):
2151 (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
2152 * UserInterface/IndexedDatabaseHostTreeElement.js: Added.
2153 (WebInspector.IndexedDatabaseHostTreeElement):
2154 (WebInspector.IndexedDatabaseHostTreeElement.prototype.get name):
2155 (WebInspector.IndexedDatabaseHostTreeElement.prototype.get categoryName):
2156 * UserInterface/IndexedDatabaseObjectStore.js: Added.
2157 (WebInspector.IndexedDatabaseObjectStore):
2158 (WebInspector.IndexedDatabaseObjectStore.prototype.get name):
2159 (WebInspector.IndexedDatabaseObjectStore.prototype.get keyPath):
2160 (WebInspector.IndexedDatabaseObjectStore.prototype.get autoIncrement):
2161 (WebInspector.IndexedDatabaseObjectStore.prototype.get parentDatabase):
2162 (WebInspector.IndexedDatabaseObjectStore.prototype.get indexes):
2163 (WebInspector.IndexedDatabaseObjectStore.prototype.saveIdentityToCookie):
2164 (WebInspector.IndexedDatabaseObjectStore.prototype.establishRelationship):
2165 * UserInterface/IndexedDatabaseObjectStoreContentView.css: Added.
2166 (.content-view.indexed-database-object-store > .data-grid):
2167 (.content-view.indexed-database-object-store > .data-grid td .section .header):
2168 (.content-view.indexed-database-object-store > .data-grid td .section .header::before):
2169 (.content-view.indexed-database-object-store > .data-grid td .section .header .title):
2170 (.content-view.indexed-database-object-store > .data-grid table.data):
2171 (.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(even)):
2172 (.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)):
2173 (.content-view.indexed-database-object-store > .data-grid table.data tr.filler):
2174 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section .header::before):
2175 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section.expanded .header::before):
2176 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent::before):
2177 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent.expanded::before):
2178 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li *):
2179 * UserInterface/IndexedDatabaseObjectStoreContentView.js: Added.
2180 (WebInspector.IndexedDatabaseObjectStoreContentView.displayKeyPath):
2181 (WebInspector.IndexedDatabaseObjectStoreContentView):
2182 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.closed):
2183 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.saveToCookie):
2184 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.updateLayout):
2185 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._reset):
2186 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._dataGridScrolled):
2187 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
2188 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
2189 * UserInterface/IndexedDatabaseObjectStoreIndex.js: Added.
2190 (WebInspector.IndexedDatabaseObjectStoreIndex):
2191 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get name):
2192 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get keyPath):
2193 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get unique):
2194 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get multiEntry):
2195 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get parentObjectStore):
2196 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.saveIdentityToCookie):
2197 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.establishRelationship):
2198 * UserInterface/IndexedDatabaseObjectStoreIndexTreeElement.js: Added.
2199 (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement):
2200 (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement.prototype.get objectStoreIndex):
2201 * UserInterface/IndexedDatabaseObjectStoreTreeElement.js: Added.
2202 (WebInspector.IndexedDatabaseObjectStoreTreeElement):
2203 (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.get objectStore):
2204 (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.oncollapse):
2205 (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.onpopulate):
2206 * UserInterface/IndexedDatabaseTreeElement.js: Added.
2207 (WebInspector.IndexedDatabaseTreeElement):
2208 (WebInspector.IndexedDatabaseTreeElement.prototype.get indexedDatabase):
2209 (WebInspector.IndexedDatabaseTreeElement.prototype.oncollapse):
2210 (WebInspector.IndexedDatabaseTreeElement.prototype.onpopulate):
2211 * UserInterface/Main.html:
2212 * UserInterface/Main.js:
2213 (WebInspector.sidebarPanelForRepresentedObject):
2214 * UserInterface/ResourceSidebarPanel.js:
2215 (WebInspector.ResourceSidebarPanel):
2216 (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
2217 (WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded):
2218 (WebInspector.ResourceSidebarPanel.prototype._storageCleared):
2219 * UserInterface/StorageManager.js:
2220 (WebInspector.StorageManager):
2221 (WebInspector.StorageManager.prototype.initialize):
2222 (WebInspector.StorageManager.prototype.processData):
2223 (WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
2224 (WebInspector.StorageManager.prototype._mainResourceDidChange):
2225 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabaseNames):
2226 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabase):
2227 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded):
2228 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStore):
2229 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStoreIndex):
2230 (WebInspector.StorageManager.prototype._securityOriginDidChange):
2231 * UserInterface/URLUtilities.js:
2232 (parseSecurityOrigin):
2234 2014-02-22 Antoine Quint <graouts@webkit.org>
2236 Web Inspector: allow drag-to-adjust on angle input of gradients editor
2237 https://bugs.webkit.org/show_bug.cgi?id=129095
2239 Reviewed by Timothy Hatcher.
2241 Rename CodeMirrorDragToAlterNumberController to CodeMirrorDragToAdjustNumberController and move
2242 the core logic of a drag-to-adjust behavior out of it to a new generic class DragToAdjustController.
2243 We use this new class from CodeMirrorGradientEditingController to provide drag-to-adjust behavior
2244 in the angle input field of the gradient editor and also as a supporting object for the CodeMirror-
2247 * UserInterface/CodeMirrorDragToAdjustNumberController.css: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.css.
2248 (.CodeMirror.drag-to-adjust .CodeMirror-lines):
2250 * UserInterface/CodeMirrorDragToAdjustNumberController.js: Added.
2251 Removed the UI logic and use the new DragToAdjustController as a supporting object instead. We implement
2252 the various DragToAdjustController delegate methods in order to customize its behavior to work within the
2253 context of a CodeMirror editor, specifically to prevent activation when the editor is read-only and to
2254 prevent adjustment when the hovered token isn't a number.
2256 (WebInspector.CodeMirrorDragToAdjustNumberController):
2257 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.get enabled):
2258 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
2259 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerActiveStateChanged):
2260 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeActivated):
2261 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeAdjusted):
2262 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerWasAdjustedByAmount):
2263 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerDidReset):
2264 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
2266 * UserInterface/CodeMirrorGradientEditingController.css:
2267 (.gradient-editing-controller > label.drag-to-adjust > input):
2269 * UserInterface/CodeMirrorGradientEditingController.js:
2270 Adopt the new DragToAdjustController to make the angle input field value adjustable by dragging.
2272 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
2273 (WebInspector.CodeMirrorGradientEditingController.prototype.dragToAdjustControllerWasAdjustedByAmount):
2274 (WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
2275 (WebInspector.CodeMirrorGradientEditingController.prototype._angleInputValueDidChange):
2277 * UserInterface/DragToAdjustController.js: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.js.
2278 New DragToAdjustController class exposing only the core UI logic of a drag-to-adjust behavior in the context
2279 of a DOM element, exposing a few delegation methods to customize the controller's behavior:
2281 - dragToAdjustControllerActiveStateChanged() notifies that the .active property has changed, allowing bringup
2282 and cleanup work to be performed.
2284 - dragToAdjustControllerDidReset() notifies that the various tracking states of the controller have been reset
2285 allowing other state objects used by clients to be cleared.
2287 - dragToAdjustControllerCanBeActivated() is used to check whether the controller may enter the active state upon
2288 first hovering the target element.
2290 - dragToAdjustControllerCanBeAdjusted() is used to check whether adjustment can be performed at the moment when
2291 the user actually is about to engage in a drag-to-adjust interaction.
2293 - dragToAdjustControllerCanAdjustObjectAtPoint() is used to check whether the object at the provided point (mouse
2294 location) is an adjustable value.
2296 - dragToAdjustControllerWasAdjustedByAmount() notifies that there is a new amount to add to the current value
2297 following a drag-to-adjust interaction.
2299 (WebInspector.DragToAdjustController):
2300 (WebInspector.DragToAdjustController.prototype.get element):
2301 (WebInspector.DragToAdjustController.prototype.set element):
2302 (WebInspector.DragToAdjustController.prototype.set enabled):
2303 (WebInspector.DragToAdjustController.prototype.get active):
2304 (WebInspector.DragToAdjustController.prototype.set active):
2305 (WebInspector.DragToAdjustController.prototype.reset):
2306 (WebInspector.DragToAdjustController.prototype.handleEvent):
2307 (WebInspector.DragToAdjustController.prototype._setDragging):
2308 (WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
2309 (WebInspector.DragToAdjustController.prototype._modifiersDidChange):
2310 (WebInspector.DragToAdjustController.prototype._mouseMoved):
2311 (WebInspector.DragToAdjustController.prototype._mouseWasPressed):
2312 (WebInspector.DragToAdjustController.prototype._mouseWasDragged):
2313 (WebInspector.DragToAdjustController.prototype._mouseWasReleased):
2315 * UserInterface/Main.html:
2316 Link in new source files.
2318 2014-02-21 Chi Wai Lau <clau@apple.com>
2320 Web Inspector: Replace binarySearch with lowerBound and upperBound functions
2321 https://bugs.webkit.org/show_bug.cgi?id=118609
2323 Reviewed by Timothy Hatcher.
2325 This makes insertionIndexForObjectInListSortedByFunction work in O(log(n)) time instead of O(n).
2327 * UserInterface/BinarySearch.js: Removed.
2328 * UserInterface/Main.html:
2329 * UserInterface/Utilities.js:
2330 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
2331 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2333 2014-02-21 Brian Burg <bburg@apple.com>
2335 Web Inspector: animate breakpoint tree elements when probe samples are received
2336 https://bugs.webkit.org/show_bug.cgi?id=128334
2338 Reviewed by Timothy Hatcher.
2340 * UserInterface/BreakpointIcons.css: Removed, rules migrated to the following file.
2342 * UserInterface/BreakpointTreeElement.css: When we want to animateon top of the
2343 static icon, we set the icon image as the icon element's background, and animate
2344 a span on top of the icon element.
2346 (.breakpoint-exception-icon .icon): Moved.
2347 (.breakpoint-generic-line-icon .icon):
2348 (.breakpoint-generic-line-icon .icon > span): Added.
2349 (.data-updated.breakpoint-generic-line-icon .icon > span): Added.
2351 * UserInterface/BreakpointTreeElement.js:
2352 (WebInspector.BreakpointTreeElement): Rewrite event listener add/remove to use EventListenerSet.
2353 (WebInspector.BreakpointTreeElement.prototype.ondetach): Override to unregister the instance's listeners.
2354 (WebInspector.BreakpointTreeElement.prototype._addProbeSet): Added.
2355 (WebInspector.BreakpointTreeElement.prototype._removeProbeSet): Added.
2356 (WebInspector.BreakpointTreeElement.prototype._probeSetAdded): Added.
2357 (WebInspector.BreakpointTreeElement.prototype._probeSetRemoved): Added.
2358 Add/remove listeners when probe sets change.
2360 (WebInspector.BreakpointTreeElement.prototype._samplesCleared): Listeners should follow
2361 the active data table.
2363 (WebInspector.BreakpointTreeElement.prototype._dataUpdated): Run the animation when probe data changes.
2364 (WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange): Fix a listener leak.
2365 * UserInterface/Main.html: Remove BreakpointIcons.css.
2366 * UserInterface/NavigationSidebarPanel.css:
2367 (.navigation-sidebar-panel-content-tree-outline .item .icon): give icons
2368 'position: relative' so child spans can be absolutely positioned.
2369 * UserInterface/ProbeDetailsSidebarPanel.js: Get probeSet out of the event data
2370 container. The probe set used to be passed as the data container itself.
2371 (WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
2372 * UserInterface/ProbeManager.js:
2373 (WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
2374 (WebInspector.ProbeManager.prototype._breakpointActionsChanged):
2375 (WebInspector.ProbeManager.prototype.get _probeSetForBreakpoint.set this):
2376 * UserInterface/ProbeSet.js:
2377 (WebInspector.ProbeSet.prototype.clearSamples): include the old data table as the SamplesCleared event data.
2378 * UserInterface/TextResourceContentView.js:
2379 (WebInspector.TextResourceContentView.prototype._probeSetsChanged):
2381 2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
2383 Web Inspector: JSContext inspection should report exceptions in the console
2384 https://bugs.webkit.org/show_bug.cgi?id=128776
2386 Reviewed by Timothy Hatcher.
2388 * UserInterface/ConsoleMessageImpl.js:
2389 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2390 (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
2391 (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
2392 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
2393 Provide better handling for "[native code]" and legacy "undefined"
2394 call frame URLs. Never linkify these. Also, when showing a link
2395 for an exception, always use the first non-native call frame as
2398 2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
2400 Revert r164486, causing a number of test failures.
2404 2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
2406 Web Inspector: JSContext inspection should report exceptions in the console
2407 https://bugs.webkit.org/show_bug.cgi?id=128776
2409 Reviewed by Timothy Hatcher.
2411 * UserInterface/ConsoleMessageImpl.js:
2412 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2413 (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
2414 (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
2415 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
2416 Provide better handling for "[native code]" and legacy "undefined"
2417 call frame URLs. Never linkify these. Also, when showing a link
2418 for an exception, always use the first non-native call frame as
2421 2014-02-21 Antoine Quint <graouts@webkit.org>
2423 Web Inspector: scrollbar may appear when selecting a stop in gradient editor
2424 https://bugs.webkit.org/show_bug.cgi?id=129149
2426 Reviewed by Timothy Hatcher.
2428 Ensure the angle input is not focused as we update the size of the gradient editor's
2429 popover content since, if it were, it'd make a scrollbar appear as we animate the
2430 popover's frame to fit its new content.
2432 * UserInterface/CodeMirrorGradientEditingController.js:
2433 (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
2435 2014-02-20 Antoine Quint <graouts@webkit.org>
2437 Web Inspector: rich editing of CSS gradients
2438 https://bugs.webkit.org/show_bug.cgi?id=119686
2440 Reviewed by Timothy Hatcher.
2442 Look for gradient definitions in CSS resources and implement a gradient-specific CodeMirrorEditingController
2443 to edit those CSS gradients. The CodeMirrorGradientEditingController consists of a GradientSlider, a new widget
2444 allowing the editing of gradient stops, a <select> to pick between various gradient types, a text input to edit
2445 the gradient angle (for linear gradients) and finally a ColorPicker when a gradient stop is picked for editing.
2447 * Localizations/en.lproj/localizedStrings.js:
2448 New localized strings for the content of the gradient editing controller popover.
2450 * UserInterface/CodeMirrorAdditions.js:
2451 New .createGradientMarkers() method which, similar to .createColorMarkers(), takes in an optional TextRange, and
2452 looks for all gradients specified in CSS to create TextMarkers with new type WebInspector.TextMarker.Type.Gradient.
2453 In order to fully identify these CSS gradient strings, we implement a tokenizer to look for the final closing
2454 parenthesis since there can be nested opening and closing parentheses as colors are specified for stops.
2456 * UserInterface/CodeMirrorGradientEditingController.css: Added.
2457 (.gradient-editing-controller):
2458 (.gradient-editing-controller.edits-color):
2459 (.gradient-editing-controller.radial-gradient):
2460 (.gradient-editing-controller.edits-color.radial-gradient):
2461 (.gradient-editing-controller select):
2462 (.gradient-editing-controller .gradient-slider):
2463 (.gradient-editing-controller .color-picker):
2464 (.gradient-editing-controller > .color-picker > .slider):
2465 (.gradient-editing-controller > .color-picker > .brightness):
2466 (.gradient-editing-controller > .color-picker > .opacity):
2467 (.gradient-editing-controller > label):
2468 (.gradient-editing-controller.radial-gradient > label):
2469 (.gradient-editing-controller.edits-color > label):
2470 (.gradient-editing-controller > label > input):
2472 * UserInterface/CodeMirrorGradientEditingController.js: Added.
2473 (WebInspector.CodeMirrorGradientEditingController):
2474 (WebInspector.CodeMirrorGradientEditingController.prototype.get initialValue):
2475 (WebInspector.CodeMirrorGradientEditingController.prototype.get cssClassName):
2476 (WebInspector.CodeMirrorGradientEditingController.prototype.get popoverPreferredEdges):
2477 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverTargetFrameWithRects):
2478 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
2479 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
2480 Implementation of CodeMirrorEditingController methods meant to be overridden. This allows us
2481 to customize the popover's appearance, mostly to control how it attaches to the gradient
2482 strings in the editor.
2484 (WebInspector.CodeMirrorGradientEditingController.prototype.handleEvent):
2485 Event handler for changes in the <select> governing gradient type and <input> for the angle.
2487 (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopsDidChange):
2488 Implementation of a GradientSlider delegation method, we use this to update the .text property
2489 in order to propagate the stops change to the editor.
2491 (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
2492 Implementation of a GradientSlider delegation method, we use this to control the display of the
2493 ColorPicker used to edit the color of a selected stop.
2495 (WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
2496 Deal with changes in the <input> for the angle, ensuring we have a "º" string added to the value.
2498 (WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent):
2499 Deal with changes in the <select> for the type, preserving the stops list from one gradient type
2500 to the other. Gradient type-specific information (angle for linear gradients, sizing for radial
2501 gradients) is lost as we toggle between gradient types.
2503 (WebInspector.CodeMirrorGradientEditingController.prototype._colorPickerColorChanged):
2504 Propagate a color change in the ColorPicker to the stop being edited in the GradientSlider and
2505 and update the .text property in order to propagate the stops change to the editor.
2507 (WebInspector.CodeMirrorGradientEditingController.prototype._updateCSSClassForGradientType):
2508 As we toggle the gradient type in ._handleChangeEvent(), update the CSS class used to hide or show
2509 the angle <input> which is only relevant for linear gradients.
2511 * UserInterface/ColorPicker.js:
2512 (WebInspector.ColorPicker):
2513 Adopt the new Checkers.svg file to display the checkers pattern in the background of the opacity slider.
2515 (WebInspector.ColorPicker.prototype.get colorWheel):
2516 Expose the ColorWheel such that it can be sized by ColorPicker clients.
2518 (WebInspector.ColorPicker.prototype._updateColor):
2519 Drive-by fix for a bug where we'd attempt to use the RGB components of a color to get the alpha-aware version
2520 of the color even though the base format was HSL.
2522 * UserInterface/Gradient.js: Added.
2523 Parser for gradient strings as passed from the CodeMirror .createGradientMarkers() extension method. In the case
2524 of linear gradients, we parse all values, save for lengths, and in the case of radial gradients, we preserve the
2525 sizing information as a string and parse only the gradient stops as the sizing information is only useful to show
2526 in an editor if attached to an element with metrics.
2528 Since instances of Gradient are used as the .value property of CodeMirrorGradientEditingController, we implement
2529 the required .copy() and .toString() methods. The .toString() implementations are aware of default values for angles
2530 and color stop offsets and only print those as necessary and use shorthands when possible.
2532 (WebInspector.Gradient.fromString):
2533 (WebInspector.Gradient.stopsWithComponents):
2534 (WebInspector.Gradient.stringFromStops):
2535 (WebInspector.LinearGradient):
2536 (WebInspector.LinearGradient.linearGradientWithComponents):
2537 (WebInspector.LinearGradient.prototype.copy):
2538 (WebInspector.LinearGradient.prototype.toString):
2539 (WebInspector.RadialGradient):
2540 (WebInspector.RadialGradient.radialGradientWithComponents):
2541 (WebInspector.RadialGradient.prototype.copy):
2542 (WebInspector.RadialGradient.prototype.toString):
2544 * UserInterface/GradientSlider.css: Added.
2546 (.gradient-slider > canvas):
2547 (.gradient-slider > .add-area):
2548 (.gradient-slider-knob):
2549 (.gradient-slider-knob.shadow):
2550 (.gradient-slider-knob.selected):
2551 (.gradient-slider-knob.detaching):
2552 (.gradient-slider-knob.fade-out):
2553 (.gradient-slider-knob > div):
2554 (.gradient-slider-knob > img):
2556 * UserInterface/GradientSlider.js: Added.
2557 Widget used to edit a list of stops for a gradient, linear or radial. The widget features a <canvas> element
2558 that draws the gradient as a linear gradient from left to right with checkers in the background to correctly
2559 display transparent colors. Attached to this background, individual knobs are shown for each stop in the provided
2560 stops array. These knobs can be dragged from left to right to change the matching stop offset, but also down to
2561 detach the knob and remove this stop. Additionally, knobs can be clicked to toggle their selected state, where only
2562 one knob can be selected at a time. The Esc. key is used to remove selection of the currently selected knob.
2564 (WebInspector.GradientSlider):
2565 (WebInspector.GradientSlider.prototype.get element):
2566 (WebInspector.GradientSlider.prototype.get stops):
2567 (WebInspector.GradientSlider.prototype.set stops):
2568 (WebInspector.GradientSlider.prototype.get selectedStop):
2569 (WebInspector.GradientSlider.prototype.handleEvent):
2570 (WebInspector.GradientSlider.prototype.handleKeydownEvent):
2571 (WebInspector.GradientSlider.prototype.knobXDidChange):
2572 (WebInspector.GradientSlider.prototype.knobCanDetach):
2573 (WebInspector.GradientSlider.prototype.knobWillDetach):
2574 (WebInspector.GradientSlider.prototype.knobSelectionChanged):
2575 (WebInspector.GradientSlider.prototype._handleMouseover):
2576 (WebInspector.GradientSlider.prototype._handleMousemove):
2577 (WebInspector.GradientSlider.prototype._handleMouseout):
2578 (WebInspector.GradientSlider.prototype._handleClick):
2579 (WebInspector.GradientSlider.prototype._updateShadowKnob):
2580 (WebInspector.GradientSlider.prototype._sortStops):
2581 (WebInspector.GradientSlider.prototype._updateStops):
2582 (WebInspector.GradientSlider.prototype._updateCanvas):
2583 (WebInspector.GradientSlider.prototype._updateKnobs):
2584 (WebInspector.GradientSliderKnob):
2585 (WebInspector.GradientSliderKnob.prototype.get element):
2586 (WebInspector.GradientSliderKnob.prototype.get stop):
2587 (WebInspector.GradientSliderKnob.prototype.set stop):
2588 (WebInspector.GradientSliderKnob.prototype.get x):
2589 (WebInspector.GradientSliderKnob.prototype.set x):
2590 (WebInspector.GradientSliderKnob.prototype.get y):
2591 (WebInspector.GradientSliderKnob.prototype.set y):
2592 (WebInspector.GradientSliderKnob.prototype.get wellColor):
2593 (WebInspector.GradientSliderKnob.prototype.set wellColor):
2594 (WebInspector.GradientSliderKnob.prototype.get selected):
2595 (WebInspector.GradientSliderKnob.prototype.set selected):
2596 (WebInspector.GradientSliderKnob.prototype.handleEvent):
2597 (WebInspector.GradientSliderKnob.prototype._handleMousedown):
2598 (WebInspector.GradientSliderKnob.prototype._handleMousemove):
2599 (WebInspector.GradientSliderKnob.prototype._handleMouseup):
2600 (WebInspector.GradientSliderKnob.prototype._handleTransitionEnd):
2601 (WebInspector.GradientSliderKnob.prototype._updateTransform):
2603 * UserInterface/Images/Checkers.svg: Added.
2604 New asset to draw checkers for color wells.
2606 * UserInterface/Images/GradientStop.png: Added.
2607 * UserInterface/Images/GradientStop@2x.png: Added.
2608 * UserInterface/Images/GradientStopSelected.png: Added.
2609 * UserInterface/Images/GradientStopSelected@2x.png: Added.
2610 New assets used by the gradient slider.
2612 * UserInterface/Main.html:
2613 Link to the new source files.
2615 * UserInterface/SourceCodeTextEditor.js:
2616 (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
2617 Add a call to .createGradientMarkers() such that we support editing of CSS gradients in such editors.
2619 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
2620 Also recognize gradient markers as valid editable markers.
2622 * UserInterface/TextEditor.js:
2623 (WebInspector.TextEditor.prototype.createGradientMarkers):
2624 Wrapper for the CodeMirror extension method .createGradientMarkers() such that it may be used by subclasses
2625 that have no knowledge of CodeMirror.
2627 (WebInspector.TextEditor.prototype.editingControllerForMarker):
2628 Return a CodeMirrorGradientEditingController for TextMarkers with WebInspector.TextMarker.Type.Gradient type.
2630 * UserInterface/TextMarker.js:
2631 Add the WebInspector.TextMarker.Type.Gradient type.
2633 2014-02-20 Antoine Quint <graouts@webkit.org>
2635 Web Inspector: create a CodeMirrorEditingController superclass
2636 https://bugs.webkit.org/show_bug.cgi?id=129094
2638 Reviewed by Timothy Hatcher.
2640 Take code that is generic to editing of any text marker out of CodeMirrorColorEditingController to
2641 create a new CodeMirrorEditingController superclass that'll be fit to use for future editing controllers.
2642 Additioanlly, we fix existing issues with such editing by supporting text markers spread across several
2643 lines and more robustly handling the Esc. key being pressed to dismiss a controller's popover.
2645 * UserInterface/CSSStyleDeclarationTextEditor.js:
2646 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
2647 Adopt the new .createColorMarkers() method signature to provide a TextRange parameter rather than a single
2650 * UserInterface/CodeMirrorAdditions.js:
2651 Remove the .boundsForRange() method in favor of a .rectsForRange() method which will allow us to draw better
2652 menus when hovering over a text range by providing tight bounds rather than a large box. We also handle any
2653 line wrapping produced by CodeMirror and remove any leading white-space so that the rects are tight to the
2654 actual characters in the text marker.
2656 We also change .createColorMarkers() to take in a TextRange parameter rather than a line number in order to
2657 better deal with text markers spread across multiple lines.
2659 * UserInterface/CodeMirrorColorEditingController.js:
2660 Remove any code that is adequate for any editing controller (which is moving to CodeMirrorEditingController).
2661 We also adopt new interfaces exposed by CodeMirrorEditingController.
2663 (WebInspector.CodeMirrorColorEditingController):
2664 (WebInspector.CodeMirrorColorEditingController.prototype.get initialValue):
2665 (WebInspector.CodeMirrorColorEditingController.prototype.get cssClassName):
2666 (WebInspector.CodeMirrorColorEditingController.prototype.popoverWillPresent):
2667 (WebInspector.CodeMirrorColorEditingController.prototype.popoverDidPresent):
2668 (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
2670 * UserInterface/CodeMirrorEditingController.js: Copied from Source/WebInspectorUI/UserInterface/CodeMirrorColorEditingController.js.
2671 New class meant to be subclassed by any future editing controller, and already subclassed by
2672 CodeMirrorColorEditingController. This class exposes several hooks for subclasses to customize its behavior:
2674 .initialValue: a value we can revert to if the editing is canceled
2675 .cssClassName: a CSS class name that can be added to the editing controller's container
2676 .popoverPreferredEdges: a list of preferredEdges as passed to Popover.prototype.present() with a sensible default
2677 .popoverTargetFrameWithRects: a targetFrame passed to Popover.prototype.present(), defaults to a union of provided rects
2678 .popoverWillPresent: called as the popover is about to be presented, typically overridden to set the popover's content
2679 .popoverDidPresent: called as the popover just was presented, typically overridden when content needs to tuned only after
2680 being added to the DOM and setting of the necessary machinery to update the serialized value in the editor based on interaction
2681 within the popover without changing the serialized value upon showing the popover the very first time.
2683 Additionally, the .value property must be an object supporting .toString() and .copy() method.
2685 Finally, the .editingControllerDidStartEditing() and .editingControllerDidFinishEditing() delegate methods are fired
2686 as editing begins and finishes.
2688 (WebInspector.CodeMirrorEditingController):
2689 (WebInspector.CodeMirrorEditingController.prototype.get marker):
2690 (WebInspector.CodeMirrorEditingController.prototype.get range):
2691 (WebInspector.CodeMirrorEditingController.prototype.get value):
2692 (WebInspector.CodeMirrorEditingController.prototype.set value):
2693 (WebInspector.CodeMirrorEditingController.prototype.get delegate):
2694 (WebInspector.CodeMirrorEditingController.prototype.set delegate):
2695 (WebInspector.CodeMirrorEditingController.prototype.get text):
2696 (WebInspector.CodeMirrorEditingController.prototype.set text):
2697 (WebInspector.CodeMirrorEditingController.prototype.get initialValue):
2698 (WebInspector.CodeMirrorEditingController.prototype.get cssClassName):
2699 (WebInspector.CodeMirrorEditingController.prototype.get popover):
2700 (WebInspector.CodeMirrorEditingController.prototype.get popoverPreferredEdges):
2701 (WebInspector.CodeMirrorEditingController.prototype.popoverTargetFrameWithRects):
2702 (WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
2703 (WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
2704 (WebInspector.CodeMirrorEditingController.prototype.popoverWillPresent):
2705 (WebInspector.CodeMirrorEditingController.prototype.popoverDidPresent):
2707 (WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
2708 Event handler for keydown events as registered via the new WebInspector.addWindowKeydownListener() method.
2710 (WebInspector.CodeMirrorEditingController.prototype.hoverMenuButtonWasPressed):
2711 (WebInspector.CodeMirrorEditingController.prototype.didDismissPopover):
2713 * UserInterface/Geometry.js:
2714 (WebInspector.Rect.unionOfRects):
2715 (WebInspector.Rect.prototype.unionWithRect):
2716 New utilities to get a Rect that is the union of the provided Rect or array of Rects.
2718 (WebInspector.Polygon):
2719 (WebInspector.Polygon.prototype.bounds):
2720 New class used to store a list of points for a polygon and get its bounds, used by the HoverMenu class.
2722 * UserInterface/HoverMenu.css:
2724 (.hover-menu > svg):
2725 (.hover-menu > svg > rect):
2726 (.hover-menu > img):
2728 * UserInterface/HoverMenu.js:
2729 We remove the assumption that a HoverMenu is only used to draw a single rounded rect based on a simple
2730 Rect and instead support presentation based on an array of Rects where we either:
2732 - draw a single rounded rectangle if there is only a single Rect provided
2733 - draw two disconnected open-ended rects if we're provided with two non-overlapping Rects
2734 - draw a polygon surrounding all provided Rects in all other cases
2736 No matter how the HoverMenu is drawn, the drawing is performed in SVG with either <rect> or a <path> elements.
2738 (WebInspector.HoverMenu):
2739 (WebInspector.HoverMenu.prototype.present):
2740 (WebInspector.HoverMenu.prototype.dismiss):
2741 (WebInspector.HoverMenu.prototype.handleEvent):
2742 (WebInspector.HoverMenu.prototype._handleClickEvent):
2743 (WebInspector.HoverMenu.prototype._drawOutline):
2744 (WebInspector.HoverMenu.prototype._addRect):
2745 (WebInspector.HoverMenu.prototype._addPath):
2746 (WebInspector.HoverMenu.prototype._drawSingleLine):
2747 (WebInspector.HoverMenu.prototype._drawTwoNonOverlappingLines):
2748 (WebInspector.HoverMenu.prototype._drawOverlappingLines):
2750 * UserInterface/Main.html:
2751 Link to the new CodeMirrorEditingController class.
2753 * UserInterface/Main.js:
2754 Expose a new mechanism to deal with window-level handling of keydown events in order to allow
2755 a list of handlers to accept or reject dealing with the provided keydown event based on the order
2756 they were registered, in most recent to oldest registered handler. This allows, for instance, for
2757 a more graceful handling of the Esc. key being pressed in the CodeMirrorEditingController and
2758 bypasses the DOM structure allowing for objects managing elements in different DOM hierarchies
2759 to compete with handling of keydown events.
2761 (WebInspector.loaded):
2762 (WebInspector.addWindowKeydownListener):
2763 (WebInspector.removeWindowKeydownListener):
2764 (WebInspector._updateWindowKeydownListener):
2765 (WebInspector._sharedWindowKeydownListener):
2767 * UserInterface/SourceCodeTextEditor.css:
2768 (.hover-menu.color > img):
2769 Update the offset applied to a HoverMenu button based on the change of layout for such buttons which
2770 are now absolutely positioned in code by HoverMenu rather than being laid out using the flex-box model.
2772 * UserInterface/SourceCodeTextEditor.js:
2773 Abstrct away the assumption that only a color editing controller may be used to edit text markers in
2774 a source code text editor.
2776 (WebInspector.SourceCodeTextEditor.prototype.hidden):
2777 Ensure we remove any currently-displayed hover menu for an editing controller when the editor is hidden.
2778 This would happen in the situation where a keyboard shortcut was used to jump to another part of the
2779 Web Inspector UI without using the mouse.
2781 (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2782 Since we're now working with text ranges rather than lines, remove the code where we'd work out a set of
2783 changed lines and call ._updateEditableMarkers() with the changed range directly instead.
2785 (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
2786 (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2787 (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
2788 Adopt the more generic method names rather than color-specific ones.
2790 (WebInspector.SourceCodeTextEditor.prototype._showPopover):
2791 When showing the popover outside of the use of a CodeMirrorEditingController, such as a JavaScript expression
2792 when debugging, also deal with the possibility of the highlighted range containing multiple lines rather
2793 than assume a single line.
2795 (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
2796 More generic method name to support future, non-color editing controllers.
2798 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
2799 Find the outermost marker in the list of markers provided such that a marker containing other markers
2800 shows the UI for the containing marker. For instance, a gradient marker would contain several color
2801 markers and it's preferable to show the editing UI for the whole gradient rather than a specific color.
2803 Additionally, adopt more generic ivars and method names to support future, non-color editing controllers.
2805 (WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
2806 Support for new parameter instructing that the editing controller dismissal should be instant rather than
2807 animated, which is the default. This is useful when, for instance, the text editor is cleared.
2809 (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidStartEditing):
2810 (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
2811 Adopt the more generic method names rather than color-specific ones.
2813 * UserInterface/TextEditor.js:
2814 (WebInspector.TextEditor.prototype.rectsForRange):
2815 Remove .boundsForRange() in favor of this new method where we return a series of rects so that we may
2816 draw a more pleasing HoverMenu.
2818 (WebInspector.TextEditor.prototype.createColorMarkers):
2819 Use a TextRanger rather than a single line number to match the underlying CodeMirror extension method.
2821 (WebInspector.TextEditor.prototype.editingControllerForMarker):
2822 Use the provided TextMarker's type to provide the most adequate CodeMirrorEditingController class.
2824 * UserInterface/TextMarker.js:
2825 (WebInspector.TextMarker.prototype.get rects):
2826 Remove the .bounds property in favor of .rects to match the underlying CodeMirror extension method.
2828 2014-02-20 Antoine Quint <graouts@webkit.org>
2830 Web Inspector: Popover should animate its frame to display its refreshed content
2831 https://bugs.webkit.org/show_bug.cgi?id=129088
2833 Reviewed by Timothy Hatcher.
2835 When calling .update(), we now check whether we can animate the change of frame provided the
2836 new computed frame to best fit the current content still matches the edge the popover uses
2837 to attach to the target frame. If we find that we can do so, we animate the background frame
2838 of the popover while ensuring the anchor point remains stable during the animation such that
2839 only the popover's frame seems to animate.
2841 * UserInterface/Geometry.js:
2842 (WebInspector.Rect.prototype.round):
2843 Returns a new Rect with rounded values, using a floor for the position and a ceil for the size.
2845 * UserInterface/Main.html:
2846 Link to the new UnitBezier.js source file.
2848 * UserInterface/Popover.js:
2849 (WebInspector.Popover):
2850 Make ._anchorPoint an ivar such that we don't need to pass a reference to the anchorPoint into
2851 the various calls leading to an update of the popover's background drawing.
2853 (WebInspector.Popover.prototype.set frame):
2854 We no longer round the values of the frame here, instead calling the new .round() method on Rect
2855 in places where we compute a new frame.
2857 (WebInspector.Popover.prototype.set content):
2858 (WebInspector.Popover.prototype.update):
2859 Update the calls to ._update() to set the new shouldAnimate flag to true in situations where the
2860 popover is already visible.
2862 (WebInspector.Popover.prototype._update):
2863 In the situation where there is a preference to animate the frame, as set by the new shouldAnimate
2864 parameter, check that we can indeed animate by ensuring that the edge the popover uses to attach to
2865 the target frame remains the same upon computing the new best metrics for the new content size. If
2866 we can indeed animate, call _animateFrame(), otherwise set the new frame, anchor point and frame
2867 drawing discretely like we used to.
2869 (WebInspector.Popover.prototype._setAnchorPoint):
2870 New method to ensure we floor the position of the anchor point to ensure, when animating, that the
2871 anchor point remains stationary.
2873 (WebInspector.Popover.prototype._animateFrame):
2874 Using the new UnitBezier class, animate the popover frame from its previous value to its newly computed
2875 value while ensuring the anchor point remains, at all times, the same absolute position such that it
2876 remains stationary during the animation. The spline used to animate the frame is the same that a CSS
2877 transition set with an "ease" timing-function (default value) would use.
2879 (WebInspector.Popover.prototype._drawBackground):
2880 (WebInspector.Popover.prototype._drawFrame):
2881 Adopt new ._edge and ._anchorPoint ivars.
2883 * UserInterface/UnitBezier.js: Added.
2884 New class used to perform animations using a timing function specified with a cubic Bézier curve. The code
2885 is directly adapted from the Source/WebCore/platform/graphics/UnitBezier.h file.
2887 (WebInspector.UnitBezier):
2888 (WebInspector.UnitBezier.prototype.solve):
2889 (WebInspector.UnitBezier.prototype._sampleCurveX):
2890 (WebInspector.UnitBezier.prototype._sampleCurveY):
2891 (WebInspector.UnitBezier.prototype._sampleCurveDerivativeX):
2892 (WebInspector.UnitBezier.prototype._solveCurveX):
2894 2014-02-20 Antoine Quint <graouts@webkit.org>
2896 Web Inspector: content using a CSS transition within a popover causes the popover to disappear
2897 https://bugs.webkit.org/show_bug.cgi?id=129089
2899 Reviewed by Timothy Hatcher.
2901 Simply check that the element being transitioned is indeed the popover's container before assuming
2902 that the "transitonend" received was for a fade-out transition.
2904 * UserInterface/Popover.js:
2905 (WebInspector.Popover.prototype.handleEvent):
2907 2014-02-20 Antoine Quint <graouts@webkit.org>
2909 Web Inspector: clicking on a color swatch in the Computed styles tab shouldn't show the color editing popover
2910 https://bugs.webkit.org/show_bug.cgi?id=129093
2912 Reviewed by Timothy Hatcher.
2914 If the current editor is read-only, only allow cycling between color types since it wouldn't make sense to edit
2917 * UserInterface/CSSStyleDeclarationTextEditor.js:
2919 2014-02-19 Joseph Pecoraro <pecoraro@apple.com>
2921 Web Inspector: Remove unused InspectorBackend member variable
2922 https://bugs.webkit.org/show_bug.cgi?id=129053
2924 Reviewed by Timothy Hatcher.
2926 * UserInterface/InspectorBackend.js:
2927 (InspectorBackendClass):
2928 (InspectorBackendClass.prototype.registerCommand):
2929 (InspectorBackendClass.prototype.registerEnum):
2930 (InspectorBackendClass.prototype.registerEvent):
2932 2014-02-19 James Craig <jcraig@apple.com>
2934 Web Inspector: AX: clarify reason for ignored state where possible (hidden, default for tag, etc)
2935 https://bugs.webkit.org/show_bug.cgi?id=129037
2937 Reviewed by Timothy Hatcher.
2939 Passing back hidden and ignoredByDefault attrs to clarify some reasons for "ignored" status.
2941 * Localizations/en.lproj/localizedStrings.js:
2942 * UserInterface/DOMNode.js:
2943 * UserInterface/DOMNodeDetailsSidebarPanel.js:
2945 2014-02-18 James Craig <jcraig@apple.com>
2947 Web Inspector: AX: more properties: exists, required, and invalid (exists was previously combined with ignored)
2948 https://bugs.webkit.org/show_bug.cgi?id=128504
2950 Reviewed by Timothy Hatcher.
2952 Additions to the accessibility node inspector: exists, required, invalid.
2954 * Localizations/en.lproj/localizedStrings.js:
2955 * UserInterface/DOMNode.js:
2956 * UserInterface/DOMNodeDetailsSidebarPanel.js:
2958 2014-02-18 Antoine Quint <graouts@webkit.org>
2960 Web Inspector: editing a color in the Styles sidebar using the color picker only works once for a given color
2961 https://bugs.webkit.org/show_bug.cgi?id=128965
2963 Reviewed by Timothy Hatcher.
2965 Use the WebInspector.TextMarker backing the CodeMirror TextMarker object to inspect its type in
2966 order to identify color markers that were created for a color. This fixes a regression introduced
2967 in http://webkit.org/b/125695 when we abstracted CodeMirror TextMarker objects.
2969 * UserInterface/CSSStyleDeclarationTextEditor.js:
2970 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update):
2971 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror):
2973 2014-02-18 Antoine Quint <graouts@webkit.org>
2975 Web Inspector: Editing transparent color shows incorrect opacity slider
2976 https://bugs.webkit.org/show_bug.cgi?id=128975
2978 Reviewed by Joseph Pecoraro.
2980 The opacity slider should show a range of colors from transparent to the full opacity of the tinted color.
2982 * UserInterface/ColorPicker.js:
2983 (WebInspector.ColorPicker.prototype._updateSliders):
2985 2014-02-18 Joseph Pecoraro <pecoraro@apple.com>
2987 Web Inspector: shift-clicking #fff swatch results in bad rgb value
2988 https://bugs.webkit.org/show_bug.cgi?id=128954
2990 Reviewed by Daniel Bates.
2992 parseInt("FF", 16) is already 255. Do not multiply the result by 255.
2994 * UserInterface/Color.js:
2995 (WebInspector.Color.fromString):
2997 2014-02-18 Antoine Quint <graouts@webkit.org>
2999 Web Inspector: color picker sliders sometime look wrong on Retina display
3000 https://bugs.webkit.org/show_bug.cgi?id=128963
3002 Reviewed by Timothy Hatcher.
3004 Round the values used to position and size popovers in order to ensure that their content don't suffer
3005 from poor pixel alignment on Retina displays.
3007 * UserInterface/Popover.js:
3008 (WebInspector.Popover.prototype.set frame):
3010 2014-02-17 Antoine Quint <graouts@webkit.org>
3012 Web Inspector: CSS selectors containing a color name shouldn't be considered for color editing
3013 https://bugs.webkit.org/show_bug.cgi?id=128909
3015 Reviewed by Joseph Pecoraro.
3017 Disregard any text that might be contained within a CSS selector.
3019 * UserInterface/CodeMirrorAdditions.js:
3021 2014-02-15 Chris J. Shull <chrisjshull@gmail.com>
3023 Web Inspector: scope chain details sidebar doesn't update values modified via console
3024 https://bugs.webkit.org/show_bug.cgi?id=126855
3026 Reviewed by Timothy Hatcher.
3028 Add a RuntimeManager event that the scope chain details sidebar can
3029 listen to to trigger refresh.
3031 Testing on this is blocked by http://webkit.org/b/128724
3032 (Web Inspector: Issue testing breakpoints).
3034 * UserInterface/RuntimeManager.js:
3035 (WebInspector.RuntimeManager.prototype.evalCallback):
3036 (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
3037 * UserInterface/ScopeChainDetailsSidebarPanel.js:
3038 (WebInspector.ScopeChainDetailsSidebarPanel):
3040 2014-02-14 Antoine Quint <graouts@webkit.org>
3042 Web Inspector: color wheel should support Retina displays
3043 https://bugs.webkit.org/show_bug.cgi?id=124355
3045 Reviewed by Timothy Hatcher.
3047 Take into account the devicePixelRatio in order to draw the color wheel
3048 with as many colors as we can draw with the current DPI and to correctly
3049 convert from page coordinates to canvas coordinates when dealing with
3052 * UserInterface/ColorWheel.js:
3053 (WebInspector.ColorWheel.prototype.set dimension):
3054 (WebInspector.ColorWheel.prototype.get tintedColor):
3055 (WebInspector.ColorWheel.prototype.get rawColor):
3056 (WebInspector.ColorWheel.prototype._drawRawCanvas):
3057 (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
3058 (WebInspector.ColorWheel.prototype._drawTintedCanvas):
3059 (WebInspector.ColorWheel.prototype._draw):
3061 2014-02-13 Brian Burg <bburg@apple.com>
3063 Web Inspector: DataGrid should support editing tables with arbitrary columns
3064 https://bugs.webkit.org/show_bug.cgi?id=128619
3066 Reviewed by Timothy Hatcher.
3068 The data grid editing code should work with any columns, but was previously
3069 hardcoded with the column identifiers used by DOMStorageView. This patch
3070 makes the editing code work with any column identifiers. It also fixes some
3071 bugs in previous/next navigation during data entry.
3073 * UserInterface/DOMStorageContentView.css: Highlight missing keys and values.
3074 (.content-view.dom-storage > .data-grid tr.missing-value td.value-column):
3075 (.content-view.dom-storage > .data-grid:focus tr.selected.missing-value td.value-column):
3077 * UserInterface/DOMStorageContentView.js: Don't blow away the entire table
3078 whenever the backend notifies us of an update to the storage object. This
3079 caused the editing state to be destroyed when values were entered interactively.
3081 (WebInspector.DOMStorageContentView.prototype.reset): Inline the callback
3082 passed to DOMStorageObject.getEntries().
3083 (WebInspector.DOMStorageContentView.prototype.itemsCleared):
3084 (WebInspector.DOMStorageContentView.prototype.itemAdded): Request a sort
3085 of the table rows after backend tells us about item additions or updates.
3087 (WebInspector.DOMStorageContentView.prototype.itemUpdated): Request a sort
3088 of the table rows after backend tells us about item additions or updates.
3090 (WebInspector.DOMStorageContentView.prototype._sortDataGrid): Use DataGrid's
3091 built-in sorting function.
3093 (WebInspector.DOMStorageContentView.prototype._deleteCallback):
3094 (WebInspector.DOMStorageContentView.prototype._editingCallback): Don't force
3095 recreation of the entire table whenever editing finishes. Perform most
3096 of the error checking and editing logic here, including when to insert a
3097 new placeholder row, and when to commit the entered values to DOM storage.
3099 * UserInterface/DOMStorageObject.js: Keep track of the DOM storage entries
3100 in the model so we can detect duplicate entries. Remove unused `id` arguments.
3102 (WebInspector.DOMStorageObject):
3103 (WebInspector.DOMStorageObject.prototype.get entries):
3104 (WebInspector.DOMStorageObject.prototype.itemsCleared):
3105 (WebInspector.DOMStorageObject.prototype.itemRemoved):
3106 (WebInspector.DOMStorageObject.prototype.set this):
3107 (WebInspector.DOMStorageObject.prototype.itemAdded):
3108 (WebInspector.DOMStorageObject.prototype.set var):
3109 (WebInspector.DOMStorageObject.prototype.itemUpdated):
3111 * UserInterface/DataGrid.js:
3113 (WebInspector.DataGrid.createSortableDataGrid): Use the built-in DataGrid
3114 sortNodes() implementation.
3115 (WebInspector.DataGrid.prototype._startEditingNodeAtColumnIndex): Renamed
3116 from _startEditingColumnOfDataGridNode. It's easier to understand the navigation
3117 code when presented in terms of adjusting column indexes rather than identifiers.
3119 (WebInspector.DataGrid.prototype._startEditing):
3120 (WebInspector.DataGrid.prototype.determineNextCell): Added. Decides which
3121 column and row to edit next and whether the table can be sorted before the
3122 next cell edit begins.
3124 (WebInspector.DataGrid.prototype.moveToNextCell): Added. Wrapper method for
3125 the above which handles sorting and beginning the next cell edit.
3127 (WebInspector.DataGrid.prototype._editingCommitted): Use better helper methods.
3128 (WebInspector.DataGrid.prototype._editingCancelled): Add an assert.
3129 (WebInspector.DataGrid.prototype.get sortColumnIdentifier): Shorten.
3130 (WebInspector.DataGrid.prototype.addPlaceholderNode):
3131 (WebInspector.DataGrid.prototype.removeChild):
3132 (WebInspector.DataGrid.prototype.):
3133 (WebInspector.DataGrid.prototype.sortNodes): Remove unecessary copying
3134 of all nodes into a separate array. Defer sorting if the user is in the
3135 middle of editing a cell. Make placeholder nodes always sort to the bottom
3136 regardless of the sort column identifier and sort direction.
3138 (WebInspector.DataGridNode.prototype._attach):
3139 (WebInspector.PlaceholderDataGridNode): Renamed from CreationDataGridNode.
3140 (WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
3142 * UserInterface/StorageManager.js: Don't pass unused id argument.
3143 (WebInspector.StorageManager.prototype.itemRemoved):
3144 (WebInspector.StorageManager.prototype.itemAdded):
3145 (WebInspector.StorageManager.prototype.itemUpdated):
3147 2014-02-13 Brian Burg <bburg@apple.com>
3149 Web Inspector: long script names should be have text-overflow:ellipsis in probe details sidebar
3150 https://bugs.webkit.org/show_bug.cgi?id=128550
3152 Reviewed by Timothy Hatcher.
3154 Make the link element 'display: block', place it after the floated icons,
3155 and set the appropriate CSS overflow properties.
3157 * UserInterface/ProbeDetailsSidebarPanel.css:
3158 (.details-section.probe-set .options > a.go-to-link):
3159 * UserInterface/ProbeSetDetailsSection.js:
3160 (WebInspector.ProbeSetDetailsSection):
3162 2014-02-13 Javier Fernandez <jfernandez@igalia.com>
3164 [CSS Grid Layout] Rename named areas property
3165 https://bugs.webkit.org/show_bug.cgi?id=127990
3167 Reviewed by Sergio Villar Senin.
3169 From Blink r165891 by <rego@igalia.com>
3171 The property 'grid-template' has been renamed to 'grid-template-areas'
3172 in the last two versions of the spec.
3174 * Tools/PrettyPrinting/css.js:
3175 * UserInterface/External/CodeMirror/css.js:
3177 2014-02-11 Brian Burg <bburg@apple.com>
3179 Web Inspector: DOMStorageView should listen for events from DOMStorageObject
3180 https://bugs.webkit.org/show_bug.cgi?id=128620
3182 Reviewed by Timothy Hatcher.
3184 The storage manager used to have a map of DOMStorageViews and delivered events
3185 directly to them. Instead, the DOMStorageObserver should use the manager to
3186 find the appropriate DOMStorageObject and deliver events to it. DOMStorageView
3187 learns about storage updates from DOMStorageObject events.
3189 * UserInterface/DOMStorageContentView.js:
3190 (WebInspector.DOMStorageContentView): Add event listeners.
3191 (WebInspector.DOMStorageContentView.prototype.reset): Renamed from update().
3192 (WebInspector.DOMStorageContentView.prototype.itemsCleared): Take an event argument.
3193 (WebInspector.DOMStorageContentView.prototype.itemRemoved): Take an event argument.
3194 Use for..of when iterating over nodes.
3195 (WebInspector.DOMStorageContentView.prototype.itemAdded): Take an event argument.
3196 Use for..of when iterating over nodes.
3197 (WebInspector.DOMStorageContentView.prototype.itemUpdated): Take an event argument.
3198 Use for..of when iterating over nodes.
3199 * UserInterface/DOMStorageObject.js:
3200 (WebInspector.DOMStorageObject.prototype.removeItem): Moved.
3201 (WebInspector.DOMStorageObject.prototype.setItem): Moved.
3202 (WebInspector.DOMStorageObject.prototype.itemsCleared): Added.
3203 (WebInspector.DOMStorageObject.prototype.itemRemoved): Added.
3204 (WebInspector.DOMStorageObject.prototype.itemAdded): Added.
3205 (WebInspector.DOMStorageObject.prototype.itemUpdated): Added.
3206 * UserInterface/DOMStorageObserver.js: Look up and notify the associated model.
3207 (WebInspector.DOMStorageObserver.prototype.domStorageItemsCleared):
3208 (WebInspector.DOMStorageObserver.prototype.domStorageItemRemoved):
3209 (WebInspector.DOMStorageObserver.prototype.domStorageItemAdded):
3210 (WebInspector.DOMStorageObserver.prototype.domStorageItemUpdated):
3211 * UserInterface/StorageManager.js: Remove view lookup code. Remove
3212 direct calls to DOMStorageViews.
3213 (WebInspector.StorageManager.prototype.itemsCleared):
3214 (WebInspector.StorageManager.prototype.itemRemoved):
3215 (WebInspector.StorageManager.prototype.itemAdded):
3216 (WebInspector.StorageManager.prototype.itemUpdated):
3217 (WebInspector.StorageManager.prototype.domStorageWasUpdated):
3218 (WebInspector.StorageManager.prototype.inspectDOMStorage):
3219 (WebInspector.StorageManager.prototype._domStorageForIdentifier):
3220 (WebInspector.StorageManager.prototype._addDOMStorageIfNeeded):
3221 (WebInspector.StorageManager.prototype._databaseForIdentifier):
3223 2014-02-11 James Craig <jcraig@apple.com>
3225 Web Inspector: AX: Accessibility Node Inspection
3226 https://bugs.webkit.org/show_bug.cgi?id=127447
3228 Reviewed by Timothy Hatcher.
3230 New Accessibility section in WebInspector Node Inspector.
3231 Version 1.0 only shows computed role. Computed label should come soon.
3233 Removed CSS fixed table layout b/c CSS bug: http://webkit.org/b/128294
3235 * Localizations/en.lproj/localizedStrings.js:
3236 * UserInterface/DOMNode.js:
3237 * UserInterface/DOMNodeDetailsSidebarPanel.js:
3238 * UserInterface/DetailsSection.css:
3239 * UserInterface/InspectorWebBackendCommands.js:
3241 2014-02-10 Joseph Pecoraro <pecoraro@apple.com>
3243 Web Inspector: Update License copyrights in minified JavaScript
3244 https://bugs.webkit.org/show_bug.cgi?id=128547
3246 Reviewed by Timothy Hatcher.
3248 * Scripts/copy-user-interface-resources.sh:
3250 2014-02-07 Brian Burg <bburg@apple.com>
3252 Web Inspector: show probe sets for script content views in the details sidebar
3253 https://bugs.webkit.org/show_bug.cgi?id=128333
3255 Reviewed by Timothy Hatcher.
3257 This patch adds a new details sidebar for showing the probes associated with any
3258 breakpoint in the currently visible source file. Each probe set (corresponding to
3259 multiple actions of single breakpoint) gets its own ProbeSetDetailsSection. The
3260 section contains a custom DataGrid subclass to display probe data, and some icons
3261 for clearing samples, deleting the probe, and adding a new probe expression.
3263 The table containing probe data keeps its columns in sync with the probe set's
3264 probe expressions. To support this, DataGrid has been further refactored to support
3265 removing columns, and inserting columns (rather than only appending). With this
3266 capability, probe columns are removed and re-inserted when the expression changes.
3268 The availability of the probe details sidebar is controlled by providing the
3269 probe sets matching the script content view's resource URL as supplemental
3270 represented objects.
3272 Lastly, added the utility EventListenerSet class. This holds a set of event listeners
3273 that should be added and removed together, and takes care of binding `thisObject`
3274 according to whether the event emitter is a `Node` or `WebInspector.Object`.
3276 * Localizations/en.lproj/localizedStrings.js:
3277 * UserInterface/BreakpointActionView.js:
3278 (WebInspector.BreakpointActionView):
3279 (WebInspector.BreakpointActionView.prototype._removeAction): Renamed from removeButtonClicked.
3280 (WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Change the behavior
3281 of CodeMirror-backed editors for probe and evaluate expression actions. If the expression
3282 consists entirely of trimmable whitespace, then delete the action rather than saving it.
3284 * UserInterface/DataGrid.js:
3285 (WebInspector.DataGrid): Copy over the column data into a map inside insertColumn() instead.
3286 (WebInspector.DataGrid.prototype.insertColumn): Renamed from addColumn. It now takes an
3287 optional `insertionIndex` argument and splices the column before the element at that index.
3288 Also, convert code to use EventListenerSet for adding/removing per-column event listeners.
3290 (WebInspector.DataGrid.prototype.removeColumn): Added. It splices the column out.
3291 (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle): Whitespace.
3292 * UserInterface/EventListenerSet.js: Added.
3293 (WebInspector.EventListenerSet):
3294 (WebInspector.EventListenerSet.prototype.register):
3295 (WebInspector.EventListenerSet.prototype.unregister):
3296 (WebInspector.EventListenerSet.prototype.install):
3297 (WebInspector.EventListenerSet.prototype.uninstall):
3298 * UserInterface/Images/NavigationItemProbes.pdf: Added.
3299 * UserInterface/LayerTreeDataGrid.js: