Граф коммитов

31 Коммитов

Автор SHA1 Сообщение Дата
Mike Conley bda8a0dccd Bug 1478112 - Get rid of preselect tabbox workaround, and adjust focus after changing visible tab right away. r=dao
The "select" event handler workaround was originally added in bug 1379270 to make it
possible to focus and select the URL bar a little bit later. This ugly hack was to
workaround an issue with WebExtensions that override about:newtab with the
chrome_url_overrides property (the issue would be that the URL bar would not be
properly focused and selected if about:newtab was overridden).

Back in the day, this was necessary because the overriding URL was fully displayed
in the URL bar (moz-webextension://...). These days, when about:newtab is overridden,
the URL bar is still empty - we just end up showing the information about the
WebExtension overriding about:newtab to the left of the URL bar.

So I think we can remove the old workaround.

Differential Revision: https://phabricator.services.mozilla.com/D3447

--HG--
extra : moz-landing-system : lando
2018-08-21 06:55:47 +00:00
Matt Woodrow 88a85cf5c7 Bug 1481704 - Add missing hunk that got lost during rebasing. 2018-08-15 12:08:39 +12:00
Matt Woodrow 268f257529 Bug 1481704 - Add FX_TAB_SWITCH_COMPOSITE_E10S_MS to measure total time it takes to present a tab during tab-switch. r=mconley, data-review=francois 2018-08-11 22:07:14 +12:00
Brian Grinstead abf1620630 Bug 1479125 - Migrate calls that expect an element to be returned to use element variation firstChild etc to firstElementChild etc;r=Paolo
This allows the JS to work in HTML documents, where whitespace is preserved. In XUL
documents, whitespace is ignored when parsing so text nodes are generally not returned.

The following changes were made, with manual cleanups as necessary (i.e. when firstChild actually
refers to a text node, or when firstChild is used in a loop to empty out an element):

  firstChild->firstElementChild
  lastChild->lastElementChild
  nextSibling->nextElementSibling
  previousSibling->previousElementSibling
  childNodes->children

MozReview-Commit-ID: 95NQ8syBhYw

--HG--
extra : rebase_source : 186d805f7a2a56694dda9032aceac2dfe5424753
2018-08-08 15:22:53 -07:00
Doug Thayer 5247357739 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

--HG--
extra : rebase_source : fe1d6f4f87df11d5ed495e309a4a0f144bfc2143
2018-05-15 09:31:13 -07:00
Doug Thayer fc77954257 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

--HG--
extra : rebase_source : a3d91fec940d83325d36bafb13fe892e9c9530e8
2018-05-14 23:45:00 -07:00
Doug Thayer 6572652a7d 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 : d2865fd1ee10db17d9f41cca059a5cee697f259d
2018-04-16 15:35:41 -07:00
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