532 lines
25 KiB
Diff
532 lines
25 KiB
Diff
From: uazo <uazo@users.noreply.github.com>
|
|
Date: Mon, 15 Nov 2021 09:43:29 +0000
|
|
Subject: Disable conversion measurement api
|
|
|
|
Disable Conversion Measurement API by disabling the flag and removing
|
|
support for the AttributionReporting provider. it also removes
|
|
the handling of attributions via intents between apps.
|
|
This patch enforces the deactivation by preventing the report from
|
|
being sent and being saved to disk, although it is currently in uncalled code.
|
|
|
|
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
---
|
|
chrome/android/java/AndroidManifest.xml | 1 -
|
|
.../origin_trials/features.cc | 8 +-
|
|
.../render_view_context_menu_base.cc | 3 -
|
|
.../aggregatable_report_sender.cc | 15 ++--
|
|
.../aggregation_service_features.cc | 4 +-
|
|
.../attribution_data_host_manager_impl.cc | 5 ++
|
|
.../attribution_reporting/attribution_host.cc | 1 +
|
|
.../attribution_os_level_manager.cc | 1 +
|
|
.../attribution_report_network_sender.cc | 9 ++
|
|
.../attribution_storage_sql.cc | 8 +-
|
|
content/browser/storage_partition_impl.cc | 8 +-
|
|
content/public/android/BUILD.gn | 2 -
|
|
.../browser/AttributionOsLevelManager.java | 82 +------------------
|
|
.../public/browser/navigation_controller.cc | 1 -
|
|
content/public/common/content_features.cc | 4 +-
|
|
content/renderer/render_thread_impl.cc | 5 +-
|
|
.../network/public/cpp/attribution_utils.cc | 3 +
|
|
third_party/blink/common/features.cc | 16 ++--
|
|
.../platform/runtime_enabled_features.json5 | 7 ++
|
|
ui/base/ui_base_features.cc | 2 +-
|
|
20 files changed, 63 insertions(+), 122 deletions(-)
|
|
|
|
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
|
--- a/chrome/android/java/AndroidManifest.xml
|
|
+++ b/chrome/android/java/AndroidManifest.xml
|
|
@@ -39,7 +39,6 @@ by a child template that "extends" this file.
|
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
|
{% endif %}
|
|
|
|
- <uses-permission-sdk-23 android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
|
|
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
|
|
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_CONNECT"/>
|
|
<!--
|
|
diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc
|
|
--- a/components/embedder_support/origin_trials/features.cc
|
|
+++ b/components/embedder_support/origin_trials/features.cc
|
|
@@ -14,11 +14,11 @@ namespace embedder_support {
|
|
// Users from control group will have the feature disabled, excluding them
|
|
// from the origin trial.
|
|
BASE_FEATURE(kOriginTrialsSampleAPIThirdPartyAlternativeUsage,
|
|
- "OriginTrialsSampleAPIThirdPartyAlternativeUsage",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
+ "OriginTrialsSampleAPIThirdPartyAlternativeUsage", // must be disabled
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
|
|
|
BASE_FEATURE(kConversionMeasurementAPIAlternativeUsage,
|
|
- "ConversionMeasurementAPIAlternativeUsage",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
+ "ConversionMeasurementAPIAlternativeUsage", // must be disabled
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
|
|
|
} // namespace embedder_support
|
|
diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc
|
|
--- a/components/renderer_context_menu/render_view_context_menu_base.cc
|
|
+++ b/components/renderer_context_menu/render_view_context_menu_base.cc
|
|
@@ -507,9 +507,6 @@ RenderViewContextMenuBase::GetOpenURLParamsWithExtraHeaders(
|
|
|
|
open_url_params.source_site_instance = site_instance_;
|
|
|
|
- if (disposition != WindowOpenDisposition::OFF_THE_RECORD)
|
|
- open_url_params.impression = params_.impression;
|
|
-
|
|
return open_url_params;
|
|
}
|
|
|
|
diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b/content/browser/aggregation_service/aggregatable_report_sender.cc
|
|
--- a/content/browser/aggregation_service/aggregatable_report_sender.cc
|
|
+++ b/content/browser/aggregation_service/aggregatable_report_sender.cc
|
|
@@ -136,19 +136,18 @@ void AggregatableReportSender::SendReport(const GURL& url,
|
|
// Allow bodies of non-2xx responses to be returned.
|
|
simple_url_loader_ptr->SetAllowHttpErrorResults(true);
|
|
|
|
- // Unretained is safe because the URLLoader is owned by `this` and will be
|
|
- // deleted before `this`.
|
|
- simple_url_loader_ptr->DownloadHeadersOnly(
|
|
- url_loader_factory_.get(),
|
|
- base::BindOnce(&AggregatableReportSender::OnReportSent,
|
|
- base::Unretained(this), std::move(it),
|
|
- std::move(callback)));
|
|
+ // this is never called on Bromite but nothing would be sent if it were
|
|
+ OnReportSent(std::move(it), std::move(callback), nullptr);
|
|
}
|
|
|
|
void AggregatableReportSender::OnReportSent(
|
|
UrlLoaderList::iterator it,
|
|
ReportSentCallback callback,
|
|
- scoped_refptr<net::HttpResponseHeaders> headers) {
|
|
+ scoped_refptr<net::HttpResponseHeaders> headers) { // disable in Bromite
|
|
+ if ((true)) {
|
|
+ std::move(callback).Run(RequestStatus::kOk);
|
|
+ return;
|
|
+ }
|
|
RequestStatus status;
|
|
|
|
absl::optional<int> http_response_code;
|
|
diff --git a/content/browser/aggregation_service/aggregation_service_features.cc b/content/browser/aggregation_service/aggregation_service_features.cc
|
|
--- a/content/browser/aggregation_service/aggregation_service_features.cc
|
|
+++ b/content/browser/aggregation_service/aggregation_service_features.cc
|
|
@@ -8,8 +8,8 @@ namespace content {
|
|
|
|
// Enables the Aggregation Service. See crbug.com/1207974.
|
|
BASE_FEATURE(kPrivacySandboxAggregationService,
|
|
- "PrivacySandboxAggregationService",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
+ "PrivacySandboxAggregationService", // disabled by default
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
|
|
|
const base::FeatureParam<std::string>
|
|
kPrivacySandboxAggregationServiceTrustedServerUrlAwsParam{
|
|
diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
|
|
--- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
|
|
+++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
|
|
@@ -471,6 +471,11 @@ void AttributionDataHostManagerImpl::ParseSource(
|
|
RegistrarAndHeader header) {
|
|
DCHECK(it != registrations_.end());
|
|
|
|
+ if ((true)) {
|
|
+ MaybeOnRegistrationsFinished(it);
|
|
+ return;
|
|
+ }
|
|
+
|
|
switch (header.registrar) {
|
|
case Registrar::kWeb:
|
|
if (!network::HasAttributionWebSupport(
|
|
diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc
|
|
--- a/content/browser/attribution_reporting/attribution_host.cc
|
|
+++ b/content/browser/attribution_reporting/attribution_host.cc
|
|
@@ -335,6 +335,7 @@ void AttributionHost::RegisterNavigationDataHost(
|
|
return;
|
|
}
|
|
|
|
+ if ((true)) return;
|
|
AttributionManager* attribution_manager =
|
|
AttributionManager::FromWebContents(web_contents());
|
|
DCHECK(attribution_manager);
|
|
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.cc b/content/browser/attribution_reporting/attribution_os_level_manager.cc
|
|
--- a/content/browser/attribution_reporting/attribution_os_level_manager.cc
|
|
+++ b/content/browser/attribution_reporting/attribution_os_level_manager.cc
|
|
@@ -48,6 +48,7 @@ ApiState GetApiState() {
|
|
|
|
// static
|
|
network::mojom::AttributionSupport AttributionOsLevelManager::GetSupport() {
|
|
+ if ((true)) return network::mojom::AttributionSupport::kNone;
|
|
bool is_web_allowed =
|
|
GetContentClient()->browser()->IsWebAttributionReportingAllowed();
|
|
switch (GetApiState()) {
|
|
diff --git a/content/browser/attribution_reporting/attribution_report_network_sender.cc b/content/browser/attribution_reporting/attribution_report_network_sender.cc
|
|
--- a/content/browser/attribution_reporting/attribution_report_network_sender.cc
|
|
+++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc
|
|
@@ -88,6 +88,9 @@ void AttributionReportNetworkSender::SendReport(GURL url,
|
|
const std::string& body,
|
|
net::HttpRequestHeaders headers,
|
|
UrlLoaderCallback callback) {
|
|
+ // this is never called on Bromite but nothing would be sent if it were
|
|
+ if ((true)) return;
|
|
+
|
|
auto resource_request = std::make_unique<network::ResourceRequest>();
|
|
resource_request->url = std::move(url);
|
|
resource_request->headers = std::move(headers);
|
|
@@ -161,6 +164,12 @@ void AttributionReportNetworkSender::OnReportSent(
|
|
ReportSentCallback sent_callback,
|
|
UrlLoaderList::iterator it,
|
|
scoped_refptr<net::HttpResponseHeaders> headers) {
|
|
+ if ((true)) {
|
|
+ std::move(sent_callback)
|
|
+ .Run(std::move(report),
|
|
+ SendResult(SendResult::Status::kSent, headers ? headers->response_code() : 200));
|
|
+ return;
|
|
+ }
|
|
network::SimpleURLLoader* loader = it->get();
|
|
|
|
// Consider a non-200 HTTP code as a non-internal error.
|
|
diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc
|
|
--- a/content/browser/attribution_reporting/attribution_storage_sql.cc
|
|
+++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
|
|
@@ -609,14 +609,16 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) {
|
|
return user_data_directory.Append(kDatabasePath);
|
|
}
|
|
|
|
+bool g_run_in_memory = true;
|
|
+
|
|
} // namespace
|
|
|
|
AttributionStorageSql::AttributionStorageSql(
|
|
const base::FilePath& user_data_directory,
|
|
std::unique_ptr<AttributionStorageDelegate> delegate)
|
|
- : path_to_database_(user_data_directory.empty()
|
|
- ? base::FilePath()
|
|
- : DatabasePath(user_data_directory)),
|
|
+ : path_to_database_(user_data_directory.empty() || g_run_in_memory
|
|
+ ? base::FilePath()
|
|
+ : DatabasePath(user_data_directory)),
|
|
db_(sql::DatabaseOptions{.exclusive_locking = true,
|
|
.page_size = 4096,
|
|
.cache_size = 32}),
|
|
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
|
|
--- a/content/browser/storage_partition_impl.cc
|
|
+++ b/content/browser/storage_partition_impl.cc
|
|
@@ -1426,13 +1426,7 @@ void StoragePartitionImpl::Initialize(
|
|
|
|
bucket_manager_ = std::make_unique<BucketManager>(this);
|
|
|
|
- if (base::FeatureList::IsEnabled(blink::features::kConversionMeasurement)) {
|
|
- // The Conversion Measurement API is not available in Incognito mode, but
|
|
- // this is enforced by the `AttributionManagerImpl` itself for better error
|
|
- // reporting and metrics.
|
|
- attribution_manager_ = std::make_unique<AttributionManagerImpl>(
|
|
- this, path, special_storage_policy_);
|
|
- }
|
|
+ // The Conversion Measurement API is not available in Bromite.
|
|
|
|
if (base::FeatureList::IsEnabled(blink::features::kInterestGroupStorage)) {
|
|
// Auction worklets on non-Android use dedicated processes; on Android due
|
|
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
|
|
--- a/content/public/android/BUILD.gn
|
|
+++ b/content/public/android/BUILD.gn
|
|
@@ -168,8 +168,6 @@ android_library("content_full_java") {
|
|
"//third_party/androidx:androidx_annotation_annotation_java",
|
|
"//third_party/androidx:androidx_collection_collection_java",
|
|
"//third_party/androidx:androidx_core_core_java",
|
|
- "//third_party/androidx:androidx_privacysandbox_ads_ads_adservices_java",
|
|
- "//third_party/androidx:androidx_privacysandbox_ads_ads_adservices_java_java",
|
|
"//third_party/blink/public:blink_headers_java",
|
|
"//third_party/blink/public/common:common_java",
|
|
"//third_party/blink/public/mojom:android_mojo_bindings_java",
|
|
diff --git a/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java b/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
|
|
--- a/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
|
|
+++ b/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
|
|
@@ -10,16 +10,7 @@ import android.os.Build;
|
|
import android.os.Process;
|
|
import android.view.MotionEvent;
|
|
|
|
-import androidx.privacysandbox.ads.adservices.java.measurement.MeasurementManagerFutures;
|
|
-import androidx.privacysandbox.ads.adservices.measurement.DeletionRequest;
|
|
-import androidx.privacysandbox.ads.adservices.measurement.WebSourceParams;
|
|
-import androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest;
|
|
-import androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams;
|
|
-import androidx.privacysandbox.ads.adservices.measurement.WebTriggerRegistrationRequest;
|
|
-
|
|
import com.google.common.collect.ImmutableList;
|
|
-import com.google.common.util.concurrent.FutureCallback;
|
|
-import com.google.common.util.concurrent.Futures;
|
|
import com.google.common.util.concurrent.ListenableFuture;
|
|
|
|
import org.chromium.base.ContextUtils;
|
|
@@ -39,6 +30,8 @@ import java.util.Arrays;
|
|
*/
|
|
@JNINamespace("content")
|
|
public class AttributionOsLevelManager {
|
|
+ private class MeasurementManagerFutures {}
|
|
+
|
|
private static final String TAG = "AttributionManager";
|
|
// TODO: replace with constant in android.Manifest.permission once it becomes available in U.
|
|
private static final String PERMISSION_ACCESS_ADSERVICES_ATTRIBUTION =
|
|
@@ -52,12 +45,7 @@ public class AttributionOsLevelManager {
|
|
}
|
|
|
|
private MeasurementManagerFutures getManager() {
|
|
- if (mManager != null) return mManager;
|
|
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
|
- return null;
|
|
- }
|
|
- mManager = MeasurementManagerFutures.from(ContextUtils.getApplicationContext());
|
|
- return mManager;
|
|
+ return null;
|
|
}
|
|
|
|
private void onRegistrationCompleted(int requestId, boolean success) {
|
|
@@ -67,23 +55,6 @@ public class AttributionOsLevelManager {
|
|
}
|
|
}
|
|
|
|
- private void addRegistrationFutureCallback(int requestId, ListenableFuture<?> future) {
|
|
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
|
- return;
|
|
- }
|
|
- Futures.addCallback(future, new FutureCallback<Object>() {
|
|
- @Override
|
|
- public void onSuccess(Object result) {
|
|
- onRegistrationCompleted(requestId, /*success=*/true);
|
|
- }
|
|
- @Override
|
|
- public void onFailure(Throwable thrown) {
|
|
- Log.w(TAG, "Failed to register", thrown);
|
|
- onRegistrationCompleted(requestId, /*success=*/false);
|
|
- }
|
|
- }, ContextUtils.getApplicationContext().getMainExecutor());
|
|
- }
|
|
-
|
|
/**
|
|
* Registers a web attribution source with native, see `registerWebSourceAsync()`:
|
|
* https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures.
|
|
@@ -100,13 +71,6 @@ public class AttributionOsLevelManager {
|
|
onRegistrationCompleted(requestId, /*success=*/false);
|
|
return;
|
|
}
|
|
- ListenableFuture<?> future = mm.registerWebSourceAsync(new WebSourceRegistrationRequest(
|
|
- Arrays.asList(new WebSourceParams(
|
|
- Uri.parse(registrationUrl.getSpec()), isDebugKeyAllowed)),
|
|
- Uri.parse(topLevelOrigin.getSpec()), /*inputEvent=*/event,
|
|
- /*appDestination=*/null, /*webDestination=*/null,
|
|
- /*verifiedDestination=*/null));
|
|
- addRegistrationFutureCallback(requestId, future);
|
|
}
|
|
|
|
/**
|
|
@@ -146,11 +110,6 @@ public class AttributionOsLevelManager {
|
|
onRegistrationCompleted(requestId, /*success=*/false);
|
|
return;
|
|
}
|
|
- ListenableFuture<?> future = mm.registerWebTriggerAsync(new WebTriggerRegistrationRequest(
|
|
- Arrays.asList(new WebTriggerParams(
|
|
- Uri.parse(registrationUrl.getSpec()), isDebugKeyAllowed)),
|
|
- Uri.parse(topLevelOrigin.getSpec())));
|
|
- addRegistrationFutureCallback(requestId, future);
|
|
}
|
|
|
|
private void onDataDeletionCompleted(int requestId) {
|
|
@@ -237,15 +196,6 @@ public class AttributionOsLevelManager {
|
|
onCall();
|
|
}
|
|
};
|
|
-
|
|
- for (int currMatchBehavior : matchBehaviors) {
|
|
- ListenableFuture<?> future = mm.deleteRegistrationsAsync(new DeletionRequest(
|
|
- deletionMode, currMatchBehavior, Instant.ofEpochMilli(startMs),
|
|
- Instant.ofEpochMilli(endMs), originUris, domainUris));
|
|
-
|
|
- Futures.addCallback(
|
|
- future, callback, ContextUtils.getApplicationContext().getMainExecutor());
|
|
- }
|
|
}
|
|
|
|
/**
|
|
@@ -270,32 +220,6 @@ public class AttributionOsLevelManager {
|
|
AttributionOsLevelManagerJni.get().onMeasurementStateReturned(0);
|
|
return;
|
|
}
|
|
-
|
|
- ListenableFuture<Integer> future = null;
|
|
- try {
|
|
- future = mm.getMeasurementApiStatusAsync();
|
|
- } catch (IllegalStateException ex) {
|
|
- // An illegal state exception may be thrown for some versions of the underlying
|
|
- // Privacy Sandbox SDK.
|
|
- Log.i(TAG, "Failed to get measurement API status", ex);
|
|
- }
|
|
-
|
|
- if (future == null) {
|
|
- AttributionOsLevelManagerJni.get().onMeasurementStateReturned(0);
|
|
- return;
|
|
- }
|
|
-
|
|
- Futures.addCallback(future, new FutureCallback<Integer>() {
|
|
- @Override
|
|
- public void onSuccess(Integer status) {
|
|
- AttributionOsLevelManagerJni.get().onMeasurementStateReturned(status);
|
|
- }
|
|
- @Override
|
|
- public void onFailure(Throwable thrown) {
|
|
- Log.w(TAG, "Failed to get measurement API status", thrown);
|
|
- AttributionOsLevelManagerJni.get().onMeasurementStateReturned(0);
|
|
- }
|
|
- }, ContextUtils.getApplicationContext().getMainExecutor());
|
|
}
|
|
|
|
@CalledByNative
|
|
diff --git a/content/public/browser/navigation_controller.cc b/content/public/browser/navigation_controller.cc
|
|
--- a/content/public/browser/navigation_controller.cc
|
|
+++ b/content/public/browser/navigation_controller.cc
|
|
@@ -40,7 +40,6 @@ NavigationController::LoadURLParams::LoadURLParams(const OpenURLParams& input)
|
|
blob_url_loader_factory(input.blob_url_loader_factory),
|
|
href_translate(input.href_translate),
|
|
reload_type(input.reload_type),
|
|
- impression(input.impression),
|
|
is_pdf(input.is_pdf) {
|
|
#if DCHECK_IS_ON()
|
|
DCHECK(input.Valid());
|
|
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
|
--- a/content/public/common/content_features.cc
|
|
+++ b/content/public/common/content_features.cc
|
|
@@ -882,8 +882,8 @@ BASE_FEATURE(kPrivacySandboxAdsAPIsM1Override,
|
|
// FLEDGE, Topics, along with a number of other features actively in development
|
|
// within these APIs.
|
|
BASE_FEATURE(kPrivacySandboxAdsAPIsOverride,
|
|
- "PrivacySandboxAdsAPIsOverride",
|
|
- base::FEATURE_DISABLED_BY_DEFAULT);
|
|
+ "PrivacySandboxAdsAPIsOverride", // must be disabled
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
|
|
|
// Enables Private Network Access checks for all types of web workers.
|
|
//
|
|
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
|
|
--- a/content/renderer/render_thread_impl.cc
|
|
+++ b/content/renderer/render_thread_impl.cc
|
|
@@ -939,6 +939,9 @@ void RenderThreadImpl::InitializeRenderer(
|
|
reduced_user_agent_ = WebString::FromUTF8(reduced_user_agent);
|
|
user_agent_metadata_ = user_agent_metadata;
|
|
cors_exempt_header_list_ = cors_exempt_header_list;
|
|
+#if BUILDFLAG(IS_ANDROID)
|
|
+ attribution_support = network::mojom::AttributionSupport::kNone;
|
|
+#endif
|
|
attribution_support_ = attribution_support;
|
|
|
|
blink::WebVector<blink::WebString> web_cors_exempt_header_list(
|
|
@@ -1858,7 +1861,7 @@ RenderThreadImpl::GetAttributionReportingSupport() {
|
|
|
|
void RenderThreadImpl::SetAttributionReportingSupport(
|
|
network::mojom::AttributionSupport attribution_support) {
|
|
- attribution_support_ = attribution_support;
|
|
+ attribution_support_ = network::mojom::AttributionSupport::kNone;
|
|
}
|
|
|
|
std::unique_ptr<CodecFactory> RenderThreadImpl::CreateMediaCodecFactory(
|
|
diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network/public/cpp/attribution_utils.cc
|
|
--- a/services/network/public/cpp/attribution_utils.cc
|
|
+++ b/services/network/public/cpp/attribution_utils.cc
|
|
@@ -16,6 +16,7 @@ namespace network {
|
|
|
|
std::string GetAttributionSupportHeader(
|
|
mojom::AttributionSupport attribution_support) {
|
|
+ if ((true)) return "";
|
|
std::vector<net::structured_headers::DictionaryMember> registrars;
|
|
const auto add_registrar = [®istrars](std::string registrar) {
|
|
registrars.emplace_back(std::move(registrar),
|
|
@@ -39,6 +40,7 @@ std::string GetAttributionSupportHeader(
|
|
}
|
|
|
|
bool HasAttributionOsSupport(mojom::AttributionSupport attribution_support) {
|
|
+ if ((true)) return false;
|
|
switch (attribution_support) {
|
|
case mojom::AttributionSupport::kOs:
|
|
case mojom::AttributionSupport::kWebAndOs:
|
|
@@ -50,6 +52,7 @@ bool HasAttributionOsSupport(mojom::AttributionSupport attribution_support) {
|
|
}
|
|
|
|
bool HasAttributionWebSupport(mojom::AttributionSupport attribution_support) {
|
|
+ if ((true)) return false;
|
|
switch (attribution_support) {
|
|
case mojom::AttributionSupport::kWeb:
|
|
case mojom::AttributionSupport::kWebAndOs:
|
|
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
|
|
--- a/third_party/blink/common/features.cc
|
|
+++ b/third_party/blink/common/features.cc
|
|
@@ -23,8 +23,8 @@ namespace features {
|
|
// feature flag allows Chrome developers to restrict the access to the first
|
|
// fully supported version.
|
|
BASE_FEATURE(kAnonymousIframeOriginTrial,
|
|
- "AnonymousIframeOriginTrial",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
+ "AnonymousIframeOriginTrial", // must be disabled
|
|
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
|
|
|
|
// If enabled, whenever form controls are removed from the DOM, the ChromeClient
|
|
// is informed about this. This enables Autofill to trigger a reparsing of
|
|
@@ -136,8 +136,8 @@ BASE_FEATURE(kBlockingDownloadsInAdFrameWithoutUserActivation,
|
|
|
|
// Controls whether the Conversion Measurement API infrastructure is enabled.
|
|
BASE_FEATURE(kConversionMeasurement,
|
|
- "ConversionMeasurement",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
+ "ConversionMeasurement", // must be disabled
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
|
|
|
|
// Controls whether LCP calculations should exclude low-entropy images. If
|
|
// enabled, then the associated parameter sets the cutoff, expressed as the
|
|
@@ -221,8 +221,8 @@ BASE_FEATURE(kPath2DPaintCache,
|
|
base::FEATURE_DISABLED_BY_DEFAULT);
|
|
|
|
BASE_FEATURE(kPrivacySandboxAdsAPIs,
|
|
- "PrivacySandboxAdsAPIs",
|
|
- base::FEATURE_DISABLED_BY_DEFAULT);
|
|
+ "PrivacySandboxAdsAPIs", // disabled by default
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
|
|
|
// When enabled, pages that don't specify a layout width will default to the
|
|
// window width rather than the traditional mobile fallback width of 980px.
|
|
@@ -277,8 +277,8 @@ BASE_FEATURE(kFencedFrames, "FencedFrames", base::FEATURE_DISABLED_BY_DEFAULT);
|
|
// `kPrivacySandboxAggregationService` to be enabled to successfully send
|
|
// reports.
|
|
BASE_FEATURE(kPrivateAggregationApi,
|
|
- "PrivateAggregationApi",
|
|
- base::FEATURE_DISABLED_BY_DEFAULT);
|
|
+ "PrivateAggregationApi", // disabled by default
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite
|
|
|
|
// Selectively allows the JavaScript API to be disabled in just one of the
|
|
// contexts.
|
|
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|
@@ -215,6 +215,13 @@
|
|
},
|
|
|
|
data: [
|
|
+ {
|
|
+ // disable by default features by marking as
|
|
+ // depends_on: ["DisabledForBromite"]
|
|
+ // to work is needed to remove "origin_trial_feature_name"
|
|
+ // and "origin_trial_allows_third_party"
|
|
+ name: "DisabledForBromite",
|
|
+ },
|
|
{
|
|
name: "AbortSignalAny",
|
|
status: "experimental",
|
|
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
|
|
--- a/ui/base/ui_base_features.cc
|
|
+++ b/ui/base/ui_base_features.cc
|
|
@@ -527,6 +527,6 @@ BASE_FEATURE(kCr2023MacFontSmoothing,
|
|
|
|
BASE_FEATURE(kUseNanosecondsForMotionEvent,
|
|
"UseNanosecondsForMotionEvent",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT);
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
|
|
|
} // namespace features
|
|
--
|
|
2.25.1
|