chore: remove native_mate (Part 11) (#20719)

* refactor: convert Menu and globalShortcut to gin

* refactor: convert api::Cookies to gin

* refactor: convert View and WebContentsView to gin

* refactor: convert WebContents related classes to gin

* refactor: convert powerMonitor to gin

* refactor: prepare for header change

* refactor: remove last uses of mate::EventEmitter

* refactor: remove mate::EventEmitter

* refactor: move trackable_object to gin_helper

* fix: custom converter should not use Handle

* fix: no more need to check if icon is empty

It was a bug that the Handle<NativeImage> can be non-empty when the
image file does not exist. The bug was caused by the converter code
writing out the image even when the convertion fails.

The bug was work-arounded by adding an additional check, but since the
original bug had been fixed, the additional check is no longer needed.

* fix: should always set frameId even when callback is null

* fix: do not mix gin/mate handles for NativeImage
This commit is contained in:
Cheng Zhao 2019-10-25 22:03:28 +09:00 committed by GitHub
parent 0e0d4fe990
commit 0fe6767d6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
80 changed files with 823 additions and 1087 deletions

View file

@ -13,11 +13,11 @@
#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "shell/browser/api/trackable_object.h"
#include "gin/handle.h"
#include "shell/browser/native_window.h"
#include "shell/browser/native_window_observer.h"
#include "shell/common/api/atom_api_native_image.h"
#include "shell/common/gin_helper/event_emitter.h"
#include "shell/common/gin_helper/trackable_object.h"
namespace electron {
@ -25,11 +25,8 @@ namespace api {
class View;
class TopLevelWindow
: public mate::TrackableObject<
TopLevelWindow,
gin_helper::EventEmitter<mate::Wrappable<TopLevelWindow>>>,
public NativeWindowObserver {
class TopLevelWindow : public gin_helper::TrackableObject<TopLevelWindow>,
public NativeWindowObserver {
public:
static mate::WrappableBase* New(gin_helper::Arguments* args);
@ -44,9 +41,10 @@ class TopLevelWindow
protected:
// Common constructor.
TopLevelWindow(v8::Isolate* isolate, const mate::Dictionary& options);
TopLevelWindow(v8::Isolate* isolate, const gin_helper::Dictionary& options);
// Creating independent TopLevelWindow instance.
TopLevelWindow(gin_helper::Arguments* args, const mate::Dictionary& options);
TopLevelWindow(gin_helper::Arguments* args,
const gin_helper::Dictionary& options);
~TopLevelWindow() override;
// TrackableObject:
@ -91,7 +89,7 @@ class TopLevelWindow
#endif
// Public APIs of NativeWindow.
void SetContentView(mate::Handle<View> view);
void SetContentView(gin::Handle<View> view);
void Close();
virtual void Focus();
virtual void Blur();
@ -215,7 +213,7 @@ class TopLevelWindow
// Extra APIs added in JS.
bool SetThumbarButtons(gin_helper::Arguments* args);
#if defined(TOOLKIT_VIEWS)
void SetIcon(mate::Handle<NativeImage> icon);
void SetIcon(gin::Handle<NativeImage> icon);
#endif
#if defined(OS_WIN)
typedef base::RepeatingCallback<void(v8::Local<v8::Value>,