1 2016-01-20 Saam barati <sbarati@apple.com>
3 Web Inspector: Hook the sampling profiler into the Timelines UI
4 https://bugs.webkit.org/show_bug.cgi?id=152766
5 <rdar://problem/24066360>
7 Reviewed by Joseph Pecoraro.
9 The main change in this patch is to swap in the SamplingProfiler
10 in place of the LegacyProfiler. To do this, we've created a data
11 structure called CallingContextTree which aggregates the SamplingProfiler's
12 data into an easy to manage tree. To see how the data structure works,
13 consider the following program:
15 function bar() { // run code here for a long time. }
16 function baz() { // run code here for a long time. }
17 function foo() { bar(); baz(); }
20 From this program, we will create a tree like this:
30 From this type of tree, we can easily create a CPUProfile payload
31 object. Because the Timelines UI knows how to interact with the
32 CPUProfile object and display it, we currently map the tree to this object
33 to make it trivially easy to display the SamplingProfiler's data. In the future,
34 we may want to find ways to work directly with the CallingContextTree instead
35 of mapping it into another object.
37 * Localizations/en.lproj/localizedStrings.js:
38 * UserInterface/Controllers/TimelineManager.js:
39 * UserInterface/Main.html:
40 * UserInterface/Models/CallingContextTree.js: Added.
41 * UserInterface/Models/ScriptInstrument.js:
42 * UserInterface/Protocol/ScriptProfilerObserver.js:
43 * UserInterface/TestStub.html:
44 * UserInterface/Views/ScriptTimelineView.js:
46 2016-01-19 Joseph Pecoraro <pecoraro@apple.com>
48 Web Inspector: Uncaught exception when logging an Error object
49 https://bugs.webkit.org/show_bug.cgi?id=153258
50 <rdar://problem/24249068>
52 Reviewed by Timothy Hatcher.
54 * UserInterface/Views/ErrorObjectView.js:
55 (WebInspector.ErrorObjectView):
56 Initialize members that are used later for clarity.
58 (WebInspector.ErrorObjectView.prototype.collapse):
59 (WebInspector.ErrorObjectView.prototype.expand):
60 This never has a previewView, remove it.
62 (WebInspector.ErrorObjectView.prototype.appendTitleSuffix):
63 Add the suffix ("= $1") after the description and before the
66 2016-01-19 Nikita Vasilyev <nvasilyev@apple.com>
68 Web Inspector: Subclasses of WebInspector.Object shouldn't overwrite this._listeners
69 https://bugs.webkit.org/show_bug.cgi?id=153268
70 <rdar://problem/24252766>
72 Reviewed by Timothy Hatcher.
74 * UserInterface/Base/Object.js:
75 (WebInspector.Object.prototype.dispatchEventToListeners):
78 * UserInterface/Views/BreakpointTreeElement.js:
79 (WebInspector.BreakpointTreeElement):
80 (WebInspector.BreakpointTreeElement.prototype.onattach):
81 (WebInspector.BreakpointTreeElement.prototype.ondetach):
82 * UserInterface/Views/ProbeSetDataGrid.js:
83 (WebInspector.ProbeSetDataGrid):
84 (WebInspector.ProbeSetDataGrid.prototype.closed):
85 * UserInterface/Views/ProbeSetDetailsSection.js:
86 (WebInspector.ProbeSetDetailsSection):
87 (WebInspector.ProbeSetDetailsSection.prototype.closed):
88 Replace all instances of "this._listeners" with "this._listenerSet".
90 2016-01-19 Timothy Hatcher <timothy@apple.com>
92 Web Inspector: Add protocol version for iOS 9.3
93 https://bugs.webkit.org/show_bug.cgi?id=153256
94 rdar://problem/24247951
96 Reviewed by Joseph Pecoraro.
98 * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: Added.
99 * Versions/Inspector-iOS-9.3.json: Added.
101 2016-01-19 Joseph Pecoraro <pecoraro@apple.com>
103 REGRESSION: Web Inspector: Hovering linkified node references should show node highlight
104 https://bugs.webkit.org/show_bug.cgi?id=153248
105 <rdar://problem/24245518>
107 Reviewed by Timothy Hatcher.
109 * UserInterface/Base/DOMUtilities.js:
110 Show the complete node highlight details (colors and node info).
112 2016-01-19 Nikita Vasilyev <nvasilyev@apple.com>
114 Web Inspector: WebInspector.Object.addEventListener is O(n), make it O(1)
115 https://bugs.webkit.org/show_bug.cgi?id=152422
116 <rdar://problem/24038047>
118 Reviewed by Timothy Hatcher.
120 Slow addEventListener was the main cause of Console sluggishness[1].
123 addEventListener from O(n) to O(1)
124 removeEventListener from O(n) to O(1)
126 Now, addEventListener and removeEventListener take <1ms regardless of the
127 number of listeners attached.
129 removeEventListener(null, null, thisObject), a special case when all events
130 for thisObject are removed, was improved from O(n^2) to O(n).
132 * UserInterface/Base/LinkedList.js: Added.
134 (LinkedList.prototype.clear):
135 (LinkedList.prototype.get last):
136 (LinkedList.prototype.push):
137 (LinkedList.prototype.remove):
138 (LinkedList.prototype.forEach):
139 (LinkedList.prototype.toArray):
140 (LinkedList.prototype.toJSON):
142 LinkedList ensures O(1) time complexity for push and remove operations.
144 * UserInterface/Base/ListMultimap.js: Added.
146 (ListMultimap.prototype.get size):
147 (ListMultimap.prototype.add):
148 (ListMultimap.prototype.delete):
149 (ListMultimap.prototype.deleteAll):
150 (ListMultimap.prototype.has):
151 (ListMultimap.prototype.clear):
152 (ListMultimap.prototype.forEach):
153 (ListMultimap.prototype.toArray):
154 (ListMultimap.prototype.toJSON):
155 ListMultimap unsures O(1) time complexity for add, has and delete operations.
156 ListMultimap preserves insertion order by using a LinkedList.
158 * UserInterface/Base/Object.js:
159 (WebInspector.Object):
160 (WebInspector.Object.addEventListener):
161 (WebInspector.Object.removeEventListener):
162 (WebInspector.Object.hasEventListeners):
163 (WebInspector.Object.retainedObjectsWithPrototype):
164 (WebInspector.Object.prototype.dispatchEventToListeners):
165 Replace this._listeners[eventType] from array of objects to ListMultimap.
167 * UserInterface/Main.html:
168 * UserInterface/Test.html:
169 * UserInterface/TestStub.html:
171 2016-01-19 Matt Baker <mattbaker@apple.com>
173 Web Inspector: cleanup TreeOutline class and separate styles from NavigationSidebarPanel
174 https://bugs.webkit.org/show_bug.cgi?id=153146
175 <rdar://problem/24213071>
177 Reviewed by Timothy Hatcher.
179 This patch consolidates and simplifies the tree outline styles that were previously
180 defined across various classes. A new stylesheet, TreeOutline.css, includes all
181 the styles needed to create a basic TreeOutline.
183 In addition, certain tree features which were previously controlled by manually
184 toggling class names have been promoted to properties of TreeOutline:
185 - compact: tree elements have reduced vertical spacing. Used by object trees.
186 The compact and large settings are mutually exclusive.
187 - large: tree elements (and their icons) are large. Used by TimelinesSidebarPanel.
188 Previously there existed a `small` class name which was enabled in every
189 case except TimelineSidebarPanel's Timelines tree. Since it was the rule rather
190 than the exception the class has been removed and is now the default style.
191 - disclosureButtons: control the appearance of disclosure buttons.
192 - customIndent: control use of generated style rules.
194 * UserInterface/Main.html:
197 * UserInterface/Views/ApplicationCacheFrameTreeElement.js:
198 (WebInspector.ApplicationCacheFrameTreeElement): Deleted.
199 * UserInterface/Views/BreakpointTreeElement.js:
200 (WebInspector.BreakpointTreeElement): Deleted.
201 * UserInterface/Views/CallFrameTreeElement.js:
202 (WebInspector.CallFrameTreeElement): Deleted.
203 * UserInterface/Views/ContentFlowTreeElement.js:
204 (WebInspector.ContentFlowTreeElement): Deleted.
205 Removed call to obsolete TreeOutline.prototype.small setter.
207 * UserInterface/Views/DOMTreeOutline.css:
209 (.tree-outline.dom li.hovered:not(.selected) .selection):
210 (.tree-outline.dom li .selection):
211 (.tree-outline.dom li.selected .selection):
212 (.tree-outline.dom li.elements-drag-over .selection):
213 (.tree-outline.dom:focus li.selected .selection):
214 (.tree-outline.dom li.selected > span::after):
215 (.tree-outline.dom:focus li.selected > span::after):
216 (.tree-outline.dom ol):
217 (.tree-outline.dom ol.children):
218 (.tree-outline.dom ol.children.expanded):
219 (.tree-outline.dom li):
220 (.tree-outline.dom li.pseudo-class-enabled > .selection::before):
221 (.tree-outline.dom.single-node li):
222 (.tree-outline.dom:focus li.selected):
223 (.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection::before):
224 (.tree-outline.dom:focus li.selected *):
225 (.tree-outline.dom li.parent):
226 (.tree-outline.dom li .html-tag.close):
227 (.tree-outline.dom li.parent::before):
228 (.tree-outline.dom:focus li.parent.selected::before):
229 (.tree-outline.dom li.parent.expanded::before):
230 (.tree-outline.dom:focus li.parent.expanded.selected::before):
231 (.tree-outline.dom .html-text-node.large):
232 (.tree-outline.dom .html-pseudo-element):
233 (.tree-outline.dom .html-fragment.shadow):
234 (.showing-find-banner .tree-outline.dom .search-highlight):
235 (.dom-tree-outline): Deleted.
236 (.dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
237 (.dom-tree-outline li .selection): Deleted.
238 (.dom-tree-outline li.selected .selection): Deleted.
239 (.dom-tree-outline li.elements-drag-over .selection): Deleted.
240 (.dom-tree-outline:focus li.selected .selection): Deleted.
241 (.dom-tree-outline li.selected > span::after): Deleted.
242 (.dom-tree-outline:focus li.selected > span::after): Deleted.
243 (.dom-tree-outline ol): Deleted.
244 (.dom-tree-outline ol.children): Deleted.
245 (.dom-tree-outline ol.children.expanded): Deleted.
246 (.dom-tree-outline li): Deleted.
247 (.dom-tree-outline li.pseudo-class-enabled > .selection::before): Deleted.
248 (.dom-tree-outline.single-node li): Deleted.
249 (.dom-tree-outline:focus li.selected): Deleted.
250 (.dom-tree-outline:focus li.selected.pseudo-class-enabled > .selection::before): Deleted.
251 (.dom-tree-outline:focus li.selected *): Deleted.
252 (.dom-tree-outline li.parent): Deleted.
253 (.dom-tree-outline li .html-tag.close): Deleted.
254 (.dom-tree-outline li.parent::before): Deleted.
255 (.dom-tree-outline:focus li.parent.selected::before): Deleted.
256 (.dom-tree-outline li.parent.expanded::before): Deleted.
257 (.dom-tree-outline:focus li.parent.expanded.selected::before): Deleted.
258 (.dom-tree-outline .html-text-node.large): Deleted.
259 (.dom-tree-outline .html-pseudo-element): Deleted.
260 (.dom-tree-outline .html-fragment.shadow): Deleted.
261 (.showing-find-banner .dom-tree-outline .search-highlight): Deleted.
262 Updated selectors with new tree outline class names.
264 * UserInterface/Views/DOMTreeOutline.js:
265 (WebInspector.DOMTreeOutline):
266 Use default TreeOutline DOM element, and simplify element class name.
268 * UserInterface/Views/DatabaseTableTreeElement.js:
269 (WebInspector.DatabaseTableTreeElement): Deleted.
270 * UserInterface/Views/DatabaseTreeElement.js:
271 (WebInspector.DatabaseTreeElement): Deleted.
272 Removed call to obsolete TreeOutline.prototype.small setter.
274 * UserInterface/Views/ErrorObjectView.css:
275 (.error-object:not(.expanded) .tree-outline):
276 (.error-object .tree-outline):
277 (.error-object:not(.expanded) .error-object-outline): Deleted.
278 (.error-object-outline): Deleted.
279 Updated selectors with new tree outline class names.
281 * UserInterface/Views/ErrorObjectView.js:
282 (WebInspector.ErrorObjectView): Deleted.
283 Removed unused tree outline class name.
285 * UserInterface/Views/FolderTreeElement.js:
286 (WebInspector.FolderTreeElement): Deleted.
287 Removed call to obsolete TreeOutline.prototype.small setter.
289 * UserInterface/Views/FormattedValue.css:
290 (.formatted-node > .tree-outline.dom):
291 (.formatted-node > .tree-outline.dom ol):
292 (.formatted-node > .tree-outline.dom li):
293 (.formatted-node > .tree-outline.dom li.hovered:not(.selected) .selection):
294 (.formatted-node > .dom-tree-outline): Deleted.
295 (.formatted-node > .dom-tree-outline ol): Deleted.
296 (.formatted-node > .dom-tree-outline li): Deleted.
297 (.formatted-node > .dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
298 Updated selectors with new tree outline class names.
300 * UserInterface/Views/GeneralTreeElement.js:
301 (WebInspector.GeneralTreeElement.prototype._updateTitleTooltip):
302 (WebInspector.GeneralTreeElement.prototype.get small): Deleted.
303 (WebInspector.GeneralTreeElement.prototype.set small): Deleted.
304 (WebInspector.GeneralTreeElement.prototype.get twoLine): Deleted.
305 (WebInspector.GeneralTreeElement.prototype.set twoLine): Deleted.
306 Removed properties `small` and `twoLine`. The first is no longer needed as
307 it is now the default tree element style. The second was not being used.
309 * UserInterface/Views/IndexedDatabaseObjectStoreIndexTreeElement.js:
310 (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement): Deleted.
311 * UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
312 (WebInspector.IndexedDatabaseObjectStoreTreeElement): Deleted.
313 * UserInterface/Views/IndexedDatabaseTreeElement.js:
314 (WebInspector.IndexedDatabaseTreeElement): Deleted.
315 Removed call to obsolete TreeOutline.prototype.small setter.
317 * UserInterface/Views/IssueTreeElement.css:
318 (.navigation-sidebar-panel-content-tree-outline .item.small.issue .icon): Deleted.
321 * UserInterface/Views/IssueTreeElement.js:
322 (WebInspector.IssueTreeElement): Deleted.
323 Removed call to obsolete TreeOutline.prototype.small setter.
325 * UserInterface/Views/LayoutTimelineView.css:
326 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.layout .item .subtitle):
327 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
328 Updated selectors with new tree outline class names.
330 * UserInterface/Views/LogTreeElement.js:
331 (WebInspector.LogTreeElement): Deleted.
332 Removed call to obsolete TreeOutline.prototype.small setter.
334 * UserInterface/Views/NavigationSidebarPanel.css:
335 (.navigation-sidebar-panel-content-tree-outline .children): Deleted.
336 (.navigation-sidebar-panel-content-tree-outline .children.expanded): Deleted.
337 (.navigation-sidebar-panel-content-tree-outline .item): Deleted.
338 (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons > .children): Deleted.
339 (.navigation-sidebar-panel-content-tree-outline > .children.hide-disclosure-buttons > .children): Deleted.
340 (.navigation-sidebar-panel-content-tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) .icon): Deleted.
341 (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item.small): Deleted.
342 (.navigation-sidebar-panel-content-tree-outline .item .disclosure-button): Deleted.
343 (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item .disclosure-button): Deleted.
344 (.navigation-sidebar-panel-content-tree-outline .item.parent .disclosure-button): Deleted.
345 (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): Deleted.
346 (.navigation-sidebar-panel-content-tree-outline .item.expanded .disclosure-button): Deleted.
347 (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): Deleted.
348 (.navigation-sidebar-panel-content-tree-outline .item .icon): Deleted.
349 (.navigation-sidebar-panel-content-tree-outline .item .status): Deleted.
350 (.navigation-sidebar-panel-content-tree-outline .item .status:empty): Deleted.
351 (.navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
352 (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected): Deleted.
353 (body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
354 (.navigation-sidebar-panel-content-tree-outline .item .titles): Deleted.
355 (.navigation-sidebar-panel-content-tree-outline .item .highlighted): Deleted.
356 (.navigation-sidebar-panel-content-tree-outline .item .titles.no-subtitle): Deleted.
357 (.navigation-sidebar-panel-content-tree-outline .item .title::after): Deleted.
358 (.navigation-sidebar-panel-content-tree-outline .item .subtitle): Deleted.
359 (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): Deleted.
360 (.navigation-sidebar-panel-content-tree-outline .item .subtitle:empty): Deleted.
361 (.navigation-sidebar-panel-content-tree-outline .item.small): Deleted.
362 (.navigation-sidebar-panel-content-tree-outline .item.small.two-line): Deleted.
363 (.navigation-sidebar-panel-content-tree-outline .item.small .icon): Deleted.
364 (.navigation-sidebar-panel-content-tree-outline .item.small .status): Deleted.
365 (.navigation-sidebar-panel-content-tree-outline .item.small .status .indeterminate-progress-spinner): Deleted.
366 (.navigation-sidebar-panel-content-tree-outline .item.small .titles): Deleted.
367 (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .status): Deleted.
368 (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .titles): Deleted.
369 (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .titles.no-subtitle): Deleted.
370 (.navigation-sidebar-panel-content-tree-outline .item.small .subtitle): Deleted.
371 (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .icon): Deleted.
372 (.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .title::after): Deleted.
373 (.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .subtitle::before): Deleted.
374 Generic tree outline styles removed, cleaned up, and relocated to TreeOutline.css.
376 * UserInterface/Views/NavigationSidebarPanel.js:
377 Removed static property HideDisclosureButtonsStyleClassName, which is now
378 encapsulated by TreeOutline.
379 (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
380 Use default TreeOutline DOM element instead of creating it.
381 (WebInspector.NavigationSidebarPanel): Deleted.
382 Remove call to generate style rules.
383 (WebInspector.NavigationSidebarPanel.prototype._generateStyleRulesIfNeeded): Deleted.
384 Moved to TreeOutline.js.
386 * UserInterface/Views/NetworkSidebarPanel.css:
387 (.sidebar > .panel.navigation.network.network-grid-content-view-showing .tree-outline.network-grid .item .subtitle):
388 (.sidebar > .panel.navigation.network > .content > .tree-outline):
389 (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .tree-outline):
390 (.sidebar > .panel.navigation.network.network-grid-content-view-showing .navigation-sidebar-panel-content-tree-outline.network-grid .item .subtitle): Deleted.
391 (.sidebar > .panel.navigation.network > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
392 (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
393 Updated selectors with new tree outline class names.
395 * UserInterface/Views/NetworkSidebarPanel.js:
396 (WebInspector.NetworkSidebarPanel):
397 Disable tree outline disclosure buttons.
399 * UserInterface/Views/NetworkTimelineView.css:
400 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.network .item .subtitle):
401 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
402 Updated selectors with new tree outline class names.
404 * UserInterface/Views/NetworkTimelineView.js:
405 (WebInspector.NetworkTimelineView):
406 Disable tree outline disclosure buttons.
408 * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
409 (.object-tree-array-index .index-value .object-tree .tree-outline.object):
410 (.object-tree-array-index .index-value .formatted-node .tree-outline.dom):
411 (.object-tree-array-index .index-value .object-tree .object-tree-outline): Deleted.
412 (.object-tree-array-index .index-value .formatted-node .dom-tree-outline): Deleted.
413 Updated selectors with new tree outline class names.
415 * UserInterface/Views/ObjectTreeBaseTreeElement.js:
416 (WebInspector.ObjectTreeBaseTreeElement): Deleted.
417 Removed call to obsolete TreeOutline.prototype.small setter.
419 * UserInterface/Views/ObjectTreePropertyTreeElement.css:
420 (.tree-outline .item.object-tree-property):
421 (.item.object-tree-property.prototype-property):
422 (.item.object-tree-property.prototype-property + ol):
423 (.object-tree-property): Deleted.
424 (.object-tree-property > .titles): Deleted.
425 (.object-tree-property > .disclosure-button): Deleted.
426 (.object-tree-property.parent > .disclosure-button): Deleted.
427 (.object-tree-property.parent.expanded > .disclosure-button): Deleted.
428 (.object-tree-property > .icon): Deleted.
429 (.object-tree-property.prototype-property): Deleted.
430 (.object-tree-property.prototype-property + ol): Deleted.
431 Updated selectors with new tree outline class names, removed styles which
432 are now provided by TreeOutline.css.
434 * UserInterface/Views/ObjectTreeView.css:
435 (.object-tree .tree-outline.object):
436 (.object-tree.expanded > .tree-outline.object):
437 (.tree-outline.object):
438 (.object-tree.properties-only .tree-outline.object):
439 (.tree-outline.object li):
440 (.tree-outline.object ol):
441 (.tree-outline.object ol.expanded):
442 (.tree-outline.object li .empty-message):
443 (.object-tree .object-tree-outline): Deleted.
444 (.object-tree.expanded > .object-tree-outline): Deleted.
445 (.object-tree-outline): Deleted.
446 (.object-tree.properties-only .object-tree-outline): Deleted.
447 (.object-tree-outline li): Deleted.
448 (.object-tree-outline ol): Deleted.
449 (.object-tree-outline ol.expanded): Deleted.
450 (.object-tree-outline li .empty-message): Deleted.
451 Updated selectors with new tree outline class names.
453 * UserInterface/Views/ObjectTreeView.js:
454 (WebInspector.ObjectTreeView):
455 Use default TreeOutline DOM element, and simplify element class name.
456 Enable custom indent (disables generated style rules).
458 * UserInterface/Views/ProfileNodeTreeElement.js:
459 (WebInspector.ProfileNodeTreeElement): Deleted.
460 Removed call to obsolete TreeOutline.prototype.small setter.
462 * UserInterface/Views/RenderingFrameTimelineView.css:
463 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.rendering-frame .item:not(.paint-record):not(.layout-record) .subtitle):
464 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.rendering-frame .item:not(.paint-record):not(.layout-record) .subtitle): Deleted.
465 Updated selectors with new tree outline class names.
467 * UserInterface/Views/ResourceSidebarPanel.js:
468 (WebInspector.ResourceSidebarPanel):
469 Disable tree outline disclosure buttons.
470 (WebInspector.ResourceSidebarPanel.prototype._extraDomainsActivated):
471 Enable tree outline disclosure buttons.
473 * UserInterface/Views/ScriptTimelineView.css:
474 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.script .item .subtitle):
475 (.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .tree-outline.script .item .alternate-subtitle):
476 (.tree-outline .item .alternate-subtitle):
477 (.tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle):
478 (.tree-outline .item.small:not(.two-line) .alternate-subtitle::before):
479 (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
480 (.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .navigation-sidebar-panel-content-tree-outline.script .item .alternate-subtitle): Deleted.
481 (.navigation-sidebar-panel-content-tree-outline .item .alternate-subtitle): Deleted.
482 (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle): Deleted.
483 (.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .alternate-subtitle::before): Deleted.
484 Updated selectors with new tree outline class names.
486 * UserInterface/Views/SearchResultTreeElement.js:
487 (WebInspector.SearchResultTreeElement): Deleted.
488 * UserInterface/Views/SourceCodeTreeElement.js:
489 (WebInspector.SourceCodeTreeElement): Deleted.
490 * UserInterface/Views/StorageTreeElement.js:
491 (WebInspector.StorageTreeElement): Deleted.
492 Removed call to obsolete TreeOutline.prototype.small setter.
494 * UserInterface/Views/TimelineDataGrid.css:
495 (.tree-outline.timeline-data-grid .item:hover):
496 (.tree-outline.timeline-data-grid .item:hover .subtitle):
497 (.timeline-data-grid-tree-outline): Deleted.
498 (.timeline-data-grid-tree-outline .item): Deleted.
499 (.timeline-data-grid-tree-outline .item .status): Deleted.
500 (.timeline-data-grid-tree-outline .item .icon): Deleted.
501 (.timeline-data-grid-tree-outline .item:hover): Deleted.
502 (.timeline-data-grid-tree-outline .item .titles): Deleted.
503 (.timeline-data-grid-tree-outline .item .title::after): Deleted.
504 (.timeline-data-grid-tree-outline .item .subtitle): Deleted.
505 (.timeline-data-grid-tree-outline .item:hover .subtitle): Deleted.
506 (.timeline-data-grid-tree-outline .item .subtitle:empty): Deleted.
507 (.timeline-data-grid-tree-outline .item.small): Deleted.
508 (.timeline-data-grid-tree-outline .item.small .icon): Deleted.
509 (.timeline-data-grid-tree-outline .item.small .status): Deleted.
510 (.timeline-data-grid-tree-outline .item.small .titles): Deleted.
511 (.timeline-data-grid-tree-outline .item.small .subtitle): Deleted.
512 (.timeline-data-grid-tree-outline .item.small:not(.two-line) .title::after): Deleted.
513 (.timeline-data-grid-tree-outline .item.small:not(.two-line) .subtitle::before): Deleted.
514 Updated selectors with new tree outline class names, removed styles which
515 are now provided by TreeOutline.css.
517 * UserInterface/Views/TimelineDataGrid.js:
518 (WebInspector.TimelineDataGrid.prototype._createPopoverContent):
519 Use default TreeOutline DOM element, and simplify element class name.
521 * UserInterface/Views/TimelineRecordTreeElement.js:
522 (WebInspector.TimelineRecordTreeElement): Deleted.
523 Removed call to obsolete TreeOutline.prototype.small setter.
525 * UserInterface/Views/TimelineSidebarPanel.css:
526 (.sidebar > .panel.navigation.timeline > .timelines-content .close-button): Deleted.
527 Removed styles which are now provided by TreeOutline.css.
529 * UserInterface/Views/TimelineSidebarPanel.js:
530 (WebInspector.TimelineSidebarPanel):
531 Disable tree outline disclosure buttons, enable large tree style.
533 * UserInterface/Views/TimelineView.css:
534 (.panel.navigation.timeline > .content > .tree-outline):
535 (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .tree-outline):
536 (.panel.navigation.timeline > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
537 (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
538 Updated selectors with new tree outline class names.
540 * UserInterface/Views/TreeOutline.css: Added.
541 (.tree-outline .children):
542 (.tree-outline .children.expanded):
543 (.tree-outline .item):
544 (.tree-outline.compact .item):
545 (.tree-outline.large .item):
546 (.tree-outline.hide-disclosure-buttons > .children):
547 (.tree-outline > .children.hide-disclosure-buttons > .children):
548 (.tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) .icon):
549 (.tree-outline .item .disclosure-button):
550 (.tree-outline.hide-disclosure-buttons .item .disclosure-button):
551 (.tree-outline .item.parent .disclosure-button):
552 (.tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button):
553 (.tree-outline .item.expanded .disclosure-button):
554 (.tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button):
555 (.tree-outline .item .icon):
556 (.tree-outline.compact .item .icon):
557 (.tree-outline.large .item .icon):
558 (.tree-outline .item .status):
559 (.tree-outline.large .item .status):
560 (.tree-outline .item .status:empty):
561 (.tree-outline .item.selected):
562 (.tree-outline:matches(:focus, .force-focus) .item.selected):
563 (body.window-inactive .tree-outline .item.selected):
564 (.tree-outline .item .titles):
565 (.tree-outline.compact .item .titles):
566 (.tree-outline.large .item .titles):
567 (.tree-outline .item .highlighted):
568 (.tree-outline.large .item .titles.no-subtitle):
569 (.tree-outline .item .title::after):
570 (.tree-outline .item .subtitle):
571 (.tree-outline.large .item .subtitle):
572 (.tree-outline:matches(:focus, .force-focus) .item.selected .subtitle):
573 (.tree-outline .item .subtitle:empty):
574 (.tree-outline:not(.large) .item .status .indeterminate-progress-spinner):
575 (.tree-outline .item .subtitle::before):
576 Relocated tree outlines styles from NavigationSidebarPanel.css.
578 * UserInterface/Views/TreeOutline.js:
579 (WebInspector.TreeOutline):
580 (WebInspector.TreeOutline.prototype.get compact):
581 (WebInspector.TreeOutline.prototype.set compact):
582 (WebInspector.TreeOutline.prototype.get large):
583 (WebInspector.TreeOutline.prototype.set large):
584 (WebInspector.TreeOutline.prototype.get disclosureButtons):
585 (WebInspector.TreeOutline.prototype.set disclosureButtons):
586 (WebInspector.TreeOutline.prototype.get customIndent):
587 (WebInspector.TreeOutline.prototype.set customIndent):
588 Added properties for tree element appearance and indentation
589 behavior, so clients don't need to manually toggle style classes.
590 (WebInspector.TreeOutline._generateStyleRulesIfNeeded):
591 Relocated from NavigationSidebarPanel.js.
593 * UserInterface/Views/TypeTreeElement.js:
594 (WebInspector.TypeTreeElement): Deleted.
595 Removed call to obsolete TreeOutline.prototype.small setter.
597 * UserInterface/Views/TypeTreeView.css:
598 (.tree-outline.type):
599 (.tree-outline.type li):
600 (.tree-outline.type ol):
601 (.tree-outline.type ol.expanded):
602 (.tree-outline.type li .empty-message):
603 (.type-tree-outline): Deleted.
604 (.type-tree-outline li): Deleted.
605 (.type-tree-outline ol): Deleted.
606 (.type-tree-outline ol.expanded): Deleted.
607 (.type-tree-outline li .empty-message): Deleted.
608 Updated selectors with new tree outline class names.
610 * UserInterface/Views/TypeTreeView.js:
611 (WebInspector.TypeTreeView):
612 Use default TreeOutline DOM element, and simplify element class name.
614 2016-01-13 Joseph Pecoraro <pecoraro@apple.com>
616 Web Inspector: Inspector should use the last sourceURL / sourceMappingURL directive
617 https://bugs.webkit.org/show_bug.cgi?id=153072
618 <rdar://problem/24168312>
620 Reviewed by Timothy Hatcher.
622 * UserInterface/Base/Utilities.js:
623 Prepend instead of append the sourceURL so the provided string
624 can include a sourceURL and override it. Such as manually
625 evaluating a script through the quick console with a sourceURL.
627 * UserInterface/Models/SourceMapResource.js:
628 Fix an incorrectly named property.
630 2016-01-13 Devin Rousso <dcrousso+webkit@gmail.com>
632 Web Inspector: Add support for the existing GradientEditor in the CSS Rules sidebar
633 https://bugs.webkit.org/show_bug.cgi?id=153004
635 Reviewed by Timothy Hatcher.
637 Both the Visual sidebar and Resource view have editors for CSS gradient
638 values, but the Rules sidebar instead only adds editors for basic color
639 values. Instead of duplicating the code for gradient swatches, existing
640 code will be used to give this same functionality to the Rules sidebar.
642 * Localizations/en.lproj/localizedStrings.js:
643 * UserInterface/Main.html:
645 * UserInterface/Models/Gradient.js:
646 (WebInspector.Gradient):
647 (WebInspector.Gradient.fromString):
648 (WebInspector.Gradient.stopsWithComponents):
649 (WebInspector.Gradient.prototype.copy):
650 (WebInspector.Gradient.prototype.toString):
651 Refactored WebInspector.Gradient into its own class.
653 (WebInspector.LinearGradient):
654 (WebInspector.LinearGradient.prototype.toString):
655 Now uses WebInspector.Gradient inheritance and methods.
657 (WebInspector.RadialGradient):
658 (WebInspector.RadialGradient.prototype.toString):
659 Now uses WebInspector.Gradient inheritance and methods.
661 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
662 Use InlineSwatch.css values instead.
664 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker): Deleted.
665 (@media (-webkit-max-device-pixel-ratio: 1)): Deleted.
666 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:hover): Deleted.
667 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:active): Deleted.
669 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
670 (WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover): Deleted.
671 Removed unused popover member variable.
673 (WebInspector.CSSStyleDeclarationTextEditor.prototype._contentChanged):
674 (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
675 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.createSwatch):
676 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.update):
677 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches):
678 Renamed variables for more consistent naming and reimplemented the logic
679 to use the new WebInspector.InlineSwatch methods. As a result, it was
680 possible to consolidate the 3 different type of swatch functions into a
683 (WebInspector.CSSStyleDeclarationTextEditor.prototype._commentProperty.update):
684 (WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentRange.update):
685 (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged.update):
686 (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged):
687 (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
688 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.createSwatch): Deleted.
689 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update): Deleted.
690 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches): Deleted.
691 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors.update): Deleted.
692 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors): Deleted.
693 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged.update): Deleted.
694 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged): Deleted.
695 (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror.update): Deleted.
696 (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror): Deleted.
697 (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked): Deleted.
699 * UserInterface/Views/CodeMirrorTextMarkers.js:
700 (createCodeMirrorColorTextMarkers.matchFunction):
701 Added logic so that if the matched color string is found inside a gradient,
702 it will not have a marker created for it.
704 * UserInterface/Views/InlineSwatch.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ColorSwatch.css.
705 Consolidated the various swatch CSS classes into one file.
708 (.inline-swatch.bezier):
709 (.inline-swatch.bezier:hover):
710 (.inline-swatch.bezier:active):
711 (@media (-webkit-max-device-pixel-ratio: 1)):
712 (.inline-swatch > span):
713 Ensured that the inner swatch element can not be selected so that the "click"
714 listener on its parent always fires.
716 (.inline-swatch:hover > span):
717 (.inline-swatch:active > span):
718 (.inline-swatch.bezier > span):
720 * UserInterface/Views/InlineSwatch.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ColorSwatch.js.
721 (WebInspector.InlineSwatch):
722 Now accepts a new first argument to indicate what type of color swatch
723 to create and what functionality it will have. Currently has options
724 for WebInspector.Color, WebInspector.Gradient, and WebInspector.CubicBezier.
726 (WebInspector.InlineSwatch.prototype.get element):
727 (WebInspector.InlineSwatch.prototype.get value):
728 (WebInspector.InlineSwatch.prototype.set value):
729 (WebInspector.InlineSwatch.prototype._fallbackValue):
730 (WebInspector.InlineSwatch.prototype._updateSwatch):
731 (WebInspector.InlineSwatch.prototype._swatchElementClicked):
732 (WebInspector.InlineSwatch.prototype._valueEditorValueDidChange):
733 (WebInspector.InlineSwatch.prototype._handleContextMenuEvent):
734 (WebInspector.InlineSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor):
735 (WebInspector.InlineSwatch.prototype._getNextValidHEXFormat):
737 * UserInterface/Views/VisualStyleBackgroundPicker.css:
738 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient):
739 (.visual-style-property-container.background-picker > .visual-style-property-value-container:not(.gradient-value) > .inline-swatch.gradient):
740 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient:hover):
741 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient:active):
742 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient > span):
743 (.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .inline-swatch.gradient + .value-input):
744 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch): Deleted.
745 (.visual-style-property-container.background-picker > .visual-style-property-value-container:not(.gradient-value) > .color-swatch): Deleted.
746 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch:hover): Deleted.
747 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch:active): Deleted.
748 (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch > span): Deleted.
749 (.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .color-swatch + .value-input): Deleted.
751 * UserInterface/Views/VisualStyleBackgroundPicker.js:
752 Removed the specific code for the gradient swatch and moved to using a
753 gradient-type InlineSwatch for gradient values instead.
755 (WebInspector.VisualStyleBackgroundPicker):
756 (WebInspector.VisualStyleBackgroundPicker.prototype.set value):
757 (WebInspector.VisualStyleBackgroundPicker.prototype._updateGradient):
758 (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchColorChanged):
759 (WebInspector.VisualStyleBackgroundPicker.prototype._valueInputValueChanged):
760 (WebInspector.VisualStyleBackgroundPicker.prototype._handleKeywordChanged):
761 (WebInspector.VisualStyleBackgroundPicker.prototype._updateGradientSwatch): Deleted.
762 (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked.handleColorPickerToggled): Deleted.
763 (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked): Deleted.
764 (WebInspector.VisualStyleBackgroundPicker.prototype._gradientEditorGradientChanged): Deleted.
766 * UserInterface/Views/VisualStyleColorPicker.css:
767 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color):
768 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color:hover):
769 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color:active):
770 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color > span):
771 Add override CSS to ensure that the color-type InlineSwatch displays nicely
772 next to the flexbox style Visual sidebar.
774 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch): Deleted.
775 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:hover): Deleted.
776 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:active): Deleted.
777 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span): Deleted.
778 Refactored to only use overriding properties of the basic .inline-swatch values.
780 * UserInterface/Views/VisualStyleColorPicker.js:
781 (WebInspector.VisualStyleColorPicker):
782 (WebInspector.VisualStyleColorPicker.prototype._colorSwatchColorChanged):
783 (WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
785 * UserInterface/Views/VisualStyleTimingEditor.css:
786 (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .inline-swatch.bezier):
787 (.visual-style-property-container.timing-editor > .visual-style-property-value-container:not(.bezier-value) > .inline-swatch.bezier):
788 (@media (-webkit-min-device-pixel-ratio: 2)):
789 Add override CSS to ensure that the color-type InlineSwatch displays nicely
790 next to the flexbox style Visual sidebar.
792 (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor): Deleted.
793 (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:hover): Deleted.
794 (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:active): Deleted.
795 Refactored to only use overriding properties of the basic .inline-swatch values.
797 * UserInterface/Views/VisualStyleTimingEditor.js:
798 Removed the specific code for the cubic-bezier swatch and moved to using a
799 cubic-bezier-type InlineSwatch for gradient values instead.
801 (WebInspector.VisualStyleTimingEditor):
802 (WebInspector.VisualStyleTimingEditor.prototype.get bezierValue):
803 (WebInspector.VisualStyleTimingEditor.prototype.set bezierValue):
804 (WebInspector.VisualStyleTimingEditor.prototype._setValue):
805 (WebInspector.VisualStyleTimingEditor.prototype._handleKeywordChanged):
806 (WebInspector.VisualStyleTimingEditor.prototype._bezierSwatchValueChanged):
807 (WebInspector.VisualStyleTimingEditor.prototype._bezierMarkerClicked): Deleted.
809 2016-01-12 Matt Baker <mattbaker@apple.com>
811 Web Inspector: Timeline recording controls should use NavigationBar
812 https://bugs.webkit.org/show_bug.cgi?id=152997
814 Reviewed by Brian Burg.
816 NavigtaionBar should always be preferred over manually editing the DOM.
817 Reusing existing button types for the record button and status element lets us
818 eliminate a bunch of CSS, and will make future changes to the Timelines UI
819 (such as adding addition recording controls), easier to implement.
821 * Localizations/en.lproj/localizedStrings.js:
824 * UserInterface/Views/TimelineSidebarPanel.css:
825 (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop):
826 (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop:hover):
827 (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop:active):
828 Replaced similar styles used for the record glyph.
829 (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop *):
830 Prevent multiple mouseover/mouseout events while hovering the navigation item.
831 (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.flexible-space):
832 Replaced similar styles used for the record status element.
833 (.sidebar > .panel.navigation.timeline > .status-bar): Deleted.
834 (body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar): Deleted.
835 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph): Deleted.
836 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover): Deleted.
837 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active): Deleted.
838 (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording): Deleted.
839 (.sidebar > .panel.navigation.timeline > .status-bar > .record-status): Deleted.
840 (.panel.timeline .navigation-bar.timelines-view): Deleted.
843 * UserInterface/Views/TimelineSidebarPanel.js:
844 Removed unused CSS static variables.
845 (WebInspector.TimelineSidebarPanel):
846 Create navigation bar, remove status bar DOM elements. Create keyboard shortcut
847 before the record button, so the shortcut's display name can be used in tooltips.
848 (WebInspector.TimelineSidebarPanel.prototype._capturingStartedOrStopped):
849 Update record button state and flexible space (status) text.
850 (WebInspector.TimelineSidebarPanel.prototype._recordButtonClicked):
851 Toggle recording state, and update record button state and flexible space (status) text.
852 (WebInspector.TimelineSidebarPanel.prototype._recordButtonMousedOver):
853 (WebInspector.TimelineSidebarPanel.prototype._recordButtonMousedOut):
854 Update flexible space (status) text.
855 (WebInspector.TimelineSidebarPanel.prototype._updateRecordButton):
856 (WebInspector.TimelineSidebarPanel.prototype._updateReplayInterfaceVisibility):
857 (WebInspector.TimelineSidebarPanel.prototype._toggleRecording): Deleted.
858 (WebInspector.TimelineSidebarPanel.prototype._capturingStarted): Deleted.
859 (WebInspector.TimelineSidebarPanel.prototype._capturingStopped): Deleted.
860 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver): Deleted.
861 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut): Deleted.
862 (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked): Deleted.
865 2016-01-12 Matt Baker <mattbaker@apple.com>
867 Web Inspector: Move helper methods for getting icons/text to TimelineTabContentView
868 https://bugs.webkit.org/show_bug.cgi?id=152996
870 Reviewed by Brian Burg.
872 In preparation for the Timelines UI redesign, helper methods which existed
873 in the sidebar panel and timeline tree elements need to be relocated,
874 since the sidebar won't exist in the new UI.
876 * UserInterface/Views/TimelineRecordTreeElement.js:
877 (WebInspector.TimelineRecordTreeElement):
878 Removed icon/title code, replaced with calls to new helper methods.
879 Code to create the alternate subtitle was broken out form the rest
880 of the icon/title code, and kept in the constructor.
882 * UserInterface/Views/TimelineRecordingContentView.js:
883 (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
884 Updated calls to helper methods.
886 * UserInterface/Views/TimelineSidebarPanel.js:
887 (WebInspector.TimelineSidebarPanel.prototype._instrumentAdded):
888 (WebInspector.TimelineSidebarPanel.displayNameForTimeline): Deleted.
889 (WebInspector.TimelineSidebarPanel.iconClassNameForTimeline): Deleted.
890 Moved to TimelineTabContentView.
892 * UserInterface/Views/TimelineTabContentView.js:
893 (WebInspector.TimelineTabContentView.displayNameForTimeline):
894 (WebInspector.TimelineTabContentView.iconClassNameForTimeline):
895 Relocated from TimelineSidebarPanel.
896 (WebInspector.TimelineTabContentView.iconClassNameForRecord):
897 (WebInspector.TimelineTabContentView.displayNameForRecord):
898 New helper methods. Previously part of TimelineRecordTreeElement.
900 2016-01-12 Brian Burg <bburg@apple.com>
902 Web Inspector: fix some common misspellings in localized strings
903 https://bugs.webkit.org/show_bug.cgi?id=153030
904 <rdar://problem/24153340>
906 Reviewed by Joseph Pecoraro.
908 Replace 'occured', 'transfered' with 'occurred' and 'transferred'.
910 * Localizations/en.lproj/localizedStrings.js:
911 * UserInterface/Views/DatabaseTableContentView.js:
912 (WebInspector.DatabaseTableContentView.prototype._queryError):
913 * UserInterface/Views/NetworkGridContentView.js:
914 (WebInspector.NetworkGridContentView):
915 * UserInterface/Views/NetworkTimelineView.js:
916 (WebInspector.NetworkTimelineView):
917 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
918 (WebInspector.ResourceDetailsSidebarPanel):
920 2016-01-12 Matt Baker <mattbaker@apple.com>
922 Web Inspector: Fix DataGrid row disclosure appearance and behavior
923 https://bugs.webkit.org/show_bug.cgi?id=152991
925 Reviewed by Brian Burg.
927 * UserInterface/Views/DataGrid.css:
928 (.data-grid tr.parent td.disclosure::before):
929 Ensure triangle is vertically aligned for any row height.
930 (.data-grid tr:not(.parent) td.disclosure):
933 * UserInterface/Views/DataGrid.js:
934 (WebInspector.DataGridNode.prototype.createCell):
935 Added `icon` column property, encapsulate icon element creation.
936 (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
937 Fix hit test logic by computing left padding.
939 2016-01-12 Devin Rousso <dcrousso+webkit@gmail.com>
941 Web Inspector: REGRESSION (r194879) - Opening views without being previously opened causes an Uncaught Exception
942 https://bugs.webkit.org/show_bug.cgi?id=153006
944 Reviewed by Brian Burg.
946 * UserInterface/Views/MultipleScopeBarItem.js:
947 (WebInspector.MultipleScopeBarItem.prototype.displaySelectedItem):
948 If there is no selected item, default to the first item in the list.
950 2016-01-12 Devin Rousso <dcrousso+webkit@gmail.com>
952 Web Inspector: creating a gradient in the Visual sidebar causes a crash
953 https://bugs.webkit.org/show_bug.cgi?id=153003
955 Reviewed by Brian Burg.
957 * UserInterface/Views/VisualStyleBackgroundPicker.js:
958 (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked):
959 If a gradient does not already exist when the swatch is clicked, create a basic
960 gradient using the current type and two "transparent" color stops (a minimum of
961 two color stops are needed for a valid gradient).
963 2016-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
965 Web Inspector: Storage tab navigation bar should fit on a single line
966 https://bugs.webkit.org/show_bug.cgi?id=152473
968 Reviewed by Timothy Hatcher.
970 The wrapping of the navigation bar on the Storage tab was caused by the
971 fact that Sidebar.js used a minimum width of 200px, regardless of the
972 content within the sidebar (unless it had a NavigationBar). Logic has
973 been added that causes the sidebar to use the selected panel's own
974 minimum width calculation if it is greater than 200px.
976 * UserInterface/Views/DebuggerSidebarPanel.js:
977 (WebInspector.DebuggerSidebarPanel.prototype.get minimumWidth):
979 * UserInterface/Views/MultipleScopeBarItem.js:
980 (WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
981 (WebInspector.MultipleScopeBarItem.prototype.displaySelectedItem):
982 Sets the displayed text to the currently selected item.
984 (WebInspector.MultipleScopeBarItem.prototype.displayWidestItem):
985 Sets the displayed text to the widest (pixel wise) item in the select element.
987 * UserInterface/Views/NavigationBar.js:
988 (WebInspector.NavigationBar.prototype._calculateMinimumWidth):
989 Now uses NavigationItem.prototype.get minimumWidth.
991 * UserInterface/Views/NavitationItem.js:
992 (WebInspector.NavitationItem.prototype.get minimumWidth):
993 Returns the element's realOffsetWidth.
995 * UserInterface/Views/NetworkSidebarPanel.js:
996 (WebInspector.NetworkSidebarPanel.prototype.get minimumWidth):
998 * UserInterface/Views/ResourceSidebarPanel.js:
999 (WebInspector.ResourceSidebarPanel.prototype.get minimumWidth):
1001 * UserInterface/Views/ScopeBar.js:
1002 (WebInspector.ScopeBar):
1003 (WebInspector.ScopeBar.prototype.get minimumWidth):
1005 * UserInterface/Views/Sidebar.js:
1006 (WebInspector.Sidebar.prototype.set selectedSidebarPanel):
1007 (WebInspector.Sidebar.prototype.get minimumWidth):
1008 (WebInspector.Sidebar.prototype.set width):
1009 (WebInspector.Sidebar.prototype.set collapsed):
1010 (WebInspector.Sidebar.prototype._recalculateWidth):
1011 Whenever the sidebar changes (e.g. tab change, sidebar becomes
1012 visible/hidden, etc.), a width recalculation is necessary to ensure
1013 that the navigation bar never wraps.
1015 * UserInterface/Views/SidebarPanel.js:
1016 (WebInspector.SidebarPanel.prototype.get minimumWidth):
1018 * UserInterface/Views/StorageSidebarPanel.js:
1019 (WebInspector.StorageSidebarPanel.prototype.get minimumWidth):
1021 * UserInterface/Views/TimelineSidebarPanel.js:
1022 (WebInspector.TimelineSidebarPanel.prototype.get minimumWidth):
1024 2016-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
1026 Web Inspector: Make Timelines view also remember sort order
1027 https://bugs.webkit.org/show_bug.cgi?id=152811
1029 Reviewed by Timothy Hatcher.
1031 Changeset r194574 introduced the ability for WebInspector.Setting objects to
1032 be passed to DataGrid instances to save the sort column for that grid. These
1033 changes also add the ability for the sort order to be save as well.
1035 * UserInterface/Views/ApplicationCacheFrameContentView.js:
1036 (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
1038 * UserInterface/Views/CookieStorageContentView.js:
1039 (WebInspector.CookieStorageContentView.prototype._rebuildTable):
1041 * UserInterface/Views/DOMStorageContentView.js:
1042 (WebInspector.DOMStorageContentView):
1044 * UserInterface/Views/DataGrid.js:
1045 (WebInspector.DataGrid):
1046 (WebInspector.DataGrid.prototype.set sortOrder):
1047 If a WebInspector.Setting object has been given, save the new sort order.
1049 (WebInspector.DataGrid.prototype.set sortOrderSetting):
1050 Saves the given WebInspector.Setting object for modification whenever the user
1051 changes the sort order.
1053 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1054 (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
1056 * UserInterface/Views/LayoutTimelineView.js:
1057 (WebInspector.LayoutTimelineView):
1059 * UserInterface/Views/NetworkGridContentView.js:
1060 (WebInspector.NetworkGridContentView):
1062 * UserInterface/Views/NetworkTimelineView.js:
1063 (WebInspector.NetworkTimelineView):
1065 * UserInterface/Views/RenderingFrameTimelineView.js:
1066 (WebInspector.RenderingFrameTimelineView):
1068 * UserInterface/Views/ScriptTimelineView.js:
1069 (WebInspector.ScriptTimelineView):
1071 2016-01-11 Johan K. Jensen <jj@johanjensen.dk>
1073 Web Inspector: Copying JS object output from console shouldn't include trailing '= $n'
1074 https://bugs.webkit.org/show_bug.cgi?id=119347
1076 Reviewed by Joseph Pecoraro.
1078 * UserInterface/Views/ConsoleMessageView.js:
1079 (WebInspector.ConsoleMessageView.prototype.toClipboardString):
1081 2016-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
1083 Web Inspector: Add basic Content section to Visual Sidebar
1084 https://bugs.webkit.org/show_bug.cgi?id=152972
1086 Reviewed by Timothy Hatcher.
1088 Since the "content" property has so many different types of values, a
1089 simple text input editor should be added to provide some support for
1090 the CSS property until a better, more specialized editor is created.
1092 * Localizations/en.lproj/localizedStrings.js:
1094 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
1095 (.visual-style-property-container.comma-separated-keyword-editor):
1096 Moved margin-left to new rule in VisualStylePropertyEditor.css.
1098 * UserInterface/Views/VisualStyleDetailsPanel.js:
1099 (WebInspector.VisualStyleDetailsPanel):
1100 (WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection):
1101 Adds the basic editor under the Text section in a new subsection
1104 * UserInterface/Views/VisualStylePropertyEditor.css:
1105 (.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container)):
1106 Adds a left margin to property editors without a title.
1108 2016-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
1110 Web Inspector: Visual sidebar minor bug fixes
1111 https://bugs.webkit.org/show_bug.cgi?id=152967
1113 Reviewed by Timothy Hatcher.
1115 * UserInterface/Views/VisualStyleDetailsPanel.js:
1116 (WebInspector.VisualStyleDetailsPanel.prototype.refresh):
1117 Only update sections when it is not a significant change, as they are
1118 updated when the selector changes.
1120 (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
1121 Only reset links if the refresh is a significant change (node or selected
1124 * UserInterface/Views/VisualStyleNumberInputBox.js:
1125 (WebInspector.VisualStyleNumberInputBox):
1126 (WebInspector.VisualStyleNumberInputBox.prototype.get value):
1127 Removed unreachable return.
1129 (WebInspector.VisualStyleNumberInputBox.prototype.set value):
1130 (WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.adjustValue):
1131 _updatedValues.propertyMissing was changed to _propertyMissing in a
1134 2016-01-11 Joseph Pecoraro <pecoraro@apple.com>
1136 Web Inspector: Migrate Page Timeline recording to ScriptProfiler
1137 https://bugs.webkit.org/show_bug.cgi?id=152727
1139 Reviewed by Brian Burg.
1141 * UserInterface/Images/TimelineRecordAPI.svg: Added.
1142 * UserInterface/Images/gtk/TimelineRecordAPI.svg: Added.
1143 New [S] image for API initiated script evaluations.
1144 Display matches the existing [S] Script Evaluated.
1145 Colors match the gray [N] Native image colors.
1147 * UserInterface/Models/ScriptInstrument.js:
1148 (WebInspector.ScriptInstrument.prototype.startInstrumentation):
1149 (WebInspector.ScriptInstrument.prototype.stopInstrumentation):
1150 (WebInspector.ScriptInstrument):
1151 Use ScriptProfiler, if available, in Web debuggables.
1153 * UserInterface/Controllers/TimelineManager.js:
1154 (WebInspector.TimelineManager):
1155 (WebInspector.TimelineManager.prototype.capturingStarted):
1156 (WebInspector.TimelineManager.prototype._processRecord):
1157 (WebInspector.TimelineManager.prototype._scriptProfilerTypeToScriptTimelineRecordType):
1158 (WebInspector.TimelineManager.prototype.scriptProfilerTrackingUpdated):
1159 (WebInspector.TimelineManager.prototype.scriptProfilerTrackingCompleted):
1160 (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords.let.nextRecord):
1161 (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords.let.recordContainsRecord):
1162 (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
1163 When running a timeline on a web debuggable the frontend receives both
1164 Timeline event records and ScriptProfiler events. Timeline (Web) records
1165 are high level web events like "Script Evaluated", "Event Dispatched",
1166 "Timer Fired". The timestamps for these records should always be wrapping
1167 a ScriptProfiler event and its associated profile data. So, at the end
1168 of a recording we merge ScriptProfiler profile data into the original
1169 Timeline (Web) record.
1171 * UserInterface/Models/ScriptTimelineRecord.js:
1172 (WebInspector.ScriptTimelineRecord.prototype.get profilePayload):
1173 (WebInspector.ScriptTimelineRecord.prototype.set profilePayload):
1174 (WebInspector.ScriptTimelineRecord.prototype.setProfilePayload): Deleted.
1175 Replace method with getter/setter.
1177 (WebInspector.ScriptTimelineRecord.EventType.displayName):
1178 Add a new event type for API records, but share display name with Script Evaluated.
1180 * UserInterface/Views/NavigationSidebarPanel.js:
1183 * UserInterface/Views/ScriptTimelineView.css:
1184 (.timeline-view.script > .data-grid .eventType-column): Deleted.
1185 There is no "eventType" column in the ScriptTimelineView datagrid, so remove styles.
1187 * UserInterface/Views/TimelineIcons.css:
1188 (.api-record .icon):
1189 * UserInterface/Views/TimelineRecordTreeElement.js:
1190 (WebInspector.TimelineRecordTreeElement):
1191 For API Script Evaluation records use the new icon.
1193 2016-01-10 Joseph Pecoraro <pecoraro@apple.com>
1195 Web Inspector: Uncaught Exception selecting IndexedDB host folder in Storage tab
1196 https://bugs.webkit.org/show_bug.cgi?id=152943
1198 Reviewed by Brian Burg.
1200 * UserInterface/Views/NavigationSidebarPanel.js:
1201 (WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
1202 Another type of specialized folder tree element.
1204 2016-01-10 Joseph Pecoraro <pecoraro@apple.com>
1206 Uncaught Exception: TypeError: undefined is not an object (evaluating 'this._scopeChain[i].object.deprecatedGetAllProperties')
1207 https://bugs.webkit.org/show_bug.cgi?id=152944
1208 <rdar://problem/24119827>
1210 Reviewed by Brian Burg.
1212 * UserInterface/Models/CallFrame.js:
1213 (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
1214 Missed one place where `object` needed to change to `objects`.
1215 Here the list will always contain a single object, only UI
1216 generated scopes for the sidebar may have multiple objects.
1218 2016-01-10 Johan K. Jensen <jj@johanjensen.dk>
1220 Web Inspector: Dashboard log message count doesn't include console.time messages
1221 https://bugs.webkit.org/show_bug.cgi?id=151280
1223 Reviewed by Brian Burg.
1225 * UserInterface/Models/DefaultDashboard.js:
1226 (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
1227 Make Info and Debug levels increment the log count.
1229 2016-01-09 Dan Bernstein <mitz@apple.com>
1231 [Cocoa] Allow overriding the frameworks directory independently of using a staging install path
1232 https://bugs.webkit.org/show_bug.cgi?id=152926
1234 Reviewed by Tim Horton.
1236 Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines
1237 where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets
1238 WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari.
1240 Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces.
1242 * Configurations/Base.xcconfig:
1243 - Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
1244 WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
1245 * Configurations/WebInspectorUIFramework.xcconfig:
1246 - Define INSTALL_PATH and PRODUCTION_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.
1248 2016-01-08 Joseph Pecoraro <pecoraro@apple.com>
1250 Web Inspector: Test Resources should not be included in Production builds unless FORCE_TOOL_INSTALL
1251 https://bugs.webkit.org/show_bug.cgi?id=152941
1252 <rdar://problem/24119013>
1254 Reviewed by Dan Bernstein.
1256 * Configurations/Base.xcconfig:
1257 Combine inspector resources in production, but not test resources.
1259 * Configurations/DebugRelease.xcconfig:
1260 Do not combine inspector resources in Release/Debug. Combine test resources.
1262 * Configurations/WebInspectorUIFramework.xcconfig:
1263 Simplify by moving to other config files.
1265 * Scripts/copy-user-interface-resources.pl:
1266 Have FORCE_TOOL_INSTALL combine test resources as well.
1268 * WebInspectorUI.vcxproj/build-webinspectorui.pl:
1269 Only combine test resources in non-Production.
1271 2016-01-08 Joseph Pecoraro <pecoraro@apple.com>
1273 Web Inspector: Initiated section of Resource Details Sidebar should not display as empty and should update as the list changes
1274 https://bugs.webkit.org/show_bug.cgi?id=152907
1275 <rdar://problem/24109927>
1277 Reviewed by Timothy Hatcher.
1279 * UserInterface/Models/Resource.js:
1280 (WebInspector.Resource.prototype.addInitiatedResource):
1281 Dispatch an event when the list of initiated resources changes.
1283 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1284 (WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
1285 Add/remove event listeners for initiated resources changes to refresh
1286 the related resources section.
1288 (WebInspector.ResourceDetailsSidebarPanel.prototype.refresh):
1289 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
1290 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
1291 Show/hide the related resources section depending on if we have something or not.
1293 2016-01-08 Joseph Pecoraro <pecoraro@apple.com>
1295 Web Inspector: Uncaught exception: TypeError: this._initiatorSourceCodeLocation.sourceCode.addInitiatedResource is not a function
1296 https://bugs.webkit.org/show_bug.cgi?id=152905
1297 <rdar://problem/24109809>
1299 Reviewed by Brian Burg.
1301 * UserInterface/Models/Resource.js:
1302 (WebInspector.Resource):
1303 (WebInspector.Resource.prototype.addInitiatedResource):
1304 Only Resource has addInitiatedResource, so only call it if the
1305 SourceCode in the SourceCodeLocation is a Resource.
1307 2016-01-07 Devin Rousso <dcrousso+webkit@gmail.com>
1309 Web Inspector: Add warnings to section that require specific values of other properties
1310 https://bugs.webkit.org/show_bug.cgi?id=148254
1312 Reviewed by Timothy Hatcher.
1314 Added a function to VisualStylePropertyEditor to allow dependencies to be set which,
1315 whenever the editor is updated or changed, will be checked against the computed styles
1316 of the element to see if all the necessary property values are set.
1318 * Localizations/en.lproj/localizedStrings.js:
1319 * UserInterface/Views/VisualStyleDetailsPanel.js:
1320 (WebInspector.VisualStyleDetailsPanel):
1321 (WebInspector.VisualStyleDetailsPanel.prototype.refresh):
1322 (WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
1323 (WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
1324 (WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):
1325 (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
1326 (WebInspector.VisualStyleDetailsPanel.prototype._populateOutlineSection):
1327 Added dependencies to relevant property editors.
1329 (WebInspector.VisualStyleDetailsPanel.prototype._prepareForChange): Deleted.
1330 No longer needed as the sidebar panel will refresh whenever triggered.
1332 * UserInterface/Views/VisualStylePropertyEditor.css:
1333 (.visual-style-property-container.layout-reversed > .visual-style-property-title):
1334 (.visual-style-property-container > .visual-style-property-title > .property-reference-info):
1335 (.visual-style-property-container > .visual-style-property-editor-warning):
1336 (.visual-style-property-container.layout-reversed > .visual-style-property-editor-warning):
1337 (.visual-style-property-container > .visual-style-property-editor-warning.missing-dependency):
1338 (.visual-style-property-container > .visual-style-property-value-container):
1339 (.visual-style-property-container.layout-reversed > .visual-style-property-value-container):
1341 * UserInterface/Views/VisualStylePropertyEditor.js:
1342 (WebInspector.VisualStylePropertyEditor):
1343 (WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
1344 (WebInspector.VisualStylePropertyEditor.prototype.addDependency):
1345 (WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
1346 (WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
1347 Looks at the computed style for the node to see if any dependent properties do not
1348 have one of the required values.
1350 * UserInterface/Views/VisualStyleSelectorSection.js:
1351 (WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
1352 (WebInspector.VisualStyleSelectorSection.prototype._styleTextReset): Deleted.
1354 * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1355 (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1357 2016-01-07 Devin Rousso <dcrousso+webkit@gmail.com>
1359 Web Inspector: Allow error items on Exception page to be selected
1360 https://bugs.webkit.org/show_bug.cgi?id=152861
1362 Reviewed by Brian Burg.
1364 * UserInterface/Debug/UncaughtExceptionReporter.css:
1365 (.uncaught-exception-sheet li):
1366 Allowed user-select on text.
1368 2016-01-07 Devin Rousso <dcrousso+webkit@gmail.com>
1370 Web Inspector: Add border-image properties to Visual sidebar
1371 https://bugs.webkit.org/show_bug.cgi?id=152755
1373 Reviewed by Timothy Hatcher.
1375 * Localizations/en.lproj/localizedStrings.js:
1376 * UserInterface/Main.html:
1377 Switched the order of VisualStyleURLInput and VisualStyleUnitSlider
1378 to be ordered alphabetically.
1380 * UserInterface/Views/VisualStyleBackgroundPicker.js:
1381 (WebInspector.VisualStyleBackgroundPicker.prototype._keywordSelectMouseDown):
1383 * UserInterface/Views/VisualStyleDetailsPanel.css:
1384 (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content > .group + .group > .row:first-child):
1385 (.sidebar > .panel.details.css-style .visual > .details-section.background .details-section.border .visual-style-property-container.keyword-checkbox.border-image-slice):
1386 Since the checkbox is so small, give it less room.
1388 * UserInterface/Views/VisualStyleDetailsPanel.js:
1389 (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection.generateBorderImagePropertyEditors):
1390 The three properties "border-image-width", "border-image-outset", and
1391 "border-image-slice" all have the same syntax, so one function to generate
1392 the layout for all three is much simpler.
1394 (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
1395 Added the border image properties to a seperate group under Background > Border.
1397 * UserInterface/Views/VisualStyleKeywordPicker.js:
1398 (WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):
1400 * UserInterface/Views/VisualStyleNumberInputBox.js:
1401 (WebInspector.VisualStyleNumberInputBox):
1402 (WebInspector.VisualStyleNumberInputBox.prototype.set units):
1403 Reordered logic to allow a value of ""/null to set the units to the "Number"
1404 value if it is allowed for that editor.
1406 (WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
1407 Instead of relying upon whether the editor has any units, just check to see if
1408 the selected units are "Number" and, if not, add them to the value.
1410 (WebInspector.VisualStyleNumberInputBox.prototype._unitsElementTextContent):
1412 * UserInterface/Views/VisualStylePropertyCombiner.js:
1413 (WebInspector.VisualStylePropertyCombiner):
1414 Now has another argument that, when true, assumes the combiner has at least 4
1415 numerical values and is of the form (can have units):
1416 property-name: value1 [value2 [value3 [value4 [...]]]];
1418 (WebInspector.VisualStylePropertyCombiner.prototype.get synthesizedValue):
1419 (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateEditor):
1420 (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
1421 (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
1422 If the new argument is true, assigns the existing values in the following way:
1423 - If there is 1 value, assign it to all of the editors.
1424 - If there are 2 values, assign the 1st one to editors 1 and 3 and the 2nd one
1426 - If there are 3 values, assign the 1st one to editor 1, the 2nd one to editors
1427 2 and 4, and the 3rd one to editor 3.
1428 - If there are 4 or more values, assign them normally.
1430 * UserInterface/Views/VisualStylePropertyEditor.js:
1431 (WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedKeyword):
1432 (WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedKeyword):
1433 Removed call to this.value to prevent recursion from VisualStyleNumberInputBox.
1435 (WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedUnit):
1436 (WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedUnit):
1437 Removed call to this.units to prevent recursion from VisualStyleNumberInputBox.
1439 2016-01-07 Devin Rousso <dcrousso+webkit@gmail.com>
1441 Web Inspector: Add indicator that element has pseudo-class in DOM tree
1442 https://bugs.webkit.org/show_bug.cgi?id=152680
1444 Reviewed by Timothy Hatcher.
1446 * UserInterface/Views/DOMTreeElement.js:
1447 (WebInspector.DOMTreeElement):
1448 (WebInspector.DOMTreeElement.prototype._nodePseudoClassesDidChange):
1449 Added an event listener to the node for when pseudo-classes change.
1451 * UserInterface/Views/DOMTreeOutline.css:
1452 (.dom-tree-outline li.pseudo-class-enabled > .selection::before):
1453 (.dom-tree-outline:focus li.selected.pseudo-class-enabled > .selection::before):
1454 Used the hover/selected background style element to ensure that the indicator
1455 is always positioned evenly with the first line of the opening tag.
1457 (.dom-tree-outline li.hovered:not(.selected) .selection):
1458 (.dom-tree-outline li .selection):
1459 (.dom-tree-outline li.selected .selection):
1460 (.dom-tree-outline li.elements-drag-over .selection):
1461 Removed "display: none;" (as well as the "block" declarations) to allow
1462 the ::before pseudo-element to display.
1464 2016-01-07 Devin Rousso <dcrousso+webkit@gmail.com>
1466 Web Inspector: Make creating new rules in the Styles sidebar simpler
1467 https://bugs.webkit.org/show_bug.cgi?id=152726
1469 Reviewed by Timothy Hatcher.
1471 When creating a new rules of any kind, first look to see if it already exists in
1472 another rule that has no properties. If found, focus/select it instead of creating
1473 a new rule. Otherwise, create the new rule like normal.
1475 Also changed the way in which previously-focused sections/tree-items are saved
1476 to rely upon the selector of the new rule and whether the section for that rule
1477 is empty and an inspector rule.
1479 * Localizations/en.lproj/localizedStrings.js:
1481 * UserInterface/Models/CSSStyleDeclaration.js:
1482 (WebInspector.CSSStyleDeclaration.prototype.isInspectorRule):
1483 Returns true if the style is an inspector rule.
1485 (WebInspector.CSSStyleDeclaration.prototype.hasProperties):
1486 Returns true if the style has CSS properties.
1488 * UserInterface/Models/DOMNodeStyles.js:
1489 (WebInspector.DOMNodeStyles.prototype.rulesForSelector.ruleHasSelector):
1490 (WebInspector.DOMNodeStyles.prototype.rulesForSelector):
1491 Returns a list of CSSRule that match the given selector and are not
1494 * UserInterface/Views/BoxModelDetailsSectionRow.js:
1495 (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
1497 * UserInterface/Views/CSSStyleDeclarationSection.js:
1498 (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
1500 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1501 (WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties):
1503 * UserInterface/Views/RulesStyleDetailsPanel.js:
1504 (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
1505 (WebInspector.RulesStyleDetailsPanel.prototype.refresh.cssStyleDeclarationSectionEditorFocused):
1506 Now saves the newly focused section as the previously-focused section.
1508 (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNewInspectorRuleWithSelector):
1509 Renamed from cssStyleDeclarationSectionFocusNextNewInspectorRule. Now needs
1510 a selector argument.
1512 (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
1513 (WebInspector.RulesStyleDetailsPanel.prototype.sectionForStyle):
1514 Returns the first section that has a style with matching selector.
1516 (WebInspector.RulesStyleDetailsPanel.prototype.focusEmptySectionWithStyle):
1517 Finds the section corresponding to the given style and, if empty, focuses it.
1519 (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
1520 No longer clears the previously-focused section.
1522 * UserInterface/Views/VisualStyleSelectorSection.js:
1523 (WebInspector.VisualStyleSelectorSection):
1524 (WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
1525 (WebInspector.VisualStyleSelectorSection.prototype.update):
1526 (WebInspector.VisualStyleSelectorSection.prototype.treeItemForStyle):
1527 Returns the first tree item that has a style with matching selector.
1529 (WebInspector.VisualStyleSelectorSection.prototype.selectEmptyStyleTreeItem):
1530 Finds the tree item corresponding to the given style and, if empty, selects it.
1532 (WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
1534 * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1535 (WebInspector.VisualStyleSelectorTreeItem):
1536 Now requires a delegate object.
1538 (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1540 2016-01-06 Joseph Pecoraro <pecoraro@apple.com>
1542 Web Inspector: CRASH Attempting to pause on CSP violation not inside of script
1543 https://bugs.webkit.org/show_bug.cgi?id=152825
1544 <rdar://problem/24021276>
1546 Reviewed by Timothy Hatcher.
1548 * UserInterface/Test/TestHarness.js:
1549 (TestHarness.prototype.expectThat):
1550 (TestHarness.prototype.pass):
1551 (TestHarness.prototype.fail):
1552 Add a simple way to output a standard pass/fail message. These are
1553 often nicer than expectThat(true, ...) or assert(false, ...).
1555 2016-01-07 Joseph Pecoraro <pecoraro@apple.com>
1557 Web Inspector: DOMContentLoaded label in the Timeline tab should be "DOM Content Loaded"
1558 https://bugs.webkit.org/show_bug.cgi?id=152746
1560 Reviewed by Timothy Hatcher.
1562 * Localizations/en.lproj/localizedStrings.js:
1563 * UserInterface/Views/TimelineRuler.js:
1564 (WebInspector.TimelineRuler.prototype.addMarker):
1566 2016-01-06 Joseph Pecoraro <pecoraro@apple.com>
1568 Web Inspector: Scope chain shows too many scopes for functions (`let` and `var` in the same function are two scopes)
1569 https://bugs.webkit.org/show_bug.cgi?id=152349
1571 Reviewed by Timothy Hatcher.
1573 * Localizations/en.lproj/localizedStrings.js:
1574 New "Closure Variables (%s)" string for including the function name alongside
1575 the closure scope section.
1577 * UserInterface/Models/ScopeChainNode.js:
1578 (WebInspector.ScopeChainNode):
1579 (WebInspector.ScopeChainNode.prototype.get objects):
1580 (WebInspector.ScopeChainNode.prototype.get object): Deleted.
1581 Allow a ScopeChainNode to hold onto multiple RemoteObjects (for multiple JSScopes).
1583 * UserInterface/Controllers/DebuggerManager.js:
1584 (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
1585 Simplify the legacy case and convert "Local" to "Closure". The UI will now
1586 determine and display "Local" where appropriate in a backwards compatible way.
1588 * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1589 (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
1590 Associate ScopeChain nodes with CallFrame frames so that we can better combine
1591 variable sections and better label closure sections.
1593 * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
1594 (.scope-chain .details-section > .content > .group > .row.properties:not(.empty)):
1595 (.scope-chain .details-section > .content > .group > .row.properties:not(.empty):last-child):
1596 Styles for two object trees property sections next to eachother.
1598 2016-01-06 Devin Rousso <dcrousso+webkit@gmail.com>
1600 Web Inspector: Add basic Animation section to Visual Sidebar
1601 https://bugs.webkit.org/show_bug.cgi?id=152692
1603 Reviewed by Timothy Hatcher.
1605 Adds a non-autocompleting section to the "Effects" section (renamed from
1606 "Animations") of the Visual sidebar for setting CSS Animation values.
1608 * Scripts/copy-user-interface-resources.pl:
1609 * Localizations/en.lproj/localizedStrings.js:
1610 * UserInterface/Images/AnimationPlayStatePaused.svg: Added.
1611 * UserInterface/Images/AnimationPlayStateRunning.svg: Added.
1612 * UserInterface/Main.html:
1614 * UserInterface/Views/VisualStyleBasicInput.js: Added.
1615 (WebInspector.VisualStyleBasicInput):
1616 (WebInspector.VisualStyleBasicInput.prototype.get value):
1617 (WebInspector.VisualStyleBasicInput.prototype.set value):
1618 (WebInspector.VisualStyleBasicInput.prototype.get synthesizedValue):
1619 (WebInspector.VisualStyleBasicInput.prototype._handleInputElementInput):
1620 Very basic editor that is just an input box with a given placeholder.
1622 * UserInterface/Views/VisualStyleDetailsPanel.js:
1623 (WebInspector.VisualStyleDetailsPanel):
1624 (WebInspector.VisualStyleDetailsPanel.prototype._populateAnimationSection):
1625 Creates the necessary property editors and adds them to their respective rows.
1627 2016-01-06 Devin Rousso <dcrousso+webkit@gmail.com>
1629 Web Inspector: Add remaining background style properties to Visual sidebar
1630 https://bugs.webkit.org/show_bug.cgi?id=152757
1632 Reviewed by Timothy Hatcher.
1634 * Localizations/en.lproj/localizedStrings.js:
1636 * UserInterface/Views/VisualStyleDetailsPanel.js:
1637 (WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
1638 Added background-blend-mode and background-origin property editors.
1640 * UserInterface/Views/VisualStyleSelectorSection.js:
1641 (WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
1642 Unrelated error that occurred when the user was hovering over a selector item
1643 before the tree outline was able to create the selected item.
1645 2016-01-05 Joseph Pecoraro <pecoraro@apple.com>
1647 REGRESSION(r187929): Web Inspector: Forced Layout and Style Recalculation records do not show up in Layout & Rendering timeline DataGrid
1648 https://bugs.webkit.org/show_bug.cgi?id=152747
1650 Reviewed by Timothy Hatcher.
1652 * UserInterface/Views/LayoutTimelineView.js:
1653 (WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
1654 We want top-level Layout records. Not necessarily Layout records that are
1655 at the top of all records. Layout events such as style recalculation
1656 and forced layout may be triggered by script and therefore not be at
1657 the top of all records.
1659 2016-01-04 Devin Rousso <dcrousso+webkit@gmail.com>
1661 Web Inspector: Timelines view doesn't remember how I like to sort things
1662 https://bugs.webkit.org/show_bug.cgi?id=152626
1664 Reviewed by Joseph Pecoraro.
1666 Currently, all instances of DataGrid have their sort column reset with each
1667 open/close of Web Inspector. This doesn't really make sense seeing as we save
1668 the user's settings in many other cases, so the sort method (which column)
1669 should be saved between inspector sessions.
1671 * UserInterface/Views/ApplicationCacheFrameContentView.js:
1672 (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
1673 * UserInterface/Views/CookieStorageContentView.js:
1674 (WebInspector.CookieStorageContentView.prototype._rebuildTable):
1675 * UserInterface/Views/DOMStorageContentView.js:
1676 (WebInspector.DOMStorageContentView):
1677 * UserInterface/Views/DataGrid.js:
1678 (WebInspector.DataGrid):
1679 (WebInspector.DataGrid.prototype.set sortColumnIdentifier):
1680 Moved the logic for classLists and events to _updateSortedColumn.
1682 (WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting):
1683 Instead of just setting the original sort method when instantiating the DataGrid,
1684 a WebInspector.Setting object is now able to be passed in via this setter
1685 to give the DataGrid access to the stored sort method value.
1687 (WebInspector.DataGrid.prototype._updateSortedColumn):
1688 Updates the classLists and fires events. If a sort column setting object
1689 exists, update its value.
1691 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1692 (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
1693 * UserInterface/Views/LayoutTimelineView.js:
1694 (WebInspector.LayoutTimelineView):
1695 * UserInterface/Views/NetworkGridContentView.js:
1696 (WebInspector.NetworkGridContentView):
1697 * UserInterface/Views/NetworkTimelineView.js:
1698 (WebInspector.NetworkTimelineView):
1699 * UserInterface/Views/RenderingFrameTimelineView.js:
1700 (WebInspector.RenderingFrameTimelineView):
1701 * UserInterface/Views/ScriptTimelineView.js:
1702 (WebInspector.ScriptTimelineView):
1704 2016-01-04 Devin Rousso <dcrousso+webkit@gmail.com>
1706 Web Inspector: Add debounce to URL inputs in the Visual sidebar
1707 https://bugs.webkit.org/show_bug.cgi?id=152655
1709 Reviewed by Joseph Pecoraro.
1711 Adding a debounce to url() based Visual sidebar editors will prevent needless
1712 errors from being thrown as the user types, since incomplete URL's will not
1713 be able to be located.
1715 * UserInterface/Base/Utilities.js:
1716 (Function.prototype.debounce):
1717 Prevents the given function from executing more than once in the specified amount of time.
1719 * UserInterface/Views/VisualStyleBackgroundPicker.js:
1720 (WebInspector.VisualStyleBackgroundPicker):
1722 * UserInterface/Views/VisualStyleURLInput.js:
1723 (WebInspector.VisualStyleURLInput):
1725 2016-01-04 Joseph Pecoraro <pecoraro@apple.com>
1727 Web Inspector: Fix debug context menu string and reload without cache tooltip string
1728 https://bugs.webkit.org/show_bug.cgi?id=152725
1730 Reviewed by Brian Burg.
1732 * UserInterface/Base/Main.js:
1733 (WebInspector.contentLoaded):
1735 2016-01-04 Devin Rousso <dcrousso+webkit@gmail.com>
1737 Web Inspector: add context menu items to switch CSS color property value syntax between RGB, HSL, etc
1738 https://bugs.webkit.org/show_bug.cgi?id=151918
1740 Reviewed by Timothy Hatcher.
1742 Created a ColorSwatch class to hold all functionality for color swatches,
1743 allowing all context menu and popover events to be centralized.
1745 * Localizations/en.lproj/localizedStrings.js:
1746 * UserInterface/Main.html:
1748 * UserInterface/Models/Color.js:
1749 Changed all 'var' to 'let' and 'nickname' to 'keyword' as per the spec.
1750 Mostly mechanical changes.
1752 (WebInspector.Color.prototype.isKeyword):
1753 Looks at the RGB values of each keyword to see if the current color
1754 matches any of them.
1756 (WebInspector.Color.prototype.canBeSerializedAsShortHEX):
1757 Fixed to account for alpha values, since HEXAlpha is now supported.
1759 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1760 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch): Deleted.
1761 (@media (-webkit-max-device-pixel-ratio: 1)): Deleted.
1762 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch > span): Deleted.
1763 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:hover > span): Deleted.
1764 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:active > span): Deleted.
1766 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1767 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
1768 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
1769 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged.update):
1770 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged):
1771 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update): Deleted.
1772 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror): Deleted.
1773 (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked): Deleted.
1775 * UserInterface/Views/ColorSwatch.css: Copied from Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css.
1777 (@media (-webkit-max-device-pixel-ratio: 1)):
1778 (.color-swatch > span):
1779 (.color-swatch:hover > span):
1780 (.color-swatch:active > span):
1782 * UserInterface/Views/ColorSwatch.js: Added.
1783 (WebInspector.ColorSwatch):
1784 (WebInspector.ColorSwatch.prototype.get element):
1785 (WebInspector.ColorSwatch.prototype.set color):
1786 (WebInspector.ColorSwatch.prototype.get color):
1787 (WebInspector.ColorSwatch.prototype._colorSwatchClicked):
1788 (WebInspector.ColorSwatch.prototype._colorPickerColorDidChange):
1789 (WebInspector.ColorSwatch.prototype._handleContextMenuEvent):
1790 (WebInspector.ColorSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor):
1791 (WebInspector.ColorSwatch.prototype._getNextValidHEXFormat):
1792 Loops through the list of HEX formats to find the first format that is valid
1793 for the current color in the list after the current format.
1795 (WebInspector.ColorSwatch.prototype._updateSwatch):
1797 * UserInterface/Views/VisualStyleColorPicker.css:
1798 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
1799 (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):
1801 * UserInterface/Views/VisualStyleColorPicker.js:
1802 (WebInspector.VisualStyleColorPicker):
1803 (WebInspector.VisualStyleColorPicker.prototype._colorSwatchColorChanged):
1804 (WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
1805 (WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked): Deleted.
1806 (WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange): Deleted.
1808 2016-01-04 Joseph Pecoraro <pecoraro@apple.com>
1810 Web Inspector: Mark last parameter of webkitGetUserMedia as non-optional to match updated IDL
1811 https://bugs.webkit.org/show_bug.cgi?id=152702
1813 Reviewed by Brian Burg.
1815 * UserInterface/Models/NativeFunctionParameters.js:
1816 New IDL, and tests, show that the error callback is non-optional.
1818 2016-01-04 Devin Rousso <dcrousso+webkit@gmail.com>
1820 Web Inspector: Add context menu items to CSS selectors to auto-generate pseudo selectors
1821 https://bugs.webkit.org/show_bug.cgi?id=152657
1823 Reviewed by Timothy Hatcher.
1825 Instead of having to copy a selector, create a new one, paste it, and then add
1826 a pseudo class or element, a context menu item has been added to automate this
1827 process for the user for each CSS pseudo-selector.
1829 * Localizations/en.lproj/localizedStrings.js:
1831 * UserInterface/Controllers/CSSStyleManager.js:
1832 Added a static object containing the list of CSS pseudo-element names.
1834 * UserInterface/Models/DOMNodeStyles.js:
1835 (WebInspector.DOMNodeStyles.prototype.addRule.completed):
1836 (WebInspector.DOMNodeStyles.prototype.addRule.styleChanged):
1837 (WebInspector.DOMNodeStyles.prototype.addRule.addedRule):
1838 (WebInspector.DOMNodeStyles.prototype.addRule):
1839 Now accepts a second argument for setting the starting text value of the new rule.
1841 * UserInterface/Views/CSSStyleDeclarationSection.js:
1842 (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
1844 * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1845 (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1847 2016-01-04 Brian Burg <bburg@apple.com>
1849 Web Inspector: add a DebugUI context menu item for saving inspector protocol traffic to file
1850 https://bugs.webkit.org/show_bug.cgi?id=152671
1852 Reviewed by Timothy Hatcher.
1854 Add a new tracer that captures all messages, and debug context menu
1855 items to control whether to capture protocol traffic and export it.
1856 In later patches, a reciprocal "Import..." context menu item will
1857 allow opening saved protocol traces and viewing them in a debug UI
1858 content view for debugging/visualizing protocol traffic.
1860 * UserInterface/Base/Main.js:
1861 * UserInterface/Debug/CapturingProtocolTracer.js: Copied from Source/WebInspectorUI/UserInterface/Protocol/ProtocolTracer.js.
1863 This tracer saves everything into a flat array. JSON protocol
1864 messages are saved as escaped strings, in case they are not
1865 valid JSON. We want to be able to debug such scenarios.
1867 (WebInspector.CapturingProtocolTracer):
1868 (WebInspector.CapturingProtocolTracer.prototype.get trace):
1869 (WebInspector.CapturingProtocolTracer.prototype.logFrontendException):
1870 (WebInspector.CapturingProtocolTracer.prototype.logProtocolError):
1871 (WebInspector.CapturingProtocolTracer.prototype.logFrontendRequest):
1872 (WebInspector.CapturingProtocolTracer.prototype.logDidHandleResponse):
1873 (WebInspector.CapturingProtocolTracer.prototype.logDidHandleEvent):
1874 (WebInspector.CapturingProtocolTracer.prototype._stringifyMessage):
1875 (WebInspector.CapturingProtocolTracer.prototype._processEntry):
1877 * UserInterface/Debug/ProtocolTrace.js: Added.
1879 This is a dumb container that holds protocol trace data. It will
1880 be responsible for deserializing saved trace files in later work.
1882 (WebInspector.ProtocolTrace):
1883 (WebInspector.ProtocolTrace.prototype.addEntry):
1884 (WebInspector.ProtocolTrace.prototype.get saveData):
1885 * UserInterface/Main.html:
1886 * UserInterface/Protocol/InspectorBackend.js:
1887 (InspectorBackendClass):
1889 Simplify the implementation. Now there are one or two tracers
1890 at any given time. The default tracer handles legacy logging
1891 behavior and always exists. The custom tracer is installed when
1892 the "Capture Protocol Traffic" context menu item is toggled.
1894 Dispatch to the array of active tracers at each trace point.
1895 Tracers now get the actual JSON message instead of a stringified
1896 version passed as an argument.
1898 (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
1899 (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
1900 (InspectorBackendClass.prototype.set dumpInspectorTimeStats):
1901 (InspectorBackendClass.prototype.set customTracer):
1902 (InspectorBackendClass.prototype.get activeTracers):
1903 (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
1904 (InspectorBackendClass.prototype._sendMessageToBackend):
1905 (InspectorBackendClass.prototype._dispatchResponse):
1906 (InspectorBackendClass.prototype._dispatchEvent):
1907 (InspectorBackendClass.prototype.set activeTracer): Deleted.
1908 (InspectorBackendClass.prototype.get activeTracer): Deleted.
1909 * UserInterface/Protocol/LoggingProtocolTracer.js:
1910 (WebInspector.LoggingProtocolTracer.prototype._processEntry):
1911 (WebInspector.LoggingProtocolTracer):
1912 (WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
1913 (WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
1914 (WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
1915 (WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
1916 (WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):
1917 * UserInterface/Protocol/ProtocolTracer.js:
1918 (WebInspector.ProtocolTracer.prototype.logFrontendException):
1919 (WebInspector.ProtocolTracer.prototype.logProtocolError):
1920 (WebInspector.ProtocolTracer.prototype.logFrontendRequest):
1921 (WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
1922 (WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
1923 (WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
1924 (WebInspector.ProtocolTracer.prototype.logDidHandleEvent):
1926 2016-01-04 Devin Rousso <dcrousso+webkit@gmail.com>
1928 Web Inspector: Comma separated values in the Visual sidebar are appended with )
1929 https://bugs.webkit.org/show_bug.cgi?id=152653
1931 Reviewed by Timothy Hatcher.
1933 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
1934 (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
1935 Modified the RexExp used to split the comma separated value to account for strings
1936 with commas inside parenthesis (such as rgba() or hsla()) as well as ones without
1937 commas (such as "arial" and "red").
1939 2016-01-03 Devin Rousso <dcrousso+webkit@gmail.com>
1941 Web Inspector: Visual sidebar selector section displays inherited section for non-editable rules
1942 https://bugs.webkit.org/show_bug.cgi?id=152659
1944 Reviewed by Brian Burg.
1946 * UserInterface/Views/VisualStyleSelectorSection.js:
1947 (WebInspector.VisualStyleSelectorSection.prototype.update):
1948 Only add a new inherited section header if it will contain at least one inherited rule.
1950 2016-01-02 Devin Rousso <dcrousso+webkit@gmail.com>
1952 Web Inspector: List all resources that are initiated by the selected resource in the Network tab
1953 https://bugs.webkit.org/show_bug.cgi?id=152647
1955 Reviewed by Timothy Hatcher.
1957 Selecting resources in the Network tab will now display a list of all resources
1958 that the selected resource loaded, allowing for easier understanding of the
1959 relationship between all the resources loaded on a page.
1961 * Localizations/en.lproj/localizedStrings.js:
1962 * UserInterface/Base/Main.js:
1963 Added functions to generate link(s) to Resource instead of SourceCodeLocation.
1965 * UserInterface/Models/Resource.js:
1966 (WebInspector.Resource):
1967 (WebInspector.Resource.prototype.get initiatedResources):
1968 (WebInspector.Resource.prototype.addInitiatedResource):
1969 Each time a resource is added, if it has an initiator, it adds itself to the
1970 initiator's list of initiated resources.
1972 * UserInterface/Views/Main.css:
1973 (.resource-list > .resource-link):
1974 (.resource-list > .resource-link::before):
1975 (.resource-list > .resource-link + .resource-link):
1978 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1979 (WebInspector.ResourceDetailsSidebarPanel):
1980 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
1982 2016-01-02 Devin Rousso <dcrousso+webkit@gmail.com>
1984 Web Inspector: Add list-style properties to Visual Sidebar
1985 https://bugs.webkit.org/show_bug.cgi?id=152631
1987 Reviewed by Timothy Hatcher.
1989 Seeing as lists are very common in web pages across the internet, adding
1990 a section to let users edit the properties unique to lists seems prudent.
1992 * Localizations/en.lproj/localizedStrings.js:
1993 * UserInterface/Images/ListStylePositionInside.svg: Added.
1994 * UserInterface/Images/ListStylePositionOutside.svg: Added.
1995 * UserInterface/Main.html:
1996 Re-added UserInterface/Views/VisualStyleURLInput.js
1998 * UserInterface/Views/VisualStyleDetailsPanel.js:
1999 (WebInspector.VisualStyleDetailsPanel):
2000 (WebInspector.VisualStyleDetailsPanel.prototype._populateListStyleSection):
2002 * UserInterface/Views/VisualStyleKeywordIconList.css:
2003 (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
2004 Added specified color property to ensure that :active doesn't break the color of the svg.
2006 (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
2007 (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
2008 Changed the background-color and border-color values to match the rest of Web Inspector.
2010 * UserInterface/Views/VisualStyleKeywordIconList.js:
2011 (WebInspector.VisualStyleKeywordIconList):
2012 (WebInspector.VisualStyleKeywordIconList.dashToCapital): Deleted.
2013 (WebInspector.VisualStyleKeywordIconList.createListItem):
2014 The "initial" keyword will also use UserInterface/Images/VisualStyleNone.svg
2016 * UserInterface/Views/VisualStyleURLInput.js: Added.
2017 Previously removed in r192705.
2019 2016-01-02 Alberto Garcia <berto@igalia.com>
2021 [GTK] webkit 2.3.5 build failure with python 3.3.4
2022 https://bugs.webkit.org/show_bug.cgi?id=128971
2024 Reviewed by Michael Catanzaro.
2026 Make sure that the stdin encoding is 'UTF-8' if using Python 3,
2027 otherwise the build will break.
2029 * Scripts/cssmin.py:
2031 2016-01-01 Devin Rousso <dcrousso+webkit@gmail.com>
2033 Web Inspector: shadow visual sidebar section can be confused with the box shadow section
2034 https://bugs.webkit.org/show_bug.cgi?id=148107
2036 Reviewed by Brian Burg.
2038 * Localizations/en.lproj/localizedStrings.js:
2039 * UserInterface/Views/VisualStyleDetailsPanel.js:
2040 (WebInspector.VisualStyleDetailsPanel):
2041 Changed title of "Shadow" sub-section in "Background" to "Box Shadow".
2043 2016-01-01 Devin Rousso <dcrousso+webkit@gmail.com>
2045 Web Inspector: The Computed Styles Properties section shows warning icons and doesn't update if collapsed
2046 https://bugs.webkit.org/show_bug.cgi?id=152609
2048 Reviewed by Brian Burg.
2050 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2051 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
2052 If the CodeMirror instance is read-only, don't add any warning icons.
2054 * UserInterface/Views/ComputedStyleDetailsPanel.js:
2055 (WebInspector.ComputedStyleDetailsPanel):
2056 (WebInspector.ComputedStyleDetailsPanel.prototype._handleCollapsedStateChanged):
2057 The properties text editor will now refresh whenever the details section
2058 becomes un-collapsed.
2060 * UserInterface/Views/DetailsSection.js:
2061 (WebInspector.DetailsSection.prototype.set collapsed):
2062 Now fires an event with the current collapsed state as data.
2064 2015-12-31 Matt Baker <mattbaker@apple.com>
2066 Web Inspector: "No Filter Results" message overlaps Debugger sidebar sections
2067 https://bugs.webkit.org/show_bug.cgi?id=150608
2069 Reviewed by Brian Burg.
2071 * UserInterface/Views/DebuggerSidebarPanel.js:
2072 (WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
2074 (WebInspector.DebuggerSidebarPanel):
2075 Add breakpoints tree to the details section before adding Global Breakpoint
2076 elements, since adding them will trigger filtering.
2077 (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
2078 Simplified selection management between the various tree outlines.
2079 (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
2081 (WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement): Deleted.
2082 Defer to the base class implementation.
2083 (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectCallStackContentTreeElements): Deleted.
2084 (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectBreakpointContentTreeElements): Deleted.
2085 (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectPauseReasonContentTreeElements): Deleted.
2086 These are no longer needed, since the list of visible tree elements list can be used
2087 to manage tree element selection is a more general way.
2089 * UserInterface/Views/NavigationSidebarPanel.css:
2090 Empty content placeholders are now inserted into the DOM as a sibling of the
2091 tree that was filtered. As such, they can be a child of a details section, or
2092 the sidebar's content element.
2093 (.sidebar > .panel.navigation > .content .empty-content-placeholder):
2094 Styles for all empty content placeholders.
2095 (.sidebar > .panel.navigation > .content > .empty-content-placeholder):
2096 Styles for empty content placeholders that fill the sidebar's content element.
2097 (.sidebar > .panel.navigation > .content .message):
2098 Styles for all empty content placeholders.
2099 (.sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
2100 (.sidebar > .panel.navigation > .empty-content-placeholder > .message): Deleted.
2102 * UserInterface/Views/NavigationSidebarPanel.js:
2103 (WebInspector.NavigationSidebarPanel):
2104 Track the tree outline which currently has a selection.
2105 Manage a map of content placeholders
2106 (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
2107 (WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement):
2108 Check all visible content trees for a selected element.
2109 (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
2110 (WebInspector.NavigationSidebarPanel.prototype.treeElementForRepresentedObject):
2111 Check all visible content trees for the represented object.
2112 (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
2113 (WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
2114 (WebInspector.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
2115 No sidebars currently have more than one filterable content tree outline, but in
2116 the future we will want to support this. Empty content placeholder visibility
2117 is now done per tree outline.
2118 (WebInspector.NavigationSidebarPanel.prototype.show):
2119 Focus the tree outline that most recently had the selection, or the
2120 first tree outline in the visible tree list, if it exists.
2121 (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
2122 Tree is considered filtered if no visible filterable tree elements are found.
2123 (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
2124 Check all visible trees that support filtering.
2125 (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2126 Support for filtering multiple content trees.
2127 (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
2128 Check if the element's tree outline supports filtering, before applying filters.
2129 (WebInspector.NavigationSidebarPanel.prototype._treeSelectionDidChange):
2130 Update the selected tree outline.
2131 (WebInspector.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
2132 Create a new empty content placeholder element for the tree.
2133 (WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineElement): Deleted.
2136 * UserInterface/Views/TimelineSidebarPanel.js:
2137 (WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Deleted.
2138 Defer to the base class implementation.
2140 2015-12-29 Devin Rousso <dcrousso+webkit@gmail.com>
2142 Web Inspector: Styling of invalid selector persists when changing the selected node
2143 https://bugs.webkit.org/show_bug.cgi?id=152456
2145 Reviewed by Brian Burg.
2147 If the user changes the selector of a CSS rule to be invalid (e.g. having
2148 a { or ; character), it is expected that the invalid indicator will be removed
2149 once the user changes nodes or reverts the selector to its previous value.
2151 * Localizations/en.lproj/localizedStrings.js:
2152 * UserInterface/Views/CSSStyleDeclarationSection.css:
2153 (.style-declaration-section > .header > .icon.toggle-able:hover):
2154 (.style-declaration-section > .header > .icon.toggle-able:active):
2155 (.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover): Deleted.
2156 Added better :hover and :active styles.
2158 * UserInterface/Views/CSSStyleDeclarationSection.js:
2159 (WebInspector.CSSStyleDeclarationSection):
2160 (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
2161 (WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked):
2162 If the selector is invalid, simply refresh the section to regenerate the
2163 original selector with correct content, specificity, and highlighting.
2165 (WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector): Deleted.
2166 Moved the state of the invalid selector to a member
2167 variable instead of a DOM class.
2169 (WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon):
2170 Renamed from _markSelector for clarity.
2172 * UserInterface/Views/VisualStyleSelectorTreeItem.css:
2173 (.item.visual-style-selector-item.selector-invalid > .icon:hover):
2174 (.item.visual-style-selector-item.selector-invalid > .icon:active):
2175 (.item.visual-style-selector-item.selector-invalid > .icon):
2176 Added :hover and :active styles.
2178 * UserInterface/Views/VisualStyleSelectorTreeItem.js:
2179 (WebInspector.VisualStyleSelectorTreeItem):
2180 (WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
2181 (WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
2182 (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
2183 (WebInspector.VisualStyleSelectorTreeItem.prototype._handleIconElementClicked):
2184 (WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged): Deleted.
2185 Changed the names of a few functions to provide better
2186 consistency across the classes in the Style sidebar.
2188 2015-12-27 Brian Burg <bburg@apple.com>
2190 Web Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet
2191 https://bugs.webkit.org/show_bug.cgi?id=152402
2193 Reviewed by Joseph Pecoraro.
2195 Include the UA string, inspected page URL, and a template that includes
2196 steps to reproduce and notes. Other common headings (regression, expected,
2197 results, summary) are omitted because they are unlikely to be known when
2198 an uncaught exception occurs, or are obvious ("shouldn't throw exception").
2200 * UserInterface/Debug/UncaughtExceptionReporter.js:
2202 2015-12-21 Nikita Vasilyev <nvasilyev@apple.com>
2204 WebInspector: Can't open a new tab: Uncaught Exception: TypeError: this.isNewTabWithTypeAllowed is not a function
2205 https://bugs.webkit.org/show_bug.cgi?id=152471
2207 Reviewed by Timothy Hatcher.
2209 * UserInterface/Base/Main.js:
2210 (WebInspector._updateNewTabButtonState):
2211 Don't use arrow functions because of https://webkit.org/b/152497 "Arrow functions: 'this' isn't lexically bound"
2213 2015-12-21 Nikita Vasilyev <nvasilyev@apple.com>
2215 Web Inspector: Remove unused WebInspector.Object.removeAllListeners
2216 https://bugs.webkit.org/show_bug.cgi?id=152474
2218 Reviewed by Timothy Hatcher.
2220 * UserInterface/Base/Object.js:
2221 (WebInspector.Object.removeAllListeners): Deleted.
2222 (WebInspector.Object.prototype.removeAllListeners): Deleted.
2224 2015-12-20 Dan Bernstein <mitz@apple.com>
2226 Remove unused setToolbarHeight
2227 https://bugs.webkit.org/show_bug.cgi?id=152466
2229 Reviewed by Darin Adler.
2231 * UserInterface/Base/Main.js:
2232 (WebInspector.contentLoaded):
2233 * UserInterface/Protocol/InspectorFrontendHostStub.js:
2234 (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight): Deleted.
2236 2015-12-19 Dan Bernstein <mitz@apple.com>
2238 [Mac] WebKit contains dead source code for OS X Mavericks and earlier
2239 https://bugs.webkit.org/show_bug.cgi?id=152462
2241 Reviewed by Alexey Proskuryakov.
2243 - Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions
2244 that became uniform across all OS X versions as a result:
2246 * Configurations/Base.xcconfig:
2247 * Configurations/DebugRelease.xcconfig:
2248 * Configurations/Version.xcconfig:
2250 * Scripts/copy-user-interface-resources.pl: Removed code to delete Images/Legacy.
2252 * UserInterface/Images/Legacy: Removed this empty directory.
2254 2015-12-18 Matt Baker <mattbaker@apple.com>
2256 Web Inspector: Make it possible to debug injected scripts when the Debug UI is enabled
2257 https://bugs.webkit.org/show_bug.cgi?id=152445
2259 Reviewed by Joseph Pecoraro.
2261 * UserInterface/Base/Main.js:
2262 Added function to check for debug UI.
2264 * UserInterface/Base/Object.js:
2265 Added notification for debug UI enabled state change.
2267 * UserInterface/Base/Utilities.js:
2268 (isWebInspectorInternalScript):
2269 (isWebInspectorDebugScript):
2270 Added functions to check for internal and debug inspector scripts.
2272 * UserInterface/Controllers/DebuggerManager.js:
2273 (WebInspector.DebuggerManager):
2274 Maintain a list of inspector debug scripts, so that the manager can
2275 add and remove them when the debug UI is enabled/disabled.
2276 (WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
2277 (WebInspector.DebuggerManager.prototype.reset):
2278 Clear the list of inspector debug scripts.
2279 (WebInspector.DebuggerManager.prototype.debuggerDidPause):
2280 (WebInspector.DebuggerManager.prototype.scriptDidParse):
2281 Skip internal inspector scripts. Debug inspector scripts are tracked,
2282 and an added event is dispatched if the debug UI is enabled.
2283 (WebInspector.DebuggerManager.prototype._debugUIEnabledDidChange):
2284 Dispatch added/removed events for inspector debug scripts.
2286 * UserInterface/Debug/Bootstrap.js:
2287 (WebInspector.runBootstrapOperations):
2288 Expose changes to the debug UI setting to the reset of the UI, by dispatching
2289 a WebInspector.Notification.DebugUIEnabledDidChange event.
2291 * UserInterface/Protocol/RemoteObject.js:
2292 (WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
2293 Only resolve inspector debug source locations when the debug UI is enabled.
2295 * UserInterface/Test/Test.js:
2296 Reimplemented debug UI check for tests. Always returns false.
2298 * UserInterface/Views/DebuggerSidebarPanel.js:
2299 (WebInspector.DebuggerSidebarPanel.prototype._addScript):
2300 Removed check for inspector debug scripts. DebuggerManager filters scripts as needed.
2301 (WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved):
2302 Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts.
2304 * UserInterface/Views/ResourceSidebarPanel.js:
2305 (WebInspector.ResourceSidebarPanel):
2306 (WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
2307 Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts.
2308 (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
2309 Removed check for inspector debug scripts. DebuggerManager filters scripts as needed.
2311 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
2313 Web Inspector: Remove "local" scope type from the protocol
2314 https://bugs.webkit.org/show_bug.cgi?id=152409
2316 Reviewed by Timothy Hatcher.
2318 * UserInterface/Controllers/DebuggerManager.js:
2319 (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
2321 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
2323 Web Inspector: CSS warning's fake CallFrame is not creating a valid payload
2324 https://bugs.webkit.org/show_bug.cgi?id=152413
2326 Reviewed by Timothy Hatcher.
2328 * UserInterface/Views/ConsoleMessageView.js:
2329 (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
2330 This attempts to create a CallFrame from a Console.CallFrame payload,
2331 but this was missing the required functionName string parameter.
2333 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
2335 Provide a way to distinguish a nested lexical block from a function's lexical block
2336 https://bugs.webkit.org/show_bug.cgi?id=152361
2338 Reviewed by Saam Barati.
2340 * Localizations/en.lproj/localizedStrings.js:
2341 * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2342 (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
2343 New "Block Variables" string.
2345 * UserInterface/Models/ScopeChainNode.js:
2346 New "Block" scope type, and update existing types.
2348 * UserInterface/Controllers/DebuggerManager.js:
2349 (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
2350 Parse the protocol type to frontend types. Use the protocol generated enum.
2352 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
2354 Web Inspector: Improve names in Debugger Call Stack section when paused
2355 https://bugs.webkit.org/show_bug.cgi?id=152398
2357 Reviewed by Brian Burg.
2359 * UserInterface/Controllers/DebuggerManager.js:
2360 (WebInspector.DebuggerManager.prototype.debuggerDidPause):
2361 Use a new fromPayload helper to construct the CallFrame and share code.
2363 * UserInterface/Models/CallFrame.js:
2364 (WebInspector.CallFrame.functionNameFromPayload):
2365 (WebInspector.CallFrame.programCodeFromPayload):
2366 (WebInspector.CallFrame.fromDebuggerPayload):
2367 (WebInspector.CallFrame.fromPayload):
2368 Add a new way to construct a call frame. There are two kinds of
2369 CallFrame payloads in the protocol:
2370 - Debugger.CallFrame, this new path
2371 - Console.CallFrame, the pre-existing path
2373 2015-12-17 Brian Burg <bburg@apple.com>
2375 Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
2376 https://bugs.webkit.org/show_bug.cgi?id=151635
2378 Reviewed by Joseph Pecoraro.
2380 Follow-up fix to stop double-logging everything.
2382 * UserInterface/Protocol/LoggingProtocolTracer.js:
2383 (WebInspector.LoggingProtocolTracer.prototype._processEntry):
2385 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
2387 Web Inspector: Improve console.trace, make it more like console.assert and inline the message
2388 https://bugs.webkit.org/show_bug.cgi?id=152352
2390 Reviewed by Timothy Hatcher.
2392 * Localizations/en.lproj/localizedStrings.js:
2393 New "Trace" related strings.
2395 * UserInterface/Views/ConsoleMessageView.js:
2396 (WebInspector.ConsoleMessageView.prototype.expand):
2397 Since we auto-expand Trace messages for their Call Stack, don't also
2398 auto-expand a single inner object, which may be big and push the
2399 actual stack trace off the screen.
2401 (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
2402 Behave like Assert messages and absorb a message string, and include
2403 extra arguments gracefully.
2405 (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
2406 For expandable messages with simple extra arguments (console.trace with
2407 primitives and backtrace, or console.assert with primitives and backtrace)
2408 we were hiding the inline lossless previews and not showing them as a
2409 bulleted list below. We can just keep the lossless previews inline in the
2410 title, since they were only put there because they are small and lossless.
2412 (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2413 No need to hard code "console.trace()" in the clipboard.
2415 * UserInterface/Views/ConsoleMessageView.css:
2416 (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider):not(.inline-lossless)):
2417 (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider)): Deleted.
2418 Don't hide the inline lossless preview in the console message title when it is inline-lossless.
2420 * UserInterface/Views/ObjectTreeView.js:
2421 (WebInspector.ObjectTreeView.prototype.expand):
2422 Do not allow expanding a loss-less preview.
2424 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2426 Web Inspector: Add JSContext Script Profiling
2427 https://bugs.webkit.org/show_bug.cgi?id=151899
2429 Reviewed by Brian Burg.
2431 Enable the Timeline tab for JSContext inspection. Currently only
2432 JSContext inspection will use the ScriptProfiler domain, it will
2433 be enabled for Page inspection in a follow-up.
2435 First pass at the UI creates basic ScriptTimelineRecords for
2436 ScriptProfiler events. At the end of recording, when profiles
2437 are downloaded, it attaches profiles to the timeline records
2438 and refreshes the Scripts timeline.
2440 * UserInterface/Base/Main.js:
2441 (WebInspector.loaded):
2442 * UserInterface/Controllers/TimelineManager.js:
2443 (WebInspector.TimelineManager):
2444 (WebInspector.TimelineManager.defaultInstruments):
2445 (WebInspector.TimelineManager.prototype.computeElapsedTime):
2446 (WebInspector.TimelineManager.prototype.scriptProfilerIsTracking):
2447 (WebInspector.TimelineManager.prototype._loadNewRecording):
2448 (WebInspector.TimelineManager.prototype._mainResourceDidChange):
2449 (WebInspector.TimelineManager.prototype._resourceWasAdded):
2450 (WebInspector.TimelineManager.prototype._garbageCollected):
2451 (WebInspector.TimelineManager.prototype._addRecord): Deleted.
2452 * UserInterface/Main.html:
2453 * UserInterface/Models/Instrument.js:
2454 (WebInspector.Instrument.startLegacyTimelineAgent):
2455 * UserInterface/Models/ScriptInstrument.js:
2456 (WebInspector.ScriptInstrument.prototype.startInstrumentation):
2457 (WebInspector.ScriptInstrument.prototype.stopInstrumentation):
2458 (WebInspector.ScriptInstrument):
2459 * UserInterface/Models/ScriptTimelineRecord.js:
2460 (WebInspector.ScriptTimelineRecord.prototype.get profilePayload):
2461 (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
2462 (WebInspector.ScriptTimelineRecord):
2463 (WebInspector.ScriptTimelineRecord.EventType.displayName):
2464 * UserInterface/Models/Timeline.js:
2465 (WebInspector.Timeline.prototype.refresh):
2466 * UserInterface/Models/TimelineRecording.js:
2467 (WebInspector.TimelineRecording.sourceCodeTimelinesSupported):
2468 (WebInspector.TimelineRecording.prototype.timelineForRecordType):
2469 (WebInspector.TimelineRecording.prototype.addRecord):
2470 * UserInterface/Protocol/ScriptProfilerObserver.js: Copied from Source/WebInspectorUI/UserInterface/Models/ScriptInstrument.js.
2471 (WebInspector.ScriptProfilerObserver.prototype.trackingStart):
2472 (WebInspector.ScriptProfilerObserver.prototype.trackingUpdate):
2473 (WebInspector.ScriptProfilerObserver.prototype.trackingComplete):
2474 (WebInspector.ScriptProfilerObserver):
2475 * UserInterface/Views/ScriptTimelineView.js:
2476 (WebInspector.ScriptTimelineView):
2477 (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
2478 (WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordRefreshed):
2479 * UserInterface/Views/TimelineRecordTreeElement.js:
2480 (WebInspector.TimelineRecordTreeElement):
2481 * UserInterface/Views/TimelineTabContentView.js:
2482 (WebInspector.TimelineTabContentView.isTabAllowed):
2484 2015-12-17 Matt Baker <mattbaker@apple.com>
2486 Web Inspector: REGRESSION (r193913): Popover covers completion suggestions
2487 https://bugs.webkit.org/show_bug.cgi?id=152369
2489 Reviewed by Timothy Hatcher.
2491 * UserInterface/Views/Variables.css:
2493 Swap popover and tooltip z-index ordering.
2495 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2497 REGRESSION: Web Inspector: console.dir(...) should force allowing object expansion
2498 https://bugs.webkit.org/show_bug.cgi?id=152328
2500 Reviewed by Timothy Hatcher.
2502 * UserInterface/Views/ConsoleMessageView.js:
2503 (WebInspector.ConsoleMessageView.prototype._formatParameter):
2504 Propogate the force parameter down.
2506 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2508 Web Inspector: Improve copy of console messages with multiple arguments - console.log(obj1, obj2)
2509 https://bugs.webkit.org/show_bug.cgi?id=152330
2511 Reviewed by Timothy Hatcher.
2513 * UserInterface/Views/ConsoleMessageView.js:
2514 (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2515 Copy the inner text of the extra arguments list as well, for
2516 console messages with multiple objects. Rearrange the sections
2517 that, if there is a stack trace it comes at the end after
2518 multiple arguments. If there is no stack trace, include the
2519 location info next to the top line, before multiple arguments.
2521 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2523 Web Inspector: Improve copy of console message containing Array and Map output
2524 https://bugs.webkit.org/show_bug.cgi?id=152329
2526 Reviewed by Timothy Hatcher.
2528 Introduce a real space in the content instead of style specific
2529 margins so the existing copy/paste mechanism (innerText)
2530 will have spaces between index/key and value.
2532 * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
2533 (.object-tree-array-index .index-name): Deleted.
2534 * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
2535 (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
2536 (WebInspector.ObjectTreeArrayIndexTreeElement):
2537 * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
2538 (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name): Deleted.
2539 * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
2540 (WebInspector.ObjectTreeMapEntryTreeElement.prototype.titleFragment):
2541 (WebInspector.ObjectTreeMapEntryTreeElement):
2542 * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
2543 (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
2544 (WebInspector.ObjectTreeSetIndexTreeElement):
2546 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2548 Web Inspector: Typing object literal in the console causes a parse error
2549 https://bugs.webkit.org/show_bug.cgi?id=141737
2551 Reviewed by Timothy Hatcher.
2553 Provide a convenience in console evaluations for JSON object like input.
2554 If the console input starts with '{' and ends with '}' wrap the input
2555 in parenthesis to force evaluation as an expression.
2557 For example, input "{a:1}" would be convenience wrapped to "({a:1})"
2558 and produce the expected object. This helps avoid the unusual treatment
2559 of "{a:1}" as program containing a labeled statement, which is often
2560 not what the user expects. And in more realistic cases, like "{a:1, b:2}",
2561 produce a SyntaxError.
2563 * UserInterface/Controllers/RuntimeManager.js:
2564 (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2565 Detect and convenience wrap the given expression.
2567 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2569 Uncaught Exception View has undefined exception URL
2570 https://bugs.webkit.org/show_bug.cgi?id=152327
2572 Reviewed by Darin Adler.
2574 * UserInterface/Debug/UncaughtExceptionReporter.js:
2575 (handleUncaughtException):
2576 Use ErrorEvent's filename property, not url which is undefined.
2578 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
2580 Uncaught Exception: ReferenceError: Can't find variable: resolvedValue
2581 https://bugs.webkit.org/show_bug.cgi?id=152326
2583 Reviewed by Darin Adler.
2585 * UserInterface/Views/ObjectTreeBaseTreeElement.js:
2586 (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
2587 This identifier is used later on, so assign it here.
2589 2015-12-15 Joseph Pecoraro <pecoraro@apple.com>
2591 Web Inspector: Localize "global code" and "eval code" strings
2592 https://bugs.webkit.org/show_bug.cgi?id=152313
2594 Reviewed by Timothy Hatcher.
2596 * Localizations/en.lproj/localizedStrings.js:
2597 * UserInterface/Models/CallFrame.js:
2598 (WebInspector.CallFrame.fromPayload):
2599 Localize the strings given to use from the backend.
2601 2015-12-15 Matt Baker <mattbaker@apple.com>
2603 Web Inspector: Convert Sidebar classes to use View
2604 https://bugs.webkit.org/show_bug.cgi?id=152274
2606 Reviewed by Brian Burg.
2608 Updated Sidebar and SidebarPanel to inherit from View. Mostly mechanical changes.
2609 Once the DetailsSection class family inherits from View (https://webkit.org/b/152269),
2610 directly modifying a sidebar's 'contentView' element will rarely be necessary.
2612 * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
2613 (WebInspector.ApplicationCacheDetailsSidebarPanel):
2615 * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2616 (WebInspector.CSSStyleDetailsSidebarPanel):
2617 (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
2618 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
2619 Add/remove panels as subviews of the sidebar.
2620 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange):
2622 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2623 (WebInspector.DOMNodeDetailsSidebarPanel):
2625 * UserInterface/Views/DebuggerSidebarPanel.js:
2626 (WebInspector.DebuggerSidebarPanel):
2627 (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
2629 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2630 (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
2631 (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
2633 * UserInterface/Views/NavigationSidebarPanel.js:
2634 (WebInspector.NavigationSidebarPanel):
2635 (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
2636 (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
2638 * UserInterface/Views/ProbeDetailsSidebarPanel.js:
2639 (WebInspector.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
2641 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2642 (WebInspector.ResourceDetailsSidebarPanel):
2643 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
2644 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
2645 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
2647 * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2648 (WebInspector.ScopeChainDetailsSidebarPanel):
2649 (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.):
2650 (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
2652 * UserInterface/Views/SidebarPanel.js:
2654 (WebInspector.SidebarPanel):
2655 Replace the content element (the portion of the view excluding navigation
2656 bars, filter bars, etc.) with a View object. A sidebar's content can be a mixture
2657 of unwrapped DOM elements and View objects. For now, the content view's element
2658 will be mutated directly, but once the DetailsSection class family inherits from
2659 the View class the handling of details sections will be simplified.
2660 (WebInspector.SidebarPanel.prototype.get contentView):
2661 (WebInspector.SidebarPanel.prototype.shown):
2662 (WebInspector.SidebarPanel.prototype.hidden):
2663 (WebInspector.SidebarPanel.prototype.get contentElement): Deleted.
2664 Replaced by WebInspector.SidebarPanel.prototype.get contentView.
2666 * UserInterface/Views/StyleDetailsPanel.js:
2668 (WebInspector.StyleDetailsPanel):
2669 (WebInspector.StyleDetailsPanel.prototype.get element): Deleted.
2670 Defer to View.element getter.
2672 * UserInterface/Views/TimelineSidebarPanel.js:
2673 (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
2675 * UserInterface/Views/VisualStyleDetailsPanel.js:
2676 (WebInspector.VisualStyleDetailsPanel):
2677 (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
2679 2015-12-14 Joseph Pecoraro <pecoraro@apple.com>
2681 Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code
2682 https://bugs.webkit.org/show_bug.cgi?id=152280
2684 Reviewed by Brian Burg.
2686 * UserInterface/Images/Program.svg: Added.
2687 * UserInterface/Images/gtk/Program.svg: Added.
2688 Copied from TimelineRecordScriptEvaluated.svg.
2690 * UserInterface/Models/CallFrame.js:
2691 (WebInspector.CallFrame):
2692 (WebInspector.CallFrame.prototype.get programCode):
2693 Add a new property to check if this call frame is in program code.
2695 (WebInspector.CallFrame.fromPayload):
2696 Detect different sources of program code (global, eval, module).
2698 * UserInterface/Views/CallFrameIcons.css:
2699 (.program-icon .icon):
2700 * UserInterface/Views/CallFrameView.js:
2701 (WebInspector.CallFrameView.iconClassNameForCallFrame):
2702 Give program code the [S] global script icon like in profiles.
2704 2015-12-14 Joseph Pecoraro <pecoraro@apple.com>
2706 Web Inspector: Copy message from console with a stack trace does not include source code locations
2707 https://bugs.webkit.org/show_bug.cgi?id=152270
2709 Reviewed by Timothy Hatcher.
2711 * UserInterface/Views/ConsoleMessageView.js:
2712 (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2713 When the the StackTrace was upgraded to a real collection of CallFrame
2714 object's the CallFrame's got real SourceCodeLocation properties.
2716 2015-12-13 Matt Baker <mattbaker@apple.com>
2718 Web Inspector: Make TimelineOverview's graph container a subview
2719 https://bugs.webkit.org/show_bug.cgi?id=152235
2721 Reviewed by Brian Burg.
2723 * UserInterface/Views/TimelineOverview.js:
2724 (WebInspector.TimelineOverview):
2725 Create graph container subview.
2726 (WebInspector.TimelineOverview.prototype._instrumentAdded):
2727 Add overview to the graph container view.
2728 (WebInspector.TimelineOverview.prototype._instrumentRemoved):
2729 Remove overview from the graph container view.
2730 (WebInspector.TimelineOverview.prototype.layout):
2731 No longer necessary to manually lay out overview graphs.
2732 (WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
2735 2015-12-12 Matt Baker <mattbaker@apple.com>
2737 Web Inspector: CodeMirrorTokenTrackingController handles symbols in class definitions incorrectly
2738 https://bugs.webkit.org/show_bug.cgi?id=152218
2740 Reviewed by Timothy Hatcher.
2742 * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
2743 (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
2744 Stop checking for object literal shorthand property if an open parenthesis is found.
2745 This check became necessary with the introduction of ES6 class syntax.
2747 * UserInterface/Views/CodeMirrorAdditions.js:
2748 Use localState when available, to prevent passing a state that doesn't define a tokenize property.
2750 2015-12-12 Joseph Pecoraro <pecoraro@apple.com>
2752 REGRESSION (r191613): Web Inspector: Can't type spaces when editing DOM nodes
2753 https://bugs.webkit.org/show_bug.cgi?id=152173
2755 Reviewed by Timothy Hatcher.
2757 * UserInterface/Views/TimelineSidebarPanel.js:
2758 (WebInspector.TimelineSidebarPanel):
2759 Disable the keyboard shortcuts when they are created. They will be
2760 enabled when the panel is shown / hidden. It doesn't really make sense
2761 that these are on the sidebar panel instead of the tab, but things
2762 will be changing in Timelines soon anyways so just fix this now.
2764 2015-12-12 Nikita Vasilyev <nvasilyev@apple.com>
2766 Web Inspector: "Selected Element" should use sans-serif font, not monospace
2767 https://bugs.webkit.org/show_bug.cgi?id=152212
2769 Reviewed by Timothy Hatcher.
2771 * UserInterface/Views/ConsoleMessageView.css:
2772 (.console-user-command.special-user-log > .console-message-text):
2774 2015-12-11 Nikita Vasilyev <nvasilyev@apple.com>
2776 Web Inspector: When logging strings, detect stack traces and show them as StackTraceView
2777 https://bugs.webkit.org/show_bug.cgi?id=149790
2779 Reviewed by Timothy Hatcher.
2781 * UserInterface/Models/StackTrace.js:
2782 (WebInspector.StackTrace.isLikelyStackTrace): Added.
2784 * UserInterface/Views/ConsoleMessageView.css:
2785 (.console-message-extra-parameter .stack-trace):
2786 Display stack trace view on the same line as a list bullet point from
2787 console message extra parameter.
2789 * UserInterface/Views/ConsoleMessageView.js:
2790 (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
2791 Don't format with string substitutions for stack traces. E.g. there is
2792 no need to replace %s with the next argument.
2794 (WebInspector.ConsoleMessageView.prototype._isStackTrace): Added.
2795 (WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
2796 Detect stack traces and format them appropriately.
2798 2015-12-10 Nikita Vasilyev <nvasilyev@apple.com>
2800 Web Inspector: debugger dashboard's switching arrows are positioned too close to the dashboard border
2801 https://bugs.webkit.org/show_bug.cgi?id=151867
2803 Reviewed by Timothy Hatcher.
2805 * UserInterface/Views/DashboardContainerView.css:
2806 (.dashboard-container .advance-arrow):
2808 2015-12-10 Matt Baker <mattbaker@apple.com>
2810 Web Inspector: debugger popover should have source location link when showing function source
2811 https://bugs.webkit.org/show_bug.cgi?id=151866
2813 Reviewed by Brian Burg.
2815 Added source code location link to function popover header.
2817 * UserInterface/Views/SourceCodeTextEditor.js:
2818 (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
2819 Create source code location link from response payload.
2820 (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
2822 2015-12-10 Nikita Vasilyev <nvasilyev@apple.com>
2824 Web Inspector: [Meta] Unify z-index values in Inspector's CSS
2825 https://bugs.webkit.org/show_bug.cgi?id=151978
2827 Introduce CSS variables for z-index due to recurring issues with incorrectly overlapping elements.
2829 From now on, all z-index values >= 64 must be defined as variables.
2830 Values below 64 must not.
2832 Reviewed by Timothy Hatcher.
2834 * UserInterface/Views/Variables.css:
2836 Introduce z-index variables.
2838 * UserInterface/Debug/UncaughtExceptionReporter.css:
2840 * UserInterface/Views/BoxModelDetailsSectionRow.css:
2841 (.details-section .row.box-model .editing):
2842 * UserInterface/Views/CompletionSuggestionsView.css:
2843 (.completion-suggestions):
2844 * UserInterface/Views/DashboardContainerView.css:
2845 (.dashboard-container .advance-arrow):
2846 * UserInterface/Views/DataGrid.css:
2847 (.data-grid .resizer):
2848 * UserInterface/Views/DetailsSection.css:
2849 (.details-section > .header):
2850 (.details-section .details-section > .header):
2851 * UserInterface/Views/FindBanner.css:
2853 (.find-banner > button.segmented:active):
2854 * UserInterface/Views/Main.css:
2856 (.message-text-view):
2857 (.bouncy-highlight):
2858 * UserInterface/Views/Popover.css:
2860 * UserInterface/Views/Resizer.css:
2862 (.glass-pane-for-drag):
2863 * UserInterface/Views/TimelineOverview.css:
2864 (.timeline-overview > .scroll-container):
2865 * UserInterface/Views/VisualStyleSelectorSection.css:
2866 (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
2868 2015-12-09 Matt Baker <mattbaker@apple.com>
2870 Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
2871 https://bugs.webkit.org/show_bug.cgi?id=151876
2873 Reviewed by Brian Burg.
2875 * UserInterface/Base/Main.js:
2876 Use root view singleton instead of creating it explicitly.
2878 * UserInterface/Views/View.js:
2879 (WebInspector.View):
2880 (WebInspector.View.rootView):
2881 Singleton root view access. Lazily create and return a view backed
2882 by the document's body element.
2883 (WebInspector.View.prototype.isDescendantOf):
2884 (WebInspector.View.prototype.insertSubviewBefore):
2885 (WebInspector.View.prototype.removeSubview):
2886 (WebInspector.View.prototype.didMoveToWindow):
2887 Notify the view when it becomes, or is no longer, descended from the root view.
2888 (WebInspector.View.prototype.didMoveToParent):
2889 Notify the view when it's added to, or removed from, a parent view.
2890 (WebInspector.View._scheduleLayoutForView):
2891 (WebInspector.View._cancelScheduledLayoutForView):
2892 (WebInspector.View.prototype.makeRootView): Deleted.
2894 (WebInspector.View.prototype.didAttach): Deleted.
2895 (WebInspector.View.prototype.didDetach): Deleted.
2896 Replaced by didMoveToParent.
2898 2015-12-09 Brian Burg <bburg@apple.com>
2900 Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
2901 https://bugs.webkit.org/show_bug.cgi?id=151635
2903 Reviewed by Timothy Hatcher.
2905 When closing and reopening the inspector, the setting for whether
2906 to dump protocol messages should be persisted. Otherwise, enabling
2907 dumping from the debug-only UI will miss the initial flood of
2908 messages that are processed when the Inspector loads initial data.
2910 To support a persistent setting, and build some infrastructure for
2911 more advanced uses of collected protocol messages, this patch adds
2912 a new object to trace protocol events. It gets callbacks for each
2913 and implements the console-dumping functionality previously baked in
2914 to InspectorBackend.
2916 In follow-up patches, other protocol tracers will be added to save
2917 protocol data to disk, marshall it to a higher inspection level,
2918 or provide more fine-grained control over what is logged.
2920 This change moves Setting.js into the Base/ directory,
2921 since it is used by Views, Models, and now Protocol classes.
2923 * UserInterface/Base/Setting.js: Renamed from Source/WebInspectorUI/UserInterface/Models/Setting.js.
2924 (WebInspector.Setting):
2925 (WebInspector.Setting.prototype.get name):
2926 (WebInspector.Setting.prototype.get value):
2927 (WebInspector.Setting.prototype.set value):
2928 * UserInterface/Main.html:
2929 * UserInterface/Protocol/InspectorBackend.js:
2930 (InspectorBackendClass):
2931 (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
2932 (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
2934 We still want to support the legacy way to enable dumping:
2935 `InspectorBackend.dumpInspectorProtocolMessages = true`. This
2936 is because some tests always use it, and it's easier to set this
2937 flag in a custom Bootstrap.js file than to configure the Setting.
2939 (InspectorBackendClass.prototype.set dumpInspectorTimeStats):
2940 (InspectorBackendClass.prototype.get dumpInspectorTimeStats):
2942 We still want to support the legacy way to enable dumping:
2943 `InspectorBackend.dumpInspectorTimeStats = true`. This is
2944 because MessageDispatcher checks this flag for its logging.
2946 (InspectorBackendClass.prototype.set activeTracer):
2947 (InspectorBackendClass.prototype.get activeTracer):
2949 Set the active tracer, finalizing and removing any active tracer
2950 if one exists. If removing a custom tracer (setting to null), then
2951 re-sync activeTracer with the automatic tracing Setting.
2953 (InspectorBackendClass.prototype.dispatch):
2954 (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
2956 Sync the Setting with activeTracer. If an custom tracer is active,
2957 don't replace it with the automatic logging tracer.
2959 (InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
2960 (InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
2961 (InspectorBackendClass.prototype._sendMessageToBackend):
2962 (InspectorBackendClass.prototype._dispatchResponse):
2963 (InspectorBackendClass.prototype._dispatchEvent):
2964 (InspectorBackendClass.prototype._flushPendingScripts):
2965 * UserInterface/Protocol/LoggingProtocolTracer.js: Added.
2966 (WebInspector.LoggingProtocolTracer):
2967 (WebInspector.LoggingProtocolTracer.prototype.set dumpMessagesToConsole):
2968 (WebInspector.LoggingProtocolTracer.prototype.get dumpMessagesToConsole):
2969 (WebInspector.LoggingProtocolTracer.prototype.set dumpTimingDataToConsole):
2970 (WebInspector.LoggingProtocolTracer.prototype.get dumpTimingDataToConsole):
2971 (WebInspector.LoggingProtocolTracer.prototype.logFrontendException):
2972 (WebInspector.LoggingProtocolTracer.prototype.logProtocolError):
2973 (WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
2974 (WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
2975 (WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
2976 (WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
2977 (WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):
2978 (WebInspector.LoggingProtocolTracer.prototype._processEntry):
2979 * UserInterface/Protocol/ProtocolTracer.js: Added.
2980 (WebInspector.ProtocolTracer.prototype.logStarted):
2981 (WebInspector.ProtocolTracer.prototype.logFrontendException):
2982 (WebInspector.ProtocolTracer.prototype.logProtocolError):
2983 (WebInspector.ProtocolTracer.prototype.logFrontendRequest):
2984 (WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
2985 (WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
2986 (WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
2987 (WebInspector.ProtocolTracer.prototype.logDidHandleEvent): (WebInspector.ProtocolTracer.prototype.logFinished):
2988 (WebInspector.ProtocolTracer):
2989 * UserInterface/Test.html:
2991 2015-12-09 Brian Burg <bburg@apple.com>
2993 Web Inspector: zoom with Ctrl +/- doesn't work correctly when inspector is docked
2994 https://bugs.webkit.org/show_bug.cgi?id=152076
2996 Reviewed by Timothy Hatcher.
2998 When computing the new width or height of the inspector, take the zoom level into
2999 account. window.inner{Width,Height} are in document pixels, but we need to specify
3000 device pixels to InspectorFrontendHost.
3002 * UserInterface/Base/Main.js:
3004 2015-12-08 Joseph Pecoraro <pecoraro@apple.com>
3006 Web Inspector: Workaround arrow function issue in TimelineOverviewGraph.js
3007 https://bugs.webkit.org/show_bug.cgi?id=152031
3009 Reviewed by Timothy Hatcher.
3011 * UserInterface/Views/TimelineOverviewGraph.js:
3012 (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
3013 Workaround an existing arrow function issue by moving off of arrow functions here.
3015 2015-12-08 Matt Baker <mattbaker@apple.com>
3017 Web Inspector: Add a hidden property to TreeOutline
3018 https://bugs.webkit.org/show_bug.cgi?id=152014
3020 Reviewed by Timothy Hatcher.
3022 * UserInterface/Views/NavigationSidebarPanel.js:
3023 Removed static property for "hidden" CSS class. No longer used.
3024 (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
3025 Fixed bug in order of visibleTreeOutlines add/remove.
3026 (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
3028 * UserInterface/Views/TimelineSidebarPanel.js:
3029 (WebInspector.TimelineSidebarPanel):
3030 (WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
3032 * UserInterface/Views/TreeOutline.js:
3033 (WebInspector.TreeOutline):
3034 (WebInspector.TreeOutline.prototype.get hidden):
3035 (WebInspector.TreeOutline.prototype.set hidden):
3036 Added hidden property, set DOM element hidden attribute.
3037 (WebInspector.TreeElement.prototype.set hidden):
3038 Remove CSS class, set DOM element hidden attribute.
3039 (WebInspector.TreeElement.prototype._attach):
3040 (WebInspector.TreeElement.prototype.expand):
3042 2015-12-08 Matt Baker <mattbaker@apple.com>
3044 Web Inspector: Global Breakpoints should always be visible
3045 https://bugs.webkit.org/show_bug.cgi?id=151066
3047 Reviewed by Timothy Hatcher.
3049 * UserInterface/Views/DebuggerSidebarPanel.js:
3050 (WebInspector.DebuggerSidebarPanel):
3051 Turn off filtering for Global Breakpoints elements.
3053 * UserInterface/Views/NavigationSidebarPanel.js:
3054 (WebInspector.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
3055 Allow filtering to be turned off for specific tree elements.
3056 (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
3057 Make element visible if filtering suppressed.
3058 (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
3059 Visible elements with filtering disabled aren't considered when
3060 showing/hiding the empty content placeholder.
3062 2015-12-07 Brian Burg <bburg@apple.com>
3064 Web Inspector: Uncaught Exception page should have better styles and handle more error cases
3065 https://bugs.webkit.org/show_bug.cgi?id=151923
3067 Reviewed by Timothy Hatcher.
3069 Restructure the Uncaught Exception reporting page to act more like
3070 a modal sheet. Distinguish between uncaught exceptions before and
3071 after the frontend is initially loaded. If the frontend is loaded,
3072 add a clickable link that dismisses the sheet and ignores the error.
3073 If the inspector finished loading, then only show at most one
3074 exception at a time, since subsequent interactions can cause spurious
3075 errors when the sheet is active.
3077 Split existing code into multiple functions so it's easier to follow.
3078 Add miscellaneous guards against internal corruption and weird cases.
3080 * UserInterface/Base/Main.js:
3081 (WebInspector.contentLoaded): Store the flag on the global object
3082 in case WebInspector becomes shadowed or otherwise unusable.
3084 * UserInterface/Debug/UncaughtExceptionReporter.css: Renamed from Source/WebInspectorUI/UserInterface/Debug/CatchEarlyErrors.css.
3085 (div.sheet-container):
3086 (div.uncaught-exception-sheet):
3087 (div.uncaught-exception-sheet a):
3088 (div.uncaught-exception-sheet a:active):
3089 (div.uncaught-exception-sheet h2):
3090 (div.uncaught-exception-sheet h1 > img):
3091 (div.uncaught-exception-sheet h2 > img):
3092 (div.uncaught-exception-sheet dl):
3093 (div.uncaught-exception-sheet dt):
3094 (div.uncaught-exception-sheet dd):
3095 (div.uncaught-exception-sheet ul):
3096 (div.uncaught-exception-sheet li):
3097 * UserInterface/Debug/UncaughtExceptionReporter.js: Renamed from CatchEarlyErrors.js.
3098 (stopEventPropagation): Allow clicking whitelisted links on the sheet.
3099 (blockEventHandlers):
3100 (unblockEventHandlers):
3101 (handleUncaughtException):
3102 (dismissErrorSheet):
3103 (createErrorSheet.insertWordBreakCharacters):
3106 * UserInterface/Main.html:
3107 * UserInterface/Protocol/MessageDispatcher.js:
3108 (WebInspector.dispatchMessageFromBackend): Don't try to dispatch
3109 messages from the backend when showing the error sheet. They will
3110 probably fail, so suspend dispatching until the sheet is dismissed.
3112 2015-12-06 Devin Rousso <dcrousso+webkit@gmail.com>
3114 Web Inspector: Regression (r192936) - changing selectors in the visual styles sidebar is broken
3115 https://bugs.webkit.org/show_bug.cgi?id=151924
3117 Reviewed by Brian Burg.
3119 * UserInterface/Views/VisualStyleSelectorSection.js:
3120 (WebInspector.VisualStyleSelectorSection):
3121 (WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
3122 Now uses an event listener instead of an "onselect" function.
3124 2015-12-06 Matt Baker <mattbaker@apple.com>
3126 Web Inspector: Comparisons in setters should use the massaged value (" = x || 0/false/null/etc")
3127 https://bugs.webkit.org/show_bug.cgi?id=151910
3129 Reviewed by Timothy Hatcher.
3131 Updated setters that use default values to convert falsy inputs to the default value
3132 before compariing against the current value.
3134 * UserInterface/Models/TimelineMarker.js:
3135 (WebInspector.TimelineMarker.prototype.set time):
3136 Assert new value is a number.
3138 * UserInterface/Views/DataGrid.js:
3139 (WebInspector.DataGridNode.prototype.set hidden):
3140 (WebInspector.DataGridNode.prototype.set data):
3141 Assert new value is of type object. Use shallowEqual compare before setting value.
3143 * UserInterface/Views/GeneralTreeElement.js:
3144 (WebInspector.GeneralTreeElement.prototype.set classNames):
3145 Use shallowEqual compare before setting value.
3146 (WebInspector.GeneralTreeElement.prototype.set mainTitle):
3147 (WebInspector.GeneralTreeElement.prototype.set subtitle):
3148 (WebInspector.GeneralTreeElement.prototype.set status):
3149 (WebInspector.GeneralTreeElement.prototype.set tooltipHandledSeparately):
3151 * UserInterface/Views/TimelineOverview.js:
3152 (WebInspector.TimelineOverview.prototype.set startTime):
3153 (WebInspector.TimelineOverview.prototype.set currentTime):
3154 (WebInspector.TimelineOverview.prototype.set endTime):
3155 (WebInspector.TimelineOverview.prototype.set scrollStartTime):
3156 (WebInspector.TimelineOverview.prototype.set selectionStartTime):
3157 Check current ruler selectionStartTime before setting value.
3159 * UserInterface/Views/TimelineOverviewGraph.js:
3160 (WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
3161 (WebInspector.TimelineOverviewGraph.prototype.set startTime):
3162 (WebInspector.TimelineOverviewGraph.prototype.set endTime):
3163 (WebInspector.TimelineOverviewGraph.prototype.set currentTime):
3165 * UserInterface/Views/TimelineRuler.js:
3166 (WebInspector.TimelineRuler):
3167 (WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
3168 (WebInspector.TimelineRuler.prototype.set formatLabelCallback):
3169 (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
3170 (WebInspector.TimelineRuler.prototype.set zeroTime):
3171 (WebInspector.TimelineRuler.prototype.set startTime):
3172 (WebInspector.TimelineRuler.prototype.set endTime):
3173 (WebInspector.TimelineRuler.prototype.set secondsPerPixel):
3174 (WebInspector.TimelineRuler.prototype.set selectionStartTime):
3175 (WebInspector.TimelineRuler.prototype.set selectionEndTime):
3176 (WebInspector.TimelineRuler.prototype.set duration): Deleted.
3177 The ruler duration and "pinned" state are controlled by setting an end
3178 time. Removed since it wasn't being used, and there shouldn't be two
3179 ways to the exact same thing.
3181 * UserInterface/Views/TimelineView.js:
3182 (WebInspector.TimelineView.prototype.set zeroTime):
3183 (WebInspector.TimelineView.prototype.set startTime):
3184 (WebInspector.TimelineView.prototype.set endTime):
3186 2015-12-04 Commit Queue <commit-queue@webkit.org>
3188 Unreviewed, rolling out r193486.
3189 https://bugs.webkit.org/show_bug.cgi?id=151904
3191 Causes Infinite Recursion in Timeline Recording (Requested by
3192 JoePeck on #webkit).
3196 "Web Inspector: when a marked-dirty subview is attached to a
3197 parent View, dirtyDescendantsCount gets out of sync"
3198 https://bugs.webkit.org/show_bug.cgi?id=151876
3199 http://trac.webkit.org/changeset/193486
3201 2015-12-04 Joseph Pecoraro <pecoraro@apple.com>
3203 Web Inspector: Uncaught Exception with Reload shortcut in JSContext Inspector
3204 https://bugs.webkit.org/show_bug.cgi?id=151896
3206 Reviewed by Timothy Hatcher.
3208 * UserInterface/Base/Main.js:
3209 (WebInspector.contentLoaded):
3210 Do not implicitly prevent default on these keyboard shortcuts
3211 so we can system beep if we do not do anything.
3213 (WebInspector._reloadPage):
3214 (WebInspector._reloadPageIgnoringCache):
3215 Bail if there is no PageAgent without preventing default for
3216 a beep system beep. Prevent default if we did something.
3218 2015-12-04 Matt Baker <mattbaker@apple.com>
3220 Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
3221 https://bugs.webkit.org/show_bug.cgi?id=151876
3223 Reviewed by Brian Burg.
3225 * UserInterface/Views/NewTabContentView.js:
3226 (WebInspector.NewTabContentView.prototype._updateShownTabs):
3227 Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.
3229 * UserInterface/Views/View.js:
3230 (WebInspector.View._scheduleLayoutForView):
3231 Always perform a synchronous layout when a view that isn't descended from the
3232 root view schedules a layout.
3234 2015-12-04 Brian Burg <bburg@apple.com>
3236 Web Inspector: support runtime registration of tab type associations
3237 https://bugs.webkit.org/show_bug.cgi?id=151594
3239 Reviewed by Joseph Pecoraro.
3241 We want to add special tabs that only exist in engineering builds
3242 for debugging purposes. Though the relevant models and views can be
3243 put in the Debug/ directory to exclude them from production builds,
3244 there's no way to register tabs conditionally at runtime; tabs are
3247 This patch makes it possible to register new tab types at runtime.
3248 First, WebInspector keeps a map of known, registered tab classes.
3249 Details that were hardcoded before---whether to show in New Tab,
3250 whether a tab can be instantiated given the active domains, UI text,
3251 etc.---are now static methods on the base TabContentView or overidden
3252 in its subclasses. Lastly, a public method allows code in Bootstrap.js
3253 to register tabs at runtime. Doing so sends a notification so the
3254 NewTabContentView can show the newly available tab item.
3256 * UserInterface/Base/Main.js:
3257 (WebInspector.contentLoaded):
3258 (WebInspector.isTabTypeAllowed):
3259 (WebInspector.knownTabClasses): Added, used by NewTabContentView.
3260 (WebInspector._createTabContentViewForType): Renamed from _tabContentViewForType.
3261 (WebInspector._rememberOpenTabs):
3262 (WebInspector._updateNewTabButtonState):
3263 (WebInspector._tryToRestorePendingTabs): Added.
3265 Whenever a new tab is registered, try to restore pending tabs, since
3266 an extra tab won't be added initially when production tabs are added.
3267 But, it could have been saved in the Setting for opened tabs.
3269 (WebInspector.showNewTabTab):
3270 (WebInspector.isNewTabWithTypeAllowed):
3271 (WebInspector.createNewTabWithType):
3272 (WebInspector._tabContentViewForType): Deleted.
3273 * UserInterface/Base/Object.js:
3274 * UserInterface/Views/ConsoleTabContentView.js:
3275 (WebInspector.ConsoleTabContentView):
3276 (WebInspector.ConsoleTabContentView.tabInfo): Added.
3277 * UserInterface/Views/DebuggerTabContentView.js:
3278 (WebInspector.DebuggerTabContentView):
3279 (WebInspector.DebuggerTabContentView.tabInfo): Added.
3280 * UserInterface/Views/ElementsTabContentView.js:
3281 (WebInspector.ElementsTabContentView):
3282 (WebInspector.ElementsTabContentView.tabInfo): Added.
3283 (WebInspector.ElementsTabContentView.isTabAllowed): Added.
3284 * UserInterface/Views/NetworkTabContentView.js:
3285 (WebInspector.NetworkTabContentView):