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