123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 |
- From: Zoraver Kang <Zoraver@users.noreply.github.com>
- Date: Fri, 22 May 2020 22:43:27 -0400
- Subject: Allow building without enable_reporting
- ---
- .../browser/devtools/protocol/network_handler.cc | 2 ++
- .../net/cross_origin_embedder_policy_reporter.cc | 4 +++-
- .../net/cross_origin_opener_policy_reporter.cc | 16 +++++++---------
- content/browser/net/reporting_service_proxy.cc | 3 +++
- .../renderer_host/render_frame_host_impl.cc | 2 ++
- .../web_package/signed_exchange_reporter.cc | 2 ++
- ...content_switch_dependent_feature_overrides.cc | 1 +
- net/reporting/reporting_service.cc | 6 ++++++
- services/network/network_context.h | 4 ++--
- services/network/public/mojom/BUILD.gn | 1 -
- .../network/public/mojom/network_context.mojom | 2 ++
- .../blink/renderer/core/frame/local_frame.cc | 3 +++
- .../blink/renderer/core/frame/local_frame.h | 6 +++---
- .../renderer/core/frame/reporting_context.cc | 9 +++++++++
- .../renderer/core/frame/reporting_context.h | 7 +++++--
- 15 files changed, 50 insertions(+), 18 deletions(-)
- diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
- --- a/content/browser/devtools/protocol/network_handler.cc
- +++ b/content/browser/devtools/protocol/network_handler.cc
- @@ -1289,6 +1289,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
- }
- }
-
- +#if BUILDFLAG(ENABLE_REPORTING)
- std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
- std::vector<GURL> urls;
- base::queue<FrameTreeNode*> queue;
- @@ -1306,6 +1307,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
- }
- return urls;
- }
- +#endif // BUILDFLAG(ENABLE_REPORTING)
-
- } // namespace
-
- diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.cc b/content/browser/net/cross_origin_embedder_policy_reporter.cc
- --- a/content/browser/net/cross_origin_embedder_policy_reporter.cc
- +++ b/content/browser/net/cross_origin_embedder_policy_reporter.cc
- @@ -4,6 +4,7 @@
-
- #include "content/browser/net/cross_origin_embedder_policy_reporter.h"
-
- +#include "net/base/features.h"
- #include "base/strings/string_piece.h"
- #include "base/values.h"
- #include "content/public/browser/storage_partition.h"
- @@ -112,6 +113,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
- kType, context_url_, blink::mojom::ReportBody::New(std::move(list))));
- }
- if (endpoint) {
- +#if BUILDFLAG(ENABLE_REPORTING)
- base::DictionaryValue body_to_pass;
- for (const auto& pair : body) {
- body_to_pass.SetString(pair.first, pair.second);
- @@ -123,7 +125,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
- kType, *endpoint, context_url_, reporting_source_,
- network_isolation_key_,
- /*user_agent=*/absl::nullopt, std::move(body_to_pass));
- - }
- +#endif
- }
- }
-
- diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/content/browser/net/cross_origin_opener_policy_reporter.cc
- --- a/content/browser/net/cross_origin_opener_policy_reporter.cc
- +++ b/content/browser/net/cross_origin_opener_policy_reporter.cc
- @@ -17,25 +17,17 @@
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/source_location.mojom.h"
- #include "url/origin.h"
- +#include "build/build_config.h"
-
- namespace content {
-
- namespace {
-
- // Report attribute names (camelCase):
- -constexpr char kColumnNumber[] = "columnNumber";
- constexpr char kDisposition[] = "disposition";
- -constexpr char kEffectivePolicy[] = "effectivePolicy";
- -constexpr char kInitialPopupURL[] = "initialPopupURL";
- -constexpr char kLineNumber[] = "lineNumber";
- constexpr char kNextURL[] = "nextResponseURL";
- -constexpr char kOpeneeURL[] = "openeeURL";
- -constexpr char kOpenerURL[] = "openerURL";
- -constexpr char kOtherDocumentURL[] = "otherDocumentURL";
- constexpr char kPreviousURL[] = "previousResponseURL";
- -constexpr char kProperty[] = "property";
- constexpr char kReferrer[] = "referrer";
- -constexpr char kSourceFile[] = "sourceFile";
- constexpr char kType[] = "type";
-
- // Report attribute values:
- @@ -44,6 +36,7 @@ constexpr char kDispositionReporting[] = "reporting";
- constexpr char kTypeFromResponse[] = "navigation-from-response";
- constexpr char kTypeToResponse[] = "navigation-to-response";
-
- +#if BUILDFLAG(ENABLE_REPORTING)
- std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) {
- switch (coop_value) {
- case network::mojom::CrossOriginOpenerPolicyValue::kUnsafeNone:
- @@ -59,6 +52,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) {
- return "same-origin-allow-popups-plus-coep";
- }
- }
- +#endif
-
- FrameTreeNode* TopLevelOpener(FrameTreeNode* frame) {
- FrameTreeNode* opener = frame->original_opener();
- @@ -229,6 +223,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
- network::mojom::SourceLocationPtr source_location,
- const std::string& reported_window_url,
- const std::string& initial_popup_url) const {
- +#if BUILDFLAG(ENABLE_REPORTING)
- // Cross-Origin-Opener-Policy-Report-Only is not required to provide
- // endpoints.
- if (!coop_.report_only_reporting_endpoint)
- @@ -277,12 +272,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
- storage_partition_->GetNetworkContext()->QueueReport(
- "coop", endpoint, context_url_, reporting_source_, network_isolation_key_,
- absl::nullopt, std::move(body));
- +#endif
- }
-
- void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
- base::DictionaryValue body,
- const std::string& endpoint,
- bool is_report_only) {
- +#if BUILDFLAG(ENABLE_REPORTING)
- body.SetString(kDisposition,
- is_report_only ? kDispositionReporting : kDispositionEnforce);
- body.SetString(
- @@ -291,6 +288,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
- storage_partition_->GetNetworkContext()->QueueReport(
- "coop", endpoint, context_url_, reporting_source_, network_isolation_key_,
- /*user_agent=*/absl::nullopt, std::move(body));
- +#endif
- }
-
- } // namespace content
- diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/net/reporting_service_proxy.cc
- --- a/content/browser/net/reporting_service_proxy.cc
- +++ b/content/browser/net/reporting_service_proxy.cc
- @@ -11,6 +11,7 @@
- #include "base/memory/ref_counted.h"
- #include "base/unguessable_token.h"
- #include "base/values.h"
- +#include "net/base/features.h"
- #include "content/browser/service_worker/service_worker_host.h"
- #include "content/browser/worker_host/dedicated_worker_host.h"
- #include "content/browser/worker_host/shared_worker_host.h"
- @@ -173,6 +174,7 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
- const std::string& group,
- const std::string& type,
- std::unique_ptr<base::Value> body) {
- +#if BUILDFLAG(ENABLE_REPORTING)
- auto* rph = RenderProcessHost::FromID(render_process_id_);
- if (!rph)
- return;
- @@ -180,6 +182,7 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
- type, group, url, reporting_source_, network_isolation_key_,
- /*user_agent=*/absl::nullopt,
- base::Value::FromUniquePtrValue(std::move(body)));
- +#endif
- }
-
- const int render_process_id_;
- 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
- @@ -11437,6 +11437,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
- void RenderFrameHostImpl::MaybeGenerateCrashReport(
- base::TerminationStatus status,
- int exit_code) {
- +#if BUILDFLAG(ENABLE_REPORTING)
- if (!last_committed_url_.SchemeIsHTTPOrHTTPS())
- return;
-
- @@ -11486,6 +11487,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
- /*type=*/"crash", /*group=*/"default", last_committed_url_,
- GetReportingSource(), isolation_info_.network_isolation_key(),
- absl::nullopt /* user_agent */, std::move(body));
- +#endif
- }
-
- void RenderFrameHostImpl::SendCommitNavigation(
- diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc
- --- a/content/browser/web_package/signed_exchange_reporter.cc
- +++ b/content/browser/web_package/signed_exchange_reporter.cc
- @@ -127,6 +127,7 @@ bool ShouldDowngradeReport(const char* result_string,
- void ReportResult(int frame_tree_node_id,
- network::mojom::SignedExchangeReportPtr report,
- const net::NetworkIsolationKey& network_isolation_key) {
- +#if BUILDFLAG(ENABLE_REPORTING)
- FrameTreeNode* frame_tree_node =
- FrameTreeNode::GloballyFindByID(frame_tree_node_id);
- if (!frame_tree_node)
- @@ -141,6 +142,7 @@ void ReportResult(int frame_tree_node_id,
- DCHECK(partition);
- partition->GetNetworkContext()->QueueSignedExchangeReport(
- std::move(report), network_isolation_key);
- +#endif
- }
-
- } // namespace
- diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc b/content/public/common/content_switch_dependent_feature_overrides.cc
- --- a/content/public/common/content_switch_dependent_feature_overrides.cc
- +++ b/content/public/common/content_switch_dependent_feature_overrides.cc
- @@ -7,6 +7,7 @@
- #include "content/public/common/content_features.h"
- #include "content/public/common/content_switches.h"
- #include "net/base/features.h"
- +#include "net/net_buildflags.h"
- #include "services/network/public/cpp/features.h"
- #include "services/network/public/cpp/network_switches.h"
- #include "third_party/blink/public/common/features.h"
- diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
- --- a/net/reporting/reporting_service.cc
- +++ b/net/reporting/reporting_service.cc
- @@ -212,6 +212,12 @@ class ReportingServiceImpl : public ReportingService {
- std::unique_ptr<const base::Value> body,
- int depth,
- base::TimeTicks queued_ticks) {
- +#if BUILDFLAG(ENABLE_REPORTING)
- + if ((true))
- + return;
- +#else
- +#error Attempting to build with enable_reporting
- +#endif
- DCHECK(initialized_);
- context_->cache()->AddReport(
- reporting_source, network_isolation_key, sanitized_url, user_agent,
- diff --git a/services/network/network_context.h b/services/network/network_context.h
- --- a/services/network/network_context.h
- +++ b/services/network/network_context.h
- @@ -459,10 +459,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
- const absl::optional<base::UnguessableToken>& reporting_source,
- const net::NetworkIsolationKey& network_isolation_key,
- const absl::optional<std::string>& user_agent,
- - base::Value body) override;
- + base::Value body);
- void QueueSignedExchangeReport(
- mojom::SignedExchangeReportPtr report,
- - const net::NetworkIsolationKey& network_isolation_key) override;
- + const net::NetworkIsolationKey& network_isolation_key);
- void AddDomainReliabilityContextForTesting(
- const GURL& origin,
- const GURL& upload_url,
- diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
- --- a/services/network/public/mojom/BUILD.gn
- +++ b/services/network/public/mojom/BUILD.gn
- @@ -963,7 +963,6 @@ mojom("mojom") {
- export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
- export_header_blink = "third_party/blink/public/platform/web_common.h"
- if (enable_reporting) {
- - enabled_features += [ "enable_reporting" ]
- }
- }
-
- diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
- --- a/services/network/public/mojom/network_context.mojom
- +++ b/services/network/public/mojom/network_context.mojom
- @@ -1043,6 +1043,7 @@ interface NetworkContext {
- // provided |network_isolation_key|.
- //
- // Spec: https://w3c.github.io/reporting/#concept-reports
- + [EnableIf=enable_reporting]
- QueueReport(string type,
- string group,
- url.mojom.Url url,
- @@ -1056,6 +1057,7 @@ interface NetworkContext {
- // Note that this queued report will never be delivered if no reporting
- // endpoint matching is registered for with the provided
- // |network_isolation_key|.
- + [EnableIf=enable_reporting]
- QueueSignedExchangeReport(SignedExchangeReport report,
- NetworkIsolationKey network_isolation_key);
-
- diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
- --- a/third_party/blink/renderer/core/frame/local_frame.cc
- +++ b/third_party/blink/renderer/core/frame/local_frame.cc
- @@ -40,6 +40,7 @@
- #include "build/build_config.h"
- #include "mojo/public/cpp/bindings/self_owned_receiver.h"
- #include "mojo/public/cpp/system/message_pipe.h"
- +#include "net/net_buildflags.h"
- #include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h"
- #include "services/network/public/cpp/features.h"
- #include "services/network/public/mojom/content_security_policy.mojom-blink.h"
- @@ -2334,9 +2335,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const {
- return base::UnguessableToken::Null();
- }
-
- +#if BUILDFLAG(ENABLE_REPORTING)
- mojom::blink::ReportingServiceProxy* LocalFrame::GetReportingService() {
- return mojo_handler_->ReportingService();
- }
- +#endif
-
- // static
- void LocalFrame::NotifyUserActivation(
- diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
- --- a/third_party/blink/renderer/core/frame/local_frame.h
- +++ b/third_party/blink/renderer/core/frame/local_frame.h
- @@ -35,9 +35,9 @@
- #include "base/time/default_tick_clock.h"
- #include "base/time/time.h"
- #include "base/unguessable_token.h"
- -#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
- #include "mojo/public/cpp/bindings/pending_receiver.h"
- +#include "net/net_buildflags.h"
- #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
- #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
- #include "third_party/blink/public/common/frame/frame_ad_evidence.h"
- @@ -561,9 +561,9 @@ class CORE_EXPORT LocalFrame final
- }
-
- SmoothScrollSequencer& GetSmoothScrollSequencer();
- -
- +#if BUILDFLAG(ENABLE_REPORTING)
- mojom::blink::ReportingServiceProxy* GetReportingService();
- -
- +#endif
- // Returns the frame host ptr. The interface returned is backed by an
- // associated interface with the legacy Chrome IPC channel.
- mojom::blink::LocalFrameHost& GetLocalFrameHostRemote() const;
- diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc
- --- a/third_party/blink/renderer/core/frame/reporting_context.cc
- +++ b/third_party/blink/renderer/core/frame/reporting_context.cc
- @@ -4,6 +4,7 @@
-
- #include "third_party/blink/renderer/core/frame/reporting_context.h"
-
- +#include "net/net_buildflags.h"
- #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
- #include "third_party/blink/public/platform/platform.h"
- #include "third_party/blink/public/platform/task_type.h"
- @@ -53,7 +54,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext";
- ReportingContext::ReportingContext(ExecutionContext& context)
- : Supplement<ExecutionContext>(context),
- execution_context_(context),
- +#if BUILDFLAG(ENABLE_REPORTING)
- reporting_service_(&context),
- +#endif
- receiver_(this, &context) {}
-
- // static
- @@ -117,7 +120,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
- visitor->Trace(observers_);
- visitor->Trace(report_buffer_);
- visitor->Trace(execution_context_);
- +#if BUILDFLAG(ENABLE_REPORTING)
- visitor->Trace(reporting_service_);
- +#endif
- visitor->Trace(receiver_);
- Supplement<ExecutionContext>::Trace(visitor);
- }
- @@ -139,6 +144,7 @@ void ReportingContext::CountReport(Report* report) {
- UseCounter::Count(execution_context_, feature);
- }
-
- +#if BUILDFLAG(ENABLE_REPORTING)
- const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
- ReportingContext::GetReportingService() const {
- if (!reporting_service_.is_bound()) {
- @@ -148,6 +154,7 @@ ReportingContext::GetReportingService() const {
- }
- return reporting_service_;
- }
- +#endif
-
- void ReportingContext::NotifyInternal(Report* report) {
- // Buffer the report.
- @@ -170,6 +177,7 @@ void ReportingContext::NotifyInternal(Report* report) {
-
- void ReportingContext::SendToReportingAPI(Report* report,
- const String& endpoint) const {
- +#if BUILDFLAG(ENABLE_REPORTING)
- const String& type = report->type();
- if (!(type == ReportType::kCSPViolation || type == ReportType::kDeprecation ||
- type == ReportType::kPermissionsPolicyViolation ||
- @@ -227,6 +235,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
- url, endpoint, body->featureId(), body->disposition(), body->message(),
- body->sourceFile(), line_number, column_number);
- }
- +#endif
- }
-
- } // namespace blink
- diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_party/blink/renderer/core/frame/reporting_context.h
- --- a/third_party/blink/renderer/core/frame/reporting_context.h
- +++ b/third_party/blink/renderer/core/frame/reporting_context.h
- @@ -5,6 +5,7 @@
- #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_REPORTING_CONTEXT_H_
- #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_REPORTING_CONTEXT_H_
-
- +#include "net/net_buildflags.h"
- #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h"
- #include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h"
- #include "third_party/blink/renderer/core/core_export.h"
- @@ -55,10 +56,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
- private:
- // Counts the use of a report type via UseCounter.
- void CountReport(Report*);
- -
- +#if BUILDFLAG(ENABLE_REPORTING)
- const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
- GetReportingService() const;
- -
- +#endif
- void NotifyInternal(Report* report);
- // Send |report| via the Reporting API to |endpoint|.
- void SendToReportingAPI(Report* report, const String& endpoint) const;
- @@ -69,8 +70,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
-
- // This is declared mutable so that the service endpoint can be cached by
- // const methods.
- +#if BUILDFLAG(ENABLE_REPORTING)
- mutable HeapMojoRemote<mojom::blink::ReportingServiceProxy>
- reporting_service_;
- +#endif
-
- HeapMojoReceiver<mojom::blink::ReportingObserver, ReportingContext> receiver_;
- };
- --
- 2.25.1
|