Commit Graph

27 Commits

Author SHA1 Message Date
Doug Thayer
9951b9d7da Bug 1176019 - Don't let cache interfere with tab warming r=mconley
While working to reproduce the stale content bug with tab warming
I realized that my work here had inadvertently clobbered tab
warming by immediately calling the tab unload code. This wasn't
necessary, and I didn't need to put the cached tab deactivation
code in the unload method, it just seemed initially convenient.
This should make more sense overall.

MozReview-Commit-ID: 9v9dYZTa1Dv
2018-05-15 09:31:13 -07:00
Doug Thayer
7534e0cae4 Bug 1176019 - Force a paint when switching to a loaded tab r=mconley
This is fairly straightforward, other than the fact that the
nomenclature gets a bit awkward with the aForce parameter on
the ForcePaint methods. I'm not sure which direction to go with
this - "aForce" seems a fairly intuitive name for what we want,
and I'm kind of inclined to say the existing ForcePaint mechanic
should be renamed to something like PaintWithInterrupt, or
PaintWithPriority.

MozReview-Commit-ID: Bj9DROug1pC
2018-05-14 23:45:00 -07:00
Doug Thayer
db8bf8252e Bug 1176019 - Cache layers of background tabs r=mconley
We maintain a simple LRU cache of tab layers by setting their
docShellIsActive = false with preserveLayers(true). Once they
are pushed out of the cache by more recently used tabs, their
layers are discarded.

Luckily most of the complexity of this could be contained in
the AsyncTabSwitcher - the one change that had to sit outside of
that was moving the aTab.closing = true earlier in the removeTab
call, so that we could use that information to eagerly evict tabs
from the cache. This was to address a leak in a few tests on try.

MozReview-Commit-ID: 2E3uU8LEYkD
2018-04-16 15:35:41 -07:00
Bogdan Tara
1a216b271d Backed out 3 changesets (bug 1176019) for frequently failing /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/Maybe.h a=backout
Backed out changeset 2dd8b719d645 (bug 1176019)
Backed out changeset 9c6b0eb062ca (bug 1176019)
Backed out changeset 2d0dfc54128e (bug 1176019)
2018-05-11 17:07:19 +03:00
Doug Thayer
77552fc063 Bug 1176019 - Cache layers of background tabs r=mconley
We maintain a simple LRU cache of tab layers by setting their
docShellIsActive = false with preserveLayers(true). Once they
are pushed out of the cache by more recently used tabs, their
layers are discarded.

Luckily most of the complexity of this could be contained in
the AsyncTabSwitcher - the one change that had to sit outside of
that was moving the aTab.closing = true earlier in the removeTab
call, so that we could use that information to eagerly evict tabs
from the cache. This was to address a leak in a few tests on try.

MozReview-Commit-ID: 2E3uU8LEYkD
2018-04-16 15:35:41 -07:00
Dorel Luca
f72cffac0b Backed out 3 changesets (bug 1176019) for Browser-chrome failures on dom/plugins/test/mochitest/browser_tabswitchbetweenplugins.js. CLOSED TREE
Backed out changeset 31b295f557db (bug 1176019)
Backed out changeset 6c591b484a11 (bug 1176019)
Backed out changeset 3e7dbe6b5122 (bug 1176019)
2018-05-11 02:03:20 +03:00
Doug Thayer
fa09cd91e4 Bug 1176019 - Cache layers of background tabs r=mconley
We maintain a simple LRU cache of tab layers by setting their
docShellIsActive = false with preserveLayers(true). Once they
are pushed out of the cache by more recently used tabs, their
layers are discarded.

Luckily most of the complexity of this could be contained in
the AsyncTabSwitcher - the one change that had to sit outside of
that was moving the aTab.closing = true earlier in the removeTab
call, so that we could use that information to eagerly evict tabs
from the cache. This was to address a leak in a few tests on try.

MozReview-Commit-ID: 2E3uU8LEYkD
2018-04-16 15:35:41 -07:00
Dorel Luca
c2d279f618 Backed out changeset 998791c75fbc (bug 1176019) for Browser-chrome failures on dom/plugins/test/mochitest/browser_bug1196539.js. CLOSED TREE 2018-05-08 10:55:32 +03:00
Doug Thayer
4ca2bbcfe4 Bug 1176019 - Cache layers of background tabs r=mconley
We maintain a simple LRU cache of tab layers by setting their
docShellIsActive = false with preserveLayers(true). Once they
are pushed out of the cache by more recently used tabs, their
layers are discarded.

Luckily most of the complexity of this could be contained in
the AsyncTabSwitcher - the one change that had to sit outside of
that was moving the aTab.closing = true earlier in the removeTab
call, so that we could use that information to eagerly evict tabs
from the cache. This was to address a leak in a few tests on try.

MozReview-Commit-ID: 2E3uU8LEYkD
2018-04-16 15:35:41 -07:00
Dão Gottwald
d7e7a34bc3 Bug 1183135 - Update tab position attributes when a tab becomes visually selected rather than synchronously when switching tabs. r=mconley
MozReview-Commit-ID: Lvf0edXlwTu
2018-05-03 13:32:28 +02:00
arthur.iakab
50f8007d8c Backed out changeset ee1e498e3c43 (bug 1183135) for failing browser chrome tests on browser/base/content/test/performance/browser_tabclose.js a=backout 2018-05-03 13:45:10 +03:00
Dão Gottwald
f756aac11b Bug 1183135 - Update tab position attributes when a tab becomes visually selected rather than synchronously when switching tabs. r=mconley
MozReview-Commit-ID: LGOk50fNaXe
2018-04-28 19:19:59 +02:00
Mike Conley
0452f3bb56 Bug 1447193 - Remove all displayport suppression logic from AsyncTabSwitcher. r=dthayer
It looks like TabChild::RenderLayers already does the work of suppressing the displayport,
so all of the suppression and bookkeeping that AsyncTabSwitcher is doing is superfluous
and probably opening us up to weird graphical glitches (like the one associated with this
bug).

