c49de061c1fab19f934574e959938c5500d1d080: Bug 1635451 - Minimize content processes' connections to the X server. r=jgilbert,stransky,nika
Jed Davis <jld@mozilla.com> - Tue, 06 Jul 2021 07:42:42 +0000 - rev 584823
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1635451 - Minimize content processes' connections to the X server. r=jgilbert,stransky,nika
This patch launches content processes with the `MOZ_HEADLESS` env var set
if they're using GTK with an X11 display (and there's no other reason
they'd need GTK).
The goal is to avoid exhausting Xorg's default limit of 256 clients if
there are many content processes due to Fission. If these conditions
are met, the content process doesn't need to eagerly connect to the X
server. This does not affect the sandbox policy, and content processes
can still use X if needed for, e.g., WebGL.
The boolean pref `dom.ipc.avoid-gtk`, set by default, controls this
feature. In the future it could also be extended to minimize GTK use
with Wayland displays.
Note that disabling `widget.non-native-theme.enabled`, which is also
enabled by default, will restore the use of X11 in all content processes
even if this pref is set; the alternative is that widgets wouldn't render
in that case.
This change will also save some memory for now-unnecessary instances of
GTK's global state, and improve content process startup time.
Remove also the temp pref dom.ipc.remote-mozIcon because it cannot work
anymore with the content process being headless.
Differential Revision:
https://phabricator.services.mozilla.com/D112197
c1bd0996764c49174c9169fe5550905ce5dcef88: Bug 1635451 - Allow GLX to work in headless content processes. r=jgilbert
Jed Davis <jld@mozilla.com> - Tue, 06 Jul 2021 07:42:42 +0000 - rev 584822
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1635451 - Allow GLX to work in headless content processes. r=jgilbert
This follows what we're already doing for EGL: a refcounted object
which can own the X connection, where we hold a weak reference from
the library object so that multiple contexts opportunistically share
the display but we close the connection when the last context is
freed/GCed.
In a process where GTK is initialized, we borrow its display instead of
opening a new one, which preserves the existing behavior.
Differential Revision:
https://phabricator.services.mozilla.com/D112195
2974b1ba2beb67be93502376968ff462921d0d5e: Bug 1635451 - Attempt to start WebGL even in headless mode. r=jgilbert
Jed Davis <jld@mozilla.com> - Tue, 06 Jul 2021 07:42:41 +0000 - rev 584821
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1635451 - Attempt to start WebGL even in headless mode. r=jgilbert
Currently we return an error when creating a WebGL context in headless
mode, but our WebGL implementation renders to an offscreen context, so
in theory it could work normally in a headless browser, and in practice
it already does work on some OSes. This patch removes that check; the
attempt to use GL may fail, in which case we'll return an error to
content.
The main purpose of this patch is to run content processes with headless
mode set in an otherwise non-headless browser, but it should also be
useful for fully headless mode. Comments in bug NNNNNNN indicate that
this change should be sufficient for headless WebGL on Windows and MacOS,
although it may not have been extensively tested.
Linux is more complicated. The EGL/X11 backend manages its own
connection to the X server (indirectly via the EGL library); a later
patch in this series allows doing that in GLX mode as well. Our Wayland
support can't do this yet, but it should be possible.
This patch also modifies the Linux sandbox policy so that content
processes can connect to a local X server (via the file broker) even when
the parent process is in headless mode.
Differential Revision:
https://phabricator.services.mozilla.com/D118721
a83914c4bef76a513c2036911355389f7e9edae8: Bug 1717726 - Add a debug-only assertion disallowing remote <browser>s or <iframe>s inside nsDeckFrame. r=tnikkel
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 06 Jul 2021 07:38:06 +0000 - rev 584820
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1717726 - Add a debug-only assertion disallowing remote <browser>s or <iframe>s inside nsDeckFrame. r=tnikkel
The background to have this assertion is that nsDeckFrame::HideBox calls
PresShell::ClearMouseCapture and ClearMouseCapture checks whether the
being-hidden panel has a content capturing mouse events or not but the check
doesn't work if the content is in a remote process. In our current
mozilla-central tree, there is no such nsDeckFrame other than our browser's
tab. In the case of our browser's tab when switching tabs, i.e. hiding an
active tab, clearing the mouse capturing state has (should have) worked since
E10S (Note for Fission cases it has worked since
bug 1680405). So, because
nsDeckFrame will be obsoleted sooner or later, we disallow the situation
for other cases instead of adding special handling for the other case.
Differential Revision:
https://phabricator.services.mozilla.com/D119067
8255bf62f07023b944126e0f56f4de8d081cc641: Bug 1717726 - Remove browser_deck_has_out_of_process_iframe.js. r=tnikkel
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 06 Jul 2021 07:38:06 +0000 - rev 584819
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1717726 - Remove browser_deck_has_out_of_process_iframe.js. r=tnikkel
We are going to disallow having any remote <browser>s or <iframe>s inside
nsDeckFrame, so this test is no longer necessary.
Differential Revision:
https://phabricator.services.mozilla.com/D119066
4e17aba743f7d67db359eeb64934e632ce752e44: Bug 1693802 - [remote] Refactor Connection module to be used by CDP and WebDriver BiDi. r=webdriver-reviewers,jdescottes
Henrik Skupin <mail@hskupin.info> - Tue, 06 Jul 2021 07:06:51 +0000 - rev 584818
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1693802 - [remote] Refactor Connection module to be used by CDP and WebDriver BiDi. r=webdriver-reviewers,jdescottes
The patch extracts common code that can be re-used
by both the CDP, and the upcoming WebDriver BiDi
protocol.
Differential Revision:
https://phabricator.services.mozilla.com/D119108
f4b6178dcaed97a99b0264eb99699d83ab9fe27c: Bug 1718279 - [devtools] Rename Descriptor::reloadBrowsingContext to reloadDescriptor r=ochameau,devtools-backward-compat-reviewers
Julian Descottes <jdescottes@mozilla.com> - Tue, 06 Jul 2021 07:02:31 +0000 - rev 584817
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1718279 - [devtools] Rename Descriptor::reloadBrowsingContext to reloadDescriptor r=ochameau,devtools-backward-compat-reviewers
Depends on D118851
The initial name no longer represents accurately what happens for webextension descriptors
Differential Revision:
https://phabricator.services.mozilla.com/D118852
ce595859dc1bbb488ffa1158a5b17ebe44685535: Bug 1718279 - [devtools] Addon toolbox reload should use the addon manager r=ochameau
Julian Descottes <jdescottes@mozilla.com> - Tue, 06 Jul 2021 07:02:31 +0000 - rev 584816
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1718279 - [devtools] Addon toolbox reload should use the addon manager r=ochameau
Depends on D118473
Differential Revision:
https://phabricator.services.mozilla.com/D118851
34f5f140fac0c428a5393f87682cbb5c2dbf9d9f: Bug 1719160 - [devtools] Fix checkValue commands test helper. r=jdescottes.
Nicolas Chevobbe <nchevobbe@mozilla.com> - Tue, 06 Jul 2021 05:03:47 +0000 - rev 584815
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1719160 - [devtools] Fix checkValue commands test helper. r=jdescottes.
We weren't checking properly undefined value, which was hiding issues in
some tests.
The helpers are fixed and a few test modified to make them pass.
Differential Revision:
https://phabricator.services.mozilla.com/D119096
6eb77c24726a2286bf1a0f605742474dd3f3eaa2: Bug 1716863 - Make `HTMLEditor::HandleInsertText()` climb up the tree when `Selection` is in elements which cannot have text nodes r=m_kato
Masayuki Nakano <masayuki@d-toybox.com> - Tue, 06 Jul 2021 04:55:28 +0000 - rev 584814
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1716863 - Make `HTMLEditor::HandleInsertText()` climb up the tree when `Selection` is in elements which cannot have text nodes r=m_kato
In most cases, it's called with selection range which is collapsed in a text
node, but otherwise, the selection may be in an element which cannot have
text nodes. Therefore, before handling the insertion, it should look for
ancestor element which can have text nodes.
Note that this patch makes inserting text immediately before an inclusive
ancestor element whose parent can have a text node. However, both Blink and
WebKit ignores if there are invisible/empty inline nodes. So, even with
this patch, Gecko keeps failing in some tests of the WPT. It should be handled
in a follow up bug because doing it requires complicated code.
Differential Revision:
https://phabricator.services.mozilla.com/D119065
65e999c556529e6393ab77df631d97eb82c74764: Bug 1716863 - Add WPT to check "insertText" command when selection is collapsed in a void element, and its expected results almost match with Chrome r=m_kato
Masayuki Nakano <masayuki@d-toybox.com> - Tue, 06 Jul 2021 04:55:27 +0000 - rev 584813
Push
38588 by apavel@mozilla.com at Tue, 06 Jul 2021 21:42:42 +0000
Bug 1716863 - Add WPT to check "insertText" command when selection is collapsed in a void element, and its expected results almost match with Chrome r=m_kato
Differential Revision:
https://phabricator.services.mozilla.com/D119064
1f7ab358eec6d8b8baed711b105742b8ca22dc90: Bug 1718512 - Remove unused BundleEventListener from GeckoNetworkManager. r=geckoview-reviewers,aklotz
Makoto Kato <m_kato@ga2.so-net.ne.jp> - Tue, 06 Jul 2021 04:10:22 +0000 - rev 584812
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1718512 - Remove unused BundleEventListener from GeckoNetworkManager. r=geckoview-reviewers,aklotz
By
bug 1697680, Gecko removes Presentation API. `Wifi:GetIPAddress` was only used on this API implementation.
So now, this is unused.
Differential Revision:
https://phabricator.services.mozilla.com/D118911
7aa41e595f1f61b8d8943fd0d574156c0d3e347d: Bug 1718157 - Add a rudimentary on screen debug log system r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com> - Tue, 06 Jul 2021 00:55:17 +0000 - rev 584811
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1718157 - Add a rudimentary on screen debug log system r=gfx-reviewers,kvark
This is useful for debugging problems on systems such as android
or windows which can sometimes be tricky to get reliable console
output logging.
Differential Revision:
https://phabricator.services.mozilla.com/D118772
ec15077610d7676b05be0d566d4290d16846148b: Bug 1693069 - Focus the page range field when choosing a custom print range. r=mstriemer
Matthew Noorenberghe <mozilla@noorenberghe.ca> - Mon, 05 Jul 2021 22:55:55 +0000 - rev 584810
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1693069 - Focus the page range field when choosing a custom print range. r=mstriemer
Differential Revision:
https://phabricator.services.mozilla.com/D118886
eff5378222a2ecb834b7349967aea52b7c94fbd0: Bug 1677606: Run browser_searchbar_focus_timing.js to avoid potential conflicts with other tests. r=Standard8
Daisuke Akatsuka <daisuke@birchill.co.jp> - Mon, 05 Jul 2021 22:52:22 +0000 - rev 584809
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1677606: Run browser_searchbar_focus_timing.js to avoid potential conflicts with other tests. r=Standard8
Differential Revision:
https://phabricator.services.mozilla.com/D119043
387b0c7e291b1604d18e675c9a29d4493ac4955b: Bug 1719207 - Install libstdc++ dev package in sysroots. r=firefox-build-system-reviewers,mhentges
Mike Hommey <mh+mozilla@glandium.org> - Mon, 05 Jul 2021 22:47:18 +0000 - rev 584808
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1719207 - Install libstdc++ dev package in sysroots. r=firefox-build-system-reviewers,mhentges
Because the build requires a version that is newer than the one
available in Debian jessie, we build a newer version. The exact minor
version doesn't matter, as long as it's 7.x, so we take the last version
that produced a libstdc++6 package (before Debian switched to GCC 8 as
the default), and add a few workarounds to fix the packaging that
doesn't quite work for jessie out of the box.
Differential Revision:
https://phabricator.services.mozilla.com/D119124
23a0240a8382bf0eeb81c745c02a83dccc4570e5: Bug 1719205 - Upgrade mmdebstrap to latest version. r=firefox-build-system-reviewers,mhentges
Mike Hommey <mh+mozilla@glandium.org> - Mon, 05 Jul 2021 22:47:18 +0000 - rev 584807
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1719205 - Upgrade mmdebstrap to latest version. r=firefox-build-system-reviewers,mhentges
Differential Revision:
https://phabricator.services.mozilla.com/D119118
3e7432adb7651224922e19eb804b4e51cf2b46ab: Bug 1718156 - Avoid some configure tests creating the common virtualenv. r=firefox-build-system-reviewers,mhentges,andi
Mike Hommey <mh+mozilla@glandium.org> - Mon, 05 Jul 2021 22:33:56 +0000 - rev 584806
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1718156 - Avoid some configure tests creating the common virtualenv. r=firefox-build-system-reviewers,mhentges,andi
When running `mach python-test` on a clobbered tree, we create both the
python-test and common virtualenvs, but the former should be enough. The
latter is only created when running tests that use the BaseConfigureTest
class, when it indirectly includes init.configure, which makes the
configure sandbox run the virtualenv_python3 function, which ends up
initializing the common virtualenv. We only don't end up re-executing
that virtualenv python thanks to 6680ca0acc27 which was a workaround
that would allow any virtualenv in $objdir/_virtualenvs, while still
creating a virtualenv it won't use.
Tests now tell virtualenv_python3 to not use the normal virtualenv
manager, and remove the workaround.
Differential Revision:
https://phabricator.services.mozilla.com/D118775
ff3541181f8a6bb142a7f61e73396e47e3c78559: Bug 1717104: Update "pth" docs for virtualenvs r=ahal
Mitchell Hentges <mhentges@mozilla.com> - Mon, 05 Jul 2021 22:10:35 +0000 - rev 584805
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1717104: Update "pth" docs for virtualenvs r=ahal
The "pth" action no longer has a customizable filename, and the docs
should be updated accordingly.
Depends on D118609
Differential Revision:
https://phabricator.services.mozilla.com/D118610
4708c9518cf763d1066aec1f13da3a788920f1d8: Bug 1717104: Remove obsolete "set-variable" notes from virtualenv docs r=ahal
Mitchell Hentges <mhentges@mozilla.com> - Mon, 05 Jul 2021 22:10:35 +0000 - rev 584804
Push
38587 by dluca@mozilla.com at Tue, 06 Jul 2021 09:46:32 +0000
Bug 1717104: Remove obsolete "set-variable" notes from virtualenv docs r=ahal
Since
https://phabricator.services.mozilla.com/D115921, "set-variable"
is no longer a valid action. Looks like that patch forgot to remove the
associated docs
Differential Revision:
https://phabricator.services.mozilla.com/D118609