Files
brave-core/components/speedreader/renderer/speedreader_js_handler.h
T
Claudio DeSouza d3a7f9ea83 [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}
2025-08-19 19:54:32 +01:00

49 lines
1.7 KiB
C++

// Copyright (c) 2022 The Brave Authors. All rights reserved.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// you can obtain one at http://mozilla.org/MPL/2.0/.
#ifndef BRAVE_COMPONENTS_SPEEDREADER_RENDERER_SPEEDREADER_JS_HANDLER_H_
#define BRAVE_COMPONENTS_SPEEDREADER_RENDERER_SPEEDREADER_JS_HANDLER_H_
#include "base/memory/weak_ptr.h"
#include "content/public/renderer/render_frame.h"
#include "gin/wrappable.h"
namespace speedreader {
class SpeedreaderRenderFrameObserver;
class SpeedreaderJSHandler final : public gin::Wrappable<SpeedreaderJSHandler> {
public:
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;
static void Install(base::WeakPtr<SpeedreaderRenderFrameObserver> owner,
v8::Local<v8::Context> context);
private:
// 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);
void TtsPlayPause(v8::Isolate* isolate, int index);
base::WeakPtr<SpeedreaderRenderFrameObserver> owner_;
};
} // namespace speedreader
#endif // BRAVE_COMPONENTS_SPEEDREADER_RENDERER_SPEEDREADER_JS_HANDLER_H_