MozReview-Commit-ID: 5qIVguSMsnr
2018-03-23 16:10:17 -04:00
Mike Conley
7896e03a0d Bug 1450170 - Add Nightly-only observer notification that fires anytime a tab switch spinner is displayed. r=dthayer
MozReview-Commit-ID: 3S34IVb9BEf
2018-03-29 22:37:07 -04:00
Gurzau Raul
76cf7c48ef Backed out changeset e3613e0e4fe2 (bug 1447193) for failing on tests/mochitest/test_mousecapture.xhtml on a CLOSED TREE 2018-03-29 04:51:04 +03:00
Mike Conley
1a0fb160ef Bug 1447193 - Remove all displayport suppression logic from AsyncTabSwitcher. r=dthayer
It looks like TabChild::RenderLayers already does the work of suppressing the displayport,
so all of the suppression and bookkeeping that AsyncTabSwitcher is doing is superfluous
and probably opening us up to weird graphical glitches (like the one associated with this
bug).

MozReview-Commit-ID: 5qIVguSMsnr
2018-03-23 16:10:17 -04:00
Csoregi Natalia
4a244f0dbb Backed out changeset de19108477c7 (bug 1447193) for not fixing the issue- requested. CLOSED TREE 2018-03-28 21:16:32 +03:00
Mike Conley
58d7dfc91e Bug 1447193 - Unsuppress display ports immediately after the tab switch has completed. r=dthayer
We suppress the displayport when requesting a tab or warming it, in order to reduce
the amount of work that the content process needs to do to paint it (we paint just
the displayport area and nothing around it). Afterwards, we unsuppress the displayport
so that we can paint the surrounding areas when scrolling. We normally do this
unsuppression in destroy(), but with tab warming, that unsuppression can happen
after a few seconds (after the tab warming eviction timeout).

This results in users seeing checkerboarding sometimes, where the tab they're looking
at is still suppressing its displayport and waiting for the timeout to complete.

This patch updates the AsyncTabSwitcher to unsuppress the displayport for a tab as
soon as the tab has been switched to, instead of waiting for the timeout.

Out of an abundance of caution, we still unsuppress displayports for tabs that
never get to enter the STATE_LOADED state, although that really should never
happen.

MozReview-Commit-ID: 5qIVguSMsnr
2018-03-23 16:10:17 -04:00
Kiran
9f4d8a347a Bug 1447956 - Use this.tabbrowser.tabContainer instead of this.tabbrowser.tabbox.tabs. r=dao 2018-03-25 19:49:00 +02:00
Daniel Almeida
224cd517dc Bug 1447950 - use a switch statement in place of chained if-else in AsyncTabSwitcher.handleEvent. r=dao 2018-03-23 19:00:01 +01:00
Dão Gottwald
570d0e5c2c Bug 1448102 - Move tabWarmingEnabled, tabWarmingMax, tabWarmingUnloadDelay properties from gBrowser to AsyncTabSwitcher.jsm. r=mconley
MozReview-Commit-ID: 2pI1aDUxWFw
2018-03-22 19:36:00 +01:00
Mike Conley
7715192206 Bug 1447326 - Fix tab warming state probe. r=dthayer
Since bug 1432509, the warmingTabs WeakSet has had warmed tabs
cleared from it once they have entered STATE_LOADED. This allowed
us to make decisions on tab switch operations based on whether or
not a tab was still being warmed.

This broke our Telemetry, which assumed that warming tabs would
still be in the warmingTabs WeakSet until either requested or
evicted. Now, instead, we look to see whether or not tab warming
is enabled, and whether tabs _could_ have been warmed in order to
add entries to the right buckets.

MozReview-Commit-ID: 94oiKYzf4au
2018-03-21 14:01:18 -04:00
Mike Conley
cbb55d2b24 Bug 1423220 - Don't delay activating the DocShell for tabs that we're rendering by switching and not warming. r=dthayer
MozReview-Commit-ID: 3UmocajaSWJ
2018-03-16 11:39:22 -04:00
Vivek Dhingra
0ecbf733a5 Bug 1446060 - Rename mPanelContainer to tabpanels r=dao
MozReview-Commit-ID: 85PNkl3OeBE
2018-03-16 10:23:00 -04:00
Doug Thayer
c4e8a78dd3 Bug 1442068 - Record last probable cause of tab switch spinner r=mconley
MozReview-Commit-ID: mQnySbkQyH
2018-03-12 15:16:26 -07:00
Dão Gottwald
3f43e08bd6 Bug 1442651 - Remove the tabbrowser element and binding. r=bgrins
MozReview-Commit-ID: 2IXukkFq5C2
2018-03-05 20:33:36 +01:00
Dão Gottwald
5a372abca5 Bug 1436361 - Extract the async tab switcher from tabbrowser.js into its own JSM. r=mconley
MozReview-Commit-ID: AQaVOmQ548v
2018-03-02 12:51:15 +01:00