Port Bug 1644943 to Thunderbird: Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in
Categories
(Thunderbird :: General, task, P1)
Tracking
(thunderbird78 unaffected)
Tracking | Status | |
---|---|---|
thunderbird78 | --- | unaffected |
People
(Reporter: mkmelin, Assigned: darktrojan)
References
Details
(Keywords: leave-open)
Attachments
(1 file)
11.48 KB,
patch
|
mkmelin
:
review+
|
Details | Diff | Splinter Review |
We need to port bug 1644943 - looks like it's blowing up a whole bunch of our tests.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
|
||
I think with these three patches landed all of the tests will pass again. Chat is currently broken (for possibly unrelated reasons, see bug 1646611) and the chat preview in the preferences window is disabled (for related reasons, I'm not sure what to do with it).
Assignee | ||
Comment 4•5 years ago
|
||
This should be reviewed, even though it's already landed. There's follow-up bugs for the broken chat things.
IMHO, rather than working around the chat tab not conforming in core tab code, you should make chat tab conform. Meaning it should always have a browser member on tabInfo and always return one from getBrowserForTab(), like contentTab type, and when chat url is loaded it must have a <browser> up front. That's why I did this, to at least get the <browser> after the <chat-conversation> is created:
https://hg.mozilla.org/releases/comm-beta/rev/c84786d3659a#l1.132
The glodaFacet has a similar issue, but it's due to timing rather than no <browser> ever. And calendar and task tabs, being xul, never have a browser. Anyway, you're just going to keep chasing your tail unless all tabs in Tb conform to what a tab is expected to contain for WE in Fx.
Comment hidden (Intermittent Failures Robot) |
Reporter | ||
Comment 7•5 years ago
|
||
Assignee | ||
Comment 8•5 years ago
|
||
To be honest, I don't know how alta88's comment relates to what was needed here. The progress listener in the chat code has nothing to do with the other progress listeners that I've fixed here, or with WebExtensions.
Yes, and that's the problem. A WE cannot expect all loads, in tabInfo.browser, in a Tb tab to emit progress events in the same way. It also cannot even expect a |browser|. A chat tab that does not autoconnect an account, for example, has no |browser| and only adds one to a <deck> later; completely unnecessary and hard to set up for, and why you have to comment out tests. And why shouldn't a chat and every other tab emit WE api progress events. The glodaFacet tab is similar; the <browser> is not there on tab open and is additionally wrapped in some <iframe> for zoom purposes, again unnecessarily.
You do realize, I hope, that there is the tabmail.progresslistener (which wasn't even being added to firstTab before) which you've now made TabProgressListener and the |tabProgressListener| that applies only to contentTab types in specialTabs.js. So what I'm saying, clearly enough I believe, is that you should step back and audit all tab types for complete compatibility with WE tab apis, consistent non duplicated progresslisteners, and the expectation that a Firefox extension operating on tab <browser> can run cleanly in Tb. This includes #messagepane and #multimessage <browser>s, and chat and glodaFacet and even chromeTab. Because what I'm seeing is a lot of bandaid layering going on.
Note that web progress was recently broken for WE in Tb until Bug 1633011, in case you're not aware.
Anyway. What I've needed to do I've done in BrowseInTab, using custom progress listeners, and what made sense only to do internally I did in Bug 1641345.
Assignee | ||
Comment 10•5 years ago
|
||
Reporter | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Description
•