Now Parsers rely on the Blob interface/abstraction, instead of the concrete Uint8Array.
Thus, in the future we'll be able to implement incremental trace parsing (e.g. stream parsing)
without breaking client code (e.g. ABT).
Minor: specify timeout in end-to-end tests
Test: npm run test:all
Change-Id: I9098ee3beba231f4bb4b59b24cee60e5a1e1122e
PropertiesTableView:
- Fix a PropertiesForTableView bug - did not account for null value
of IME 'Client' in the trace
- Remove ‘Key Properties’ table heading as it is obvious enough
TreeView:
- Wrap text properly in TreeView component (for node names)
IME Panels / WM&SF Properties sub-panel:
- Add table view for coordinates (for bounds, rects, frame etc.)
- Cut away the parent nodes above ‘ImePlaceholder’ or ‘Task’ node
for the SF subtree displayed in ImeTrace Clients & IMS panels
- Allow 2 SF subtrees, hypothetically: one for 'ImeContainer' and
one for 'IME-snapshot'
- Change its color when an InputMethod...Target is selected in
ImeTrace IMMS' WM&SF Properties sub-panel
- Show a message when there is no corresponding WM / SF entry
- Fix y-overflow / scrolling issues for the WM&SF Properties sub-panel
- Add SFLayer timestamp in WM&SF Properties sub-panel
- Change 'bounds' to 'screenBounds' attribute of ImeContainer
Screenshots: in buganizer ticket
Bug: 236226833
Test: manual on local build of winscope
Change-Id: I667bb97a580ba8dd2f17e86f956012b69b964767
Previously, some Winscope traces and ADB captures will go into an
infinite loop after IME processing was introduced.
The issue was a loop in filtering the SF Layer node that did not
account for multi-windowing mode or cases where the expected parent
could not be found. This commit fixes this issue.
Bug: 236679852
Test: manual with previously failing traces
Change-Id: I8d3fe42802efa195926b5be0d4242a0bb0696988
- Add constants to flickerlib's common.js defining the "kind" of
WindowManager and SurfaceFlinger entries
- Modify flickerlib's WindowManagerState and LayerTraceEntry,
as well as ime_processing.js, to use these constants
- Modify the "kind" of IME entries directly in transform_ime.js.
In the future, these should also be constants defined in flickerlib
Bug: 236226833
Test: manual on local build
Change-Id: I310f301e82ae976a202ca1c8cc40c7b686a9723f
- Extract specific WM / SF properties and display only in relevant IME
panel(s) (Client / Service / ManagerService)
- Add clickable items in 'WM & SF Properties' sub-panel that shows full
tree in 'Properties' sub-panel
Screenshots:
- ManagerService: https://screenshot.googleplex.com/ZkoDs8SfxLtprH5.png
- Clients: https://screenshot.googleplex.com/7PT6GG8YRbNrDcC
- Service panel displays the same properties as Clients panel
Bug: 236226833
Test: manual on local build of winscope
Change-Id: Ie96e17cf32311e56af66f8cee66e4f92b9751b5b
If there are WM or SF trace entries that correspond with IME trace
entries (i.e. the WM/SF entry comes before the IME entry in time),
the 'WM & SF Properties' sub-panel will be displayed below the
'Hierarchy' sub-panel in the IME trace panel.
- This sub-panel currently displays properties extracted from
WM entry, not yet SF entry.
- Code is added in 'ime_processing.js' to extract WM properties,
and 'freeze: false' is set in 'transform_ime.js' so that IME entry
objects are not frozen and can be modified during processing
- SF entry, displayed as a tree in the Hierarchy sub-panel, is pruned
to only ImeContainer or IME-snapshot node and its sibling nodes.
Note: there is a bug in this CL (b/236679852) that is fixed later
in CL[6]. Also, null values are not handled well in this CL, and
will be fixed later in CL[4].
Screenshot: https://screenshot.googleplex.com/6RXiRyX47qLAL9i.png
Bug: 236226833
Test: manual on local winscope
Change-Id: I07be7f492a6275c3fdafd6d1f523fdf4d552d16b
IME processing refers to adding WM and SF properties into corresponding
IME entries. Shared functions for this are in 'ime_processing.js',
called when IME and WM / SF traces are input via both ADB or file upload.
- WM and SF entries are displayed as nodes in the 'Hierarchy' sub-panel
of IME panels.
- The SF entry is pruned to only the branch containing 'ImeContainer'
node.
- The WM entry is not yet filtered.
Screenshots:
- Before: https://screenshot.googleplex.com/BYU279cqkTQ5iBP.png
- After: https://screenshot.googleplex.com/3Uhj3XBcpp9Cc6u.png
- Note: screenshots only show 1 IME panel; same changes are made to
all 3 IME panels
Bug: 236226833
Test: manual via local Winscope
CL[1]: If64aff9e899363188010633758e36be474666984
Change-Id: I31d96a43769d64d1e0151b8d620d9d5beaaf7e79
Add a new toolbar at the top of the front page of Winscope app.
This toolbar will show a list of beta features and checkboxes for
users to choose whether to use the beta feature.
For now, the only beta feature is the new / improved UI version
of the ImeTrace panels (to be implemented in the next few CLs).
Bug: 236226833
Test: manual (on local winscope build)
Change-Id: If64aff9e899363188010633758e36be474666984
Previously in [1], the style in PropertiesTableView component is applied
directly to common Vue components like <md-table-cell />. This may
create confusion in the future if <md-table-cell /> is used in other
components, as the style configuration of <md-table-cell /> would not
be the default Vue one, and would instead follow PropertiesTableView's.
This commit fixes this issue by limiting the scope of the CSS styling
in PropertiesTableView.vue.
CL[1]: I39fe382ffb50d71e67cace912452a33ca49de3f9
Test: manual on local build of Winscope
Bug: 235313782
Change-Id: I44d9afb8f49cc21748807c0b8b7e912db6f37a52
Remove the properties written in the names of the following nodes and
instead display them in a new 'Key Properties' table (at the top of
the Hierarchy sub-panel).
- 'Client' node in ImeTrace Clients panel
- 'InputMethodService' node in InputMethodService panel
- 'InputMethodManagerService' node in InputMethodManagerService panel
Screenshots:
- Before: screenshot.googleplex.com/4JbVT42WrcTN3HK.png
- After: screenshot.googleplex.com/7AfwzZEjMN2BQuB.png
Bug: 235313782
Test: manual (on local build of Winscope)
Change-Id: I39fe382ffb50d71e67cace912452a33ca49de3f9
Window adb device contains a '\r' character,
translate string to integer comparing.
Bug: 232488036
Test: 1. Excute python.exe winscope_proxy.py on Window Powershell.
2. Launch winscope index.html and set the Winscope token.
3. Tablet connect adb and winscope select the device.
4. Tap the 'DUMP STATE' button.
Change-Id: I8c261da523763982ea4a4bfae6883694b221883c
Now, the proxy supports multiple phones connected.
For use with Wayland, only 1 device can be connected
Fixes: 219802355
Test: Collect trace with multiple devices connected
Change-Id: I8f43f2411af10292cf78e2c022a409497cbb69b5
Frozen objects don't trigger Vue's reactive Observers and are significantly faster. With this changes, winscope can now load traces with over 100mb
Bug: 211049519
Test: build winscope and open a large trace
Change-Id: Iec9f91e408db734ce884cf846d5c2826ff346484
This speeds up winscope by parsing each state only when necessary
Bug: 211049519
Test: build winscope and open a trace
Change-Id: I35e362ebcb7927887b2793697037984fa26de61c
Use new class to share device auth states, adb proxy
state and expose functions to talk to proxy.
This is the first step before adding new functionality to
winscope that will convert transaction traces to
layer traces. This functionality needs to be added in
DataInput.vue so this class will make it easier to read
the proxy state and use the proxy.
There should be no functional change in this cl.
Test: collect winscope traces via proxy
Bug: 200284593
Change-Id: Ic1f492ebec6c8dfd667d0828bb2d6779665b89c2
Merged-In: Ic1f492ebec6c8dfd667d0828bb2d6779665b89c2
(cherry picked from commit f89a0fbaa9)
Use new class to share device auth states, adb proxy
state and expose functions to talk to proxy.
This is the first step before adding new functionality to
winscope that will convert transaction traces to
layer traces. This functionality needs to be added in
DataInput.vue so this class will make it easier to read
the proxy state and use the proxy.
There should be no functional change in this cl.
Test: collect winscope traces via proxy
Bug: 200284593
Change-Id: Ic1f492ebec6c8dfd667d0828bb2d6779665b89c2
Make it easier to understand surface flinger traces by:
- grouping similar properties
- adding tooltips demystifying some of the derived properties
- cleaning up property names
Test: go/winscope load traces
Bug: 200284593
Change-Id: Ia8ea55b4b4c2bef1fc38228d3e9738231be403bb
Even if some failures occur.
For example, a zip file with an mp4 recorded via MediaProjection
doesn't include the winscope metadata (b/140855415), but the trace
files within the zip should be nevertheless readable
Bug: 209843622
Test: build winscope and open a zip trace
Change-Id: I897ae5e1e0ea3d524c67d90318f9e63f80c6ce54
Currently we print only 1 reason and this makes debugging issues harder
Bug: 210476324
Test: compile winscope and dump a trace, check if multiple reasons for
invisible layers appear
Change-Id: Ia755c001a32a8bdcae3d8a31365ff1cfde28bb2f
Push specific licenses down the tree toward the leaf directories.
Remove extra Apache 2.0 license texts--just use Android-Apache-2.0
Test: m nothing
Change-Id: Ibee25f75f5933699d6f43acdc192b2ada6823757