electron/browser/atom_browser_main_parts.cc

69 lines
1.9 KiB
C++
Raw Normal View History

2013-04-12 01:46:58 +00:00
// 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/atom_browser_main_parts.h"
#include "base/values.h"
#include "browser/api/atom_bindings.h"
#include "browser/atom_browser_context.h"
#include "browser/native_window.h"
#include "brightray/browser/browser_context.h"
#include "brightray/browser/inspectable_web_contents.h"
#include "brightray/browser/inspectable_web_contents_view.h"
2013-04-13 10:39:09 +00:00
#include "common/node_bindings.h"
#include "vendor/node/src/node_internals.h"
2013-04-12 01:46:58 +00:00
namespace atom {
2013-04-13 10:39:09 +00:00
AtomBrowserMainParts::AtomBrowserMainParts()
: atom_bindings_(new AtomBindings),
node_bindings_(NodeBindings::Create(true)) {
2013-04-12 01:46:58 +00:00
}
AtomBrowserMainParts::~AtomBrowserMainParts() {
}
brightray::BrowserContext* AtomBrowserMainParts::CreateBrowserContext() {
return new AtomBrowserContext();
}
2013-04-13 10:39:09 +00:00
void AtomBrowserMainParts::PostEarlyInitialization() {
brightray::BrowserMainParts::PostEarlyInitialization();
2013-04-13 10:39:09 +00:00
node_bindings_->Initialize();
atom_bindings_->BindTo(node::process);
node_bindings_->Load();
2013-04-13 10:39:09 +00:00
}
void AtomBrowserMainParts::PreMainMessageLoopStart() {
brightray::BrowserMainParts::PreMainMessageLoopStart();
node_bindings_->PrepareMessageLoop();
}
void AtomBrowserMainParts::PreMainMessageLoopRun() {
brightray::BrowserMainParts::PreMainMessageLoopRun();
node_bindings_->RunMessageLoop();
scoped_ptr<base::DictionaryValue> options(new base::DictionaryValue);
options->SetInteger("width", 800);
options->SetInteger("height", 600);
options->SetString("title", "Atom");
// FIXME: Leak object here.
NativeWindow* window = NativeWindow::Create(browser_context(), options.get());
window->InitFromOptions(options.get());
window->GetWebContents()->GetController().LoadURL(
GURL("http://localhost"),
content::Referrer(),
content::PAGE_TRANSITION_AUTO_TOPLEVEL,
std::string());
}
2013-04-12 01:46:58 +00:00
} // namespace atom