Browse Source

refactor: move native window gin converter (#19577)

* move native window gin converter

* extract to new file
Micha Hanselmann 5 years ago
parent
commit
57507ca37c

+ 2 - 0
filenames.gni

@@ -471,6 +471,7 @@ filenames = {
     "shell/common/gin_converters/image_converter_gin_adapter.h",
     "shell/common/gin_converters/message_box_converter.cc",
     "shell/common/gin_converters/message_box_converter.h",
+    "shell/common/gin_converters/native_window_converter.h",
     "shell/common/gin_converters/net_converter_gin_adapter.h",
     "shell/common/gin_converters/string16_converter.h",
     "shell/common/gin_util.h",
@@ -502,6 +503,7 @@ filenames = {
     "shell/common/native_mate_converters/image_converter.cc",
     "shell/common/native_mate_converters/image_converter.h",
     "shell/common/native_mate_converters/map_converter.h",
+    "shell/common/native_mate_converters/native_window_converter.h",
     "shell/common/native_mate_converters/net_converter.cc",
     "shell/common/native_mate_converters/net_converter.h",
     "shell/common/native_mate_converters/network_converter.cc",

+ 1 - 0
shell/browser/api/atom_api_dialog.cc

@@ -13,6 +13,7 @@
 #include "shell/common/api/gin_utils.h"
 #include "shell/common/gin_converters/file_dialog_converter_gin_adapter.h"
 #include "shell/common/gin_converters/message_box_converter.h"
+#include "shell/common/gin_converters/native_window_converter.h"
 #include "shell/common/gin_converters/net_converter_gin_adapter.h"
 #include "shell/common/node_includes.h"
 #include "shell/common/promise_util.h"

+ 1 - 1
shell/browser/api/atom_api_screen.cc

@@ -10,9 +10,9 @@
 #include "base/bind.h"
 #include "native_mate/dictionary.h"
 #include "native_mate/object_template_builder.h"
-#include "shell/browser/api/atom_api_browser_window.h"
 #include "shell/browser/browser.h"
 #include "shell/common/native_mate_converters/gfx_converter.h"
+#include "shell/common/native_mate_converters/native_window_converter.h"
 #include "shell/common/node_includes.h"
 #include "ui/display/display.h"
 #include "ui/display/screen.h"

+ 1 - 0
shell/browser/api/atom_api_top_level_window.cc

@@ -20,6 +20,7 @@
 #include "shell/common/native_mate_converters/file_path_converter.h"
 #include "shell/common/native_mate_converters/gfx_converter.h"
 #include "shell/common/native_mate_converters/image_converter.h"
+#include "shell/common/native_mate_converters/native_window_converter.h"
 #include "shell/common/native_mate_converters/string16_converter.h"
 #include "shell/common/native_mate_converters/value_converter.h"
 #include "shell/common/node_includes.h"

+ 0 - 24
shell/browser/api/atom_api_top_level_window.h

@@ -261,28 +261,4 @@ class TopLevelWindow : public mate::TrackableObject<TopLevelWindow>,
 
 }  // namespace electron
 
-namespace mate {
-
-template <>
-struct Converter<electron::NativeWindow*> {
-  static bool FromV8(v8::Isolate* isolate,
-                     v8::Local<v8::Value> val,
-                     electron::NativeWindow** out) {
-    // null would be tranfered to NULL.
-    if (val->IsNull()) {
-      *out = NULL;
-      return true;
-    }
-
-    electron::api::TopLevelWindow* window;
-    if (!Converter<electron::api::TopLevelWindow*>::FromV8(isolate, val,
-                                                           &window))
-      return false;
-    *out = window->window();
-    return true;
-  }
-};
-
-}  // namespace mate
-
 #endif  // SHELL_BROWSER_API_ATOM_API_TOP_LEVEL_WINDOW_H_

+ 1 - 0
shell/common/gin_converters/message_box_converter.cc

@@ -6,6 +6,7 @@
 
 #include "gin/dictionary.h"
 #include "shell/common/gin_converters/image_converter_gin_adapter.h"
+#include "shell/common/gin_converters/native_window_converter.h"
 
 namespace gin {
 

+ 0 - 11
shell/common/gin_converters/message_box_converter.h

@@ -6,21 +6,10 @@
 #define SHELL_COMMON_GIN_CONVERTERS_MESSAGE_BOX_CONVERTER_H_
 
 #include "gin/converter.h"
-#include "shell/browser/api/atom_api_browser_window.h"
 #include "shell/browser/ui/message_box.h"
 
 namespace gin {
 
-// TODO(deermichel): remove adapter after removing mate
-template <>
-struct Converter<electron::NativeWindow*> {
-  static bool FromV8(v8::Isolate* isolate,
-                     v8::Local<v8::Value> val,
-                     electron::NativeWindow** out) {
-    return mate::ConvertFromV8(isolate, val, out);
-  }
-};
-
 template <>
 struct Converter<electron::MessageBoxSettings> {
   static bool FromV8(v8::Isolate* isolate,

+ 36 - 0
shell/common/gin_converters/native_window_converter.h

@@ -0,0 +1,36 @@
+// Copyright (c) 2019 GitHub, Inc.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#ifndef SHELL_COMMON_GIN_CONVERTERS_NATIVE_WINDOW_CONVERTER_H_
+#define SHELL_COMMON_GIN_CONVERTERS_NATIVE_WINDOW_CONVERTER_H_
+
+#include "gin/converter.h"
+#include "shell/browser/api/atom_api_top_level_window.h"
+
+namespace gin {
+
+template <>
+struct Converter<electron::NativeWindow*> {
+  static bool FromV8(v8::Isolate* isolate,
+                     v8::Local<v8::Value> val,
+                     electron::NativeWindow** out) {
+    // null would be tranfered to NULL.
+    if (val->IsNull()) {
+      *out = NULL;
+      return true;
+    }
+
+    electron::api::TopLevelWindow* window;
+    // TODO(deermichel): remove mate:: after dropping mate
+    if (!mate::Converter<electron::api::TopLevelWindow*>::FromV8(isolate, val,
+                                                                 &window))
+      return false;
+    *out = window->window();
+    return true;
+  }
+};
+
+}  // namespace gin
+
+#endif  // SHELL_COMMON_GIN_CONVERTERS_NATIVE_WINDOW_CONVERTER_H_

+ 1 - 0
shell/common/native_mate_converters/file_dialog_converter.cc

@@ -8,6 +8,7 @@
 #include "shell/browser/api/atom_api_browser_window.h"
 #include "shell/browser/ui/file_dialog.h"
 #include "shell/common/native_mate_converters/file_path_converter.h"
+#include "shell/common/native_mate_converters/native_window_converter.h"
 
 namespace mate {
 

+ 24 - 0
shell/common/native_mate_converters/native_window_converter.h

@@ -0,0 +1,24 @@
+// Copyright (c) 2019 GitHub, Inc.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+#ifndef SHELL_COMMON_NATIVE_MATE_CONVERTERS_NATIVE_WINDOW_CONVERTER_H_
+#define SHELL_COMMON_NATIVE_MATE_CONVERTERS_NATIVE_WINDOW_CONVERTER_H_
+
+#include "native_mate/converter.h"
+#include "shell/common/gin_converters/native_window_converter.h"
+
+namespace mate {
+
+template <>
+struct Converter<electron::NativeWindow*> {
+  static bool FromV8(v8::Isolate* isolate,
+                     v8::Local<v8::Value> val,
+                     electron::NativeWindow** out) {
+    return gin::ConvertFromV8(isolate, val, out);
+  }
+};
+
+}  // namespace mate
+
+#endif  // SHELL_COMMON_NATIVE_MATE_CONVERTERS_NATIVE_WINDOW_CONVERTER_H_