Skip to content

Commit 91320a9

Browse files
committed
Remove AtomRendererBindings
After the simplification of code this class is no longer needed.
1 parent 0bcc9b7 commit 91320a9

File tree

6 files changed

+45
-127
lines changed

6 files changed

+45
-127
lines changed

atom.gyp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,6 @@
266266
'atom/renderer/api/atom_api_spell_check_client.h',
267267
'atom/renderer/api/atom_api_web_frame.cc',
268268
'atom/renderer/api/atom_api_web_frame.h',
269-
'atom/renderer/api/atom_renderer_bindings.cc',
270-
'atom/renderer/api/atom_renderer_bindings.h',
271269
'atom/renderer/atom_render_view_observer.cc',
272270
'atom/renderer/atom_render_view_observer.h',
273271
'atom/renderer/atom_renderer_client.cc',

atom/renderer/api/atom_renderer_bindings.cc

Lines changed: 0 additions & 71 deletions
This file was deleted.

atom/renderer/api/atom_renderer_bindings.h

Lines changed: 0 additions & 42 deletions
This file was deleted.

atom/renderer/atom_render_view_observer.cc

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
#include <vector>
99

1010
#include "atom/common/api/api_messages.h"
11+
#include "atom/common/native_mate_converters/string16_converter.h"
12+
#include "atom/common/native_mate_converters/value_converter.h"
1113
#include "atom/common/options_switches.h"
12-
#include "atom/renderer/api/atom_renderer_bindings.h"
1314
#include "atom/renderer/atom_renderer_client.h"
1415
#include "base/command_line.h"
1516
#include "base/strings/string_number_conversions.h"
@@ -19,14 +20,32 @@
1920
#include "third_party/WebKit/public/web/WebDocument.h"
2021
#include "third_party/WebKit/public/web/WebFrame.h"
2122
#include "third_party/WebKit/public/web/WebLocalFrame.h"
23+
#include "third_party/WebKit/public/web/WebKit.h"
2224
#include "third_party/WebKit/public/web/WebView.h"
2325

2426
#include "atom/common/node_includes.h"
2527

26-
using blink::WebFrame;
27-
2828
namespace atom {
2929

30+
namespace {
31+
32+
v8::Handle<v8::Object> GetProcessObject(v8::Isolate* isolate,
33+
v8::Handle<v8::Context> context) {
34+
v8::Handle<v8::String> key = mate::StringToV8(isolate, "process");
35+
return context->Global()->Get(key)->ToObject();
36+
}
37+
38+
std::vector<v8::Handle<v8::Value>> ListValueToVector(
39+
v8::Isolate* isolate,
40+
const base::ListValue& list) {
41+
v8::Handle<v8::Value> array = mate::ConvertToV8(isolate, list);
42+
std::vector<v8::Handle<v8::Value>> result;
43+
mate::ConvertFromV8(isolate, array, &result);
44+
return result;
45+
}
46+
47+
} // namespace
48+
3049
AtomRenderViewObserver::AtomRenderViewObserver(
3150
content::RenderView* render_view,
3251
AtomRendererClient* renderer_client)
@@ -82,8 +101,25 @@ void AtomRenderViewObserver::OnBrowserMessage(const base::string16& channel,
82101
if (!document_created_)
83102
return;
84103

85-
renderer_client_->atom_bindings()->OnBrowserMessage(
86-
render_view(), channel, args);
104+
if (!render_view()->GetWebView())
105+
return;
106+
107+
blink::WebFrame* frame = render_view()->GetWebView()->mainFrame();
108+
if (!frame || frame->isWebRemoteFrame())
109+
return;
110+
111+
v8::Isolate* isolate = blink::mainThreadIsolate();
112+
v8::HandleScope handle_scope(isolate);
113+
114+
v8::Local<v8::Context> context = frame->mainWorldScriptContext();
115+
v8::Context::Scope context_scope(context);
116+
117+
std::vector<v8::Handle<v8::Value>> arguments = ListValueToVector(
118+
isolate, args);
119+
arguments.insert(arguments.begin(), mate::ConvertToV8(isolate, channel));
120+
121+
v8::Handle<v8::Object> process = GetProcessObject(isolate, context);
122+
node::MakeCallback(isolate, process, "emit", arguments.size(), &arguments[0]);
87123
}
88124

89125
} // namespace atom

atom/renderer/atom_renderer_client.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
#include <algorithm>
88
#include <string>
99

10+
#include "atom/common/api/atom_bindings.h"
1011
#include "atom/common/node_bindings.h"
1112
#include "atom/common/options_switches.h"
12-
#include "atom/renderer/api/atom_renderer_bindings.h"
1313
#include "atom/renderer/atom_render_view_observer.h"
1414
#include "chrome/renderer/printing/print_web_view_helper.h"
1515
#include "chrome/renderer/tts_dispatcher.h"
@@ -18,7 +18,6 @@
1818
#include "content/public/renderer/render_frame_observer.h"
1919
#include "content/public/renderer/render_thread.h"
2020
#include "base/command_line.h"
21-
#include "native_mate/converter.h"
2221
#include "third_party/WebKit/public/web/WebCustomElement.h"
2322
#include "third_party/WebKit/public/web/WebFrame.h"
2423
#include "third_party/WebKit/public/web/WebPluginParams.h"
@@ -67,7 +66,7 @@ class AtomRenderFrameObserver : public content::RenderFrameObserver {
6766

6867
AtomRendererClient::AtomRendererClient()
6968
: node_bindings_(NodeBindings::Create(false)),
70-
atom_bindings_(new AtomRendererBindings),
69+
atom_bindings_(new AtomBindings),
7170
main_frame_(nullptr),
7271
is_initialized_(false) {
7372
}

atom/renderer/atom_renderer_client.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
namespace atom {
1414

15-
class AtomRendererBindings;
15+
class AtomBindings;
1616
class NodeBindings;
1717

1818
class AtomRendererClient : public content::ContentRendererClient,
@@ -24,8 +24,6 @@ class AtomRendererClient : public content::ContentRendererClient,
2424
// Forwarded by RenderFrameObserver.
2525
void DidClearWindowObject();
2626

27-
AtomRendererBindings* atom_bindings() const { return atom_bindings_.get(); }
28-
2927
private:
3028
enum NodeIntegration {
3129
ALL,
@@ -61,7 +59,7 @@ class AtomRendererClient : public content::ContentRendererClient,
6159
void EnableWebRuntimeFeatures();
6260

6361
scoped_ptr<NodeBindings> node_bindings_;
64-
scoped_ptr<AtomRendererBindings> atom_bindings_;
62+
scoped_ptr<AtomBindings> atom_bindings_;
6563

6664
// The main frame.
6765
blink::WebFrame* main_frame_;

0 commit comments

Comments
 (0)