// Copyright (c) 2015 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #include "atom/browser/api/atom_api_session.h" #include "atom/browser/api/atom_api_cookies.h" #include "atom/browser/atom_browser_context.h" #include "native_mate/callback.h" #include "native_mate/dictionary.h" #include "native_mate/object_template_builder.h" #include "atom/common/node_includes.h" namespace atom { namespace api { Session::Session(AtomBrowserContext* browser_context) : browser_context_(browser_context) { } Session::~Session() { } v8::Local Session::Cookies(v8::Isolate* isolate) { if (cookies_.IsEmpty()) { auto handle = atom::api::Cookies::Create(isolate, browser_context_); cookies_.Reset(isolate, handle.ToV8()); } return v8::Local::New(isolate, cookies_); } mate::ObjectTemplateBuilder Session::GetObjectTemplateBuilder( v8::Isolate* isolate) { return mate::ObjectTemplateBuilder(isolate) .SetProperty("cookies", &Session::Cookies); } // static mate::Handle Session::Create( v8::Isolate* isolate, AtomBrowserContext* browser_context) { return mate::CreateHandle(isolate, new Session(browser_context)); } } // namespace api } // namespace atom