Skip to content

Commit 0f7c25f

Browse files
committed
Put View APIs under a build flag
1 parent 2c8dc9e commit 0f7c25f

File tree

6 files changed

+35
-8
lines changed

6 files changed

+35
-8
lines changed

atom/browser/api/atom_api_view.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ View::~View() {
2323
delete view_;
2424
}
2525

26+
#if defined(ENABLE_VIEW_API)
2627
void View::SetLayoutManager(mate::Handle<LayoutManager> layout_manager) {
2728
layout_manager_.Reset(isolate(), layout_manager->GetWrapper());
2829
// TODO(zcbenz): New versions of Chrome takes std::unique_ptr instead of raw
@@ -41,6 +42,7 @@ void View::AddChildViewAt(mate::Handle<View> child, size_t index) {
4142
isolate(), child->GetWrapper()); // v8::Global(args...)
4243
view()->AddChildViewAt(child->view(), index);
4344
}
45+
#endif
4446

4547
// static
4648
mate::WrappableBase* View::New(mate::Arguments* args) {
@@ -53,10 +55,12 @@ mate::WrappableBase* View::New(mate::Arguments* args) {
5355
void View::BuildPrototype(v8::Isolate* isolate,
5456
v8::Local<v8::FunctionTemplate> prototype) {
5557
prototype->SetClassName(mate::StringToV8(isolate, "View"));
58+
#if defined(ENABLE_VIEW_API)
5659
mate::ObjectTemplateBuilder(isolate, prototype->PrototypeTemplate())
5760
.SetMethod("setLayoutManager", &View::SetLayoutManager)
5861
.SetMethod("addChildView", &View::AddChildView)
5962
.SetMethod("addChildViewAt", &View::AddChildViewAt);
63+
#endif
6064
}
6165

6266
} // namespace api

atom/browser/api/atom_api_view.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ class View : public mate::TrackableObject<View> {
2323
static void BuildPrototype(v8::Isolate* isolate,
2424
v8::Local<v8::FunctionTemplate> prototype);
2525

26+
#if defined(ENABLE_VIEW_API)
2627
void SetLayoutManager(mate::Handle<LayoutManager> layout_manager);
2728
void AddChildView(mate::Handle<View> view);
2829
void AddChildViewAt(mate::Handle<View> view, size_t index);
30+
#endif
2931

3032
views::View* view() const { return view_; }
3133

atom/common/node_bindings.cc

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,13 @@
3131
V(atom_browser_app) \
3232
V(atom_browser_auto_updater) \
3333
V(atom_browser_browser_view) \
34-
V(atom_browser_box_layout) \
3534
V(atom_browser_content_tracing) \
3635
V(atom_browser_debugger) \
3736
V(atom_browser_desktop_capturer) \
3837
V(atom_browser_dialog) \
3938
V(atom_browser_download_item) \
4039
V(atom_browser_global_shortcut) \
4140
V(atom_browser_in_app_purchase) \
42-
V(atom_browser_layout_manager) \
4341
V(atom_browser_menu) \
4442
V(atom_browser_net) \
4543
V(atom_browser_power_monitor) \
@@ -67,13 +65,20 @@
6765
V(atom_renderer_ipc) \
6866
V(atom_renderer_web_frame)
6967

68+
#define ELECTRON_VIEW_MODULES(V) \
69+
V(atom_browser_box_layout) \
70+
V(atom_browser_layout_manager)
71+
7072
// This is used to load built-in modules. Instead of using
7173
// __attribute__((constructor)), we call the _register_<modname>
7274
// function for each built-in modules explicitly. This is only
7375
// forward declaration. The definitions are in each module's
7476
// implementation when calling the NODE_BUILTIN_MODULE_CONTEXT_AWARE.
7577
#define V(modname) void _register_##modname();
7678
ELECTRON_BUILTIN_MODULES(V)
79+
#if defined(ENABLE_VIEW_API)
80+
ELECTRON_VIEW_MODULES(V)
81+
#endif
7782
#undef V
7883

7984
namespace {
@@ -167,6 +172,9 @@ NodeBindings::~NodeBindings() {
167172
void NodeBindings::RegisterBuiltinModules() {
168173
#define V(modname) _register_##modname();
169174
ELECTRON_BUILTIN_MODULES(V)
175+
#if defined(ENABLE_VIEW_API)
176+
ELECTRON_VIEW_MODULES(V)
177+
#endif
170178
#undef V
171179
}
172180

electron.gyp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@
3838
'ENABLE_RUN_AS_NODE',
3939
],
4040
}], # enable_run_as_node
41+
['enable_view_api==1', {
42+
'defines': [
43+
'ENABLE_VIEW_API',
44+
],
45+
}], # enable_view_api
4146
],
4247
},
4348
'targets': [

features.gypi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
'enable_osr%': 1, # FIXME(alexeykuzmin)
66
'enable_pdf_viewer%': 0, # FIXME(deepak1556)
77
'enable_run_as_node%': 1,
8+
'enable_view_api%': 0,
89
},
910
'enable_osr%': '<(enable_osr)',
1011
'enable_pdf_viewer%': '<(enable_pdf_viewer)',
1112
'enable_run_as_node%': '<(enable_run_as_node)',
13+
'enable_view_api%': '<(enable_view_api)',
1214
},
1315
}

