Commit Graph

72 Commits

Author SHA1 Message Date
Csoregi Natalia
b167ea2ca3 Backed out changeset ab94b17b8da3 (bug 1646561) for failures on browser_abort_visibility.js. CLOSED TREE 2021-03-16 20:33:34 +02:00
Steven MacLeod
42f60aa4ee Bug 1646561 - Stop using DocShell::GetVisibility in nsFocusManager. r=emilio,mconley
We stop checking for the tab state to be `STATE_LOADED` since it
messes up initial focus. Instead, we directly check if the tab
is warming, since that was the intention of this check, AFAICT.
See Bug 1397426 for where this was introduced.

Differential Revision: https://phabricator.services.mozilla.com/D108452
2021-03-16 15:36:55 +00:00
Florian Quèze
2a1b8d6587 Bug 1647238 - Replace Services.profiler.AddMarker with ChromeUtils.addProfilerMarker in browser/, r=Gijs.
Depends on D80651

Differential Revision: https://phabricator.services.mozilla.com/D80652
2020-06-23 13:44:48 +00:00
Marco Bonardo
68383dc434 Bug 1601052 - Wait for both TabSelect and urlbar focus changes from the tab switcher. r=dao
The Async Tab Switcher seems to fire the TabSelect event in parallel with focus
changes, making the behavior non-predictable, because we need a stable situation
where both events happened.

Differential Revision: https://phabricator.services.mozilla.com/D61353
2020-01-31 15:10:27 +00:00
Matt Woodrow
34598998c7 Bug 1598516 - Remove isLocalAboutURI since all about: URIs are local. r=Gijs
With DocumentChannel, the 'URI' of the channel that we proxy for RemoteWebProgress doesn't have the resolved URI, and reports the about: version instead.

All about: URIs are local these days, so we can just check for that scheme directly, and simplify the code.

Differential Revision: https://phabricator.services.mozilla.com/D54251
2019-12-03 23:55:21 +00:00
Bogdan Tara
6e905df32f Backed out 8 changesets (bug 1598516) for run startup hangs CLOSED TREE
Backed out changeset bc0035aa57fe (bug 1598516)
Backed out changeset 33603b723337 (bug 1598516)
Backed out changeset 31c11dd9146d (bug 1598516)
Backed out changeset 4e269a638350 (bug 1598516)
Backed out changeset 76b86080c868 (bug 1598516)
Backed out changeset b6f84b01cbd9 (bug 1598516)
Backed out changeset 74d136798dd3 (bug 1598516)
Backed out changeset bf370938463e (bug 1598516)
2019-12-04 00:48:17 +02:00
Matt Woodrow
b0de82265f Bug 1598516 - Remove isLocalAboutURI since all about: URIs are local. r=Gijs
With DocumentChannel, the 'URI' of the channel that we proxy for RemoteWebProgress doesn't have the resolved URI, and reports the about: version instead.

All about: URIs are local these days, so we can just check for that scheme directly, and simplify the code.

Differential Revision: https://phabricator.services.mozilla.com/D54251
2019-12-03 20:43:59 +00:00
Gurzau Raul
068af7717a Backed out 8 changesets (bug 1598516) for build bustage at ParentChannelListener.cpp on a CLOSED TREE.
Backed out changeset 7ac1b091aa5f (bug 1598516)
Backed out changeset b62c5b49b91c (bug 1598516)
Backed out changeset e48c0ce38498 (bug 1598516)
Backed out changeset cc2599921b5e (bug 1598516)
Backed out changeset 0a0f80b0b278 (bug 1598516)
Backed out changeset 1dc19a039cab (bug 1598516)
Backed out changeset b664c8af6e2d (bug 1598516)
Backed out changeset 943b440179b9 (bug 1598516)
2019-12-03 21:48:14 +02:00
Matt Woodrow
d19ce74b4f Bug 1598516 - Remove isLocalAboutURI since all about: URIs are local. r=Gijs
With DocumentChannel, the 'URI' of the channel that we proxy for RemoteWebProgress doesn't have the resolved URI, and reports the about: version instead.

All about: URIs are local these days, so we can just check for that scheme directly, and simplify the code.

