Turns out Ubuntu 20.04 has both `libenchant` and `libenchant-2`.
To keep compiling against `libenchant` everywhere it exists,
we change the `aptIfElse` helper method to pick one or another.
This patch:
* fixes bash script bug: at least in bash 5, assignment to a **local**
variable overwrites the `$?` code, so the following condition is never true.
* adds the `libenchant-2-dev` library
Pretty diff: ff6e976044
The 2e331715ff introduced
universal webkit build and tried re-using archive deduping technique
across all our regular JHBuild-based builds.
However, this turns out to be too aggressive and doesn't work. At least
on Ubuntu 18.04:
- `minibrowser-gtk/minibrowser` is identical to
`minibrowser-wpe/minibrowser`
- WPE gets symlinked into GTK
- Thus we now always start headed
This patch:
* removes "deterministic" argument from `rdfind` on Ubuntu 18.04.
`rdfind` is a new addition, but it's nice to have since it saves 10%
of the archive size.
* drops `stdc++fs` from dependencies. This doesn't seem to be necessary
for JHBuild but breaks universal build.
Pretty diff: 256392e8c4
Turns out default GnuTLS on Ubuntu 18.04 is 3.5.18, so we should
use OpenSSL.
The glib-networking backend selector condition is thus incorrectly
compares version triplets.
* `clip` option is always passed from the client code
* with this change, we can no longer capture screenshot of a blinking
caret; the browser-side API doesn't have this capability.
This roll:
- NetworkObserver now uses the `remote's` ChannelEventSink layer to
subscribe to redirects.
- Wheel events now must be dispatched from browser process.
- There's a new API for console messages
- The old methods to wait for search service and addon manager no longer
work; speculatively remove them since neither `remote` nor
`marionette` have anything like this.
Native manual merge: 9e6fcfd868
This patch:
- Uses some folder in `CWD` instead of `/tmp` on win32 to store
builds
- Drops usage of `find`, `zip` and `unzip` posix tools. Instead, rely
on `adm-zip` package.
WebKit switched to workspace builds by default upstream in c67ee46115 and Playwright.app project (forked from MiniBrowser.app xcode project) was not a part of the workspace. This PR:
* Adds Tools/Playwright project to the WebKit workspace;
* Adds WebKit.framework to the list of dependencies of Playwright.app (I managed to successfully build without this modification but decided to added to be on the safe side as that was done upstream too);
* Removes `--no-use-workspace` in order to use workspace build mode which is the default upstream.
Pretty-diff: 75f1e79447
Currently, Mac WebKit builds are failing in CI. It seems this is a regression in upstream WebKit as I'm able to reproduce it in my local environment.
The error is the following:
```
usr/bin/codesign --force --sign - --timestamp\=none --preserve-metadata\=identifier,entitlements,flags --generate-entitlement-der /Users/playwright/webkit/WebKitBuild/Release/InjectedBundleTestWebKitAPI.bundle/Contents/Resources/WebKit.framework
/Users/playwright/webkit/WebKitBuild/Release/InjectedBundleTestWebKitAPI.bundle/Contents/Resources/WebKit.framework: replacing existing signature
/Users/playwright/webkit/WebKitBuild/Release/InjectedBundleTestWebKitAPI.bundle/Contents/Resources/WebKit.framework: unsealed contents present in the root directory of an embedded framework
Command CodeSign failed with a nonzero exit code
```
Bisecting the regression it seems the build started failing on [r295496](https://trac.webkit.org/changeset/295496/webkit)
This changeset also introduced a new flag, _--no-use-workspace__, which allows to build not using WebKit.xcworkspace (I understand this is how builds were done before this changeset). Building with _--no-use-workspace_ fixes builds for Mac.
I skipped the Windows specific files this time. I added an extra commit to fix dependencies update in Ubuntu 18.04.
All changes in this PR:
chore(webkit): bootstrap build #1665
[GLIB] Fix build error after r295446
[JHBuild] Fix error use OpenSSL backend when gnutls available in the …
WebSocketTaskCurl.cpp has been implemented upstream since last roll. We now pass ignoreCertificateErrors to it similar to other platforms. This should fix Curl compilation errors on windows.
Pretty-diff: yury-s/WebKit@48cd095
> lgtm % null-check for the docshell
The code is inside following if condition
```
if (auto* browserChild = BrowserChild::GetFrom(root->GetDocShell())) {
```
which ensures that the doc shell is not null.
This patch:
- fixes firefox-beta archiving that requires 2 extra env variables
- attempts to use windows paths to specify `MOZ_FETCHES_DIR` on
Windows to point to the toolchains folder.
This is a follow-up to a7a7644beb
that started bootstrapping toolchains from `master` branch.
Now, we have to explicitly use these toolchains when building
Firefox.
It turns out that we can only bootstrap Firefox toolchains
from latest commits.
So in case of a full build, we have to fetch latest commit
from `master`, bootstrap from it, and then build the commit we'd like.
This PR fixes the following error message in WPE:
```
[pid=506430][err] (MiniBrowser:506435): GLib-GObject-CRITICAL **: 11:47:23.538: g_object_new_is_valid_property: object class 'WebKitWebContext' has no property named 'process-swap-on-cross-site-navigation-enabled' +0ms
```
Our changes to WPE port that added support for the parameter were removed in 5a3fae4c5a as PSON is enabled by default in WPE (see https://bugs.webkit.org/show_bug.cgi?id=240052) and we don't need to set this explicitly in our fork.
Pretty diff: fc28e40f36
OverridenGeolocationProvider can be destroyed after BrowserContext. Since the provider is owned by WebGeolocationManagerProxy we now store weak pointer to it in the browser context.
Refs: #14081