Convert WebConsoleClient to protocol.js front
Categories
(DevTools :: Console, enhancement, P1)
Tracking
(Not tracked)
People
(Reporter: ochameau, Assigned: yulia)
References
(Blocks 2 open bugs)
Details
Attachments
(14 files, 12 obsolete files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
WebConsoleClient is the client class to connect to the console actor. We should convert that client class to a protocol.js front. It may help us later in fission ongoing work to more easily manage multiple console fronts. Note that this can be done before converting the actor to protocol.js. Both refactoring are independant.
Updated•6 years ago
|
Updated•6 years ago
|
Reporter | ||
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Assignee | ||
Comment 2•5 years ago
|
||
Depends on D14392
Assignee | ||
Comment 3•5 years ago
|
||
Depends on D14393
Assignee | ||
Comment 4•5 years ago
|
||
Depends on D14394
Assignee | ||
Comment 5•5 years ago
|
||
Depends on D14395
Assignee | ||
Comment 6•5 years ago
|
||
Depends on D14396
Assignee | ||
Comment 7•5 years ago
|
||
Depends on D14397
Assignee | ||
Comment 8•5 years ago
|
||
Depends on D14398
Assignee | ||
Comment 9•5 years ago
|
||
Depends on D14399
Assignee | ||
Comment 10•5 years ago
|
||
Depends on D14400
Assignee | ||
Comment 11•5 years ago
|
||
Depends on D14401
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 12•5 years ago
|
||
initial move of the webconsoleClient to a front. Events do not work yet, but methods do.
Assignee | ||
Comment 13•5 years ago
|
||
Assignee | ||
Comment 14•5 years ago
|
||
this patch introduces events for the webconsoleFront -- not all of them are being listened
to by their subscribers yet, but this is the bulk of the effort to move events to Protocol.js
Assignee | ||
Comment 15•5 years ago
|
||
Assignee | ||
Comment 16•5 years ago
|
||
this migrates the proxy to the new webconsole front events. This resulted in a number of
test failures once the migration was finished, and those were fixed
Assignee | ||
Comment 17•5 years ago
|
||
Just updating the stubs for tests
Assignee | ||
Comment 18•5 years ago
|
||
Assignee | ||
Comment 19•5 years ago
|
||
Assignee | ||
Comment 20•5 years ago
|
||
Assignee | ||
Comment 21•5 years ago
•
|
||
We have an unusual intermittent: https://treeherder.mozilla.org/#/jobs?repo=try&revision=8533e14e032856ab5308f17b4a0fe2e5297fa07e&selectedJob=226504889
The issue is in d6, devtools/client/webconsole/test/mochitest/browser_webconsole_eval_in_debugger_stackframe.js
it can be reproduced by applying this patch queue, and then running the above test in a debug build with the following
./mach mochitest devtools/client/webconsole/test/mochitest/browser_webconsole_eval_in_debugger_stackframe.js --verify --headless
I haven't tried it with other machines, but it is reproducible on mac in a debug build. It looks like it happens frequently on windows debug builds as well.
I have traced the issue to here: https://searchfox.org/mozilla-central/source/devtools/server/actors/webconsole/eval-with-debugger.js#132
The string we pass in is : foo = 'abba'; foo3 = 'bug783499'; foo + foo3
The expected result is : “abbabug783499”
Instead we are seeing: "fooFirstCallfoo3FirstCall"
Assignee | ||
Comment 22•5 years ago
|
||
Assignee | ||
Comment 23•5 years ago
|
||
Comment 24•5 years ago
|
||
Pushed by ystartsev@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1ab1ab7f3bd6 remove unused inspectObjectProperties; r=ochameau
Comment 25•5 years ago
|
||
bugherder |
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 26•5 years ago
|
||
Assignee | ||
Comment 27•5 years ago
|
||
Assignee | ||
Comment 28•5 years ago
|
||
Assignee | ||
Comment 29•5 years ago
•
|
||
Some more information about the destroy path problem:
before, we were running the code to remove clients (webconsole client and threadclient) first on the debugger client
https://searchfox.org/mozilla-central/rev/ee40541496d3ad738097eebadaf4965ca1343b7a/devtools/shared/client/debugger-client.js#234-252
then we would do the cleanup if there was a problem or a sudden disconnection
https://searchfox.org/mozilla-central/rev/ee40541496d3ad738097eebadaf4965ca1343b7a/devtools/shared/client/debugger-client.js#812-831
now, the destroy path is a little different
we inform the target to start destroying, but we don’t have a mechanism for waiting for it to destroy. The webconsole front is now treated as any other front.
We don't wait for the webconsole to close, instead we inform the targets that the client has closed: https://searchfox.org/mozilla-central/rev/ee40541496d3ad738097eebadaf4965ca1343b7a/devtools/shared/client/debugger-client.js#808
via this listener: https://searchfox.org/mozilla-central/rev/ee40541496d3ad738097eebadaf4965ca1343b7a/devtools/shared/fronts/targets/target-mixin.js#391
and the target starts destroying fronts, asynchronously (since the fronts are loaded async) : https://searchfox.org/mozilla-central/rev/ee40541496d3ad738097eebadaf4965ca1343b7a/devtools/shared/fronts/targets/target-mixin.js#475-478
so, simultaneously, we start destroying things in the pool, because there is no way to wait for the fronts: https://searchfox.org/mozilla-central/rev/ee40541496d3ad738097eebadaf4965ca1343b7a/devtools/shared/client/debugger-client.js#830
Assignee | ||
Comment 30•5 years ago
|
||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 31•5 years ago
|
||
Comment 32•5 years ago
|
||
Pushed by ystartsev@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b1392e0b33f7 convert webconsoleClient to front; r=ochameau https://hg.mozilla.org/integration/autoland/rev/feb85ff28604 remove echoed events and unused events; r=ochameau https://hg.mozilla.org/integration/autoland/rev/c1b5af58756f adjust events to front events; r=ochameau https://hg.mozilla.org/integration/autoland/rev/b7535075b575 update har collector to use webconsole events; r=ochameau https://hg.mozilla.org/integration/autoland/rev/f3acf0651a2c adjust webconsole-connection-proxy to listen to webconsole front events, and fix r=ochameau https://hg.mozilla.org/integration/autoland/rev/a6be93699bf6 use protocol js methods instead of hard coding it in the console front; r=ochameau https://hg.mozilla.org/integration/autoland/rev/a895bb6fe591 update console stub generators; r=ochameau https://hg.mozilla.org/integration/autoland/rev/fac93d4a57ba remove from field from jsterm tests; r=ochameau https://hg.mozilla.org/integration/autoland/rev/4ce9378a9784 Change "attachConsole" in the debuggerClient so that it is compatible with a front; r=ochameau https://hg.mozilla.org/integration/autoland/rev/1cbd54c219ca move webconsole client to front directory; r=ochameau https://hg.mozilla.org/integration/autoland/rev/9544d90c6e2d Fix failing test due to race; r=ochameau https://hg.mozilla.org/integration/autoland/rev/fa0e2e873b16 remove attachConsole from the debugger client; r=ochameau https://hg.mozilla.org/integration/autoland/rev/6fc5d53dd6d3 guard webconsole destroy method from being called when there is no client; r=ochameau
Comment 33•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/b1392e0b33f7
https://hg.mozilla.org/mozilla-central/rev/feb85ff28604
https://hg.mozilla.org/mozilla-central/rev/c1b5af58756f
https://hg.mozilla.org/mozilla-central/rev/b7535075b575
https://hg.mozilla.org/mozilla-central/rev/f3acf0651a2c
https://hg.mozilla.org/mozilla-central/rev/a6be93699bf6
https://hg.mozilla.org/mozilla-central/rev/a895bb6fe591
https://hg.mozilla.org/mozilla-central/rev/fac93d4a57ba
https://hg.mozilla.org/mozilla-central/rev/4ce9378a9784
https://hg.mozilla.org/mozilla-central/rev/1cbd54c219ca
https://hg.mozilla.org/mozilla-central/rev/9544d90c6e2d
https://hg.mozilla.org/mozilla-central/rev/fa0e2e873b16
https://hg.mozilla.org/mozilla-central/rev/6fc5d53dd6d3
Assignee | ||
Updated•5 years ago
|
Comment hidden (obsolete) |
Comment 35•5 years ago
|
||
Sorry for the clutter here, I just filed a separate bug for the worker evaluation problem.
Updated•5 years ago
|
Updated•5 years ago
|
Description
•