[cr144] NavigatorBase not Supplementable

This requires our `NavigatorBase` sumplementable classes to be forward
declared, as a member.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d99d033c31e934207e45cf88fc01a721e70b56e1

commit d99d033c31e934207e45cf88fc01a721e70b56e1
Author: Steinar H. Gunderson <sesse@chromium.org>
Date:   Tue Nov 18 04:56:31 2025 -0800

    Make NavigatorBase not Supplementable.

    Part of Supplementable cleanup. Done with a script followed by
    human cleanup/review and git cl format.

    Bug: 460165754
    Change-Id: If83aa5d85bf53d3c45eb5a02a01edfce2e55dab4
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7157265
    Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
    Commit-Queue: Steinar H Gunderson <sesse@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1546446}
This commit is contained in:
Claudio DeSouza
2025-12-21 17:12:48 -05:00
committed by Emerick Rogul
parent c588b71487
commit 4a540cac03
5 changed files with 42 additions and 25 deletions
@@ -8,6 +8,10 @@
#include "third_party/blink/renderer/core/frame/navigator_id.h"
namespace blink {
class Brave;
} // namespace blink
#define userAgent \
userAgent_ChromiumImpl() const; \
String userAgent
@@ -0,0 +1,12 @@
diff --git a/third_party/blink/renderer/core/execution_context/navigator_base.cc b/third_party/blink/renderer/core/execution_context/navigator_base.cc
index 0910e68f91b9090655f054976e34bffc1dbdc549..dfaa5cca797427dc6719334d4424d706ed92be5a 100644
--- a/third_party/blink/renderer/core/execution_context/navigator_base.cc
+++ b/third_party/blink/renderer/core/execution_context/navigator_base.cc
@@ -94,6 +94,7 @@ void NavigatorBase::Trace(Visitor* visitor) const {
visitor->Trace(storage_bucket_manager_);
visitor->Trace(usb_);
visitor->Trace(wake_lock_);
+ visitor->Trace(brave_navigator_);
}
unsigned int NavigatorBase::hardwareConcurrency() const {
@@ -1,21 +1,22 @@
diff --git a/third_party/blink/renderer/core/execution_context/navigator_base.h b/third_party/blink/renderer/core/execution_context/navigator_base.h
index 85b582e97a0d23fb66f4d4d2d28322519b200b0f..951a14666eb0719930bac91fa2e941cbe98a3881 100644
index aed72d412ad8601a9de8a7f3ea31ccf42c279a8d..bb9a7675fd71114890602ca479251b6f5be4fe25 100644
--- a/third_party/blink/renderer/core/execution_context/navigator_base.h
+++ b/third_party/blink/renderer/core/execution_context/navigator_base.h
@@ -49,7 +49,7 @@ class CORE_EXPORT NavigatorBase : public ScriptWrappable,
public NavigatorOnLine,
public NavigatorUA,
public ExecutionContextClient,
- public Supplementable<NavigatorBase, 15> {
+ public Supplementable<NavigatorBase, 16> {
public:
enum class Supplements {
kLockManager = 0,
@@ -67,6 +67,7 @@ class CORE_EXPORT NavigatorBase : public ScriptWrappable,
kNavigatorML = 12,
kSerial = 13,
kGeolocation = 14
+ , kBraveNavigator,
};
@@ -181,6 +181,9 @@ class CORE_EXPORT NavigatorBase : public ScriptWrappable,
wake_lock_ = wake_lock;
}
explicit NavigatorBase(ExecutionContext* context);
+ ForwardDeclaredMember<Brave> GetBraveNavigator() const { return brave_navigator_; }
+ void SetBraveNavigator(ForwardDeclaredMember<Brave> brave_navigator) { brave_navigator_ = brave_navigator; }
+
protected:
ExecutionContext* GetUAExecutionContext() const override;
UserAgentMetadata GetUserAgentMetadata() const override;
@@ -202,6 +205,7 @@ class CORE_EXPORT NavigatorBase : public ScriptWrappable,
ForwardDeclaredMember<StorageBucketManager> storage_bucket_manager_;
ForwardDeclaredMember<USB> usb_;
ForwardDeclaredMember<WakeLock, ContextLifecycleObserver> wake_lock_;
+ ForwardDeclaredMember<Brave> brave_navigator_;
};
} // namespace blink
+4 -4
View File
@@ -10,13 +10,13 @@
namespace blink {
Brave::Brave(NavigatorBase& navigator) : Supplement<NavigatorBase>(navigator) {}
Brave::Brave(NavigatorBase& navigator) : navigator_base_(navigator) {}
Brave* Brave::brave(NavigatorBase& navigator) {
auto* supplement = Supplement<NavigatorBase>::From<Brave>(navigator);
auto supplement = navigator.GetBraveNavigator();
if (!supplement) {
supplement = MakeGarbageCollected<Brave>(navigator);
Supplement<NavigatorBase>::ProvideTo(navigator, supplement);
navigator.SetBraveNavigator(supplement);
}
return supplement;
}
@@ -31,7 +31,7 @@ ScriptPromise<IDLBoolean> Brave::isBrave(ScriptState* script_state) {
void Brave::Trace(Visitor* visitor) const {
ScriptWrappable::Trace(visitor);
Supplement<NavigatorBase>::Trace(visitor);
visitor->Trace(navigator_base_);
}
} // namespace blink
+4 -4
View File
@@ -16,13 +16,10 @@ namespace blink {
class ScriptState;
class MODULES_EXPORT Brave final : public ScriptWrappable,
public Supplement<NavigatorBase> {
public GarbageCollectedMixin {
DEFINE_WRAPPERTYPEINFO();
public:
static constexpr auto kSupplementIndex =
NavigatorBase::Supplements::kBraveNavigator;
static Brave* brave(NavigatorBase& navigator);
explicit Brave(NavigatorBase& navigator);
@@ -31,6 +28,9 @@ class MODULES_EXPORT Brave final : public ScriptWrappable,
void Trace(Visitor*) const override;
ScriptPromise<IDLBoolean> isBrave(ScriptState*);
private:
Member<NavigatorBase> navigator_base_;
};
} // namespace blink