Commit graph

24 commits

Author SHA1 Message Date
Bogdan Tara
babf96cf0c 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
bbadb1c753 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

--HG--
extra : rebase_source : b7e7bb3fcf1ed59e79a7c9fb9d3e6ce735ab54e9
2018-04-16 15:35:41 -07:00
Dorel Luca
e2b88544d0 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
2b3e7dfef6 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

--HG--
extra : rebase_source : b7e7bb3fcf1ed59e79a7c9fb9d3e6ce735ab54e9
2018-04-16 15:35:41 -07:00
Dorel Luca
54c649077a 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
00e503831d 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

--HG--
extra : rebase_source : 1de7c196b14b2f3a368bfbae970808cbf49e6e36
2018-04-16 15:35:41 -07:00
Dão Gottwald
51eab9cbe5 Bug 1183135 - Update tab position attributes when a tab becomes visually selected rather than synchronously when switching tabs. r=mconley
MozReview-Commit-ID: Lvf0edXlwTu

--HG--
extra : rebase_source : ca5899905428ce3d295eeb0211f02b5799c908f2
2018-05-03 13:32:28 +02:00
arthur.iakab
9befdc9927 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
891e47b838 Bug 1183135 - Update tab position attributes when a tab becomes visually selected rather than synchronously when switching tabs. r=mconley
MozReview-Commit-ID: LGOk50fNaXe

--HG--
extra : rebase_source : 835411c7e88a48506a2652581443d15122025c52
2018-04-28 19:19:59 +02:00
Mike Conley
4e10ada3b9 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

--HG--
extra : rebase_source : 59e72715791cb8aa25310e48b5a02e1b86762543
2018-03-23 16:10:17 -04:00
Mike Conley
fc0c43807a Bug 1450170 - Add Nightly-only observer notification that fires anytime a tab switch spinner is displayed. r=dthayer
MozReview-Commit-ID: 3S34IVb9BEf

--HG--
extra : rebase_source : 084a98ece1ffa0d32109811d700f80e3e2b1eaf0
2018-03-29 22:37:07 -04:00
Gurzau Raul
b85716429c 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
6424c99346 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

--HG--
extra : rebase_source : 35f944a324415401c4a28ed0006baf9361ef73c8
2018-03-23 16:10:17 -04:00
Csoregi Natalia
3854319e77 Backed out changeset de19108477c7 (bug 1447193) for not fixing the issue- requested. CLOSED TREE 2018-03-28 21:16:32 +03:00
Mike Conley
f0500e5bda 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

--HG--
extra : rebase_source : 90c0d617ac3d43a8d4513e864ba2f0a3228a5582
2018-03-23 16:10:17 -04:00
Kiran
78451d10e0 Bug 1447956 - Use this.tabbrowser.tabContainer instead of this.tabbrowser.tabbox.tabs. r=dao 2018-03-25 19:49:00 +02:00
Daniel Almeida
673edf8ee3 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
1b366a1008 Bug 1448102 - Move tabWarmingEnabled, tabWarmingMax, tabWarmingUnloadDelay properties from gBrowser to AsyncTabSwitcher.jsm. r=mconley
MozReview-Commit-ID: 2pI1aDUxWFw

--HG--
extra : rebase_source : ed6f75031f47456e91ed419c939b2e29ecc58526
2018-03-22 19:36:00 +01:00
Mike Conley
8f3cddc6cf 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

--HG--
extra : rebase_source : 0b6be98ff93d9753fcdacbec15a2a7b08232bb3a
2018-03-21 14:01:18 -04:00
Mike Conley
1bb8e62185 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

--HG--
extra : rebase_source : f79b07bd5620312b959503aeee5410c2e205a471
2018-03-16 11:39:22 -04:00
Vivek Dhingra
7b323d8758 Bug 1446060 - Rename mPanelContainer to tabpanels r=dao
MozReview-Commit-ID: 85PNkl3OeBE

--HG--
extra : rebase_source : d7bfb49a8736b8319f6d1ca45f39fe001d4214d8
2018-03-16 10:23:00 -04:00
Doug Thayer
c8a5a6165c Bug 1442068 - Record last probable cause of tab switch spinner r=mconley
MozReview-Commit-ID: mQnySbkQyH

--HG--
extra : rebase_source : dfad446ff95e364e822d1ae2ea8ecbf84bd9662f
2018-03-12 15:16:26 -07:00
Dão Gottwald
732eeec0ab Bug 1442651 - Remove the tabbrowser element and binding. r=bgrins
MozReview-Commit-ID: 2IXukkFq5C2

--HG--
extra : rebase_source : 4fd817951e19b39b5b06e75614031302177e86b2
2018-03-05 20:33:36 +01:00
Dão Gottwald
5d11b950a7 Bug 1436361 - Extract the async tab switcher from tabbrowser.js into its own JSM. r=mconley
MozReview-Commit-ID: AQaVOmQ548v

--HG--
rename : browser/base/content/tabbrowser.js => browser/modules/AsyncTabSwitcher.jsm
extra : rebase_source : 2ca6b3e21aead7de333ffec9bcbfc3f2b8bebdcb
2018-03-02 12:51:15 +01:00