Preparations for profiler-get-symbols update
Categories
(DevTools :: Performance Tools (Profiler/Timeline), task, P3)
Tracking
(firefox92 fixed)
| Tracking | Status | |
|---|---|---|
| firefox92 | --- | fixed |
People
(Reporter: mstange, Assigned: mstange)
References
Details
Attachments
(22 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
Bug 1721109 - Move sharedLibraries extraction out of createMultiModalGetSymbolTableFn. r=canaltinova
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
To fix bug 1615066, we'll need to make ProfilerGetSymbols.jsm use a new version of the profiler-get-symbols wasm blob. This new version has a very different API, because it lays the groundwork for adding a queryAPI endpoint which can look up symbols for multiple libraries in a single request. Specifically, the API wants to do two things in the worker which currently happen outside the worker:
- Resolution of (debugName, breakpadId) to absolute paths
- Trying multiple candidate paths, to satisfy the "check objdirs first" use case.
The patches in this bug will incrementally transform our current code into a state where these two things happen inside the worker. Then the actual update in bug 1615066 will be simple.
| Assignee | ||
Comment 1•5 years ago
|
||
Depends on D120166
| Assignee | ||
Comment 2•5 years ago
|
||
Depends on D120167
| Assignee | ||
Comment 3•5 years ago
|
||
This reduces some code duplication.
Depends on D120168
| Assignee | ||
Comment 4•5 years ago
|
||
At some point in the future, I'm planning to add another method to the SymbolicationService interface: queryAPI.
Depends on D120169
| Assignee | ||
Comment 5•5 years ago
|
||
Depends on D120170
| Assignee | ||
Comment 6•5 years ago
|
||
Depends on D120171
| Assignee | ||
Comment 7•5 years ago
|
||
This may look odd now but it's a temporary step on the way to the final state.
Depends on D120173
| Assignee | ||
Comment 8•5 years ago
|
||
Depends on D120174
| Assignee | ||
Comment 9•5 years ago
|
||
Depends on D120175
| Assignee | ||
Comment 10•5 years ago
|
||
Depends on D120176
| Assignee | ||
Comment 11•5 years ago
|
||
Depends on D120177
| Assignee | ||
Comment 12•5 years ago
|
||
Depends on D120178
| Assignee | ||
Comment 13•5 years ago
|
||
Depends on D120179
| Assignee | ||
Comment 14•5 years ago
|
||
The old version didn't have Worker.onmessageerror in its DOM type definitions.
Depends on D120180
| Assignee | ||
Comment 15•5 years ago
|
||
Depends on D120181
| Assignee | ||
Comment 16•5 years ago
|
||
Depends on D120182
| Assignee | ||
Comment 17•5 years ago
|
||
After I wrote this patch, I noticed that the worker isn't actually covered
by TypeScript because it doesn't have a // @ts-check comment.
But it seems to be rather non-trivial to make it pass type checking, especially
around module import. For example, I don't know how to tell TypeScript that
this code runs in a worker global scope which has an importScripts function.
So I'm just going to leave the worker uncovered for now. I hope the JSDoc
comment doesn't give the wrong impression.
Depends on D120183
| Assignee | ||
Comment 18•5 years ago
|
||
Depends on D120184
| Assignee | ||
Comment 19•5 years ago
|
||
Depends on D120185
| Assignee | ||
Comment 20•5 years ago
|
||
Depends on D120186
| Assignee | ||
Comment 21•5 years ago
|
||
This prepares the worker for an upcoming update to a new profiler-get-symbols version;
this way of doing things is a much better match for the new API.
For requesting a single symbol table, this may look unnecessarily complicated, and it is.
But it paves the way for requesting symbols for multiple libraries in a single message.
In the future, rather than requesting a full symbol table for a single library, we will
want to have a queryAPI endpoint which lets us request symbols for multiple libraries
with a single message. This is just elaborate preparation for that step.
Depends on D120187
Updated•5 years ago
|
Comment 22•4 years ago
|
||
| Assignee | ||
Comment 23•4 years ago
|
||
For some reason, having a function with this name makes TypeScript show an
error for frame-script.js, which also has a function with the same name and
a different signature. Renaming the worker function fixes the TypeScript
error - even though TypeScript doesn't even check the worker script!
Comment 24•4 years ago
|
||
Comment 25•4 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/efe0ed0e5769
https://hg.mozilla.org/mozilla-central/rev/f0c04013013d
https://hg.mozilla.org/mozilla-central/rev/4b795784be29
https://hg.mozilla.org/mozilla-central/rev/096b151037d1
https://hg.mozilla.org/mozilla-central/rev/592c5a8ec505
https://hg.mozilla.org/mozilla-central/rev/74d7ec05b2b8
https://hg.mozilla.org/mozilla-central/rev/90bf89c32c9b
https://hg.mozilla.org/mozilla-central/rev/21c92c047f03
https://hg.mozilla.org/mozilla-central/rev/e5dd46eb98b0
https://hg.mozilla.org/mozilla-central/rev/904a2cc6d4e3
https://hg.mozilla.org/mozilla-central/rev/d4a18b255872
https://hg.mozilla.org/mozilla-central/rev/62c17de83b93
https://hg.mozilla.org/mozilla-central/rev/f7455f096478
https://hg.mozilla.org/mozilla-central/rev/09b3ee7ff4b3
https://hg.mozilla.org/mozilla-central/rev/ca3603e1f06e
https://hg.mozilla.org/mozilla-central/rev/513ef908c863
https://hg.mozilla.org/mozilla-central/rev/117862f83a8c
https://hg.mozilla.org/mozilla-central/rev/3f9122389f28
https://hg.mozilla.org/mozilla-central/rev/ff3e4abbbe0f
https://hg.mozilla.org/mozilla-central/rev/e8e7a7c35254
https://hg.mozilla.org/mozilla-central/rev/b4687ec28375
https://hg.mozilla.org/mozilla-central/rev/b598037db93c
Description
•