Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save uazo/2ac3c8d6640a300c4e764bfe082f9a32 to your computer and use it in GitHub Desktop.
Save uazo/2ac3c8d6640a300c4e764bfe082f9a32 to your computer and use it in GitHub Desktop.
From: Your Name <you@example.com>
Date: Sun, 14 Nov 2021 18:13:39 +0000
Subject: complete disable conversion measurement
---
chrome/android/java/AndroidManifest.xml | 8 -----
.../AttributionIntentHandlerFactory.java | 9 +----
.../AttributionReportingProviderImpl.java | 3 ++
.../flags/android/chrome_feature_list.cc | 2 +-
chrome/browser/ui/browser_navigator_params.cc | 1 -
.../origin_trials/features.cc | 3 +-
.../render_view_context_menu_base.cc | 3 --
.../browser/conversions/conversion_host.cc | 4 +--
content/browser/conversions/conversion_host.h | 4 +--
.../conversions/conversion_host_utils.cc | 6 ++++
.../conversion_internals_handler_impl.cc | 16 ++++-----
.../conversion_network_sender_impl.cc | 17 ++++++----
.../conversions/conversion_storage_sql.cc | 2 +-
.../navigation_controller_android.cc | 8 -----
.../navigation_controller_impl.cc | 3 +-
content/browser/renderer_host/navigator.cc | 1 -
.../renderer_host/render_frame_host_impl.cc | 2 +-
.../renderer_host/render_frame_proxy_host.cc | 2 +-
content/browser/storage_partition_impl.cc | 7 +---
.../browser/web_contents/web_contents_impl.cc | 1 -
.../browser/AttributionReporterImpl.java | 4 ---
.../public/browser/content_browser_client.cc | 3 +-
.../public/browser/navigation_controller.cc | 1 -
.../public/browser/navigation_controller.h | 4 ---
content/public/browser/page_navigator.h | 5 ---
content/renderer/render_frame_impl.cc | 10 +-----
third_party/blink/common/features.cc | 2 +-
.../mojom/conversions/conversions.mojom | 2 --
.../blink/public/mojom/frame/frame.mojom | 1 -
.../permissions_policy_feature.mojom | 3 --
.../blink/public/web/web_navigation_params.h | 5 ---
.../blink/public/web/web_window_features.h | 4 ---
.../core/frame/attribution_reporting.cc | 2 +-
.../core/frame/attribution_reporting.idl | 1 -
.../renderer/core/frame/local_dom_window.cc | 4 ---
.../core/frame/local_frame_client_impl.cc | 2 --
.../blink/renderer/core/frame/remote_frame.cc | 5 ---
.../frame/window_attribution_reporting.idl | 1 -
.../html/conversion_measurement_parsing.cc | 33 ++-----------------
.../renderer/core/html/html_anchor_element.cc | 32 +-----------------
.../core/html/html_anchor_element.idl | 7 +---
.../core/html/html_attribute_names.json5 | 6 ----
.../core/loader/frame_fetch_context.cc | 23 +++----------
.../renderer/core/loader/frame_load_request.h | 11 -------
.../renderer/core/loader/frame_loader.cc | 2 +-
.../renderer/core/page/chrome_client_impl.cc | 2 +-
.../blink/renderer/core/page/create_window.cc | 5 ---
.../permissions_policy_features.json5 | 5 ---
.../platform/runtime_enabled_features.json5 | 6 ++--
49 files changed, 56 insertions(+), 237 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
@@ -1276,14 +1276,6 @@ by a child template that "extends" this file.
android:readPermission="android.permission.GLOBAL_SEARCH" />
</provider>
- <!-- Provider for App to Web impression attribution.
- TODO(https://crbug.com/1210171): Gate this provider behind a custom permission? -->
- <provider android:name="org.chromium.chrome.browser.attribution_reporting.AttributionReportingProvider"
- android:authorities="{{ manifest_package }}.AttributionReporting"
- android:exported="true"
- tools:ignore="ExportedContentProvider">
- </provider>
-
{% block base_application_definitions %}
{% endblock %}
{% block extra_application_definitions_for_test %}
diff --git a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionIntentHandlerFactory.java b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionIntentHandlerFactory.java
--- a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionIntentHandlerFactory.java
+++ b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionIntentHandlerFactory.java
@@ -26,14 +26,7 @@ public class AttributionIntentHandlerFactory {
* @return an AttributionIntentHandler instance.
*/
public static AttributionIntentHandler getInstance() {
- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.APP_TO_WEB_ATTRIBUTION)) {
- if (sIntentHandler == null) {
- sIntentHandler = new AttributionIntentHandlerImpl(sValidator);
- }
- return sIntentHandler;
- } else {
- return new NoopAttributionIntentHandler();
- }
+ return new NoopAttributionIntentHandler();
}
public static void setInputEventValidatorForTesting(Predicate<InputEvent> validator) {
diff --git a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionReportingProviderImpl.java b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionReportingProviderImpl.java
--- a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionReportingProviderImpl.java
+++ b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionReportingProviderImpl.java
@@ -34,6 +34,9 @@ public class AttributionReportingProviderImpl extends AttributionReportingProvid
@Override
public Uri insert(Uri unused, ContentValues values) {
+ if (true)
+ return null;
+
if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.APP_TO_WEB_ATTRIBUTION)) {
return null;
}
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -416,7 +416,7 @@ const base::Feature kAppMenuMobileSiteOption{"AppMenuMobileSiteOption",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kAppToWebAttribution{"AppToWebAttribution",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT}; // guard this
const base::Feature kBackgroundThreadPool{"BackgroundThreadPool",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/ui/browser_navigator_params.cc b/chrome/browser/ui/browser_navigator_params.cc
--- a/chrome/browser/ui/browser_navigator_params.cc
+++ b/chrome/browser/ui/browser_navigator_params.cc
@@ -80,7 +80,6 @@ void NavigateParams::FillNavigateParamsFromOpenURLParams(
this->user_gesture = params.user_gesture;
this->blob_url_loader_factory = params.blob_url_loader_factory;
this->href_translate = params.href_translate;
- this->impression = params.impression;
// Implementation notes:
// The following NavigateParams don't have an equivalent in OpenURLParams:
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
@@ -17,8 +17,9 @@ const base::Feature kOriginTrialsSampleAPIThirdPartyAlternativeUsage{
"OriginTrialsSampleAPIThirdPartyAlternativeUsage",
base::FEATURE_ENABLED_BY_DEFAULT};
+// When disabled, the API cannot be enabled by tokens.
const base::Feature kConversionMeasurementAPIAlternativeUsage{
"ConversionMeasurementAPIAlternativeUsage",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
} // 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
@@ -484,9 +484,6 @@ void RenderViewContextMenuBase::OpenURLWithExtraHeaders(
open_url_params.source_site_instance = site_instance_;
- if (disposition != WindowOpenDisposition::OFF_THE_RECORD)
- open_url_params.impression = params_.impression;
-
source_web_contents_->OpenURL(open_url_params);
}
diff --git a/content/browser/conversions/conversion_host.cc b/content/browser/conversions/conversion_host.cc
--- a/content/browser/conversions/conversion_host.cc
+++ b/content/browser/conversions/conversion_host.cc
@@ -246,7 +246,7 @@ void ConversionHost::VerifyAndStoreImpression(
RecordRegisterImpressionAllowed(allowed);
}
-void ConversionHost::RegisterConversion(
+void ConversionHost::RegisterConversion_NOTUSED(
blink::mojom::ConversionPtr conversion) {
content::RenderFrameHost* render_frame_host =
receivers_.GetCurrentTargetFrame();
@@ -333,7 +333,7 @@ void ConversionHost::NotifyImpressionNavigationInitiatedByPage() {
conversion_page_metrics_->OnImpression();
}
-void ConversionHost::RegisterImpression(const blink::Impression& impression) {
+void ConversionHost::RegisterImpression_NOTUSED(const blink::Impression& impression) {
// If there is no conversion manager available, ignore any impression
// registrations.
ConversionManager* conversion_manager =
diff --git a/content/browser/conversions/conversion_host.h b/content/browser/conversions/conversion_host.h
--- a/content/browser/conversions/conversion_host.h
+++ b/content/browser/conversions/conversion_host.h
@@ -78,8 +78,8 @@ class CONTENT_EXPORT ConversionHost
std::unique_ptr<ConversionManager::Provider> conversion_manager_provider);
// blink::mojom::ConversionHost:
- void RegisterConversion(blink::mojom::ConversionPtr conversion) override;
- void RegisterImpression(const blink::Impression& impression) override;
+ void RegisterConversion_NOTUSED(blink::mojom::ConversionPtr conversion);
+ void RegisterImpression_NOTUSED(const blink::Impression& impression);
// WebContentsObserver:
void DidStartNavigation(NavigationHandle* navigation_handle) override;
diff --git a/content/browser/conversions/conversion_host_utils.cc b/content/browser/conversions/conversion_host_utils.cc
--- a/content/browser/conversions/conversion_host_utils.cc
+++ b/content/browser/conversions/conversion_host_utils.cc
@@ -18,6 +18,8 @@
#include "url/gurl.h"
#include "url/origin.h"
+// will change in attribution_host_utils.cc
+
namespace content {
namespace conversion_host_utils {
@@ -77,6 +79,10 @@ absl::optional<blink::Impression> ParseImpressionFromApp(
// Java API should have rejected these already.
DCHECK(!source_event_id.empty() && !destination.empty());
+ // no impression from app
+ if ((true))
+ return absl::nullopt;
+
blink::Impression impression;
if (!base::StringToUint64(source_event_id, &impression.impression_data))
return absl::nullopt;
diff --git a/content/browser/conversions/conversion_internals_handler_impl.cc b/content/browser/conversions/conversion_internals_handler_impl.cc
--- a/content/browser/conversions/conversion_internals_handler_impl.cc
+++ b/content/browser/conversions/conversion_internals_handler_impl.cc
@@ -24,6 +24,9 @@
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
+// will be renamed in
+// content/browser/attribution_reporting/attribution_internals_handler_impl.cc
+
namespace content {
namespace {
@@ -96,16 +99,9 @@ ConversionInternalsHandlerImpl::~ConversionInternalsHandlerImpl() = default;
void ConversionInternalsHandlerImpl::IsMeasurementEnabled(
::mojom::ConversionInternalsHandler::IsMeasurementEnabledCallback
callback) {
- content::WebContents* contents = web_ui_->GetWebContents();
- bool measurement_enabled =
- manager_provider_->GetManager(contents) &&
- GetContentClient()->browser()->IsConversionMeasurementOperationAllowed(
- contents->GetBrowserContext(),
- ContentBrowserClient::ConversionMeasurementOperation::kAny,
- /*impression_origin=*/nullptr, /*conversion_origin=*/nullptr,
- /*reporting_origin=*/nullptr);
- bool debug_mode = base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kConversionsDebugMode);
+ bool measurement_enabled = false;
+ // also disable switches::kConversionsDebugMode
+ bool debug_mode = false;
std::move(callback).Run(measurement_enabled, debug_mode);
}
diff --git a/content/browser/conversions/conversion_network_sender_impl.cc b/content/browser/conversions/conversion_network_sender_impl.cc
--- a/content/browser/conversions/conversion_network_sender_impl.cc
+++ b/content/browser/conversions/conversion_network_sender_impl.cc
@@ -144,13 +144,9 @@ void ConversionNetworkSenderImpl::SendReport(ConversionReport report,
LogMetricsOnReportSend(report);
- // 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(&ConversionNetworkSenderImpl::OnReportSent,
- base::Unretained(this), std::move(it), std::move(report),
- std::move(sent_callback)));
+ // this code is never called but if it were, nothing would be sent
+ OnReportSent(std::move(it), std::move(report), std::move(sent_callback),
+ nullptr);
}
void ConversionNetworkSenderImpl::SetURLLoaderFactoryForTesting(
@@ -163,6 +159,13 @@ void ConversionNetworkSenderImpl::OnReportSent(
ConversionReport report,
ReportSentCallback sent_callback,
scoped_refptr<net::HttpResponseHeaders> headers) {
+ if ((true)) {
+ std::move(sent_callback)
+ .Run(SentReportInfo(std::move(report),
+ SentReportInfo::Status::kSent,
+ /*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/conversions/conversion_storage_sql.cc b/content/browser/conversions/conversion_storage_sql.cc
--- a/content/browser/conversions/conversion_storage_sql.cc
+++ b/content/browser/conversions/conversion_storage_sql.cc
@@ -227,7 +227,7 @@ void ConversionStorageSql::RunInMemoryForTesting() {
}
// static
-bool ConversionStorageSql::g_run_in_memory_ = false;
+bool ConversionStorageSql::g_run_in_memory_ = true; // use in-memory db
ConversionStorageSql::ConversionStorageSql(
const base::FilePath& path_to_database,
diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc
--- a/content/browser/renderer_host/navigation_controller_android.cc
+++ b/content/browser/renderer_host/navigation_controller_android.cc
@@ -322,14 +322,6 @@ void NavigationControllerAndroid::LoadUrl(
DCHECK(attribution_source_event_id);
params.initiator_origin = OriginFromAndroidPackageName(
ConvertJavaStringToUTF8(env, source_package_name));
-
- params.impression = conversion_host_utils::ParseImpressionFromApp(
- ConvertJavaStringToUTF8(env, attribution_source_event_id),
- ConvertJavaStringToUTF8(env, attribution_destination),
- attribution_report_to
- ? ConvertJavaStringToUTF8(env, attribution_report_to)
- : "",
- attribution_expiry);
}
params.override_user_agent = static_cast<NavigationController::UserAgentOverrideOption>(
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -2553,7 +2553,6 @@ void NavigationControllerImpl::NavigateFromFrameProxy(
/* params.input_start: skip */
params.was_activated = blink::mojom::WasActivatedOption::kUnknown;
/* params.reload_type: skip */
- params.impression = impression;
params.download_policy = std::move(download_policy);
std::unique_ptr<NavigationRequest> request =
@@ -3582,7 +3581,7 @@ NavigationControllerImpl::CreateNavigationRequestFromLoadParams(
params.initiator_process_id, extra_headers_crlf, frame_entry, entry,
request_body,
params.navigation_ui_data ? params.navigation_ui_data->Clone() : nullptr,
- params.impression, params.is_pdf);
+ /*params.impression*/absl::nullopt, params.is_pdf);
navigation_request->set_from_download_cross_origin_redirect(
params.from_download_cross_origin_redirect);
return navigation_request;
diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc
--- a/content/browser/renderer_host/navigator.cc
+++ b/content/browser/renderer_host/navigator.cc
@@ -716,7 +716,6 @@ void Navigator::RequestOpenURL(
params.blob_url_loader_factory = std::move(blob_url_loader_factory);
params.href_translate = href_translate;
- params.impression = impression;
if (delegate_)
delegate_->OpenURL(params);
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -6407,7 +6407,7 @@ void RenderFrameHostImpl::OpenURL(blink::mojom::OpenURLParamsPtr params) {
params->disposition, params->should_replace_current_entry,
params->user_gesture, params->triggering_event_info,
params->href_translate, std::move(blob_url_loader_factory),
- params->impression);
+ /*params->impression*/absl::nullopt);
}
void RenderFrameHostImpl::DidStopLoading() {
diff --git a/content/browser/renderer_host/render_frame_proxy_host.cc b/content/browser/renderer_host/render_frame_proxy_host.cc
--- a/content/browser/renderer_host/render_frame_proxy_host.cc
+++ b/content/browser/renderer_host/render_frame_proxy_host.cc
@@ -716,7 +716,7 @@ void RenderFrameProxyHost::OpenURL(blink::mojom::OpenURLParamsPtr params) {
params->post_body ? "POST" : "GET", params->post_body,
params->extra_headers, std::move(blob_url_loader_factory),
std::move(params->source_location), params->user_gesture,
- params->impression);
+ absl::nullopt);
}
void RenderFrameProxyHost::UpdateViewportIntersection(
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
@@ -1338,12 +1338,7 @@ void StoragePartitionImpl::Initialize(
bucket_context_ = base::MakeRefCounted<BucketContext>();
bucket_context_->Initialize();
- // The Conversion Measurement API is not available in Incognito mode.
- if (!is_in_memory() &&
- base::FeatureList::IsEnabled(blink::features::kConversionMeasurement)) {
- conversion_manager_ = std::make_unique<ConversionManagerImpl>(
- this, path, special_storage_policy_);
- }
+ // The Conversion Measurement API is not available
if (base::FeatureList::IsEnabled(blink::features::kFledgeInterestGroups)) {
interest_group_manager_ = std::make_unique<InterestGroupManager>(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3816,7 +3816,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
load_params->is_renderer_initiated = true;
load_params->was_opener_suppressed = true;
load_params->has_user_gesture = has_user_gesture;
- load_params->impression = params.impression;
load_params->override_user_agent =
new_contents_impl->should_override_user_agent_in_new_tabs_
? NavigationController::UA_OVERRIDE_TRUE
diff --git a/content/public/android/java/src/org/chromium/content/browser/AttributionReporterImpl.java b/content/public/android/java/src/org/chromium/content/browser/AttributionReporterImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/AttributionReporterImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/AttributionReporterImpl.java
@@ -22,8 +22,6 @@ public class AttributionReporterImpl extends AttributionReporter {
public void reportAttributionForCurrentNavigation(WebContents webContents,
String sourcePackageName, String sourceEventId, String destination, String reportTo,
long expiry) {
- AttributionReporterImplJni.get().reportAttributionForCurrentNavigation(
- webContents, sourcePackageName, sourceEventId, destination, reportTo, expiry);
}
/**
@@ -32,8 +30,6 @@ public class AttributionReporterImpl extends AttributionReporter {
@Override
public void reportAppImpression(BrowserContextHandle browserContext, String sourcePackageName,
String sourceEventId, String destination, String reportTo, long expiry) {
- AttributionReporterImplJni.get().reportAppImpression(
- browserContext, sourcePackageName, sourceEventId, destination, reportTo, expiry);
}
@NativeMethods
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -459,7 +459,8 @@ bool ContentBrowserClient::IsConversionMeasurementOperationAllowed(
const url::Origin* impression_origin,
const url::Origin* conversion_origin,
const url::Origin* reporting_origin) {
- return true;
+ // see https://source.chromium.org/chromium/chromium/src/+/c27827907c8ef2acc9ba676db6220c66920b3f93
+ return false;
}
scoped_refptr<QuotaPermissionContext>
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
@@ -36,7 +36,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/browser/navigation_controller.h b/content/public/browser/navigation_controller.h
--- a/content/public/browser/navigation_controller.h
+++ b/content/public/browser/navigation_controller.h
@@ -285,10 +285,6 @@ class NavigationController {
// Indicates the reload type of this navigation.
ReloadType reload_type = ReloadType::NONE;
- // Impression info associated with this navigation. Should only be populated
- // for navigations originating from a link click.
- absl::optional<blink::Impression> impression;
-
// Download policy to be applied if this navigation turns into a download.
blink::NavigationDownloadPolicy download_policy;
diff --git a/content/public/browser/page_navigator.h b/content/public/browser/page_navigator.h
--- a/content/public/browser/page_navigator.h
+++ b/content/public/browser/page_navigator.h
@@ -156,11 +156,6 @@ struct CONTENT_EXPORT OpenURLParams {
// Indicates if this navigation is a reload.
ReloadType reload_type = ReloadType::NONE;
- // Optional impression associated with this navigation. Only set on
- // navigations that originate from links with impression attributes. Used for
- // conversion measurement.
- absl::optional<blink::Impression> impression;
-
// Indicates that this navigation is for PDF content in a renderer.
bool is_pdf = false;
};
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -5474,11 +5474,6 @@ void RenderFrameImpl::OpenURL(std::unique_ptr<blink::WebNavigationInfo> info) {
// navigations performed via OpenURL.
params->source_location = network::mojom::SourceLocation::New();
- if (info->impression) {
- params->impression =
- blink::ConvertWebImpressionToImpression(*info->impression);
- }
-
if (GetContentClient()->renderer()->AllowPopup())
params->user_gesture = true;
@@ -5774,10 +5769,7 @@ void RenderFrameImpl::BeginNavigationInternal(
info->url_request.TrustTokenParams()
? info->url_request.TrustTokenParams()->Clone()
: nullptr,
- info->impression
- ? absl::make_optional<blink::Impression>(
- blink::ConvertWebImpressionToImpression(*info->impression))
- : absl::nullopt,
+ absl::nullopt,
renderer_before_unload_start, renderer_before_unload_end,
web_bundle_token_params);
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
@@ -32,7 +32,7 @@ const base::Feature kCSSContainerQueries{"CSSContainerQueries",
// Controls whether the Conversion Measurement API infrastructure is enabled.
const base::Feature kConversionMeasurement{"ConversionMeasurement",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kGMSCoreEmoji{"GMSCoreEmoji",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/third_party/blink/public/mojom/conversions/conversions.mojom b/third_party/blink/public/mojom/conversions/conversions.mojom
--- a/third_party/blink/public/mojom/conversions/conversions.mojom
+++ b/third_party/blink/public/mojom/conversions/conversions.mojom
@@ -84,11 +84,9 @@ interface ConversionHost {
// Registers a conversion on the site with data provided in the conversion
// registration redirect. Only called for requests loaded in the top-level
// browsing context.
- RegisterConversion(Conversion conversion);
// Registers an impression. Triggered by the registerattributionsource
// attribute being added to an anchor element alongside other API attributes,
// or by the registerAttributionSource JS method. These impressions are not
// associated with a browser navigation.
- RegisterImpression(Impression impression);
};
diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blink/public/mojom/frame/frame.mojom
--- a/third_party/blink/public/mojom/frame/frame.mojom
+++ b/third_party/blink/public/mojom/frame/frame.mojom
@@ -170,7 +170,6 @@ struct OpenURLParams {
blink.mojom.TriggeringEventInfo triggering_event_info;
pending_remote<blink.mojom.BlobURLToken>? blob_url_token;
string href_translate;
- Impression? impression;
NavigationDownloadPolicy download_policy;
// Information about the Javascript source for this navigation. Used for
diff --git a/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom b/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom
--- a/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom
+++ b/third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom
@@ -99,9 +99,6 @@ enum PermissionsPolicyFeature {
// Trust Token API redemption and request signing operations
kTrustTokenRedemption = 72,
- // Controls use of Attribution Reporting API
- kAttributionReporting = 73,
-
// Client Hint for UA platform version.
kClientHintUAPlatformVersion = 74,
diff --git a/third_party/blink/public/web/web_navigation_params.h b/third_party/blink/public/web/web_navigation_params.h
--- a/third_party/blink/public/web/web_navigation_params.h
+++ b/third_party/blink/public/web/web_navigation_params.h
@@ -146,11 +146,6 @@ struct BLINK_EXPORT WebNavigationInfo {
// inititated by clicking a link.
WebString href_translate;
- // Optional impression associated with this navigation. This is attached when
- // a navigation results from a click on an anchor tag that has conversion
- // measurement attributes.
- absl::optional<WebImpression> impression;
-
// The navigation initiator's address space.
network::mojom::IPAddressSpace initiator_address_space =
network::mojom::IPAddressSpace::kUnknown;
diff --git a/third_party/blink/public/web/web_window_features.h b/third_party/blink/public/web/web_window_features.h
--- a/third_party/blink/public/web/web_window_features.h
+++ b/third_party/blink/public/web/web_window_features.h
@@ -64,10 +64,6 @@ struct WebWindowFeatures {
bool noreferrer = false;
bool background = false;
bool persistent = false;
-
- // Represents the attribution source declared by Attribution Reporting related
- // window features, if any.
- absl::optional<WebImpression> impression;
};
} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/attribution_reporting.cc b/third_party/blink/renderer/core/frame/attribution_reporting.cc
--- a/third_party/blink/renderer/core/frame/attribution_reporting.cc
+++ b/third_party/blink/renderer/core/frame/attribution_reporting.cc
@@ -80,6 +80,7 @@ ScriptPromise AttributionReporting::registerAttributionSource(
ScriptState* script_state,
const AttributionSourceParams* params,
ExceptionState& exception_state) {
+ NOTREACHED();
// The PermissionsPolicy check, etc., occurs in the call to
// `GetImpressionForParams()`.
WebImpressionOrError web_impression_or_err =
@@ -105,7 +106,6 @@ ScriptPromise AttributionReporting::registerAttributionSource(
GetSupplementable()->GetTaskRunner(TaskType::kMiscPlatformAPI)));
}
- conversion_host_->RegisterImpression(impression);
return ScriptPromise::CastUndefined(script_state);
}
diff --git a/third_party/blink/renderer/core/frame/attribution_reporting.idl b/third_party/blink/renderer/core/frame/attribution_reporting.idl
--- a/third_party/blink/renderer/core/frame/attribution_reporting.idl
+++ b/third_party/blink/renderer/core/frame/attribution_reporting.idl
@@ -10,5 +10,4 @@
RuntimeEnabled=ConversionMeasurementEventSources,
SecureContext
] interface AttributionReporting {
- [CallWith=ScriptState, RaisesException] Promise<void> registerAttributionSource(AttributionSourceParams params);
};
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -2087,10 +2087,6 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
frame_request.GetResourceRequest().SetHasUserGesture(has_user_gesture);
GetFrame()->MaybeLogAdClickNavigation();
- if (has_user_gesture && window_features.impression) {
- frame_request.SetImpression(*window_features.impression);
- }
-
FrameTree::FindResult result =
GetFrame()->Tree().FindOrCreateFrameForNavigation(
frame_request, target.IsEmpty() ? "_blank" : target);
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
@@ -539,8 +539,6 @@ void LocalFrameClientImpl::BeginNavigation(
}
navigation_info->initiator_address_space = initiator_address_space;
- navigation_info->impression = impression;
-
// Can be null.
LocalFrame* local_parent_frame = GetLocalParentFrame(web_frame_);
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc
--- a/third_party/blink/renderer/core/frame/remote_frame.cc
+++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -295,11 +295,6 @@ void RemoteFrame::Navigate(FrameLoadRequest& frame_request,
params->source_location->column = source_location->ColumnNumber();
}
- if (frame_request.Impression()) {
- params->impression =
- blink::ConvertWebImpressionToImpression(*frame_request.Impression());
- }
-
// Note: For the AdFrame/Sandbox download policy here it only covers the case
// where the navigation initiator frame is ad. The download_policy may be
// further augmented in RenderFrameProxyHost::OnOpenURL if the navigating
diff --git a/third_party/blink/renderer/core/frame/window_attribution_reporting.idl b/third_party/blink/renderer/core/frame/window_attribution_reporting.idl
--- a/third_party/blink/renderer/core/frame/window_attribution_reporting.idl
+++ b/third_party/blink/renderer/core/frame/window_attribution_reporting.idl
@@ -8,5 +8,4 @@
RuntimeEnabled=ConversionMeasurementEventSources,
SecureContext
] partial interface Window {
- readonly attribute AttributionReporting attributionReporting;
};
diff --git a/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc b/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc
--- a/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc
+++ b/third_party/blink/renderer/core/html/conversion_measurement_parsing.cc
@@ -77,8 +77,7 @@ WebImpressionOrError GetImpression(
return mojom::blink::RegisterImpressionError::kNotAllowed;
}
- const bool feature_policy_enabled = execution_context->IsFeatureEnabled(
- mojom::blink::PermissionsPolicyFeature::kAttributionReporting);
+ const bool feature_policy_enabled = false;
UMA_HISTOGRAM_BOOLEAN("Conversions.ImpressionIgnoredByFeaturePolicy",
!feature_policy_enabled);
@@ -171,35 +170,7 @@ WebImpressionOrError GetImpression(
absl::optional<WebImpression> GetImpressionForAnchor(
HTMLAnchorElement* element) {
- absl::optional<int64_t> expiry;
- if (element->hasAttribute(html_names::kAttributionexpiryAttr)) {
- expiry = ParseExpiry(
- element->FastGetAttribute(html_names::kAttributionexpiryAttr)
- .GetString());
- }
-
- absl::optional<int64_t> priority;
- if (element->hasAttribute(html_names::kAttributionsourcepriorityAttr)) {
- priority = ParsePriority(
- element->FastGetAttribute(html_names::kAttributionsourcepriorityAttr)
- .GetString());
- }
-
- DCHECK(element->hasAttribute(html_names::kAttributiondestinationAttr));
- DCHECK(element->hasAttribute(html_names::kAttributionsourceeventidAttr));
-
- return WebImpressionOrErrorToWebImpression(GetImpression(
- element->GetExecutionContext(),
- element->FastGetAttribute(html_names::kAttributionsourceeventidAttr)
- .GetString(),
- element->FastGetAttribute(html_names::kAttributiondestinationAttr)
- .GetString(),
- element->hasAttribute(html_names::kAttributionreporttoAttr)
- ? absl::make_optional(
- element->FastGetAttribute(html_names::kAttributionreporttoAttr)
- .GetString())
- : absl::nullopt,
- expiry, priority, element, /*allow_invalid_impression_data=*/true));
+ return absl::nullopt;
}
absl::optional<WebImpression> GetImpressionFromWindowFeatures(
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -227,20 +227,6 @@ void HTMLAnchorElement::SetActive(bool active) {
void HTMLAnchorElement::AttributeChanged(
const AttributeModificationParams& params) {
HTMLElement::AttributeChanged(params);
- if (params.name == html_names::kRegisterattributionsourceAttr &&
- !params.new_value.IsNull() && HasImpression()) {
- absl::optional<WebImpression> impression = GetImpressionForAnchor(this);
- if (impression) {
- mojo::AssociatedRemote<mojom::blink::ConversionHost> conversion_host;
- GetDocument()
- .GetFrame()
- ->GetRemoteNavigationAssociatedInterfaces()
- ->GetInterface(&conversion_host);
- conversion_host->RegisterImpression(
- ConvertWebImpressionToImpression(*impression));
- }
- }
-
if (params.reason != AttributeModificationReason::kDirectly)
return;
if (params.name != html_names::kHrefAttr)
@@ -377,8 +363,7 @@ bool HTMLAnchorElement::IsLiveLink() const {
}
bool HTMLAnchorElement::HasImpression() const {
- return hasAttribute(html_names::kAttributionsourceeventidAttr) &&
- hasAttribute(html_names::kAttributiondestinationAttr);
+ return false;
}
void HTMLAnchorElement::SendPings(const KURL& destination_url) const {
@@ -517,21 +502,6 @@ void HTMLAnchorElement::HandleClick(Event& event) {
frame->MaybeLogAdClickNavigation();
- if (request.HasUserGesture() && HasImpression()) {
- // An impression must be attached prior to the
- // FindOrCreateFrameForNavigation() call, as that call may result in
- // performing a navigation if the call results in creating a new window with
- // noopener set.
- // At this time we don't know if the navigation will navigate a main frame
- // or subframe. For example, a middle click on the anchor element will
- // set `target_frame` to `frame`, but end up targeting a new window.
- // Attach the impression regardless, the embedder will be able to drop
- // impressions for subframe navigations.
- absl::optional<WebImpression> impression = GetImpressionForAnchor(this);
- if (impression)
- frame_request.SetImpression(*impression);
- }
-
Frame* target_frame =
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.idl b/third_party/blink/renderer/core/html/html_anchor_element.idl
--- a/third_party/blink/renderer/core/html/html_anchor_element.idl
+++ b/third_party/blink/renderer/core/html/html_anchor_element.idl
@@ -36,12 +36,7 @@
[CEReactions, ImplementedAs=textContent] attribute DOMString text;
// Attribution Reporting
- [RuntimeEnabled=ConversionMeasurement, CEReactions,Reflect] attribute DOMString attributionSourceEventId;
- [RuntimeEnabled=ConversionMeasurement, CEReactions,Reflect] attribute USVString attributionDestination;
- [RuntimeEnabled=ConversionMeasurement, CEReactions,Reflect] attribute USVString attributionReportTo;
- [RuntimeEnabled=ConversionMeasurement, CEReactions,Reflect] attribute DOMString attributionExpiry;
- [RuntimeEnabled=ConversionMeasurementEventSources, CEReactions,Reflect] attribute boolean registerAttributionSource;
- [RuntimeEnabled=ConversionMeasurement, CEReactions,Reflect] attribute DOMString attributionSourcePriority;
+ // removed for when the flag is no longer available
// obsolete members
// https://html.spec.whatwg.org/C/#HTMLAnchorElement-partial
diff --git a/third_party/blink/renderer/core/html/html_attribute_names.json5 b/third_party/blink/renderer/core/html/html_attribute_names.json5
--- a/third_party/blink/renderer/core/html/html_attribute_names.json5
+++ b/third_party/blink/renderer/core/html/html_attribute_names.json5
@@ -24,11 +24,6 @@
"archive",
"as",
"async",
- "attributiondestination",
- "attributionexpiry",
- "attributionreportto",
- "attributionsourceeventid",
- "attributionsourcepriority",
"autocapitalize",
"autocomplete",
"autocorrect",
@@ -285,7 +280,6 @@
"pseudo",
"readonly",
"referrerpolicy",
- "registerattributionsource",
"rel",
"required",
"resources",
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -861,6 +861,11 @@ bool FrameFetchContext::SendConversionRequestInsteadOfRedirecting(
if (detached)
return false;
+ if ((true)) {
+ // we want to suppress redirect?
+ return true;
+ }
+
if (!RuntimeEnabledFeatures::ConversionMeasurementEnabled(
document_->domWindow())) {
return false;
@@ -872,19 +877,6 @@ bool FrameFetchContext::SendConversionRequestInsteadOfRedirecting(
return false;
}
- const bool feature_policy_enabled = document_->domWindow()->IsFeatureEnabled(
- mojom::blink::PermissionsPolicyFeature::kAttributionReporting);
- UMA_HISTOGRAM_BOOLEAN("Conversions.ConversionIgnoredByFeaturePolicy",
- !feature_policy_enabled);
-
- if (!feature_policy_enabled) {
- AuditsIssue::ReportAttributionIssue(
- document_->domWindow(),
- AttributionReportingIssueType::kPermissionPolicyDisabled,
- GetFrame()->GetDevToolsFrameToken(), nullptr, devtools_request_id);
- return false;
- }
-
// Only allow conversion registration in secure context.
if (!document_->GetExecutionContext()->IsSecureContext()) {
AuditsIssue::ReportAttributionIssue(
@@ -972,11 +964,6 @@ bool FrameFetchContext::SendConversionRequestInsteadOfRedirecting(
is_valid_integer ? mojom::blink::DedupKey::New(dedup_key) : nullptr;
}
- mojo::AssociatedRemote<mojom::blink::ConversionHost> conversion_host;
- GetFrame()->GetRemoteNavigationAssociatedInterfaces()->GetInterface(
- &conversion_host);
- conversion_host->RegisterConversion(std::move(conversion));
-
// Log use counters once we have a conversion.
UseCounter::Count(document_->domWindow(),
mojom::blink::WebFeature::kConversionAPIAll);
diff --git a/third_party/blink/renderer/core/loader/frame_load_request.h b/third_party/blink/renderer/core/loader/frame_load_request.h
--- a/third_party/blink/renderer/core/loader/frame_load_request.h
+++ b/third_party/blink/renderer/core/loader/frame_load_request.h
@@ -162,16 +162,6 @@ struct CORE_EXPORT FrameLoadRequest {
resource_request_.ClearHTTPOrigin();
}
- // Impressions are set when a FrameLoadRequest is created for a click on an
- // anchor tag that has conversion measurement attributes.
- void SetImpression(const absl::optional<WebImpression>& impression) {
- impression_ = impression;
- }
-
- const absl::optional<WebImpression>& Impression() const {
- return impression_;
- }
-
bool CanDisplay(const KURL&) const;
void SetInitiatorFrameToken(const LocalFrameToken& token) {
@@ -199,7 +189,6 @@ struct CORE_EXPORT FrameLoadRequest {
mojom::RequestContextFrameType frame_type_ =
mojom::RequestContextFrameType::kNone;
WebWindowFeatures window_features_;
- absl::optional<WebImpression> impression_;
absl::optional<LocalFrameToken> initiator_frame_token_;
mojo::PendingRemote<mojom::blink::PolicyContainerHostKeepAliveHandle>
initiator_policy_container_keep_alive_handle_;
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc
--- a/third_party/blink/renderer/core/loader/frame_loader.cc
+++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -814,7 +814,7 @@ void FrameLoader::StartNavigation(FrameLoadRequest& request,
request.GetTriggeringEventInfo(), request.Form(),
should_check_main_world_csp, request.GetBlobURLToken(),
request.GetInputStartTime(), request.HrefTranslate().GetString(),
- request.Impression(), initiator_address_space,
+ /*request.Impression()*/absl::nullopt, initiator_address_space,
request.GetInitiatorFrameToken(), request.TakeSourceLocation(),
request.TakeInitiatorPolicyContainerKeepAliveHandle());
}
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.cc b/third_party/blink/renderer/core/page/chrome_client_impl.cc
--- a/third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -261,7 +261,7 @@ Page* ChromeClientImpl::CreateWindowDelegate(
WebLocalFrameImpl::FromFrame(frame),
WrappedResourceRequest(r.GetResourceRequest()), features, frame_name,
static_cast<WebNavigationPolicy>(r.GetNavigationPolicy()), sandbox_flags,
- session_storage_namespace_id, consumed_user_gesture, r.Impression()));
+ session_storage_namespace_id, consumed_user_gesture, absl::nullopt));
if (!new_view)
return nullptr;
return new_view->GetPage();
diff --git a/third_party/blink/renderer/core/page/create_window.cc b/third_party/blink/renderer/core/page/create_window.cc
--- a/third_party/blink/renderer/core/page/create_window.cc
+++ b/third_party/blink/renderer/core/page/create_window.cc
@@ -240,11 +240,6 @@ WebWindowFeatures GetWindowFeaturesFromString(const String& feature_string,
if (window_features.noreferrer)
window_features.noopener = true;
- if (conversion_measurement_enabled) {
- window_features.impression =
- GetImpressionFromWindowFeatures(dom_window, impression_features);
- }
-
return window_features;
}
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
--- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
+++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
@@ -178,11 +178,6 @@
name: "ClipboardWrite",
permissions_policy_name: "clipboard-write",
},
- {
- name: "AttributionReporting",
- permissions_policy_name: "attribution-reporting",
- depends_on: ["ConversionMeasurement"],
- },
{
name: "CrossOriginIsolated",
permissions_policy_name: "cross-origin-isolated",
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
@@ -470,13 +470,11 @@
},
{
name: "ConversionMeasurement",
- origin_trial_feature_name: "ConversionMeasurement",
- origin_trial_allows_third_party: true,
- status: "experimental",
+ depends_on: ["DisabledForBromite"],
},
{
name: "ConversionMeasurementEventSources",
- status: "test",
+ depends_on: ["DisabledForBromite"],
},
{
name: "CooperativeScheduling"
--
2.20.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment