From 2ff104d0125e3434cc1a0e6de57cc9938c70481a Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 7 Aug 2015 18:10:19 +0800 Subject: [PATCH] Move callback converter from native mate to electron --- atom/browser/api/atom_api_app.cc | 2 +- atom/browser/api/atom_api_content_tracing.cc | 2 +- atom/browser/api/atom_api_cookies.cc | 2 +- atom/browser/api/atom_api_dialog.cc | 2 +- atom/browser/api/atom_api_global_shortcut.cc | 2 +- atom/browser/api/atom_api_menu.cc | 2 +- atom/browser/api/atom_api_protocol.cc | 2 +- atom/browser/api/atom_api_session.cc | 2 +- atom/browser/api/atom_api_web_contents.cc | 2 +- atom/browser/api/atom_api_window.cc | 2 +- atom/common/api/atom_api_asar.cc | 2 +- atom/common/native_mate_converters/callback.h | 439 ++++++++++++++++++ atom/renderer/api/atom_api_web_frame.cc | 2 +- filenames.gypi | 1 + vendor/native_mate | 2 +- 15 files changed, 453 insertions(+), 13 deletions(-) create mode 100644 atom/common/native_mate_converters/callback.h diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index fea4deda5b1b..c25b3be5f4d6 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -17,6 +17,7 @@ #include "atom/browser/atom_browser_main_parts.h" #include "atom/browser/browser.h" #include "atom/browser/api/atom_api_web_contents.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "base/command_line.h" #include "base/environment.h" @@ -25,7 +26,6 @@ #include "brightray/browser/brightray_paths.h" #include "content/public/browser/client_certificate_delegate.h" #include "content/public/browser/gpu_data_manager.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" #include "net/ssl/ssl_cert_request_info.h" diff --git a/atom/browser/api/atom_api_content_tracing.cc b/atom/browser/api/atom_api_content_tracing.cc index 9507d19d399a..e404a8f26ca6 100644 --- a/atom/browser/api/atom_api_content_tracing.cc +++ b/atom/browser/api/atom_api_content_tracing.cc @@ -5,11 +5,11 @@ #include #include +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "base/bind.h" #include "base/files/file_util.h" #include "content/public/browser/tracing_controller.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "atom/common/node_includes.h" diff --git a/atom/browser/api/atom_api_cookies.cc b/atom/browser/api/atom_api_cookies.cc index 0363032df878..040efe1c360b 100644 --- a/atom/browser/api/atom_api_cookies.cc +++ b/atom/browser/api/atom_api_cookies.cc @@ -4,13 +4,13 @@ #include "atom/browser/api/atom_api_cookies.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/gurl_converter.h" #include "atom/common/native_mate_converters/value_converter.h" #include "base/bind.h" #include "base/time/time.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" #include "net/cookies/cookie_monster.h" diff --git a/atom/browser/api/atom_api_dialog.cc b/atom/browser/api/atom_api_dialog.cc index 47021407e1ea..40ee4d0d9b51 100644 --- a/atom/browser/api/atom_api_dialog.cc +++ b/atom/browser/api/atom_api_dialog.cc @@ -10,9 +10,9 @@ #include "atom/browser/native_window.h" #include "atom/browser/ui/file_dialog.h" #include "atom/browser/ui/message_box.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "atom/common/native_mate_converters/image_converter.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "atom/common/node_includes.h" diff --git a/atom/browser/api/atom_api_global_shortcut.cc b/atom/browser/api/atom_api_global_shortcut.cc index 47bebe9d12bd..f5a03e4abf90 100644 --- a/atom/browser/api/atom_api_global_shortcut.cc +++ b/atom/browser/api/atom_api_global_shortcut.cc @@ -7,8 +7,8 @@ #include #include "atom/common/native_mate_converters/accelerator_converter.h" +#include "atom/common/native_mate_converters/callback.h" #include "base/stl_util.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "atom/common/node_includes.h" diff --git a/atom/browser/api/atom_api_menu.cc b/atom/browser/api/atom_api_menu.cc index 1eb5cb31d118..915e152b3a68 100644 --- a/atom/browser/api/atom_api_menu.cc +++ b/atom/browser/api/atom_api_menu.cc @@ -6,9 +6,9 @@ #include "atom/browser/native_window.h" #include "atom/common/native_mate_converters/accelerator_converter.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/image_converter.h" #include "atom/common/native_mate_converters/string16_converter.h" -#include "native_mate/callback.h" #include "native_mate/constructor.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" diff --git a/atom/browser/api/atom_api_protocol.cc b/atom/browser/api/atom_api_protocol.cc index 53aef95b7657..1241a95a718f 100644 --- a/atom/browser/api/atom_api_protocol.cc +++ b/atom/browser/api/atom_api_protocol.cc @@ -10,10 +10,10 @@ #include "atom/browser/api/atom_api_session.h" #include "atom/browser/net/adapter_request_job.h" #include "atom/browser/net/atom_url_request_job_factory.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "atom/common/native_mate_converters/gurl_converter.h" #include "content/public/browser/browser_thread.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "net/url_request/url_request_context.h" diff --git a/atom/browser/api/atom_api_session.cc b/atom/browser/api/atom_api_session.cc index 19efd2d32ac8..b8b1434dd70d 100644 --- a/atom/browser/api/atom_api_session.cc +++ b/atom/browser/api/atom_api_session.cc @@ -9,6 +9,7 @@ #include "atom/browser/api/atom_api_cookies.h" #include "atom/browser/atom_browser_context.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/gurl_converter.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "base/files/file_path.h" @@ -18,7 +19,6 @@ #include "chrome/common/pref_names.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/storage_partition.h" -#include "native_mate/callback.h" #include "native_mate/object_template_builder.h" #include "net/base/load_flags.h" #include "net/disk_cache/disk_cache.h" diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index 1f68a4d8ad1d..6adcf5377357 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -14,6 +14,7 @@ #include "atom/browser/web_view_guest_delegate.h" #include "atom/common/api/api_messages.h" #include "atom/common/event_emitter_caller.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "atom/common/native_mate_converters/gfx_converter.h" #include "atom/common/native_mate_converters/gurl_converter.h" @@ -37,7 +38,6 @@ #include "content/public/browser/storage_partition.h" #include "content/public/browser/site_instance.h" #include "content/public/browser/web_contents.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" #include "net/http/http_response_headers.h" diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 6ff1dfc00628..e6d16fe6fa59 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -8,12 +8,12 @@ #include "atom/browser/api/atom_api_web_contents.h" #include "atom/browser/browser.h" #include "atom/browser/native_window.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/gfx_converter.h" #include "atom/common/native_mate_converters/gurl_converter.h" #include "atom/common/native_mate_converters/image_converter.h" #include "atom/common/native_mate_converters/string16_converter.h" #include "content/public/browser/render_process_host.h" -#include "native_mate/callback.h" #include "native_mate/constructor.h" #include "native_mate/dictionary.h" #include "ui/gfx/geometry/rect.h" diff --git a/atom/common/api/atom_api_asar.cc b/atom/common/api/atom_api_asar.cc index 07d7c608d16d..24e9ce9b0668 100644 --- a/atom/common/api/atom_api_asar.cc +++ b/atom/common/api/atom_api_asar.cc @@ -8,9 +8,9 @@ #include "atom_natives.h" // NOLINT: This file is generated with coffee2c. #include "atom/common/asar/archive.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "native_mate/arguments.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" #include "native_mate/wrappable.h" diff --git a/atom/common/native_mate_converters/callback.h b/atom/common/native_mate_converters/callback.h new file mode 100644 index 000000000000..5dfcf9b25136 --- /dev/null +++ b/atom/common/native_mate_converters/callback.h @@ -0,0 +1,439 @@ +// Copyright (c) 2015 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#include "base/bind.h" +#include "base/callback.h" +#include "native_mate/function_template.h" +#include "native_mate/locker.h" +#include "native_mate/scoped_persistent.h" + +namespace mate { + +namespace internal { + +typedef scoped_refptr > SafeV8Function; + +// This set of templates invokes a V8::Function by converting the C++ types. +template +struct V8FunctionInvoker; + +template +struct V8FunctionInvoker()> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local val(holder->Call(holder, 0, NULL)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local val(holder->Call(holder, 0, NULL)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template<> +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + holder->Call(holder, 0, NULL); + } +}; + +template +struct V8FunctionInvoker(P1)> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function, P1 a1) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function, P1 a1) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function, P1 a1) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + }; + holder->Call(holder, arraysize(args), args); + } +}; + +template +struct V8FunctionInvoker(P1, P2)> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, + P2 a2) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + }; + holder->Call(holder, arraysize(args), args); + } +}; + +template +struct V8FunctionInvoker(P1, P2, P3)> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, + P2 a2, P3 a3) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + }; + holder->Call(holder, arraysize(args), args); + } +}; + +template +struct V8FunctionInvoker(P1, P2, P3, P4)> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, + P2 a2, P3 a3, P4 a4) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3, P4 a4) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3, P4 a4) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + }; + holder->Call(holder, arraysize(args), args); + } +}; + +template +struct V8FunctionInvoker(P1, P2, P3, P4, P5)> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, + P2 a2, P3 a3, P4 a4, P5 a5) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + ConvertToV8(isolate, a5), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3, P4 a4, P5 a5) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + ConvertToV8(isolate, a5), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3, P4 a4, P5 a5) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + ConvertToV8(isolate, a5), + }; + holder->Call(holder, arraysize(args), args); + } +}; + +template +struct V8FunctionInvoker(P1, P2, P3, P4, P5, P6)> { + static v8::Local Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, + P2 a2, P3 a3, P4 a4, P5 a5, P6 a6) { + Locker locker(isolate); + v8::EscapableHandleScope handle_scope(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + ConvertToV8(isolate, a5), + ConvertToV8(isolate, a6), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + return handle_scope.Escape(val); + } +}; + +template +struct V8FunctionInvoker { + static R Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3, P4 a4, P5 a5, P6 a6) { + R ret; + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + ConvertToV8(isolate, a5), + ConvertToV8(isolate, a6), + }; + v8::Local val(holder->Call(holder, arraysize(args), args)); + Converter::FromV8(isolate, val, &ret); + return ret; + } +}; + +template +struct V8FunctionInvoker { + static void Go(v8::Isolate* isolate, SafeV8Function function, P1 a1, P2 a2, + P3 a3, P4 a4, P5 a5, P6 a6) { + Locker locker(isolate); + MATE_HANDLE_SCOPE(isolate); + v8::Local holder = function->NewHandle(); + v8::Local context = holder->CreationContext(); + v8::Context::Scope context_scope(context); + v8::Local args[] = { + ConvertToV8(isolate, a1), + ConvertToV8(isolate, a2), + ConvertToV8(isolate, a3), + ConvertToV8(isolate, a4), + ConvertToV8(isolate, a5), + ConvertToV8(isolate, a6), + }; + holder->Call(holder, arraysize(args), args); + } +}; + +} // namespace internal + +template +struct Converter > { + static v8::Local ToV8(v8::Isolate* isolate, + const base::Callback& val) { + return CreateFunctionTemplate(isolate, val)->GetFunction(); + } + static bool FromV8(v8::Isolate* isolate, + v8::Local val, + base::Callback* out) { + if (!val->IsFunction()) + return false; + + internal::SafeV8Function function( + new RefCountedPersistent(isolate, val)); + *out = base::Bind(&internal::V8FunctionInvoker::Go, isolate, function); + return true; + } +}; + +} // namespace mate diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index 783650516bfa..d2c4ed2fa7b0 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -4,11 +4,11 @@ #include "atom/renderer/api/atom_api_web_frame.h" +#include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/gfx_converter.h" #include "atom/common/native_mate_converters/string16_converter.h" #include "atom/renderer/api/atom_api_spell_check_client.h" #include "content/public/renderer/render_frame.h" -#include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" #include "third_party/WebKit/public/web/WebDocument.h" diff --git a/filenames.gypi b/filenames.gypi index f7b9fca5e717..977eb1686fd9 100644 --- a/filenames.gypi +++ b/filenames.gypi @@ -274,6 +274,7 @@ 'atom/common/linux/application_info.cc', 'atom/common/native_mate_converters/accelerator_converter.cc', 'atom/common/native_mate_converters/accelerator_converter.h', + 'atom/common/native_mate_converters/callback.h', 'atom/common/native_mate_converters/file_path_converter.h', 'atom/common/native_mate_converters/gfx_converter.cc', 'atom/common/native_mate_converters/gfx_converter.h', diff --git a/vendor/native_mate b/vendor/native_mate index 656e403f0102..ebcf4c022467 160000 --- a/vendor/native_mate +++ b/vendor/native_mate @@ -1 +1 @@ -Subproject commit 656e403f0102c59428261c1eaad22912d2bbd3c5 +Subproject commit ebcf4c022467a43a5379446e1c031ffd10438b9c