Differential Revision: https://phabricator.services.mozilla.com/D54251
2019-12-03 06:20:51 +00:00
Coroiu Cristina
3ec04652cd Backed out 6 changesets (bug 1598516) for Mn and pgo failures on a CLOSED TREE
Backed out changeset 63a84cdfd937 (bug 1598516)
Backed out changeset 894aaa4bc62e (bug 1598516)
Backed out changeset e19ada9e8b30 (bug 1598516)
Backed out changeset 72f2256ae171 (bug 1598516)
Backed out changeset 6ba74ff735ba (bug 1598516)
Backed out changeset b235cf22b0e4 (bug 1598516)
2019-11-26 04:40:35 +02:00
Matt Woodrow
cbf3ce6b33 Bug 1598516 - Remove isLocalAboutURI since all about: URIs are local. r=Gijs
With DocumentChannel, the 'URI' of the channel that we proxy for RemoteWebProgress doesn't have the resolved URI, and reports the about: version instead.

All about: URIs are local these days, so we can just check for that scheme directly, and simplify the code.

Differential Revision: https://phabricator.services.mozilla.com/D54251
2019-11-25 23:39:06 +00:00
Doug Thayer
b4764a8b87 Bug 1583651 - Add logging indicator for maybeVisibleTabs r=mconley
This is just sometimes relevant for debugging things.

Depends on D47350

Differential Revision: https://phabricator.services.mozilla.com/D47351
2019-09-27 19:17:25 +00:00
Doug Thayer
516bb749c2 Bug 1583651 - Pull Telemetry code out into helpers r=mconley
This just pulls chunks of TelemetryStopwatch and similar code,
which often eats up several lines, into some helper functions.
This should just help reduce the cognitive load of reading this
code.

Depends on D47349

Differential Revision: https://phabricator.services.mozilla.com/D47350
2019-09-27 19:23:12 +00:00
Doug Thayer
c40647c9cd Bug 1583651 - Send all pre/postActions through handleEvent r=mconley
This way we ensure that the reentrancy guard always stays in effect.
It should just be a little easier to reason about everything if it's
all channeled through the same place.

Differential Revision: https://phabricator.services.mozilla.com/D47349
2019-09-27 19:12:03 +00:00
Emilio Cobos Álvarez
ac821a9575 Bug 1582042 - Remove nsIRemoteTab.forceRepaint(). r=mconley
It's useless if the tab is already visible (i.e., has renderLayers=true), per
the previous patches, and that's the only point at which it gets called.

Differential Revision: https://phabricator.services.mozilla.com/D47131
2019-09-26 22:11:50 +00:00
monikamaheshwari
edb30ffaec Bug 1578683 Turn on ESLint rule prefer-boolean-length-check for toolkit and browser r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D45629
2019-09-14 09:39:26 +00:00
Doug Thayer
d11e01d97c Bug 1575610 - Ensure we only show spinner after 400ms r=mconley
I haven't been able to work out a reason why we should show the
spinner before this.loadTimer is cleared. All this does is allow
for random reordering of events to sometimes show a spinner early.
This should ideally just make the spinner logic more rubust to
event ordering changes, without sacrificing visibility into tab
switch timings.

Differential Revision: https://phabricator.services.mozilla.com/D44878
2019-09-05 20:02:45 +00:00
Doug Thayer
8e9249663f Bug 1575610 - Revamp AsyncTabSwitcher.jsm logging r=mconley
This just adds a bit of information to the AsyncTabSwitcher's
logging and cleans up the display to make it quicker to find
what changed, especially with large numbers of tabs. The bit of
new information that I'm particularly interested in is what
event triggered a particular update - so now every time we call
postActions, we include the name of the event.

Differential Revision: https://phabricator.services.mozilla.com/D44710
2019-09-05 20:02:36 +00:00
Kris Maglione
07dc0e19fe Bug 1570097: Part 2 - Add missing try-finally in AsyncTabSwitcher. r=mconley
With the current code, if any event handler throws, `_processing` remains
true, and every subsequent event goes into an infinite loop dispatching 0ms
timeouts to run on the next tick.

Differential Revision: https://phabricator.services.mozilla.com/D39931
2019-07-30 19:26:56 +00:00
Victor Porof
9a78b195ab Bug 1561435 - Format browser/modules/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36046
2019-07-05 09:55:19 +02:00
Ryan Hunt
7144ca54c8 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

Differential Revision: https://phabricator.services.mozilla.com/D28135
2019-04-09 17:39:01 -05:00
Ryan Hunt
c6e302039f Bug 1534395 - Rename nsITabParent to nsIRemoteTab. r=nika,mconley
nsITabParent is exposed to frontend code and is generally used as a representation of a remote tab. We could just rename the interface to nsIBrowserParent and worry about it later, but I think it's better to rename the interface to nsIRemoteTab so that we can later work on splitting the interface away from the PBrowser protocol.

Note: Some frontend code refers to a TabParentId. This commit renames this to RemoteTabId. We need to figure out the purpose of TabId with fission.

