| Index: android_webview/lib/aw_browser_dependency_factory_impl.cc
|
| diff --git a/android_webview/lib/aw_browser_dependency_factory_impl.cc b/android_webview/lib/aw_browser_dependency_factory_impl.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6865efca46c6fce462bb54d4950a6f854c3b6acd
|
| --- /dev/null
|
| +++ b/android_webview/lib/aw_browser_dependency_factory_impl.cc
|
| @@ -0,0 +1,70 @@
|
| +// 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/aw_browser_dependency_factory_impl.h"
|
| +
|
| +// TODO(joth): Componentize or remove chrome/... dependencies.
|
| +#include "android_webview/native/aw_contents_container.h"
|
| +#include "base/lazy_instance.h"
|
| +#include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/profiles/profile_manager.h"
|
| +#include "chrome/browser/ui/app_modal_dialogs/javascript_dialog_creator.h"
|
| +#include "chrome/browser/ui/tab_contents/tab_contents.h"
|
| +#include "content/public/browser/web_contents.h"
|
| +#include "ipc/ipc_message.h"
|
| +
|
| +namespace android_webview {
|
| +
|
| +namespace {
|
| +
|
| +base::LazyInstance<AwBrowserDependencyFactoryImpl>::Leaky g_lazy_instance;
|
| +
|
| +class TabContentsWrapper : public AwContentsContainer {
|
| + public:
|
| + TabContentsWrapper(content::WebContents* web_contents)
|
| + : tab_contents_(web_contents) {}
|
| + virtual ~TabContentsWrapper() {}
|
| +
|
| + // AwContentsContainer
|
| + virtual content::WebContents* GetWebContents() OVERRIDE {
|
| + return tab_contents_.web_contents();
|
| + }
|
| +
|
| + private:
|
| + TabContents tab_contents_;
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +AwBrowserDependencyFactoryImpl::AwBrowserDependencyFactoryImpl() {}
|
| +
|
| +AwBrowserDependencyFactoryImpl::~AwBrowserDependencyFactoryImpl() {}
|
| +
|
| +// static
|
| +void AwBrowserDependencyFactoryImpl::InstallInstance() {
|
| + SetInstance(g_lazy_instance.Pointer());
|
| +}
|
| +
|
| +content::WebContents*
|
| +AwBrowserDependencyFactoryImpl::CreateWebContents(bool incognito) {
|
| + Profile* profile = g_browser_process->profile_manager()->GetDefaultProfile();
|
| + if (incognito)
|
| + profile = profile->GetOffTheRecordProfile();
|
| +
|
| + return content::WebContents::Create(profile, 0, MSG_ROUTING_NONE, 0);
|
| +}
|
| +
|
| +AwContentsContainer* AwBrowserDependencyFactoryImpl::CreateContentsContainer(
|
| + content::WebContents* contents) {
|
| + return new TabContentsWrapper(contents);
|
| +}
|
| +
|
| +content::JavaScriptDialogCreator*
|
| + AwBrowserDependencyFactoryImpl::GetJavaScriptDialogCreator() {
|
| + return GetJavaScriptDialogCreatorInstance();
|
| +}
|
| +
|
| +} // namespace android_webview
|
| +
|
|
|