Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1578)

Unified Diff: services/ui/service.cc

Issue 2916823002: Move Mus into chrome's process when running with --mus.
Patch Set: Undo Screen TLS change, don't use Screen::GetScreen() in Mus. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/ui/service.cc
diff --git a/services/ui/service.cc b/services/ui/service.cc
index 3113ce8fec9923ca555f8943950d1cf7c5f5e364..5514f158eb0c3a4734fdbfe888469aadf0baacce 100644
--- a/services/ui/service.cc
+++ b/services/ui/service.cc
@@ -41,6 +41,7 @@
#include "services/ui/ws/window_tree_binding.h"
#include "services/ui/ws/window_tree_factory.h"
#include "services/ui/ws/window_tree_host_factory.h"
+#include "ui/base/cursor/image_cursors.h"
#include "ui/base/platform_window_defaults.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/ui_base_paths.h"
@@ -91,7 +92,13 @@ struct Service::UserState {
std::unique_ptr<ws::WindowTreeHostFactory> window_tree_host_factory;
};
-Service::Service() : test_config_(false), ime_registrar_(&ime_driver_) {}
+Service::Service(scoped_refptr<base::SingleThreadTaskRunner> resource_runner,
+ base::WeakPtr<ui::ImageCursors> image_cursors_weak_ptr)
+ : in_process_(resource_runner != nullptr),
+ resource_runner_(resource_runner),
+ image_cursors_weak_ptr_(image_cursors_weak_ptr),
+ test_config_(false),
+ ime_registrar_(&ime_driver_) {}
Service::~Service() {
// Destroy |window_server_| first, since it depends on |event_source_|.
@@ -110,7 +117,7 @@ Service::~Service() {
}
bool Service::InitializeResources(service_manager::Connector* connector) {
- if (ui::ResourceBundle::HasSharedInstance())
+ if (in_process() || ui::ResourceBundle::HasSharedInstance())
return true;
std::set<std::string> resource_paths;
@@ -137,6 +144,11 @@ bool Service::InitializeResources(service_manager::Connector* connector) {
ui::SCALE_FACTOR_100P);
rb.AddDataPackFromFile(loader.TakeFile(kResourceFile200),
ui::SCALE_FACTOR_200P);
+
+ // Initialize the cursors.
sky 2017/06/27 19:58:56 This comment just documents the code and so isn't
mfomitchev 2017/07/11 21:46:59 Done.
+ image_cursors_ = base::MakeUnique<ui::ImageCursors>();
+ image_cursors_weak_ptr_ = image_cursors_->GetWeakPtr();
+
return true;
}
@@ -156,11 +168,17 @@ void Service::AddUserIfNecessary(
}
void Service::OnStart() {
- base::PlatformThread::SetName("mus");
+ if (!in_process())
+ base::PlatformThread::SetName("mus");
+
TRACE_EVENT0("mus", "Service::Initialize started");
+ if (!resource_runner_)
+ resource_runner_ = base::ThreadTaskRunnerHandle::Get();
+
test_config_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kUseTestConfig);
+
#if defined(USE_X11)
XInitThreads();
ui::SetDefaultX11ErrorHandlers();
@@ -188,9 +206,12 @@ void Service::OnStart() {
// Assume a client will change the layout to an appropriate configuration.
ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine()
->SetCurrentLayoutByName("us");
- client_native_pixmap_factory_ = ui::CreateClientNativePixmapFactoryOzone();
- gfx::ClientNativePixmapFactory::SetInstance(
- client_native_pixmap_factory_.get());
+
+ if (!in_process()) {
+ client_native_pixmap_factory_ = ui::CreateClientNativePixmapFactoryOzone();
+ gfx::ClientNativePixmapFactory::SetInstance(
+ client_native_pixmap_factory_.get());
+ }
DCHECK(gfx::ClientNativePixmapFactory::GetInstance());
@@ -323,7 +344,8 @@ void Service::OnWillCreateTreeForWindowManager(
if (window_server_->display_creation_config() ==
ws::DisplayCreationConfig::MANUAL) {
#if defined(USE_OZONE) && defined(OS_CHROMEOS)
- screen_manager_ = base::MakeUnique<display::ScreenManagerForwarding>();
+ screen_manager_ =
+ base::MakeUnique<display::ScreenManagerForwarding>(in_process());
#else
CHECK(false);
#endif
@@ -335,6 +357,15 @@ void Service::OnWillCreateTreeForWindowManager(
screen_manager_->Init(window_server_->display_manager());
}
+scoped_refptr<base::SingleThreadTaskRunner>& Service::GetResourceRunner() {
+ DCHECK(resource_runner_);
+ return resource_runner_;
+}
+
+base::WeakPtr<ui::ImageCursors> Service::GetImageCursorsWeakPtr() {
+ return image_cursors_weak_ptr_;
+}
+
void Service::BindAccessibilityManagerRequest(
const service_manager::BindSourceInfo& source_info,
mojom::AccessibilityManagerRequest request) {

Powered by Google App Engine
This is Rietveld 408576698