Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESR 91 changes #157

Draft
wants to merge 75 commits into
base: master
Choose a base branch
from
Draft

ESR 91 changes #157

wants to merge 75 commits into from

Conversation

llewelld
Copy link
Member

@llewelld llewelld commented Oct 3, 2023

This draft PR is for accumulating changes required to support ESR 91.

On this branch the submodule points to a mirror with changes applied directly on top. These changes will need to be turned into patches in this repo before anything is merged.

Updates the build steps in the spec file for use with 91.9.0.
Rather than disablying marionette we now disable webdriver, which should
disable marionette as a consquence.
IPDL method annotation syntax has changed. This updates the EmbedLite
IPDL files to reflect the change. See the upstream but and changeset:

https://bugzilla.mozilla.org/show_bug.cgi?id=1689147
https://phabricator.services.mozilla.com/D103368
Update the gecko-dev submodule to incorporate changes needed to build
ESR 91.
The include used to be added from the following file, but this no longer
seems to be included:

gecko-dev/media/webrtc/trunk/peerconnection_client.target.mk

To work around this we add it in to the CFLAGS export. There's probably
a much better place to put it, but this seems to do the trick for now.
Incorporates new changes that should eventually be patched in.
Without this building swgl fails with the following error:

during RTL pass: expand
src/glsl.h: In function ‘glsl::vec2_scalar glsl::sign(glsl::vec2_scalar)’:
src/glsl.h:662:39: internal compiler error: Segmentation fault
 float sign(float a) { return copysignf(1.0f, a); }
                               ~~~~~~~~~^~~~~~~~~

It's not clear what the exact issue is here, but dropping the
optimisation allows the build to pass. If this is the only way, it would
be good to improve this by having the change only apply to the one
component.
Renames nsIdleService and friends to nsUserIdleService equivalents. This
is to align with upstream changes from Bugzilla bug 1651165. See revision:

https://phabricator.services.mozilla.com/D83413
The nsDataHashtable class has been deprecated in favour of nsTHashMap.
This change ensures this is reflected in the EmbedLite code.

See upstream bug 1634281 and the associated changeset:

https://bugzilla.mozilla.org/show_bug.cgi?id=1634281

https://phabricator.services.mozilla.com/D106120
Since use of C++17 was introduced the non-standard MOZ_MUST_USE has now
been replaced with [[nodiscard]]. This ensures EmbedLIte follows the
upstream changes.

See upstream Bugzilla bug 1691889 and related changeset:

https://bugzilla.mozilla.org/show_bug.cgi?id=1691889

https://phabricator.services.mozilla.com/D107355
Removes the use of ChromeOuterWindowID() from the BrowserChildHelper
class, since it's no longer used.

See upstream Bugzilla bug 1670134 and related changeset:

https://bugzilla.mozilla.org/show_bug.cgi?id=1670134

https://phabricator.services.mozilla.com/D93043
Incorporates new changes that should eventually be patched in.
Add the nsIThread.h header to nsClipboard so that nsIThread is
available.
Replaces all uses of NS_LITERAL_STRING to match upstream. See:

https://bugzilla.mozilla.org/show_bug.cgi?id=1648010
Update the gecko-dev submodule to incorporate changes needed to build
ESR 91.
GLScreenBuffer has been removed in favour of SwapChain. These changes
get the build to compile, but probably won't be enough to get it to
render.

See the upstream changes:

https://phabricator.services.mozilla.com/D75055

https://bugzilla.mozilla.org/show_bug.cgi?id=1632249
Changes that should have been included in
55dde88: "Use a message router for
primary child process channels"
Changes that should have been included in
6ea98da: "Support the
GetFrameUniformity API in content processes".
Incorporates new changes that should eventually be patched in.
Bug 1683226, diff D100100, turns IMEState::Enabled into an enum class.
Bug 1683226, diff D100123, removes the Plugin value. This cascades the
changes into the EmbedLite code.

https://bugzilla.mozilla.org/show_bug.cgi?id=1683226

https://phabricator.services.mozilla.com/D100100

