From b9cbfb81031ec42cba3625f28fe3e3ee151c2f2f Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Sat, 24 Aug 2013 15:26:10 +0800 Subject: [PATCH] Skelecton for the protocol module. --- atom.gyp | 3 +++ browser/api/atom_api_protocol.cc | 34 ++++++++++++++++++++++++++++++++ browser/api/atom_api_protocol.h | 30 ++++++++++++++++++++++++++++ browser/api/lib/protocol.coffee | 2 ++ common/api/atom_extensions.h | 1 + 5 files changed, 70 insertions(+) create mode 100644 browser/api/atom_api_protocol.cc create mode 100644 browser/api/atom_api_protocol.h create mode 100644 browser/api/lib/protocol.coffee diff --git a/atom.gyp b/atom.gyp index 08f4f61f5..3d1a6ffe3 100644 --- a/atom.gyp +++ b/atom.gyp @@ -19,6 +19,7 @@ 'browser/api/lib/menu.coffee', 'browser/api/lib/menu-item.coffee', 'browser/api/lib/power-monitor.coffee', + 'browser/api/lib/protocol.coffee', 'browser/atom/atom.coffee', 'browser/atom/objects-registry.coffee', 'browser/atom/rpc-server.coffee', @@ -54,6 +55,8 @@ 'browser/api/atom_api_menu_win.h', 'browser/api/atom_api_power_monitor.cc', 'browser/api/atom_api_power_monitor.h', + 'browser/api/atom_api_protocol.cc', + 'browser/api/atom_api_protocol.h', 'browser/api/atom_api_window.cc', 'browser/api/atom_api_window.h', 'browser/api/atom_browser_bindings.cc', diff --git a/browser/api/atom_api_protocol.cc b/browser/api/atom_api_protocol.cc new file mode 100644 index 000000000..871ae4b7e --- /dev/null +++ b/browser/api/atom_api_protocol.cc @@ -0,0 +1,34 @@ +// Copyright (c) 2013 GitHub, Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "browser/api/atom_api_protocol.h" + +#include "net/url_request/url_request_job_manager.h" +#include "vendor/node/src/node.h" + +namespace atom { + +namespace api { + +// static +v8::Handle Protocol::RegisterProtocol(const v8::Arguments& args) { + return v8::Undefined(); +} + +// static +v8::Handle Protocol::UnregisterProtocol(const v8::Arguments& args) { + return v8::Undefined(); +} + +// static +void Protocol::Initialize(v8::Handle target) { + node::SetMethod(target, "registerProtocol", RegisterProtocol); + node::SetMethod(target, "unregisterProtocol", UnregisterProtocol); +} + +} // namespace api + +} // namespace atom + +NODE_MODULE(atom_browser_protocol, atom::api::Protocol::Initialize) diff --git a/browser/api/atom_api_protocol.h b/browser/api/atom_api_protocol.h new file mode 100644 index 000000000..11b48f0a1 --- /dev/null +++ b/browser/api/atom_api_protocol.h @@ -0,0 +1,30 @@ +// Copyright (c) 2013 GitHub, Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ATOM_BROWSER_API_ATOM_API_PROTOCOL_H_ +#define ATOM_BROWSER_API_ATOM_API_PROTOCOL_H_ + +#include "base/basictypes.h" +#include "v8/include/v8.h" + +namespace atom { + +namespace api { + +class Protocol { + public: + static void Initialize(v8::Handle target); + + private: + static v8::Handle RegisterProtocol(const v8::Arguments& args); + static v8::Handle UnregisterProtocol(const v8::Arguments& args); + + DISALLOW_IMPLICIT_CONSTRUCTORS(Protocol); +}; + +} // namespace api + +} // namespace atom + +#endif // ATOM_BROWSER_API_ATOM_API_PROTOCOL_H_ diff --git a/browser/api/lib/protocol.coffee b/browser/api/lib/protocol.coffee new file mode 100644 index 000000000..8205b03cf --- /dev/null +++ b/browser/api/lib/protocol.coffee @@ -0,0 +1,2 @@ +module.exports = process.atomBinding 'protocol' + diff --git a/common/api/atom_extensions.h b/common/api/atom_extensions.h index b53cb13e2..edf2cfd1e 100644 --- a/common/api/atom_extensions.h +++ b/common/api/atom_extensions.h @@ -16,6 +16,7 @@ NODE_EXT_LIST_ITEM(atom_browser_dialog) NODE_EXT_LIST_ITEM(atom_browser_ipc) NODE_EXT_LIST_ITEM(atom_browser_menu) NODE_EXT_LIST_ITEM(atom_browser_power_monitor) +NODE_EXT_LIST_ITEM(atom_browser_protocol) NODE_EXT_LIST_ITEM(atom_browser_window) // Module names start with `atom_renderer_` can only be used by renderer