diff options
author | ben <ben@chromium.org> | 2015-05-21 15:25:22 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-21 22:25:47 +0000 |
commit | 5fdef63ff67c5c88a606c49bbbc7b52e0b43fa60 (patch) | |
tree | 2b26fa87177bb4a590a964b481fa5fbc3bec23a9 | |
parent | fe9a0660c53983ea7ac5dfabb1769e3463d85370 (diff) | |
download | chromium_src-5fdef63ff67c5c88a606c49bbbc7b52e0b43fa60.zip chromium_src-5fdef63ff67c5c88a606c49bbbc7b52e0b43fa60.tar.gz chromium_src-5fdef63ff67c5c88a606c49bbbc7b52e0b43fa60.tar.bz2 |
Fold NativeViewport application into ViewManager application.
R=sky@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1123153006
Cr-Commit-Position: refs/heads/master@{#331010}
20 files changed, 210 insertions, 233 deletions
diff --git a/components/html_viewer/html_document.cc b/components/html_viewer/html_document.cc index 27765aa..ff11df06 100644 --- a/components/html_viewer/html_document.cc +++ b/components/html_viewer/html_document.cc @@ -233,7 +233,7 @@ void HTMLDocument::initializeLayerTreeView() { ServiceProviderPtr gpu_service_provider; // TODO(jamesr): Should be mojo:gpu_service mojo::URLRequestPtr request2(mojo::URLRequest::New()); - request2->url = mojo::String::From("mojo:native_viewport_service"); + request2->url = mojo::String::From("mojo:view_manager"); shell_->ConnectToApplication(request2.Pass(), GetProxy(&gpu_service_provider), nullptr); mojo::GpuPtr gpu_service; diff --git a/components/view_manager/BUILD.gn b/components/view_manager/BUILD.gn index 4b66b36..db7fce6 100644 --- a/components/view_manager/BUILD.gn +++ b/components/view_manager/BUILD.gn @@ -6,18 +6,67 @@ import("//build/config/ui.gni") import("//testing/test.gni") import("//third_party/mojo/src/mojo/public/mojo_application.gni") -mojo_native_application("view_manager") { - sources = [ - "main.cc", - ] +if (is_android) { + import("//build/config/android/config.gni") + import("//build/config/android/rules.gni") + + group("view_manager") { + deps = [ + ":jni_headers", + ":loader", + ":view_manager_lib", + ":view_manager_java", + "native_viewport", + ] + } - deps = [ - ":view_manager_lib", - "//base", - "//components/view_manager/public/interfaces", - "//mojo/application/public/cpp", - "//mojo/converters/geometry", - ] + android_library("view_manager_java") { + java_files = [ "native_viewport/android/src/org/chromium/mojo/PlatformViewportAndroid.java" ] + + deps = [ + "//base:base_java", + ] + } + + generate_jni("jni_headers") { + sources = [ + "native_viewport/android/src/org/chromium/mojo/PlatformViewportAndroid.java", + ] + + jni_package = "mojo" + } + + source_set("loader") { + sources = [ + "android_loader.cc", + "android_loader.h", + ] + + deps = [ + "public/interfaces", + "//third_party/mojo/src/mojo/public/cpp/bindings", + ] + } +} else { + mojo_native_application("view_manager") { + sources = [ + "main.cc", + ] + + deps = [ + ":view_manager_lib", + "//base", + "//components/view_manager/public/interfaces", + "//components/view_manager/native_viewport", + "//mojo/application/public/cpp", + "//mojo/converters/geometry", + "//mojo/environment:chromium", + "//third_party/mojo/src/mojo/public/cpp/bindings:bindings", + "//ui/events", + "//ui/events/platform", + "//ui/gl", + ] + } } source_set("view_manager_lib") { diff --git a/components/view_manager/DEPS b/components/view_manager/DEPS index 762fa0b..d78c2a9 100644 --- a/components/view_manager/DEPS +++ b/components/view_manager/DEPS @@ -1,5 +1,6 @@ include_rules = [ "+cc", + "+components/gles2", "+components/gpu", "+components/native_viewport", "+components/surfaces", @@ -7,6 +8,7 @@ include_rules = [ "+mojo/common", "+mojo/converters", "+mojo/services/network/public", + "+mojo/shell", "+third_party/mojo/src/mojo/public", "+third_party/mojo_services", "+ui", diff --git a/components/view_manager/android_loader.cc b/components/view_manager/android_loader.cc new file mode 100644 index 0000000..6923fae --- /dev/null +++ b/components/view_manager/android_loader.cc @@ -0,0 +1,23 @@ +// Copyright 2015 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 "components/view_manager/android_loader.h" + +#include "components/view_manager/view_manager_app.h" +#include "mojo/application/public/cpp/application_impl.h" + +namespace view_manager { + +AndroidLoader::AndroidLoader() {} +AndroidLoader::~AndroidLoader() {} + +void AndroidLoader::Load( + const GURL& url, + mojo::InterfaceRequest<mojo::Application> application_request) { + DCHECK(application_request.is_pending()); + app_.reset(new mojo::ApplicationImpl(new ViewManagerApp, + application_request.Pass())); +} + +} // namespace view_manager diff --git a/components/view_manager/android_loader.h b/components/view_manager/android_loader.h new file mode 100644 index 0000000..d463f057 --- /dev/null +++ b/components/view_manager/android_loader.h @@ -0,0 +1,34 @@ +// Copyright 2015 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. + +#ifndef COMPONENTS_VIEW_MANAGER_ANDROID_LOADER_H_ +#define COMPONENTS_VIEW_MANAGER_ANDROID_LOADER_H_ + +#include "mojo/shell/application_loader.h" + +namespace mojo { +class ApplicationImpl; +} + +namespace view_manager { + +class AndroidLoader : public mojo::shell::ApplicationLoader { +public: + AndroidLoader(); + ~AndroidLoader(); + + private: + // Overridden from mojo::shell::ApplicationLoader: + void Load( + const GURL& url, + mojo::InterfaceRequest<mojo::Application> application_request) override; + + scoped_ptr<mojo::ApplicationImpl> app_; + + DISALLOW_COPY_AND_ASSIGN(AndroidLoader); +}; + +} // namespace view_manager + +#endif // COMPONENTS_VIEW_MANAGER_ANDROID_LOADER_H_ diff --git a/components/view_manager/display_manager.cc b/components/view_manager/display_manager.cc index e6b5623..b245e31 100644 --- a/components/view_manager/display_manager.cc +++ b/components/view_manager/display_manager.cc @@ -91,7 +91,9 @@ void DefaultDisplayManager::Init( mojo::NativeViewportEventDispatcherPtr event_dispatcher) { connection_manager_ = connection_manager; mojo::URLRequestPtr request(mojo::URLRequest::New()); - request->url = mojo::String::From("mojo:native_viewport_service"); + // TODO(beng): should not need to connect to ourselves, should just + // create the appropriate platform window directly. + request->url = mojo::String::From("mojo:view_manager"); app_impl_->ConnectToService(request.Pass(), &native_viewport_); native_viewport_.set_error_handler(this); diff --git a/components/view_manager/native_viewport/BUILD.gn b/components/view_manager/native_viewport/BUILD.gn index 4783d4d..581de58 100644 --- a/components/view_manager/native_viewport/BUILD.gn +++ b/components/view_manager/native_viewport/BUILD.gn @@ -5,59 +5,8 @@ import("//build/config/ui.gni") import("//third_party/mojo/src/mojo/public/mojo_application.gni") -if (is_android) { - import("//build/config/android/config.gni") - import("//build/config/android/rules.gni") - - group("native_viewport") { - deps = [ - ":lib", - ":native_viewport_java", - ":jni_headers", - ] - } - - android_library("native_viewport_java") { - java_files = - [ "android/src/org/chromium/mojo/PlatformViewportAndroid.java" ] - - deps = [ - "//base:base_java", - ] - } - - generate_jni("jni_headers") { - sources = [ - "android/src/org/chromium/mojo/PlatformViewportAndroid.java", - ] - - jni_package = "mojo" - } -} else { - mojo_native_application("native_viewport") { - output_name = "native_viewport_service" - sources = [ - "main.cc", - ] - deps = [ - ":lib", - "//base", - "//components/gles2", - "//components/view_manager/public/cpp", - "//components/view_manager/public/interfaces", - "//mojo/application/public/cpp", - "//third_party/mojo/src/mojo/public/cpp/bindings:bindings", - "//ui/events", - "//ui/events/platform", - "//ui/gl", - ] - } -} - -source_set("lib") { +source_set("native_viewport") { sources = [ - "native_viewport_application_delegate.cc", - "native_viewport_application_delegate.h", "native_viewport_impl.cc", "native_viewport_impl.h", "onscreen_context_provider.cc", @@ -95,7 +44,7 @@ source_set("lib") { ] if (is_android) { - deps += [ ":jni_headers" ] + deps += [ "//components/view_manager:jni_headers" ] } if (use_x11) { diff --git a/components/view_manager/native_viewport/main.cc b/components/view_manager/native_viewport/main.cc deleted file mode 100644 index 5858c03..0000000 --- a/components/view_manager/native_viewport/main.cc +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2014 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 "base/message_loop/message_loop.h" -#include "components/view_manager/native_viewport/native_viewport_application_delegate.h" -#include "mojo/application/public/cpp/application_runner.h" -#include "third_party/mojo/src/mojo/public/c/system/main.h" - -MojoResult MojoMain(MojoHandle shell_handle) { - mojo::ApplicationRunner runner( - new native_viewport::NativeViewportApplicationDelegate); - runner.set_message_loop_type(base::MessageLoop::TYPE_UI); - return runner.Run(shell_handle); -} diff --git a/components/view_manager/view_manager_app.cc b/components/view_manager/view_manager_app.cc index f8084d4..f0c29bd 100644 --- a/components/view_manager/view_manager_app.cc +++ b/components/view_manager/view_manager_app.cc @@ -4,26 +4,33 @@ #include "components/view_manager/view_manager_app.h" +#include "base/command_line.h" #include "components/view_manager/client_connection.h" #include "components/view_manager/connection_manager.h" #include "components/view_manager/display_manager.h" +#include "components/view_manager/native_viewport/native_viewport_impl.h" +#include "components/view_manager/public/cpp/args.h" #include "components/view_manager/view_manager_service_impl.h" #include "mojo/application/public/cpp/application_connection.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/application/public/cpp/application_runner.h" #include "mojo/common/tracing_impl.h" #include "third_party/mojo/src/mojo/public/c/system/main.h" +#include "ui/events/event_switches.h" +#include "ui/events/platform/platform_event_source.h" +#include "ui/gl/gl_surface.h" using mojo::ApplicationConnection; using mojo::ApplicationImpl; +using mojo::Gpu; using mojo::InterfaceRequest; +using mojo::NativeViewport; using mojo::ViewManagerRoot; using mojo::ViewManagerService; namespace view_manager { -ViewManagerApp::ViewManagerApp() - : app_impl_(nullptr), wm_app_connection_(nullptr) { +ViewManagerApp::ViewManagerApp() : app_impl_(nullptr) { } ViewManagerApp::~ViewManagerApp() {} @@ -31,25 +38,36 @@ ViewManagerApp::~ViewManagerApp() {} void ViewManagerApp::Initialize(ApplicationImpl* app) { app_impl_ = app; tracing_.Initialize(app); + + scoped_ptr<DefaultDisplayManager> display_manager(new DefaultDisplayManager( + app_impl_, base::Bind(&ViewManagerApp::OnLostConnectionToWindowManager, + base::Unretained(this)))); + connection_manager_.reset( + new ConnectionManager(this, display_manager.Pass())); + +#if !defined(OS_ANDROID) + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + is_headless_ = command_line->HasSwitch(mojo::kUseHeadlessConfig); + if (!is_headless_) { + event_source_ = ui::PlatformEventSource::CreateDefault(); + if (command_line->HasSwitch(mojo::kUseTestConfig)) + gfx::GLSurface::InitializeOneOffForTests(); + else + gfx::GLSurface::InitializeOneOff(); + } +#endif } bool ViewManagerApp::ConfigureIncomingConnection( ApplicationConnection* connection) { - if (connection_manager_.get()) { - VLOG(1) << "ViewManager allows only one window manager connection."; - return false; - } - wm_app_connection_ = connection; + // |connection| originates from the WindowManager. Let it connect directly // to the ViewManager. connection->AddService<ViewManagerService>(this); connection->AddService<ViewManagerRoot>(this); + connection->AddService<NativeViewport>(this); + connection->AddService<Gpu>(this); - scoped_ptr<DefaultDisplayManager> display_manager(new DefaultDisplayManager( - app_impl_, base::Bind(&ViewManagerApp::OnLostConnectionToWindowManager, - base::Unretained(this)))); - connection_manager_.reset( - new ConnectionManager(this, display_manager.Pass())); return true; } @@ -90,8 +108,7 @@ ClientConnection* ViewManagerApp::CreateClientConnectionForEmbedAtView( void ViewManagerApp::Create(ApplicationConnection* connection, InterfaceRequest<ViewManagerService> request) { - if (connection_manager_->has_window_manager_client_connection() || - connection != wm_app_connection_) { + if (connection_manager_->has_window_manager_client_connection()) { VLOG(1) << "ViewManager interface requested more than once."; return; } @@ -100,7 +117,7 @@ void ViewManagerApp::Create(ApplicationConnection* connection, connection_manager_.get(), kInvalidConnectionId, std::string(), connection->GetRemoteApplicationURL(), RootViewId())); mojo::ViewManagerClientPtr client; - wm_app_connection_->ConnectToService(&client); + connection->ConnectToService(&client); scoped_ptr<ClientConnection> client_connection( new DefaultClientConnection(service.Pass(), connection_manager_.get(), request.Pass(), client.Pass())); @@ -122,6 +139,26 @@ void ViewManagerApp::Create(ApplicationConnection* connection, view_manager_root_binding_->set_error_handler(this); } +void ViewManagerApp::Create( + mojo::ApplicationConnection* connection, + mojo::InterfaceRequest<NativeViewport> request) { + if (!gpu_state_.get()) + gpu_state_ = new gles2::GpuState; + new native_viewport::NativeViewportImpl( + is_headless_, + gpu_state_, + request.Pass(), + app_lifetime_helper_.CreateAppRefCount()); +} + +void ViewManagerApp::Create( + mojo::ApplicationConnection* connection, + mojo::InterfaceRequest<Gpu> request) { + if (!gpu_state_.get()) + gpu_state_ = new gles2::GpuState; + new gles2::GpuImpl(request.Pass(), gpu_state_); +} + void ViewManagerApp::OnConnectionError() { ApplicationImpl::Terminate(); } diff --git a/components/view_manager/view_manager_app.h b/components/view_manager/view_manager_app.h index 34631b1..c472a09 100644 --- a/components/view_manager/view_manager_app.h +++ b/components/view_manager/view_manager_app.h @@ -6,9 +6,12 @@ #define COMPONENTS_VIEW_MANAGER_VIEW_MANAGER_APP_H_ #include "base/memory/scoped_ptr.h" +#include "components/gles2/gpu_impl.h" #include "components/view_manager/connection_manager_delegate.h" +#include "components/view_manager/public/interfaces/native_viewport.mojom.h" #include "components/view_manager/public/interfaces/view_manager.mojom.h" #include "components/view_manager/public/interfaces/view_manager_root.mojom.h" +#include "mojo/application/public/cpp/app_lifetime_helper.h" #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/interface_factory.h" #include "mojo/common/tracing_impl.h" @@ -17,6 +20,10 @@ namespace mojo { class ApplicationImpl; } +namespace ui { +class PlatformEventSource; +} + namespace view_manager { class ConnectionManager; @@ -25,7 +32,9 @@ class ViewManagerApp : public mojo::ApplicationDelegate, public ConnectionManagerDelegate, public mojo::ErrorHandler, public mojo::InterfaceFactory<mojo::ViewManagerRoot>, - public mojo::InterfaceFactory<mojo::ViewManagerService> { + public mojo::InterfaceFactory<mojo::ViewManagerService>, + public mojo::InterfaceFactory<mojo::NativeViewport>, + public mojo::InterfaceFactory<mojo::Gpu> { public: ViewManagerApp(); ~ViewManagerApp() override; @@ -62,14 +71,25 @@ class ViewManagerApp : public mojo::ApplicationDelegate, void Create(mojo::ApplicationConnection* connection, mojo::InterfaceRequest<mojo::ViewManagerRoot> request) override; + // mojo::InterfaceFactory<mojo::NativeViewport> implementation. + void Create(mojo::ApplicationConnection* connection, + mojo::InterfaceRequest<mojo::NativeViewport> request) override; + + // mojo::InterfaceFactory<mojo::Gpu> implementation. + void Create(mojo::ApplicationConnection* connection, + mojo::InterfaceRequest<mojo::Gpu> request) override; + // ErrorHandler (for |wm_internal_| and |wm_internal_client_binding_|). void OnConnectionError() override; mojo::ApplicationImpl* app_impl_; - mojo::ApplicationConnection* wm_app_connection_; + mojo::AppLifetimeHelper app_lifetime_helper_; scoped_ptr<mojo::Binding<mojo::ViewManagerRoot>> view_manager_root_binding_; scoped_ptr<ConnectionManager> connection_manager_; mojo::TracingImpl tracing_; + scoped_refptr<gles2::GpuState> gpu_state_; + scoped_ptr<ui::PlatformEventSource> event_source_; + bool is_headless_; DISALLOW_COPY_AND_ASSIGN(ViewManagerApp); }; diff --git a/mandoline/app/android/BUILD.gn b/mandoline/app/android/BUILD.gn index ed098f6..30706b5 100644 --- a/mandoline/app/android/BUILD.gn +++ b/mandoline/app/android/BUILD.gn @@ -86,7 +86,7 @@ android_apk("mandoline_apk") { "//mojo/runner:java", "//mojo/runner:resources", "//base:base_java", - "//components/view_manager/native_viewport:native_viewport_java", + "//components/view_manager:view_manager_java", "//third_party/android_tools:google_play_services_default_resources", ] } diff --git a/mandoline/app/core_services_initialization.cc b/mandoline/app/core_services_initialization.cc index 612dd2b..fce439f 100644 --- a/mandoline/app/core_services_initialization.cc +++ b/mandoline/app/core_services_initialization.cc @@ -15,7 +15,7 @@ void InitCoreServicesForContext(mojo::runner::Context* context) { manager->RegisterApplicationPackageAlias(GURL("mojo:clipboard"), GURL("mojo:core_services"), "Core"); #if !defined(OS_ANDROID) - manager->RegisterApplicationPackageAlias(GURL("mojo:native_viewport_service"), + manager->RegisterApplicationPackageAlias(GURL("mojo:view_manager"), GURL("mojo:core_services"), "Surfaces"); #endif @@ -31,8 +31,6 @@ void InitCoreServicesForContext(mojo::runner::Context* context) { GURL("mojo:surfaces_service"), GURL("mojo:core_services"), "Surfaces"); manager->RegisterApplicationPackageAlias(GURL("mojo:tracing"), GURL("mojo:core_services"), "Core"); - manager->RegisterApplicationPackageAlias(GURL("mojo:view_manager"), - GURL("mojo:core_services"), "Core"); manager->RegisterApplicationPackageAlias(GURL("mojo:window_manager"), GURL("mojo:core_services"), "Core"); } diff --git a/mandoline/services/core_services/BUILD.gn b/mandoline/services/core_services/BUILD.gn index 6158d50..6d3c078 100644 --- a/mandoline/services/core_services/BUILD.gn +++ b/mandoline/services/core_services/BUILD.gn @@ -72,7 +72,6 @@ source_set("sources") { if (!is_android) { deps += [ - "//components/view_manager/native_viewport:lib", "//components/view_manager/public/cpp", "//mandoline/ui/omnibox:lib", ] diff --git a/mandoline/services/core_services/core_services_application_delegate.cc b/mandoline/services/core_services/core_services_application_delegate.cc index f7735a0..4a982b6 100644 --- a/mandoline/services/core_services/core_services_application_delegate.cc +++ b/mandoline/services/core_services/core_services_application_delegate.cc @@ -9,7 +9,6 @@ #include "components/clipboard/clipboard_application_delegate.h" #include "components/resource_provider/resource_provider_app.h" #include "components/surfaces/surfaces_service_application.h" -#include "components/view_manager/native_viewport/native_viewport_application_delegate.h" #include "components/view_manager/view_manager_app.h" #include "mandoline/ui/browser/browser.h" #include "mojo/application/public/cpp/application_connection.h" @@ -160,10 +159,6 @@ void CoreServicesApplicationDelegate::StartApplication( scoped_ptr<mojo::ApplicationDelegate> delegate; if (url == "mojo://clipboard/") delegate.reset(new clipboard::ClipboardApplicationDelegate); -#if !defined(OS_ANDROID) - else if (url == "mojo://native_viewport_service/") - delegate.reset(new native_viewport::NativeViewportApplicationDelegate); -#endif else if (url == "mojo://network_service/") delegate.reset(new NetworkServiceDelegate); #if !defined(OS_ANDROID) @@ -188,7 +183,7 @@ void CoreServicesApplicationDelegate::StartApplication( // In the case of mojo:network_service, we must use an IO message loop. if (url == "mojo://network_service/") { thread_options.message_loop_type = base::MessageLoop::TYPE_IO; - } else if (url == "mojo://native_viewport_service/") { + } else if (url == "mojo://view_manager/") { thread_options.message_loop_type = base::MessageLoop::TYPE_UI; } else { // We must use a MessagePumpMojo to awake on mojo messages. diff --git a/mandoline/ui/aura/surface_binding.cc b/mandoline/ui/aura/surface_binding.cc index e1a0566..378e9b9 100644 --- a/mandoline/ui/aura/surface_binding.cc +++ b/mandoline/ui/aura/surface_binding.cc @@ -224,7 +224,7 @@ void SurfaceBinding::PerViewManagerState::Init() { mojo::ServiceProviderPtr gpu_service_provider; // TODO(jamesr): Should be mojo:gpu_service mojo::URLRequestPtr request2(mojo::URLRequest::New()); - request2->url = mojo::String::From("mojo:native_viewport_service"); + request2->url = mojo::String::From("mojo:view_manager"); shell_->ConnectToApplication(request2.Pass(), GetProxy(&gpu_service_provider), nullptr); diff --git a/mojo/runner/BUILD.gn b/mojo/runner/BUILD.gn index da8ee67..8b8a7c5 100644 --- a/mojo/runner/BUILD.gn +++ b/mojo/runner/BUILD.gn @@ -57,7 +57,7 @@ source_set("mojo_runner_lib") { deps += [ ":jni_headers", - "//components/view_manager/native_viewport:lib", + "//components/view_manager", "//mojo/shell", "//ui/gl", ] @@ -148,8 +148,6 @@ source_set("lib") { "android/android_handler_loader.h", "android/background_application_loader.cc", "android/background_application_loader.h", - "android/native_viewport_application_loader.cc", - "android/native_viewport_application_loader.h", "android/ui_application_loader_android.cc", "android/ui_application_loader_android.h", ] @@ -158,7 +156,7 @@ source_set("lib") { ":jni_headers", ":run_android_application_function", "//components/gles2", - "//components/view_manager/native_viewport:lib", + "//components/view_manager/native_viewport", "//mojo/application/public/cpp:content_handler", ] } @@ -329,7 +327,7 @@ if (is_android) { ":java", ":resources", "//base:base_java", - "//components/view_manager/native_viewport:native_viewport_java", + "//components/view_manager:view_manager_java", "//third_party/android_tools:google_play_services_default_resources", ] } diff --git a/mojo/runner/DEPS b/mojo/runner/DEPS index 9ef049a..47fe44f 100644 --- a/mojo/runner/DEPS +++ b/mojo/runner/DEPS @@ -1,8 +1,7 @@ include_rules = [ "+components/gles2", "+components/gpu", - "+components/view_manager/native_viewport", - "+components/view_manager/public", + "+components/view_manager", "+crypto", "+jni", "+third_party/mojo_services", diff --git a/mojo/runner/android/main.cc b/mojo/runner/android/main.cc index 7236763..ed41433 100644 --- a/mojo/runner/android/main.cc +++ b/mojo/runner/android/main.cc @@ -19,12 +19,12 @@ #include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/threading/simple_thread.h" +#include "components/view_manager/android_loader.h" #include "jni/ShellMain_jni.h" #include "mojo/common/message_pump_mojo.h" #include "mojo/runner/android/android_handler_loader.h" #include "mojo/runner/android/background_application_loader.h" #include "mojo/runner/android/context_init.h" -#include "mojo/runner/android/native_viewport_application_loader.h" #include "mojo/runner/android/ui_application_loader_android.h" #include "mojo/runner/context.h" #include "mojo/runner/init.h" @@ -72,9 +72,9 @@ LazyInstance<base::android::ScopedJavaGlobalRef<jobject>> g_main_activiy = void ConfigureAndroidServices(Context* context) { context->application_manager()->SetLoaderForURL( make_scoped_ptr(new UIApplicationLoader( - make_scoped_ptr(new NativeViewportApplicationLoader()), + make_scoped_ptr(new view_manager::AndroidLoader()), g_java_message_loop.Get().get())), - GURL("mojo:native_viewport_service")); + GURL("mojo:view_manager")); // Android handler is bundled with the Mojo shell, because it uses the // MojoShell application as the JNI bridge to bootstrap execution of other diff --git a/mojo/runner/android/native_viewport_application_loader.cc b/mojo/runner/android/native_viewport_application_loader.cc deleted file mode 100644 index 7a6d8dc..0000000 --- a/mojo/runner/android/native_viewport_application_loader.cc +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2014 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 "mojo/runner/android/native_viewport_application_loader.h" - -#include "components/gles2/gpu_state.h" -#include "components/view_manager/native_viewport/native_viewport_impl.h" -#include "mojo/application/public/cpp/application_impl.h" - -namespace mojo { -namespace runner { - -NativeViewportApplicationLoader::NativeViewportApplicationLoader() { -} - -NativeViewportApplicationLoader::~NativeViewportApplicationLoader() { -} - -void NativeViewportApplicationLoader::Load( - const GURL& url, - InterfaceRequest<Application> application_request) { - DCHECK(application_request.is_pending()); - app_.reset(new ApplicationImpl(this, application_request.Pass())); -} - -bool NativeViewportApplicationLoader::ConfigureIncomingConnection( - ApplicationConnection* connection) { - connection->AddService<NativeViewport>(this); - connection->AddService<Gpu>(this); - return true; -} - -void NativeViewportApplicationLoader::Create( - ApplicationConnection* connection, - InterfaceRequest<NativeViewport> request) { - if (!gpu_state_) - gpu_state_ = new gles2::GpuState; - // Pass a null AppRefCount because on Android the NativeViewPort app must - // live on the main thread and we don't want to exit that when all the native - // viewports are gone. - new native_viewport::NativeViewportImpl( - false, gpu_state_, request.Pass(), - make_scoped_ptr<mojo::AppRefCount>(nullptr)); -} - -void NativeViewportApplicationLoader::Create(ApplicationConnection* connection, - InterfaceRequest<Gpu> request) { - if (!gpu_state_) - gpu_state_ = new gles2::GpuState; - new gles2::GpuImpl(request.Pass(), gpu_state_); -} - -} // namespace runner -} // namespace mojo diff --git a/mojo/runner/android/native_viewport_application_loader.h b/mojo/runner/android/native_viewport_application_loader.h deleted file mode 100644 index e5596da..0000000 --- a/mojo/runner/android/native_viewport_application_loader.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2014 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. - -#ifndef MOJO_RUNNER_ANDROID_NATIVE_VIEWPORT_APPLICATION_LOADER_H_ -#define MOJO_RUNNER_ANDROID_NATIVE_VIEWPORT_APPLICATION_LOADER_H_ - -#include "components/gles2/gpu_impl.h" -#include "components/gpu/public/interfaces/gpu.mojom.h" -#include "components/view_manager/public/interfaces/native_viewport.mojom.h" -#include "mojo/application/public/cpp/application_delegate.h" -#include "mojo/application/public/cpp/interface_factory.h" -#include "mojo/shell/application_loader.h" - -namespace gles2 { -class GpuState; -} - -namespace mojo { - -class ApplicationImpl; - -namespace runner { - -class NativeViewportApplicationLoader : public shell::ApplicationLoader, - public ApplicationDelegate, - public InterfaceFactory<NativeViewport>, - public InterfaceFactory<Gpu> { - public: - NativeViewportApplicationLoader(); - ~NativeViewportApplicationLoader(); - - private: - // ApplicationLoader implementation. - void Load(const GURL& url, - InterfaceRequest<Application> application_request) override; - - // ApplicationDelegate implementation. - bool ConfigureIncomingConnection(ApplicationConnection* connection) override; - - // InterfaceFactory<NativeViewport> implementation. - void Create(ApplicationConnection* connection, - InterfaceRequest<NativeViewport> request) override; - - // InterfaceFactory<Gpu> implementation. - void Create(ApplicationConnection* connection, - InterfaceRequest<Gpu> request) override; - - scoped_refptr<gles2::GpuState> gpu_state_; - scoped_ptr<ApplicationImpl> app_; - - DISALLOW_COPY_AND_ASSIGN(NativeViewportApplicationLoader); -}; - -} // namespace runner -} // namespace mojo - -#endif // MOJO_RUNNER_ANDROID_NATIVE_VIEWPORT_APPLICATION_LOADER_H_ |