https://phabricator.services.mozilla.com/D100123
But 1599579, diff D80254 adds a BrowsingContextGroup parameter to the
BrowsingContext::CreateDetached() method. This ensures the paramter is
also added to the EmbedLite use of this method.

https://bugzilla.mozilla.org/show_bug.cgi?id=1599579

https://phabricator.services.mozilla.com/D80254
The nsFocusManager::GenerateFocusActionId() method needed to set the
aActionId parameter isn't part of the libxul public API, so we need to
apply it inside the library.

This change therefore hides the parameter from the public API and sets
this value internally instead.

This change can be combined with commit
21d6b78 "Add aActionId parameter to
SetIsActive".
Updates the version in the spec file to the correct version 91.9.1. Also
switches back to assuming libclang.so.10 is in use, rather than
libclang.so.13, for the tooling.
Incorporates new changes that should eventually be patched in.
Local builds with only a single process, as opposed to multiple
simultaneous processes, have exhibited no tendendancy to stall. This
change therefore switches to using only one build process in the hope of
increasing build robustness, not just locally, but also on OBS.

This is only an interim fix until the underlying cause has been
resolved.
@llewelld llewelld added the esr91 Changes required to support ESR 91 label Oct 3, 2023
@llewelld llewelld added this to the esr91 milestone Oct 3, 2023
Can be combined with commit cd1e8e8
"Remove all AddBoolVarCache usage".  # Please enter the commit message
for your changes. Lines starting
llewelld and others added 7 commits October 17, 2023 23:29
The path has to be set to my fork in order for the submodule changes to
be available. Hopefully this can be changed back in future.
Incorporates new changes that should eventually be patched in.
Incorporates new changes that should eventually be patched in.
llewelld and others added 5 commits November 11, 2023 23:16
Disable the patch "Fix 32-bit builds" from commit
685d901 so that it can be applied
directly in the submodule.
Incorporates new changes that should eventually be patched in.
Without real timestamp (non-zero) values mozilla::layers::Axis reports
always zero velocity. This will prevent mozilla::layers::AsyncPanZoomController
to handle end of panning (AsyncPanZoomController::HandleEndOfPan) so that
fling state would get triggered.

Embedlite TimeStamps are now initialized properly.

Signed-off-by: Raine Makelainen <raine.makelainen@jolla.com>
Incorporates new changes that should eventually be patched in.
The System.appinfo JavaScript class wasn't being made available due to
the change in Bug 1464542:

https://bugzilla.mozilla.org/show_bug.cgi?id=1464542

In particular the changes in the following diff:

https://bugzilla.mozilla.org/show_bug.cgi?id=1464542#c8

This shifts the required annotations over to the EmbedLite version of
appinfo.
@rainemak
Copy link
Member

Could you point this to the sailfishos:sailfishos-esr91 ? Or how do you see this?

Sets the keyword.enabled preference to default to true.
Incorporates new changes that should eventually be patched in.
The VarChache has been removed so all instances of AddBoolVarCache() had
been removed and turned into fixed boolean values. These changes turn
them into static prefs so that they are configurable again. Use of
static preferences ensures that we can still have efficient access.
Incorporates new changes that should eventually be patched in.
Introduces a new "hidden" flag on windows through to the EmbedLite API.
When a window is created purely for holding the cloned content needed
for printing, expoose the "isForPrinting" state through the "hidden"
flag.

This is useful to allow the front-end to hide the print window, which is
needed internally but which the user doesn't need to see.
In order to set the Sec-Fetch-* request headers properly the engine
needs to know whether a URL load request was triggered by an external
application by setting the LOAD_FLAGS_FROM_EXTERNAL flag.

These chnages pass the value through from the front-end to support this.
Incorporates new changes that should eventually be patched in.
Upstream changes mean the session history is no longer initialised in
the usual execution of EmbedLite. This adds code to ensure that it does
get initialised.

The relevant upstream change is Mozilla Bug 1673617, changeset D100348:

https://bugzilla.mozilla.org/show_bug.cgi?id=1673617

https://phabricator.services.mozilla.com/D100348
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
esr91 Changes required to support ESR 91
Projects
None yet
3 participants