| Index: android_webview/lib/main/webview_main_delegate.cc
|
| diff --git a/android_webview/lib/main/webview_main_delegate.cc b/android_webview/lib/main/webview_main_delegate.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9ff742a15ddc5a88dca073098b2293498bcfd541
|
| --- /dev/null
|
| +++ b/android_webview/lib/main/webview_main_delegate.cc
|
| @@ -0,0 +1,77 @@
|
| +// 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 file.
|
| +
|
| +#include "android_webview/lib/main/webview_main_delegate.h"
|
| +
|
| +#include "base/lazy_instance.h"
|
| +#include "base/logging.h"
|
| +#include "chrome/browser/chrome_content_browser_client.h"
|
| +#include "chrome/common/chrome_paths.h"
|
| +#include "chrome/renderer/chrome_content_renderer_client.h"
|
| +#include "content/public/browser/browser_main_runner.h"
|
| +#include "content/public/common/content_client.h"
|
| +
|
| +namespace android_webview {
|
| +
|
| +base::LazyInstance<chrome::ChromeContentBrowserClient>
|
| + g_webview_content_browser_client = LAZY_INSTANCE_INITIALIZER;
|
| +base::LazyInstance<chrome::ChromeContentRendererClient>
|
| + g_webview_content_renderer_client = LAZY_INSTANCE_INITIALIZER;
|
| +
|
| +WebViewMainDelegate::WebViewMainDelegate() {
|
| +}
|
| +
|
| +WebViewMainDelegate::~WebViewMainDelegate() {
|
| +}
|
| +
|
| +bool WebViewMainDelegate::BasicStartupComplete(int* exit_code) {
|
| + content::SetContentClient(&chrome_content_client_);
|
| +
|
| + return false;
|
| +}
|
| +
|
| +void WebViewMainDelegate::PreSandboxStartup() {
|
| + chrome::RegisterPathProvider();
|
| +
|
| + // TODO(torne): When we have a separate renderer process, we need to handle
|
| + // being passed open FDs for the resource paks here.
|
| +}
|
| +
|
| +void WebViewMainDelegate::SandboxInitialized(const std::string& process_type) {
|
| + // TODO(torne): Adjust linux OOM score here.
|
| +}
|
| +
|
| +int WebViewMainDelegate::RunProcess(
|
| + const std::string& process_type,
|
| + const content::MainFunctionParams& main_function_params) {
|
| + if (process_type.empty()) {
|
| + browser_runner_.reset(content::BrowserMainRunner::Create());
|
| + int exit_code = browser_runner_->Initialize(main_function_params);
|
| + DCHECK(exit_code < 0);
|
| +
|
| + // Return 0 so that we do NOT trigger the default behavior. On Android, the
|
| + // UI message loop is managed by the Java application.
|
| + return 0;
|
| + }
|
| +
|
| + return -1;
|
| +}
|
| +
|
| +void WebViewMainDelegate::ProcessExiting(const std::string& process_type) {
|
| + // TODO(torne): Clean up resources when we handle them.
|
| +
|
| + logging::CloseLogFile();
|
| +}
|
| +
|
| +content::ContentBrowserClient*
|
| + WebViewMainDelegate::CreateContentBrowserClient() {
|
| + return &g_webview_content_browser_client.Get();
|
| +}
|
| +
|
| +content::ContentRendererClient*
|
| + WebViewMainDelegate::CreateContentRendererClient() {
|
| + return &g_webview_content_renderer_client.Get();
|
| +}
|
| +
|
| +} // namespace android_webview
|
|
|