1 2014-03-27 Brent Fulgham <bfulgham@apple.com>
3 [Win] Correct handling of autogenerated WebInspectorUI files
4 https://bugs.webkit.org/show_bug.cgi?id=130846
6 Reviewed by Joseph Pecoraro.
8 * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Files need to be placed in the
9 'Protocol' subdirectory of the WebInspectorUI directory.
11 2014-03-25 James Craig <jcraig@apple.com>
13 Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
14 https://bugs.webkit.org/show_bug.cgi?id=130712
16 Reviewed by Timothy Hatcher.
18 Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.
20 * Localizations/en.lproj/localizedStrings.js:
21 * UserInterface/Models/DOMNode.js:
22 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
24 2014-03-25 Martin Robinson <mrobinson@igalia.com>
26 [GTK] Remove the autotools build
27 https://bugs.webkit.org/show_bug.cgi?id=130717
29 Reviewed by Anders Carlsson.
31 * GNUmakefile.am: Removed.
33 2014-03-24 Timothy Hatcher <timothy@apple.com>
35 Lazy load source code referred to from the source map, instead of when
36 the source code is revealed in the Resources sidebar.
38 https://bugs.webkit.org/show_bug.cgi?id=130625
40 Reviewed by Joseph Pecoraro.
42 * UserInterface/Models/SourceMapResource.js:
43 (WebInspector.SourceMapResource): Set up the type info here so it can be used to
44 dispaly the right icon in the sidebar.
45 (WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Use _contentRequested.
46 (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
47 Reset finished and remove the type change dance we had before.
48 * UserInterface/Views/SourceMapResourceTreeElement.js:
49 (WebInspector.SourceMapResourceTreeElement.prototype.onattach): Removed. Don't request content here.
51 2014-03-23 James Craig <jcraig@apple.com>
53 Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
54 https://bugs.webkit.org/show_bug.cgi?id=130635
56 Reviewed by Timothy Hatcher.
58 Support for @aria-owns, @aria-controls, and @aria-flowto.
60 * Localizations/en.lproj/localizedStrings.js:
61 * UserInterface/Models/DOMNode.js:
62 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
64 2014-03-21 James Craig <jcraig@apple.com>
66 Web Inspector: AXI: Expose Accessibility Tree children of the selected node
67 https://bugs.webkit.org/show_bug.cgi?id=130264
69 Reviewed by Timothy Hatcher.
71 Expose the accessibility tree children (different from DOM children) of the
72 current node in the accessibility node inspector.
74 * Localizations/en.lproj/localizedStrings.js: New "Children" string.
75 * UserInterface/Base/DOMUtilities.js: Added linkifyAccessibilityNodeReference.
76 * UserInterface/Models/DOMNode.js: Support for accessibility children.
77 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Support for accessibility children.
78 * UserInterface/Views/Main.css: New styles for .node-link-list.
80 2014-03-20 Brian Burg <bburg@apple.com>
82 Web Inspector: add temporary buttons to capture/play/pause replay recordings
83 https://bugs.webkit.org/show_bug.cgi?id=129692
85 Reviewed by Timothy Hatcher.
87 If the Replay agent is available, replace the existing ad-hoc navigation bar
88 in the Timelines sidebar panel with a record and pause/play button. This UI
91 * Localizations/en.lproj/localizedStrings.js:
92 * UserInterface/Controllers/ReplayManager.js: Turn two segment state assertions into
93 FIXMEs because the assertions are too strong until the public API uses async chains.
94 (WebInspector.ReplayManager.prototype.replayToMarkIndex):
95 (WebInspector.ReplayManager.prototype.replayToCompletion):
96 * UserInterface/Images/Circle.svg: Added.
97 * UserInterface/Views/ActivateButtonNavigationItem.js:
98 (WebInspector.ActivateButtonNavigationItem.prototype.generateStyleText):
99 * UserInterface/Views/ButtonNavigationItem.css: Adjust styles so the default style
100 has opacity:1 and the glyph color is darker.
101 (.navigation-bar .item.button.suppress-emboss > .glyph):
102 (.navigation-bar .item.button.suppress-emboss.disabled > .glyph):
103 * UserInterface/Views/ButtonNavigationItem.js:
104 (WebInspector.ButtonNavigationItem.prototype.generateStyleText): Explicitly
105 generate the width and height properties so that separate button instances do
106 not influence the size of each other.
108 * UserInterface/Views/TimelineSidebarPanel.js:
109 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
110 (WebInspector.TimelineSidebarPanel.prototype._replayCaptureButtonClicked):
111 (WebInspector.TimelineSidebarPanel.prototype._replayPauseResumeButtonClicked):
112 (WebInspector.TimelineSidebarPanel.prototype._captureStarted):
113 (WebInspector.TimelineSidebarPanel.prototype._captureStopped):
114 (WebInspector.TimelineSidebarPanel.prototype._playbackStarted):
115 (WebInspector.TimelineSidebarPanel.prototype._playbackPaused):
117 2014-03-20 Brian Burg <bburg@apple.com>
119 Web Inspector: add frontend controller and models for replay sessions
120 https://bugs.webkit.org/show_bug.cgi?id=130145
122 Reviewed by Joseph Pecoraro.
124 Upstream the frontend models and controller for web replay. The replay manager
125 syncs with the backend controller's replay state and replay sessions by using
126 the same state machines and transitions.
128 Session and segment models update their data asynchronously using promises.
130 * UserInterface/Base/Main.js:
131 (WebInspector.loaded): Add the replay manager.
132 * UserInterface/Base/Test.js:
133 (WebInspector.loaded): Add the replay manager.
134 (InspectorTest.debugLog): Fix a bug in the unescape/escape trick.
135 (InspectorTest.addResult): Don't try to add results until the test page has loaded.
136 (InspectorTest.testPageDidLoad): Clear the isReloading flag.
137 (InspectorTest.reloadPage): Reimplement using promises. Return a promise.
138 * UserInterface/Base/Utilities.js: Implement Map.take in the obvious way.
139 * UserInterface/Controllers/ReplayManager.js: Added.
140 (WebInspector.ReplayManager):
142 (WebInspector.ReplayManager.prototype.get sessionState):
143 (WebInspector.ReplayManager.prototype.get segmentState):
144 (WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
145 (WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
146 (WebInspector.ReplayManager.prototype.get playbackSpeed):
147 (WebInspector.ReplayManager.prototype.set playbackSpeed):
148 (WebInspector.ReplayManager.prototype.get currentPosition):
149 (WebInspector.ReplayManager.prototype.getSession.get var):
150 (WebInspector.ReplayManager.prototype.getSegment.get var):
151 (WebInspector.ReplayManager.prototype.captureStarted):
152 (WebInspector.ReplayManager.prototype.captureStopped):
153 (WebInspector.ReplayManager.prototype.playbackStarted):
154 (WebInspector.ReplayManager.prototype.playbackHitPosition):
155 (WebInspector.ReplayManager.prototype.playbackPaused):
156 (WebInspector.ReplayManager.prototype.playbackFinished):
157 (WebInspector.ReplayManager.prototype.sessionCreated.set catch):
158 (WebInspector.ReplayManager.prototype.sessionCreated.this):
159 (WebInspector.ReplayManager.prototype.sessionCreated):
160 (WebInspector.ReplayManager.prototype.sessionModified):
161 (WebInspector.ReplayManager.prototype.sessionRemoved.then):
162 (WebInspector.ReplayManager.prototype.sessionRemoved):
163 (WebInspector.ReplayManager.prototype.segmentCreated.set this):
164 (WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
165 (WebInspector.ReplayManager.prototype.segmentCompleted):
166 (WebInspector.ReplayManager.prototype.segmentRemoved.then):
167 (WebInspector.ReplayManager.prototype.segmentRemoved):
168 (WebInspector.ReplayManager.prototype.segmentLoaded):
169 (WebInspector.ReplayManager.prototype.segmentUnloaded):
170 (WebInspector.ReplayManager.prototype.startCapturing):
171 (WebInspector.ReplayManager.prototype.stopCapturing):
172 (WebInspector.ReplayManager.prototype.replayToMarkIndex):
173 (WebInspector.ReplayManager.prototype.replayToCompletion):
174 (WebInspector.ReplayManager.prototype.pausePlayback):
175 (WebInspector.ReplayManager.prototype.stopPlayback):
176 (WebInspector.ReplayManager.prototype._changeSessionState):
177 (WebInspector.ReplayManager.prototype._changeSegmentState):
178 * UserInterface/Main.html:
179 * UserInterface/Models/ReplaySession.js: Added.
180 (WebInspector.ReplaySession):
181 (WebInspector.ReplaySession.fromPayload):
182 (WebInspector.ReplaySession.prototype.get segments):
183 (WebInspector.ReplaySession.prototype.segmentsChanged):
184 (WebInspector.ReplaySession.prototype._updateFromPayload):
185 * UserInterface/Models/ReplaySessionSegment.js: Added.
186 (WebInspector.IncompleteSessionSegment):
187 (WebInspector.IncompleteSessionSegment.prototype.get isComplete):
188 (WebInspector.ReplaySessionSegment):
189 (WebInspector.ReplaySessionSegment.prototype.get isComplete):
190 * UserInterface/Protocol/InspectorBackend.js:
191 (InspectorBackendClass.prototype.registerCommand):
192 (InspectorBackendClass.prototype._promise): Add a promise-returning method for
193 invoking backend commands that return a result asynchronously.
194 * UserInterface/Protocol/ReplayObserver.js: Added.
195 (WebInspector.ReplayPosition):
196 (WebInspector.ReplayPosition.fromProtocol):
197 (WebInspector.ReplayObserver):
198 (WebInspector.ReplayObserver.prototype.captureStarted):
199 (WebInspector.ReplayObserver.prototype.captureStopped):
200 (WebInspector.ReplayObserver.prototype.playbackStarted):
201 (WebInspector.ReplayObserver.prototype.playbackHitPosition):
202 (WebInspector.ReplayObserver.prototype.playbackPaused):
203 (WebInspector.ReplayObserver.prototype.playbackFinished):
204 (WebInspector.ReplayObserver.prototype.inputSuppressionChanged):
205 (WebInspector.ReplayObserver.prototype.sessionCreated):
206 (WebInspector.ReplayObserver.prototype.sessionModified):
207 (WebInspector.ReplayObserver.prototype.sessionRemoved):
208 (WebInspector.ReplayObserver.prototype.sessionLoaded):
209 (WebInspector.ReplayObserver.prototype.segmentCreated):
210 (WebInspector.ReplayObserver.prototype.segmentRemoved):
211 (WebInspector.ReplayObserver.prototype.segmentCompleted):
212 (WebInspector.ReplayObserver.prototype.segmentLoaded):
213 (WebInspector.ReplayObserver.prototype.segmentUnloaded):
214 * UserInterface/Test.html:
216 2014-03-20 Joseph Pecoraro <pecoraro@apple.com>
218 Web Inspector: DebuggerDashboardView looks scrunched debugging JSContext
219 https://bugs.webkit.org/show_bug.cgi?id=130527
221 Reviewed by Timothy Hatcher.
223 Instead of using body.javascript to force a collapsed style,
224 actually use the toolbar's collapsed class.
226 * UserInterface/Views/DashboardContainerView.css:
227 (.toolbar.collapsed .dashboard-container):
228 * UserInterface/Views/Toolbar.js:
230 2014-03-20 Katie Madonna <madonnk@gmail.com>
232 Web Inspector: probe sidebar should use overflow:scroll and split space evenly
233 https://bugs.webkit.org/show_bug.cgi?id=129627
235 Reviewed by Timothy Hatcher.
237 Use flexbox to split space evenly in the probe sidebar, which required changes to collapse
238 format, remove scrollbar styles from old timelapse branch.
240 * UserInterface/Views/ProbeDetailsSidebarPanel.css: Space elements evenly with flexbox
241 and make collapse correctly, remove scrollbar style.
242 * UserInterface/Views/ProbeSetDetailsSection.js: Removed inline style.
244 2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
246 Web Inspector: Make update-InspectorBackendCommands.rb only update legacy protocol versions
247 https://bugs.webkit.org/show_bug.cgi?id=130412
249 Reviewed by Timothy Hatcher.
251 Rename the script and simplify to only update Legacy protocol versions.
253 * Scripts/update-LegacyInspectorBackendCommands.rb: Renamed from Source/WebInspectorUI/Scripts/update-InspectorBackendCommands.rb.
255 2014-03-18 Joseph Pecoraro <pecoraro@apple.com>
257 Web Inspector: sourceMapResourceLoaded expects statusCode parameter
258 https://bugs.webkit.org/show_bug.cgi?id=130377
260 Reviewed by Timothy Hatcher.
262 * UserInterface/Models/SourceMapResource.js:
264 2014-03-17 Joseph Pecoraro <pecoraro@apple.com>
266 Web Inspector: Uncaught Exception in JSContext Inspector
267 https://bugs.webkit.org/show_bug.cgi?id=130368
269 Reviewed by Timothy Hatcher.
271 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
272 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
273 Feature check DOMAgent as well as the function.
275 2014-03-16 Brian Burg <bburg@apple.com>
277 Web Inspector: vended backend commands file should be generated as part of the build
278 https://bugs.webkit.org/show_bug.cgi?id=130110
280 Reviewed by Timothy Hatcher.
282 Copy the backend commands generated in other frameworks into our built products directory.
284 * Configurations/WebInspectorUIFramework.xcconfig: Set up variables so we can pull backend
285 commands files from the private headers directory of other frameworks.
286 * Scripts/copy-user-interface-resources.sh: Always ditto inspector backend commands.
287 * UserInterface/Protocol/InspectorJSBackendCommands.js: Removed.
288 * UserInterface/Protocol/InspectorWebBackendCommands.js: Removed.
289 * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Copy over the generated
290 backend commands files from the other frameworks.
291 * WebInspectorUI.xcodeproj/project.pbxproj: Add JavaScriptCore and WebCore as
292 framework dependencies so Xcode builds them first.
294 2014-03-15 David Kilzer <ddkilzer@apple.com>
296 [iOS] Define SYSTEM_VERSION_PREFIX consistently
297 <http://webkit.org/b/130293>
298 <rdar://problem/15926359>
300 Reviewed by Dan Bernstein.
302 * Configurations/Version.xcconfig:
303 (SYSTEM_VERSION_PREFIX): Sync with
304 Source/WebKit/mac/Version.xcconfig.
306 2014-03-14 Maciej Stachowiak <mjs@apple.com>
308 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
309 https://bugs.webkit.org/show_bug.cgi?id=130276
310 <rdar://problem/16266927>
312 Reviewed by Simon Fraser.
314 * APPLE_IMAGES_LICENSE.rtf:
315 * UserInterface/Base/DOMUtilities.js:
316 * UserInterface/Models/Color.js:
317 * UserInterface/Views/ConsoleCommand.js:
318 * UserInterface/Views/ConsoleCommandResult.js:
319 * UserInterface/Views/ConsoleGroup.js:
320 * UserInterface/Views/ConsoleMessage.js:
321 * UserInterface/Views/ConsoleMessageImpl.js:
322 * UserInterface/Views/DOMTreeElement.js:
323 * UserInterface/Views/DOMTreeOutline.js:
324 * UserInterface/Views/DOMTreeUpdater.js:
325 * UserInterface/Views/GradientSlider.css:
326 * UserInterface/Views/GradientSlider.js:
327 * UserInterface/Views/TreeOutline.js:
329 2014-03-14 Bem Jones-Bey <bjonesbe@adobe.com>
331 [CSS Shapes] Add autocomplete for -webkit-shape-outside
332 https://bugs.webkit.org/show_bug.cgi?id=130268
334 Reviewed by Joseph Pecoraro.
336 Add completions for -webkit-shape-outside. Also add the box shapes to
337 the possible completions for clip-path.
339 * UserInterface/Models/CSSKeywordCompletions.js:
341 2014-03-14 Joseph Pecoraro <pecoraro@apple.com>
343 Web Inspector: Update shapes autocompletion suggestions
344 https://bugs.webkit.org/show_bug.cgi?id=130255
346 Reviewed by Bem Jones-Bey.
348 * UserInterface/Models/CSSKeywordCompletions.js:
350 2014-03-14 James Craig <jcraig@apple.com>
352 Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
353 https://bugs.webkit.org/show_bug.cgi?id=129943
355 Reviewed by Timothy Hatcher.
357 Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
359 Web Accessibility Node Inspector now displays a link to the AX parent node,
360 because it's not a 1:1 match with the DOMNode parent.
362 * Localizations/en.lproj/localizedStrings.js: new "Parent" string.
363 * UserInterface/Base/DOMUtilities.js: Updating linkifyNodeReference to include role; adding new roleSelectorForNode method.
364 * UserInterface/Models/DOMNode.js: AX Parent support and adding role to DOMNode (will be exposed as AX Parent link and in overlays).
365 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Accessibility parent node.
367 2014-03-14 Diego Pino Garcia <dpino@igalia.com>
369 Web Inspector: Resource and Frame saveIdentityToCookie should store URL hashes not URLs
370 https://bugs.webkit.org/show_bug.cgi?id=126833
372 Reviewed by Timothy Hatcher.
374 * UserInterface/Models/Frame.js:
375 (WebInspector.Frame.prototype.saveIdentityToCookie):
376 * UserInterface/Models/Resource.js:
377 (WebInspector.Resource.prototype.saveIdentityToCookie):
379 2014-03-13 James Craig <jcraig@apple.com>
381 Web Inspector: AXI: Use loc strings for known aria-invalid types
382 https://bugs.webkit.org/show_bug.cgi?id=129952
384 Reviewed by Joseph Pecoraro.
386 Updating inspector-protocol and UI display values for @aria-invalid.
388 Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
390 * Localizations/en.lproj/localizedStrings.js: "Grammar" and "Spelling" value strings.
391 * UserInterface/Protocol/InspectorWebBackendCommands.js: New enum for DOM.AccessibilityPropertiesInvalid
392 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Use enum instead of passing value through directly.
394 2014-03-13 Diego Pino Garcia <dpino@igalia.com>
396 Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
397 https://bugs.webkit.org/show_bug.cgi?id=129779
399 Reviewed by Timothy Hatcher.
401 * Localizations/en.lproj/localizedStrings.js: Add label "Focused".
402 * UserInterface/Models/DOMNode.js: Set property "focused" in
403 accessibilityProperties.
404 (WebInspector.DOMNode.prototype.accessibilityProperties): Add row for
406 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
407 (WebInspector.DOMNodeDetailsSidebarPanel):
408 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
409 Refresh value of property "focused" in UI.
411 2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
413 Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
414 https://bugs.webkit.org/show_bug.cgi?id=130217
416 Reviewed by Timothy Hatcher.
418 * UserInterface/Protocol/InspectorFrontendHostStub.js:
420 2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
422 Web Inspector: Network.loadResource should include the response status code
423 https://bugs.webkit.org/show_bug.cgi?id=130216
425 Reviewed by Timothy Hatcher.
427 * UserInterface/Controllers/SourceMapManager.js:
428 (WebInspector.SourceMapManager.prototype.sourceMapLoaded):
429 (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
430 * UserInterface/Models/SourceMapResource.js:
431 (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
432 If the response is 400 or larger, treat it as an error / failed load.
434 * UserInterface/Protocol/InspectorWebBackendCommands.js:
435 Update protocol to provide status code parameter.
437 2014-03-12 Brian Burg <bburg@apple.com>
439 Web Inspector: Remove unused callId parameter from evaluateInWebInspector
440 https://bugs.webkit.org/show_bug.cgi?id=129744
442 Reviewed by Timothy Hatcher.
444 * UserInterface/Protocol/InspectorJSBackendCommands.js:
445 * UserInterface/Protocol/InspectorObserver.js:
446 (WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
448 2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
450 Web Inspector: [iOS 6] uncaught exception attempting to use CSSAgent.getNamedFlowCollection
451 https://bugs.webkit.org/show_bug.cgi?id=130167
453 Reviewed by Timothy Hatcher.
455 Feature check the protocol method before using it. It is
456 fine to do nothing if the feature is not supported.
458 * UserInterface/Controllers/DOMTreeManager.js:
460 2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
462 Web Inspector: Feature check for accessibility support before using it (DOMAgent.getAccessibilityPropertiesForNode)
463 https://bugs.webkit.org/show_bug.cgi?id=130037
465 Reviewed by Timothy Hatcher.
467 Feature detect if accessibility information is supported before
468 creating or attempting to update the accessibility section.
470 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
471 (WebInspector.DOMNodeDetailsSidebarPanel):
472 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
473 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
475 2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
477 Web Inspector: Fix multiple console.assert stripping issues
478 https://bugs.webkit.org/show_bug.cgi?id=130166
480 Reviewed by Timothy Hatcher.
482 There were a couple console.assert stripping issues in production.
483 One line required a semicolon so was avoiding getting stripped.
484 One resulted in a logic change, when stripping the only statement
485 of a control flow block. Add a warning for such cases.
487 * Scripts/remove-console-asserts.pl:
488 Add warning for a console.assert being the only statement in a control flow block
489 without braces. When it is stripped it may change the flow of the function.
491 * Scripts/remove-console-asserts-dryrun.rb: Added.
492 Add a script to quickly test running remove console asserts on our files, to
493 help catch errors not in a production build and in the original non-combined
494 files, so you can more easily fix issues.
496 * UserInterface/Controllers/DOMTreeManager.js:
497 (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
498 Convert the for loop into a single console.assert statement.
500 * UserInterface/Views/DataGrid.js:
501 (WebInspector.DataGrid.prototype.removeChild):
502 Add missing semicolon.
504 2014-03-12 Brian Burg <bburg@apple.com>
506 Web Inspector: convert model tests and inspector-test.js to use Test.html
507 https://bugs.webkit.org/show_bug.cgi?id=129217
509 Reviewed by Timothy Hatcher.
511 Miscellaneous changes to make the inspector model test harness work well in
512 scenarios where the test page must navigate or reload. Also improve reporting
513 test failures so that messages will be dumped correctly even when an exception
514 is thrown in the Inspector or the test times out.
516 * UserInterface/Base/Test.js:
517 (WebInspector.loaded): register new managers and observers.
518 (InspectorTest.log): Stringify the argument if it's an object.
519 (InspectorTest.assert): Stringify the argument if it's an object. Don't log
520 unless the condition is false.
522 (InspectorTest.expectThat): Added. Like assert(), but always logs.
523 (InspectorTest.debugLog): Escape and unescape the string properly.
524 (InspectorTest.completeTest): Fix teardown so messages are not lost.
525 (InspectorTest.evaluateInPage): Accept a callback argument.
526 (InspectorTest.addResult): Don't rebuild results when adding a new result.
527 (InspectorTest._resendResults.decrementPendingResponseCount): Added.
529 (InspectorTest._resendResults): Added. Track the number of pending
530 responses and invoke a given callback when everything has been resent.
532 (InspectorTest.testPageDidLoad): Renamed from `pageLoaded`.
533 (InspectorTest.reloadPage): Added.
534 (InspectorTest.reportUncaughtException): Prevent the default handler from running.
535 * UserInterface/Protocol/InspectorBackend.js:
536 (InspectorBackendClass.prototype.dispatch): Report uncaught exceptions when dispatching
537 messages on the inspector page without blowing away the entire call stack.
539 * UserInterface/Test.html: Add files used by Network and Timeline domains.
541 2014-03-11 Brian Burg <bburg@apple.com>
543 Web Inspector: DataGrid should have an API to set sort column and direction
544 https://bugs.webkit.org/show_bug.cgi?id=128783
546 Reviewed by Timothy Hatcher.
548 Previously there was no way for DataGrid clients to programmatically change
549 the sort order or sort column identifier after the data grid was constructed.
550 This patch modernizes DataGrid sorting by exposing getters and setters for
551 sortOrder and sortColumnIdentifier, which trigger the SortChanged event if
552 the sort settings have changed.
554 This patch also modernizes sorting functionality in DataGrid clients, and in
555 a few clients it moves column identifiers from numbers to string identifiers.
557 * UserInterface/Main.html:
558 * UserInterface/Views/ApplicationCacheFrameContentView.js: Use string column identifiers
559 instead of numbers. Don't repopulate the entire table when the sort changes, instead
560 call DataGrid.sortNodes from the sorting callback. Explicitly set the sort order.
562 (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
563 (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
564 (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):
565 (WebInspector.ApplicationCacheFrameContentView.prototype._populateDataGrid):
567 * UserInterface/Views/CookieStorageContentView.js: Use string column identifiers instead
568 of numbers. Don't sort the cookies themselves, just the data grid nodes representing
569 each cookie. Use DataGrid.sortNodes as the sorting implementation, and provide a
570 comparator. Don't rebuild the entire table when the sort changes.
572 (WebInspector.CookieStorageContentView.prototype._rebuildTable):
573 (WebInspector.CookieStorageContentView.prototype._sortDataGrid):
574 (WebInspector.CookieStorageContentView.prototype._sortDataGrid.numberCompare):
575 (WebInspector.CookieStorageContentView.prototype._sortDataGrid.expiresCompare):
577 * UserInterface/Views/DataGrid.js: Add the DataGrid.SortOrder enum. Put sortOrder
578 and sortColumnIdentifier behind getters and setters. Pull some hardcoded style
579 class names into constants. Remove the "sort" field on column config objects; instead
580 should use the DataGrid.sortColumnIdentifier setter after construction.
582 (WebInspector.DataGrid): Keep sort settings in private variables.
583 (WebInspector.DataGrid.prototype.get sortOrder): Reimplemented.
584 (WebInspector.DataGrid.prototype.get sortColumnIdentifier): Reimplemented.
585 (WebInspector.DataGrid.prototype.moveToNextCell):
586 (WebInspector.DataGrid.prototype._editingCommitted):
587 (WebInspector.DataGrid.prototype.sortNodes): Use requestAnimationFrame to
588 coalesce multiple sort requests within the same draw frame.
589 (WebInspector.DataGrid.prototype._sortNodesCallback):
590 (WebInspector.DataGrid.prototype._headerCellClicked): Use the new sort API.
591 * UserInterface/Views/LayerTreeDataGrid.js: Removed. Unnecessary for performance
592 now that sort requests are coalesced by requestAnimationFrame.
594 * UserInterface/Views/LayerTreeSidebarPanel.js: Use DataGrid instead of LayerTreeDataGrid.
595 Hook up the _sortDataGrid method to the built-in DataGrid.sortNodes API.
597 (WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
598 (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
599 (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
600 * UserInterface/Views/LayoutTimelineView.js:
601 * UserInterface/Views/LegacyJavaScriptProfileView.js:
602 (WebInspector.LegacyJavaScriptProfileView.prototype._sortProfile):
603 * UserInterface/Views/NetworkTimelineView.js:
604 * UserInterface/Views/ResourceDetailsSidebarPanel.js: Use the DataGrid.sortNodes API.
605 (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):
606 (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid):
607 (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
608 * UserInterface/Views/ScriptTimelineView.js:
609 * UserInterface/Views/TimelineDataGrid.js:
610 (WebInspector.TimelineDataGrid.prototype._sortComparator):
612 2014-03-10 James Craig <jcraig@apple.com>
614 Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
615 https://bugs.webkit.org/show_bug.cgi?id=129781
617 Reviewed by Joseph Pecoraro.
619 Enabling several more properties to be exposed in the Accessibility Node Inspector.
621 Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
623 * Localizations/en.lproj/localizedStrings.js:
624 * UserInterface/Models/DOMNode.js:
625 * UserInterface/Protocol/InspectorWebBackendCommands.js:
626 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
628 2014-03-10 Brian Burg <bburg@apple.com>
630 Web Inspector: show a debugging-oriented dashboard when scripts pause
631 https://bugs.webkit.org/show_bug.cgi?id=129913
633 Reviewed by Timothy Hatcher.
635 Using the dashboard swapping functionality just added, show a debugger dashboard
636 whenever the debugger pauses, and hide it when it resumes. The debugger manager
637 already coalesces pause/resume events across stepping commands.
639 The dashboard itself is straightforward, with the exception of how it uses the
640 navigation bar buttons. Since buttons from the same URL can't be reused if they
641 are bezeled, we don't bezel our button, and set the button image as the glyph mask
642 instead of the background image. This lets us easily animate the glyph shape.
644 We also have to more forcefully declare a bunch of icon rules that would otherwise
645 be messed up by the toolbar's icon rules (whereas we want to mostly emulate navigation
648 * Localizations/en.lproj/localizedStrings.js:
649 * UserInterface/Base/Main.js:
650 (WebInspector.loaded):
651 (WebInspector.contentLoaded):
652 (WebInspector._debuggerDidPause):
653 (WebInspector._debuggerDidResume):
654 * UserInterface/Controllers/DashboardManager.js:
655 (WebInspector.DashboardManager):
656 * UserInterface/Main.html:
657 * UserInterface/Models/DebuggerDashboard.js: Added.
658 (WebInspector.DebuggerDashboard):
659 * UserInterface/Views/ButtonNavigationItem.css:
660 (.navigation-bar .item.button.suppress-emboss > .glyph):
661 * UserInterface/Views/ButtonNavigationItem.js:
662 (WebInspector.ButtonNavigationItem.prototype._updateImage):
663 * UserInterface/Views/DashboardView.js:
664 (WebInspector.DashboardView):
665 * UserInterface/Views/DebuggerDashboardView.css: Added.
666 (.toolbar .dashboard.debugger):
667 (.dashboard.debugger > .message):
668 (.dashboard.debugger .navigation-bar):
669 (.toolbar:not(.small-size) .dashboard.debugger .navigation-bar):
670 (.dashboard.debugger .navigation-bar .item.button):
671 (.dashboard.debugger .navigation-bar .item.button > .glyph):
672 (@-webkit-keyframes pulse-pause-button):
674 (.dashboard.debugger > .divider):
675 (.dashboard.debugger > div):
676 (.dashboard.debugger > .location > :first-child):
677 (.toolbar:not(.small-size) .dashboard.debugger > .location :not(:first-child)):
678 (.dashboard.debugger > .location img.icon):
679 (.dashboard.debugger > .location .function-name):
680 (.dashboard.debugger > .location .function-name::after):
681 (.dashboard.debugger > .location .go-to-link):
682 (.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )):
683 (.toolbar.small-size .dashboard.debugger > .message):
684 (.toolbar.small-size .dashboard.debugger > .location > :first-child):
685 * UserInterface/Views/DebuggerDashboardView.js: Added.
686 (WebInspector.DebuggerDashboardView):
687 (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
688 (WebInspector.DebuggerDashboardView.prototype._resumeButtonClicked):
689 * UserInterface/Views/DebuggerSidebarPanel.js:
690 (WebInspector.DebuggerSidebarPanel):
692 2014-03-10 Brian Burg <bburg@apple.com>
694 Web Inspector: convert the dashboard toolbar item to support multiple dashboards
695 https://bugs.webkit.org/show_bug.cgi?id=129898
697 Reviewed by Timothy Hatcher.
699 We want to ability to swap in and out different dashboard contents depending on
700 circumstances such as debugger activity and page loading. This patch converts the
701 existing hard-coded dashboard implementation to follow the container-based approach
702 used by WebInspector.ContentViewContainer.
704 As part of the refactoring, we introduce dashboard model objects to store persistent
705 dashboard data. Some CSS has also been split between the container and specific dashboard.
707 * UserInterface/Controllers/DashboardManager.js:
708 (WebInspector.DashboardManager):
709 (WebInspector.DashboardManager.prototype.get toolbarItem):
710 * UserInterface/Main.html:
711 * UserInterface/Models/DefaultDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
712 (WebInspector.DefaultDashboard):
713 (WebInspector.DefaultDashboard.prototype.get resourcesCount):
714 (WebInspector.DefaultDashboard.prototype.set resourcesCount):
715 (WebInspector.DefaultDashboard.prototype.get resourcesSize):
716 (WebInspector.DefaultDashboard.prototype.set resourcesSize):
717 (WebInspector.DefaultDashboard.prototype.get time):
718 (WebInspector.DefaultDashboard.prototype.set time):
719 (WebInspector.DefaultDashboard.prototype.get logs):
720 (WebInspector.DefaultDashboard.prototype.set logs):
721 (WebInspector.DefaultDashboard.prototype.get errors):
722 (WebInspector.DefaultDashboard.prototype.set errors):
723 (WebInspector.DefaultDashboard.prototype.get issues):
724 (WebInspector.DefaultDashboard.prototype.set issues):
725 (WebInspector.DefaultDashboard.prototype._dataDidChange):
726 (WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
727 (WebInspector.DefaultDashboard.prototype._recordingStopped):
728 (WebInspector.DefaultDashboard.prototype._resourceWasAdded):
729 (WebInspector.DefaultDashboard.prototype._frameWasAdded):
730 (WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
731 (WebInspector.DefaultDashboard.prototype._startUpdatingTime):
732 (WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
733 (WebInspector.DefaultDashboard.prototype._updateTime):
734 (WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
735 (WebInspector.DefaultDashboard.prototype._consoleMessageWasRepeated):
736 (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
737 (WebInspector.DefaultDashboard.prototype._consoleWasCleared):
738 * UserInterface/Views/DashboardContainerView.css: Added.
739 (.toolbar .dashboard-container):
740 (body.window-inactive .toolbar .dashboard-container):
741 (body.javascript .toolbar .dashboard-container):
742 (.toolbar.normal-size.icon-and-label-vertical .dashboard-container):
743 (.toolbar.small-size.icon-and-label-horizontal .dashboard-container):
744 (.toolbar.normal-size.icon-and-label-horizontal .dashboard-container):
745 (.toolbar .dashboard-container):
746 (.toolbar .dashboard):
747 (.toolbar .dashboard.visible):
748 (.toolbar .dashboard.slide-out-up):
749 (.toolbar .dashboard.slide-out-down):
750 (.toolbar .dashboard.slide-in-up):
751 (.toolbar .dashboard.slide-in-down):
752 (@-webkit-keyframes slide-top-edge):
754 (@-webkit-keyframes slide-bottom-edge):
755 * UserInterface/Views/DashboardContainerView.js: Added.
756 (WebInspector.DashboardContainerView):
757 (WebInspector.DashboardContainerView.prototype.get toolbarItem):
758 (WebInspector.DashboardContainerView.prototype.get currentDashboardView):
759 (WebInspector.DashboardContainerView.prototype.showDashboardViewForRepresentedObject):
760 (WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):
761 (WebInspector.DashboardContainerView.prototype._showDashboardView):
762 * UserInterface/Views/DashboardView.css: Removed.
763 * UserInterface/Views/DashboardView.js:
764 (WebInspector.DashboardView):
765 (WebInspector.DashboardView.prototype.get element):
766 (WebInspector.DashboardView.prototype.get parentContainer):
767 (WebInspector.DashboardView.prototype.get representedObject):
768 (WebInspector.DashboardView.prototype.shown):
769 (WebInspector.DashboardView.prototype.hidden):
770 * UserInterface/Views/DefaultDashboardView.css: Added.
771 (body.web .toolbar.collapsed .dashboard.default > .logs):
772 (body.javascript .toolbar .dashboard.default > .resourcesCount):
773 (.toolbar .dashboard.default):
774 (.toolbar .dashboard.default > .item):
775 (.toolbar .dashboard.default > .resourcesSize):
776 (.toolbar .dashboard.default > .item.enabled:hover):
777 (.toolbar .dashboard.default > .item.enabled:active):
778 (.toolbar .dashboard.default > .item > *):
779 (.toolbar .dashboard.default > .item > img):
780 (.toolbar .dashboard.default > .item.enabled > img):
781 (.toolbar .dashboard.default > .item.enabled:hover > img):
782 (.toolbar .dashboard.default > .item > div):
783 (.toolbar .dashboard.default > .item.enabled > div):
784 (.toolbar .dashboard.default > .item.enabled:hover > div):
785 (.toolbar .dashboard.default > .resourcesCount > img):
786 (.toolbar .dashboard.default > .time > img):
787 (.toolbar .dashboard.default > .logs > img):
788 (.toolbar .dashboard.default > .resourcesSize > img):
789 (.toolbar .dashboard.default > .errors > img):
790 (.toolbar .dashboard.default > .errors.enabled > img):
791 (.toolbar .dashboard.default > .errors.enabled:hover > img):
792 (.toolbar .dashboard.default > .errors.enabled > div):
793 (.toolbar .dashboard.default > .errors.enabled:hover > div):
794 (.toolbar .dashboard.default > .issues > img):
795 (.toolbar .dashboard.default > .issues.enabled > img):
796 (.toolbar .dashboard.default > .issues.enabled:hover > img):
797 (.toolbar .dashboard.default > .issues.enabled > div):
798 (.toolbar .dashboard.default > .issues.enabled:hover > div):
799 (.toolbar .dashboard.default > .item.pulsing):
800 (@-webkit-keyframes console-item-pulse):
801 (.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item):
802 (.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item):
803 * UserInterface/Views/DefaultDashboardView.js: Copied from Source/WebInspectorUI/UserInterface/Views/DashboardView.js.
804 (WebInspector.DefaultDashboardView):
805 (WebInspector.DefaultDashboardView.prototype._updateDisplay):
806 (WebInspector.DefaultDashboardView.prototype._formatPossibleLargeNumber):
807 (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.):
808 (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
809 (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
810 (WebInspector.DefaultDashboardView.prototype._itemWasClicked):
811 (WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):
812 (WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
813 (WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):
814 (WebInspector.DefaultDashboardView.prototype.animationEnded):
815 (WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
816 (WebInspector.DefaultDashboardView.prototype._setItemEnabled):
818 2014-03-08 Joseph Pecoraro <pecoraro@apple.com>
820 Web Inspector: update-InspectorBackendCommands.rb is putting legacy protocol files in the wrong place
821 https://bugs.webkit.org/show_bug.cgi?id=129959
823 Reviewed by Timothy Hatcher.
825 The script was putting legacy generated files into UserInterface
826 instead of UserInterface/Protocol.
828 * Scripts/update-InspectorBackendCommands.rb:
830 2014-03-07 Timothy Hatcher <timothy@apple.com>
832 Load source maps and their resources asynchronously.
834 https://bugs.webkit.org/show_bug.cgi?id=112071
836 Reviewed by Joseph Pecoraro.
838 * UserInterface/Controllers/SourceMapManager.js:
839 (WebInspector.SourceMapManager.prototype.loadAndParseSourceMap):
840 (WebInspector.SourceMapManager.prototype.downloadSourceMap):
841 (WebInspector.SourceMapManager.prototype.sourceMapLoaded):
842 (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
843 Use NetworkAgent.loadResource.
845 * UserInterface/Models/SourceMapResource.js:
846 (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
847 (WebInspector.SourceMapResource.prototype.createSourceCodeTextRange):
848 Use NetworkAgent.loadResource.
850 * UserInterface/Protocol/InspectorWebBackendCommands.js: Updated.
852 2014-03-04 Brian Burg <bburg@apple.com>
854 Inspector does not restore breakpoints after a page reload
855 https://bugs.webkit.org/show_bug.cgi?id=129655
857 Reviewed by Joseph Pecoraro.
859 Fix some console asserts that fire when breakpoints resolve.
861 * UserInterface/Controllers/DebuggerManager.js:
862 (WebInspector.DebuggerManager.prototype.breakpointResolved):
863 This had a typo, it should be `breakpoint.identifier`.
864 (WebInspector.DebuggerManager.prototype.scriptDidParse):
865 Sometimes the `url` parameter is empty instead of null.
867 2014-03-04 Diego Pino Garcia <dpino@igalia.com>
869 Web Inspector: Remove WebInspector.EventHandler in favor of WebInspector.EventListenerSet
870 https://bugs.webkit.org/show_bug.cgi?id=129185
872 Reviewed by Timothy Hatcher.
874 * UserInterface/Base/EventHandler.js: Removed.
875 * UserInterface/Main.html: Don't include EventHandler.js.
876 * UserInterface/Views/SourceCodeTextEditor.js:
877 (WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
878 (WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
879 Use EventListenerSet instead of EventHandler.
881 2014-03-03 Jonathan Wells <jonowells@apple.com>
883 Web Inspector: Match color of regex in source view with a popover
884 https://bugs.webkit.org/show_bug.cgi?id=129645
886 Reviewed by Timothy Hatcher.
888 * UserInterface/Views/LogContentView.css:
889 (.console-formatted-string):
890 (.console-formatted-regexp):
892 2014-03-03 Jonathan Wells <jonowells@apple.com>
894 Web Inspector: Better Debugger popovers for RegExp values
895 https://bugs.webkit.org/show_bug.cgi?id=129633
897 Reviewed by Timothy Hatcher.
899 * UserInterface/Views/SourceCodeTextEditor.js:
900 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
901 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
902 (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
904 2014-03-03 Timothy Hatcher <timothy@apple.com>
906 Don't try to parse legacy CSS gradients -- we don't support them.
908 https://bugs.webkit.org/show_bug.cgi?id=129623
910 Reviewed by Joseph Pecoraro.
912 * UserInterface/Models/Gradient.js:
913 (WebInspector.Gradient.stopsWithComponents): Fix a possible exception on malformed stops.
914 (WebInspector.LinearGradient.linearGradientWithComponents): Return early for legacy gradients.
916 2014-03-03 Timothy Hatcher <timothy@apple.com>
918 Remove an innocuous error message and support default views for Resource and Debugger sidebars.
920 https://bugs.webkit.org/show_bug.cgi?id=129622
922 Reviewed by Joseph Pecoraro.
924 * UserInterface/Views/DebuggerSidebarPanel.js:
925 (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView): Added.
926 * UserInterface/Views/ResourceSidebarPanel.js:
927 (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView): Added.
928 (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Don't log an error
929 if the tree element isn't a Script. We try to find any represented object, and it can fail.
931 2014-03-03 Timothy Hatcher <timothy@apple.com>
933 Fix an exception caused by trying to access the DOM before it is loaded.
935 https://bugs.webkit.org/show_bug.cgi?id=129617
937 Reviewed by Andreas Kling.
939 * UserInterface/Base/Main.js:
940 (WebInspector.loaded): Move global event listeners from here...
941 (WebInspector.contentLoaded): ... to here.
943 2014-03-01 Timothy Hatcher <timothy@apple.com>
945 Make Start Timeline Recording in the Develop menu show the Timeline view again.
947 This also fixes a noticeable delay between showing the sidebar and the default Timeline
948 view when initially opening the Web Inspector to the Timeline.
950 https://bugs.webkit.org/show_bug.cgi?id=129545
952 Reviewed by Joseph Pecoraro.
954 * UserInterface/Base/Main.js:
955 (WebInspector.contentLoaded): Call TimelineSidebarPanel.initialize to prime the content view.
956 This is needed so the view is ready in this run loop cycle, where it was delayed before.
957 * UserInterface/Protocol/InspectorFrontendAPI.js:
958 (InspectorFrontendAPI.setTimelineProfilingEnabled): Call TimelineSidebarPanel.showTimelineOverview.
959 * UserInterface/Views/TimelineSidebarPanel.js:
960 (WebInspector.TimelineSidebarPanel.prototype.initialize): Added.
962 2014-03-01 Timothy Hatcher <timothy@apple.com>
964 Select the Resource navigation sidebar by default when there is no cookie.
966 https://bugs.webkit.org/show_bug.cgi?id=129544
968 Reviewed by Joseph Pecoraro.
970 * UserInterface/Base/Main.js:
971 (WebInspector._restoreInspectorViewStateFromCookie):
973 2014-03-01 Timothy Hatcher <timothy@apple.com>
975 Label JavaScript forced layouts as such in the Timeline.
977 https://bugs.webkit.org/show_bug.cgi?id=129546
979 Reviewed by David Kilzer.
981 * Localizations/en.lproj/localizedStrings.js: Updated.
982 * UserInterface/Controllers/TimelineManager.js:
983 (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
984 (WebInspector.TimelineManager.prototype.eventRecorded):
985 * UserInterface/Models/LayoutTimelineRecord.js:
986 (WebInspector.LayoutTimelineRecord.EventType.displayName):
987 * UserInterface/Views/TimelineRecordTreeElement.js:
988 (WebInspector.TimelineRecordTreeElement):
990 2014-02-28 Timothy Hatcher <timothy@apple.com>
992 Enable breakpoints when adding a new breakpoint or enabling an existing breakpoint.
994 This eliminates a multi-step process for the user that can be confusing.
996 https://bugs.webkit.org/show_bug.cgi?id=129426
998 Reviewed by Joseph Pecoraro.
1000 * UserInterface/Controllers/DebuggerManager.js:
1001 (WebInspector.DebuggerManager.prototype.set breakpointsEnabled):
1002 (WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
1003 * UserInterface/Views/DebuggerSidebarPanel.js:
1004 (WebInspector.DebuggerSidebarPanel):
1005 (WebInspector.DebuggerSidebarPanel.prototype._breakpointsEnabledDidChange):
1006 (WebInspector.DebuggerSidebarPanel.prototype._breakpointsToggleButtonClicked):
1008 2014-02-27 Timothy Hatcher <timothy@apple.com>
1010 Use a RegExp when when using CodeMirror's SearchCursor.
1012 This avoids doing toLowerCase() on every line of the TextEditor.
1014 https://bugs.webkit.org/show_bug.cgi?id=129463
1016 Reviewed by Joseph Pecoraro.
1018 * UserInterface/Views/TextEditor.js:
1019 (TextEditor.prototype.performSearch): Use a RegExp for query. Pass false for the caseFold
1020 argument, but it is ignored for RegExp searches anyway.
1022 2014-02-27 Brian Burg <bburg@apple.com>
1024 Web Inspector: model tests should use a special Test.html inspector page
1025 https://bugs.webkit.org/show_bug.cgi?id=129190
1027 Reviewed by Timothy Hatcher.
1029 * UserInterface/Base/Test.js: Added.
1030 (WebInspector.loaded):
1031 (WebInspector.contentLoaded):
1032 (WebInspector.updateDockedState):
1033 (InspectorTest.log):
1034 (InspectorTest.assert):
1035 (InspectorTest.debugLog):
1036 (InspectorTest.completeTest):
1037 (InspectorTest.evaluateInPage):
1038 (InspectorTest.addResult):
1039 (InspectorTest.clearResults):
1040 (InspectorTest.pageLoaded):
1041 (InspectorTest.reportUncaughtException):
1043 * UserInterface/Protocol/InspectorBackend.js:
1044 (InspectorBackendClass):
1045 (InspectorBackendClass.prototype.dispatch):
1046 (InspectorBackendClass.prototype.runAfterPendingDispatches):
1047 (InspectorBackendClass.prototype._flushPendingScripts):
1048 * UserInterface/Protocol/InspectorObserver.js:
1049 (WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
1050 * UserInterface/Test.html: Added.
1052 2014-02-27 Joseph Pecoraro <pecoraro@apple.com>
1054 Web Inspector: JSContext inspection should report exceptions in the console
1055 https://bugs.webkit.org/show_bug.cgi?id=128776
1057 Reviewed by Timothy Hatcher.
1059 * UserInterface/ConsoleMessageImpl.js:
1060 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1061 (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1062 (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1063 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1064 Provide better handling for "[native code]" and legacy "undefined"
1065 call frame URLs. Never linkify these. Also, when showing a link
1066 for an exception, always use the first non-native call frame as
1069 2014-02-26 Timothy Hatcher <timothy@apple.com>
1071 Fix an issue where the Timeline filter scope bars were not applying.
1073 Reviewed by Joseph Pecoraro.
1075 * UserInterface/Views/TimelineDataGrid.js:
1076 (TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Use .get() to access the ScopeBar.
1078 2014-02-25 Andreas Kling <akling@apple.com>
1080 Prune dead code for Web Inspector memory instrumentation.
1081 <https://webkit.org/b/129286>
1083 Reviewed by Sam Weinig.
1085 * UserInterface/Protocol/InspectorWebBackendCommands.js:
1087 2014-02-24 Timothy Hatcher <timothy@apple.com>
1089 Switch from prefixed CSS gradient to unprefixed.
1091 https://bugs.webkit.org/show_bug.cgi?id=129279
1093 Reviewed by Andreas Kling.
1095 * UserInterface/Views/BreakpointActionView.css:
1096 (.breakpoint-action-append-button):
1097 (.breakpoint-action-remove-button):
1098 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1099 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
1100 * UserInterface/Views/CompletionSuggestionsView.css:
1101 (.completion-suggestions-container > .item:active):
1102 * UserInterface/Views/DashboardView.css:
1103 (.toolbar .dashboard):
1104 * UserInterface/Views/DataGrid.css:
1106 (.data-grid table.data):
1107 (.data-grid th.sortable:not(.mouse-over-collapser):active):
1108 (.data-grid th.sort-ascending, .data-grid th.sort-descending):
1109 (.data-grid th.sortable.sort-ascending:not(.mouse-over-collapser):active, .data-grid th.sortable.sort-descending:not(.mouse-over-collapser):active):
1110 (body.window-inactive .data-grid th.sort-descending):
1111 * UserInterface/Views/DetailsSection.css:
1112 (.details-section > .header):
1113 (.details-section .details-section > .header):
1114 * UserInterface/Views/DividerNavigationItem.css:
1115 (.navigation-bar .item.divider):
1116 * UserInterface/Views/FindBanner.css:
1117 (.find-banner > button:active:not(:disabled)):
1118 * UserInterface/Views/Main.css:
1119 (#split-content-browser > .navigation-bar):
1120 * UserInterface/Views/NavigationSidebarPanel.css:
1121 (.sidebar > .panel.navigation > .overflow-shadow):
1122 (.navigation-sidebar-panel-content-tree-outline .item.selected):
1123 (.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
1124 (body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
1125 * UserInterface/Views/ProbeSetDataGrid.css:
1126 (.details-section.probe-set .data-grid > .data-container td.unknown-value):
1127 (.details-section.probe-set .data-grid th):
1128 * UserInterface/Views/RadioButtonNavigationItem.css:
1129 (.navigation-bar .item.radio.button.text-only.selected):
1130 * UserInterface/Views/TextEditor.css:
1131 (.text-editor .bouncy-highlight):
1132 * UserInterface/Views/TimelineContentView.css:
1133 (.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
1134 * UserInterface/Views/TimelineDataGrid.css:
1135 (.timeline-data-grid-tree-outline .item:hover):
1136 * UserInterface/Views/TimelineRuler.css:
1137 (.timeline-ruler > .header > .divider):
1138 * UserInterface/Views/TimelineSidebarPanel.css:
1139 (.sidebar > .panel.timeline > .title-bar):
1140 (.sidebar > .panel.timeline > .content > .stripe-background):
1141 * UserInterface/Views/Toolbar.css:
1142 (body:not(.mac-platform) .toolbar):
1143 (body.docked.mac-platform.mavericks .toolbar):
1145 2014-02-24 Timothy Hatcher <timothy@apple.com>
1147 Fix the missing navigation bar in the Debugger sidebar panel.
1149 Sorting the CSS resources caused specificity issue.
1151 https://bugs.webkit.org/show_bug.cgi?id=129251
1153 Reviewed by Joseph Pecoraro.
1155 * UserInterface/Views/DebuggerSidebarPanel.css:
1156 (.sidebar > .panel.navigation.debugger > .content):
1157 (.sidebar > .panel.navigation.debugger > .navigation-bar):
1158 * UserInterface/Views/LayoutTimelineView.css:
1159 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
1160 * UserInterface/Views/NetworkTimelineView.css:
1161 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
1162 * UserInterface/Views/ResourceSidebarPanel.css:
1163 (.sidebar > .panel.navigation.resource > .empty-content-placeholder):
1164 (.sidebar > .panel.navigation.resource > .search-bar):
1165 (.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
1166 * UserInterface/Views/ScriptTimelineView.css:
1167 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
1168 * UserInterface/Views/TimelineSidebarPanel.css:
1169 (.sidebar > .panel.navigation.timeline > .status-bar):
1170 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
1171 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
1172 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
1173 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
1174 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
1175 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
1176 (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
1177 (.sidebar > .panel.navigation.timeline > .title-bar):
1178 (.sidebar > .panel.navigation.timeline > .title-bar.timelines):
1179 (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
1180 (.sidebar > .panel.navigation.timeline > .timelines-content):
1181 (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
1182 (.sidebar > .panel.navigation.timeline > .timelines-content li.item .icon):
1183 (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected .close-button):
1184 (.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):nth-child(even)):
1185 (.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):not(:first-child)):
1186 (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
1187 (.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
1188 (.sidebar > .panel.navigation.timeline > .timelines-content .close-button:active):
1189 (.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
1190 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content):
1191 (.sidebar > .panel.navigation.timeline > .content > .stripe-background):
1192 (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background):
1194 2014-02-24 Timothy Hatcher <timothy@apple.com>
1196 Give non-Mac platforms a default toolbar background so it isn't just white.
1198 https://bugs.webkit.org/show_bug.cgi?id=129260
1200 Reviewed by Joseph Pecoraro.
1202 * UserInterface/Base/Main.js:
1203 (WebInspector.contentLoaded): Style the boby with platform classes.
1204 * UserInterface/Base/Utilities.js:
1205 (String.prototype.contains): Added.
1206 * UserInterface/Views/Toolbar.css:
1207 (body.docked .toolbar, body:not(.mac-platform) .toolbar): Added. Default toolbar background.
1208 (body.docked.mac-platform.mavericks .toolbar, body.docked.mac-platform.mountain-lion): Added.
1209 (body.mac-platform:not(.docked) .toolbar .item.button > .label): Only apply to Mac.
1211 2014-02-24 Diego Pino Garcia <dpino@igalia.com>
1213 Web Inspector: Remove single quote characters from Web Inspector JavaScript files
1214 https://bugs.webkit.org/show_bug.cgi?id=129253
1216 Reviewed by Timothy Hatcher.
1218 * UserInterface/Base/Main.js:
1219 (WebInspector.openURL):
1220 * UserInterface/Views/CookieStorageContentView.js:
1221 (WebInspector.cookieDomainMatchesResourceDomain):
1222 * UserInterface/Views/DOMTreeElement.js:
1223 (WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
1224 (WebInspector.DOMTreeElement.prototype._startEditingTagName.editingComitted):
1225 (WebInspector.DOMTreeElement.prototype._startEditingTagName.editingCancelled):
1226 (WebInspector.DOMTreeElement.prototype._startEditingTagName):
1227 * UserInterface/Views/DOMTreeOutline.js:
1228 (WebInspector.DOMTreeOutline.prototype._ondragover):
1229 * UserInterface/Views/DataGrid.js:
1230 (WebInspector.DataGrid.prototype.addPlaceholderNode):
1232 2014-02-23 Dan Bernstein <mitz@apple.com>
1234 Removed -Wno-format-y2k from WARNING_CFLAGS
1236 Rubber-stamped by Sam Weinig.
1238 * Configurations/Base.xcconfig:
1240 2014-02-23 Diego Pino GarcÃa <dpino@igalia.com>
1242 [GTK] Fix build after Web Inspector code reorganization (r164543)
1243 https://bugs.webkit.org/show_bug.cgi?id=129231
1245 Reviewed by Dean Jackson.
1248 Modify paths to Web Inspector code.
1250 2014-02-23 Antoine Quint <graouts@webkit.org>
1252 Web Inspector: color picker sliders aren't laid out correctly
1253 https://bugs.webkit.org/show_bug.cgi?id=129234
1255 Reviewed by Joseph Pecoraro.
1257 While it's unclear to me what happened, the "position" property for the color picker sliders
1258 wasn't being computed as expected and used relative positioning. I assume this is related to
1259 r164543 when the order of CSS files changed.
1261 * UserInterface/Views/Slider.css:
1264 2014-02-22 Dan Bernstein <mitz@apple.com>
1266 REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
1267 https://bugs.webkit.org/show_bug.cgi?id=129227
1269 Reviewed by Eric Carlson.
1273 * UserInterface/Views/ConsoleMessageImpl.js:
1274 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1275 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1277 2014-02-21 Timothy Hatcher <timothy@apple.com>
1279 Organize WebInspectorUI/UserInterface into sub-directories.
1281 https://bugs.webkit.org/show_bug.cgi?id=129194
1283 Rubber-stamped by Joseph Pecoraro.
1285 * Scripts/copy-user-interface-resources.sh: Fix Image URLs and Protocol paths.
1286 * UserInterface/Base: Added.
1287 * UserInterface/Controllers: Added.
1288 * UserInterface/Images: Added.
1289 * UserInterface/Main.html: Updated.
1290 * UserInterface/Models Added.
1291 * UserInterface/Protocol Added.
1292 * UserInterface/Views: Added.
1294 2014-02-21 Timothy Hatcher <timothy@apple.com>
1296 Add inspection user interface for IndexedDB.
1298 https://bugs.webkit.org/show_bug.cgi?id=129162
1300 Reviewed by Joseph Pecoraro.
1302 * Localizations/en.lproj/localizedStrings.js: Updated.
1303 * UserInterface/ContentView.js:
1304 (WebInspector.ContentView):
1305 (WebInspector.ContentView.isViewable):
1306 * UserInterface/IndexedDatabase.js: Added.
1307 (WebInspector.IndexedDatabase):
1308 (WebInspector.IndexedDatabase.prototype.get name):
1309 (WebInspector.IndexedDatabase.prototype.get securityOrigin):
1310 (WebInspector.IndexedDatabase.prototype.get host):
1311 (WebInspector.IndexedDatabase.prototype.get version):
1312 (WebInspector.IndexedDatabase.prototype.get objectStores):
1313 (WebInspector.IndexedDatabase.prototype.saveIdentityToCookie):
1314 * UserInterface/IndexedDatabaseEntryDataGridNode.js: Added.
1315 (WebInspector.IndexedDatabaseEntryDataGridNode):
1316 (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.get entry):
1317 (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
1318 * UserInterface/IndexedDatabaseHostTreeElement.js: Added.
1319 (WebInspector.IndexedDatabaseHostTreeElement):
1320 (WebInspector.IndexedDatabaseHostTreeElement.prototype.get name):
1321 (WebInspector.IndexedDatabaseHostTreeElement.prototype.get categoryName):
1322 * UserInterface/IndexedDatabaseObjectStore.js: Added.
1323 (WebInspector.IndexedDatabaseObjectStore):
1324 (WebInspector.IndexedDatabaseObjectStore.prototype.get name):
1325 (WebInspector.IndexedDatabaseObjectStore.prototype.get keyPath):
1326 (WebInspector.IndexedDatabaseObjectStore.prototype.get autoIncrement):
1327 (WebInspector.IndexedDatabaseObjectStore.prototype.get parentDatabase):
1328 (WebInspector.IndexedDatabaseObjectStore.prototype.get indexes):
1329 (WebInspector.IndexedDatabaseObjectStore.prototype.saveIdentityToCookie):
1330 (WebInspector.IndexedDatabaseObjectStore.prototype.establishRelationship):
1331 * UserInterface/IndexedDatabaseObjectStoreContentView.css: Added.
1332 (.content-view.indexed-database-object-store > .data-grid):
1333 (.content-view.indexed-database-object-store > .data-grid td .section .header):
1334 (.content-view.indexed-database-object-store > .data-grid td .section .header::before):
1335 (.content-view.indexed-database-object-store > .data-grid td .section .header .title):
1336 (.content-view.indexed-database-object-store > .data-grid table.data):
1337 (.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(even)):
1338 (.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)):
1339 (.content-view.indexed-database-object-store > .data-grid table.data tr.filler):
1340 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section .header::before):
1341 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section.expanded .header::before):
1342 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent::before):
1343 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent.expanded::before):
1344 (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li *):
1345 * UserInterface/IndexedDatabaseObjectStoreContentView.js: Added.
1346 (WebInspector.IndexedDatabaseObjectStoreContentView.displayKeyPath):
1347 (WebInspector.IndexedDatabaseObjectStoreContentView):
1348 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.closed):
1349 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.saveToCookie):
1350 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.updateLayout):
1351 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._reset):
1352 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._dataGridScrolled):
1353 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
1354 (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
1355 * UserInterface/IndexedDatabaseObjectStoreIndex.js: Added.
1356 (WebInspector.IndexedDatabaseObjectStoreIndex):
1357 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get name):
1358 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get keyPath):
1359 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get unique):
1360 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get multiEntry):
1361 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get parentObjectStore):
1362 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.saveIdentityToCookie):
1363 (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.establishRelationship):
1364 * UserInterface/IndexedDatabaseObjectStoreIndexTreeElement.js: Added.
1365 (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement):
1366 (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement.prototype.get objectStoreIndex):
1367 * UserInterface/IndexedDatabaseObjectStoreTreeElement.js: Added.
1368 (WebInspector.IndexedDatabaseObjectStoreTreeElement):
1369 (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.get objectStore):
1370 (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.oncollapse):
1371 (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.onpopulate):
1372 * UserInterface/IndexedDatabaseTreeElement.js: Added.
1373 (WebInspector.IndexedDatabaseTreeElement):
1374 (WebInspector.IndexedDatabaseTreeElement.prototype.get indexedDatabase):
1375 (WebInspector.IndexedDatabaseTreeElement.prototype.oncollapse):
1376 (WebInspector.IndexedDatabaseTreeElement.prototype.onpopulate):
1377 * UserInterface/Main.html:
1378 * UserInterface/Main.js:
1379 (WebInspector.sidebarPanelForRepresentedObject):
1380 * UserInterface/ResourceSidebarPanel.js:
1381 (WebInspector.ResourceSidebarPanel):
1382 (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
1383 (WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded):
1384 (WebInspector.ResourceSidebarPanel.prototype._storageCleared):
1385 * UserInterface/StorageManager.js:
1386 (WebInspector.StorageManager):
1387 (WebInspector.StorageManager.prototype.initialize):
1388 (WebInspector.StorageManager.prototype.processData):
1389 (WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
1390 (WebInspector.StorageManager.prototype._mainResourceDidChange):
1391 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabaseNames):
1392 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabase):
1393 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded):
1394 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStore):
1395 (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStoreIndex):
1396 (WebInspector.StorageManager.prototype._securityOriginDidChange):
1397 * UserInterface/URLUtilities.js:
1398 (parseSecurityOrigin):
1400 2014-02-22 Antoine Quint <graouts@webkit.org>
1402 Web Inspector: allow drag-to-adjust on angle input of gradients editor
1403 https://bugs.webkit.org/show_bug.cgi?id=129095
1405 Reviewed by Timothy Hatcher.
1407 Rename CodeMirrorDragToAlterNumberController to CodeMirrorDragToAdjustNumberController and move
1408 the core logic of a drag-to-adjust behavior out of it to a new generic class DragToAdjustController.
1409 We use this new class from CodeMirrorGradientEditingController to provide drag-to-adjust behavior
1410 in the angle input field of the gradient editor and also as a supporting object for the CodeMirror-
1413 * UserInterface/CodeMirrorDragToAdjustNumberController.css: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.css.
1414 (.CodeMirror.drag-to-adjust .CodeMirror-lines):
1416 * UserInterface/CodeMirrorDragToAdjustNumberController.js: Added.
1417 Removed the UI logic and use the new DragToAdjustController as a supporting object instead. We implement
1418 the various DragToAdjustController delegate methods in order to customize its behavior to work within the
1419 context of a CodeMirror editor, specifically to prevent activation when the editor is read-only and to
1420 prevent adjustment when the hovered token isn't a number.
1422 (WebInspector.CodeMirrorDragToAdjustNumberController):
1423 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.get enabled):
1424 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
1425 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerActiveStateChanged):
1426 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeActivated):
1427 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeAdjusted):
1428 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerWasAdjustedByAmount):
1429 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerDidReset):
1430 (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
1432 * UserInterface/CodeMirrorGradientEditingController.css:
1433 (.gradient-editing-controller > label.drag-to-adjust > input):
1435 * UserInterface/CodeMirrorGradientEditingController.js:
1436 Adopt the new DragToAdjustController to make the angle input field value adjustable by dragging.
1438 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
1439 (WebInspector.CodeMirrorGradientEditingController.prototype.dragToAdjustControllerWasAdjustedByAmount):
1440 (WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
1441 (WebInspector.CodeMirrorGradientEditingController.prototype._angleInputValueDidChange):
1443 * UserInterface/DragToAdjustController.js: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.js.
1444 New DragToAdjustController class exposing only the core UI logic of a drag-to-adjust behavior in the context
1445 of a DOM element, exposing a few delegation methods to customize the controller's behavior:
1447 - dragToAdjustControllerActiveStateChanged() notifies that the .active property has changed, allowing bringup
1448 and cleanup work to be performed.
1450 - dragToAdjustControllerDidReset() notifies that the various tracking states of the controller have been reset
1451 allowing other state objects used by clients to be cleared.
1453 - dragToAdjustControllerCanBeActivated() is used to check whether the controller may enter the active state upon
1454 first hovering the target element.
1456 - dragToAdjustControllerCanBeAdjusted() is used to check whether adjustment can be performed at the moment when
1457 the user actually is about to engage in a drag-to-adjust interaction.
1459 - dragToAdjustControllerCanAdjustObjectAtPoint() is used to check whether the object at the provided point (mouse
1460 location) is an adjustable value.
1462 - dragToAdjustControllerWasAdjustedByAmount() notifies that there is a new amount to add to the current value
1463 following a drag-to-adjust interaction.
1465 (WebInspector.DragToAdjustController):
1466 (WebInspector.DragToAdjustController.prototype.get element):
1467 (WebInspector.DragToAdjustController.prototype.set element):
1468 (WebInspector.DragToAdjustController.prototype.set enabled):
1469 (WebInspector.DragToAdjustController.prototype.get active):
1470 (WebInspector.DragToAdjustController.prototype.set active):
1471 (WebInspector.DragToAdjustController.prototype.reset):
1472 (WebInspector.DragToAdjustController.prototype.handleEvent):
1473 (WebInspector.DragToAdjustController.prototype._setDragging):
1474 (WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
1475 (WebInspector.DragToAdjustController.prototype._modifiersDidChange):
1476 (WebInspector.DragToAdjustController.prototype._mouseMoved):
1477 (WebInspector.DragToAdjustController.prototype._mouseWasPressed):
1478 (WebInspector.DragToAdjustController.prototype._mouseWasDragged):
1479 (WebInspector.DragToAdjustController.prototype._mouseWasReleased):
1481 * UserInterface/Main.html:
1482 Link in new source files.
1484 2014-02-21 Chi Wai Lau <clau@apple.com>
1486 Web Inspector: Replace binarySearch with lowerBound and upperBound functions
1487 https://bugs.webkit.org/show_bug.cgi?id=118609
1489 Reviewed by Timothy Hatcher.
1491 This makes insertionIndexForObjectInListSortedByFunction work in O(log(n)) time instead of O(n).
1493 * UserInterface/BinarySearch.js: Removed.
1494 * UserInterface/Main.html:
1495 * UserInterface/Utilities.js:
1496 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1497 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1499 2014-02-21 Brian Burg <bburg@apple.com>
1501 Web Inspector: animate breakpoint tree elements when probe samples are received
1502 https://bugs.webkit.org/show_bug.cgi?id=128334
1504 Reviewed by Timothy Hatcher.
1506 * UserInterface/BreakpointIcons.css: Removed, rules migrated to the following file.
1508 * UserInterface/BreakpointTreeElement.css: When we want to animateon top of the
1509 static icon, we set the icon image as the icon element's background, and animate
1510 a span on top of the icon element.
1512 (.breakpoint-exception-icon .icon): Moved.
1513 (.breakpoint-generic-line-icon .icon):
1514 (.breakpoint-generic-line-icon .icon > span): Added.
1515 (.data-updated.breakpoint-generic-line-icon .icon > span): Added.
1517 * UserInterface/BreakpointTreeElement.js:
1518 (WebInspector.BreakpointTreeElement): Rewrite event listener add/remove to use EventListenerSet.
1519 (WebInspector.BreakpointTreeElement.prototype.ondetach): Override to unregister the instance's listeners.
1520 (WebInspector.BreakpointTreeElement.prototype._addProbeSet): Added.
1521 (WebInspector.BreakpointTreeElement.prototype._removeProbeSet): Added.
1522 (WebInspector.BreakpointTreeElement.prototype._probeSetAdded): Added.
1523 (WebInspector.BreakpointTreeElement.prototype._probeSetRemoved): Added.
1524 Add/remove listeners when probe sets change.
1526 (WebInspector.BreakpointTreeElement.prototype._samplesCleared): Listeners should follow
1527 the active data table.
1529 (WebInspector.BreakpointTreeElement.prototype._dataUpdated): Run the animation when probe data changes.
1530 (WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange): Fix a listener leak.
1531 * UserInterface/Main.html: Remove BreakpointIcons.css.
1532 * UserInterface/NavigationSidebarPanel.css:
1533 (.navigation-sidebar-panel-content-tree-outline .item .icon): give icons
1534 'position: relative' so child spans can be absolutely positioned.
1535 * UserInterface/ProbeDetailsSidebarPanel.js: Get probeSet out of the event data
1536 container. The probe set used to be passed as the data container itself.
1537 (WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
1538 * UserInterface/ProbeManager.js:
1539 (WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
1540 (WebInspector.ProbeManager.prototype._breakpointActionsChanged):
1541 (WebInspector.ProbeManager.prototype.get _probeSetForBreakpoint.set this):
1542 * UserInterface/ProbeSet.js:
1543 (WebInspector.ProbeSet.prototype.clearSamples): include the old data table as the SamplesCleared event data.
1544 * UserInterface/TextResourceContentView.js:
1545 (WebInspector.TextResourceContentView.prototype._probeSetsChanged):
1547 2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
1549 Web Inspector: JSContext inspection should report exceptions in the console
1550 https://bugs.webkit.org/show_bug.cgi?id=128776
1552 Reviewed by Timothy Hatcher.
1554 * UserInterface/ConsoleMessageImpl.js:
1555 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1556 (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1557 (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1558 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1559 Provide better handling for "[native code]" and legacy "undefined"
1560 call frame URLs. Never linkify these. Also, when showing a link
1561 for an exception, always use the first non-native call frame as
1564 2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
1566 Revert r164486, causing a number of test failures.
1570 2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
1572 Web Inspector: JSContext inspection should report exceptions in the console
1573 https://bugs.webkit.org/show_bug.cgi?id=128776
1575 Reviewed by Timothy Hatcher.
1577 * UserInterface/ConsoleMessageImpl.js:
1578 (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1579 (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1580 (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1581 (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1582 Provide better handling for "[native code]" and legacy "undefined"
1583 call frame URLs. Never linkify these. Also, when showing a link
1584 for an exception, always use the first non-native call frame as
1587 2014-02-21 Antoine Quint <graouts@webkit.org>
1589 Web Inspector: scrollbar may appear when selecting a stop in gradient editor
1590 https://bugs.webkit.org/show_bug.cgi?id=129149
1592 Reviewed by Timothy Hatcher.
1594 Ensure the angle input is not focused as we update the size of the gradient editor's
1595 popover content since, if it were, it'd make a scrollbar appear as we animate the
1596 popover's frame to fit its new content.
1598 * UserInterface/CodeMirrorGradientEditingController.js:
1599 (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
1601 2014-02-20 Antoine Quint <graouts@webkit.org>
1603 Web Inspector: rich editing of CSS gradients
1604 https://bugs.webkit.org/show_bug.cgi?id=119686
1606 Reviewed by Timothy Hatcher.
1608 Look for gradient definitions in CSS resources and implement a gradient-specific CodeMirrorEditingController
1609 to edit those CSS gradients. The CodeMirrorGradientEditingController consists of a GradientSlider, a new widget
1610 allowing the editing of gradient stops, a <select> to pick between various gradient types, a text input to edit
1611 the gradient angle (for linear gradients) and finally a ColorPicker when a gradient stop is picked for editing.
1613 * Localizations/en.lproj/localizedStrings.js:
1614 New localized strings for the content of the gradient editing controller popover.
1616 * UserInterface/CodeMirrorAdditions.js:
1617 New .createGradientMarkers() method which, similar to .createColorMarkers(), takes in an optional TextRange, and
1618 looks for all gradients specified in CSS to create TextMarkers with new type WebInspector.TextMarker.Type.Gradient.
1619 In order to fully identify these CSS gradient strings, we implement a tokenizer to look for the final closing
1620 parenthesis since there can be nested opening and closing parentheses as colors are specified for stops.
1622 * UserInterface/CodeMirrorGradientEditingController.css: Added.
1623 (.gradient-editing-controller):
1624 (.gradient-editing-controller.edits-color):
1625 (.gradient-editing-controller.radial-gradient):
1626 (.gradient-editing-controller.edits-color.radial-gradient):
1627 (.gradient-editing-controller select):
1628 (.gradient-editing-controller .gradient-slider):
1629 (.gradient-editing-controller .color-picker):
1630 (.gradient-editing-controller > .color-picker > .slider):
1631 (.gradient-editing-controller > .color-picker > .brightness):
1632 (.gradient-editing-controller > .color-picker > .opacity):
1633 (.gradient-editing-controller > label):
1634 (.gradient-editing-controller.radial-gradient > label):
1635 (.gradient-editing-controller.edits-color > label):
1636 (.gradient-editing-controller > label > input):
1638 * UserInterface/CodeMirrorGradientEditingController.js: Added.
1639 (WebInspector.CodeMirrorGradientEditingController):
1640 (WebInspector.CodeMirrorGradientEditingController.prototype.get initialValue):
1641 (WebInspector.CodeMirrorGradientEditingController.prototype.get cssClassName):
1642 (WebInspector.CodeMirrorGradientEditingController.prototype.get popoverPreferredEdges):
1643 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverTargetFrameWithRects):
1644 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
1645 (WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
1646 Implementation of CodeMirrorEditingController methods meant to be overridden. This allows us
1647 to customize the popover's appearance, mostly to control how it attaches to the gradient
1648 strings in the editor.
1650 (WebInspector.CodeMirrorGradientEditingController.prototype.handleEvent):
1651 Event handler for changes in the <select> governing gradient type and <input> for the angle.
1653 (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopsDidChange):
1654 Implementation of a GradientSlider delegation method, we use this to update the .text property
1655 in order to propagate the stops change to the editor.
1657 (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
1658 Implementation of a GradientSlider delegation method, we use this to control the display of the
1659 ColorPicker used to edit the color of a selected stop.
1661 (WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
1662 Deal with changes in the <input> for the angle, ensuring we have a "º" string added to the value.
1664 (WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent):
1665 Deal with changes in the <select> for the type, preserving the stops list from one gradient type
1666 to the other. Gradient type-specific information (angle for linear gradients, sizing for radial
1667 gradients) is lost as we toggle between gradient types.
1669 (WebInspector.CodeMirrorGradientEditingController.prototype._colorPickerColorChanged):
1670 Propagate a color change in the ColorPicker to the stop being edited in the GradientSlider and
1671 and update the .text property in order to propagate the stops change to the editor.
1673 (WebInspector.CodeMirrorGradientEditingController.prototype._updateCSSClassForGradientType):
1674 As we toggle the gradient type in ._handleChangeEvent(), update the CSS class used to hide or show
1675 the angle <input> which is only relevant for linear gradients.
1677 * UserInterface/ColorPicker.js:
1678 (WebInspector.ColorPicker):
1679 Adopt the new Checkers.svg file to display the checkers pattern in the background of the opacity slider.
1681 (WebInspector.ColorPicker.prototype.get colorWheel):
1682 Expose the ColorWheel such that it can be sized by ColorPicker clients.
1684 (WebInspector.ColorPicker.prototype._updateColor):
1685 Drive-by fix for a bug where we'd attempt to use the RGB components of a color to get the alpha-aware version
1686 of the color even though the base format was HSL.
1688 * UserInterface/Gradient.js: Added.
1689 Parser for gradient strings as passed from the CodeMirror .createGradientMarkers() extension method. In the case
1690 of linear gradients, we parse all values, save for lengths, and in the case of radial gradients, we preserve the
1691 sizing information as a string and parse only the gradient stops as the sizing information is only useful to show
1692 in an editor if attached to an element with metrics.
1694 Since instances of Gradient are used as the .value property of CodeMirrorGradientEditingController, we implement
1695 the required .copy() and .toString() methods. The .toString() implementations are aware of default values for angles
1696 and color stop offsets and only print those as necessary and use shorthands when possible.
1698 (WebInspector.Gradient.fromString):
1699 (WebInspector.Gradient.stopsWithComponents):
1700 (WebInspector.Gradient.stringFromStops):
1701 (WebInspector.LinearGradient):
1702 (WebInspector.LinearGradient.linearGradientWithComponents):
1703 (WebInspector.LinearGradient.prototype.copy):
1704 (WebInspector.LinearGradient.prototype.toString):
1705 (WebInspector.RadialGradient):
1706 (WebInspector.RadialGradient.radialGradientWithComponents):
1707 (WebInspector.RadialGradient.prototype.copy):
1708 (WebInspector.RadialGradient.prototype.toString):
1710 * UserInterface/GradientSlider.css: Added.
1712 (.gradient-slider > canvas):
1713 (.gradient-slider > .add-area):
1714 (.gradient-slider-knob):
1715 (.gradient-slider-knob.shadow):
1716 (.gradient-slider-knob.selected):
1717 (.gradient-slider-knob.detaching):
1718 (.gradient-slider-knob.fade-out):
1719 (.gradient-slider-knob > div):
1720 (.gradient-slider-knob > img):
1722 * UserInterface/GradientSlider.js: Added.
1723 Widget used to edit a list of stops for a gradient, linear or radial. The widget features a <canvas> element
1724 that draws the gradient as a linear gradient from left to right with checkers in the background to correctly
1725 display transparent colors. Attached to this background, individual knobs are shown for each stop in the provided
1726 stops array. These knobs can be dragged from left to right to change the matching stop offset, but also down to
1727 detach the knob and remove this stop. Additionally, knobs can be clicked to toggle their selected state, where only
1728 one knob can be selected at a time. The Esc. key is used to remove selection of the currently selected knob.
1730 (WebInspector.GradientSlider):
1731 (WebInspector.GradientSlider.prototype.get element):
1732 (WebInspector.GradientSlider.prototype.get stops):
1733 (WebInspector.GradientSlider.prototype.set stops):
1734 (WebInspector.GradientSlider.prototype.get selectedStop):
1735 (WebInspector.GradientSlider.prototype.handleEvent):
1736 (WebInspector.GradientSlider.prototype.handleKeydownEvent):
1737 (WebInspector.GradientSlider.prototype.knobXDidChange):
1738 (WebInspector.GradientSlider.prototype.knobCanDetach):
1739 (WebInspector.GradientSlider.prototype.knobWillDetach):
1740 (WebInspector.GradientSlider.prototype.knobSelectionChanged):
1741 (WebInspector.GradientSlider.prototype._handleMouseover):
1742 (WebInspector.GradientSlider.prototype._handleMousemove):
1743 (WebInspector.GradientSlider.prototype._handleMouseout):
1744 (WebInspector.GradientSlider.prototype._handleClick):
1745 (WebInspector.GradientSlider.prototype._updateShadowKnob):
1746 (WebInspector.GradientSlider.prototype._sortStops):
1747 (WebInspector.GradientSlider.prototype._updateStops):
1748 (WebInspector.GradientSlider.prototype._updateCanvas):
1749 (WebInspector.GradientSlider.prototype._updateKnobs):
1750 (WebInspector.GradientSliderKnob):
1751 (WebInspector.GradientSliderKnob.prototype.get element):
1752 (WebInspector.GradientSliderKnob.prototype.get stop):
1753 (WebInspector.GradientSliderKnob.prototype.set stop):
1754 (WebInspector.GradientSliderKnob.prototype.get x):
1755 (WebInspector.GradientSliderKnob.prototype.set x):
1756 (WebInspector.GradientSliderKnob.prototype.get y):
1757 (WebInspector.GradientSliderKnob.prototype.set y):
1758 (WebInspector.GradientSliderKnob.prototype.get wellColor):
1759 (WebInspector.GradientSliderKnob.prototype.set wellColor):
1760 (WebInspector.GradientSliderKnob.prototype.get selected):
1761 (WebInspector.GradientSliderKnob.prototype.set selected):
1762 (WebInspector.GradientSliderKnob.prototype.handleEvent):
1763 (WebInspector.GradientSliderKnob.prototype._handleMousedown):
1764 (WebInspector.GradientSliderKnob.prototype._handleMousemove):
1765 (WebInspector.GradientSliderKnob.prototype._handleMouseup):
1766 (WebInspector.GradientSliderKnob.prototype._handleTransitionEnd):
1767 (WebInspector.GradientSliderKnob.prototype._updateTransform):
1769 * UserInterface/Images/Checkers.svg: Added.
1770 New asset to draw checkers for color wells.
1772 * UserInterface/Images/GradientStop.png: Added.
1773 * UserInterface/Images/GradientStop@2x.png: Added.
1774 * UserInterface/Images/GradientStopSelected.png: Added.
1775 * UserInterface/Images/GradientStopSelected@2x.png: Added.
1776 New assets used by the gradient slider.
1778 * UserInterface/Main.html:
1779 Link to the new source files.
1781 * UserInterface/SourceCodeTextEditor.js:
1782 (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
1783 Add a call to .createGradientMarkers() such that we support editing of CSS gradients in such editors.
1785 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
1786 Also recognize gradient markers as valid editable markers.
1788 * UserInterface/TextEditor.js:
1789 (WebInspector.TextEditor.prototype.createGradientMarkers):
1790 Wrapper for the CodeMirror extension method .createGradientMarkers() such that it may be used by subclasses
1791 that have no knowledge of CodeMirror.
1793 (WebInspector.TextEditor.prototype.editingControllerForMarker):
1794 Return a CodeMirrorGradientEditingController for TextMarkers with WebInspector.TextMarker.Type.Gradient type.
1796 * UserInterface/TextMarker.js:
1797 Add the WebInspector.TextMarker.Type.Gradient type.
1799 2014-02-20 Antoine Quint <graouts@webkit.org>
1801 Web Inspector: create a CodeMirrorEditingController superclass
1802 https://bugs.webkit.org/show_bug.cgi?id=129094
1804 Reviewed by Timothy Hatcher.
1806 Take code that is generic to editing of any text marker out of CodeMirrorColorEditingController to
1807 create a new CodeMirrorEditingController superclass that'll be fit to use for future editing controllers.
1808 Additioanlly, we fix existing issues with such editing by supporting text markers spread across several
1809 lines and more robustly handling the Esc. key being pressed to dismiss a controller's popover.
1811 * UserInterface/CSSStyleDeclarationTextEditor.js:
1812 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
1813 Adopt the new .createColorMarkers() method signature to provide a TextRange parameter rather than a single
1816 * UserInterface/CodeMirrorAdditions.js:
1817 Remove the .boundsForRange() method in favor of a .rectsForRange() method which will allow us to draw better
1818 menus when hovering over a text range by providing tight bounds rather than a large box. We also handle any
1819 line wrapping produced by CodeMirror and remove any leading white-space so that the rects are tight to the
1820 actual characters in the text marker.
1822 We also change .createColorMarkers() to take in a TextRange parameter rather than a line number in order to
1823 better deal with text markers spread across multiple lines.
1825 * UserInterface/CodeMirrorColorEditingController.js:
1826 Remove any code that is adequate for any editing controller (which is moving to CodeMirrorEditingController).
1827 We also adopt new interfaces exposed by CodeMirrorEditingController.
1829 (WebInspector.CodeMirrorColorEditingController):
1830 (WebInspector.CodeMirrorColorEditingController.prototype.get initialValue):
1831 (WebInspector.CodeMirrorColorEditingController.prototype.get cssClassName):
1832 (WebInspector.CodeMirrorColorEditingController.prototype.popoverWillPresent):
1833 (WebInspector.CodeMirrorColorEditingController.prototype.popoverDidPresent):
1834 (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
1836 * UserInterface/CodeMirrorEditingController.js: Copied from Source/WebInspectorUI/UserInterface/CodeMirrorColorEditingController.js.
1837 New class meant to be subclassed by any future editing controller, and already subclassed by
1838 CodeMirrorColorEditingController. This class exposes several hooks for subclasses to customize its behavior:
1840 .initialValue: a value we can revert to if the editing is canceled
1841 .cssClassName: a CSS class name that can be added to the editing controller's container
1842 .popoverPreferredEdges: a list of preferredEdges as passed to Popover.prototype.present() with a sensible default
1843 .popoverTargetFrameWithRects: a targetFrame passed to Popover.prototype.present(), defaults to a union of provided rects
1844 .popoverWillPresent: called as the popover is about to be presented, typically overridden to set the popover's content
1845 .popoverDidPresent: called as the popover just was presented, typically overridden when content needs to tuned only after
1846 being added to the DOM and setting of the necessary machinery to update the serialized value in the editor based on interaction
1847 within the popover without changing the serialized value upon showing the popover the very first time.
1849 Additionally, the .value property must be an object supporting .toString() and .copy() method.
1851 Finally, the .editingControllerDidStartEditing() and .editingControllerDidFinishEditing() delegate methods are fired
1852 as editing begins and finishes.
1854 (WebInspector.CodeMirrorEditingController):
1855 (WebInspector.CodeMirrorEditingController.prototype.get marker):
1856 (WebInspector.CodeMirrorEditingController.prototype.get range):
1857 (WebInspector.CodeMirrorEditingController.prototype.get value):
1858 (WebInspector.CodeMirrorEditingController.prototype.set value):
1859 (WebInspector.CodeMirrorEditingController.prototype.get delegate):
1860 (WebInspector.CodeMirrorEditingController.prototype.set delegate):
1861 (WebInspector.CodeMirrorEditingController.prototype.get text):
1862 (WebInspector.CodeMirrorEditingController.prototype.set text):
1863 (WebInspector.CodeMirrorEditingController.prototype.get initialValue):
1864 (WebInspector.CodeMirrorEditingController.prototype.get cssClassName):
1865 (WebInspector.CodeMirrorEditingController.prototype.get popover):
1866 (WebInspector.CodeMirrorEditingController.prototype.get popoverPreferredEdges):
1867 (WebInspector.CodeMirrorEditingController.prototype.popoverTargetFrameWithRects):
1868 (WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
1869 (WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
1870 (WebInspector.CodeMirrorEditingController.prototype.popoverWillPresent):
1871 (WebInspector.CodeMirrorEditingController.prototype.popoverDidPresent):
1873 (WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
1874 Event handler for keydown events as registered via the new WebInspector.addWindowKeydownListener() method.
1876 (WebInspector.CodeMirrorEditingController.prototype.hoverMenuButtonWasPressed):
1877 (WebInspector.CodeMirrorEditingController.prototype.didDismissPopover):
1879 * UserInterface/Geometry.js:
1880 (WebInspector.Rect.unionOfRects):
1881 (WebInspector.Rect.prototype.unionWithRect):
1882 New utilities to get a Rect that is the union of the provided Rect or array of Rects.
1884 (WebInspector.Polygon):
1885 (WebInspector.Polygon.prototype.bounds):
1886 New class used to store a list of points for a polygon and get its bounds, used by the HoverMenu class.
1888 * UserInterface/HoverMenu.css:
1890 (.hover-menu > svg):
1891 (.hover-menu > svg > rect):
1892 (.hover-menu > img):
1894 * UserInterface/HoverMenu.js:
1895 We remove the assumption that a HoverMenu is only used to draw a single rounded rect based on a simple
1896 Rect and instead support presentation based on an array of Rects where we either:
1898 - draw a single rounded rectangle if there is only a single Rect provided
1899 - draw two disconnected open-ended rects if we're provided with two non-overlapping Rects
1900 - draw a polygon surrounding all provided Rects in all other cases
1902 No matter how the HoverMenu is drawn, the drawing is performed in SVG with either <rect> or a <path> elements.
1904 (WebInspector.HoverMenu):
1905 (WebInspector.HoverMenu.prototype.present):
1906 (WebInspector.HoverMenu.prototype.dismiss):
1907 (WebInspector.HoverMenu.prototype.handleEvent):
1908 (WebInspector.HoverMenu.prototype._handleClickEvent):
1909 (WebInspector.HoverMenu.prototype._drawOutline):
1910 (WebInspector.HoverMenu.prototype._addRect):
1911 (WebInspector.HoverMenu.prototype._addPath):
1912 (WebInspector.HoverMenu.prototype._drawSingleLine):
1913 (WebInspector.HoverMenu.prototype._drawTwoNonOverlappingLines):
1914 (WebInspector.HoverMenu.prototype._drawOverlappingLines):
1916 * UserInterface/Main.html:
1917 Link to the new CodeMirrorEditingController class.
1919 * UserInterface/Main.js:
1920 Expose a new mechanism to deal with window-level handling of keydown events in order to allow
1921 a list of handlers to accept or reject dealing with the provided keydown event based on the order
1922 they were registered, in most recent to oldest registered handler. This allows, for instance, for
1923 a more graceful handling of the Esc. key being pressed in the CodeMirrorEditingController and
1924 bypasses the DOM structure allowing for objects managing elements in different DOM hierarchies
1925 to compete with handling of keydown events.
1927 (WebInspector.loaded):
1928 (WebInspector.addWindowKeydownListener):
1929 (WebInspector.removeWindowKeydownListener):
1930 (WebInspector._updateWindowKeydownListener):
1931 (WebInspector._sharedWindowKeydownListener):
1933 * UserInterface/SourceCodeTextEditor.css:
1934 (.hover-menu.color > img):
1935 Update the offset applied to a HoverMenu button based on the change of layout for such buttons which
1936 are now absolutely positioned in code by HoverMenu rather than being laid out using the flex-box model.
1938 * UserInterface/SourceCodeTextEditor.js:
1939 Abstrct away the assumption that only a color editing controller may be used to edit text markers in
1940 a source code text editor.
1942 (WebInspector.SourceCodeTextEditor.prototype.hidden):
1943 Ensure we remove any currently-displayed hover menu for an editing controller when the editor is hidden.
1944 This would happen in the situation where a keyboard shortcut was used to jump to another part of the
1945 Web Inspector UI without using the mouse.
1947 (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
1948 Since we're now working with text ranges rather than lines, remove the code where we'd work out a set of
1949 changed lines and call ._updateEditableMarkers() with the changed range directly instead.
1951 (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
1952 (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
1953 (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
1954 Adopt the more generic method names rather than color-specific ones.
1956 (WebInspector.SourceCodeTextEditor.prototype._showPopover):
1957 When showing the popover outside of the use of a CodeMirrorEditingController, such as a JavaScript expression
1958 when debugging, also deal with the possibility of the highlighted range containing multiple lines rather
1959 than assume a single line.
1961 (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
1962 More generic method name to support future, non-color editing controllers.
1964 (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
1965 Find the outermost marker in the list of markers provided such that a marker containing other markers
1966 shows the UI for the containing marker. For instance, a gradient marker would contain several color
1967 markers and it's preferable to show the editing UI for the whole gradient rather than a specific color.
1969 Additionally, adopt more generic ivars and method names to support future, non-color editing controllers.
1971 (WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
1972 Support for new parameter instructing that the editing controller dismissal should be instant rather than
1973 animated, which is the default. This is useful when, for instance, the text editor is cleared.
1975 (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidStartEditing):
1976 (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
1977 Adopt the more generic method names rather than color-specific ones.
1979 * UserInterface/TextEditor.js:
1980 (WebInspector.TextEditor.prototype.rectsForRange):
1981 Remove .boundsForRange() in favor of this new method where we return a series of rects so that we may
1982 draw a more pleasing HoverMenu.
1984 (WebInspector.TextEditor.prototype.createColorMarkers):
1985 Use a TextRanger rather than a single line number to match the underlying CodeMirror extension method.
1987 (WebInspector.TextEditor.prototype.editingControllerForMarker):
1988 Use the provided TextMarker's type to provide the most adequate CodeMirrorEditingController class.
1990 * UserInterface/TextMarker.js:
1991 (WebInspector.TextMarker.prototype.get rects):
1992 Remove the .bounds property in favor of .rects to match the underlying CodeMirror extension method.
1994 2014-02-20 Antoine Quint <graouts@webkit.org>
1996 Web Inspector: Popover should animate its frame to display its refreshed content
1997 https://bugs.webkit.org/show_bug.cgi?id=129088
1999 Reviewed by Timothy Hatcher.
2001 When calling .update(), we now check whether we can animate the change of frame provided the
2002 new computed frame to best fit the current content still matches the edge the popover uses
2003 to attach to the target frame. If we find that we can do so, we animate the background frame
2004 of the popover while ensuring the anchor point remains stable during the animation such that
2005 only the popover's frame seems to animate.
2007 * UserInterface/Geometry.js:
2008 (WebInspector.Rect.prototype.round):
2009 Returns a new Rect with rounded values, using a floor for the position and a ceil for the size.
2011 * UserInterface/Main.html:
2012 Link to the new UnitBezier.js source file.
2014 * UserInterface/Popover.js:
2015 (WebInspector.Popover):
2016 Make ._anchorPoint an ivar such that we don't need to pass a reference to the anchorPoint into
2017 the various calls leading to an update of the popover's background drawing.
2019 (WebInspector.Popover.prototype.set frame):
2020 We no longer round the values of the frame here, instead calling the new .round() method on Rect
2021 in places where we compute a new frame.
2023 (WebInspector.Popover.prototype.set content):
2024 (WebInspector.Popover.prototype.update):
2025 Update the calls to ._update() to set the new shouldAnimate flag to true in situations where the
2026 popover is already visible.
2028 (WebInspector.Popover.prototype._update):
2029 In the situation where there is a preference to animate the frame, as set by the new shouldAnimate
2030 parameter, check that we can indeed animate by ensuring that the edge the popover uses to attach to
2031 the target frame remains the same upon computing the new best metrics for the new content size. If
2032 we can indeed animate, call _animateFrame(), otherwise set the new frame, anchor point and frame
2033 drawing discretely like we used to.
2035 (WebInspector.Popover.prototype._setAnchorPoint):
2036 New method to ensure we floor the position of the anchor point to ensure, when animating, that the
2037 anchor point remains stationary.
2039 (WebInspector.Popover.prototype._animateFrame):
2040 Using the new UnitBezier class, animate the popover frame from its previous value to its newly computed
2041 value while ensuring the anchor point remains, at all times, the same absolute position such that it
2042 remains stationary during the animation. The spline used to animate the frame is the same that a CSS
2043 transition set with an "ease" timing-function (default value) would use.
2045 (WebInspector.Popover.prototype._drawBackground):
2046 (WebInspector.Popover.prototype._drawFrame):
2047 Adopt new ._edge and ._anchorPoint ivars.
2049 * UserInterface/UnitBezier.js: Added.
2050 New class used to perform animations using a timing function specified with a cubic Bézier curve. The code
2051 is directly adapted from the Source/WebCore/platform/graphics/UnitBezier.h file.
2053 (WebInspector.UnitBezier):
2054 (WebInspector.UnitBezier.prototype.solve):
2055 (WebInspector.UnitBezier.prototype._sampleCurveX):
2056 (WebInspector.UnitBezier.prototype._sampleCurveY):
2057 (WebInspector.UnitBezier.prototype._sampleCurveDerivativeX):
2058 (WebInspector.UnitBezier.prototype._solveCurveX):
2060 2014-02-20 Antoine Quint <graouts@webkit.org>
2062 Web Inspector: content using a CSS transition within a popover causes the popover to disappear
2063 https://bugs.webkit.org/show_bug.cgi?id=129089
2065 Reviewed by Timothy Hatcher.
2067 Simply check that the element being transitioned is indeed the popover's container before assuming
2068 that the "transitonend" received was for a fade-out transition.
2070 * UserInterface/Popover.js:
2071 (WebInspector.Popover.prototype.handleEvent):
2073 2014-02-20 Antoine Quint <graouts@webkit.org>
2075 Web Inspector: clicking on a color swatch in the Computed styles tab shouldn't show the color editing popover
2076 https://bugs.webkit.org/show_bug.cgi?id=129093
2078 Reviewed by Timothy Hatcher.
2080 If the current editor is read-only, only allow cycling between color types since it wouldn't make sense to edit
2083 * UserInterface/CSSStyleDeclarationTextEditor.js:
2085 2014-02-19 Joseph Pecoraro <pecoraro@apple.com>
2087 Web Inspector: Remove unused InspectorBackend member variable
2088 https://bugs.webkit.org/show_bug.cgi?id=129053
2090 Reviewed by Timothy Hatcher.
2092 * UserInterface/InspectorBackend.js:
2093 (InspectorBackendClass):
2094 (InspectorBackendClass.prototype.registerCommand):
2095 (InspectorBackendClass.prototype.registerEnum):
2096 (InspectorBackendClass.prototype.registerEvent):
2098 2014-02-19 James Craig <jcraig@apple.com>
2100 Web Inspector: AX: clarify reason for ignored state where possible (hidden, default for tag, etc)
2101 https://bugs.webkit.org/show_bug.cgi?id=129037
2103 Reviewed by Timothy Hatcher.
2105 Passing back hidden and ignoredByDefault attrs to clarify some reasons for "ignored" status.
2107 * Localizations/en.lproj/localizedStrings.js:
2108 * UserInterface/DOMNode.js:
2109 * UserInterface/DOMNodeDetailsSidebarPanel.js:
2111 2014-02-18 James Craig <jcraig@apple.com>
2113 Web Inspector: AX: more properties: exists, required, and invalid (exists was previously combined with ignored)
2114 https://bugs.webkit.org/show_bug.cgi?id=128504
2116 Reviewed by Timothy Hatcher.
2118 Additions to the accessibility node inspector: exists, required, invalid.
2120 * Localizations/en.lproj/localizedStrings.js:
2121 * UserInterface/DOMNode.js:
2122 * UserInterface/DOMNodeDetailsSidebarPanel.js:
2124 2014-02-18 Antoine Quint <graouts@webkit.org>
2126 Web Inspector: editing a color in the Styles sidebar using the color picker only works once for a given color
2127 https://bugs.webkit.org/show_bug.cgi?id=128965
2129 Reviewed by Timothy Hatcher.
2131 Use the WebInspector.TextMarker backing the CodeMirror TextMarker object to inspect its type in
2132 order to identify color markers that were created for a color. This fixes a regression introduced
2133 in http://webkit.org/b/125695 when we abstracted CodeMirror TextMarker objects.
2135 * UserInterface/CSSStyleDeclarationTextEditor.js:
2136 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update):
2137 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror):
2139 2014-02-18 Antoine Quint <graouts@webkit.org>
2141 Web Inspector: Editing transparent color shows incorrect opacity slider
2142 https://bugs.webkit.org/show_bug.cgi?id=128975
2144 Reviewed by Joseph Pecoraro.
2146 The opacity slider should show a range of colors from transparent to the full opacity of the tinted color.
2148 * UserInterface/ColorPicker.js:
2149 (WebInspector.ColorPicker.prototype._updateSliders):
2151 2014-02-18 Joseph Pecoraro <pecoraro@apple.com>
2153 Web Inspector: shift-clicking #fff swatch results in bad rgb value
2154 https://bugs.webkit.org/show_bug.cgi?id=128954
2156 Reviewed by Daniel Bates.
2158 parseInt("FF", 16) is already 255. Do not multiply the result by 255.
2160 * UserInterface/Color.js:
2161 (WebInspector.Color.fromString):
2163 2014-02-18 Antoine Quint <graouts@webkit.org>
2165 Web Inspector: color picker sliders sometime look wrong on Retina display
2166 https://bugs.webkit.org/show_bug.cgi?id=128963
2168 Reviewed by Timothy Hatcher.
2170 Round the values used to position and size popovers in order to ensure that their content don't suffer
2171 from poor pixel alignment on Retina displays.
2173 * UserInterface/Popover.js:
2174 (WebInspector.Popover.prototype.set frame):
2176 2014-02-17 Antoine Quint <graouts@webkit.org>
2178 Web Inspector: CSS selectors containing a color name shouldn't be considered for color editing
2179 https://bugs.webkit.org/show_bug.cgi?id=128909
2181 Reviewed by Joseph Pecoraro.
2183 Disregard any text that might be contained within a CSS selector.
2185 * UserInterface/CodeMirrorAdditions.js:
2187 2014-02-15 Chris J. Shull <chrisjshull@gmail.com>
2189 Web Inspector: scope chain details sidebar doesn't update values modified via console
2190 https://bugs.webkit.org/show_bug.cgi?id=126855
2192 Reviewed by Timothy Hatcher.
2194 Add a RuntimeManager event that the scope chain details sidebar can
2195 listen to to trigger refresh.
2197 Testing on this is blocked by http://webkit.org/b/128724
2198 (Web Inspector: Issue testing breakpoints).
2200 * UserInterface/RuntimeManager.js:
2201 (WebInspector.RuntimeManager.prototype.evalCallback):
2202 (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2203 * UserInterface/ScopeChainDetailsSidebarPanel.js:
2204 (WebInspector.ScopeChainDetailsSidebarPanel):
2206 2014-02-14 Antoine Quint <graouts@webkit.org>
2208 Web Inspector: color wheel should support Retina displays
2209 https://bugs.webkit.org/show_bug.cgi?id=124355
2211 Reviewed by Timothy Hatcher.
2213 Take into account the devicePixelRatio in order to draw the color wheel
2214 with as many colors as we can draw with the current DPI and to correctly
2215 convert from page coordinates to canvas coordinates when dealing with
2218 * UserInterface/ColorWheel.js:
2219 (WebInspector.ColorWheel.prototype.set dimension):
2220 (WebInspector.ColorWheel.prototype.get tintedColor):
2221 (WebInspector.ColorWheel.prototype.get rawColor):
2222 (WebInspector.ColorWheel.prototype._drawRawCanvas):
2223 (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
2224 (WebInspector.ColorWheel.prototype._drawTintedCanvas):
2225 (WebInspector.ColorWheel.prototype._draw):
2227 2014-02-13 Brian Burg <bburg@apple.com>
2229 Web Inspector: DataGrid should support editing tables with arbitrary columns
2230 https://bugs.webkit.org/show_bug.cgi?id=128619
2232 Reviewed by Timothy Hatcher.
2234 The data grid editing code should work with any columns, but was previously
2235 hardcoded with the column identifiers used by DOMStorageView. This patch
2236 makes the editing code work with any column identifiers. It also fixes some
2237 bugs in previous/next navigation during data entry.
2239 * UserInterface/DOMStorageContentView.css: Highlight missing keys and values.
2240 (.content-view.dom-storage > .data-grid tr.missing-value td.value-column):
2241 (.content-view.dom-storage > .data-grid:focus tr.selected.missing-value td.value-column):
2243 * UserInterface/DOMStorageContentView.js: Don't blow away the entire table
2244 whenever the backend notifies us of an update to the storage object. This
2245 caused the editing state to be destroyed when values were entered interactively.
2247 (WebInspector.DOMStorageContentView.prototype.reset): Inline the callback
2248 passed to DOMStorageObject.getEntries().
2249 (WebInspector.DOMStorageContentView.prototype.itemsCleared):
2250 (WebInspector.DOMStorageContentView.prototype.itemAdded): Request a sort
2251 of the table rows after backend tells us about item additions or updates.
2253 (WebInspector.DOMStorageContentView.prototype.itemUpdated): Request a sort
2254 of the table rows after backend tells us about item additions or updates.
2256 (WebInspector.DOMStorageContentView.prototype._sortDataGrid): Use DataGrid's
2257 built-in sorting function.
2259 (WebInspector.DOMStorageContentView.prototype._deleteCallback):
2260 (WebInspector.DOMStorageContentView.prototype._editingCallback): Don't force
2261 recreation of the entire table whenever editing finishes. Perform most
2262 of the error checking and editing logic here, including when to insert a
2263 new placeholder row, and when to commit the entered values to DOM storage.
2265 * UserInterface/DOMStorageObject.js: Keep track of the DOM storage entries
2266 in the model so we can detect duplicate entries. Remove unused `id` arguments.
2268 (WebInspector.DOMStorageObject):
2269 (WebInspector.DOMStorageObject.prototype.get entries):
2270 (WebInspector.DOMStorageObject.prototype.itemsCleared):
2271 (WebInspector.DOMStorageObject.prototype.itemRemoved):
2272 (WebInspector.DOMStorageObject.prototype.set this):
2273 (WebInspector.DOMStorageObject.prototype.itemAdded):
2274 (WebInspector.DOMStorageObject.prototype.set var):
2275 (WebInspector.DOMStorageObject.prototype.itemUpdated):
2277 * UserInterface/DataGrid.js:
2279 (WebInspector.DataGrid.createSortableDataGrid): Use the built-in DataGrid
2280 sortNodes() implementation.
2281 (WebInspector.DataGrid.prototype._startEditingNodeAtColumnIndex): Renamed
2282 from _startEditingColumnOfDataGridNode. It's easier to understand the navigation
2283 code when presented in terms of adjusting column indexes rather than identifiers.
2285 (WebInspector.DataGrid.prototype._startEditing):
2286 (WebInspector.DataGrid.prototype.determineNextCell): Added. Decides which
2287 column and row to edit next and whether the table can be sorted before the
2288 next cell edit begins.
2290 (WebInspector.DataGrid.prototype.moveToNextCell): Added. Wrapper method for
2291 the above which handles sorting and beginning the next cell edit.
2293 (WebInspector.DataGrid.prototype._editingCommitted): Use better helper methods.
2294 (WebInspector.DataGrid.prototype._editingCancelled): Add an assert.
2295 (WebInspector.DataGrid.prototype.get sortColumnIdentifier): Shorten.
2296 (WebInspector.DataGrid.prototype.addPlaceholderNode):
2297 (WebInspector.DataGrid.prototype.removeChild):
2298 (WebInspector.DataGrid.prototype.):
2299 (WebInspector.DataGrid.prototype.sortNodes): Remove unecessary copying
2300 of all nodes into a separate array. Defer sorting if the user is in the
2301 middle of editing a cell. Make placeholder nodes always sort to the bottom
2302 regardless of the sort column identifier and sort direction.
2304 (WebInspector.DataGridNode.prototype._attach):
2305 (WebInspector.PlaceholderDataGridNode): Renamed from CreationDataGridNode.
2306 (WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
2308 * UserInterface/StorageManager.js: Don't pass unused id argument.
2309 (WebInspector.StorageManager.prototype.itemRemoved):
2310 (WebInspector.StorageManager.prototype.itemAdded):
2311 (WebInspector.StorageManager.prototype.itemUpdated):
2313 2014-02-13 Brian Burg <bburg@apple.com>
2315 Web Inspector: long script names should be have text-overflow:ellipsis in probe details sidebar
2316 https://bugs.webkit.org/show_bug.cgi?id=128550
2318 Reviewed by Timothy Hatcher.
2320 Make the link element 'display: block', place it after the floated icons,
2321 and set the appropriate CSS overflow properties.
2323 * UserInterface/ProbeDetailsSidebarPanel.css:
2324 (.details-section.probe-set .options > a.go-to-link):
2325 * UserInterface/ProbeSetDetailsSection.js:
2326 (WebInspector.ProbeSetDetailsSection):
2328 2014-02-13 Javier Fernandez <jfernandez@igalia.com>
2330 [CSS Grid Layout] Rename named areas property
2331 https://bugs.webkit.org/show_bug.cgi?id=127990
2333 Reviewed by Sergio Villar Senin.
2335 From Blink r165891 by <rego@igalia.com>
2337 The property 'grid-template' has been renamed to 'grid-template-areas'
2338 in the last two versions of the spec.
2340 * Tools/PrettyPrinting/css.js:
2341 * UserInterface/External/CodeMirror/css.js:
2343 2014-02-11 Brian Burg <bburg@apple.com>
2345 Web Inspector: DOMStorageView should listen for events from DOMStorageObject
2346 https://bugs.webkit.org/show_bug.cgi?id=128620
2348 Reviewed by Timothy Hatcher.
2350 The storage manager used to have a map of DOMStorageViews and delivered events
2351 directly to them. Instead, the DOMStorageObserver should use the manager to
2352 find the appropriate DOMStorageObject and deliver events to it. DOMStorageView
2353 learns about storage updates from DOMStorageObject events.
2355 * UserInterface/DOMStorageContentView.js:
2356 (WebInspector.DOMStorageContentView): Add event listeners.
2357 (WebInspector.DOMStorageContentView.prototype.reset): Renamed from update().
2358 (WebInspector.DOMStorageContentView.prototype.itemsCleared): Take an event argument.
2359 (WebInspector.DOMStorageContentView.prototype.itemRemoved): Take an event argument.
2360 Use for..of when iterating over nodes.
2361 (WebInspector.DOMStorageContentView.prototype.itemAdded): Take an event argument.
2362 Use for..of when iterating over nodes.
2363 (WebInspector.DOMStorageContentView.prototype.itemUpdated): Take an event argument.
2364 Use for..of when iterating over nodes.
2365 * UserInterface/DOMStorageObject.js:
2366 (WebInspector.DOMStorageObject.prototype.removeItem): Moved.
2367 (WebInspector.DOMStorageObject.prototype.setItem): Moved.
2368 (WebInspector.DOMStorageObject.prototype.itemsCleared): Added.
2369 (WebInspector.DOMStorageObject.prototype.itemRemoved): Added.
2370 (WebInspector.DOMStorageObject.prototype.itemAdded): Added.
2371 (WebInspector.DOMStorageObject.prototype.itemUpdated): Added.
2372 * UserInterface/DOMStorageObserver.js: Look up and notify the associated model.
2373 (WebInspector.DOMStorageObserver.prototype.domStorageItemsCleared):
2374 (WebInspector.DOMStorageObserver.prototype.domStorageItemRemoved):
2375 (WebInspector.DOMStorageObserver.prototype.domStorageItemAdded):
2376 (WebInspector.DOMStorageObserver.prototype.domStorageItemUpdated):
2377 * UserInterface/StorageManager.js: Remove view lookup code. Remove
2378 direct calls to DOMStorageViews.
2379 (WebInspector.StorageManager.prototype.itemsCleared):
2380 (WebInspector.StorageManager.prototype.itemRemoved):
2381 (WebInspector.StorageManager.prototype.itemAdded):
2382 (WebInspector.StorageManager.prototype.itemUpdated):
2383 (WebInspector.StorageManager.prototype.domStorageWasUpdated):
2384 (WebInspector.StorageManager.prototype.inspectDOMStorage):
2385 (WebInspector.StorageManager.prototype._domStorageForIdentifier):
2386 (WebInspector.StorageManager.prototype._addDOMStorageIfNeeded):
2387 (WebInspector.StorageManager.prototype._databaseForIdentifier):
2389 2014-02-11 James Craig <jcraig@apple.com>
2391 Web Inspector: AX: Accessibility Node Inspection
2392 https://bugs.webkit.org/show_bug.cgi?id=127447
2394 Reviewed by Timothy Hatcher.
2396 New Accessibility section in WebInspector Node Inspector.
2397 Version 1.0 only shows computed role. Computed label should come soon.
2399 Removed CSS fixed table layout b/c CSS bug: http://webkit.org/b/128294
2401 * Localizations/en.lproj/localizedStrings.js:
2402 * UserInterface/DOMNode.js:
2403 * UserInterface/DOMNodeDetailsSidebarPanel.js:
2404 * UserInterface/DetailsSection.css:
2405 * UserInterface/InspectorWebBackendCommands.js:
2407 2014-02-10 Joseph Pecoraro <pecoraro@apple.com>
2409 Web Inspector: Update License copyrights in minified JavaScript
2410 https://bugs.webkit.org/show_bug.cgi?id=128547
2412 Reviewed by Timothy Hatcher.
2414 * Scripts/copy-user-interface-resources.sh:
2416 2014-02-07 Brian Burg <bburg@apple.com>
2418 Web Inspector: show probe sets for script content views in the details sidebar
2419 https://bugs.webkit.org/show_bug.cgi?id=128333
2421 Reviewed by Timothy Hatcher.
2423 This patch adds a new details sidebar for showing the probes associated with any
2424 breakpoint in the currently visible source file. Each probe set (corresponding to
2425 multiple actions of single breakpoint) gets its own ProbeSetDetailsSection. The
2426 section contains a custom DataGrid subclass to display probe data, and some icons
2427 for clearing samples, deleting the probe, and adding a new probe expression.
2429 The table containing probe data keeps its columns in sync with the probe set's
2430 probe expressions. To support this, DataGrid has been further refactored to support
2431 removing columns, and inserting columns (rather than only appending). With this
2432 capability, probe columns are removed and re-inserted when the expression changes.
2434 The availability of the probe details sidebar is controlled by providing the
2435 probe sets matching the script content view's resource URL as supplemental
2436 represented objects.
2438 Lastly, added the utility EventListenerSet class. This holds a set of event listeners
2439 that should be added and removed together, and takes care of binding `thisObject`
2440 according to whether the event emitter is a `Node` or `WebInspector.Object`.
2442 * Localizations/en.lproj/localizedStrings.js:
2443 * UserInterface/BreakpointActionView.js:
2444 (WebInspector.BreakpointActionView):
2445 (WebInspector.BreakpointActionView.prototype._removeAction): Renamed from removeButtonClicked.
2446 (WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Change the behavior
2447 of CodeMirror-backed editors for probe and evaluate expression actions. If the expression
2448 consists entirely of trimmable whitespace, then delete the action rather than saving it.
2450 * UserInterface/DataGrid.js:
2451 (WebInspector.DataGrid): Copy over the column data into a map inside insertColumn() instead.
2452 (WebInspector.DataGrid.prototype.insertColumn): Renamed from addColumn. It now takes an
2453 optional `insertionIndex` argument and splices the column before the element at that index.
2454 Also, convert code to use EventListenerSet for adding/removing per-column event listeners.
2456 (WebInspector.DataGrid.prototype.removeColumn): Added. It splices the column out.
2457 (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle): Whitespace.
2458 * UserInterface/EventListenerSet.js: Added.
2459 (WebInspector.EventListenerSet):
2460 (WebInspector.EventListenerSet.prototype.register):
2461 (WebInspector.EventListenerSet.prototype.unregister):
2462 (WebInspector.EventListenerSet.prototype.install):
2463 (WebInspector.EventListenerSet.prototype.uninstall):
2464 * UserInterface/Images/NavigationItemProbes.pdf: Added.
2465 * UserInterface/LayerTreeDataGrid.js:
2466 (WebInspector.LayerTreeDataGrid.prototype._updateChildren): Fix a missing column.get().
2467 * UserInterface/Main.html: Add new JavaScript and CSS files.
2468 * UserInterface/Main.js:
2469 (WebInspector.contentLoaded): Add the probe details sidebar.
2470 * UserInterface/ProbeDetailsSidebarPanel.css: Added.
2471 (.sidebar > .panel.probes > .navigation-bar):
2472 (.sidebar > .panel.probes > .content):
2473 (.details-section.probe-set .options > .probe-add):
2474 (.details-section.probe-set .options > .probe-clear-samples):
2475 (.details-section.probe-set .options > .probe-remove):
2476 (.details-section.probe-set .options > input):
2477 (.panel.probes ::-webkit-scrollbar):
2478 (.panel.probes ::-webkit-scrollbar-track):
2479 (.panel.probes ::-webkit-scrollbar-thumb):
2480 (.panel.probes ::-webkit-scrollbar-corner):
2481 (.popover .probe-popover):
2482 (.popover .probe-popover input):
2483 * UserInterface/ProbeDetailsSidebarPanel.js: Added.
2484 (WebInspector.ProbeDetailsSidebarPanel):
2485 (WebInspector.ProbeDetailsSidebarPanel.prototype.get inspectedProbeSets):
2486 (WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
2487 * UserInterface/ProbeManager.js: Remove unused `probeSetForBreakpoint` function.
2488 * UserInterface/ProbeSet.js: Fix erroneous uses of `probe.identifier` instead of `probe.id`.
2489 (WebInspector.ProbeSet.prototype.removeProbe):
2490 (WebInspector.ProbeSet.prototype._sampleCollected):
2491 * UserInterface/ProbeSetDataGrid.css: Added.
2492 (.details-section.probe-set .data-grid .data-container tr.past-value td):
2493 (.details-section.probe-set .data-grid > .data-container td.unknown-value):
2494 (.details-section.probe-set .data-grid .data-container tr.revealed.highlighted):
2495 (@-webkit-keyframes blink-frame-highlight):
2497 (.details-section.probe-set .data-grid .data-container tr.separator):
2498 (.details-section.probe-set .data-grid > .data-container tr.data-updated):
2499 (@-webkit-keyframes blink-probe-frame):
2500 (.details-section.probe-set .data-grid .data-container .selected .section *):
2501 (.details-section.probe-set .data-grid .data-container .selected td.unknown-value):
2502 (.details-section.probe-set .data-grid .data-container .section):
2503 (.details-section.probe-set .data-grid th):
2504 (.details-section.probe-set .data-grid th:not(:last-child)):
2505 (.details-section.probe-set .data-grid td):
2506 * UserInterface/ProbeSetDataGrid.js: Added.
2507 (WebInspector.ProbeSetDataGrid):
2508 (WebInspector.ProbeSetDataGrid.prototype.closed):
2509 (WebInspector.ProbeSetDataGrid.prototype._setupProbe):
2510 (WebInspector.ProbeSetDataGrid.prototype._teardownProbe):
2511 (WebInspector.ProbeSetDataGrid.prototype._setupData):
2512 (WebInspector.ProbeSetDataGrid.prototype._teardownData):
2513 (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.sortFunction):
2514 (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.set node):
2515 (WebInspector.ProbeSetDataGrid.prototype._dataFrameInserted):
2516 (WebInspector.ProbeSetDataGrid.prototype._dataSeparatorInserted):
2517 (WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get var):
2518 * UserInterface/ProbeSetDataGridNode.js: Added.
2519 (WebInspector.ProbeSetDataGridNode):
2520 (WebInspector.ProbeSetDataGridNode.prototype.get element):
2521 (WebInspector.ProbeSetDataGridNode.prototype.get data):
2522 (WebInspector.ProbeSetDataGridNode.prototype.set frame):
2523 (WebInspector.ProbeSetDataGridNode.prototype.get frame):
2524 (WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
2525 (WebInspector.ProbeSetDataGridNode.prototype.updateCellsFromFrame):
2526 (WebInspector.ProbeSetDataGridNode.prototype.updateCellsForSeparator):
2527 * UserInterface/ProbeSetDataTable.js:
2528 (WebInspector.ProbeSetDataTable.prototype.removeProbe): Fix a typo in for..of loop refactor.
2529 * UserInterface/ProbeSetDetailsSection.js: Added.
2530 (WebInspector.ProbeSetDetailsSection):
2531 (WebInspector.ProbeSetDetailsSection.prototype.closed):
2532 (WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink):
2533 (WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
2534 (WebInspector.ProbeSetDetailsSection.prototype._removeButtonClicked):
2535 (WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
2536 * UserInterface/TextResourceContentView.js:
2537 (WebInspector.TextResourceContentView):
2538 (WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
2539 Add probe sets whose breakpoint matches the represented object's URL.
2540 (WebInspector.TextResourceContentView.prototype._probeSetsChanged): Tell listeners
2541 to re-fetch `supplementalRepresentedObjects` when probe sets are added or removed.
2543 2014-02-08 Dan Bernstein <mitz@apple.com>
2545 Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
2546 https://bugs.webkit.org/show_bug.cgi?id=128456
2548 Reviewed by Anders Carlsson.
2550 * UserInterface/CSSKeywordCompletions.js: Removed -webkit-highlight.
2552 2014-02-07 Brian Burg <bburg@apple.com>
2554 Web Inspector: Clean up DataGrid and add table columns incrementally
2555 https://bugs.webkit.org/show_bug.cgi?id=128332
2557 Reviewed by Timothy Hatcher.
2559 Miscellaneous improvements to DataGrid to make it more maintainable.
2560 In particular, it now uses a `Map` to store column settings, and the
2561 construction sequence has been simplified so that it is safe to add
2562 columns at the end of the constructor (or any later time).
2564 DataGrid stores a bunch of settings per-column, but before this was done
2565 by both storing properties on the provided `column` objects as well as
2566 keeping several `columnIdentifier`-keyed maps for properties like `group`
2569 Improve code readability by using for..of loops, destructuring assignment,
2570 `Node.createElement`, and updating variable names. All variables that refer
2571 to DOM nodes now have a `Element` suffix to distinguish them from model objects.
2573 * UserInterface/DataGrid.js:
2575 (WebInpector.DataGrid): Create all DOM elements before populating columns.
2576 Remove redundant objects for storing per-column values. Copy column settings
2577 into a map rather than mutating the passed-in JSON-like settings data structure.
2579 (WebInspector.DataGrid.createSortableDataGrid):
2580 (WebInspector.DataGrid.prototype.get length):
2581 (WebInspector.DataGrid.prototype.updateLayout):
2582 (WebInspector.DataGrid.prototype.get scrollContainer):
2583 (WebInspector.DataGrid.prototype.isScrolledToLastRow):
2584 (WebInspector.DataGrid.prototype.scrollToLastRow):
2585 (WebInspector.DataGrid.prototype._positionResizerElements):
2586 (WebInspector.DataGrid.prototype.addCreationNode):
2587 (WebInspector.DataGrid.prototype.):
2588 (WebInspector.DataGrid.prototype.sortNodes):
2589 (WebInspector.DataGrid.prototype.dataGridNodeFromPoint):
2590 (WebInspector.DataGrid.prototype._clickInHeaderCell):
2591 (WebInspector.DataGrid.prototype.isColumnSortColumn):
2592 (WebInspector.DataGrid.prototype.headerTableHeader):
2593 (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
2594 (WebInspector.DataGrid.prototype._resizerDragging):
2595 (WebInspector.DataGridNode.prototype.createCells):
2596 (WebInspector.DataGridNode.prototype.createCell.get var):
2597 (WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
2598 (WebInspector.DataGridNode.prototype._attach):
2599 * UserInterface/TimelineDataGrid.js:
2600 (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get scopeBar):
2601 (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
2603 2014-02-07 Mihai Tica <mitica@adobe.com>
2605 [CSS Background Blending] Unprefix the -webkit-background-blend-mode property
2607 https://bugs.webkit.org/show_bug.cgi?id=128270
2609 Reviewed by Dean Jackson.
2611 * UserInterface/CSSKeywordCompletions.js: Refactor -webkit-background-blend-mode to background-blend-mode.
2613 2014-02-06 Joseph Pecoraro <pecoraro@apple.com>
2615 Web Inspector: Add Console support to JSContext Inspection
2616 https://bugs.webkit.org/show_bug.cgi?id=127941
2618 Reviewed by Geoffrey Garen.
2620 * UserInterface/InspectorJSBackendCommands.js:
2621 * UserInterface/InspectorWebBackendCommands.js:
2622 ConsoleAgent moved to JavaScript section.
2624 2014-02-06 Andreas Kling <akling@apple.com>
2626 Remove display:run-in support.
2627 <https://webkit.org/b/127874>
2628 <rdar://problem/15926949>
2630 Rubber-stamped by Anders Carlsson.
2632 * UserInterface/CSSKeywordCompletions.js:
2633 * UserInterface/External/CodeMirror/css.js:
2635 2014-02-05 Brian Burg <bburg@apple.com>
2637 Web Inspector: add probe manager and model objects to the frontend
2638 https://bugs.webkit.org/show_bug.cgi?id=127117
2640 Reviewed by Timothy Hatcher.
2642 Add the probe manager, and the following model objects:
2644 - ProbeObject corresponds to a single probe breakpoint action.
2645 - ProbeSetObject contains all ProbeObjects for one Breakpoint.
2646 - ProbeSetDataFrame holds probe samples from multiple
2647 probes fired from the same breakpoint hit/debugger pause.
2648 - ProbeSetDataTable keeps track of multiple such data frames
2649 and manages probe sample lifetimes across page navigations.
2651 The probe manager updates probe model objects whenever breakpoints
2652 are added, removed, or modified.
2654 The inspector frontend now assigns breakpoint action identifiers,
2655 rather than the backend. This lets ProbeObjects keep stable
2656 identifiers that match the probe's samples, even when the underlying
2657 breakpoint is re-added with a different identifier (such as when
2658 editing probe expressions).
2660 * UserInterface/Breakpoint.js:
2661 (WebInspector.Breakpoint.prototype.get probeActions): Added.
2662 (WebInspector.Breakpoint.prototype.createAction):
2663 (WebInspector.Breakpoint.prototype.removeAction):
2664 (WebInspector.Breakpoint.prototype.clearActions): Added.
2665 * UserInterface/BreakpointAction.js:
2666 (WebInspector.BreakpointAction):
2667 (WebInspector.BreakpointAction.prototype.get id):
2668 (WebInspector.BreakpointAction.prototype.get info):
2669 * UserInterface/DebuggerManager.js:
2670 (WebInspector.DebuggerManager.restoreBreakpointsSoon):
2671 (WebInspector.DebuggerManager): Restore saved breakpoints
2672 from cookies on the second run loop, so that all managers will
2673 be able to received breakpoint added events.
2674 (WebInspector.DebuggerManager.prototype.addBreakpoint):
2675 (WebInspector.DebuggerManager.prototype.removeBreakpoint):
2676 (WebInspector.DebuggerManager.prototype.get nextBreakpointActionIdentifier):
2677 The debugger manager assigns unique breakpoint action identifiers with this getter.
2679 (WebInspector.DebuggerManager.prototype._debuggerBreakpointActionType):
2680 (WebInspector.DebuggerManager.prototype.didSetBreakpoint):
2681 (WebInspector.DebuggerManager.prototype._setBreakpoint):
2682 (WebInspector.DebuggerManager.prototype.didRemoveBreakpoint):
2683 (WebInspector.DebuggerManager.prototype._removeBreakpoint):
2684 * UserInterface/DebuggerObserver.js:
2685 (WebInspector.DebuggerObserver.prototype.didSampleProbe):
2686 * UserInterface/InspectorJSBackendCommands.js:
2687 * UserInterface/Main.html:
2688 * UserInterface/Main.js:
2689 (WebInspector.loaded):
2690 * UserInterface/Probe.js: Added.
2691 (WebInspector.ProbeSample):
2692 (WebInspector.Probe):
2693 (WebInspector.Probe.prototype.get id):
2694 (WebInspector.Probe.prototype.get breakpoint):
2695 (WebInspector.Probe.prototype.get expression):
2696 (WebInspector.Probe.prototype.set expression):
2697 (WebInspector.Probe.prototype.get samples):
2698 (WebInspector.Probe.prototype.clearSamples):
2699 (WebInspector.Probe.prototype.addSample):
2700 * UserInterface/ProbeManager.js: Added.
2701 (WebInspector.ProbeManager):
2702 (WebInspector.ProbeManager.prototype.probeSetForBreakpoint):
2703 (WebInspector.ProbeManager.prototype._breakpointRemoved):
2704 (WebInspector.ProbeManager.prototype._breakpointActionsChanged.get var):
2705 (WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
2706 (WebInspector.ProbeManager.prototype._breakpointActionsChanged):
2707 * UserInterface/ProbeSet.js: Added.
2708 (WebInspector.ProbeSet):
2709 (WebInspector.ProbeSet.prototype.get breakpoint):
2710 (WebInspector.ProbeSet.prototype.get probes):
2711 (WebInspector.ProbeSet.prototype.get dataTable):
2712 (WebInspector.ProbeSet.prototype.clear):
2713 (WebInspector.ProbeSet.prototype.clearSamples):
2714 (WebInspector.ProbeSet.prototype.createProbe):
2715 (WebInspector.ProbeSet.prototype.removeProbe):
2716 (WebInspector.ProbeSet.prototype.willRemove):
2717 (WebInspector.ProbeSet.prototype._mainResourceChanged):
2718 (WebInspector.ProbeSet.prototype._createDataTable):
2719 (WebInspector.ProbeSet.prototype._sampleCollected):
2720 (WebInspector.ProbeSet.prototype._breakpointResolvedStateDidChange):
2721 * UserInterface/ProbeSetDataFrame.js: Added.
2722 (WebInspector.ProbeSetDataFrame):
2723 (WebInspector.ProbeSetDataFrame.compare):
2724 (WebInspector.ProbeSetDataFrame.prototype.get key):
2725 (WebInspector.ProbeSetDataFrame.prototype.get count):
2726 (WebInspector.ProbeSetDataFrame.prototype.get index):
2727 (WebInspector.ProbeSetDataFrame.prototype.get isSeparator):
2728 (WebInspector.ProbeSetDataFrame.prototype.set isSeparator):
2729 (WebInspector.ProbeSetDataFrame.prototype.addSampleForProbe):
2730 (WebInspector.ProbeSetDataFrame.prototype.missingKeys):
2731 (WebInspector.ProbeSetDataFrame.prototype.isComplete):
2732 (WebInspector.ProbeSetDataFrame.prototype.fillMissingValues):
2733 * UserInterface/ProbeSetDataTable.js: Added.
2734 (WebInspector.ProbeSetDataTable):
2735 (WebInspector.ProbeSetDataTable.prototype.get frames):
2736 (WebInspector.ProbeSetDataTable.prototype.get separators):
2737 (WebInspector.ProbeSetDataTable.prototype.willRemove):
2738 (WebInspector.ProbeSetDataTable.prototype.mainResourceChanged):
2739 (WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
2740 (WebInspector.ProbeSetDataTable.prototype.addProbe):
2741 (WebInspector.ProbeSetDataTable.prototype.removeProbe):
2742 (WebInspector.ProbeSetDataTable.prototype.createFrame):
2743 (WebInspector.ProbeSetDataTable.prototype.addFrame):
2744 (WebInspector.ProbeSetDataTable.prototype.addSeparator):
2746 2014-02-05 Zan Dobersek <zdobersek@igalia.com>
2748 [GTK] Avoid no-op regenerations of GResourceBundle.xml, GResourceBundle.c
2749 https://bugs.webkit.org/show_bug.cgi?id=128192
2751 Reviewed by Carlos Garcia Campos.
2753 When doing incremental builds, GResourceBundle.xml and GResourceBundle.c can be
2754 generated when the dependencies are newer than the products, but the generation
2755 doesn't necessarily produce a new or different product. This results in constant
2756 regenerations for these two build targets. Touch the products at the end of
2757 generation to avoid this looping.
2761 2014-01-30 Timothy Hatcher <timothy@apple.com>
2763 Show profile data in the discrete Scripts timeline view.
2765 https://bugs.webkit.org/show_bug.cgi?id=127900
2767 Reviewed by Joseph Pecoraro.
2769 * Localizations/en.lproj/localizedStrings.js:
2770 * UserInterface/DataGrid.js:
2771 (WebInspector.DataGridNode.prototype.refreshIfNeeded):
2772 (WebInspector.DataGridNode.prototype.needsRefresh):
2773 (WebInspector.DataGridNode.prototype.set data):
2774 (WebInspector.DataGridNode.prototype.set revealed):
2775 (WebInspector.DataGridNode.prototype.refresh):
2776 * UserInterface/LayoutTimelineDataGrid.js:
2777 (WebInspector.LayoutTimelineDataGrid):
2778 * UserInterface/LayoutTimelineDataGridNode.js:
2779 (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
2780 * UserInterface/Main.html:
2781 * UserInterface/NavigationSidebarPanel.js:
2782 (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2783 (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
2784 (WebInspector.NavigationSidebarPanel.prototype._generateStyleRulesIfNeeded):
2785 * UserInterface/ProfileNodeDataGridNode.js: Added.
2786 (WebInspector.ProfileNodeDataGridNode):
2787 (WebInspector.ProfileNodeDataGridNode.prototype.get profileNode):
2788 (WebInspector.ProfileNodeDataGridNode.prototype.get records):
2789 (WebInspector.ProfileNodeDataGridNode.prototype.get baseStartTime):
2790 (WebInspector.ProfileNodeDataGridNode.prototype.get rangeStartTime):
2791 (WebInspector.ProfileNodeDataGridNode.prototype.set rangeStartTime):
2792 (WebInspector.ProfileNodeDataGridNode.prototype.get rangeEndTime):
2793 (WebInspector.ProfileNodeDataGridNode.prototype.set rangeEndTime):
2794 (WebInspector.ProfileNodeDataGridNode.prototype.get data):
2795 (WebInspector.ProfileNodeDataGridNode.prototype.refresh):
2796 (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
2797 * UserInterface/ProfileNodeTreeElement.js: Added.
2798 (WebInspector.ProfileNodeTreeElement):
2799 (WebInspector.ProfileNodeTreeElement.prototype.get profileNode):
2800 (WebInspector.ProfileNodeTreeElement.prototype.get filterableData):
2801 (WebInspector.ProfileNodeTreeElement.prototype.onattach):
2802 (WebInspector.ProfileNodeTreeElement.prototype.onpopulate):
2803 * UserInterface/ResourceTimelineDataGridNode.js:
2804 (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
2805 * UserInterface/ScriptTimelineDataGrid.js:
2806 (WebInspector.ScriptTimelineDataGrid):
2807 * UserInterface/ScriptTimelineDataGridNode.js:
2808 (WebInspector.ScriptTimelineDataGridNode):
2809 (WebInspector.ScriptTimelineDataGridNode.prototype.get baseStartTime):
2810 (WebInspector.ScriptTimelineDataGridNode.prototype.get rangeStartTime):
2811 (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeStartTime):
2812 (WebInspector.ScriptTimelineDataGridNode.prototype.get rangeEndTime):
2813 (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeEndTime):
2814 (WebInspector.ScriptTimelineDataGridNode.prototype.get data):
2815 (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
2816 * UserInterface/ScriptTimelineRecord.js:
2817 (WebInspector.ScriptTimelineRecord):
2818 (WebInspector.ScriptTimelineRecord.prototype.get profile):
2819 * UserInterface/ScriptTimelineView.js:
2820 (WebInspector.ScriptTimelineView.prototype.updateLayout):
2821 (WebInspector.ScriptTimelineView.prototype.get selectionPathComponents):
2822 (WebInspector.ScriptTimelineView.prototype.dataGridNodeForTreeElement):
2823 (WebInspector.ScriptTimelineView.prototype.populateProfileNodeTreeElement):
2824 (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
2825 (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
2826 * UserInterface/TimelineContentView.js:
2827 (WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
2828 * UserInterface/TimelineDataGrid.js:
2829 (WebInspector.TimelineDataGrid):
2830 (WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
2831 (WebInspector.TimelineDataGrid.prototype._sort):
2832 * UserInterface/TimelineDataGridNode.js:
2833 (WebInspector.TimelineDataGridNode):
2834 (WebInspector.TimelineDataGridNode.prototype.collapse):
2835 (WebInspector.TimelineDataGridNode.prototype.expand):
2836 * UserInterface/TimelineRecord.js:
2837 * UserInterface/TreeOutlineDataGridSynchronizer.js:
2838 (WebInspector.TreeOutlineDataGridSynchronizer.prototype.get delegate):
2839 (WebInspector.TreeOutlineDataGridSynchronizer.prototype.dataGridNodeForTreeElement):
2840 (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
2842 2014-01-30 Timothy Hatcher <timothy@apple.com>
2844 Add the model objects for the new Web Inspector profile data.
2846 https://bugs.webkit.org/show_bug.cgi?id=127899
2848 Reviewed by Joseph Pecoraro.
2850 * UserInterface/Main.html:
2851 * UserInterface/Profile.js: Added.
2852 (WebInspector.Profile):
2853 (WebInspector.Profile.prototype.get idleTime):
2854 (WebInspector.Profile.prototype.get topDownRootNodes):
2855 (WebInspector.Profile.prototype.get bottomUpRootNodes):
2856 * UserInterface/ProfileNode.js: Added.
2857 (WebInspector.ProfileNode):
2858 (WebInspector.ProfileNode.prototype.get id):
2859 (WebInspector.ProfileNode.prototype.get type):
2860 (WebInspector.ProfileNode.prototype.get functionName):
2861 (WebInspector.ProfileNode.prototype.get sourceCodeLocation):
2862 (WebInspector.ProfileNode.prototype.get startTime):
2863 (WebInspector.ProfileNode.prototype.get endTime):
2864 (WebInspector.ProfileNode.prototype.get selfTime):
2865 (WebInspector.ProfileNode.prototype.get totalTime):
2866 (WebInspector.ProfileNode.prototype.get calls):
2867 (WebInspector.ProfileNode.prototype.get previousSibling):
2868 (WebInspector.ProfileNode.prototype.get nextSibling):
2869 (WebInspector.ProfileNode.prototype.get parentNode):
2870 (WebInspector.ProfileNode.prototype.get childNodes):
2871 (WebInspector.ProfileNode.prototype.totalTimeInRange):
2872 (WebInspector.ProfileNode.prototype.computeCallInfoForTimeRange):
2873 (WebInspector.ProfileNode.prototype.traverseNextProfileNode):
2874 (WebInspector.ProfileNode.prototype.saveIdentityToCookie):
2875 (WebInspector.ProfileNode.prototype.establishRelationships):
2876 * UserInterface/ProfileNodeCall.js: Added.
2877 (WebInspector.ProfileNodeCall):
2878 (WebInspector.ProfileNodeCall.prototype.get startTime):
2879 (WebInspector.ProfileNodeCall.prototype.get totalTime):
2880 (WebInspector.ProfileNodeCall.prototype.get endTime):
2881 (WebInspector.ProfileNodeCall.prototype.establishRelationships):
2882 * UserInterface/TimelineManager.js:
2883 (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
2884 (WebInspector.TimelineManager.prototype.eventRecorded):
2885 (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload):
2886 (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload):
2887 (WebInspector.TimelineManager.prototype._profileFromPayload):
2889 2014-01-26 Timothy Hatcher <timothy@apple.com>
2891 Prefix existing Web Inspector profiler classes with "Legacy".
2893 Remove a dependency on ProfileView for showTimeAsPercent and selection as a drive-by.
2894 Also remove the unfinished Canvas profiler classes, they will need redone for the Timeline view.
2896 https://bugs.webkit.org/show_bug.cgi?id=127655
2898 Reviewed by Joseph Pecoraro.
2900 * UserInterface/CanvasDataGridNode.js: Removed.
2901 * UserInterface/CanvasObserver.js: Removed.
2902 * UserInterface/CanvasProfileObject.js: Removed.
2903 * UserInterface/CanvasProfileType.js: Removed.
2904 * UserInterface/CanvasProfileView.js: Removed.
2905 * UserInterface/ConsoleObserver.js:
2906 (WebInspector.ConsoleObserver.prototype.messageAdded):
2907 * UserInterface/ContentView.js:
2908 (WebInspector.ContentView):
2909 (WebInspector.ContentView.isViewable):
2910 * UserInterface/InspectorFrontendAPI.js:
2911 (InspectorFrontendAPI.isProfilingJavaScript):
2912 (InspectorFrontendAPI.startProfilingJavaScript):
2913 (InspectorFrontendAPI.stopProfilingJavaScript):
2914 * UserInterface/LegacyBottomUpProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/BottomUpProfileDataGridTree.js.
2915 * UserInterface/LegacyJavaScriptProfileObject.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileObject.js.
2916 * UserInterface/LegacyJavaScriptProfileType.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileType.js.
2917 * UserInterface/LegacyJavaScriptProfileView.css: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileView.css.
2918 * UserInterface/LegacyJavaScriptProfileView.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileView.js.
2919 * UserInterface/LegacyProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileDataGridTree.js.
2920 * UserInterface/LegacyProfileManager.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileManager.js.
2921 * UserInterface/LegacyProfileObject.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileObject.js.
2922 * UserInterface/LegacyProfileType.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileType.js.
2923 * UserInterface/LegacyProfileView.css: Renamed from Source/WebInspectorUI/UserInterface/ProfileView.css.
2924 * UserInterface/LegacyProfileView.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileView.js.
2925 * UserInterface/LegacyProfilerObserver.js: Renamed from Source/WebInspectorUI/UserInterface/ProfilerObserver.js.
2926 * UserInterface/LegacyTopDownProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/TopDownProfileDataGridTree.js.
2927 * UserInterface/Main.html:
2928 * UserInterface/Main.js:
2929 (WebInspector.loaded):
2930 (WebInspector.openURL):
2932 2014-01-30 Diego Pino Garcia <dpino@igalia.com>
2934 Web Inspector: [REGRESSION(r163086)] Missing localized string 'Hide console (%s)'
2935 https://bugs.webkit.org/show_bug.cgi?id=127951
2937 Reviewed by Timothy Hatcher.
2939 * Localizations/en.lproj/localizedStrings.js:
2940 Add 'Hide console (%s)'.
2942 2014-01-30 Diego Pino Garcia <dpino@igalia.com>
2944 Web Inspector: Implement open/close Console window shortcut
2945 https://bugs.webkit.org/show_bug.cgi?id=127896
2947 Reviewed by Timothy Hatcher.
2949 * UserInterface/KeyboardShortcut.js:
2950 (WebInspector.KeyboardShortcut.prototype.get displayName):
2951 Bug: Option symbol should be displayed as Alternative symbol (\u2387)
2952 in non Mac platforms.
2953 * UserInterface/Main.js:
2954 (WebInspector.contentLoaded):
2955 Create keyboard shortcut for toggling console window.
2957 2014-01-29 Joseph Pecoraro <pecoraro@apple.com>
2959 Web Inspector: Play Breakpoint Sound in Frontend
2960 https://bugs.webkit.org/show_bug.cgi?id=127885
2962 Reviewed by Timothy Hatcher.
2964 Beep in the frontend when a "sound" breakpoint action is triggered.
2966 * UserInterface/DebuggerManager.js:
2967 (WebInspector.DebuggerManager.prototype.playBreakpointActionSound):
2968 * UserInterface/DebuggerObserver.js:
2969 (WebInspector.DebuggerObserver.prototype.resumed):
2970 (WebInspector.DebuggerObserver.prototype.playBreakpointActionSound):
2971 * UserInterface/InspectorJSBackendCommands.js:
2973 2014-01-29 Diego Pino Garcia <dpino@igalia.com>
2975 Web Inspector: [REGRESSION(r162931)] Tab navigation broken in DataGrid
2976 https://bugs.webkit.org/show_bug.cgi?id=127816
2978 Reviewed by Timothy Hatcher.
2980 * UserInterface/DataGrid.js:
2981 (WebInspector.DataGrid.prototype.moveToNextIfNeeded):
2982 (WebInspector.DataGrid.prototype._editingCommitted):
2983 Change columnIdentifier values 0 and 1 to strings "0" and "1".
2985 2014-01-28 Joseph Pecoraro <pecoraro@apple.com>
2987 Unreviewed follow-up to r162965. Better coding style.
2989 Timothy Hatcher pointed out a clearer style for classes
2990 on the <body> is to specify body.class. I agree.
2992 * UserInterface/DashboardView.css:
2993 (body.javascript .toolbar .dashboard):
2994 (body.web .toolbar.collapsed .dashboard > .logs):
2995 (body.javascript .toolbar .dashboard > .resourcesCount):
2997 2014-01-28 Joseph Pecoraro <pecoraro@apple.com>
2999 Web Inspector: Tweak UI when debugging a JSContext
3000 https://bugs.webkit.org/show_bug.cgi?id=127799
3002 Reviewed by Timothy Hatcher.
3004 * UserInterface/DashboardView.css:
3005 (.toolbar.javascript .dashboard):
3006 (.toolbar.web.collapsed .dashboard > .logs):
3007 (.toolbar.javascript .dashboard > .resourcesCount):
3008 Adjust collapsed dashboard in web and javascript debugging modes.
3009 JavaScript debugging mode is always treated as collapsed.
3011 * UserInterface/Main.js:
3012 (WebInspector.contentLoaded):
3013 Adjust what is created and shown when in javascript debugging mode.
3015 * UserInterface/NavigationSidebarPanel.css:
3016 (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item.small):
3017 * UserInterface/ResourceSidebarPanel.js:
3018 (WebInspector.ResourceSidebarPanel):
3019 (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
3020 * UserInterface/TimelineSidebarPanel.css:
3021 (.sidebar > .panel.timeline > .status-bar):
3022 (.sidebar > .panel.timeline > .title-bar):
3023 When javascript debugging expect to put things at the root level, so hide
3024 disclosure buttons and adjust the style so resources look nice here.
3026 2014-01-28 Diego Pino Garcia <dpino@igalia.com>
3028 Web Inspector: In a DataGrid, store value of columnIdentifier to DOM node representing a cell
3029 https://bugs.webkit.org/show_bug.cgi?id=127613
3031 Reviewed by Timothy Hatcher.
3033 * UserInterface/DOMStorageContentView.js:
3034 (WebInspector.DOMStorageContentView.prototype._editingCallback):
3035 * UserInterface/DataGrid.js:
3036 (WebInspector.DataGrid):
3037 (WebInspector.DataGrid.prototype._keyDown):
3038 (WebInspector.DataGrid.prototype._contextMenuInDataTable):
3039 (WebInspector.DataGridNode.prototype.createCell):
3041 2014-01-27 Joseph Pecoraro <pecoraro@apple.com>
3043 Web Inspector: Feature Check all Protocol Generated Interfaces to get JSContext Inspection working
3044 https://bugs.webkit.org/show_bug.cgi?id=127712
3046 Reviewed by Timothy Hatcher.
3048 Feature check protocol generated interfaces (e.g. FooAgent and registerFooObserver).
3049 Also drive by handle a possible exception if a SourceCode's URL is null, which is possible.
3051 * UserInterface/ApplicationCacheManager.js:
3052 (WebInspector.ApplicationCacheManager):
3053 (WebInspector.ApplicationCacheManager.prototype.initialize):
3054 * UserInterface/CSSCompletions.js:
3055 (WebInspector.CSSCompletions.requestCSSNameCompletions):
3056 * UserInterface/CSSStyleManager.js:
3057 (WebInspector.CSSStyleManager):
3058 (WebInspector.CSSStyleManager.prototype.canForcePseudoClasses):
3059 * UserInterface/DebuggerManager.js:
3060 * UserInterface/FrameResourceManager.js:
3061 (WebInspector.FrameResourceManager):
3062 (WebInspector.FrameResourceManager.prototype.initialize):
3063 * UserInterface/Main.js:
3064 (WebInspector.loaded):
3065 * UserInterface/ProfileManager.js:
3066 (WebInspector.ProfileManager):
3067 * UserInterface/StorageManager.js:
3068 (WebInspector.StorageManager):
3069 Type check generated interfaces.
3071 (WebInspector.DebuggerManager):
3072 (WebInspector.DebuggerManager.prototype.debuggerDidPause):
3073 Null check a SourceCode URL, which can be null for a Script with no URL.
3075 2014-01-25 Timothy Hatcher <timothy@apple.com>
3077 Remove dead code from the JSC profiler.
3079 https://bugs.webkit.org/show_bug.cgi?id=127643
3081 Reviewed by Mark Lam.
3083 * Versions/Inspector-iOS-7.0.json: Remove visible from CPUProfileNode.
3085 2014-01-25 Joseph Pecoraro <pecoraro@apple.com>
3087 Remove FIXME in CSSKeywordCompletions.js about "inherit" keyword
3088 https://bugs.webkit.org/show_bug.cgi?id=127638
3090 Reviewed by Timothy Hatcher.
3092 * UserInterface/CSSKeywordCompletions.js:
3093 (WebInspector.CSSKeywordCompletions.forProperty):
3094 Replace FIXME with a descriptive comment about why the code is what it is.
3096 2014-01-25 Diego Pino Garcia <dpino@igalia.com>
3098 Web Inspector: Position the completion suggestions popup below if there is room
3099 https://bugs.webkit.org/show_bug.cgi?id=127615
3101 Reviewed by Joseph Pecoraro.
3103 * UserInterface/CompletionSuggestionsView.js:
3104 (WebInspector.CompletionSuggestionsView.prototype.show):
3106 2014-01-23 Timothy Hatcher <timothy@apple.com>
3108 Refactor TimelineRecordBar combining logic into a helper function.
3110 https://bugs.webkit.org/show_bug.cgi?id=127530
3112 Reviewed by Joseph Pecoraro.
3114 * UserInterface/LayoutTimelineOverviewGraph.js:
3115 (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
3116 (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
3117 Use TimelineRecordBar.createCombinedBars.
3119 * UserInterface/NetworkTimelineOverviewGraph.css:
3120 (.timeline-overview-graph.network):
3121 (.timeline-overview-graph.network > .graph-row > .timeline-record-bar):
3122 Cleaned up since we are using TimelineRecordBar.
3124 * UserInterface/NetworkTimelineOverviewGraph.js:
3125 (WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
3126 (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
3127 (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
3128 Use TimelineRecordBar.createCombinedBars.
3130 * UserInterface/ScriptTimelineOverviewGraph.js:
3131 (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
3132 (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
3133 Use TimelineRecordBar.createCombinedBars.
3135 * UserInterface/TimelineDataGridNode.js:
3136 (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
3137 (WebInspector.TimelineDataGridNode.prototype.refreshGraph):
3138 Use TimelineRecordBar.createCombinedBars.
3140 * UserInterface/TimelineRecordBar.css:
3141 (.timeline-record-bar.unfinished > .segment):
3142 (.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3143 (:focus .selected .timeline-record-bar > .segment.inactive):
3144 Improved selected appearance and don't assume .segment.inactive exists.
3146 * UserInterface/TimelineRecordBar.js:
3147 (WebInspector.TimelineRecordBar):
3148 (WebInspector.TimelineRecordBar.createCombinedBars.compareByActiveStartTime): Added.
3149 (WebInspector.TimelineRecordBar.createCombinedBars): Added.
3150 (WebInspector.TimelineRecordBar.prototype.get renderMode): Added.
3151 (WebInspector.TimelineRecordBar.prototype.set renderMode): Added.
3152 (WebInspector.TimelineRecordBar.prototype.set records):
3153 (WebInspector.TimelineRecordBar.prototype.refresh):
3154 Lazily create DOM elements. Support rendering one or both segments. Doing this lets
3155 combined inactive segments sit behind multiple active segments.
3157 2014-01-22 Timothy Hatcher <timothy@apple.com>
3159 Improve collapsing of TimelineDataGridNode graphs up to ancestors.
3161 https://bugs.webkit.org/show_bug.cgi?id=127440
3163 Reviewed by Joseph Pecoraro.
3165 * UserInterface/TimelineDataGridNode.js:
3166 (WebInspector.TimelineDataGridNode.prototype.collapse):
3167 (WebInspector.TimelineDataGridNode.prototype.createCellContent):
3168 (WebInspector.TimelineDataGridNode.prototype.refresh):
3169 (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
3170 Notify the next visible ancestor it needs to refresh. Use needsGraphRefresh so ancestors
3171 are notified instead of directly calling refreshGraph in some places.
3173 2014-01-22 Timothy Hatcher <timothy@apple.com>
3175 Don't include a hidden Timeline selection in the navigation path components.
3177 https://bugs.webkit.org/show_bug.cgi?id=127443
3179 Reviewed by Joseph Pecoraro.
3181 * UserInterface/GeneralTreeElementPathComponent.js:
3182 (WebInspector.GeneralTreeElementPathComponent.prototype.get previousSibling):
3183 (WebInspector.GeneralTreeElementPathComponent.prototype.get nextSibling):
3184 Skip hidden siblings.
3186 * UserInterface/OverviewTimelineView.js:
3187 (WebInspector.OverviewTimelineView.prototype.updateLayout):
3188 (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
3189 Don't include hidden selection and dispatch SelectionPathComponentsDidChange event if hidden changes.
3191 * UserInterface/TimelineContentView.js:
3192 (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
3193 Dispatch SelectionPathComponentsDidChange event if hidden changes on the selected tree element.
3195 * UserInterface/TimelineView.js:
3196 (WebInspector.TimelineView.prototype.get selectionPathComponents):
3197 Don't include hidden selection.
3199 2014-01-22 Timothy Hatcher <timothy@apple.com>
3201 Support collapsing call site records into the resource timeline.
3203 Also fix some filtering and graph issues.
3205 https://bugs.webkit.org/show_bug.cgi?id=127440
3207 Reviewed by Joseph Pecoraro.
3209 * UserInterface/NavigationSidebarPanel.js:
3210 (WebInspector.NavigationSidebarPanel.prototype.updateFilter):
3211 (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
3212 (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
3213 (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
3214 (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
3215 Tweak how filtering happens so custom filters never expand to reveal and auto expanded
3216 tree elements will auto-collapse again later even with custom filters.
3218 * UserInterface/OverviewTimelineView.css:
3219 (.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
3220 (.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
3221 (.timeline-view.overview > .data-grid:focus tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
3222 Add a shadow to provide some negative space between juxtaposed records. Only needed when not expanded.
3224 * UserInterface/OverviewTimelineView.js:
3225 (WebInspector.OverviewTimelineView.prototype.updateLayout):
3226 (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
3227 Update the filter when current time changes and only auto expand the main resource.
3229 * UserInterface/ResourceTimelineDataGridNode.js:
3230 (WebInspector.ResourceTimelineDataGridNode):
3231 (WebInspector.ResourceTimelineDataGridNode.prototype._timelineRecordUpdated):
3232 Don't schedule a refresh of the graph if the record isn't visible.
3234 * UserInterface/SourceCodeTimelineTimelineDataGridNode.js:
3235 (WebInspector.SourceCodeTimelineTimelineDataGridNode):
3236 (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._timelineRecordAdded):
3237 Don't schedule a refresh of the graph if the record isn't visible.
3239 * UserInterface/TimelineContentView.js:
3240 (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
3241 Remove the boolean for updateFilter.
3243 * UserInterface/TimelineDataGrid.js:
3244 (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
3245 (WebInspector.TimelineDataGrid.prototype._sort):
3246 Keep the hidden state in-sync between node and element.
3248 * UserInterface/TimelineDataGridNode.js:
3249 (WebInspector.TimelineDataGridNode.prototype.collapse):
3250 (WebInspector.TimelineDataGridNode.prototype.expand):
3251 (WebInspector.TimelineDataGridNode.prototype.appendChild):
3252 (WebInspector.TimelineDataGridNode.prototype.insertChild):
3253 (WebInspector.TimelineDataGridNode.prototype.removeChild):
3254 (WebInspector.TimelineDataGridNode.prototype.removeChildren):
3255 (WebInspector.TimelineDataGridNode.prototype.removeChildrenRecursive):
3256 (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBarsForRecords):
3257 (WebInspector.TimelineDataGridNode.prototype.refreshGraph.else.collectRecordsByType.get if):
3258 (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
3259 (WebInspector.TimelineDataGridNode.prototype.isRecordVisible):
3260 Support drawing the children records on the parent graph.
3262 * UserInterface/TimelineRecordBar.css:
3263 (.timeline-record-bar.unfinished > .segment):
3264 (:focus .selected .timeline-record-bar > .segment):
3265 (:focus .selected .timeline-record-bar > .segment.inactive):
3266 (:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3267 Tweaked styles to look better when selected.
3269 * UserInterface/TimelineRecordBar.js:
3270 (WebInspector.TimelineRecordBar.recordsCannotBeCombined):
3271 (WebInspector.TimelineRecordBar.prototype.set records):
3272 (WebInspector.TimelineRecordBar.prototype.refresh):
3273 Drive-by fixes for some bug with bars being reused.
3275 2014-01-21 Timothy Hatcher <timothy@apple.com>
3277 Remember the Timeline Overview zoom and selection between sessions.