Web Inspector: Add Context Menus to Object Tree properties
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Add Context Menus to Object Tree properties
4         https://bugs.webkit.org/show_bug.cgi?id=142125
5
6         Reviewed by Timothy Hatcher.
7
8         * Localizations/en.lproj/localizedStrings.js:
9         * UserInterface/Views/ObjectPropertiesSection.js:
10         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
11         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
12         Fix legacy implementation.
13
14         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
15         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
16         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
17         Give prototype buttons a tooltip.
18
19         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu):
20         (WebInspector.ObjectTreePropertyTreeElement.prototype._contextMenuHandler):
21         (WebInspector.ObjectTreePropertyTreeElement.prototype._appendMenusItemsForObject):
22         Context Menus based on the selected object.
23
24 2015-02-27  Joseph Pecoraro  <pecoraro@apple.com>
25
26         Web Inspector: Use Maps in ResourceCollection instead of objects
27         https://bugs.webkit.org/show_bug.cgi?id=142101
28
29         Reviewed by Timothy Hatcher.
30
31         * UserInterface/Models/ResourceCollection.js:
32         (WebInspector.ResourceCollection):
33         (WebInspector.ResourceCollection.prototype.resourcesWithType):
34         (WebInspector.ResourceCollection.prototype.removeAllResources):
35         (WebInspector.ResourceCollection.prototype.resourceForURL):
36         (WebInspector.ResourceCollection.prototype._associateWithResource):
37         (WebInspector.ResourceCollection.prototype._disassociateWithResource):
38         (WebInspector.ResourceCollection.prototype._resourceURLDidChange):
39         (WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
40         Use Maps instead of objects.
41
42 2015-02-26  Nikita Vasilyev  <nvasilyev@apple.com>
43
44         Web Inspector: Add a subtle blue background for selected console messages
45         https://bugs.webkit.org/show_bug.cgi?id=142073
46
47         Reviewed by Timothy Hatcher.
48
49         * UserInterface/Views/LogContentView.css:
50         (.console-item.selected::after):
51         (.console-messages:focus .console-item.selected):
52         (.console-messages:focus .console-item.selected + .console-item):
53         (.console-error-level + .console-item):
54         (.console-error-level .section .header .title):
55         (.console-warning-level):
56         (.console-warning-level + .console-item):
57
58 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
59
60         Web Inspector: Colored console messages apply text color to object tree properties
61         https://bugs.webkit.org/show_bug.cgi?id=142051
62
63         Reviewed by Timothy Hatcher.
64
65         * UserInterface/Views/ObjectPreviewView.css:
66         (.object-preview):
67         * UserInterface/Views/ObjectTreeView.css:
68         (.object-tree):
69         Default the color to black within Object Tree and Object Preview views.
70
71 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
72
73         Web Inspector: Clear Log on Reload clears some logs that were after reload
74         https://bugs.webkit.org/show_bug.cgi?id=142070
75
76         Reviewed by Timothy Hatcher.
77
78         * UserInterface/Views/LogContentView.js:
79         (WebInspector.LogContentView.prototype._sessionStarted):
80         We can bail after calling clearLog, since that will already start
81         a new session for us.
82
83         (WebInspector.LogContentView.prototype._clearLog):
84         Don't trigger a backend clear messages, since that will cause us to
85         clear messages received between the request and response.
86
87 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
88
89         Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
90         https://bugs.webkit.org/show_bug.cgi?id=142061
91
92         Reviewed by Timothy Hatcher.
93
94         * UserInterface/Controllers/RuntimeManager.js:
95         (WebInspector.RuntimeManager.prototype.evalCallback):
96         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
97         Add a saveResult parameter for the new protocol command in parameter.
98
99         * UserInterface/Views/ConsoleMessageImpl.js:
100         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
101         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
102         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
103         (WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):
104         * UserInterface/Views/ObjectTreeView.js:
105         (WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
106         For console evaluation results, show a "= $n" when the evaluation was
107         given a saved result index.
108
109         * UserInterface/Views/LogContentView.css:
110         (.console-saved-variable):
111         * UserInterface/Views/ObjectPreviewView.css:
112         (.object-preview-name):
113         Make $n and class names in previews always non-italics.
114
115         * UserInterface/Controllers/JavaScriptLogViewController.js:
116         (WebInspector.JavaScriptLogViewController.prototype.printResult):
117         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
118         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
119         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
120         * UserInterface/Controllers/LogManager.js:
121         (WebInspector.LogManager.prototype.messagesCleared):
122         (WebInspector.LogManager.prototype._mainResourceDidChange):
123         Try to provide better autocompletion for $n, by populating autocompletion menus
124         from $1-$n where n is the maximum saved result index seen. Clear the maximum
125         when we clear the console.
126
127         * UserInterface/Views/ConsoleCommandResult.js:
128         (WebInspector.ConsoleCommandResult):
129         (WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
130         Keep track of the maximum savedResultIndex for console evaluation results.
131
132 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
133
134         Web Inspector: Set/Map appear as lossless when they have lossy entries
135         https://bugs.webkit.org/show_bug.cgi?id=142050
136
137         Reviewed by Timothy Hatcher.
138
139         * UserInterface/Views/ObjectPreviewView.js:
140         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
141         Take into account the lossless states of entry keys and values.
142
143 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
144
145         Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
146         https://bugs.webkit.org/show_bug.cgi?id=142037
147
148         Reviewed by Timothy Hatcher.
149
150         * Localizations/en.lproj/localizedStrings.js:
151         * UserInterface/Main.html:
152         Miscellaneous changes.
153
154         * UserInterface/Models/PropertyDescriptor.js:
155         (WebInspector.PropertyDescriptor.prototype.isIndexProperty):
156         Useful for quickly checking if this property is numeric and possibly
157         an array index.
158
159         * UserInterface/Models/PropertyPath.js:
160         (WebInspector.PropertyPath.prototype.appendMapKey):
161         (WebInspector.PropertyPath.prototype.appendMapValue):
162         (WebInspector.PropertyPath.prototype.appendSetIndex):
163         Be specific about property paths into maps / sets. Note that a map
164         value may be displayable if the key is simple.
165
166         * UserInterface/Protocol/RemoteObject.js:
167         (WebInspector.RemoteObject.prototype.hasValue):
168         A simple value RemoteObject may have the value "undefined". So provide
169         a falsey proof helper that actually checks if we have a value.
170
171         (WebInspector.RemoteObject.prototype.isArray):
172         (WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
173         (WebInspector.RemoteObject.prototype.wrappedCallback):
174         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
175         Currently backend APIs exist only to get all properties. In the case
176         of collections, we often want to get only one property (__proto__).
177         This is a simple implementation on top of callFunctionOn.
178
179         * UserInterface/Views/ConsoleMessageImpl.js:
180         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
181         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
182         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
183         (WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
184         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
185         Simplify array formatted to just use an ObjectTreeView. Add fixmes
186         that we should seed the ObjectTreeView with a starting property path.
187
188         * UserInterface/Views/FormattedValue.css:
189         (.formatted-node > ol):
190         Sometimes, a node's display was getting overridden by various console styles.
191         Force a node to always display block. We may be able to remove this later.
192
193         * UserInterface/Views/FormattedValue.js:
194         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
195         Helper for formatting a node / object / value more easily. This
196         is used by all collection types.
197
198         * UserInterface/Views/ObjectPreviewView.js:
199         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
200         We lost the nice sparse array support when switching to the new preview path,
201         we should add it back.
202
203         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
204         (.object-tree-array-index):
205         (.object-tree-array-index > .titles):
206         (.object-tree-array-index > .icon):
207         (.object-tree-array-index .index-name):
208         (.object-tree-array-index .index-value .object-tree):
209         (.object-tree-array-index .index-value .object-tree .object-tree-outline):
210         (.object-tree-property + ol .object-tree-array-index):
211         New styles specific to array index tree elements.
212
213         * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
214         (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
215         (.object-tree-map-entry.key):
216         (.object-tree-map-entry.key:first-of-type):
217         (.object-tree-map-entry):
218         New styles specific to map key/value tree elements.
219
220         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.
221         Remove old collection implementation.
222
223         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.
224         (WebInspector.ObjectTreeArrayIndexTreeElement):
225         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
226         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
227         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
228         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
229         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
230         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
231         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
232         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
233         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
234         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
235         Index followed by formatted value. Unfortunately a page can hack up an array
236         with getter properties, so also support getter values in an array. This ends
237         up copying a lot of ObjectTreePropertyTreeElement as a result.
238
239         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.
240         (WebInspector.ObjectTreeMapEntryTreeElement):
241         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
242         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
243         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
244         (WebInspector.ObjectTreeMapKeyTreeElement):
245         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
246         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
247         (WebInspector.ObjectTreeMapValueTreeElement):
248         (WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
249         (WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
250         Key/value followed by formatted value.
251
252         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.
253         (WebInspector.ObjectTreeSetIndexTreeElement):
254         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
255         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
256         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
257         Dot followed by formatted value.
258
259         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
260         (.object-tree-property > .titles):
261         Reformat.
262
263         * UserInterface/Views/ObjectTreeView.css:
264         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
265         Upgrade generic styles.
266
267         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
268         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
269         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
270         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
271         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
272         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
273         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
274         * UserInterface/Views/ObjectTreeView.js:
275         (WebInspector.ObjectTreeView):
276         (WebInspector.ObjectTreeView.emptyMessageElement):
277         (WebInspector.ObjectTreeView.prototype.expand):
278         (WebInspector.ObjectTreeView.prototype.collapse):
279         (WebInspector.ObjectTreeView.prototype.update):
280         (WebInspector.ObjectTreeView.prototype._updateChildren):
281         (WebInspector.ObjectTreeView.prototype._updateEntries):
282         (WebInspector.ObjectTreeView.prototype._updateProperties):
283         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
284         Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
285         entries or properties depending on the type of the object being expanded.
286
287         (WebInspector.ObjectTreeView.prototype._trackWeakEntries):
288         (WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
289         Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
290         collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.
291
292 2015-02-26  Brent Fulgham  <bfulgham@apple.com>
293
294         [Win] Make build logs more legible by reducing noise
295         https://bugs.webkit.org/show_bug.cgi?id=142034
296
297         Reviewed by Alexey Proskuryakov.
298
299         Modify batch files, makefiles, and DOS commands to remove
300         uninteresting/unhelpful output.
301
302         * WebInspectorUI.vcxproj/WebInspectorUI.make:
303
304 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
305
306         Web Inspector: Improve Regex/Error output in Object Tree and Previews
307         https://bugs.webkit.org/show_bug.cgi?id=142010
308
309         Reviewed by Timothy Hatcher.
310
311         * UserInterface/Views/ObjectPreviewView.js:
312         (WebInspector.ObjectPreviewView):
313         (WebInspector.ObjectPreviewView.prototype._initTitleElement):
314         Since some object types may be formatted as simple values, ensure they get
315         the formatted style even in the title view.
316
317         (WebInspector.ObjectPreviewView.prototype._appendPreview):
318         Those object types that can be formatted as simple values should skip
319         to the value formatting phase.
320
321         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
322         Do not show property previews for error objects. Always assume lossy
323         so that it can be expanded.
324
325         * UserInterface/Views/ObjectTreeView.js:
326         (WebInspector.ObjectTreeView):
327         Make a similiar improvement for ObjectTree titles when previews are
328         unavailable. This will make dir(value) show a stylized value in the
329         title of the Object Tree.
330
331 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
332
333         Web Inspector: Improve PropertyPath display strings for getters / values
334         https://bugs.webkit.org/show_bug.cgi?id=142008
335
336         Reviewed by Timothy Hatcher.
337
338         * UserInterface/Base/Utilities.js:
339         (doubleQuotedString):
340         Helper to double quote a string and escape double quotes with-in it.
341
342         * UserInterface/Models/PropertyPath.js:
343         (WebInspector.PropertyPath.prototype.get reducedPath):
344         Compute the path eliminating unnecessary __proto__s. Note we don't
345         property handle the case where a .__proto__.x is override earlier
346         by a .x, but that case is rare.
347
348         (WebInspector.PropertyPath.prototype.displayPath):
349         Helper for choosing fullPath or reducedPath display strings.
350
351         (WebInspector.PropertyPath.prototype.appendPropertyName):
352         (WebInspector.PropertyPath.prototype.appendGetterPropertyName):
353         (WebInspector.PropertyPath.prototype.appendSetterPropertyName):
354         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
355         When appending a descriptor, specify if it is for a getter/setter or value.
356         For getters / setters the actual function can be directly fetched via
357         __lookupGetter__/__lookupSetter__. Continue to use the property name for values.
358
359         * UserInterface/Views/FormattedValue.js:
360         (WebInspector.FormattedValue.createElementForTypesAndValue):
361
362         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
363         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
364         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
365         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
366         (WebInspector.ObjectTreePropertyTreeElement.prototype):
367
368 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
369
370         Web Inspector: Eliminate console-formatted-* class names in favor of formatted-*
371         https://bugs.webkit.org/show_bug.cgi?id=141948
372
373         Reviewed by Timothy Hatcher.
374
375         * UserInterface/Views/FormattedValue.js:
376         (WebInspector.FormattedValue.createElementForNode):
377         Helper for formatting a node as a DOMTreeOutline.
378
379         * UserInterface/Views/ConsoleMessageImpl.js:
380         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
381         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
382         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
383         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
384         (WebInspector.ConsoleMessageImpl.prototype._printArray):
385         (WebInspector.ConsoleMessageImpl.prototype.): Deleted.
386         * UserInterface/Views/LogContentView.css:
387         (.console-user-command-result):
388         (.console-formatted-object): Deleted.
389         (.console-object-preview): Deleted.
390         (.expanded .console-object-preview): Deleted.
391         (.console-object-preview .name): Deleted.
392         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
393         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
394         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
395         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
396         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap): Deleted.
397         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section): Deleted.
398
399         * UserInterface/Views/LogContentView.js:
400         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
401         (WebInspector.LogContentView.prototype._rightArrowWasPressed):
402         Add FIXMEs since this will no longer work with ObjectTree.
403
404         * UserInterface/Views/ObjectPreviewView.css:
405         (.object-preview):
406         * UserInterface/Views/ObjectTreeView.css:
407         (.object-tree):
408         Copy over the font styles from console-formatted-object.
409
410         * UserInterface/Views/ObjectPropertiesSection.js:
411         (WebInspector.ObjectPropertyTreeElement.prototype.update):
412         * UserInterface/Views/SourceCodeTextEditor.js:
413         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
414         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
415         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForString):
416         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
417         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber):
418         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean):
419         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull):
420         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined):
421         Convert to formatted value class names.
422
423 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
424
425         Web Inspector: Make Getter/Setter RemoteObject property and ObjectPreview handling consistent
426         https://bugs.webkit.org/show_bug.cgi?id=141587
427
428         Reviewed by Timothy Hatcher.
429
430         * UserInterface/Models/CallFrame.js:
431         (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
432         * UserInterface/Models/PropertyDescriptor.js:
433         (WebInspector.PropertyDescriptor.prototype.get nativeGetter):
434         * UserInterface/Protocol/RemoteObject.js:
435         (WebInspector.RemoteObject.fromPayload):
436         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
437         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
438         (WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
439         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
440         (WebInspector.RemoteObject.prototype.if):
441         (WebInspector.RemoteObject.prototype.deprecatedGetOwnProperties):
442         (WebInspector.RemoteObject.prototype.deprecatedGetAllProperties):
443         (WebInspector.RemoteObject.prototype._deprecatedGetProperties):
444         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors): Deleted.
445         (WebInspector.RemoteObject.prototype.callback): Deleted.
446         (WebInspector.RemoteObject.prototype.getOwnProperties): Deleted.
447         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties): Deleted.
448         (WebInspector.RemoteObject.prototype.getAllProperties): Deleted.
449         (WebInspector.RemoteObject.prototype.set else): Deleted.
450         * UserInterface/Views/ConsoleMessageImpl.js:
451         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
452         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
453         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
454         * UserInterface/Views/ObjectPropertiesSection.js:
455         (WebInspector.ObjectPropertiesSection.prototype.update):
456         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
457         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
458         (WebInspector.ObjectTreePropertyTreeElement.prototype.):
459         (WebInspector.ObjectTreePropertyTreeElement.prototype):
460         * UserInterface/Views/ObjectTreeView.js:
461         (WebInspector.ObjectTreeView.prototype.update):
462
463 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
464
465         Web Inspector: New Object Tree View UI
466         https://bugs.webkit.org/show_bug.cgi?id=141932
467
468         Reviewed by Timothy Hatcher.
469
470         Part 1: Majority of the UI.
471
472         * Localizations/en.lproj/localizedStrings.js:
473         * UserInterface/Images/Eye.svg: Added.
474         * UserInterface/Images/TypeBoolean.svg: Added.
475         * UserInterface/Images/TypeNull.svg: Added.
476         * UserInterface/Images/TypeNumber.svg: Added.
477         * UserInterface/Images/TypeObject.svg: Added.
478         * UserInterface/Images/TypeRegex.svg: Added.
479         * UserInterface/Images/TypeString.svg: Added.
480         * UserInterface/Images/TypeSymbol.svg: Added.
481         * UserInterface/Images/TypeUndefined.svg: Added.
482         * UserInterface/Main.html:
483         Miscellaneous.
484
485         * UserInterface/Views/FormattedValue.css:
486         (.formatted-boolean):
487         Give booleans a light purple color.
488
489         * UserInterface/Views/FormattedValue.js:
490         (WebInspector.FormattedValue.createElementForTypesAndValue):
491         Previously we were truncating function value logging in the console. E.g.
492           js> multiLineFunction
493           <-  function multiLineFunction() {
494         No longer truncate so we display the full string.
495
496         * UserInterface/Models/PropertyPath.js: Added.
497         (WebInspector.PropertyPath):
498         (WebInspector.PropertyPath.prototype.get object):
499         (WebInspector.PropertyPath.prototype.get parent):
500         (WebInspector.PropertyPath.prototype.get isPrototype):
501         (WebInspector.PropertyPath.prototype.get rootObject):
502         (WebInspector.PropertyPath.prototype.get lastNonPrototypeObject):
503         (WebInspector.PropertyPath.prototype.get pathComponent):
504         (WebInspector.PropertyPath.prototype.get fullPath):
505         (WebInspector.PropertyPath.prototype.isRoot):
506         (WebInspector.PropertyPath.prototype.isPathComponentImpossible):
507         (WebInspector.PropertyPath.prototype.isFullPathImpossible):
508         (WebInspector.PropertyPath.prototype.appendPropertyName):
509         (WebInspector.PropertyPath.prototype.appendPropertySymbol):
510         (WebInspector.PropertyPath.prototype.appendInternalPropertyName):
511         (WebInspector.PropertyPath.prototype.appendArrayIndex):
512         (WebInspector.PropertyPath.prototype.appendCollectionIndex):
513         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
514         (WebInspector.PropertyPath.prototype._canPropertyNameBeDotAccess):
515         PropertyPaths are a linked list of remote object / patch component pairs.
516         For a property like "foo['property 1'].__proto__.baz" we will have a PropertyPath
517         chain with the RemoteObject for each component. This allows us to accurately
518         select the RemoteObject on which we should invoke a getter. It also allows
519         us to display the property path string from the root object, if possible.
520
521         * UserInterface/Protocol/RemoteObject.js:
522         (WebInspector.RemoteObject.prototype.callFunction):
523         (WebInspector.RemoteObject.prototype.backendInvokeGetter):
524         (WebInspector.RemoteObject.prototype.invokeGetter):
525         Provide a way to invoke a getter function on a remote object if we
526         have a reference to the getter function. At the same time, improve
527         the mostly unused callFunction API to automatically convert
528         RemoteObjects / values to their Runtime.CallArgument format.
529
530         * UserInterface/Views/ObjectTreePropertyTreeElement.css: Added.
531         (.object-tree-property):
532         (.object-tree-property > .disclosure-button):
533         (.object-tree-property.parent > .disclosure-button):
534         (.object-tree-property.parent.expanded > .disclosure-button):
535         (.object-tree-property > .titles):
536         Focused styles for the ObjectTree property GeneralTreeElements.
537         Reuse navigation sidebar disclosure-triangles.
538
539         (.object-tree-property > .icon):
540         (.object-tree-property.boolean > .icon):
541         (.object-tree-property.function > .icon):
542         (.object-tree-property.number > .icon):
543         (.object-tree-property.object > .icon):
544         (.object-tree-property.object.null > .icon):
545         (.object-tree-property.object.node > .icon):
546         (.object-tree-property.regex > .icon):
547         (.object-tree-property.string > .icon):
548         (.object-tree-property.symbol > .icon):
549         (.object-tree-property.undefined > .icon):
550         Use different icons for different object types. Special case
551         "accessor" to be undefined.
552
553         (.object-tree-property .prototype-name):
554         (.object-tree-property .property-name.not-enumerable):
555         Style property names in sans-serif font.
556         Give non-enumerable properties a slightly transparent look.
557
558         (.object-tree-property.prototype-property):
559         (.object-tree-property.prototype-property > .icon):
560         (.object-tree-property.prototype-property + ol):
561         Special styles for prototype properties and their children.
562
563         (.object-tree-property .getter):
564         (.object-tree-property .getter:hover):
565         (.object-tree-property .read-only):
566         Styles for clickable getter button and non-interactive read-only indicator.
567
568         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
569         Do not allow wrapping for values that previously allowed wrapping.
570
571         (.object-tree-property .value.error):
572         If getting a value resulted in an error, display that error in red.
573
574         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
575         (WebInspector.ObjectTreePropertyTreeElement):
576         Extend from GeneralTreeElement and set up class names on the root <li> object.
577
578         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach): Deleted.
579         No longer needed by using GeneralTreeElement.
580
581         (WebInspector.ObjectTreePropertyTreeElement.prototype.onexpand):
582         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncollapse):
583         Expand / collapse an associated ObjectPreview if we have one.
584
585         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
586         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
587         This PropertyTreeElement may be displaying for a value, or a getter that has
588         gotten a value. Refer to this as the "resolvedValue".
589
590         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
591         A PropertyPath leaf used for tooltips.
592
593         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
594         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
595         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
596         Helpers for updating small parts of the UI. When a getter is invoked,
597         we need to update the entire UI of this TreeElement.
598
599         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
600         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle): Deleted.
601         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle): Deleted.
602         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle): Deleted.
603         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
604         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
605         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
606         Create the UI for the mainTitle of this PropertyTreeElement.
607         
608         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement):
609         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement):
610         Helpers for creating the small components of the title UI.
611
612         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
613         Establish when a property should still be displayed as a "property" even when in API mode.
614         For example a value property on a prototype, should still display as an expandable property.
615
616         * UserInterface/Views/ObjectTreeView.css:
617         (.object-tree > :matches(.title, .object-preview)::before):
618         (.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
619         (.object-tree.expanded > :matches(.title, .object-preview)::before):
620         (.object-tree .object-tree-outline):
621         (.object-tree-outline ol):
622         (.object-tree-outline li .empty-message):
623         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
624         (.object-tree > .title): Deleted.
625         (.object-tree-outline): Deleted.
626         (.object-tree-outline li): Deleted.
627         (.object-tree-outline li.parent): Deleted.
628         (.object-tree-outline li.parent::before): Deleted.
629         (.object-tree-outline li.parent.expanded::before): Deleted.
630         (.object-tree-property .name): Deleted.
631         (.object-tree-property .name.not-enumerable): Deleted.
632         (.object-tree-property .value.error): Deleted.
633         (.console-group-messages .object-tree:not(.lossless-preview)): Deleted.
634         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)): Deleted.
635         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before): Deleted.
636         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree): Deleted.
637         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline): Deleted.
638         Move most PropertyTreeElement specific styles into ObjectPropertyTreeElement.css.
639         Plenty of console specific files were eliminated.
640
641         * UserInterface/Views/ObjectTreeView.js:
642         (WebInspector.ObjectTreeView.prototype.update):
643         (WebInspector.ObjectTreeView.prototype._updateProperties):
644
645
646         Part 2: Provide better parameter lists for native functions.
647
648         When expanding an object's prototype chain, with authored code
649         you will accurately see parameter lists for user authored functions
650         because we can get this by parsing Function.prototype.toString.
651         For native code, we don't get any parameter information. In such cases
652         we can detect we are a native function, and provide our own strings.
653
654         This fills in most of the JavaScript built-ins and some DOM
655         functions, however we should autogenerate the rest of the DOM.
656
657         * UserInterface/Base/Utilities.js:
658         (isFunctionStringNativeCode):
659         Helper to check if a function is native or not based on its string.
660
661         * UserInterface/Main.html:
662         * UserInterface/Models/NativeFunctionParameters.js: Added.
663         Dictionary of parameter lists for native constructor functions
664         and prototype functions.
665
666         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
667         (WebInspector.ObjectTreePropertyTreeElement):
668         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionPropertyString):
669         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
670         (WebInspector.ObjectTreePropertyTreeElement.prototype):
671         When we have a native function, try to provide a better parameter string.
672
673
674         Part 3: Better handle errors when invoking getters.
675
676         * UserInterface/Protocol/RemoteObject.js:
677         (WebInspector.RemoteObject.prototype.callFunction):
678         (WebInspector.RemoteObject.prototype.invokeGetter):
679         Pass the error, wasThrown, and result through to the caller so they can
680         act on all the information possible. Provide encapsulation though
681         and auto-convert the result to a RemoteObject for the callback.
682
683         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
684         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
685         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
686         * UserInterface/Views/DOMTreeElement.js:
687         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.setTooltip):
688         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.resolvedNode):
689         (WebInspector.DOMTreeElement.prototype._createTooltipForNode):
690         Update current users of callFunctionOn for the new callback parameters.
691
692         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
693         (.object-tree-property.had-error > .icon):
694         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
695         (WebInspector.ObjectTreePropertyTreeElement):
696         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
697         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
698         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
699         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.):
700         Better style getters with errors.
701
702 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
703
704         Web Inspector: Do not show "{}" after Date description in Object Previews
705         https://bugs.webkit.org/show_bug.cgi?id=141898
706
707         Reviewed by Timothy Hatcher.
708
709         * UserInterface/Views/ObjectPreviewView.js:
710         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
711         Only show "{...}" section for Date objects that have user
712         defined properties. Otherwise, Dates do not have properties.
713
714 2015-02-23  Joseph Pecoraro  <pecoraro@apple.com>
715
716         Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
717         https://bugs.webkit.org/show_bug.cgi?id=141945
718
719         Reviewed by Timothy Hatcher.
720
721         * UserInterface/Views/LogContentView.css:
722         (.console-object-preview): Deleted.
723         (.expanded .console-object-preview): Deleted.
724         (.console-object-preview .name): Deleted.
725         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
726         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
727         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
728         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
729
730 2015-02-23  Saam Barati  <saambarati1@gmail.com>
731
732         Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
733         https://bugs.webkit.org/show_bug.cgi?id=141334
734
735         Reviewed by Timothy Hatcher.
736
737         * UserInterface/Views/TextEditor.js:
738         (WebInspector.TextEditor.prototype.addStyleToTextRange):
739
740 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
741
742         Web Inspector: Lazily Create GeneralTreeElement Status Elements
743         https://bugs.webkit.org/show_bug.cgi?id=141873
744
745         Reviewed by Timothy Hatcher.
746
747         * UserInterface/Views/GeneralTreeElement.js:
748         (WebInspector.GeneralTreeElement.prototype.set status):
749         (WebInspector.GeneralTreeElement.prototype.onattach):
750         (WebInspector.GeneralTreeElement.prototype._createElementsIfNeeded):
751         (WebInspector.GeneralTreeElement.prototype._updateStatusElement):
752         Lazily create and attach the status element container if
753         "this.status" is actually used by a GeneralTreeElement subclass.
754
755         * UserInterface/Views/ResourceTreeElement.js:
756         (WebInspector.ResourceTreeElement.prototype._updateStatus):
757         Set to the empty string instead of null to avoid inadvertently
758         creating status elements for no reason.
759
760 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
761
762         Web Inspector: Give ObjectPreviewView a showTitle/showPreview toggle
763         https://bugs.webkit.org/show_bug.cgi?id=141874
764
765         Reviewed by Timothy Hatcher.
766
767         Refactor ObjectTree/ObjectPreview a bit to make it easier
768         to use expanding/collapsing previews in other places.
769
770         * UserInterface/Views/ObjectPreviewView.js:
771         (WebInspector.ObjectPreviewView):
772         (WebInspector.ObjectPreviewView.prototype.showTitle):
773         (WebInspector.ObjectPreviewView.prototype.showPreview):
774         Maintain both a titleElement and previewElement. Show only
775         one at a time based on showTitle/showPreview APIs.
776
777         * UserInterface/Views/ObjectTreeView.css:
778         (.object-tree.expanded .object-preview):
779         * UserInterface/Views/ObjectTreeView.js:
780         (WebInspector.ObjectTreeView):
781         (WebInspector.ObjectTreeView.prototype.expand):
782         (WebInspector.ObjectTreeView.prototype.collapse):
783         If we have a preview, let PreviewView handle toggling
784         between a title and preview display.
785
786 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
787
788         Web Inspector: Make Console UI icons / lines slightly larger
789         https://bugs.webkit.org/show_bug.cgi?id=141876
790
791         Reviewed by Timothy Hatcher.
792
793         In preparation for a new ObjectTree design with larger icons,
794         increase the size of existing output in the Console / Log
795         so they don't look so small in comparison. This:
796
797           - bumps minimum height of lines from 16px to 21px
798           - 10x10 icons to be 12x12
799           - recenters icons to match console prompt
800           - realigns icons with console log / object output
801
802         * UserInterface/Views/LogContentView.css:
803         (.console-user-command-result.console-log-level::before):
804         (.console-message, .console-user-command):
805         (.console-item::before):
806         (.console-user-command::before):
807         (:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
808         (:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
809         (.outline-disclosure li):
810         (.outline-disclosure .expanded li):
811         Fix a case breaking single-line message height.
812         Only add padding to expanded trees, not collapsed trees.
813
814         * UserInterface/Views/QuickConsole.css:
815         (.quick-console > .console-prompt::before):
816
817 2015-02-21  Joseph Pecoraro  <pecoraro@apple.com>
818
819         Web Inspector: Generate Previews more often for RemoteObject interaction
820         https://bugs.webkit.org/show_bug.cgi?id=141875
821
822         Reviewed by Timothy Hatcher.
823
824         * UserInterface/Models/PropertyDescriptor.js:
825         (WebInspector.PropertyDescriptor.fromPayload):
826         Fix InternalPropertyDescriptor ingestion. There was no ".internal"
827         property on these objects, so take a flag.
828
829         * UserInterface/Protocol/RemoteObject.js:
830         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
831         Fix InternalPropertyDescriptor ingestion by specifying during
832         importing the internal properties. Also, get previews.
833
834         (WebInspector.RemoteObject.prototype.callFunction):
835         Always get previews when using callFunctionOn.
836
837 2015-02-20  Ronald Jett  <rjett@apple.com>
838
839         Web Inspector: Add a setting for clearing the console on page reload
840         https://bugs.webkit.org/show_bug.cgi?id=134414
841
842         Reviewed by Timothy Hatcher.
843
844         Created a new setting "clear-log-on-reload", which defaults to true.
845         Users can toggle this setting with an item added to the console's context menu. 
846         When enabled, the console will clear on page reload. When disabled, the console
847         content will remain during page reloads. 
848
849         * Localizations/en.lproj/localizedStrings.js:
850         * UserInterface/Views/LogContentView.js:
851         (WebInspector.LogContentView):
852         (WebInspector.LogContentView.prototype._sessionStarted):
853         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
854         (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
855
856 2015-02-19  Saam Barati  <saambarati1@gmail.com>
857
858         Web Inspector: merge in upstream Esprima to support parsing more of ES6
859         https://bugs.webkit.org/show_bug.cgi?id=141215
860
861         Reviewed by Timothy Hatcher.
862
863         This patch merges in a new esprima that has some ES6 support.
864         Specifically, the ES6 support ScriptSyntaxTree now has is:
865         - ForOf loops
866         - Object destructuring
867         - Array destructuring
868
869         ScriptSyntaxTree now uses Symbols for identifying AST node types
870         instead of strings. This will prevent any direct usage of strings 
871         for node types instead of a direct property access off the 
872         ScriptSyntaxTree constructor.
873
874         This patch also does some gardening work: 
875         - TypeTokenAnnotator only walks over the incoming type information
876           data once to be more efficient. 
877         - TypeTokenView is now smarter about updating its associated DOM node
878           only if its display name has changed.
879
880         * UserInterface/Controllers/TypeTokenAnnotator.js:
881         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
882         * UserInterface/External/Esprima/esprima.js:
883         (.):
884         * UserInterface/Models/ScriptSyntaxTree.js:
885         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration):
886         (WebInspector.ScriptSyntaxTree.prototype._recurse):
887         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
888         * UserInterface/Views/TypeTokenView.js:
889         (WebInspector.TypeTokenView.prototype.update):
890
891 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
892
893         Web Inspector: Use of Array.from for NodeList/Arguments to Array conversion
894         https://bugs.webkit.org/show_bug.cgi?id=141819
895
896         Reviewed by Timothy Hatcher.
897
898         Array.from is clearer than Array.prototype.slice.call(arrayLike).
899
900         * UserInterface/Base/Test.js:
901         (.console.logType):
902         * UserInterface/Protocol/InspectorBackend.js:
903         (InspectorBackend.Command.prototype.promise):
904         (InspectorBackend.Command.prototype._invokeWithArguments):
905         * UserInterface/Views/LogContentView.js:
906         (WebInspector.LogContentView.prototype._allMessages):
907
908 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
909
910         Follow-up fix to r180371. formatParameterAsValue expects full object, not just a description.
911
912         Reviewed by Timothy Hatcher.
913
914         * UserInterface/Views/ConsoleMessageImpl.js:
915         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
916
917 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
918
919         Web Inspector: Introduce FormattedValue helpers and use them in Console/ObjectTree
920         https://bugs.webkit.org/show_bug.cgi?id=141812
921
922         Reviewed by Timothy Hatcher.
923
924         There were a few different ways to get styled values. Try to consolidate them
925         all in FormattedValue. That is also a convenient place to have the styles.
926
927         * UserInterface/Main.html:
928         * UserInterface/Views/ConsoleMessageImpl.js:
929         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
930         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
931         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsValue):
932         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
933
934         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
935         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
936         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
937         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement): Deleted.
938         Fix console.table after renaming ObjectPreview.properties to ObjectPreview.propertyPreviews.
939         Also, use FormattedValue to create the value elements. Also, remove class
940         "source-code" as I do not see it actually being used in a meaningful way.
941
942         * UserInterface/Views/FormattedValue.css: Added.
943         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
944         (.formatted-number):
945         (.formatted-string, .formatted-regexp):
946         (.formatted-string):
947         (.formatted-regexp):
948         (.formatted-symbol):
949         (.formatted-null, .formatted-undefined):
950         * UserInterface/Views/FormattedValue.js: Added.
951         (WebInspector.FormattedValue.classNameForTypes):
952         (WebInspector.FormattedValue.classNameForObject):
953         (WebInspector.FormattedValue.createLinkifiedElementString):
954         (WebInspector.FormattedValue.createElementForTypesAndValue):
955         (WebInspector.FormattedValue.createElementForRemoteObject):
956         (WebInspector.FormattedValue.createElementForObjectPreview):
957         (WebInspector.FormattedValue.createElementForPropertyPreview):
958         Styles and formatted value element creation.
959
960         * UserInterface/Views/LogContentView.css:
961         (.expandable.source-code): Deleted.
962         Remove ".source-code". I do not see it actually being used in a meaningful way.
963
964         * UserInterface/Views/ObjectPreviewView.js:
965         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
966         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
967         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview): Deleted.
968         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
969         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
970         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString): Deleted.
971         * UserInterface/Views/ObjectTreeView.css:
972         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
973         (.formatted-number): Deleted.
974         (.formatted-string, .formatted-regexp): Deleted.
975         (.formatted-string): Deleted.
976         (.formatted-regexp): Deleted.
977         (.formatted-symbol): Deleted.
978         (.formatted-null, .formatted-undefined): Deleted.
979         * UserInterface/Views/ObjectTreeView.js:
980         (WebInspector.ObjectTreeView.classNameForObject): Deleted.
981         Extract styles and value formatting to FormattedValue helpers.
982
983 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
984
985         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
986         https://bugs.webkit.org/show_bug.cgi?id=141793
987
988         Unreviewed follow-up. Fix prototypes.
989
990         * UserInterface/Views/ObjectPreviewView.js:
991         * UserInterface/Views/ObjectTreeView.js:
992
993 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
994
995         Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPreview / PropertyDescriptor
996         https://bugs.webkit.org/show_bug.cgi?id=141696
997
998         Reviewed by Timothy Hatcher.
999
1000         * UserInterface/Main.html:
1001         Add new files.
1002
1003         * UserInterface/Models/CollectionEntry.js: Added.
1004         (WebInspector.CollectionEntry):
1005         (WebInspector.CollectionEntry.fromPayload):
1006         (WebInspector.CollectionEntry.prototype.get key):
1007         (WebInspector.CollectionEntry.prototype.get value):
1008         * UserInterface/Models/CollectionEntryPreview.js: Added.
1009         (WebInspector.CollectionEntryPreview):
1010         (WebInspector.CollectionEntryPreview.fromPayload):
1011         (WebInspector.CollectionEntryPreview.prototype.get keyPreview):
1012         (WebInspector.CollectionEntryPreview.prototype.get valuePreview):
1013         * UserInterface/Models/ObjectPreview.js: Added.
1014         (WebInspector.ObjectPreview):
1015         (WebInspector.ObjectPreview.fromPayload):
1016         (WebInspector.ObjectPreview.prototype.get type):
1017         (WebInspector.ObjectPreview.prototype.get subtype):
1018         (WebInspector.ObjectPreview.prototype.get description):
1019         (WebInspector.ObjectPreview.prototype.get lossless):
1020         (WebInspector.ObjectPreview.prototype.get overflow):
1021         (WebInspector.ObjectPreview.prototype.get properties):
1022         (WebInspector.ObjectPreview.prototype.get entries):
1023         * UserInterface/Models/PropertyPreview.js: Added.
1024         (WebInspector.PropertyPreview):
1025         (WebInspector.PropertyPreview.fromPayload):
1026         (WebInspector.PropertyPreview.prototype.get name):
1027         (WebInspector.PropertyPreview.prototype.get type):
1028         (WebInspector.PropertyPreview.prototype.get subtype):
1029         (WebInspector.PropertyPreview.prototype.get value):
1030         (WebInspector.PropertyPreview.prototype.get valuePreview):
1031         * UserInterface/Models/PropertyDescriptor.js: Added.
1032         (WebInspector.PropertyDescriptor.fromPayload):
1033         (WebInspector.PropertyDescriptor.prototype.get name):
1034         (WebInspector.PropertyDescriptor.prototype.get value):
1035         (WebInspector.PropertyDescriptor.prototype.get writable):
1036         (WebInspector.PropertyDescriptor.prototype.get configurable):
1037         (WebInspector.PropertyDescriptor.prototype.get enumerable):
1038         (WebInspector.PropertyDescriptor.prototype.get isOwnProperty):
1039         (WebInspector.PropertyDescriptor.prototype.get wasThrown):
1040         (WebInspector.PropertyDescriptor.prototype.get isInternalProperty):
1041         (WebInspector.PropertyDescriptor.prototype.hasValue):
1042         (WebInspector.PropertyDescriptor.prototype.hasGetter):
1043         (WebInspector.PropertyDescriptor.prototype.hasSetter):
1044         New Model objects for different Protocol types.
1045         The only customizations right now are compatibility modifications
1046         and PropertyDescriptor's "hasValue", "hasGetter", and "hasSetter"
1047         functions to return reliable checks based on the descriptors contents.
1048
1049         * UserInterface/Protocol/RemoteObject.js:
1050         (WebInspector.RemoteObject):
1051         (WebInspector.RemoteObject.fromPayload):
1052         (WebInspector.RemoteObject.resolveNode):
1053         (WebInspector.RemoteObject.prototype.get value):
1054         (WebInspector.RemoteObject.prototype._isSymbol):
1055         (WebInspector.RemoteObject.prototype.isCollectionType):
1056         (WebInspector.RemoteObject.prototype.isWeakCollection):
1057         (WebInspector.RemoteObject.prototype.getCollectionEntries):
1058         (WebInspector.RemoteObject.prototype.arrayLength):
1059         Clean up the existing code to enforce more checks and use our
1060         style of member variables and public accessors.
1061
1062         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
1063         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors):
1064         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
1065         (WebInspector.RemoteObject.prototype.callback):
1066         Provide a new way of getting properties that returns Model objects
1067         instead of raw protocol types.
1068
1069         * UserInterface/Views/ConsoleMessageImpl.js:
1070         (WebInspector.ConsoleMessageImpl.prototype._format):
1071         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1072         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
1073         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1074         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
1075         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
1076         Always include a preview when possible. Now, when forced to be an object,
1077         force expansion even if the preview is lossless.
1078
1079         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1080         Use an ObjectTreeView instead of ObjectPropertiesSection.
1081
1082         (WebInspector.ConsoleMessageImpl.prototype._appendPreview): Deleted.
1083         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews): Deleted.
1084         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews): Deleted.
1085         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview): Deleted.
1086         This code is moved into ObjectPreviewView.
1087
1088
1089         * UserInterface/Views/ObjectPropertiesSection.js:
1090         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
1091         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
1092         These types are now converted to Model types in Model objects, so do not do it here.
1093
1094         * UserInterface/Views/ObjectPreviewView.css: Added.
1095         (.object-preview):
1096         (.object-preview.lossless):
1097         (.object-preview .name):
1098         * UserInterface/Views/ObjectPreviewView.js: Added.
1099         (WebInspector.ObjectPreviewView):
1100         (WebInspector.ObjectPreviewView.prototype.get preview):
1101         (WebInspector.ObjectPreviewView.prototype.get element):
1102         (WebInspector.ObjectPreviewView.prototype.get mode):
1103         (WebInspector.ObjectPreviewView.prototype.get lossless):
1104         (WebInspector.ObjectPreviewView.prototype._numberOfPropertiesToShowInMode):
1105         (WebInspector.ObjectPreviewView.prototype._appendPreview):
1106         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
1107         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1108         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
1109         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview):
1110         An ObjectPreviewView can create a full/brief view given a ObjectPreview.
1111         The view will contain formatted values everywhere possible.
1112
1113         * UserInterface/Views/ObjectTreePropertyTreeElement.js: Added.
1114         (WebInspector.ObjectTreePropertyTreeElement):
1115         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property):
1116         (WebInspector.ObjectTreePropertyTreeElement.prototype.onpopulate):
1117         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach):
1118         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle):
1119         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
1120         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle):
1121         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString):
1122         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
1123         (WebInspector.ObjectTreePropertyTreeElement.prototype.mode):
1124         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1125         * UserInterface/Views/ObjectTreeView.js: Added.
1126         (WebInspector.ObjectTreeView):
1127         (WebInspector.ObjectTreeView.classNameForObject):
1128         (WebInspector.ObjectTreeView.ComparePropertyDescriptors):
1129         (WebInspector.ObjectTreeView.prototype.get object):
1130         (WebInspector.ObjectTreeView.prototype.get element):
1131         (WebInspector.ObjectTreeView.prototype.get expanded):
1132         (WebInspector.ObjectTreeView.prototype.expand):
1133         (WebInspector.ObjectTreeView.prototype.collapse):
1134         (WebInspector.ObjectTreeView.prototype.update):
1135         (WebInspector.ObjectTreeView.prototype._updateProperties):
1136         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
1137         Re-implementation of ObjectPropertiesSection for our Model objects
1138         without "Section" semantics / dependencies. An ObjectTree will creates
1139         an expandable tree for a RemoteObject. The top level clickable item
1140         will be an ObjectPreview if possible, otherwise just a title element.
1141
1142         * UserInterface/Views/ObjectTreeView.css: Added.
1143         (.object-tree):
1144         (.object-tree > .title):
1145         (.object-tree > :matches(.title, .object-preview)::before):
1146         (.object-tree.expanded > :matches(.title, .object-preview)::before):
1147         (.object-tree.lossless-preview > :matches(.title, .object-preview)::before):
1148         (.object-tree-outline):
1149         (.object-tree.expanded > .object-tree-outline):
1150         (.object-tree-outline li):
1151         (.object-tree-outline li.parent):
1152         (.object-tree-outline li.parent::before):
1153         (.object-tree-outline li.parent.expanded::before):
1154         (.object-tree-outline ol):
1155         (.object-tree-outline ol.expanded):
1156         (.object-tree-outline li .empty-message):
1157         (.object-tree-property .name):
1158         (.object-tree-property .name.not-enumerable):
1159         (.object-tree-property .value.error):
1160         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
1161         (.formatted-number):
1162         (.formatted-string, .formatted-regexp):
1163         (.formatted-string):
1164         (.formatted-regexp):
1165         (.formatted-symbol):
1166         (.formatted-null, .formatted-undefined):
1167         (.console-group-messages .object-tree:not(.lossless-preview)):
1168         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
1169         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before):
1170         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree):
1171         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
1172         All styles for ObjectTree / ObjectPreview. Independent from
1173         other styles in the inspector. Most of this is a copy of
1174         the styles applied to ObjectPropertiesSection, renamed.
1175
1176
1177         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Added.
1178         (WebInspector.ObjectTreeCollectionTreeElement):
1179         (WebInspector.ObjectTreeCollectionTreeElement.propertyDescriptorForEntry):
1180         (WebInspector.ObjectTreeCollectionTreeElement.prototype.get remoteObject):
1181         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand.callback):
1182         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand):
1183         (WebInspector.ObjectTreeCollectionTreeElement.prototype.oncollapse):
1184         (WebInspector.ObjectTreeCollectionTreeElement.prototype.ondetach):
1185         (WebInspector.ObjectTreeCollectionTreeElement.prototype._trackWeakEntries):
1186         (WebInspector.ObjectTreeCollectionTreeElement.prototype._untrackWeakEntries):
1187         (WebInspector.ObjectTreeCollectionEntryTreeElement):
1188         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onpopulate):
1189         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onattach):
1190         (WebInspector.ObjectTreeEmptyCollectionTreeElement):
1191         Essentially a copy of ObjectPropertiesSection Collection handling using
1192         the ObjectTree class names.
1193
1194         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
1195         Fix prototype typo.
1196
1197 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1198
1199         Web Inspector: DOMTree / Node Details Sidebar do not update as <input> content changes
1200         https://bugs.webkit.org/show_bug.cgi?id=141790
1201
1202         Reviewed by Timothy Hatcher.
1203
1204         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1205         (WebInspector.DOMNodeDetailsSidebarPanel):
1206         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
1207         Update Node "Value" details if character data changes.
1208
1209         * UserInterface/Views/DOMTreeUpdater.js:
1210         (WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
1211         Update the title of the parent. If the parent had a single text node child
1212         and now doesn't, it will need to update its display.
1213
1214 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
1215
1216         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
1217         https://bugs.webkit.org/show_bug.cgi?id=141793
1218
1219         Reviewed by Timothy Hatcher.
1220
1221         Currently the backend disallows editing of Shadow DOM nodes,
1222         so the frontend should not provide options that do not work.
1223         Long term we should allow editing Shadow DOM nodes.
1224
1225         * UserInterface/Models/CSSStyleDeclaration.js:
1226         (WebInspector.CSSStyleDeclaration.prototype.get editable):
1227         Inline styles on a Shadow DOM node are not editable.
1228
1229         * UserInterface/Views/DOMTreeElement.js:
1230         (WebInspector.DOMTreeElement.prototype.ondelete):
1231         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
1232         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
1233         (WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
1234         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
1235         (WebInspector.DOMTreeElement.prototype._startEditing):
1236         Disable context menus and keyboard shortcuts on Shadow DOM nodes.
1237         Only Context Menu item we keep is "Copy as HTML".
1238
1239         * UserInterface/Views/DOMTreeOutline.js:
1240         (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
1241         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
1242         Eliminate double look-up.
1243
1244         * UserInterface/Views/RulesStyleDetailsPanel.js:
1245         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
1246         Do not add the New Rule Button to the Styles Sidebar of Shadow DOM Nodes.
1247         Instead this will just be an empty divider.
1248
1249 2015-02-18  Nikita Vasilyev  <nvasilyev@apple.com>
1250
1251         Web Inspector: REGRESSION: Missing Divider line between console.log and console evaluation
1252         https://bugs.webkit.org/show_bug.cgi?id=141770
1253
1254         Reviewed by Timothy Hatcher.
1255
1256         * UserInterface/Views/LogContentView.css:
1257         (.console-item):
1258         (.console-message): Deleted.
1259
1260 2015-02-18  Jono Wells  <jonowells@apple.com>
1261
1262         Web Inspector: Inspecting a page where resources are in folders forces folder organization on every subsequent page
1263         https://bugs.webkit.org/show_bug.cgi?id=141397
1264
1265         Reviewed by Timothy Hatcher.
1266
1267         When removeChildren is called on an instance of a FolderizedTreeElement, the element's _groupedIntoFolders flag
1268         will now be set to false. This will prevent unnecessary folderization upon a frame navigation. Also during an
1269         onpopulate event, addChildForRepresentedObject is called repeatedly and much of the work done during each call
1270         was unnecessary. That work has now been partially removed and partially relocated to a function that is only
1271         called at the beginning of an onpopulate event.
1272
1273         * UserInterface/Views/FolderizedTreeElement.js:
1274         (WebInspector.FolderizedTreeElement.prototype.set removeChildren): Set _groupedIntoFolders to false.
1275         (WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Remove unnecessary treeOutline
1276         emptiness check, and move _shouldGroupIntoFolders() check to new function prepareToPopulate().
1277         (WebInspector.FolderizedTreeElement.prototype.prepareToPopulate): Create.
1278         (WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue): Call prepareToPopulate().
1279
1280         * UserInterface/Views/FrameTreeElement.js:
1281         (WebInspector.FrameTreeElement.prototype.onpopulate): Call prepareToPopulate().
1282
1283         * UserInterface/Views/GeneralTreeElement.js: Drive-by inheritance style fix.
1284         * UserInterface/Views/ResourceTreeElement.js: Drive-by inheritance style fix.
1285
1286 2015-02-16  Joseph Pecoraro  <pecoraro@apple.com>
1287
1288         Web Inspector: ES6: Improved Console Support for Promise Objects
1289         https://bugs.webkit.org/show_bug.cgi?id=141634
1290
1291         Reviewed by Timothy Hatcher.
1292
1293         * UserInterface/Protocol/RemoteObject.js:
1294         For now just add Internal Properties and regular properties.
1295         We will address the UI later.
1296
1297 2015-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
1298
1299         Web Inspector: Tweak the styles on the Console
1300         https://bugs.webkit.org/show_bug.cgi?id=140580
1301
1302             - Use non-monospace (default sans-serif) font for console messages, but keep using monospace font
1303               for objects, functions, and anything else that presumably code.
1304             - Display all expandable objects on a separate row.
1305
1306         Reviewed by Timothy Hatcher.
1307
1308         * UserInterface/Views/ConsoleCommand.js:
1309         (WebInspector.ConsoleCommand.prototype.decorateMessageElement):
1310         (WebInspector.ConsoleCommand.prototype.toMessageElement):
1311         * UserInterface/Views/ConsoleGroup.js:
1312         (WebInspector.ConsoleGroup.prototype.addMessage):
1313         * UserInterface/Views/ConsoleMessageImpl.js:
1314         (WebInspector.ConsoleMessageImpl.prototype._format):
1315         (WebInspector.ConsoleMessageImpl.prototype._isExpandable):
1316         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1317         (WebInspector.ConsoleMessageImpl.prototype.append):
1318         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
1319         (WebInspector.ConsoleMessageImpl.prototype.decorateMessageElement):
1320         (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
1321         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString): Deleted.
1322         * UserInterface/Views/LogContentView.css:
1323         (.console-messages):
1324         (.console-formatted-object):
1325         (.expandable.source-code):
1326         (.console-message):
1327         (.console-item.selected::after):
1328         (.console-messages:focus .console-item.selected::after):
1329         (.console-user-command-result.console-log-level::before):
1330         (.console-item::before):
1331         (.console-message .bubble):
1332         (.console-error-level):
1333         (.console-error-level .section .header .title):
1334         (.console-error-level::before):
1335         (.console-warning-level):
1336         (.console-warning-level .console-message-text):
1337         (.console-warning-level::before):
1338         (.console-user-command::before):
1339         (.console-group-messages .section):
1340         (.console-group-messages .section .header::before):
1341         (.console-group-messages .section .header .title):
1342         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
1343         (.outline-disclosure li):
1344         (.outline-disclosure li.parent::before):
1345         (.console-item): Deleted.
1346         (.console-item.selected): Deleted.
1347         (.console-messages:focus .console-item.selected): Deleted.
1348         (.console-item.selected .console-message::after): Deleted.
1349         (.console-messages:focus .console-item.selected .data-grid tr.selected): Deleted.
1350         (.console-messages:focus .console-item.selected .console-message::after): Deleted.
1351         (.console-message, .console-user-command): Deleted.
1352         (.console-message::before, .console-user-command::before, .javascript-prompt::before, .console-group-title::before): Deleted.
1353         (.console-group): Deleted.
1354         (.console-debug-level .console-message-text): Deleted.
1355         (.console-debug-level::before): Deleted.
1356         (.console-group-messages .section .header): Deleted.
1357         (.console-group-messages .outline-disclosure): Deleted.
1358         (.console-group-messages .outline-disclosure > ol): Deleted.
1359         (.outline-disclosure li.elements-drag-over .selection): Deleted.
1360         (.outline-disclosure ol:focus li.selected .selection): Deleted.
1361         (.outline-disclosure > ol): Deleted.
1362         * UserInterface/Views/LogContentView.js:
1363         (WebInspector.LogContentView.prototype._mousemove):
1364         (WebInspector.LogContentView.prototype._updateMessagesSelection):
1365         (WebInspector.LogContentView.prototype._isMessageVisible):
1366         (WebInspector.LogContentView.prototype._isMessageSelected):
1367         (WebInspector.LogContentView.prototype._selectAllMessages):
1368         (WebInspector.LogContentView.prototype._unfilteredMessages):
1369         (WebInspector.LogContentView.prototype._visibleMessages):
1370         (WebInspector.LogContentView.prototype._filterMessages):
1371         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
1372         (WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent):
1373         (WebInspector.LogContentView.prototype._performSearch):
1374         * UserInterface/Views/Section.css:
1375         (.section .header .title::before):
1376         (.section.expanded .header .title::before):
1377         (.section .header .title, .event-bar .header .title):
1378         (.properties-tree li.parent::before):
1379         (.section .header::before): Deleted.
1380         (.section.expanded .header::before): Deleted.
1381
1382 2015-02-15  Brian J. Burg  <burg@cs.washington.edu>
1383
1384         Web Inspector: remove unused XHR replay code
1385         https://bugs.webkit.org/show_bug.cgi?id=141622
1386
1387         Reviewed by Timothy Hatcher.
1388
1389         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
1390         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1391         * Versions/Inspector-iOS-7.0.json:
1392         * Versions/Inspector-iOS-8.0.json:
1393
1394 2015-02-14  Joseph Pecoraro  <pecoraro@apple.com>
1395
1396         Web Inspector: Remove specificity approximation
1397         https://bugs.webkit.org/show_bug.cgi?id=141600
1398
1399         Reviewed by Timothy Hatcher.
1400
1401         * Localizations/en.lproj/localizedStrings.js:
1402         * UserInterface/Views/CSSStyleDeclarationSection.js:
1403         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
1404
1405 2015-02-13  Timothy Hatcher  <timothy@apple.com>
1406
1407         Web Inspector: support better git diff of localizedStrings.js
1408         https://bugs.webkit.org/show_bug.cgi?id=137237
1409
1410         Reviewed by Joseph Pecoraro.
1411
1412         * .gitattributes: Added.
1413
1414 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
1415
1416         Web Inspector: add keyboard shortcut to enable/disable all breakpoints
1417         https://bugs.webkit.org/show_bug.cgi?id=141527
1418
1419         Reviewed by Joseph Pecoraro.
1420
1421         * Localizations/en.lproj/localizedStrings.js:
1422         * UserInterface/Views/DebuggerSidebarPanel.js:
1423         (WebInspector.DebuggerSidebarPanel): Bind Command/Control + Y to toggle breakpoints button.
1424
1425 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
1426
1427         Web Inspector: support adding and removing timelines to the timeline sidebar panel and overview
1428         https://bugs.webkit.org/show_bug.cgi?id=138434
1429
1430         Reviewed by Timothy Hatcher.
1431
1432         A timeline recording's timelines should not be static. This patch adds relevant machinery to
1433         dynamically add and remove timelines from the Timeline model object and its various views.
1434
1435         From the model side, this is a simple change that adds TimelineAdded and TimelineRemoved events.
1436         The timeline views and timeline sidebar require more extensive changes to support this functionality.
1437         Instead of keeping a fixed set of timeline tree elements, the sidebar view now adds and removes
1438         tree elements to reflect the available timelines for the displayed timeline recording.
1439
1440         This change also includes several minor cleanups, such as appending 'Element' to view properties that
1441         are DOM elements, and renaming TimelineContentView to TimelineRecordingContentView.
1442
1443         * UserInterface/Controllers/TimelineManager.js:
1444         (WebInspector.TimelineManager.prototype._loadNewRecording):
1445         Populate predefined network, layout, and script timelines here after constructing the recording.
1446
1447         * UserInterface/Main.html:
1448         * UserInterface/Models/Timeline.js:
1449         Move hardcoded class names and localized strings to these base class methods. This is not implemented
1450         using overridden methods because not all timeline types have their own subclasses. Add a dummy
1451         implementation of saveIdentityToCookie() to avoid warnings when saving sidebar panel selection state.
1452
1453         (WebInspector.Timeline.prototype.get type):
1454         (WebInspector.Timeline.prototype.get displayName): Added.
1455         (WebInspector.Timeline.prototype.get iconClassName): Added.
1456         (WebInspector.Timeline.prototype.addRecord):
1457         * UserInterface/Models/TimelineRecording.js:
1458         (WebInspector.TimelineRecording):
1459         (WebInspector.TimelineRecording.prototype.addTimeline.set timeline): Added.
1460         (WebInspector.TimelineRecording.prototype.addTimeline): Added.
1461         (WebInspector.TimelineRecording.prototype.removeTimeline.get this): Added.
1462         (WebInspector.TimelineRecording.prototype.removeTimeline): Added.
1463         * UserInterface/Views/ContentView.js:
1464         (WebInspector.ContentView):
1465         * UserInterface/Views/LayoutTimelineView.css:
1466         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
1467         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
1468         * UserInterface/Views/LayoutTimelineView.js:
1469         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
1470         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
1471         * UserInterface/Views/NavigationSidebarPanel.js:
1472         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie): Fix error message formatting.
1473         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
1474         * UserInterface/Views/NetworkTimelineView.css:
1475         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
1476         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
1477         * UserInterface/Views/NetworkTimelineView.js:
1478         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
1479         * UserInterface/Views/ScriptTimelineView.css:
1480         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
1481         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
1482         * UserInterface/Views/ScriptTimelineView.js:
1483         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
1484         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
1485         * UserInterface/Views/TimelineOverview.js:
1486         Convert this class to use the representedObject class pattern. It manages its own mapping from timelines
1487         to overview graph views. Append 'Element' to some properties holding DOM elements.
1488         (WebInspector.TimelineOverview):
1489         (WebInspector.TimelineOverview.prototype.get visibleDuration):
1490         (WebInspector.TimelineOverview.prototype.reset):
1491         (WebInspector.TimelineOverview.prototype.updateLayout):
1492         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
1493         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
1494         (WebInspector.TimelineOverview.prototype._timelineRemoved):
1495         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
1496         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
1497         * UserInterface/Views/TimelineRecordingContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.css.
1498         Remove hard-coded top offsets and heights that need to be dynamically calculated.
1499         (.content-view.timeline-recording > .timeline-overview):
1500         (.content-view.timeline-recording > .view-container):
1501         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td):
1502         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data):
1503         * UserInterface/Views/TimelineRecordingContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.js.
1504         Manage timeline views and path components dynamically. Adjust view heights as necessary. Append 'Element'
1505         to some properties holding DOM elements.
1506         (WebInspector.TimelineRecordingContentView):
1507         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
1508         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
1509         (WebInspector.TimelineRecordingContentView.prototype.get allowedNavigationSidebarPanels):
1510         (WebInspector.TimelineRecordingContentView.prototype.get supportsSplitContentBrowser):
1511         (WebInspector.TimelineRecordingContentView.prototype.get navigationItems):
1512         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
1513         (WebInspector.TimelineRecordingContentView.prototype.shown):
1514         (WebInspector.TimelineRecordingContentView.prototype.hidden):
1515         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange):
1516         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
1517         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
1518         (WebInspector.TimelineRecordingContentView.prototype.restoreFromCookie):
1519         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters.checkTimeBounds):
1520         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters):
1521         (WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
1522         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange):
1523         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView):
1524         (WebInspector.TimelineRecordingContentView.prototype._update):
1525         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
1526         (WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
1527         (WebInspector.TimelineRecordingContentView.prototype._stopUpdatingCurrentTime):
1528         (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
1529         (WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
1530         (WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
1531         (WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
1532         Fix a minor regression where we make a useless call to stop updating the time.
1533
1534         (WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
1535         (WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
1536         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
1537         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
1538         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
1539         (WebInspector.TimelineRecordingContentView.prototype._recordingUnloaded):
1540         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1541         * UserInterface/Views/TimelineSidebarPanel.css:
1542         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
1543         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content): Deleted.
1544         * UserInterface/Views/TimelineSidebarPanel.js:
1545         Manage timeline tree elements dynamically. Adjust view heights as necessary. Append 'Element'
1546         to some properties holding DOM elements. Keep track of the displayed recording and view explicitly.
1547         (WebInspector.TimelineSidebarPanel):
1548         (WebInspector.TimelineSidebarPanel.prototype.shown):
1549         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
1550         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
1551         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
1552         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
1553         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
1554         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
1555         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
1556         (WebInspector.TimelineSidebarPanel.prototype.get if):
1557         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
1558         (WebInspector.TimelineSidebarPanel.prototype._recordingCountChanged):
1559         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
1560         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
1561         (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved):
1562         (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
1563         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Deleted.
1564         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
1565         * UserInterface/Views/TimelineView.css:
1566         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
1567         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
1568
1569 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
1570
1571         Web Inspector: Large background image fails to load in inspector
1572         https://bugs.webkit.org/show_bug.cgi?id=141405
1573
1574         Reviewed by Timothy Hatcher.
1575
1576         Convert base64-encoded resource data to binary data using Uint8Array and Blobs.
1577         Use object URLs for blobs instead of data URLs when setting image 'src' attribute
1578         and in @font-face urls. This conversion happens when the backend indicates that
1579         resource content is base64-encoded.
1580
1581         Update image and font clients of resource-fetching functionality so that they use
1582         object URLs correctly. Add some plumbing so that Blobs can be constructed with
1583         the correct mime-type.
1584
1585         * UserInterface/Base/Utilities.js:
1586         (decodeBase64ToBlob): Added.
1587         * UserInterface/Models/CSSStyleSheet.js:
1588         (WebInspector.CSSStyleSheet.prototype.get mimeType): Added.
1589         * UserInterface/Models/Resource.js:
1590         (WebInspector.Resource.prototype.createObjectURL): Added.
1591         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
1592         (WebInspector.Resource.prototype.getImageSize):
1593         (WebInspector.Resource.prototype.get contentURL): Deleted.
1594         * UserInterface/Models/Script.js:
1595         (WebInspector.Script.prototype.get mimeType): Added.
1596         * UserInterface/Models/SourceCode.js:
1597         (WebInspector.SourceCode.prototype.get mimeType): Added.
1598         (WebInspector.SourceCode.prototype._processContent):
1599         (WebInspector.SourceCode.prototype.get contentIsBase64Encoded): Deleted.
1600         * UserInterface/Models/SourceCodeRevision.js:
1601         (WebInspector.SourceCodeRevision):
1602         (WebInspector.SourceCodeRevision.prototype.copy):
1603         (WebInspector.SourceCodeRevision.prototype.get contentIsBase64Encoded): Deleted.
1604         (WebInspector.SourceCodeRevision.prototype.set contentIsBase64Encoded): Deleted.
1605         * UserInterface/Views/FontResourceContentView.js:
1606         (WebInspector.FontResourceContentView.prototype.hidden):
1607         (WebInspector.FontResourceContentView.prototype.closed):
1608         * UserInterface/Views/ImageResourceContentView.js:
1609         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
1610
1611 2015-02-11  Nikita Vasilyev  <nvasilyev@apple.com>
1612
1613         Web Inspector: REGRESSION: Clicking selected item in the sidebar second time should scroll to the corresponding line
1614         https://bugs.webkit.org/show_bug.cgi?id=140280
1615
1616         Reviewed by Brian Burg.
1617
1618         * UserInterface/Views/ContentViewContainer.js:
1619         (WebInspector.ContentViewContainer.prototype.showContentView):
1620         Perform scolling regardless of the navigation history. Since scrolling source code doesn't introduce a BackForwardEntry,
1621         it's possible that the actual content view has a different scroll position.
1622
1623 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
1624
1625         Web Inspector: Better handle unknown release versions
1626         https://bugs.webkit.org/show_bug.cgi?id=141454
1627
1628         Reviewed by Timothy Hatcher.
1629
1630         * UserInterface/Base/Platform.js:
1631         If given an unknown Mac OS X version, at least parse
1632         the version number in WebInspector.Platform.
1633
1634 2015-02-10  Nikita Vasilyev  <nvasilyev@apple.com>
1635
1636         Web Inspector: Make collapsed sidebars undraggable
1637         https://bugs.webkit.org/show_bug.cgi?id=140664
1638
1639         Reviewed by Timothy Hatcher.
1640
1641         * UserInterface/Views/Sidebar.css:
1642         (.sidebar.collapsed):
1643         (.sidebar.collapsed.right > .resizer): Deleted.
1644         (.sidebar.collapsed.left > .resizer): Deleted.
1645         * UserInterface/Views/Sidebar.js:
1646         (WebInspector.Sidebar):
1647         (WebInspector.Sidebar.prototype._resizerMouseDown):
1648         (WebInspector.Sidebar.prototype._resizerMouseMoved):
1649         (WebInspector.Sidebar.prototype._resizerDoubleClicked): Deleted.
1650
1651 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
1652
1653         Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
1654         https://bugs.webkit.org/show_bug.cgi?id=141411
1655
1656         Reviewed by Timothy Hatcher.
1657
1658         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
1659         * UserInterface/Views/CodeMirrorFormatters.js:
1660         Token actually was "number m-css" so we should check token strings
1661         more robustly, like elsewhere in the formatters.
1662
1663 2015-02-09  Brian J. Burg  <burg@cs.washington.edu>
1664
1665         Web Inspector: Uncaught exception when reporting wrong backend command call signature
1666         https://bugs.webkit.org/show_bug.cgi?id=141401
1667
1668         Reviewed by Joseph Pecoraro.
1669
1670         * UserInterface/Protocol/InspectorBackend.js:
1671         (InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.
1672
1673 2015-02-06  Jono Wells  <jonowells@apple.com>
1674
1675         Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
1676         https://bugs.webkit.org/show_bug.cgi?id=140586
1677
1678         Reviewed by Timothy Hatcher.
1679
1680         Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
1681         will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
1682         stylesheet so that the content will update correctly.
1683
1684         * UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.
1685         (WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
1686         * UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.
1687         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.
1688         * UserInterface/Models/Resource.js: Drive-by removal of unused variable.
1689         * UserInterface/Models/SourceCode.js:
1690         (WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
1691         (WebInspector.SourceCode.prototype._processContent): Handle `parameters.text` correctly.
1692
1693 2015-02-04  Jono Wells  <jonowells@apple.com>
1694
1695         Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
1696         https://bugs.webkit.org/show_bug.cgi?id=141225
1697
1698         Reviewed by Timothy Hatcher.
1699
1700         Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
1701         calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
1702         payload, including manual calls in the case where the source map content is in a data URI. Also
1703         WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
1704         resource loading error messages in the resource content view.
1705
1706         * UserInterface/Models/Resource.js: drive-by style fix.
1707
1708         * UserInterface/Models/SourceCode.js:
1709         (WebInspector.SourceCode.prototype._processContent):
1710         Properly handle error string.
1711
1712         * UserInterface/Models/SourceMapResource.js:
1713         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
1714         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
1715         Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.
1716
1717         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
1718         This function now handles NetworkAgent errors only.
1719
1720 2015-02-05  Brian J. Burg  <burg@cs.washington.edu>
1721
1722         Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
1723         https://bugs.webkit.org/show_bug.cgi?id=141293
1724
1725         Reviewed by Timothy Hatcher.
1726
1727         The timeline overview's ruler was forcing repaints of divider labels even if the labels
1728         had not changed since the last requestAnimationFrame. Bail out early if nothing changed.
1729
1730         The timeline overview and its graphs were updating layout using requestAnimationFrame
1731         even when the TimelineContentView is not visible. Fix this by propagating visibility
1732         changes to subviews, and not updating layout when hidden.
1733
1734         The above change also fixes an assertion sometimes encountered when the timeline view
1735         tries to cache an element's offset width, but cannot because it isn't visible.
1736
1737         * UserInterface/Views/TimelineContentView.js:
1738         (WebInspector.TimelineContentView.prototype.shown):
1739         (WebInspector.TimelineContentView.prototype.hidden):
1740         * UserInterface/Views/TimelineOverview.js:
1741         (WebInspector.TimelineOverview.prototype.get visible):
1742         (WebInspector.TimelineOverview.prototype.shown):
1743         (WebInspector.TimelineOverview.prototype.hidden):
1744         (WebInspector.TimelineOverview.prototype._needsLayout):
1745         * UserInterface/Views/TimelineOverviewGraph.js:
1746         (WebInspector.TimelineOverviewGraph.prototype.get visible):
1747         (WebInspector.TimelineOverviewGraph.prototype.shown):
1748         (WebInspector.TimelineOverviewGraph.prototype.hidden):
1749         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
1750         * UserInterface/Views/TimelineRuler.js:
1751         (WebInspector.TimelineRuler.prototype.updateLayout):
1752
1753 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
1754
1755         Web Inspector: ES6: Improved Console Support for Symbol Objects
1756         https://bugs.webkit.org/show_bug.cgi?id=141173
1757
1758         Reviewed by Timothy Hatcher.
1759
1760         * UserInterface/Protocol/RemoteObject.js:
1761         (WebInspector.RemoteObject):
1762         (WebInspector.RemoteObject.prototype._isSymbol):
1763         Symbols have an objectId because it is a non-primitive that cannot be passed
1764         by value, however it cannot have properties, so handle some cases.
1765
1766         * UserInterface/Views/LogContentView.css:
1767         (.console-formatted-symbol):
1768         Give Symbol's their own color.
1769
1770 2015-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
1771
1772         Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
1773         https://bugs.webkit.org/show_bug.cgi?id=139659
1774
1775         Reviewed by Timothy Hatcher.
1776
1777         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1778         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
1779         Use non-monospace font to fit the placeholder text on a single line and
1780         match the color if the native placeholder.
1781
1782 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
1783
1784         Web Inspector: console.table with columnName filter for non-existent property should still show column
1785         https://bugs.webkit.org/show_bug.cgi?id=141066
1786
1787         Reviewed by Timothy Hatcher.
1788
1789         * UserInterface/Views/ConsoleMessageImpl.js:
1790         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
1791         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
1792         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
1793         If a second argument was provided to console.table, try to extract a list
1794         of string names to use for the object properties. Output a table with
1795         the provided column names, in the specified order. Also, use this
1796         opportunity to mark missing properties with an em dash.
1797
1798 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
1799
1800         Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
1801         https://bugs.webkit.org/show_bug.cgi?id=141166
1802
1803         Reviewed by Timothy Hatcher.
1804
1805         * UserInterface/Base/Utilities.js:
1806         Add String.prototype.endsWith. Group String extensions together.
1807
1808         * UserInterface/Models/CSSKeywordCompletions.js:
1809         (WebInspector.CSSKeywordCompletions.forProperty):
1810         If a property name ends in "color", provide CSS color completions.
1811
1812         (WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
1813         This was unused and disagrees slightly with the implementation above.
1814
1815 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
1816
1817         Web Inspector: Support console.table
1818         https://bugs.webkit.org/show_bug.cgi?id=141058
1819
1820         Reviewed by Timothy Hatcher.
1821
1822         * Localizations/en.lproj/localizedStrings.js:
1823         New "Index", "(Index)", "Value", table header strings.
1824
1825         * UserInterface/Views/ConsoleMessage.js:
1826         Add "Table", but add FIXMEs to consider using the protocol generated enums.
1827
1828         * UserInterface/Views/ConsoleMessageImpl.js:
1829         (WebInspector.ConsoleMessageImpl.prototype._format):
1830         Special case console.table messages.
1831
1832         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
1833         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
1834         Factor out ProjectPreview printing. Also, replace newlines in strings
1835         with return characters, like we did elsewhere.
1836
1837         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
1838         Ultimately try to create a DataGrid from the output. Search first
1839         for rich object data in the list. If no rich object data is found
1840         just check for simple values. If the table is lossy, also do
1841         a log of the object in case the user wants to see more data.
1842
1843
1844         * UserInterface/Views/DataGrid.js:
1845         (WebInspector.DataGrid):
1846         The for..in enumeration is unordered and may not give us the
1847         column ordering we wanted. So include an optional preferred
1848         column names list to get the preferred order.
1849
1850         (WebInspector.DataGrid.createSortableDataGrid):
1851         Numerous bug fixes here. Accidental globals, typos, and sorting failures.
1852
1853         (WebInspector.DataGrid.prototype.autoSizeColumns):
1854         (WebInspector.DataGrid.prototype.textForDataGridNodeColumn):
1855         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
1856         Create a generic method to get the text for a datagrid node in a column.
1857         This is important for getting the text from console.table previews which
1858         contains Nodes.
1859
1860         * UserInterface/Views/LogContentView.css:
1861         (.console-messages:focus .console-item.selected .data-grid tr.selected):
1862         (.console-item .data-grid tr.selected):
1863         DataGrid selection colors while in the console which may or may
1864         not have selected console items.
1865
1866 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
1867
1868         Web Inspector: Extend CSS.getSupportedCSSProperties to provide values for properties for CSS Augmented JSContext
1869         https://bugs.webkit.org/show_bug.cgi?id=141064
1870
1871         Reviewed by Timothy Hatcher.
1872
1873         * UserInterface/Models/CSSCompletions.js:
1874         * UserInterface/Models/CSSKeywordCompletions.js:
1875         (WebInspector.CSSKeywordCompletions.addCustomCompletions):
1876         (WebInspector.CSSKeywordCompletions.addPropertyCompletionValues):
1877         If a property is specified with custom values, extend the
1878         keyword completions map to make those values available
1879         in autocompletion.
1880
1881 2015-01-30  Joseph Pecoraro  <pecoraro@apple.com>
1882
1883         Remote Web Inspector should not show undock toolbar buttons
1884         https://bugs.webkit.org/show_bug.cgi?id=141061
1885
1886         Reviewed by Timothy Hatcher.
1887
1888         * UserInterface/Base/Main.js:
1889         (WebInspector.contentLoaded):
1890         Be sure to update the toolbar's dock navigation icons because they
1891         may need to be hidden (the default state).
1892
1893 2015-01-29  Saam Barati  <saambarati1@gmail.com>
1894
1895         Web Inspector: Allow text selection when the BasicBlockAnnotator is enabled
1896         https://bugs.webkit.org/show_bug.cgi?id=140987
1897
1898         Reviewed by Timothy Hatcher.
1899
1900         Because the BasicBlockAnnotator no longer sets the background color of
1901         lines that haven't executed to gray, text selection while the
1902         BasicBlockAnnotator is enabled no longer results in a bad user interface.
1903         This patch both allows text selection while the BasicBlockAnnotator is
1904         enabled and also removes the now unused listeners to CodeMirror's focus
1905         and blur events.
1906
1907         * UserInterface/Views/SourceCodeTextEditor.js:
1908         (WebInspector.SourceCodeTextEditor):
1909         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
1910         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
1911         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
1912         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus): Deleted.
1913         (WebInspector.SourceCodeTextEditor.prototype.lostFocus): Deleted.
1914         * UserInterface/Views/TextEditor.js:
1915         (WebInspector.TextEditor):
1916         (WebInspector.TextEditor.prototype.gainedFocus): Deleted.
1917         (WebInspector.TextEditor.prototype.lostFocus): Deleted.
1918
1919 2015-01-29  Saam Barati  <saambarati1@gmail.com>
1920
1921         Web Inspector: Make BasicBlockAnnotator lessen the saturation of syntax highlighting instead of graying out unexecuted code
1922         https://bugs.webkit.org/show_bug.cgi?id=141011
1923
1924         Reviewed by Timothy Hatcher.
1925
1926         This patch removes a lot of the complicated logic associated around 
1927         determining which code can be grayed out by the BasicBlockAnnotator. 
1928         Instead, the BasicBlockAnnotator now applies a CSS class to all the
1929         code that has not executed which lessens the saturation of the 
1930         syntax coloring for the code. This creates both a nicer user
1931         interface and a nicer user experience because it makes reading
1932         source code with the BasicBlockAnnotator enabled more pleasant.
1933
1934         * UserInterface/Controllers/BasicBlockAnnotator.js:
1935         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
1936         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
1937         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
1938         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace): Deleted.
1939         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace): Deleted.
1940         (_canGrayOutEntireLine): Deleted.
1941         (_grayOutLine): Deleted.
1942         (_clearRangeForBasicBlockMarker.get marker): Deleted.
1943         (_clearRangeForBasicBlockMarker): Deleted.
1944         * UserInterface/Views/SourceCodeTextEditor.css:
1945         (.hover-menu.color > img):
1946         (.basic-block-has-not-executed): Deleted.
1947         (.basic-block-has-not-executed-prepend::before): Deleted.
1948         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
1949         (.cm-s-default .basic-block-has-not-executed):
1950         (.cm-s-default .basic-block-has-not-executed.cm-comment):
1951         (.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-3, .cm-property)):
1952         (.cm-s-default .basic-block-has-not-executed:matches(.cm-number, .cm-atom.cm-hex-color)):
1953         (.cm-s-default .basic-block-has-not-executed.cm-string):
1954         (.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-meta):
1955         (.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-attribute):
1956
1957 2015-01-29  Joseph Pecoraro  <pecoraro@apple.com>
1958
1959         Web Inspector: ES6: Improved Console Format for Set and Map Objects (like Arrays)
1960         https://bugs.webkit.org/show_bug.cgi?id=122867
1961
1962         Reviewed by Timothy Hatcher.
1963
1964         This includes Set/Map/WeakMap previews:
1965
1966             - Set previews: Set {1, 2, 3}
1967             - Map/WeakMap previews: Map {1 => 2, "key" => "value"}
1968
1969         For WeakMaps:
1970         
1971             - the preview itself shows up to 5 key/value pairs from when the object was logged
1972             - the previews are strings only, and thus do not retain the actual keys/values
1973             - when expanding, we get RemoteObjects and strongly retain the keys/values
1974             - when collapsing / clearing, we release the RemoteObjects so they can get collected
1975
1976         Currently you collapse the <entries> section, and re-expand later the
1977         collection may show you knew keys/values. The UI for this will change.
1978
1979         * Localizations/en.lproj/localizedStrings.js:
1980         * UserInterface/Protocol/RemoteObject.js:
1981         (WebInspector.RemoteObject.prototype.isCollectionType):
1982         (WebInspector.RemoteObject.prototype.isWeakCollection):
1983         (WebInspector.RemoteObject.prototype.getCollectionEntries):
1984         (WebInspector.RemoteObject.prototype.releaseWeakCollectionEntries):
1985         (WebInspector.RemoteObject.prototype.arrayLength):
1986         (WebInspector.RemoteObject.prototype._weakCollectionObjectGroup):
1987         High level functions for dealing with a RemoteObject that may be a
1988         collection / weak collection.
1989
1990         * UserInterface/Views/ConsoleMessageImpl.js:
1991         (WebInspector.ConsoleMessageImpl):
1992         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1993         Include default formatters for collection types.
1994
1995         (WebInspector.ConsoleMessageImpl.prototype._appendPreview):
1996         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews):
1997         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
1998         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview):
1999         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): Deleted.
2000         Refactor preview generation a bit and include a specific path for
2001         generation the output of a preview with "entries".
2002
2003         * UserInterface/Views/LogContentView.css:
2004         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object):
2005         With nested Object previews ("Map {{a:1} => 1}") don't show "Object" for the inner
2006         object preview. Only show it if it has a unique type ("Map {Foo {a:1} => 1}")
2007
2008         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
2009         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section):
2010         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .properties):
2011         Make map/set/weakmap display like Objects.
2012
2013         * UserInterface/Views/ObjectPropertiesSection.js:
2014         (WebInspector.ObjectPropertiesSection.prototype.update):
2015         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
2016         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
2017         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2018         (WebInspector.CollectionEntriesMainTreeElement):
2019         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
2020         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
2021         (WebInspector.CollectionEntriesMainTreeElement.prototype.oncollapse):
2022         (WebInspector.CollectionEntriesMainTreeElement.prototype.ondetach):
2023         (WebInspector.CollectionEntriesMainTreeElement.prototype._trackWeakEntries):
2024         (WebInspector.CollectionEntriesMainTreeElement.prototype._untrackWeakEntries):
2025         (WebInspector.CollectionEntryTreeElement):
2026         (WebInspector.CollectionEntryTreeElement.prototype.onpopulate):
2027         (WebInspector.CollectionEntryTreeElement.prototype.onattach):
2028         (WebInspector.EmptyCollectionTreeElement):
2029         (WebInspector.ObjectPropertiesSection.prototype.update.callback): Deleted.
2030         Add a quick UI for exploring the entries of a collection. We are actively
2031         changing the styles of objects in the Console, so this should change soon.
2032
2033 2015-01-28  Joseph Pecoraro  <pecoraro@apple.com>
2034
2035         Web Inspector: Change Main Frame Status Buttons when debugging Augmented JSContext
2036         https://bugs.webkit.org/show_bug.cgi?id=141006
2037
2038         Reviewed by Timothy Hatcher.
2039
2040         * Localizations/en.lproj/localizedStrings.js:
2041         New "Restart" string.
2042
2043         * UserInterface/Base/Main.js:
2044         (WebInspector.canArchiveMainFrame):
2045         * UserInterface/Views/FrameTreeElement.js:
2046         (WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
2047         (WebInspector.FrameTreeElement.prototype._updateDownloadButton):
2048         Update the tooltip when in a non-Web debuggable, and only show
2049         the Download button when in a Web debuggable.
2050
2051         * UserInterface/Views/TreeElementStatusButton.js:
2052         (WebInspector.TreeElementStatusButton.prototype.set hidden):
2053         Oops! The implementation was backwards. Simplify with classList.toggle.
2054
2055 2015-01-28  Brian J. Burg  <burg@cs.washington.edu>
2056
2057         Web Inspector: remove CSS.setPropertyText, CSS.toggleProperty and related dead code
2058         https://bugs.webkit.org/show_bug.cgi?id=140961
2059
2060         Reviewed by Timothy Hatcher.
2061
2062         Setters for CSSProperty (except override) are not used, so delete them. These setters
2063         and their callees in DOMNodeStyles were the only clients of the removed protocol commands.
2064
2065         * UserInterface/Models/CSSProperty.js:
2066         (WebInspector.CSSProperty.prototype.update):
2067         (WebInspector.CSSProperty.prototype.get name):
2068         (WebInspector.CSSProperty.prototype.get value):
2069         (WebInspector.CSSProperty.prototype.get priority):
2070         (WebInspector.CSSProperty.prototype.hasOtherVendorNameOrKeyword):
2071         (WebInspector.CSSProperty.prototype.set text): Deleted.
2072         (WebInspector.CSSProperty.prototype.set name): Deleted.
2073         (WebInspector.CSSProperty.prototype.set value): Deleted.
2074         (WebInspector.CSSProperty.prototype.set important): Deleted.
2075         (WebInspector.CSSProperty.prototype.set priority): Deleted.
2076         (WebInspector.CSSProperty.prototype.set enabled): Deleted.
2077         (WebInspector.CSSProperty.prototype.add): Deleted.
2078         (WebInspector.CSSProperty.prototype.remove): Deleted.
2079         (WebInspector.CSSProperty.prototype._updatePropertySoon.performUpdate): Deleted.
2080         (WebInspector.CSSProperty.prototype._updatePropertySoon): Deleted.
2081         (WebInspector.CSSProperty.prototype._cancelPendingUpdate): Deleted.
2082         * UserInterface/Models/CSSStyleDeclaration.js:
2083         (WebInspector.CSSStyleDeclaration.prototype.addProperty): Deleted.
2084         (WebInspector.CSSStyleDeclaration.prototype.removeProperty): Deleted.
2085         * UserInterface/Models/DOMNodeStyles.js:
2086         (WebInspector.DOMNodeStyles.prototype.addEmptyRule):
2087         (WebInspector.DOMNodeStyles.prototype.addRule): Deleted.
2088         (WebInspector.DOMNodeStyles.prototype.changeProperty): Deleted.
2089         (WebInspector.DOMNodeStyles.prototype.changePropertyText): Deleted.
2090         (WebInspector.DOMNodeStyles.prototype.changePropertyEnabledState): Deleted.
2091         (WebInspector.DOMNodeStyles.prototype.addProperty): Deleted.
2092         (WebInspector.DOMNodeStyles.prototype.removeProperty): Deleted.
2093         (WebInspector.DOMNodeStyles.prototype._handlePropertyChange): Deleted.
2094         * UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js:
2095         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
2096         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2097         * UserInterface/Views/RulesStyleDetailsPanel.js:
2098         (WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked):
2099         * Versions/Inspector-iOS-6.0.json:
2100         * Versions/Inspector-iOS-7.0.json:
2101         * Versions/Inspector-iOS-8.0.json:
2102
2103 2015-01-28  Dana Burkart  <dburkart@apple.com>
2104
2105         Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig
2106         https://bugs.webkit.org/show_bug.cgi?id=136765
2107
2108         Reviewed by Alexey Proskuryakov.
2109
2110         * Configurations/Base.xcconfig:
2111         * Configurations/DebugRelease.xcconfig:
2112
2113 2015-01-23  Joseph Pecoraro  <pecoraro@apple.com>
2114
2115         Web Inspector: Object Previews in the Console
2116         https://bugs.webkit.org/show_bug.cgi?id=129204
2117
2118         Reviewed by Timothy Hatcher.
2119
2120         * UserInterface/Controllers/JavaScriptLogViewController.js:
2121         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
2122         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
2123         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
2124         Update RuntimeManager callsites that do not need object previews.
2125
2126         * UserInterface/Controllers/RuntimeManager.js:
2127         (WebInspector.RuntimeManager.prototype.evalCallback):
2128         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2129         Update the main evaluate method to include a boolean parameter for
2130         object previews. Most callers do not need them. Also, since previews
2131         were not available on iOS 6, switch to invoke, to conditionally
2132         include the command parameter.
2133
2134         * UserInterface/Protocol/RemoteObject.js:
2135         (WebInspector.RemoteObject):
2136         (WebInspector.RemoteObject.fromPayload):
2137         (WebInspector.RemoteObject.prototype.get preview):
2138         Store the preview from the payload.
2139
2140         * UserInterface/Views/ConsoleMessageImpl.js:
2141         (WebInspector.ConsoleMessageImpl.prototype._format):
2142         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2143         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
2144         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
2145         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
2146         Pass an explicit false for most formatters to not use a preview if available.
2147         
2148         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2149         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2150         Currently only object types are previewed. Though we request previews
2151         for arrays, we don't use the preview because we show a better preview
2152         by just immediately requesting for a full non-preview property list.
2153         
2154         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
2155         Quickly output an object preview into the title element. The format
2156         is "ClassName {prop: value...}". Elide the class name if it is "Object".
2157         Also skip over certain preview properties that may not be useful
2158         at a glance (like constructor, or accessors without values).
2159
2160         * UserInterface/Views/LogContentView.css:
2161         (.console-object-preview):
2162         (.console-formatted-array .console-object-preview):
2163         (.console-object-preview-lossless):
2164         (.expanded .console-object-preview):
2165         Show lossy previews in italics.
2166         Show lossless previews and array previews without italics.
2167         Do not show the class name in the preview in italics when expanded.
2168
2169         (.console-object-preview .name):
2170         Give preview property names the same color as ObjectPropertiesSection property names.
2171         
2172         (.expanded .console-object-preview > .console-object-preview-body):
2173         When expanding an object, hide the preview.
2174
2175         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
2176         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
2177         For "Object" previews, hide the name "Object" when not expanded, and show it when expanded.
2178
2179 2015-01-23  Saam Barati  <saambarati1@gmail.com>
2180
2181         Web Inspector: Disable *Annotators on minified files that aren't pretty printed
2182         https://bugs.webkit.org/show_bug.cgi?id=140550
2183
2184         Reviewed by Timothy Hatcher.
2185
2186         When SourceCodeTextEditor speculates that a file is minified it 
2187         sets a flag on itself that the Annotators will notice when pretty 
2188         printing and turning on type profiling. 
2189
2190         SourceCodeTextEditor enforces the following two behaviors:
2191
2192         1. Always pretty print a file if we think it's minified while 
2193         viewing type annotations. So, while viewing a minified file, 
2194         if you press the type profiling button, the pretty printer will 
2195         first reformat the file, then the type profiler will insert type annotations.
2196
2197         2. If the type profiler is enabled and we're viewing a pretty 
2198         printed file that we think originally was minified, and the 
2199         pretty printer is disabled via pressing the button, then the 
2200         type profiler will also be disabled.
2201
2202         These two behaviors maintain a good user experience because 
2203         it prevents a bad visual representation of profiler data and 
2204         also prevents bad performance.
2205
2206         * UserInterface/Controllers/TypeTokenAnnotator.js:
2207         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations): Deleted.
2208         * UserInterface/Views/SourceCodeTextEditor.js:
2209         (WebInspector.SourceCodeTextEditor):
2210         (WebInspector.SourceCodeTextEditor.prototype.shown):
2211         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2212         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2213         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2214         (WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate):
2215         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
2216         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
2217
2218 2015-01-22  Jonathan Wells  <jonowells@apple.com>
2219
2220         Web Inspector: ResourceContentView.js incorrectly contains call to WebInspector.UIString with a variable parameter
2221         https://bugs.webkit.org/show_bug.cgi?id=140268
2222
2223         Reviewed by Timothy Hatcher.
2224
2225         UIString no longer incorrectly used around variables. Drive-by fixes to prototype inheritance style.
2226         Use of Promises corrected such that requesting content for a resource resolves rather than rejects if
2227         a resource can't be found or has another error that isn't a web inspector error.
2228
2229         * Localizations/en.lproj/localizedStrings.js: Updated.
2230         * UserInterface/Models/Resource.js: Change reject to resolve.
2231         * UserInterface/Models/Script.js:
2232         (WebInspector.Script.prototype.requestContentFromBackend): Proper use of Error object.
2233         * UserInterface/Models/SourceCode.js: Use correct inheritance style.
2234         * UserInterface/Views/ResourceContentView.js:
2235         (WebInspector.ResourceContentView.prototype._contentAvailable): Handle error now that promise resolves.
2236         (WebInspector.ResourceContentView.prototype._contentError): Remove incorrect use of UIString.
2237         * UserInterface/Views/SourceCodeTextEditor.js:
2238         (WebInspector.SourceCodeTextEditor.prototype._contentAvailable): Handle error now that promise resolves.
2239
2240 2015-01-22  Nikita Vasilyev  <nvasilyev@apple.com>
2241
2242         Web Inspector: Expected gutter highlight when selecting console input line, just like output line
2243         https://bugs.webkit.org/show_bug.cgi?id=140696
2244
2245         Reviewed by Timothy Hatcher.
2246
2247         * UserInterface/Views/LogContentView.css:
2248
2249 2015-01-21  Saam Barati  <saambarati1@gmail.com>
2250
2251         Web Inspector: Change Annotator's isActive getter into an isActive() function.
2252         https://bugs.webkit.org/show_bug.cgi?id=140729
2253
2254         Reviewed by Timothy Hatcher.
2255
2256         This patch also makes the child classes of Annotator use
2257         the function instead of accessing the property directly.
2258
2259         * UserInterface/Controllers/Annotator.js:
2260         (WebInspector.Annotator.prototype.isActive):
2261         (WebInspector.Annotator.prototype.get isActive): Deleted.
2262         * UserInterface/Controllers/BasicBlockAnnotator.js:
2263         (WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
2264         * UserInterface/Controllers/TypeTokenAnnotator.js:
2265         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
2266         * UserInterface/Views/SourceCodeTextEditor.js:
2267         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2268         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2269         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2270         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2271         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2272
2273 2015-01-21  Saam Barati  <saambarati1@gmail.com>
2274
2275         Web Inspector: Don't allow the BasicBlockAnnotator to highlight a section if it's only a closing brace
2276         https://bugs.webkit.org/show_bug.cgi?id=140727
2277
2278         Reviewed by Timothy Hatcher.
2279
2280         * UserInterface/Controllers/BasicBlockAnnotator.js:
2281         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
2282         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace):
2283         BasicBlockAnnotator tries to no longer highlight a basic block if it is only
2284         whitespace and a closing brace. These ranges are often after statements
2285         that make these basic blocks unreachable, such as a return/break/continue
2286         statement occurring inside a if/else/while/for block. This check won't
2287         match every highlighted empty closing brace, but catches most of them 
2288         because it only does intra block analysis instead of inter block analysis.
2289
2290 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2291
2292         Web Inspector: Use spread operator in a few places
2293         https://bugs.webkit.org/show_bug.cgi?id=140699
2294
2295         Reviewed by Geoffrey Garen.
2296
2297         * UserInterface/Controllers/ProbeManager.js:
2298         (WebInspector.ProbeManager.prototype.get probeSets):
2299         Simplify by using the spread operator.
2300
2301         * UserInterface/Models/TimelineRecording.js:
2302         This actually fixes an issue. The one place this was used was expecting
2303         an array and called ".length" on the result. However, the iterator being
2304         returned does not have a ".length" property so it was always undefined.
2305
2306 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2307
2308         Web Inspector: Expanding event objects in console shows undefined for most values, it should have real values
2309         https://bugs.webkit.org/show_bug.cgi?id=137306
2310
2311         Reviewed by Timothy Hatcher.
2312
2313         When first expanding an object, show all the object's own properties and any
2314         getter properties that may be on its prototype chain. Now, we only fetch
2315         own properties, for __proto__ properties.
2316
2317         * UserInterface/Protocol/RemoteObject.js:
2318         (WebInspector.RemoteObject.prototype.getOwnProperties):
2319         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties):
2320         (WebInspector.RemoteObject.prototype.getAllProperties):
2321         (WebInspector.RemoteObject.prototype.get hasChildren): Deleted.
2322         * UserInterface/Views/ObjectPropertiesSection.js:
2323         (WebInspector.ObjectPropertiesSection):
2324         (WebInspector.ObjectPropertiesSection.prototype.update):
2325         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2326
2327 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2328
2329         Web Inspector: Should show dynamic specificity values
2330         https://bugs.webkit.org/show_bug.cgi?id=140647
2331
2332         Reviewed by Benjamin Poulain.
2333
2334         For dynamic selectors, provide text in the tooltip describing that the
2335         specificity is dynamic and may change, and pointing out the element
2336         the current value was calculated against.
2337
2338         * Localizations/en.lproj/localizedStrings.js:
2339         * UserInterface/Models/CSSSelector.js:
2340         (WebInspector.CSSSelector):
2341         (WebInspector.CSSSelector.prototype.get specificity):
2342         (WebInspector.CSSSelector.prototype.get dynamic):
2343         * UserInterface/Models/DOMNodeStyles.js:
2344         (WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload.return):
2345         (WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload):
2346         * UserInterface/Views/CSSStyleDeclarationSection.js:
2347         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
2348
2349 2015-01-19  Saam Barati  <saambarati1@gmail.com>
2350
2351         Web Inspector: Provide a front end for JSC's Control Flow Profiler
2352         https://bugs.webkit.org/show_bug.cgi?id=138454
2353
2354         Reviewed by Timothy Hatcher.
2355
2356         This patch creates a user interface for JSC's control flow profiler.
2357         The Web Inspector gets basic block ranges from JSC, and displays
2358         basic blocks that have not executed as having a gray background.
2359         
2360         BasicBlockAnnotator is the class responsible for this UI logic.
2361         It also does a few nifty things when presenting a UI for this gray
2362         background color: if an entire line of code is within the basic 
2363         block's boundary, the annotator will not just highlight the background 
2364         behind the text, but the background of the entire line itself. This
2365         provides a nicer experience when glancing through large JavaScript files.
2366
2367         This patch also adds some necessary wrapper methods inside TextEditor
2368         for accessing CodeMirror's text highlighting functionality. It also
2369         creates a way for TextEditor and SourceCodeTextEditor to listen
2370         for focus events inside CodeMirror.
2371
2372         * UserInterface/Controllers/AnnotatorManager.js: Removed.
2373         * UserInterface/Controllers/BasicBlockAnnotator.js: Added.
2374         (WebInspector.BasicBlockAnnotator):
2375         (WebInspector.BasicBlockAnnotator.prototype.clearAnnotations):
2376         (WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
2377         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
2378         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
2379         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
2380         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace):
2381         (WebInspector.BasicBlockAnnotator.prototype._canGrayOutEntireLine):
2382         (WebInspector.BasicBlockAnnotator.prototype._grayOutLine):
2383         (WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker.get marker):
2384         (WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker):
2385         * UserInterface/Main.html:
2386         * UserInterface/Views/SourceCodeTextEditor.css:
2387         (.basic-block-has-not-executed):
2388         (.basic-block-has-not-executed-prepend::before):
2389         * UserInterface/Views/SourceCodeTextEditor.js:
2390         (WebInspector.SourceCodeTextEditor):
2391         (WebInspector.SourceCodeTextEditor.prototype.shown):
2392         (WebInspector.SourceCodeTextEditor.prototype.hidden):
2393         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
2394         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2395         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus):
2396         (WebInspector.SourceCodeTextEditor.prototype.lostFocus):
2397         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2398         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2399         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
2400         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2401         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2402         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2403         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
2404         (WebInspector.SourceCodeTextEditor.prototype._makeBasicBlockAnnotator):
2405         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
2406         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
2407         * UserInterface/Views/TextEditor.js:
2408         (WebInspector.TextEditor):
2409         (WebInspector.TextEditor.prototype.getTextInRange):
2410         (WebInspector.TextEditor.prototype.addStyleToTextRange):
2411         (WebInspector.TextEditor.prototype.gainedFocus):
2412         (WebInspector.TextEditor.prototype.lostFocus):
2413
2414 2015-01-16  Nikita Vasilyev  <nvasilyev@apple.com>
2415
2416         Web Inspector: Make message selection in the console more readable
2417         https://bugs.webkit.org/show_bug.cgi?id=140385
2418
2419         Reviewed by Timothy Hatcher.
2420
2421         * UserInterface/Views/LogContentView.css:
2422         (.console-item.selected):
2423         (.console-messages:focus .console-item.selected):
2424         (.console-item.selected .console-message::after):
2425         (.console-messages:focus .console-item.selected .console-message::after):
2426         (.console-messages:focus .console-item.selected .go-to-link):
2427         * UserInterface/Views/Main.css:
2428         (.go-to-link):
2429         !important statements seem to be unnecessary, remove them.
2430
2431 2015-01-16  Joseph Pecoraro  <pecoraro@apple.com>
2432
2433         Web Inspector: Remove unused WebInspector.LocalJSONObject
2434         https://bugs.webkit.org/show_bug.cgi?id=140570
2435
2436         Reviewed by Timothy Hatcher.
2437
2438         * UserInterface/Protocol/RemoteObject.js:
2439         (WebInspector.RemoteObject.fromLocalObject): Deleted.
2440         (WebInspector.LocalJSONObject): Deleted.
2441         (WebInspector.LocalJSONObject.prototype.get description.switch.case.string_appeared_here): Deleted.
2442         (WebInspector.LocalJSONObject.prototype.get description.switch.default): Deleted.
2443         (WebInspector.LocalJSONObject.prototype.get description): Deleted.
2444         (WebInspector.LocalJSONObject.prototype._concatenate): Deleted.
2445         (WebInspector.LocalJSONObject.prototype.get type): Deleted.
2446         (WebInspector.LocalJSONObject.prototype.get subtype): Deleted.
2447         (WebInspector.LocalJSONObject.prototype.get hasChildren): Deleted.
2448         (WebInspector.LocalJSONObject.prototype.getOwnProperties): Deleted.
2449         (WebInspector.LocalJSONObject.prototype.getAllProperties): Deleted.
2450         (WebInspector.LocalJSONObject.prototype._children.buildProperty): Deleted.
2451         (WebInspector.LocalJSONObject.prototype._children): Deleted.
2452         (WebInspector.LocalJSONObject.prototype.isError): Deleted.
2453
2454 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
2455
2456         Web Inspector: Uncaught exceptions, attempting to dispatch unimplemented Network WebSocket methods
2457         https://bugs.webkit.org/show_bug.cgi?id=140532
2458
2459         Reviewed by Timothy Hatcher.
2460
2461         * UserInterface/Protocol/NetworkObserver.js:
2462         (WebInspector.NetworkObserver.prototype.webSocketFrameReceived):
2463         (WebInspector.NetworkObserver.prototype.webSocketFrameError):
2464         (WebInspector.NetworkObserver.prototype.webSocketFrameSent):
2465         Add stubs to prevent an exception when trying to dispatch the event.
2466
2467 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
2468
2469         Web Inspector: Reopening the inspector can selects a sub-frame instead of the Main Frame's DOM
2470         https://bugs.webkit.org/show_bug.cgi?id=140513
2471
2472         Reviewed by Timothy Hatcher.
2473
2474         * UserInterface/Models/Frame.js:
2475         (WebInspector.Frame.prototype.saveIdentityToCookie):
2476         Specifically identify the main frame, so that any sub-frames with the same
2477         URL, don't get choosen over the main frame when restoring state from cookie.
2478
2479 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
2480
2481         Web Inspector: selecting Paint timeline records from sidebar does not trigger preview of paint quad
2482         https://bugs.webkit.org/show_bug.cgi?id=139151
2483
2484         Reviewed by Brian Burg.
2485
2486         * UserInterface/Views/LayoutTimelineDataGrid.js:
2487         (WebInspector.LayoutTimelineDataGrid):
2488         (WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
2489         (WebInspector.LayoutTimelineDataGrid.prototype.reset): Deleted.
2490         (WebInspector.LayoutTimelineDataGrid.prototype.hidden): Deleted.
2491         (WebInspector.LayoutTimelineDataGrid.prototype._layoutDataGridSelectedNodeChanged): Deleted.
2492         (WebInspector.LayoutTimelineDataGrid.prototype._hideHighlightIfNeeded): Deleted.
2493         Move the node highlight from the datagrid to the timeline view because
2494         we want this to happen on both the Navigation sidebar and the datagrid.
2495
2496         * UserInterface/Views/LayoutTimelineView.js:
2497         (WebInspector.LayoutTimelineView.prototype.shown):
2498         (WebInspector.LayoutTimelineView.prototype.hidden):
2499         (WebInspector.LayoutTimelineView.prototype.filterDidChange):
2500         (WebInspector.LayoutTimelineView.prototype.reset):
2501         (WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
2502         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
2503         Update the highlight for major view updates.
2504
2505         (WebInspector.LayoutTimelineView.prototype._updateHighlight):
2506         (WebInspector.LayoutTimelineView.prototype._showHighlightForRecord):
2507         (WebInspector.LayoutTimelineView.prototype._hideHighlightIfNeeded):
2508         (WebInspector.LayoutTimelineView.prototype._hoveredOrSelectedRecord):
2509         Show a highlight for what we are hovering, or what is selected.
2510         Note the selected node may not be visible due to filtering.
2511
2512         (WebInspector.LayoutTimelineView.prototype._mouseOverDataGrid):
2513         (WebInspector.LayoutTimelineView.prototype._mouseLeaveDataGrid):
2514         (WebInspector.LayoutTimelineView.prototype._mouseOverTreeOutline):
2515         (WebInspector.LayoutTimelineView.prototype._mouseLeaveTreeOutline):
2516         Update hovered information mousing over the datagrid and tree outline.
2517
2518         * UserInterface/Views/TimelineContentView.js:
2519         (WebInspector.TimelineContentView.prototype.filterDidChange):
2520         * UserInterface/Views/TimelineSidebarPanel.js:
2521         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
2522         * UserInterface/Views/TimelineView.js:
2523         (WebInspector.TimelineView.prototype.filterDidChange):
2524         Include a "filterDidChange" TimelineView method that gets called after
2525         updateFilter (things like the filter bar or timeline range changes).
2526
2527         * UserInterface/Views/TreeOutline.js:
2528         (TreeOutline.prototype.treeElementFromNode):
2529         (TreeOutline.prototype.treeElementFromPoint):
2530         Provide a helper to get a tree element from an event target.
2531
2532 2015-01-13  Joseph Pecoraro  <pecoraro@apple.com>
2533
2534         Web Inspector: TextEditor doesn't update when resizing console, white space instead of content
2535         https://bugs.webkit.org/show_bug.cgi?id=140240
2536
2537         Reviewed by Timothy Hatcher.
2538
2539         * UserInterface/Base/Main.js:
2540         (WebInspector._consoleResizerMouseDown.dockedResizerDrag):
2541         Dispatch the event that signals the console has changed size.
2542
2543 2015-01-13  Joseph Pecoraro  <pecoraro@apple.com>
2544
2545         Web Inspector: I do not expect to see the same rule multiple times in styles sidebar
2546         https://bugs.webkit.org/show_bug.cgi?id=138185
2547
2548         Reviewed by Timothy Hatcher.
2549
2550         In the styles sidebar, don't show a duplicate, lesser-specificity rule even
2551         if it matches the selected element multiple times with different selectors
2552         in the list.
2553
2554         * UserInterface/Models/CSSRule.js:
2555         (WebInspector.CSSRule.prototype.isEqualTo):
2556         CSSRule identifiers are objects.
2557
2558         * UserInterface/Views/RulesStyleDetailsPanel.js:
2559         (WebInspector.RulesStyleDetailsPanel.prototype.refresh):
2560         Remove duplicates from the ordered list of style declarations.
2561
2562 2015-01-12  Jonathan Wells  <jonowells@apple.com>
2563
2564         Web Inspector: Timeline: when Network Requests view is selected, in progress requests are absent.
2565         https://bugs.webkit.org/show_bug.cgi?id=140090
2566
2567         Reviewed by Timothy Hatcher.
2568
2569         TimelineContentView#_updateTimes() changed to call WebInspector.timelineSidebarPanel.updateFilter() in addition
2570         to updating the layout of the current timeline view. TimelineSidebarPanel.updateFilter() now responsible for
2571         updating filtered resources in a TimelineView.
2572
2573         * UserInterface/Views/NavigationSidebarPanel.js:
2574         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2575         Now handles updating the UI associated with filtering of navigation sidebar tree elements.
2576
2577         * UserInterface/Views/OverviewTimelineView.js:
2578         (WebInspector.OverviewTimelineView.prototype.updateLayout):
2579         No longer handles updating other UI along with the navigation sidebar tree elements. That is now handled by
2580         WebInspector.TimelineView.prototype.filterUpdated.
2581         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails): Drive-by fix. Missing vars.
2582
2583         * UserInterface/Views/TimelineContentView.js:
2584         (WebInspector.TimelineContentView.prototype._updateTimes): Add call to updateFilter().
2585
2586         * UserInterface/Views/TimelineView.js:
2587         (WebInspector.TimelineView.prototype.filterUpdated):
2588         Function added to dispatch a SelectionPathComponentsDidChange event.
2589
2590 2015-01-09  Enrica Casucci  <enrica@apple.com>
2591
2592         [iOS] Support additional text styles.
2593         https://bugs.webkit.org/show_bug.cgi?id=140310
2594         rdar://problem/18568864
2595
2596         Reviewed by Joseph Pecoraro.
2597
2598         Add support for three new text styles.
2599
2600         * UserInterface/Models/CSSKeywordCompletions.js:
2601
2602 2015-01-09  Timothy Hatcher  <timothy@apple.com>
2603
2604         Web Inspector: REGRESSION: Navigation sidebar can show blank next to the Console view
2605         https://bugs.webkit.org/show_bug.cgi?id=140291
2606
2607         Reviewed by Joseph Pecoraro.
2608
2609         * UserInterface/Base/Main.js:
2610         (WebInspector.contentLoaded): Don't restore collapsed false if selectedSidebarPanel is null.
2611         (WebInspector._sidebarCollapsedStateDidChange): Support a _ignoreNavigationSidebarPanelCollapsedEvent flag
2612         to avoid setting _navigationSidebarCollapsedSetting.
2613         (WebInspector._navigationSidebarPanelSelected): Force collapsed if selectedSidebarPanel is null.
2614         (WebInspector._contentBrowserCurrentContentViewDidChange): Set _ignoreNavigationSidebarPanelCollapsedEvent
2615         when forcing the collapsed state to avoid setting _navigationSidebarCollapsedSetting and calling
2616         _updateContentViewForCurrentNavigationSidebar.
2617
2618 2015-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
2619
2620         Web Inspector: REGRESSION Showing debugger sidebar shouldn't change selected JS file
2621         https://bugs.webkit.org/show_bug.cgi?id=139526
2622
2623         Reviewed by Timothy Hatcher.
2624
2625         * UserInterface/Base/Main.js:
2626         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
2627         When switching to Debugger, show last selected JS or HTML resource.
2628
2629         (WebInspector.showSplitConsole):
2630         (WebInspector.showFullHeightConsole):
2631         (WebInspector.toggleConsoleView):
2632         (WebInspector._sidebarCollapsedStateDidChange):
2633         (WebInspector._updateContentViewForCurrentNavigationSidebar):
2634         (WebInspector._navigationSidebarPanelSelected):
2635         (WebInspector._contentBrowserCurrentContentViewDidChange):
2636         (WebInspector._updateNavigationSidebarForCurrentContentView): Deleted.
2637         * UserInterface/Views/ApplicationCacheFrameContentView.js:
2638         (WebInspector.ApplicationCacheFrameContentView.prototype.get allowedNavigationSidebarPanels):
2639         * UserInterface/Views/CookieStorageContentView.js:
2640         (WebInspector.CookieStorageContentView.prototype.get allowedNavigationSidebarPanels):
2641         * UserInterface/Views/DOMStorageContentView.js:
2642         (WebInspector.DOMStorageContentView.prototype.get allowedNavigationSidebarPanels):
2643         * UserInterface/Views/DOMTreeContentView.js:
2644         (WebInspector.DOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
2645         * UserInterface/Views/DatabaseContentView.js:
2646         (WebInspector.DatabaseContentView.prototype.get allowedNavigationSidebarPanels):
2647         * UserInterface/Views/DatabaseTableContentView.js:
2648         (WebInspector.DatabaseTableContentView.prototype.get allowedNavigationSidebarPanels):
2649         * UserInterface/Views/FontResourceContentView.js:
2650         (WebInspector.FontResourceContentView.prototype.get allowedNavigationSidebarPanels):
2651         * UserInterface/Views/FrameDOMTreeContentView.js:
2652         (WebInspector.FrameDOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
2653         * UserInterface/Views/LogContentView.js:
2654         (WebInspector.LogContentView.prototype.get allowedNavigationSidebarPanels):
2655         * UserInterface/Views/ResourceClusterContentView.js:
2656         (WebInspector.ResourceClusterContentView.prototype.get allowedNavigationSidebarPanels):
2657         * UserInterface/Views/ResourceSidebarPanel.js:
2658         (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
2659         (WebInspector.ResourceSidebarPanel.prototype.showMainFrame):
2660         * UserInterface/Views/Sidebar.js:
2661         (WebInspector.Sidebar.prototype.removeSidebarPanel):
2662         * UserInterface/Views/TimelineContentView.js:
2663         (WebInspector.TimelineContentView.prototype.get allowedNavigationSidebarPanels):
2664
2665 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
2666
2667         Web Inspector: Phantom breakpoint appears on empty line after reload of minified file with a breakpoint
2668         https://bugs.webkit.org/show_bug.cgi?id=140276
2669
2670         Reviewed by Timothy Hatcher.
2671
2672         Styles being set on lines (e.g. breakpoint styles) before content loaded can
2673         carry forward with the empty line. It is safe for us to just remove all
2674         the styles from the intial empty line before we load the initial content.
2675
2676         * UserInterface/Views/TextEditor.js:
2677         (WebInspector.TextEditor.prototype.set string.update):
2678         (WebInspector.TextEditor.prototype.set string):
2679
2680 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
2681
2682         Web Inspector: Pause Reason Improvements (Breakpoint, Debugger Statement, Pause on Next Statement)
2683         https://bugs.webkit.org/show_bug.cgi?id=138991
2684
2685         Reviewed by Timothy Hatcher.
2686
2687         * Localizations/en.lproj/localizedStrings.js:
2688         New UI strings for Pause Reasons.
2689
2690         * UserInterface/Controllers/DebuggerManager.js:
2691         (WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
2692         Provide a way to get the breakpoint with an identifier.
2693
2694         * UserInterface/Images/PausedBreakpoint.svg: Added.
2695         * UserInterface/Images/gtk/PausedBreakpoint.svg: Added.
2696         Copy PseudoElement.svg icon and give it a new name.
2697
2698         * UserInterface/Views/BreakpointTreeElement.css:
2699         (.breakpoint-paused-icon .icon):
2700         New icon for a breakpoint causing a pause.
2701
2702         * UserInterface/Views/BreakpointTreeElement.js:
2703         (WebInspector.BreakpointTreeElement.prototype.removeStatusImage):
2704         (WebInspector.BreakpointTreeElement.prototype._updateStatus):
2705         Give API to remove the breakpoint status icon from a BreakpointTreeElement.
2706
2707         * UserInterface/Views/DebuggerSidebarPanel.js:
2708         (WebInspector.DebuggerSidebarPanel):
2709         (WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement):
2710         (WebInspector.DebuggerSidebarPanel.prototype.deselectBreakpointContentTreeElements):
2711         (WebInspector.DebuggerSidebarPanel.prototype.deselectPauseReasonContentTreeElements):
2712         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
2713         Give DebuggerSidebarPanel an optional pause reason tree outline. When available
2714         include it in the pattern of ensuring a single exclusive selection.
2715
2716         (WebInspector.DebuggerSidebarPanel.prototype._breakpointRemoved):
2717         When a breakpoint is removed, check if we should update the pause reason tree outline.
2718
2719         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReason):
2720         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
2721         Update Pause Reason section contents depending on the reason.
2722
2723         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonGotoArrow):
2724         Always try to include a goto arrow to jump to the original pause location
2725         if it is available at the time of pausing.
2726
2727 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
2728
2729         Web Inspector: Expected UserAgent styles to be crossed-out if overridden
2730         https://bugs.webkit.org/show_bug.cgi?id=140154
2731
2732         Reviewed by Timothy Hatcher.
2733
2734         * UserInterface/Models/DOMNodeStyles.js:
2735         (WebInspector.DOMNodeStyles.prototype._parseStylePropertyPayload):
2736         Add a comment about anonymous styles. The getter is no longer used, and it is not
2737         clear if we really care about this state, or if "anonymous" is an appropriate name.
2738
2739         (WebInspector.DOMNodeStyles.prototype._markOverriddenProperties):
2740         Allow browser styles (user agent / html attributes) to be overridden.
2741
2742         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
2743         When refreshing styles after changes, the Style object backing HTML attributes
2744         was being completely replaced. Allow it to be remembered by a unique key.
2745
2746 2015-01-07  Joseph Pecoraro  <pecoraro@apple.com>
2747
2748         Web Inspector: Do not create rulesMap entries for rules without identifiers
2749         https://bugs.webkit.org/show_bug.cgi?id=140237
2750
2751         Reviewed by Timothy Hatcher.
2752
2753         * UserInterface/Models/DOMNodeStyles.js:
2754         (WebInspector.DOMNodeStyles.prototype._parseRulePayload):
2755         We were accidentally converting a null into a string with a loose string
2756         concatenation. Only do this if the mapKey is not-null.
2757
2758 2015-01-07  Saam Barati  <saambarati1@gmail.com>
2759
2760         Web Inspector: Abstract common functions from TypeTokenAnnotator into a parent class and introduce an AnnotatorManager
2761         https://bugs.webkit.org/show_bug.cgi?id=139426
2762
2763         Reviewed by Timothy Hatcher.
2764
2765         This patch creates a parent class, Annotator, that TypeTokenAnnotator
2766         inherits from. Annotator defines a common set of functionality
2767         that a text editor annotator can use to mark up UI. This 
2768         is in preparation other classes that will inherit from Annotator.
2769         
2770         This patch also introduces AnnotatorManager which controls a
2771         set of Annotators and provides a single interface for
2772         controlling them.
2773
2774         * UserInterface/Controllers/Annotator.js: Added.
2775         (WebInspector.Annotator):
2776         (WebInspector.Annotator.prototype.get sourceCodeTextEditor):
2777         (WebInspector.Annotator.prototype.get isActive):
2778         (WebInspector.Annotator.prototype.pause):
2779         (WebInspector.Annotator.prototype.resume):
2780         (WebInspector.Annotator.prototype.refresh):
2781         (WebInspector.Annotator.prototype.reset):
2782         (WebInspector.Annotator.prototype.clear):
2783         (WebInspector.Annotator.prototype.insertAnnotations):
2784         (WebInspector.Annotator.prototype.clearAnnotations):
2785         (WebInspector.Annotator.prototype._clearTimeoutIfNeeded):
2786         * UserInterface/Controllers/AnnotatorManager.js: Added.
2787         (WebInspector.AnnotatorManager):
2788         (WebInspector.AnnotatorManager.prototype.addAnnotator):
2789         (WebInspector.AnnotatorManager.prototype.isAnnotatorActive):
2790         (WebInspector.AnnotatorManager.prototype.pauseAll):
2791         (WebInspector.AnnotatorManager.prototype.resumeAll):
2792         (WebInspector.AnnotatorManager.prototype.refreshAllIfActive):
2793         (WebInspector.AnnotatorManager.prototype.resetAllIfActive):
2794         (WebInspector.AnnotatorManager.prototype.clearAll):
2795         (WebInspector.AnnotatorManager.prototype.removeAllAnnotators):
2796         (WebInspector.AnnotatorManager.prototype._getAnnotators):
2797         * UserInterface/Controllers/TypeTokenAnnotator.js:
2798         (WebInspector.TypeTokenAnnotator):
2799         (WebInspector.TypeTokenAnnotator.prototype.insertAnnotations.):
2800         (WebInspector.TypeTokenAnnotator.prototype.clearAnnotations):
2801         (WebInspector.TypeTokenAnnotator.prototype._insertToken):
2802         (WebInspector.TypeTokenAnnotator.prototype.get isActive): Deleted.
2803         (WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor): Deleted.
2804         (WebInspector.TypeTokenAnnotator.prototype.pause): Deleted.
2805         (WebInspector.TypeTokenAnnotator.prototype.resume): Deleted.
2806         (WebInspector.TypeTokenAnnotator.prototype.refresh): Deleted.
2807         (WebInspector.TypeTokenAnnotator.prototype.reset): Deleted.
2808         (WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.): Deleted.
2809         (WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded): Deleted.
2810         * UserInterface/Main.html:
2811         * UserInterface/Views/SourceCodeTextEditor.js:
2812         (WebInspector.SourceCodeTextEditor):
2813         (WebInspector.SourceCodeTextEditor.prototype.shown):
2814         (WebInspector.SourceCodeTextEditor.prototype.hidden):
2815         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
2816         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2817         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
2818         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
2819         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
2820         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
2821         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
2822         (WebInspector.SourceCodeTextEditor.prototype._getAssociatedScript):
2823         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
2824         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
2825         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
2826
2827 2015-01-06  Joseph Pecoraro  <pecoraro@apple.com>
2828
2829         Web Inspector: Do not style implicit CSS properties in the Style Rules section
2830         https://bugs.webkit.org/show_bug.cgi?id=140161
2831
2832         Reviewed by Timothy Hatcher.
2833
2834         Previously, implicit properties being transparent in the Rules section
2835         was confusing and not useful. Lets simplify what transparency means:
2836
2837             - Rules:  transparency means a non-inheritable property in an inherited rule
2838             - Computed: transparency means an implicit value
2839
2840         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
2841         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited):
2842         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)): Deleted.
2843
2844 2015-01-06  Joseph Pecoraro  <pecoraro@apple.com>
2845
2846         Web Inspector: Uncaught Exception when dismissing Go To Line dialog
2847         https://bugs.webkit.org/show_bug.cgi?id=139663
2848
2849         Reviewed by Timothy Hatcher.
2850
2851         Calling removeChild would trigger the blur event handler and do a
2852         nested call of dismiss(), re-entering and removing while in the middle
2853         of removing. Avoid re-entrancy to avoid the exception.
2854
2855         * UserInterface/Views/GoToLineDialog.js:
2856         (WebInspector.GoToLineDialog):
2857         (WebInspector.GoToLineDialog.prototype.dismiss):
2858
2859 2015-01-01  Darin Adler  <darin@apple.com>
2860
2861         We often misspell identifier as "identifer"
2862         https://bugs.webkit.org/show_bug.cgi?id=140025
2863
2864         Reviewed by Michael Saboff.
2865
2866         * UserInterface/Base/Main.js:
2867         (WebInspector._updateNavigationSidebarForCurrentContentView):
2868         (WebInspector._contentBrowserCurrentContentViewDidChange):
2869         Fix misspellings.
2870
2871 2014-12-29  Jonathan Wells  <jonowells@apple.com>
2872
2873         Web Inspector: SourceCode.requestContent should return a promise
2874         https://bugs.webkit.org/show_bug.cgi?id=135777
2875
2876         Reviewed by Brian Burg.
2877
2878         Change SourceCode.js to request content from the backend using Promises. Change Resource.js to use this new
2879         approach when determining whether a resource load has finished. Change all calls to the older
2880         SourceCode#requestContentFromBackendIfNeeded to simply use requestContent and use a catch function
2881         if a content request error needs to be handled. Fix a bug where the appropriate error message for an
2882         invalid resource wasn't showing in the resource content view.
2883
2884         * UserInterface/Controllers/AnalyzerManager.js:
2885         (set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
2886         (set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
2887         * UserInterface/Controllers/CSSStyleManager.js:
2888         (WebInspector.CSSStyleManager.prototype._updateResourceContent.fetchedStyleSheetContent):
2889         (WebInspector.CSSStyleManager.prototype._updateResourceContent.styleSheetReady):
2890         * UserInterface/Models/CSSStyleSheet.js:
2891         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend):
2892         (WebInspector.CSSStyleSheet.prototype.canRequestContentFromBackend): Deleted.
2893         * UserInterface/Models/DOMNodeStyles.js:
2894         (WebInspector.DOMNodeStyles.prototype.changeStyleText):
2895         * UserInterface/Models/Resource.js:
2896         (WebInspector.Resource.prototype.canRequestContent):
2897         (WebInspector.Resource.prototype.requestContentFromBackend):
2898         (WebInspector.Resource.prototype.markAsFinished):
2899         (WebInspector.Resource.prototype.markAsFailed):
2900         (WebInspector.Resource.prototype.getImageSize):
2901         (WebInspector.Resource.prototype.canRequestContentFromBackend): Deleted.
2902         * UserInterface/Models/Script.js:
2903         (WebInspector.Script.prototype.requestContentFromBackend):
2904         (WebInspector.Script.prototype.requestScriptSyntaxTree.catch):
2905         (WebInspector.Script.prototype.canRequestContentFromBackend): Deleted.
2906         * UserInterface/Models/SourceCode.js:
2907         (WebInspector.SourceCode):
2908         (WebInspector.SourceCode.prototype.requestContent):
2909         (WebInspector.SourceCode.prototype.requestContentFromBackend):
2910         (WebInspector.SourceCode.prototype._processContent):
2911         (WebInspector.SourceCode.prototype.canRequestContentFromBackend): Deleted.
2912         (WebInspector.SourceCode.prototype.requestContentFromBackendIfNeeded): Deleted.
2913         (WebInspector.SourceCode.prototype.servicePendingContentRequests): Deleted.
2914         * UserInterface/Models/SourceMapResource.js:
2915         (WebInspector.SourceMapResource):
2916         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
2917         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
2918         (WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Deleted.
2919         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded): Deleted.
2920         * UserInterface/Views/ResourceContentView.js:
2921         (WebInspector.ResourceContentView):
2922         (WebInspector.ResourceContentView.prototype._contentAvailable):
2923         (WebInspector.ResourceContentView.prototype._contentError):
2924         * UserInterface/Views/SourceCodeTextEditor.js:
2925         (WebInspector.SourceCodeTextEditor):
2926         (WebInspector.SourceCodeTextEditor.prototype._contentAvailable):
2927         (WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent.scriptContentAvailable):
2928         (WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent):
2929         (WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
2930
2931 2014-12-26  Dan Bernstein  <mitz@apple.com>
2932
2933         <rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
2934         https://bugs.webkit.org/show_bug.cgi?id=139950
2935
2936         Reviewed by David Kilzer.
2937
2938         * Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
2939         in a manner that works with Xcode 5.1.1.
2940
2941 2014-12-20  David Kilzer  <ddkilzer@apple.com>
2942
2943         Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
2944         <http://webkit.org/b/139463>
2945
2946         Reviewed by Mark Rowe.
2947
2948         * Configurations/Base.xcconfig:
2949         - Only set TOOLCHAINS on OS X.
2950         * Configurations/DebugRelease.xcconfig:
2951         - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
2952         * Configurations/Version.xcconfig:
2953         - Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
2954         * Configurations/WebInspectorUIFramework.xcconfig:
2955         - Set NORMAL_PRODUCTION_FRAMEWORKS_DIR,
2956           PRODUCTION_FRAMEWORKS_DIR and
2957           JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production by SDK.
2958
2959 2014-12-19  Commit Queue  <commit-queue@webkit.org>
2960
2961         Unreviewed, rolling out r177574.
2962         https://bugs.webkit.org/show_bug.cgi?id=139821
2963
2964         "Broke Production builds by installing
2965         libWebCoreTestSupport.dylib in the wrong directory" (Requested
2966         by ddkilzer on #webkit).
2967
2968         Reverted changeset:
2969
2970         "Switch from using PLATFORM_NAME to SDK selectors in WebCore,
2971         WebInspectorUI, WebKit, WebKit2"
2972         https://bugs.webkit.org/show_bug.cgi?id=139463
2973         http://trac.webkit.org/changeset/177574
2974
2975 2014-12-19  David Kilzer  <ddkilzer@apple.com>
2976
2977         Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
2978         <http://webkit.org/b/139463>
2979
2980         Reviewed by Mark Rowe.
2981
2982         * Configurations/Base.xcconfig:
2983         - Only set TOOLCHAINS on OS X.
2984         * Configurations/DebugRelease.xcconfig:
2985         - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
2986         * Configurations/Version.xcconfig:
2987         - Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
2988         * Configurations/WebInspectorUIFramework.xcconfig:
2989         - Set NORMAL_PRODUCTION_FRAMEWORKS_DIR,
2990           PRODUCTION_FRAMEWORKS_DIR and
2991           JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production by SDK.
2992
2993 2014-12-16  Matt Baker  <mattbaker@apple.com>
2994
2995         Web Inspector: REGRESSION: Dragging undocked web inspector causes mouse to change from pointer to i-bar cursor over window title
2996         https://bugs.webkit.org/show_bug.cgi?id=139720
2997
2998         Reviewed by Timothy Hatcher.
2999
3000         * UserInterface/Base/Main.js:
3001         Prevent default handling of the mouse event when clicking in the titlebar area. WebCore won't continue handling the event,
3002         but docking buttons/context menu still function.
3003
3004 2014-12-15  Nikita Vasilyev  <nvasilyev@apple.com>
3005
3006         Web Inspector: Clicking on the expand object arrow should always expand an object
3007         https://bugs.webkit.org/show_bug.cgi?id=139382
3008
3009         Reviewed by Joseph Pecoraro.
3010
3011         * UserInterface/Views/LogContentView.js:
3012         (WebInspector.LogContentView):
3013         (WebInspector.LogContentView.prototype._click): Deleted.
3014         stopPropagation was preventing the object expansion from happening as expecting.
3015
3016 2014-12-15  Joseph Pecoraro  <pecoraro@apple.com>
3017
3018         Web Inspector: CSSStyleDeclarationTextEditor fails to update if computed properties changed from empty to non-empty
3019         https://bugs.webkit.org/show_bug.cgi?id=139610
3020
3021         Reviewed by Timothy Hatcher.
3022
3023         The CSSStyleDeclarationTextEditor for Computed Style Properties always has
3024         empty DOMNodeStyles text. However we would not reset contents if properties
3025         changed and the actualy content was empty. So once empty, we could never
3026         recover. In fact, we should always refresh for Computed Styles.
3027
3028         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
3029         (WebInspector.CSSStyleDeclarationTextEditor.prototype._propertiesChanged):
3030
3031 2014-12-08  Joseph Pecoraro  <pecoraro@apple.com>
3032
3033         Web Inspector: Hide Compositing Borders Button if backend returns an error that it is unsupported
3034         https://bugs.webkit.org/show_bug.cgi?id=139307
3035
3036         Reviewed by Darin Adler.
3037
3038         * UserInterface/Views/DOMTreeContentView.js:
3039         (WebInspector.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
3040
3041 2014-12-05  Joseph Pecoraro  <pecoraro@apple.com>
3042
3043         Web Inspector: Uncaught Exceptions when attempting to show Content Flow
3044         https://bugs.webkit.org/show_bug.cgi?id=139276
3045
3046         Reviewed by Brian Burg.
3047
3048         * UserInterface/Views/ContentView.js:
3049         (WebInspector.ContentView):
3050         (WebInspector.ContentView.isViewable):
3051         LegacyJavaScriptProfileObject no longer exists, these references should be removed.
3052
3053         * UserInterface/Views/FolderizedTreeElement.js:
3054         (WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
3055         This sort function references "this" and needed to be bound.
3056
3057 2014-12-04  Joseph Pecoraro  <pecoraro@apple.com>
3058
3059         Web Inspector: Network Timeline Filter Bar only has "All", missing Resource Type filters
3060         https://bugs.webkit.org/show_bug.cgi?id=139268
3061
3062         Reviewed by Brian Burg.
3063
3064         * UserInterface/Views/TimelineDataGrid.js:
3065         (WebInspector.TimelineDataGrid.createColumnScopeBar):
3066         Users of createColumnScopeBar pass a Map object now instead of a dictionary.
3067         Iterate over the map appropriately.
3068
3069 2014-12-04  Joseph Pecoraro  <pecoraro@apple.com>
3070
3071         Web Inspector: LayoutTests/inspector tests fail in Production builds due to missing test resources
3072         https://bugs.webkit.org/show_bug.cgi?id=138898
3073
3074         Reviewed by Mark Rowe.
3075
3076         In Production builds, if FORCE_TOOL_INSTALL=YES is in the environment
3077         we will copy all resources (for Tests) and still do the combine and
3078         optimize phase for normal Production inspection resources.
3079
3080         * Scripts/copy-user-interface-resources.pl:
3081
3082 2014-12-03  Joseph Pecoraro  <pecoraro@apple.com>
3083
3084         Web Inspector: Missing getter, clients never see DragToAdjustController is enabled
3085         https://bugs.webkit.org/show_bug.cgi?id=139228
3086
3087         Reviewed by Simon Fraser.
3088
3089         * UserInterface/Controllers/DragToAdjustController.js:
3090         (WebInspector.DragToAdjustController.prototype.get enabled):
3091
3092 2014-12-02  Joseph Pecoraro  <pecoraro@apple.com>
3093
3094         Web Inspector: CSS Minification breaks some selectors with colons
3095         https://bugs.webkit.org/show_bug.cgi?id=139206
3096
3097         Reviewed by Simon Fraser.
3098
3099         Do not remove spaces preceeding colons, as they may change the semantics
3100         of selectors with colon prefixes (e.g. "a :not(b)").
3101
3102         At the same time, we can strip spaces around "!" characters, for example
3103         a space is not required before "!important" priority.
3104
3105         * Scripts/cssmin.py:
3106         (cssminify):
3107
3108 2014-12-01  Benjamin Poulain  <benjamin@webkit.org>
3109
3110         Web Inspector: add more :not() and :matches() awesomeness
3111         https://bugs.webkit.org/show_bug.cgi?id=138997
3112
3113         Reviewed by Joseph Pecoraro.
3114
3115         Simplify the Inspector's CSS when possible.
3116
3117         * UserInterface/Views/DatabaseContentView.css:
3118         (:matches(.database-user-query, .database-query-prompt, .database-query-result)::before):
3119         (.database-user-query::before, .database-query-prompt::before, .database-query-result::before): Deleted.
3120         * UserInterface/Views/GradientSlider.css:
3121         (.gradient-slider-knob > :matches(img, div)):
3122         (.gradient-slider-knob > div): Deleted.
3123         * UserInterface/Views/HoverMenu.css:
3124         (.hover-menu > svg > :matches(path, rect)):
3125         (.hover-menu > svg > rect): Deleted.
3126         * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
3127         (.panel.details.layer-tree .name-column :matches(.pseudo-element, .reflection)):
3128         (.panel.details.layer-tree tr.selected .name-column :matches(.pseudo-element, .reflection)):
3129         (.panel.details.layer-tree .name-column .reflection): Deleted.
3130         (.panel.details.layer-tree tr.selected .name-column .reflection): Deleted.
3131         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
3132         (.details-section.probe-set .options > :matches(.probe-remove, .probe-clear-samples, .probe-add)):
3133         (.details-section.probe-set .options > .probe-add): Deleted.
3134         * UserInterface/Views/ResourceSidebarPanel.css:
3135         (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
3136         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
3137         (.sidebar > .panel.navigation.resource > .empty-content-placeholder): Deleted.
3138         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder): Deleted.
3139         * UserInterface/Views/ScopeBar.css:
3140         (.scope-bar > li:matches(.selected, :active)):
3141         (.scope-bar > li:active): Deleted.
3142         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
3143         (.syntax-highlighted :matches(.css-comment, .javascript-comment, .html-comment)):
3144         (.syntax-highlighted :matches(.css-keyword, .css-tag, .css-at-rule, .css-important, .javascript-keyword, .html-tag)):
3145         (.syntax-highlighted :matches(.css-number, .javascript-number)):
3146         (.syntax-highlighted :matches(.css-property, .css-selector, .javascript-ident)):
3147         (.syntax-highlighted :matches(.css-string, .javascript-string, .javascript-regexp, .html-attribute-value)):
3148         (.syntax-highlighted :matches(.html-doctype, .html-processing-instruction)):
3149         (.syntax-highlighted .html-comment): Deleted.
3150         (.syntax-highlighted .html-tag): Deleted.
3151         (.syntax-highlighted .javascript-number): Deleted.
3152         (.syntax-highlighted .javascript-ident): Deleted.
3153         (.syntax-highlighted .html-attribute-value): Deleted.
3154         (.syntax-highlighted .html-processing-instruction): Deleted.
3155         It looks like ".cm-tag.cm-bracket" was there only to override the rule below.
3156         From basic testing, it looks like "cm-tag" and "cm-bracket" always appear together. I removed the "cm-bracket" rule
3157         from the second rule, and simplified the first rule.
3158
3159         * UserInterface/Views/TimelineSidebarPanel.css:
3160         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
3161         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder): Deleted.
3162         * UserInterface/Views/Toolbar.css:
3163         (body.mac-platform:not(.legacy, .docked) .toolbar):
3164         (body.mac-platform:not(.legacy, .docked) .toolbar.icon-and-label-vertical):
3165         (body.mac-platform:not(.legacy, .docked) .toolbar.icon-and-label-vertical.small-size):
3166         (body.mac-platform:not(.legacy, .docked) .toolbar:matches(.icon-and-label-horizontal, .icon-only)):
3167         (body.mac-platform:not(.legacy, .docked) .toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only)):
3168         (.toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only) .control-section):
3169         (body.mac-platform:not(.legacy):not(.docked) .toolbar): Deleted.
3170         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Deleted.
3171         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Deleted.
3172         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Deleted.
3173         (body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Deleted.
3174         (.toolbar.label-only .control-section): Deleted.
3175
3176 2014-11-27  Andres Gomez  <agomez@igalia.com>
3177
3178         Web Inspector: Update NavigationItemProbes icon for the GTK+ port
3179         https://bugs.webkit.org/show_bug.cgi?id=139074
3180
3181         Reviewed by Carlos Garcia Campos.
3182
3183         NavigationItemProbes was updated for the Mac port and we are now
3184         having a similar ideogram in GTK+.
3185
3186         * UserInterface/Images/gtk/NavigationItemProbes.svg: Updated.
3187
3188 2014-11-21  Benjamin Poulain  <bpoulain@apple.com>
3189
3190         Start using the new :not() and :matches() in the Web Inspector
3191         https://bugs.webkit.org/show_bug.cgi?id=138978
3192
3193         Reviewed by Joseph Pecoraro.
3194
3195         Start simpifying some definitions by using modern CSS.
3196
3197         * UserInterface/Views/CSSStyleDeclarationSection.css:
3198         (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)):
3199         (.style-declaration-section:matches(.locked, .selector-locked) > .header > .selector):
3200         (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
3201         (.style-declaration-section.selector-locked > .header > .selector): Deleted.
3202         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
3203         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.disabled, .invalid, .other-vendor, .not-inherited, .overridden)):
3204         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)):
3205         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property:matches(.disabled, .other-vendor, .not-inherited, .overridden)):
3206         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.overridden): Deleted.
3207         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited): Deleted.
3208         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.overridden): Deleted.
3209         * UserInterface/Views/ControlToolbarItem.css:
3210         (.toolbar:matches(.icon-and-label-horizontal, .toolbar.icon-only) .item.control):
3211         (.toolbar.icon-only .item.control): Deleted.
3212         * UserInterface/Views/DOMStorageContentView.css:
3213         * UserInterface/Views/DashboardContainerView.css:
3214         (.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container):
3215         (.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard-container):
3216         (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container):
3217         (.toolbar.normal-size.icon-and-label-vertical .dashboard-container): Deleted.
3218         (.toolbar.small-size.icon-and-label-horizontal .dashboard-container): Deleted.
3219         (.toolbar.normal-size.icon-and-label-horizontal .dashboard-container): Deleted.
3220         * UserInterface/Views/DataGrid.css:
3221         (.data-grid :matches(th, td):not(:last-child)):
3222         (.data-grid th:matches(.sort-ascending, .sort-descending)):
3223         (.data-grid :matches(th, td) > div):
3224         (.data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child):
3225         (.data-grid tr:matches(.selected, :hover) .go-to-arrow):
3226         (.data-grid :-webkit-any(th, td):not(:last-child)): Deleted.
3227         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending)): Deleted.
3228         (.data-grid :-webkit-any(th, td) > div): Deleted.
3229         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child): Deleted.
3230         (.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow): Deleted.
3231         * UserInterface/Views/DebuggerDashboardView.css:
3232         (.toolbar.collapsed .dashboard.debugger > :not(.message, .navigation-bar )):
3233         (.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )): Deleted.
3234         * UserInterface/Views/DefaultDashboardView.css:
3235         (body.web .toolbar.collapsed .dashboard.default > :matches(.time, .resourcesSize, .logs)):
3236         (body.javascript .toolbar .dashboard.default > :matches(.time, .resourcesSize, .resourcesCount)):
3237         (.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard.default > .item):
3238         (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item):
3239         (body.web .toolbar.collapsed .dashboard.default > .logs): Deleted.
3240         (body.javascript .toolbar .dashboard.default > .resourcesCount): Deleted.
3241         (.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item): Deleted.
3242         (.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item): Deleted.
3243         * UserInterface/Views/DetailsSection.css:
3244         (.details-section > .header > :matches(.node-link, .go-to-arrow)):
3245         (.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):
3246         (body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *):
3247         (.details-section > .content > .group > .row:matches(.empty, .text)):
3248         (body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)):
3249         (.details-section > .header > .go-to-arrow): Deleted.
3250         (.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *): Deleted.
3251         (body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
3252         (.details-section > .content > .group > .row.text): Deleted.
3253         (body.mac-platform.legacy .details-section > .content > .group > .row.text): Deleted.
3254         * UserInterface/Views/FindBanner.css:
3255         (:matches(.find-banner, .supports-find-banner).no-find-banner-transition):
3256         (.supports-find-banner.no-find-banner-transition): Deleted.
3257         * UserInterface/Views/FlexibleSpaceNavigationItem.css:
3258         (:matches(.navigation-bar, .toolbar) .item.flexible-space):
3259         (.toolbar .item.flexible-space): Deleted.
3260
3261 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
3262