Differential Revision: https://phabricator.services.mozilla.com/D28132
2019-04-09 15:59:37 -05:00
Rob Wu
731bc4cb2e Bug 1544834 - Replace non-test uses of deprecated Array generics r=evilpie,dao
- `Array.forEach` becomes for-of loop or `array.forEach`.
- `Array.slice(a)` or `Array.slice(a, 0)` becomes `Array.from(a)`.
- `Array.map` becomes `Array.from`
- `Array` copy + concatenation becomes Array literal + spread syntax.
- All other `Array.X(a, ...)` become `Array.prototype.X.call` or `Array.from(a).X(...)`

Differential Revision: https://phabricator.services.mozilla.com/D27802
2019-04-17 19:03:17 +00:00
Kris Maglione
856fa07b17 Bug 1514594: Part 3 - Change ChromeUtils.import API.
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8

This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:

  ChromeUtils.import("resource://gre/modules/Services.jsm");

is approximately the same as the following, in the new model:

  var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");

Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs

This was done using the followng script:

https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8

Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D16750
2019-01-17 10:18:31 -08:00
Dão Gottwald
2359985508 Bug 1510418 - Use TelemetryStopwatch.running instead of custom _tabSwitchStopWatchRunning flag. r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D13126
2018-11-27 21:53:13 +00:00
Ehsan Akhgari
88a09bccce Bug 1503074 follow-up: Address review comments 2018-11-27 14:48:23 -05:00
Ehsan Akhgari
4491af30fc Bug 1503074 - Only touch the FX_TAB_SWITCH_COMPOSITE_E10S_MS stopwatch when we have actually started it in the past
Differential Revision: https://phabricator.services.mozilla.com/D12966
2018-11-26 19:16:09 +00:00
Kris Maglione
2fe938bed2 Bug 1482091: Part 2 - Remove TelemetryStopwatch.jsm in favor of native implementation. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D9888
2018-10-25 19:04:01 -07:00
arthur.iakab
60aefe8252 Backed out 2 changesets (bug 1482091) for bc failures on browser_domFullscreen_fullscreenMode.js
Backed out changeset bc03f101937e (bug 1482091)
Backed out changeset 28a19b7290ab (bug 1482091)
2018-11-03 01:08:36 +02:00
Kris Maglione
937d3bc224 Bug 1482091: Part 2 - Remove TelemetryStopwatch.jsm in favor of native implementation. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D9888
2018-10-25 19:04:01 -07:00
arthur.iakab
0b02a4f71d Backed out 2 changesets (bug 1482091)for failing browser chrome failures on browser_panelUINotifications_fullscreen_noAutoHideToolbar.js
Backed out changeset afd0a13bcfff (bug 1482091)
Backed out changeset a19c6b3e0402 (bug 1482091)
2018-11-02 23:01:15 +02:00
Kris Maglione
31d1c1a1da Bug 1482091: Part 2 - Remove TelemetryStopwatch.jsm in favor of native implementation. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D9888
2018-10-25 19:04:01 -07:00
Jay Lim
f780a5acbd Bug 1472212 - Ensure that tab does not show busy or burst status whenever we navigate to about:home, about:newtab, or about:welcome in a new window. r=Gijs
Now that we have moved some about: pages to the privileged content process,
opening these URLs from a non-privileged content process will trigger SessionStore
to restore the tab state due to a process flip. We will set favicons for these
URLs earlier to avoid flickering and improve perceived performance.

