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