Compare commits

..
Author SHA1 Message Date
csagan5 ae8dce366b Release 69.0.3497.113 2018-09-30 12:11:13 +02:00
csagan5 750cafb50c Release 69.0.3497.109 2018-09-25 22:12:08 +02:00
csagan5 5cd90e8326 Updated README 2018-09-23 09:20:51 +02:00
94 changed files with 612 additions and 515 deletions
+5
View File
@@ -1,3 +1,8 @@
# 69.0.3497.113
* disabled DNS-over-HTTPS (DoH) flag, not working since 69.0.3497.73 (see https://github.com/bromite/bromite/issues/139)
# 69.0.3497.109
# 69.0.3497.102
* ungoogled-chromium: disable network time tracker
* ungoogled-chromium: remove third-party/analytics
+13 -11
View File
@@ -8,8 +8,6 @@ Bromite is [Chromium](https://www.chromium.org/Home) plus some patches for ad bl
Bromite is only available for Android v4.1 and above.
See [open issues](https://github.com/bromite/bromite/issues) for the development in progress.
<img src="https://www.bromite.org/bromite_bromite_gh_downloads.svg" alt="downloads on Github" title="downloads on Github" />
# Goals
@@ -35,6 +33,8 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
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.
@@ -47,14 +47,16 @@ See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-H
## Can you add dark mode/some cool themes?
No.
Bromite is about adblocking and privacy.
Bromite is about privacy and adblocking.
## Can you add HTTPS everywhere?
No.
We cannot add add-ons to Bromite (merely some features) and anyway HTTPS everywhere in particular is too invasive to be easily maintained across new releases.
We cannot add add-ons to Bromite (merely some features).
## Is Bromite on Play Store?
No, and this is unlikely to change. The Play Store would not allow total freedom on the adblocking choice, amongst other limitations.
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.
@@ -70,8 +72,9 @@ Yes, since version 69. While the desktop version of Chromium has an option to di
* remove click-tracking and AMP from search results
* DNS-over-HTTPS support via Google/CloudFlare servers
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines
* chrome flags to hide NTP tiles, disable custom intents and clear session on exit
* chrome flags to disable custom intents and clear session on exit
* always-incognito mode
* completely removed safe browsing and other privacy-unfriendly features
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
* canvas, audio and other anti-fingerprinting mitigations
@@ -85,14 +88,14 @@ You can inspect all functionality/privacy changes by reading the patches: https:
# Releases
All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically select the one apt for your device.
All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically select the one apt for your device (or none otherwise).
Each tag corresponds to a Chromium Stable release tag.
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDKs versions 16 and 21
Additionally, [SystemWebView](https://www.bromite.org/system_web_view) and the [vanilla Chromium](https://www.bromite.org/chromium) builds are provided.
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDK versions 16 and 21; [Bromite SystemWebView](https://www.bromite.org/system_web_view) is provided as well (SDK21+).
For every Bromite build you can always find a matching [vanilla Chromium](https://www.bromite.org/chromium) build which is used for example to verify which issues are specific to Bromite or not.
The official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
All official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
## Integrity and authenticity
@@ -102,7 +105,6 @@ $ sha256sum --check brm_68.0.3440.54.sha256.txt
arm64_SystemWebView.apk: OK
arm64_ChromePublic.apk: OK
arm64_ChromeModernPublic.apk: OK
arm64_MonochromePublic.apk: OK
```
If you prefer an UI-based tool, you might want to look into [GtkHash](https://github.com/tristanheaven/gtkhash).
+499 -127
View File
File diff suppressed because it is too large Load Diff
@@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
}
--
2.7.4
2.11.0
@@ -22,5 +22,5 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
bool ShouldDelayRemoteNTP(const GURL& search_provider_url, Profile* profile) {
--
2.7.4
2.11.0
@@ -41,5 +41,5 @@ diff --git a/services/device/battery/battery_status_service.cc b/services/device
return callback_list_.Add(callback);
}
--
2.7.4
2.11.0
@@ -73,5 +73,5 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
void BatteryManager::RegisterWithDispatcher() {
--
2.7.4
2.11.0
@@ -40,5 +40,5 @@ diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gc
// TODO(https://crbug.com/808498): Re-add data use measurement once
// SimpleURLLoader supports it.
--
2.7.4
2.11.0
@@ -60,5 +60,5 @@ diff --git a/components/component_updater/configurator_impl.h b/components/compo
const int initial_delay_;
--
2.7.4
2.11.0
@@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
--
2.7.4
2.11.0
+1 -1
View File
@@ -42,5 +42,5 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
#endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
} // namespace
--
2.7.4
2.11.0
@@ -31,5 +31,5 @@ diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signi
// Don't show if the profile is an incognito.
if (profile->IsOffTheRecord())
--
2.7.4
2.11.0
@@ -30,5 +30,5 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte
const FormatUrlType kFormatUrlOmitDefaults =
--
2.7.4
2.11.0
@@ -225,5 +225,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
// show packaged apps and platform apps because there are some pieces of
// functionality that are only available in chrome://extensions/ but which
--
2.7.4
2.11.0
@@ -19,5 +19,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
#if defined(OS_ANDROID)
const base::Feature kAllowAutoplayUnmutedInWebappManifestScope{
--
2.7.4
2.11.0
@@ -23,5 +23,5 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp
registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
PrefRegistry::NO_REGISTRATION_FLAGS);
--
2.7.4
2.11.0
@@ -27,5 +27,5 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
const base::Feature kForeignSessionsSuggestionsFeature{
"NTPForeignSessionsSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
--
2.7.4
2.11.0
@@ -59,5 +59,5 @@ diff --git a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css b/th
body,
table,
--
2.7.4
2.11.0
@@ -24,5 +24,5 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
// Dictionaries to keep track of default tasks in the file browser.
--
2.7.4
2.11.0
+1 -1
View File
@@ -51,5 +51,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat
/**
--
2.7.4
2.11.0
@@ -78,5 +78,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan((view1) -> {
--
2.7.4
2.11.0
@@ -244,5 +244,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
return TemplateUrlService.getInstance().isDefaultSearchManaged();
}
--
2.7.4
2.11.0
@@ -28,5 +28,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
}
--
2.7.4
2.11.0
@@ -33,7 +33,7 @@ diff --git a/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png b/c
deleted file mode 100644
index 058b50b84dd216d983e9dea2ea264b39773ac318..0000000000000000000000000000000000000000
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
index 8165826..346cdce 100644
index 81658269058c..346cdce944c6 100644
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
@@ -73,11 +73,11 @@
@@ -51,7 +51,7 @@ index 8165826..346cdce 100644
<!-- TODO(finnur): Move this over to the new Usage screen, once it exists. -->
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
index bf12a5c..e3cc3d1 100644
index bf12a5cab122..e3cc3d118294 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
@@ -89,7 +89,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
@@ -97,5 +97,5 @@ index bf12a5c..e3cc3d1 100644
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
websitePrefs.add(SiteSettingsCategory.Type.CLIPBOARD);
--
2.7.4
2.11.0
@@ -20,5 +20,5 @@ diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/t
progress_callback_ = progress_callback;
--
2.7.4
2.11.0
@@ -19,5 +19,5 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
</LinearLayout>
</LinearLayout>
--
2.7.4
2.11.0
@@ -23,5 +23,5 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p
prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref));
const base::TimeDelta time_since_last_download =
--
2.7.4
2.11.0
@@ -52,5 +52,5 @@ diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/
AccountInfo SigninManagerBase::GetAuthenticatedAccountInfo() const {
--
2.7.4
2.11.0
@@ -52,5 +52,5 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
SetupMultipart(post_data.get(), compressed_log,
upload_done_data.incoming_rtp_dump,
--
2.7.4
2.11.0
@@ -132,5 +132,5 @@ diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h
extern const int kFinancialPort;
--
2.7.4
2.11.0
@@ -52,5 +52,5 @@ diff --git a/components/translate/core/browser/translate_script.cc b/components/
// Append embedded translate.js and a remote element library.
base::StringPiece str =
--
2.7.4
2.11.0
@@ -31,5 +31,5 @@ diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/brows
net::DefineNetworkTrafficAnnotation("profile_avatar", R"(
semantics {
--
2.7.4
2.11.0
@@ -24,5 +24,5 @@ diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intra
DCHECK(simple_loaders_.empty() && resulting_origins_.empty());
--
2.7.4
2.11.0
@@ -355,5 +355,5 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc
}
--
2.7.4
2.11.0
@@ -35,5 +35,5 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
if (checkin_request_.get() || !device_checkin_info_.accounts_set)
return;
--
2.7.4
2.11.0
@@ -117,5 +117,5 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
// static
--
2.7.4
2.11.0
@@ -672,5 +672,5 @@ diff --git a/components/domain_reliability/uploader.cc b/components/domain_relia
UploadResult result;
result.status = UploadResult::SUCCESS;
--
2.7.4
2.11.0
@@ -23,5 +23,5 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ
NetworkTimeTracker::FetchBehavior NetworkTimeTracker::GetFetchBehavior() const {
--
2.7.4
2.11.0
@@ -18,5 +18,5 @@ diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_r
Android, and Roboto-Medium is not used on Android. All 6 weights of
Roboto are available on Chrome OS.-->
--
2.7.4
2.11.0
@@ -104,5 +104,5 @@ diff --git a/third_party/blink/renderer/devtools/front_end/worker_app.json b/thi
{ "name": "timeline" },
{ "name": "timeline_model" }
--
2.7.4
2.11.0
@@ -19,5 +19,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
/**
--
2.7.4
2.11.0
@@ -711,5 +711,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
--
2.7.4
2.11.0
@@ -710,5 +710,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
--
2.7.4
2.11.0
@@ -723,5 +723,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
--
2.7.4
2.11.0
+1 -1
View File
@@ -722,5 +722,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
--
2.7.4
2.11.0
@@ -20,5 +20,5 @@ diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/p
render_frame_host, canonical_requesting_origin.GetOrigin(),
embedding_origin.GetOrigin());
--
2.7.4
2.11.0
@@ -105,5 +105,5 @@ diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [ ":config" ]
--
2.7.4
2.11.0
@@ -102,5 +102,5 @@ new file mode 100644
+
+#endif // video_bg_play_h
--
2.7.4
2.11.0
@@ -48,5 +48,5 @@ diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl
void EnabledAudioTracksChanged(
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds)
--
2.7.4
2.11.0
@@ -24,5 +24,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext
// security (only access to BROWSABLE activities).
intent.addCategory(Intent.CATEGORY_BROWSABLE);
--
2.7.4
2.11.0
+1 -1
View File
@@ -64,5 +64,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
Close all tabs
</message>
--
2.7.4
2.11.0
+1 -1
View File
@@ -66,5 +66,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|| id == R.id.open_history_menu_id) {
return true;
--
2.7.4
2.11.0
@@ -203,5 +203,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
Desktop site
</message>
--
2.7.4
2.11.0
+1 -1
View File
@@ -675,5 +675,5 @@ new file mode 100644
+
+#endif // NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
--
2.7.4
2.11.0
+1 -1
View File
@@ -106,5 +106,5 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
android_info_str.c_str()
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
--
2.7.4
2.11.0
@@ -52,5 +52,5 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
// TODO(hongchan): Due to the incompatible constructor between
// AudioDestinationNode and DefaultAudioDestinationNode, casting directly from
--
2.7.4
2.11.0
@@ -250,5 +250,5 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
// Methods overridden by all sub-classes
--
2.7.4
2.11.0
@@ -171,5 +171,5 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
void CanvasRenderingContext2D::DrawTextInternal(
--
2.7.4
2.11.0
@@ -20,5 +20,5 @@ diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_conte
cdms->push_back(
--
2.7.4
2.11.0
@@ -19,5 +19,5 @@ diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profile
chrome_browser_net::Predictor* ProfileIOData::GetPredictor() {
--
2.7.4
2.11.0
@@ -1,282 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 28 Apr 2018 08:30:26 +0200
Subject: Add a flag for DNS-over-HTTPS
Allow selection between Google and Cloudflare endpoints.
Serve DoH requests with maximum priority, remove traffic annotation.
Reduce HTTP headers in DoH requests to bare minimum.
See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt
---
chrome/browser/about_flags.cc | 12 +++++++++
chrome/browser/flag_descriptions.cc | 3 +++
chrome/browser/flag_descriptions.h | 3 +++
.../browser/net/system_network_context_manager.cc | 12 +++++----
.../common/network_features.cc | 5 ++--
.../common/network_features.h | 5 ++--
.../common/network_switch_list.h | 4 +++
net/base/load_flags_list.h | 6 +++++
net/dns/dns_transaction.cc | 29 +++-------------------
net/url_request/url_request_http_job.cc | 26 +++++++++++--------
10 files changed, 61 insertions(+), 44 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -421,6 +421,12 @@ const FeatureEntry::Choice kChromeHomeSwipeLogicChoices[] = {
switches::kChromeHomeSwipeLogicType, "velocity"},
};
+const FeatureEntry::Choice kDnsOverHttpsChoices[] = {
+ {features::kDnsOverHttpsChoiceDefault, "", ""},
+ {features::kDnsOverHttpsChoiceGoogle, switches::kDnsOverHttpsServer, "https://dns.google.com/experimental"},
+ {features::kDnsOverHttpsChoiceCloudflare, switches::kDnsOverHttpsServer, "https://1.1.1.1/dns-query"},
+};
+
#endif // OS_ANDROID
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
@@ -3517,6 +3523,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kAsyncDns)},
#endif // defined(OS_ANDROID)
+#if defined(OS_ANDROID)
+ {"enable-dns-over-https", flag_descriptions::kDnsOverHttpsName,
+ flag_descriptions::kDnsOverHttpsDescription, kOsAndroid,
+ MULTI_VALUE_TYPE(kDnsOverHttpsChoices)},
+#endif // defined(OS_ANDROID)
+
{"enable-overflow-icons-for-media-controls",
flag_descriptions::kOverflowIconsForMediaControlsName,
flag_descriptions::kOverflowIconsForMediaControlsDescription, kOsAll,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2112,6 +2112,9 @@ const char kAndroidPaymentAppsDescription[] =
const char kAsyncDnsName[] = "Async DNS resolver";
const char kAsyncDnsDescription[] = "Enables the built-in DNS resolver.";
+const char kDnsOverHttpsName[] = "DNS over HTTPS";
+const char kDnsOverHttpsDescription[] = "Enables DNS-over-HTTPS (experimental).";
+
const char kAutofillAccessoryViewName[] =
"Autofill suggestions as keyboard accessory view";
const char kAutofillAccessoryViewDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1284,6 +1284,9 @@ extern const char kAppNotificationStatusMessagingDescription[];
extern const char kAsyncDnsName[];
extern const char kAsyncDnsDescription[];
+extern const char kDnsOverHttpsName[];
+extern const char kDnsOverHttpsDescription[];
+
extern const char kAutofillAccessoryViewName[];
extern const char kAutofillAccessoryViewDescription[];
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -23,6 +23,7 @@
#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "components/network_session_configurator/common/network_features.h"
+#include "components/network_session_configurator/common/network_switches.h"
#include "components/policy/core/common/policy_namespace.h"
#include "components/policy/core/common/policy_service.h"
#include "components/policy/policy_constants.h"
@@ -370,11 +371,12 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
std::make_unique<base::ListValue>();
std::unique_ptr<base::ListValue> default_doh_server_methods =
std::make_unique<base::ListValue>();
- if (base::FeatureList::IsEnabled(features::kDnsOverHttps)) {
- base::Value server(variations::GetVariationParamValueByFeature(
- features::kDnsOverHttps, "server"));
- base::Value method(variations::GetVariationParamValueByFeature(
- features::kDnsOverHttps, "method"));
+ std::string dnsOverHttpsServer =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kDnsOverHttpsServer);
+ if (!dnsOverHttpsServer.empty()) {
+ base::Value server(dnsOverHttpsServer);
+ base::Value method("POST");
if (!server.GetString().empty()) {
default_doh_servers->GetList().push_back(std::move(server));
default_doh_server_methods->GetList().push_back(std::move(method));
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc
--- a/components/network_session_configurator/common/network_features.cc
+++ b/components/network_session_configurator/common/network_features.cc
@@ -14,7 +14,8 @@ const base::Feature kTokenBinding{"token-binding",
// TODO(nharper): Disable kChannelID on all platforms in M69.
const base::Feature kChannelID{"channel-id", base::FEATURE_ENABLED_BY_DEFAULT};
-const base::Feature kDnsOverHttps{"dns-over-https",
- base::FEATURE_DISABLED_BY_DEFAULT};
+const char kDnsOverHttpsChoiceDefault[] = "Disabled",
+ kDnsOverHttpsChoiceGoogle[] = "Google",
+ kDnsOverHttpsChoiceCloudflare[] = "Cloudflare";
} // namespace features
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
--- a/components/network_session_configurator/common/network_features.h
+++ b/components/network_session_configurator/common/network_features.h
@@ -17,9 +17,10 @@ NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kTokenBinding;
// Enables Channel ID.
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kChannelID;
-// Enabled DNS over HTTPS
+// DNS over HTTPS server endpoint choices
// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt).
-NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kDnsOverHttps;
+NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kDnsOverHttpsChoiceDefault[],
+ kDnsOverHttpsChoiceGoogle[], kDnsOverHttpsChoiceCloudflare[];
} // namespace features
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
--- a/components/network_session_configurator/common/network_switch_list.h
+++ b/components/network_session_configurator/common/network_switch_list.h
@@ -35,6 +35,10 @@ NETWORK_SWITCH(kOriginToForceQuicOn, "origin-to-force-quic-on")
// the server.
NETWORK_SWITCH(kQuicConnectionOptions, "quic-connection-options")
+// Specifies an IETF DNS-over-HTTPS server endpoint
+// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt).
+NETWORK_SWITCH(kDnsOverHttpsServer, "dns-over-https-server")
+
// Specifies the maximum length for a QUIC packet.
NETWORK_SWITCH(kQuicMaxPacketLength, "quic-max-packet-length")
diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
--- a/net/base/load_flags_list.h
+++ b/net/base/load_flags_list.h
@@ -92,6 +92,12 @@ LOAD_FLAG(MAYBE_USER_GESTURE, 1 << 14)
LOAD_FLAG(DO_NOT_USE_EMBEDDED_IDENTITY, 1 << 15)
// Indicates that this request is not to be migrated to a cellular network when
+
+// This load will not send Accept-Language or User-Agent headers, and not
+// advertise brotli encoding.
+// Used to comply with IETF (draft) DNS-over-HTTPS:
+// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests."
+LOAD_FLAG(MINIMAL_HEADERS, 1 << 18)
// QUIC connection migration is enabled.
LOAD_FLAG(DISABLE_CONNECTION_MIGRATION_TO_CELLULAR, 1 << 16)
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -389,30 +389,8 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
HttpRequestHeaders extra_request_headers;
extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
-
- request_ = url_request_context->CreateRequest(
- url, request_priority_, this,
- net::DefineNetworkTrafficAnnotation("dns_over_https", R"(
- semantics {
- sender: "DNS over HTTPS"
- description: "Domain name resolution over HTTPS"
- trigger: "User enters a navigates to a domain or Chrome otherwise "
- "makes a connection to a domain whose IP address isn't cached"
- data: "The domain name that is being requested"
- destination: OTHER
- destination_other: "The user configured DNS over HTTPS server, which"
- "may be dns.google.com"
- }
- policy {
- cookies_allowed: NO
- setting:
- "You can configure this feature via that 'dns_over_https_servers' and"
- "'dns_over_https.method' prefs. Empty lists imply this feature is"
- "disabled"
- policy_exception_justification: "Experimental feature that"
- "is disabled by default"
- }
- )"));
+ //extra_request_headers.SetHeader(HttpRequestHeaders::kUserAgent, "DoH client");
+ request_ = url_request_context->CreateRequest(url, request_priority_, this);
net_log_ = request_->net_log();
if (use_post) {
@@ -430,6 +408,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
LOAD_BYPASS_PROXY | LOAD_DO_NOT_SEND_COOKIES |
LOAD_DO_NOT_SAVE_COOKIES |
+ LOAD_IGNORE_LIMITS | LOAD_MINIMAL_HEADERS |
LOAD_DO_NOT_SEND_AUTH_DATA);
}
@@ -849,7 +828,7 @@ class DnsTransactionImpl : public DnsTransaction,
had_tcp_attempt_(false),
doh_attempt_(false),
first_server_index_(0),
- request_priority_(DEFAULT_PRIORITY) {
+ request_priority_(MAXIMUM_PRIORITY) {
DCHECK(session_.get());
DCHECK(!hostname_.empty());
DCHECK(!callback_.is_null());
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -434,21 +434,25 @@ void URLRequestHttpJob::Start() {
// plugin could set a referrer although sending the referrer is inhibited.
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
- // Our consumer should have made sure that this is a safe referrer. See for
- // instance WebCore::FrameLoader::HideReferrer.
- if (referrer.is_valid()) {
- request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
+ // Our consumer should have made sure that this is a safe referrer. See for
+ // instance WebCore::FrameLoader::HideReferrer.
+ if (referrer.is_valid()) {
+ request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
referrer.spec());
+ }
}
request_info_.token_binding_referrer = request_->token_binding_referrer();
// This should be kept in sync with the corresponding code in
// URLRequest::GetUserAgent.
- request_info_.extra_headers.SetHeaderIfMissing(
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
+ request_info_.extra_headers.SetHeaderIfMissing(
HttpRequestHeaders::kUserAgent,
http_user_agent_settings_ ?
http_user_agent_settings_->GetUserAgent() : std::string());
+ }
AddExtraHeaders();
AddCookieHeaderAndStart();
@@ -666,10 +670,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
HttpRequestHeaders::kAcceptEncoding)) {
// Advertise "br" encoding only if transferred data is opaque to proxy.
bool advertise_brotli = false;
- if (request()->context()->enable_brotli()) {
- if (request()->url().SchemeIsCryptographic() ||
- IsLocalhost(request()->url())) {
- advertise_brotli = true;
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
+ if (request()->context()->enable_brotli()) {
+ if (request()->url().SchemeIsCryptographic() ||
+ IsLocalhost(request()->url())) {
+ advertise_brotli = true;
+ }
}
}
@@ -686,7 +692,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
advertised_encodings);
}
- if (http_user_agent_settings_) {
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS) && http_user_agent_settings_) {
// Only add default Accept-Language if the request didn't have it
// specified.
std::string accept_language =
--
2.7.4
@@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -180,7 +180,7 @@ void OnAuthPrefsChanged(const std::string& pref_name) {
@@ -179,7 +179,7 @@ void OnAuthPrefsChanged(const std::string& pref_name) {
// Android this includes checking the Android version in the field trial.
bool ShouldEnableAsyncDns() {
bool feature_can_be_enabled = true;
@@ -34,5 +34,5 @@ diff --git a/components/cronet/url_request_context_config.cc b/components/cronet
const base::DictionaryValue* stale_dns_args = nullptr;
if (!it.value().GetAsDictionary(&stale_dns_args)) {
--
2.7.4
2.11.0
@@ -18,7 +18,7 @@ with limited CPU/memory resources and it is disabled by default.
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -839,6 +839,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
@@ -833,6 +833,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
net::kEffectiveConnectionType4G},
};
@@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// Ensure that all effective connection types returned by Network Quality
// Estimator (NQE) are also exposed via flags.
static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
@@ -2432,6 +2437,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2426,6 +2431,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kMaterialDesignIncognitoNTPName,
flag_descriptions::kMaterialDesignIncognitoNTPDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kMaterialDesignIncognitoNTP)},
@@ -151,5 +151,5 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
}
--
2.7.4
2.11.0
@@ -109,5 +109,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
<message name="IDS_UPDATING_CHROME" desc="String that indicates that Chrome is updating">
Updating Chrome...
--
2.7.4
2.11.0
@@ -196,5 +196,5 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
JNIEnv* env,
const JavaParamRef<jobject>& obj,
--
2.7.4
2.11.0
@@ -33,5 +33,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
if (isCancelled()) return null;
refreshIncognitoModeDisabled();
--
2.7.4
2.11.0
@@ -32,5 +32,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
/**
--
2.7.4
2.11.0
@@ -813,5 +813,5 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp
// has replacement terms. Chrome treats such bookmarks as search engines rather
// than true bookmarks.
--
2.7.4
2.11.0
@@ -122,5 +122,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
</release>
</grit>
--
2.7.4
2.11.0
@@ -309,5 +309,5 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
"java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
"java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
--
2.7.4
2.11.0
@@ -65,5 +65,5 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
--
2.7.4
2.11.0
@@ -27,5 +27,5 @@ diff --git a/ui/gfx/animation/animation.cc b/ui/gfx/animation/animation.cc
#endif
--
2.7.4
2.11.0
@@ -23,5 +23,5 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) {
--
2.7.4
2.11.0
@@ -41,5 +41,5 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<!-- Broadcast receiver that will be notified of account changes -->
<receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
--
2.7.4
2.11.0
@@ -21,5 +21,5 @@ diff --git a/net/cert/x509_util.cc b/net/cert/x509_util.cc
// Certificates made by CreateKeyAndSelfSignedCert will be signed using this
// digest algorithm.
--
2.7.4
2.11.0
@@ -26,5 +26,5 @@ diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
// We use a separate histogram name for each platform to facilitate the
// display of error codes by their symbolic name (since each platform has
--
2.7.4
2.11.0
@@ -26,5 +26,5 @@ diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/b
GURL GetClientReportUrl(const std::string& report_url) {
GURL url(report_url);
--
2.7.4
2.11.0
@@ -19,5 +19,5 @@ diff --git a/chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc b/chr
std::unique_ptr<ConfirmInfoBarDelegate>(
new GoogleApiKeysInfoBarDelegate())));
--
2.7.4
2.11.0
@@ -54,5 +54,5 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
if (personal_data_ && client_)
personal_data_->OnSyncServiceInitialized(client_->GetSyncService());
--
2.7.4
2.11.0
@@ -26,5 +26,5 @@ diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser
if (!extensions_enabled ||
chromeos::ProfileHelper::IsLockScreenAppProfile(profile_)) {
--
2.7.4
2.11.0
@@ -82,5 +82,5 @@ diff --git a/components/security_interstitials/core/safe_browsing_loud_error_ui.
// Constants for the V4 phishing string upgrades.
--
2.7.4
2.11.0
@@ -65,5 +65,5 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
void ClientSideDetectionService::HandlePhishingVerdict(
--
2.7.4
2.11.0
@@ -110,5 +110,5 @@ diff --git a/components/safe_browsing/browser/threat_details_cache.cc b/componen
current_load_ = network::SimpleURLLoader::Create(std::move(resource_request),
traffic_annotation);
--
2.7.4
2.11.0
@@ -1497,5 +1497,5 @@ diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/fea
const base::Feature kTriggerThrottlerDailyQuotaFeature{
"SafeBrowsingTriggerThrottlerDailyQuota",
--
2.7.4
2.11.0
@@ -175,5 +175,5 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
--
2.7.4
2.11.0
@@ -32,5 +32,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
Extension::ManifestData* Extension::GetManifestData(const std::string& key)
--
2.7.4
2.11.0
@@ -27,5 +27,5 @@ diff --git a/components/translate/core/browser/translate_language_list.cc b/comp
void TranslateLanguageList::SetResourceRequestsAllowed(bool allowed) {
--
2.7.4
2.11.0
@@ -23,5 +23,5 @@ diff --git a/build/android/lint/suppressions.xml b/build/android/lint/suppressio
<ignore regexp="remoting/android/host/res/layout/main.xml"/>
</issue>
--
2.7.4
2.11.0
@@ -152,5 +152,5 @@ diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detect
@Override
--
2.7.4
2.11.0
@@ -799,5 +799,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/
}
}
--
2.7.4
2.11.0
@@ -128,5 +128,5 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
@Override
--
2.7.4
2.11.0
@@ -319,5 +319,5 @@ diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detect
if (isGmsCoreSupported) {
//FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
--
2.7.4
2.11.0
@@ -45,5 +45,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
private boolean mNativeInitialized;
--
2.7.4
2.11.0
@@ -39,5 +39,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
// An optional page to select a default search engine.
--
2.7.4
2.11.0