Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d556ff55 authored by Romain Hunault's avatar Romain Hunault 🚴🏻
Browse files

Merge branch 'update-attempt' into 'master'

Update attempt

See merge request e/apps/browser!23
parents 7c1ddb4a 94d300d7
Loading
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -14,37 +14,41 @@ Device model: (example: `SM-G960UZKABST`)
### Is this bug about the SystemWebView?
Yes/No

No support for SystemWebView installations is provided.
<!-- No support for SystemWebView installations is provided. -->

### Is the bug reproducible with latest version?

Do not report bugs which are not reproducible with latest version
<!-- Do not report bugs which are not reproducible with latest version. -->

### Can the bug be reproduced with corresponding Chromium version?

<!--
Please pick the same version of Chromium as Bromite from here: https://github.com/bromite/chromium/releases
If the bug is reproducible then it might be a configuration issue or an upstream bug. Upstream bugs can be reported on the [Chromium issue tracker](https://bugs.chromium.org/p/chromium/issues/list) and do not forget to read [Chromium project bug reporting guidelines](https://www.chromium.org/for-testers/bug-reporting-guidelines) first.
-->

### Is the bug a crash?

<!--
If yes then individuate and post the logcat dump (remove privacy sensitive information, if any), otherwise remove this section.
-->

### Describe the bug

Write here a clear and concise description of the bug.
<!-- Write here a clear and concise description of the bug. -->

### Steps to reproduce the bug

Steps to reproduce the behavior:
Steps to reproduce the bug:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
2. Click on '...'
3. Scroll down to '...'
4. See error

### Expected behavior

A clear and concise description of what you expected to happen.
<!-- A clear and concise description of what you expected to happen. -->

### Screenshots

If applicable, add screenshots to help explain your problem. Otherwise remove this section.
<!-- If applicable, add screenshots to help explain your problem. Otherwise remove this section. -->
+5 −5
Original line number Diff line number Diff line
@@ -6,18 +6,18 @@ about: Suggest a privacy-related idea for this project

### Is your feature request related to privacy?

Features that are not related to privacy are unlikely to be considered.
<!-- Features that are not related to privacy are not considered. -->

### Is there a patch available for this feature somewhere?

If yes then provide URL and license information.
<!-- If yes then provide URL and license information. -->

### Describe the solution you would like

A clear and concise description of what you want to happen.
<!-- A clear and concise description of what you want to happen.

Do not ask "I would like feature X which is available in browser Y"; such issues are closed immediately.
Do not ask "I would like feature X which is available in browser Y"; such issues are closed immediately. -->

### Describe alternatives you have considered

A clear and concise description of any alternative solutions or features you have considered.
<!-- A clear and concise description of any alternative solutions or features you have considered. -->
+34 −26
Original line number Diff line number Diff line
@@ -7,12 +7,14 @@ variables:
  CONTAINER_IMAGE: registry.gitlab.e.foundation:5000/$CI_PROJECT_PATH

build-docker:
  image: docker:git
  image: docker:19-git
  stage: prepare
  tags:
    - generic_privileged
  variables:
    DOCKER_DRIVER: overlay2
  services:
    - docker:18-dind
    - docker:19-dind
  script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.e.foundation:5000
    - docker pull $CONTAINER_IMAGE:latest || true
@@ -22,6 +24,8 @@ build-docker:
build-bromite-arm:
  image: $CONTAINER_IMAGE
  stage: build-arm
  tags:
    - build-browser
  artifacts:
    name: "$CI_JOB_NAME"
    paths:
@@ -31,29 +35,32 @@ build-bromite-arm:
    - if [ ! -f .gclient ] ; then echo ">> [$(date)] Init project" ; fetch --nohooks android ; fi
    - mkdir -p ${CI_PROJECT_DIR}/apks
    - cd src
    - git reset --hard && git clean -fd
    - git reset --hard && git clean -xfdf
    - if [ -n ${CHROMIUM_VERSION} ] ; then CHROMIUM_VERSION=$(head -n 1 ${CI_PROJECT_DIR}/CHANGELOG.md | sed 's/# \(.*\)/\1/') ; export CHROMIUM_VERSION ; fi
    - echo ">> [$(date)] Use Chromium v${CHROMIUM_VERSION}"
    - git fetch
    - git checkout ${CHROMIUM_VERSION}
    - git fetch --tags
    - git checkout tags/${CHROMIUM_VERSION}
    - echo ">> [$(date)] Install dependencies"
    - build/install-build-deps-android.sh
    - gclient sync --with_branch_heads --with_tags
    - echo ">> [$(date)] Apply Bromite and /e/ patches"
    - for file in $(cat ${CI_PROJECT_DIR}/build/patches_list.txt) ; do echo " -> Apply $file"; git apply ${CI_PROJECT_DIR}/build/patches/$file; echo " "; done
    - echo ">> [$(date)] Install dependancies"
    - build/install-build-deps-android.sh
    - mv ${CI_PROJECT_DIR}/build/patches/e/* ${CI_PROJECT_DIR}/build/patches/
    - PATCHES_LIST=$(cat ${CI_PROJECT_DIR}/build/bromite_patches_list.txt ${CI_PROJECT_DIR}/build/e_patches_list.txt)
    - for file in $PATCHES_LIST; do echo " -> Apply $file"; git apply ${CI_PROJECT_DIR}/build/patches/$file; echo " "; done
    - gclient runhooks
    - echo ">> [$(date)] Build for arm"
    - gn gen --args="$(cat ${CI_PROJECT_DIR}/build/GN_ARGS) target_cpu=\"arm\" " out/arm
    - autoninja -C out/arm chrome_modern_public_apk
    - autoninja -C out/arm system_webview_apk
    - cp out/arm/apks/ChromeModernPublic.apk ${CI_PROJECT_DIR}/apks/ChromeModernPublic_arm.apk
    - cp out/arm/apks/SystemWebView.apk ${CI_PROJECT_DIR}/apks/SystemWebView_arm.apk
    - gn gen --args="$(cat ${CI_PROJECT_DIR}/build/GN_ARGS) target_cpu=\"arm\" " out/${CI_JOB_ID}_arm
    - autoninja -C out/${CI_JOB_ID}_arm chrome_modern_public_apk system_webview_apk
    - cp out/${CI_JOB_ID}_arm/apks/ChromeModernPublic.apk ${CI_PROJECT_DIR}/apks/ChromeModernPublic_arm.apk
    - cp out/${CI_JOB_ID}_arm/apks/SystemWebView.apk ${CI_PROJECT_DIR}/apks/SystemWebView_arm.apk
    - echo ">> [$(date)] Clean"
    - git reset --hard && git clean -fd
    - git reset --hard && git clean -xfdf

build-bromite-arm64:
  image: $CONTAINER_IMAGE
  stage: build-arm64
  tags:
    - build-browser
  artifacts:
    name: "$CI_JOB_NAME"
    paths:
@@ -63,22 +70,23 @@ build-bromite-arm64:
    - if [ ! -f .gclient ] ; then echo ">> [$(date)] Init project" ; fetch --nohooks android ; fi
    - mkdir -p ${CI_PROJECT_DIR}/apks
    - cd src
    - git reset --hard && git clean -xfdf
    - if [ -n ${CHROMIUM_VERSION} ] ; then CHROMIUM_VERSION=$(head -n 1 ${CI_PROJECT_DIR}/CHANGELOG.md | sed 's/# \(.*\)/\1/') ; export CHROMIUM_VERSION ; fi
    - echo ">> [$(date)] Use Chromium v${CHROMIUM_VERSION}"
    - git fetch
    - git checkout ${CHROMIUM_VERSION}
    - git fetch --tags
    - git checkout tags/${CHROMIUM_VERSION}
    - echo ">> [$(date)] Install dependencies"
    - build/install-build-deps-android.sh
    - gclient sync --with_branch_heads --with_tags
    - echo ">> [$(date)] Apply Bromite and /e/ patches"
    - for file in $(cat ${CI_PROJECT_DIR}/build/patches_list.txt) ; do echo " -> Apply $file"; git apply ${CI_PROJECT_DIR}/build/patches/$file; echo " "; done
    - echo ">> [$(date)] Install dependancies"
    - build/install-build-deps-android.sh
    - mv ${CI_PROJECT_DIR}/build/patches/e/* ${CI_PROJECT_DIR}/build/patches/
    - PATCHES_LIST=$(cat ${CI_PROJECT_DIR}/build/bromite_patches_list.txt ${CI_PROJECT_DIR}/build/e_patches_list.txt)
    - for file in $PATCHES_LIST; do echo " -> Apply $file"; git apply -v ${CI_PROJECT_DIR}/build/patches/$file; echo " "; done
    - gclient runhooks
    - echo ">> [$(date)] Build for arm64"
    - gn gen --args="$(cat ${CI_PROJECT_DIR}/build/GN_ARGS) target_cpu=\"arm64\" " out/arm64
    - autoninja -C out/arm64 chrome_modern_public_apk
    - autoninja -C out/arm64 system_webview_apk
    - cp out/arm64/apks/ChromeModernPublic.apk ${CI_PROJECT_DIR}/apks/ChromeModernPublic_arm64.apk
    - cp out/arm64/apks/SystemWebView.apk ${CI_PROJECT_DIR}/apks/SystemWebView_arm64.apk
    - gn gen --args="$(cat ${CI_PROJECT_DIR}/build/GN_ARGS) target_cpu=\"arm64\" " out/${CI_JOB_ID}_arm64
    - autoninja -C out/${CI_JOB_ID}_arm64 chrome_modern_public_apk system_webview_apk
    - cp out/${CI_JOB_ID}_arm64/apks/ChromeModernPublic.apk ${CI_PROJECT_DIR}/apks/ChromeModernPublic_arm64.apk
    - cp out/${CI_JOB_ID}_arm64/apks/SystemWebView.apk ${CI_PROJECT_DIR}/apks/SystemWebView_arm64.apk
    - echo ">> [$(date)] Clean"
    - git reset --hard
    - git clean -fd
    - git reset --hard && git clean -xfdf
+67 −0
Original line number Diff line number Diff line
# 83.0.4103.93
* fix undesired replacement for search engines (fixes https://github.com/bromite/bromite/issues/595)
* fix resume flag not visible

# 83.0.4103.76
* fixed inverted Omnibox flag
* fixed LocationBarPhone/LocationBarTablet crash (fixes https://github.com/bromite/bromite/issues/565)

# 83.0.4103.53
* updated zh_CN translations
* mitigation for LocationBarPhone crash (https://github.com/bromite/bromite/issues/565)

# 83.0.4103.46
* add zh_CN missing translations (fixes https://github.com/bromite/bromite/issues/546)
* change default mode for WebRTC (fixes https://github.com/bromite/bromite/issues/553)
* add flag to allow screenshots of incognito tabs (fixes https://github.com/bromite/bromite/issues/551)
* reintroduced patches for disabling AImageReader
* fixed DevTools issue with domain substitution (fixes https://github.com/bromite/bromite/issues/526)
* drop patch to disable QUIC by default
* drop patch for DoH minimum timeout (upstream also implemented it)
* dropped patch for removal of support of CCT dynamic modules (upstream also removed it)
* removed upstream patch for SD card not found issue (upstream merged it)

# 81.0.4044.127
* fix always-incognito crashes (https://github.com/bromite/bromite/issues/135 and https://github.com/bromite/bromite/pull/529)
* improved crash uploader mock by calling done callback

# 81.0.4044.106
* remove option to add NTP as homepage (fixes https://github.com/bromite/bromite/issues/517)

# 81.0.4044.97
* disable browser auto-login by default
* show download prompt again

# 81.0.4044.83

# 81.0.4044.76

# 81.0.4044.70
* backport surface control fix (fixes https://github.com/bromite/bromite/issues/445)

# 81.0.4044.63
* use upstream fix for SD card not found issue (fixes https://github.com/bromite/bromite/issues/485)
* do not compile QR code sharing
* remove obsolete patch for GCM experiment status
* drop 2 patches for AImageReader crash fix (upstream has the same revert patches)

# 80.0.3987.118
* disable AImageReader for all ARM64 devices (fixes https://github.com/bromite/bromite/issues/497)
* use upstream possible workaround for SD card not found issue (fixes https://github.com/bromite/bromite/issues/485)

# 80.0.3987.109
* restored GPU workaround for the ARM/ARM64 AImageReader crash (https://github.com/bromite/bromite/issues/445)

# 80.0.3987.95
* enable user-agent freeze (fixes https://github.com/bromite/bromite/issues/483)
* fix issue with AMP (fixes https://github.com/bromite/bromite/issues/488)
* fix crash on home page (fixes https://github.com/bromite/bromite/issues/484)

# 80.0.3987.78
* removed ungoogled-chromium patch for non-remote developer tools resources
* removed patch for 64-bit webview (it is now a default from upstream)
* removed patch for enabling dark mode menu entry by default (it is now a default from upstream)
* removed patch for enabling download rename by default (it is now a default from upstream)
* removed some redundant Iridium safe browsing patches

# 79.0.3945.139
* remove patch to automatically disable video decoding acceleration on Android 10+ and arm64
* fix referral headers bug in non-DoH requests (fixes https://github.com/bromite/bromite/issues/470)
@@ -207,6 +273,7 @@
* use adblock engine also in SystemWebView
* add back uBlock Origin and EasyList filters
* added Fanboy's Annoyance List
* remove AdGuard filters

# 72.0.3626.119
* use AdGuard filters

FAQ.md

0 → 100644
+73 −0
Original line number Diff line number Diff line
# Frequently Asked Questions

## Does Google Sync/Translate/Data saver work?
No.
This is not a limitation of Bromite but of all Chromium-based projects in general, as general public is not allowed to use Google's APIs for free unless when using Chrome.

Additionally, these features would not be privacy-friendly.

## Does Bromite require root?
No.

## Is Bromite de-googled?

Yes, although this has not been verified (and hardly can be) under all situations; if you were to find connections to cloud-based services please report them via the issue tracker.
Bromite uses [ungoogled-chromium's python script](https://github.com/Eloston/ungoogled-chromium/blob/master/utils/domain_substitution.py) to disable URLs in the codebase since version `78.0.3904.93`.

Projects which follow a strict approach on this are [Iridium](https://iridiumbrowser.de/) and [Inox patchset](https://github.com/gcarq/inox-patchset).

## Does Bromite support DRM media?

Yes, in order to play protected/encrypted media content the browser will use Android's DRM media framework to automatically negotiate access (same as Chromium).
This means for example that requests to Android license servers will be performed (`www.googleapis.com`), see https://w3c.github.io/encrypted-media/#direct-individualization
To disable this functionality you should disable protected content playback from Site settings -> Multimedia.

## What is the SystemWebView?
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.

See also [the wiki page](https://github.com/bromite/bromite/wiki/Installing-SystemWebView) for community-contributed installation instructions.

Ad-blocking was present and always enabled in the SystemWebView from version `72.0.3626.120` till version `77.0.3865.104`, when it stopped working due to [upstream NetworkService changes](https://docs.google.com/document/d/1TZEuPvr2KAbP4_TZpuuwtEEArQsyAkc2HDu68l66YwU/edit?ts=598244df#heading=h.ougoi5i6508y).

## How to enable DNS-over-HTTPS?

See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-HTTPS).

## Can you add HTTPS everywhere?
No.
We cannot add add-ons to Bromite (merely some features).

## Is Bromite on Play Store?
No, and this is unlikely to change. Many limitations apply for submissions there, including which ads are allowed to be blocked.

Bromite favors user freedom in software choice: the device is yours so you get to choose which software to run on it, end of the story.

## Is Bromite on F-Droid?
It is not on the official F-Droid repository and there are no (more) plans to submit it.

You can use F-Droid client to install and receive updates via [the official Bromite F-Droid repository](https://www.bromite.org/fdroid).

## Does Bromite support WebRTC?
Yes, since version 69. While the desktop version of Chromium has an option to disable it (video/audio site settings), the Android version cannot.

The WebRTC functionality has always been using safe defaults to prevent leaks (disabled multiple routes and non-proxied UDP).

## Using Bromite will favour the monopoly of the Chromium/Blink engine, why do you develop and maintain Bromite?
In short, to show what a Chromium-based engine could do **for the user** if the user experience and needs were the main focus of modern browser design.

For an Android browser using an alternative engine see [Fennec F-Droid](https://f-droid.org/en/packages/org.mozilla.fennec_fdroid/).

## Does Bromite support extensions?
No; Bromite will support extensions only if upstream (Chromium) does, or similarly another project maintains the patch and functionality.

## Why do push notifications not work on this website?

The [Chromium Blink engine](https://www.chromium.org/blink) uses [GCM](https://en.wikipedia.org/wiki/Google_Cloud_Messaging) to deliver messages
when websites use the [Push API](https://w3c.github.io/push-api/); this will not work in Bromite because cloud integrations are disabled (GCM in this case).

[ServiceWorker notifications](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification) do work instead since they use
[android.app.Notification](https://developer.android.com/guide/topics/ui/notifiers/notifications).

## Can PWAs be installed?

PWAs are only supported as home shortcuts; WebAPKs will not work because they are generated server-side on googleapis.com (which is not allowed in Bromite).
Loading