Web Inspector: add RemoteObject.fetchProperties and some basic tests for RemoteObject API
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2018-01-04  Brian Burg  <bburg@apple.com>
2
3         Web Inspector: add RemoteObject.fetchProperties and some basic tests for RemoteObject API
4         https://bugs.webkit.org/show_bug.cgi?id=180945
5
6         Reviewed by Joseph Pecoraro.
7
8         Add a new method, fetchProperties, which async fetches an arbitrary list of properties
9         from a RemoteObject. This is intended for writing tests and other quick evaluations,
10         so it has some behaviors that are suitable in these situations:
11         - If the evaluation throws an exception, the result will reject with that exception.
12         - If there is a protocol error for some reason, the result will reject with an exception.
13         - Non-string and non-number keys cause an exception, as this is probably not intended.
14         - Does not accept a callback, returns a promise only. New code should use async.
15
16         For full fidelity introspection of property descriptors, clients should use the existing
17         getOwnPropertyDescriptor[s] class of methods.
18
19         * UserInterface/Protocol/RemoteObject.js:
20         (WI.RemoteObject.prototype.async.fetchProperties): Added.
21         - Validate specified keys and remove duplicates.
22         - Request properties one-by-one to avoid fetching all descriptors and dealing with previews.
23         - Unwrap returned primitive values to avoid unnecessary munging in tests.
24
25         (WI.RemoteObject.prototype.getProperty):
26         - Rework this to return a promise if no callback was supplied.
27         - Introduce stricter property type checking to avoid unintended mistakes.
28
29         (WI.RemoteObject.prototype.callFunction):
30         - Rework this to return a promise if no callback was supplied.
31         - Turn thrown exceptions and protocol errors into rejected promises.
32
33 2018-01-04  Joseph Pecoraro  <pecoraro@apple.com>
34
35         Web Inspector: ⌘G / ⇧⌘G text search does not working after closing find banner
36         https://bugs.webkit.org/show_bug.cgi?id=181280
37         <rdar://problem/36291175>
38
39         Reviewed by Matt Baker.
40
41         * UserInterface/Views/ContentBrowser.js:
42         (WI.ContentBrowser.prototype._findBannerDidHide):
43         When the find banner is hidden trigger a new ContentView method,
44         searchHidden instead of the destructive searchCleared. This allows
45         most content views (text editors, DOM tree, Network Headers view)
46         to keep their populated search results.
47
48         * UserInterface/Views/ContentView.js:
49         (WI.ContentView.prototype.searchHidden):
50         * UserInterface/Views/LogContentView.js:
51         (WI.LogContentView.prototype.searchHidden):
52         By default searchHidden does nothing. The Console's LogContentView
53         treats the find banner differently and clears its search results.
54
55         * UserInterface/Views/TextEditor.js:
56         (WI.TextEditor.prototype.searchCleared):
57         Modernize some code while working in this area.
58
59         * UserInterface/Views/Main.css:
60         (.bouncy-highlight):
61         Ensure black text on yellow background in the bouncy highlight. In the
62         DOM Tree it could have been white if the find banner was closed.
63
64 2018-01-03  Ting-Wei Lan  <lantw44@gmail.com>
65
66         Replace hard-coded paths in shebangs with #!/usr/bin/env
67         https://bugs.webkit.org/show_bug.cgi?id=181040
68
69         Reviewed by Alex Christensen.
70
71         * Scripts/combine-resources.pl:
72         * Scripts/copy-user-interface-resources-dryrun.rb:
73         * Scripts/copy-user-interface-resources.pl:
74         * Scripts/fix-worker-imports-for-optimized-builds.pl:
75         * Scripts/remove-console-asserts-dryrun.rb:
76         * Scripts/remove-console-asserts.pl:
77         * Scripts/update-LegacyInspectorBackendCommands.rb:
78         * Scripts/update-codemirror-resources.rb:
79         * WebInspectorUI.vcxproj/build-webinspectorui.pl:
80
81 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
82
83         Web Inspector: "Log Value" context menu is sometimes unavailable
84         https://bugs.webkit.org/show_bug.cgi?id=181278
85         <rdar://problem/36281649>
86
87         Reviewed by Devin Rousso.
88
89         * UserInterface/Views/ObjectPreviewView.css:
90         (.object-preview > .title):
91         * UserInterface/Views/ObjectTreeView.css:
92         (.object-tree.expanded > .title):
93         Make the expanded object title information 16px tall to match ObjectTree
94         tree element row heights. This eliminates the floating console message
95         location from overlapping the first ObjectTree's TreeElement and causing
96         truncation and other behavior issues (like Context Menu identification).
97
98 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
99
100         Web Inspector: RTL - DOM Tree Element selection doesn't work
101         https://bugs.webkit.org/show_bug.cgi?id=181275
102         <rdar://problem/36290450>
103
104         Reviewed by Devin Rousso.
105
106         * UserInterface/Views/TreeOutline.js:
107         (WI.TreeOutline.prototype.treeElementFromEvent):
108         Provide a better explanation for why we are making the `x` adjustment here,
109         to detect the inner most tree element along the horizontal. Fix the algorithm
110         for RTL, since the intent is to adjust to the trailing edge of the container
111         which is on the opposite side in RTL.
112
113 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
114
115         Web Inspector: Find banner sometimes does not work (when already populated and shown for first time on resource)
116         https://bugs.webkit.org/show_bug.cgi?id=181255
117         <rdar://problem/36248855>
118
119         Reviewed by Matt Baker.
120
121         * UserInterface/Views/TextEditor.js:
122         (WI.TextEditor.prototype.set string):
123         Defer any early searches until the initial content of a TextEditor has been set.
124         Such searches can happen when the FindBanner already has content when a
125         ContentView is first opened and needs to load its content from the backend.
126         Further, even though the content may be loaded from the backend before the
127         search results, microtask hops might cause the content to get to the TextEditor
128         after the search results.
129
130 2018-01-03  Joseph Pecoraro  <pecoraro@apple.com>
131
132         REGRESSION: Web Inspector: Debugger tab doesn't restore selected resource on reload
133         https://bugs.webkit.org/show_bug.cgi?id=181253
134         <rdar://problem/36280564>
135
136         Reviewed by Matt Baker.
137
138         * UserInterface/Views/DebuggerSidebarPanel.js:
139         (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
140         Add braces to ensure the trailing else is actually trailing the outer
141         chain as it was intended to be.
142
143 2018-01-02  Joseph Pecoraro  <pecoraro@apple.com>
144
145         Web Inspector: Clicking source location link in Console unexpectedly jumps to Network tab
146         https://bugs.webkit.org/show_bug.cgi?id=181229
147         <rdar://problem/36075219>
148
149         Reviewed by Matt Baker.
150
151         * UserInterface/Base/Main.js:
152         Cleanup linkifyURLAsNode. Ignore Search tab in generic handlePossibleLinkClick
153         when not already in the Search tab.
154
155         * UserInterface/Views/CallFrameView.js:
156         (WI.CallFrameView):
157         Ignore Search and Network tab in CallFrame links.
158
159         * UserInterface/Views/TabBrowser.js:
160         (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
161         Improve style.
162
163 == Rolled over to ChangeLog-2018-01-01 ==