refactor: declare gin::Wrapper subclasses as final (#43783)
refactor: declare gin::Wrapper subclasses as final (#43527) As per the gin docs: "Wrappable<T> explicitly does not support further subclassing of T. Subclasses of Wrappable<T> should be declared final."
This commit is contained in:
parent
ea3c48e7c1
commit
e62c322b2d
35 changed files with 106 additions and 103 deletions
|
@ -47,7 +47,7 @@ enum class JumpListResult : int;
|
|||
|
||||
namespace api {
|
||||
|
||||
class App : public ElectronBrowserClient::Delegate,
|
||||
class App final : public ElectronBrowserClient::Delegate,
|
||||
public gin::Wrappable<App>,
|
||||
public gin_helper::EventEmitterMixin<App>,
|
||||
public BrowserObserver,
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class AutoUpdater : public gin::Wrappable<AutoUpdater>,
|
||||
class AutoUpdater final : public gin::Wrappable<AutoUpdater>,
|
||||
public gin_helper::EventEmitterMixin<AutoUpdater>,
|
||||
public auto_updater::Delegate,
|
||||
public WindowListObserver {
|
||||
|
|
|
@ -27,7 +27,7 @@ class ElectronBrowserContext;
|
|||
|
||||
namespace api {
|
||||
|
||||
class Cookies : public gin::Wrappable<Cookies>,
|
||||
class Cookies final : public gin::Wrappable<Cookies>,
|
||||
public gin_helper::EventEmitterMixin<Cookies> {
|
||||
public:
|
||||
static gin::Handle<Cookies> Create(v8::Isolate* isolate,
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
namespace electron::api {
|
||||
|
||||
// Retains reference to the data pipe.
|
||||
class DataPipeHolder : public gin::Wrappable<DataPipeHolder> {
|
||||
class DataPipeHolder final : public gin::Wrappable<DataPipeHolder> {
|
||||
public:
|
||||
// gin::Wrappable
|
||||
static gin::WrapperInfo kWrapperInfo;
|
||||
|
|
|
@ -25,7 +25,7 @@ class WebContents;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class Debugger : public gin::Wrappable<Debugger>,
|
||||
class Debugger final : public gin::Wrappable<Debugger>,
|
||||
public gin_helper::EventEmitterMixin<Debugger>,
|
||||
public content::DevToolsAgentHostClient,
|
||||
public content::WebContentsObserver {
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class DesktopCapturer : public gin::Wrappable<DesktopCapturer>,
|
||||
class DesktopCapturer final : public gin::Wrappable<DesktopCapturer>,
|
||||
public gin_helper::Pinnable<DesktopCapturer>,
|
||||
public DesktopMediaListObserver {
|
||||
public:
|
||||
|
|
|
@ -21,7 +21,7 @@ class GURL;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class DownloadItem : public gin::Wrappable<DownloadItem>,
|
||||
class DownloadItem final : public gin::Wrappable<DownloadItem>,
|
||||
public gin_helper::Pinnable<DownloadItem>,
|
||||
public gin_helper::EventEmitterMixin<DownloadItem>,
|
||||
public download::DownloadItem::Observer {
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class GlobalShortcut : public extensions::GlobalShortcutListener::Observer,
|
||||
class GlobalShortcut final
|
||||
: public extensions::GlobalShortcutListener::Observer,
|
||||
public gin::Wrappable<GlobalShortcut> {
|
||||
public:
|
||||
static gin::Handle<GlobalShortcut> Create(v8::Isolate* isolate);
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class InAppPurchase : public gin::Wrappable<InAppPurchase>,
|
||||
class InAppPurchase final : public gin::Wrappable<InAppPurchase>,
|
||||
public gin_helper::EventEmitterMixin<InAppPurchase>,
|
||||
public in_app_purchase::TransactionObserver {
|
||||
public:
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class NativeTheme : public gin::Wrappable<NativeTheme>,
|
||||
class NativeTheme final : public gin::Wrappable<NativeTheme>,
|
||||
public gin_helper::EventEmitterMixin<NativeTheme>,
|
||||
public ui::NativeThemeObserver {
|
||||
public:
|
||||
|
|
|
@ -30,7 +30,7 @@ class ElectronBrowserContext;
|
|||
namespace api {
|
||||
|
||||
// The code is referenced from the net_log::NetExportFileWriter class.
|
||||
class NetLog : public gin::Wrappable<NetLog> {
|
||||
class NetLog final : public gin::Wrappable<NetLog> {
|
||||
public:
|
||||
static gin::Handle<NetLog> Create(v8::Isolate* isolate,
|
||||
ElectronBrowserContext* browser_context);
|
||||
|
|
|
@ -28,7 +28,7 @@ class Handle;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class Notification : public gin::Wrappable<Notification>,
|
||||
class Notification final : public gin::Wrappable<Notification>,
|
||||
public gin_helper::EventEmitterMixin<Notification>,
|
||||
public gin_helper::Constructible<Notification>,
|
||||
public gin_helper::CleanedUpAtExit,
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class PowerMonitor : public gin::Wrappable<PowerMonitor>,
|
||||
class PowerMonitor final : public gin::Wrappable<PowerMonitor>,
|
||||
public gin_helper::EventEmitterMixin<PowerMonitor>,
|
||||
public gin_helper::Pinnable<PowerMonitor>,
|
||||
public base::PowerStateObserver,
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class PowerSaveBlocker : public gin::Wrappable<PowerSaveBlocker> {
|
||||
class PowerSaveBlocker final : public gin::Wrappable<PowerSaveBlocker> {
|
||||
public:
|
||||
static gin::Handle<PowerSaveBlocker> Create(v8::Isolate* isolate);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ enum class ProtocolError {
|
|||
};
|
||||
|
||||
// Protocol implementation based on network services.
|
||||
class Protocol : public gin::Wrappable<Protocol>,
|
||||
class Protocol final : public gin::Wrappable<Protocol>,
|
||||
public gin_helper::Constructible<Protocol> {
|
||||
public:
|
||||
static gin::Handle<Protocol> Create(v8::Isolate* isolate,
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class PushNotifications
|
||||
class PushNotifications final
|
||||
: public ElectronBrowserClient::Delegate,
|
||||
public gin::Wrappable<PushNotifications>,
|
||||
public gin_helper::EventEmitterMixin<PushNotifications>,
|
||||
|
|
|
@ -22,7 +22,7 @@ class Screen;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class Screen : public gin::Wrappable<Screen>,
|
||||
class Screen final : public gin::Wrappable<Screen>,
|
||||
public gin_helper::EventEmitterMixin<Screen>,
|
||||
public display::DisplayObserver {
|
||||
public:
|
||||
|
|
|
@ -18,7 +18,7 @@ class ElectronBrowserContext;
|
|||
|
||||
namespace api {
|
||||
|
||||
class ServiceWorkerContext
|
||||
class ServiceWorkerContext final
|
||||
: public gin::Wrappable<ServiceWorkerContext>,
|
||||
public gin_helper::EventEmitterMixin<ServiceWorkerContext>,
|
||||
public content::ServiceWorkerContextObserver {
|
||||
|
|
|
@ -60,7 +60,7 @@ class ElectronBrowserContext;
|
|||
|
||||
namespace api {
|
||||
|
||||
class Session : public gin::Wrappable<Session>,
|
||||
class Session final : public gin::Wrappable<Session>,
|
||||
public gin_helper::Pinnable<Session>,
|
||||
public gin_helper::Constructible<Session>,
|
||||
public gin_helper::EventEmitterMixin<Session>,
|
||||
|
|
|
@ -31,7 +31,7 @@ enum class NotificationCenterKind {
|
|||
};
|
||||
#endif
|
||||
|
||||
class SystemPreferences
|
||||
class SystemPreferences final
|
||||
: public gin::Wrappable<SystemPreferences>,
|
||||
public gin_helper::EventEmitterMixin<SystemPreferences>
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace electron::api {
|
|||
|
||||
class Menu;
|
||||
|
||||
class Tray : public gin::Wrappable<Tray>,
|
||||
class Tray final : public gin::Wrappable<Tray>,
|
||||
public gin_helper::EventEmitterMixin<Tray>,
|
||||
public gin_helper::Constructible<Tray>,
|
||||
public gin_helper::CleanedUpAtExit,
|
||||
|
|
|
@ -36,7 +36,7 @@ class Process;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class UtilityProcessWrapper
|
||||
class UtilityProcessWrapper final
|
||||
: public gin::Wrappable<UtilityProcessWrapper>,
|
||||
public gin_helper::Pinnable<UtilityProcessWrapper>,
|
||||
public gin_helper::EventEmitterMixin<UtilityProcessWrapper>,
|
||||
|
|
|
@ -1896,7 +1896,7 @@ void WebContents::OnFirstNonEmptyLayout(
|
|||
// This object wraps the InvokeCallback so that if it gets GC'd by V8, we can
|
||||
// still call the callback and send an error. Not doing so causes a Mojo DCHECK,
|
||||
// since Mojo requires callbacks to be called before they are destroyed.
|
||||
class ReplyChannel : public gin::Wrappable<ReplyChannel> {
|
||||
class ReplyChannel final : public gin::Wrappable<ReplyChannel> {
|
||||
public:
|
||||
using InvokeCallback = electron::mojom::ElectronApiIPC::InvokeCallback;
|
||||
static gin::Handle<ReplyChannel> Create(v8::Isolate* isolate,
|
||||
|
|
|
@ -103,7 +103,7 @@ namespace api {
|
|||
class BaseWindow;
|
||||
|
||||
// Wrapper around the content::WebContents.
|
||||
class WebContents : public ExclusiveAccessContext,
|
||||
class WebContents final : public ExclusiveAccessContext,
|
||||
public gin::Wrappable<WebContents>,
|
||||
public gin_helper::EventEmitterMixin<WebContents>,
|
||||
public gin_helper::Constructible<WebContents>,
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace electron::api {
|
|||
class WebContents;
|
||||
|
||||
// Bindings for accessing frames from the main process.
|
||||
class WebFrameMain : public gin::Wrappable<WebFrameMain>,
|
||||
class WebFrameMain final : public gin::Wrappable<WebFrameMain>,
|
||||
public gin_helper::EventEmitterMixin<WebFrameMain>,
|
||||
public gin_helper::Pinnable<WebFrameMain>,
|
||||
public gin_helper::Constructible<WebFrameMain> {
|
||||
|
|
|
@ -22,7 +22,8 @@ class BrowserContext;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class WebRequest : public gin::Wrappable<WebRequest>, public WebRequestAPI {
|
||||
class WebRequest final : public gin::Wrappable<WebRequest>,
|
||||
public WebRequestAPI {
|
||||
public:
|
||||
// Return the WebRequest object attached to |browser_context|, create if there
|
||||
// is no one.
|
||||
|
|
|
@ -24,7 +24,7 @@ class Handle;
|
|||
namespace electron {
|
||||
|
||||
// A non-blink version of blink::MessagePort.
|
||||
class MessagePort : public gin::Wrappable<MessagePort>,
|
||||
class MessagePort final : public gin::Wrappable<MessagePort>,
|
||||
public gin_helper::CleanedUpAtExit,
|
||||
public mojo::MessageReceiver {
|
||||
public:
|
||||
|
|
|
@ -43,7 +43,7 @@ class Arguments;
|
|||
|
||||
namespace electron::api {
|
||||
|
||||
class NativeImage : public gin::Wrappable<NativeImage> {
|
||||
class NativeImage final : public gin::Wrappable<NativeImage> {
|
||||
public:
|
||||
NativeImage(v8::Isolate* isolate, const gfx::Image& image);
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
|
|
|
@ -160,7 +160,8 @@ class BufferDataSource : public mojo::DataPipeProducer::DataSource {
|
|||
std::vector<char> buffer_;
|
||||
};
|
||||
|
||||
class JSChunkedDataPipeGetter : public gin::Wrappable<JSChunkedDataPipeGetter>,
|
||||
class JSChunkedDataPipeGetter final
|
||||
: public gin::Wrappable<JSChunkedDataPipeGetter>,
|
||||
public network::mojom::ChunkedDataPipeGetter {
|
||||
public:
|
||||
static gin::Handle<JSChunkedDataPipeGetter> Create(
|
||||
|
|
|
@ -43,7 +43,7 @@ class ElectronBrowserContext;
|
|||
namespace electron::api {
|
||||
|
||||
/** Wraps a SimpleURLLoader to make it usable from JavaScript */
|
||||
class SimpleURLLoaderWrapper
|
||||
class SimpleURLLoaderWrapper final
|
||||
: public gin::Wrappable<SimpleURLLoaderWrapper>,
|
||||
public gin_helper::EventEmitterMixin<SimpleURLLoaderWrapper>,
|
||||
public network::SimpleURLLoaderStreamConsumer,
|
||||
|
|
|
@ -252,7 +252,7 @@ bool Converter<net::HttpRequestHeaders>::FromV8(v8::Isolate* isolate,
|
|||
return true;
|
||||
}
|
||||
|
||||
class ChunkedDataPipeReadableStream
|
||||
class ChunkedDataPipeReadableStream final
|
||||
: public gin::Wrappable<ChunkedDataPipeReadableStream> {
|
||||
public:
|
||||
static gin::Handle<ChunkedDataPipeReadableStream> Create(
|
||||
|
|
|
@ -19,7 +19,7 @@ class ObjectTemplate;
|
|||
|
||||
namespace gin_helper::internal {
|
||||
|
||||
class Event : public gin::Wrappable<Event>,
|
||||
class Event final : public gin::Wrappable<Event>,
|
||||
public gin_helper::Constructible<Event> {
|
||||
public:
|
||||
// gin_helper::Constructible
|
||||
|
|
|
@ -41,7 +41,7 @@ RenderFrame* GetCurrentRenderFrame() {
|
|||
return RenderFrame::FromWebFrame(frame);
|
||||
}
|
||||
|
||||
class IPCRenderer : public gin::Wrappable<IPCRenderer>,
|
||||
class IPCRenderer final : public gin::Wrappable<IPCRenderer>,
|
||||
public content::RenderFrameObserver {
|
||||
public:
|
||||
static gin::WrapperInfo kWrapperInfo;
|
||||
|
|
|
@ -329,7 +329,7 @@ class SpellCheckerHolder final : public content::RenderFrameObserver {
|
|||
|
||||
} // namespace
|
||||
|
||||
class WebFrameRenderer : public gin::Wrappable<WebFrameRenderer>,
|
||||
class WebFrameRenderer final : public gin::Wrappable<WebFrameRenderer>,
|
||||
public content::RenderFrameObserver {
|
||||
public:
|
||||
static gin::WrapperInfo kWrapperInfo;
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace electron {
|
|||
// There is only a single instance of this class
|
||||
// for the lifetime of a Utility Process which
|
||||
// also means that GC lifecycle is ignored by this class.
|
||||
class ParentPort : public gin::Wrappable<ParentPort>,
|
||||
class ParentPort final : public gin::Wrappable<ParentPort>,
|
||||
public mojo::MessageReceiver {
|
||||
public:
|
||||
static ParentPort* GetInstance();
|
||||
|
|
Loading…
Reference in a new issue