filenames.gypi

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
'lib/browser/api/auto-updater/auto-updater-native.js',
1414
'lib/browser/api/auto-updater/auto-updater-win.js',
1515
'lib/browser/api/auto-updater/squirrel-update-win.js',
16-
'lib/browser/api/box-layout.js',
1716
'lib/browser/api/browser-view.js',
1817
'lib/browser/api/browser-window.js',
1918
'lib/browser/api/content-tracing.js',
@@ -22,7 +21,6 @@
2221
'lib/browser/api/global-shortcut.js',
2322
'lib/browser/api/ipc-main.js',
2423
'lib/browser/api/in-app-purchase.js',
25-
'lib/browser/api/layout-manager.js',
2624
'lib/browser/api/menu-item-roles.js',
2725
'lib/browser/api/menu-item.js',
2826
'lib/browser/api/menu-utils.js',
@@ -115,8 +113,6 @@
115113
'atom/browser/api/atom_api_app.h',
116114
'atom/browser/api/atom_api_auto_updater.cc',
117115
'atom/browser/api/atom_api_auto_updater.h',
118-
'atom/browser/api/atom_api_box_layout.cc',
119-
'atom/browser/api/atom_api_box_layout.h',
120116
'atom/browser/api/atom_api_browser_view.cc',
121117
'atom/browser/api/atom_api_browser_view.h',
122118
'atom/browser/api/atom_api_content_tracing.cc',
@@ -133,8 +129,6 @@
133129
'atom/browser/api/atom_api_global_shortcut.h',
134130
'atom/browser/api/atom_api_in_app_purchase.cc',
135131
'atom/browser/api/atom_api_in_app_purchase.h',
136-
'atom/browser/api/atom_api_layout_manager.cc',
137-
'atom/browser/api/atom_api_layout_manager.h',
138132
'atom/browser/api/atom_api_menu.cc',
139133
'atom/browser/api/atom_api_menu.h',
140134
'atom/browser/api/atom_api_menu_mac.h',
@@ -781,6 +775,18 @@
781775
'atom/app/node_main.h',
782776
],
783777
}], # enable_run_as_node
778+
['enable_view_api==1', {
779+
'js_sources': [
780+
'lib/browser/api/box-layout.js',
781+
'lib/browser/api/layout-manager.js',
782+
],
783+
'lib_sources': [
784+
'atom/browser/api/atom_api_box_layout.cc',
785+
'atom/browser/api/atom_api_box_layout.h',
786+
'atom/browser/api/atom_api_layout_manager.cc',
787+
'atom/browser/api/atom_api_layout_manager.h',
788+
],
789+
}], # enable_view_api
784790
['mas_build==1', {
785791
'lib_sources': [
786792
'atom/browser/api/atom_api_app_mas.mm',

0 commit comments

Comments
 (0)