[cr140] Migrate SpeedreaderJSHandler to gin::Wrappable
This class was still using the deprecated version that is set to be deleted. This change migrates this class to use Oilpan GC for memory management. Chromium changes: https://chromium.googlesource.com/chromium/src/+/61e491610dac67129273aa96549603483c59759f commit 61e491610dac67129273aa96549603483c59759f Author: Andreas Haas <ahaas@chromium.org> Date: Wed Jul 30 03:35:32 2025 -0700 [gin] Delete DeprecatedWrappable This CL deletes gin::DeprecatedWrappable, and classes and data structures related to gin::DeprecatedWrappable. Additionally it removes internal fields of JS wrapper objects that were only used by gin::DeprecatedWrappable, but are not needed anymore with the new gin::Wrappable. Bug: 345640553 Change-Id: Ideb4424048e62fec6c6a7ee5fd60a4635f6ef1e8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6799157 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Camille Lamy <clamy@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#1494071}
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
kMetaMask, \
|
||||
kSolanaProvider, \
|
||||
kSkusBindings, \
|
||||
SpeedreaderBindings, \
|
||||
kCardanoProvider
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#include "brave/components/speedreader/renderer/speedreader_render_frame_observer.h"
|
||||
#include "content/public/renderer/render_frame.h"
|
||||
#include "gin/converter.h"
|
||||
#include "gin/handle.h"
|
||||
#include "gin/object_template_builder.h"
|
||||
#include "gin/wrappable.h"
|
||||
#include "mojo/public/cpp/bindings/associated_remote.h"
|
||||
@@ -20,7 +19,9 @@
|
||||
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
|
||||
#include "third_party/blink/public/web/blink.h"
|
||||
#include "third_party/blink/public/web/web_local_frame.h"
|
||||
#include "v8/include/cppgc/allocation.h"
|
||||
#include "v8/include/v8-context.h"
|
||||
#include "v8/include/v8-cppgc.h"
|
||||
|
||||
namespace {
|
||||
constexpr const char kSpeedreader[] = "speedreader";
|
||||
@@ -28,9 +29,6 @@ constexpr const char kSpeedreader[] = "speedreader";
|
||||
|
||||
namespace speedreader {
|
||||
|
||||
gin::DeprecatedWrapperInfo SpeedreaderJSHandler::kWrapperInfo = {
|
||||
gin::kEmbedderNativeGin};
|
||||
|
||||
SpeedreaderJSHandler::SpeedreaderJSHandler(
|
||||
base::WeakPtr<SpeedreaderRenderFrameObserver> owner)
|
||||
: owner_(std::move(owner)) {}
|
||||
@@ -62,13 +60,12 @@ void SpeedreaderJSHandler::Install(
|
||||
return;
|
||||
}
|
||||
|
||||
gin::Handle<SpeedreaderJSHandler> handler =
|
||||
gin::CreateHandle(isolate, new SpeedreaderJSHandler(std::move(owner)));
|
||||
if (handler.IsEmpty()) {
|
||||
return;
|
||||
}
|
||||
SpeedreaderJSHandler* handler =
|
||||
cppgc::MakeGarbageCollected<SpeedreaderJSHandler>(
|
||||
isolate->GetCppHeap()->GetAllocationHandle(), std::move(owner));
|
||||
|
||||
v8::PropertyDescriptor desc(handler.ToV8(), false);
|
||||
v8::PropertyDescriptor desc(handler->GetWrapper(isolate).ToLocalChecked(),
|
||||
false);
|
||||
desc.set_configurable(false);
|
||||
|
||||
global
|
||||
@@ -79,8 +76,7 @@ void SpeedreaderJSHandler::Install(
|
||||
|
||||
gin::ObjectTemplateBuilder SpeedreaderJSHandler::GetObjectTemplateBuilder(
|
||||
v8::Isolate* isolate) {
|
||||
return gin::DeprecatedWrappable<
|
||||
SpeedreaderJSHandler>::GetObjectTemplateBuilder(isolate)
|
||||
return gin::Wrappable<SpeedreaderJSHandler>::GetObjectTemplateBuilder(isolate)
|
||||
.SetMethod("showOriginalPage", &SpeedreaderJSHandler::ShowOriginalPage)
|
||||
.SetMethod("ttsPlayPause", &SpeedreaderJSHandler::TtsPlayPause);
|
||||
}
|
||||
@@ -100,6 +96,10 @@ void SpeedreaderJSHandler::ShowOriginalPage(v8::Isolate* isolate) {
|
||||
}
|
||||
}
|
||||
|
||||
const gin::WrapperInfo* SpeedreaderJSHandler::wrapper_info() const {
|
||||
return &kWrapperInfo;
|
||||
}
|
||||
|
||||
void SpeedreaderJSHandler::TtsPlayPause(v8::Isolate* isolate,
|
||||
int paragraph_index) {
|
||||
DCHECK(isolate);
|
||||
|
||||
@@ -14,11 +14,14 @@ namespace speedreader {
|
||||
|
||||
class SpeedreaderRenderFrameObserver;
|
||||
|
||||
class SpeedreaderJSHandler final
|
||||
: public gin::DeprecatedWrappable<SpeedreaderJSHandler> {
|
||||
class SpeedreaderJSHandler final : public gin::Wrappable<SpeedreaderJSHandler> {
|
||||
public:
|
||||
static gin::DeprecatedWrapperInfo kWrapperInfo;
|
||||
static constexpr gin::WrapperInfo kWrapperInfo = {{gin::kEmbedderNativeGin},
|
||||
gin::SpeedreaderBindings};
|
||||
|
||||
explicit SpeedreaderJSHandler(
|
||||
base::WeakPtr<SpeedreaderRenderFrameObserver> owner);
|
||||
~SpeedreaderJSHandler() final;
|
||||
SpeedreaderJSHandler(const SpeedreaderJSHandler&) = delete;
|
||||
SpeedreaderJSHandler& operator=(const SpeedreaderJSHandler&) = delete;
|
||||
|
||||
@@ -26,13 +29,11 @@ class SpeedreaderJSHandler final
|
||||
v8::Local<v8::Context> context);
|
||||
|
||||
private:
|
||||
explicit SpeedreaderJSHandler(
|
||||
base::WeakPtr<SpeedreaderRenderFrameObserver> owner);
|
||||
~SpeedreaderJSHandler() final;
|
||||
|
||||
// gin::WrappableBase
|
||||
gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
|
||||
v8::Isolate* isolate) final;
|
||||
const gin::WrapperInfo* wrapper_info() const override;
|
||||
|
||||
// A function to be called from JS
|
||||
void ShowOriginalPage(v8::Isolate* isolate);
|
||||
|
||||
Reference in New Issue
Block a user