This patch also prevents the spinner whenever a page with a local about: URI
(about:blank and about: pages that resolve to jar:// or file:// URIs) is
loaded from a process that the URI cannot load in (e.g. loading about:newtab
in the web content process), as well as during tab duplication or session
restoration for such local about: URIs.

Before this patch, there were additional frames when opening a new window, causing
browser/base/content/test/performance/browser_windowopen.js to fail. This patch
will reduce the number of frames when opening a new window.

MozReview-Commit-ID: yjj2964KSz
2018-07-20 16:43:12 -04:00
Ciure Andrei
1f3e650127 Backed out 10 changesets (bug 1501044, bug 1472212) for fetch-destination.https.html perma failure CLOSED TREE
Backed out changeset aa35078cabaa (bug 1472212)
Backed out changeset bf02793f802d (bug 1472212)
Backed out changeset 95a7ef6102a6 (bug 1472212)
Backed out changeset 7b7fa6ab2229 (bug 1472212)
Backed out changeset 4fe4ec18f2f3 (bug 1472212)
Backed out changeset 18f824674b76 (bug 1472212)
Backed out changeset 1978a7837502 (bug 1472212)
Backed out changeset 21a6f1a83c73 (bug 1472212)
Backed out changeset 48242d39d532 (bug 1472212)
Backed out changeset 0b5cf2f4305a (bug 1501044)
2018-10-30 23:31:10 +02:00
Jay Lim
a0680e88ae Bug 1472212 - Ensure that tab does not show busy or burst status whenever we navigate to about:home, about:newtab, or about:welcome in a new window. r=Gijs
Now that we have moved some about: pages to the privileged content process,
opening these URLs from a non-privileged content process will trigger SessionStore
to restore the tab state due to a process flip. We will set favicons for these
URLs earlier to avoid flickering and improve perceived performance.

This patch also prevents the spinner whenever a page with a local about: URI
(about:blank and about: pages that resolve to jar:// or file:// URIs) is
loaded from a process that the URI cannot load in (e.g. loading about:newtab
in the web content process), as well as during tab duplication or session
restoration for such local about: URIs.

Before this patch, there were additional frames when opening a new window, causing
browser/base/content/test/performance/browser_windowopen.js to fail. This patch
will reduce the number of frames when opening a new window.

MozReview-Commit-ID: yjj2964KSz
2018-07-20 16:43:12 -04:00
Csoregi Natalia
bd7ac4afbb Backed out 9 changesets (bug 1472212) for browser-chrome tests run issues on Linux x64 asan and failures on browser_ext_windows_create_tabId.js. CLOSED TREE
Backed out changeset 18e46df44cd1 (bug 1472212)
Backed out changeset 2e5de66c1f60 (bug 1472212)
Backed out changeset b94f9883aef0 (bug 1472212)
Backed out changeset ebdca743668c (bug 1472212)
Backed out changeset f8a06d01437e (bug 1472212)
Backed out changeset b6996abc7d90 (bug 1472212)
Backed out changeset 24c257cd18c3 (bug 1472212)
Backed out changeset 176f3ee14e67 (bug 1472212)
Backed out changeset b4baa63e5b1b (bug 1472212)
2018-10-30 01:58:21 +02:00
Jay Lim
ed0444fa9e Bug 1472212 - Ensure that tab does not show busy or burst status whenever we navigate to about:home, about:newtab, or about:welcome in a new window. r=Gijs
Now that we have moved some about: pages to the privileged content process,
opening these URLs from a non-privileged content process will trigger SessionStore
to restore the tab state due to a process flip. We will set favicons for these
URLs earlier to avoid flickering and improve perceived performance.

This patch also prevents the spinner whenever a page with a local about: URI
(about:blank and about: pages that resolve to jar:// or file:// URIs) is
loaded from a process that the URI cannot load in (e.g. loading about:newtab
in the web content process), as well as during tab duplication or session
restoration for such local about: URIs.

Before this patch, there were additional frames when opening a new window, causing
browser/base/content/test/performance/browser_windowopen.js to fail. This patch
will reduce the number of frames when opening a new window.

MozReview-Commit-ID: yjj2964KSz
2018-07-20 16:43:12 -04:00
Doug Thayer
6f34afb2f0 Bug 1495032 - Proactively adjust tab priority on switch r=mconley
Our current prioritization mechanism doesn't account for tab
warming, or for the fact that the current tab should be
deprioritized. This corrects that.

Differential Revision: https://phabricator.services.mozilla.com/D7205
2018-10-01 17:05:32 +00:00
Coroiu Cristina
9396e3b0da Merge mozilla-central to inbound a=merge on a CLOSED TREE 2018-08-31 19:35:06 +03:00
Mark Banner
462116b7f9 Bug 1486739 - Add missing dangling commas in browser/, services/, taskcluster/ and toolkit/. r=mossop
Automatic changes by ESLint, except for manual corrections for .xml files.

Differential Revision: https://phabricator.services.mozilla.com/D4439
2018-08-31 05:59:17 +00:00
Dave Townsend
943f61296a Bug 1487246: Remove uses of comma sequences in linted code. r=Standard8
Two cases were hiding permanently failing tests. I've commented those out and
filed bug 1487431.

Differential Revision: https://phabricator.services.mozilla.com/D4680
2018-08-29 16:12:55 -07:00
Mike Conley
f9f2a53781 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
2018-08-21 06:55:47 +00:00
Matt Woodrow
99df8bac31 Bug 1481704 - Add missing hunk that got lost during rebasing. 2018-08-15 12:08:39 +12:00
Matt Woodrow
3576a37a79 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
1c86f46ecd 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
2018-08-08 15:22:53 -07:00
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