electron/brightray/browser/browser_client.cc

92 lines
2.5 KiB
C++
Raw Normal View History

2013-03-13 19:12:05 +00:00
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE-CHROMIUM file.
#include "browser/browser_client.h"
2013-03-13 19:12:05 +00:00
#include "browser/browser_context.h"
#include "browser/browser_main_parts.h"
#include "browser/media/media_capture_devices_dispatcher.h"
#include "browser/notification_presenter.h"
2013-03-13 19:12:05 +00:00
namespace brightray {
namespace {
BrowserClient* g_browser_client;
}
BrowserClient* BrowserClient::Get() {
return g_browser_client;
}
BrowserClient::BrowserClient()
: browser_main_parts_() {
DCHECK(!g_browser_client);
g_browser_client = this;
2013-03-13 19:12:05 +00:00
}
BrowserClient::~BrowserClient() {
}
BrowserContext* BrowserClient::browser_context() {
return browser_main_parts_->browser_context();
}
NotificationPresenter* BrowserClient::notification_presenter() {
#if defined(OS_MACOSX) || defined(OS_LINUX)
if (!notification_presenter_)
notification_presenter_.reset(NotificationPresenter::Create());
#endif
return notification_presenter_.get();
}
BrowserMainParts* BrowserClient::OverrideCreateBrowserMainParts(
const content::MainFunctionParams&) {
2013-03-13 19:12:05 +00:00
return new BrowserMainParts;
}
content::BrowserMainParts* BrowserClient::CreateBrowserMainParts(
const content::MainFunctionParams& parameters) {
DCHECK(!browser_main_parts_);
browser_main_parts_ = OverrideCreateBrowserMainParts(parameters);
return browser_main_parts_;
2013-03-13 19:12:05 +00:00
}
net::URLRequestContextGetter* BrowserClient::CreateRequestContext(
content::BrowserContext* browser_context,
content::ProtocolHandlerMap* protocol_handlers,
content::ProtocolHandlerScopedVector protocol_interceptors) {
auto context = static_cast<BrowserContext*>(browser_context);
return context->CreateRequestContext(protocol_handlers, protocol_interceptors.Pass());
2013-03-13 19:12:05 +00:00
}
void BrowserClient::ShowDesktopNotification(
const content::ShowDesktopNotificationHostMsgParams& params,
int render_process_id,
int render_view_id,
bool worker) {
auto presenter = notification_presenter();
if (!presenter)
return;
presenter->ShowNotification(params, render_process_id, render_view_id);
}
2013-03-29 13:36:07 +00:00
void BrowserClient::CancelDesktopNotification(
int render_process_id,
int render_view_id,
int notification_id) {
auto presenter = notification_presenter();
if (!presenter)
return;
presenter->CancelNotification(
render_process_id, render_view_id, notification_id);
2013-03-29 13:36:07 +00:00
}
content::MediaObserver* BrowserClient::GetMediaObserver() {
return MediaCaptureDevicesDispatcher::GetInstance();
}
} // namespace brightray