Skip to content

Commit

Permalink
Move ConsoleServiceProvider to chromeos/dbus/services
Browse files Browse the repository at this point in the history
Introduce ConsoleServiceProvider::Delegate to get rid of dependencies to ash/ and ui/.

BUG=429354

Review URL: https://codereview.chromium.org/734333003

Cr-Commit-Position: refs/heads/master@{#304757}
  • Loading branch information
hashimoto authored and Commit bot committed Nov 19, 2014
1 parent dd2467b commit 574275c
Show file tree
Hide file tree
Showing 7 changed files with 87 additions and 15 deletions.
6 changes: 4 additions & 2 deletions chrome/browser/chromeos/chrome_browser_main_chromeos.cc
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
#include "chrome/browser/chromeos/app_mode/kiosk_mode_idle_app_name_notification.h"
#include "chrome/browser/chromeos/boot_times_loader.h"
#include "chrome/browser/chromeos/dbus/console_service_provider.h"
#include "chrome/browser/chromeos/dbus/chrome_console_service_provider_delegate.h"
#include "chrome/browser/chromeos/dbus/display_power_service_provider.h"
#include "chrome/browser/chromeos/dbus/printer_service_provider.h"
#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
Expand Down Expand Up @@ -96,6 +96,7 @@
#include "chromeos/cryptohome/system_salt_getter.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/power_policy_controller.h"
#include "chromeos/dbus/services/console_service_provider.h"
#include "chromeos/dbus/services/cros_dbus_service.h"
#include "chromeos/dbus/services/liveness_service_provider.h"
#include "chromeos/dbus/session_manager_client.h"
Expand Down Expand Up @@ -182,7 +183,8 @@ class DBusServices {
#endif
service_providers.push_back(new LivenessServiceProvider);
service_providers.push_back(new ScreenLockServiceProvider);
service_providers.push_back(new ConsoleServiceProvider);
service_providers.push_back(new ConsoleServiceProvider(
make_scoped_ptr(new ChromeConsoleServiceProviderDelegate)));
CrosDBusService::Initialize(service_providers.Pass());

// Initialize PowerDataCollector after DBusThreadManager is initialized.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// 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 "chrome/browser/chromeos/dbus/chrome_console_service_provider_delegate.h"

#include "ash/shell.h"
#include "ui/display/chromeos/display_configurator.h"

namespace chromeos {

ChromeConsoleServiceProviderDelegate::ChromeConsoleServiceProviderDelegate() {
}

ChromeConsoleServiceProviderDelegate::~ChromeConsoleServiceProviderDelegate() {
}

void ChromeConsoleServiceProviderDelegate::TakeDisplayOwnership() {
ash::Shell::GetInstance()->display_configurator()->TakeControl();
}

void ChromeConsoleServiceProviderDelegate::ReleaseDisplayOwnership() {
ash::Shell::GetInstance()->display_configurator()->RelinquishControl();
}

} // namespace chromeos
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// 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 CHROME_BROWSER_CHROMEOS_DBUS_CHROME_CONSOLE_SERVICE_PROVIDER_DELEGATE_H_
#define CHROME_BROWSER_CHROMEOS_DBUS_CHROME_CONSOLE_SERVICE_PROVIDER_DELEGATE_H_

#include "chromeos/dbus/services/console_service_provider.h"

namespace chromeos {

// Chrome's implementation of ConsoleServiceProvider::Delegate
class ChromeConsoleServiceProviderDelegate
: public ConsoleServiceProvider::Delegate {
public:
ChromeConsoleServiceProviderDelegate();
~ChromeConsoleServiceProviderDelegate() override;

// ConsoleServiceProvider::Delegate overrides:
void TakeDisplayOwnership() override;
void ReleaseDisplayOwnership() override;

private:
DISALLOW_COPY_AND_ASSIGN(ChromeConsoleServiceProviderDelegate);
};

} // namespace chromeos

#endif // CHROME_BROWSER_CHROMEOS_DBUS_CHROME_CONSOLE_SERVICE_PROVIDER_DELEGATE_H_
4 changes: 2 additions & 2 deletions chrome/chrome_browser_chromeos.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@
'browser/chromeos/display/display_preferences.h',
'browser/chromeos/display/overscan_calibrator.cc',
'browser/chromeos/display/overscan_calibrator.h',
'browser/chromeos/dbus/console_service_provider.cc',
'browser/chromeos/dbus/console_service_provider.h',
'browser/chromeos/dbus/chrome_console_service_provider_delegate.cc',
'browser/chromeos/dbus/chrome_console_service_provider_delegate.h',
'browser/chromeos/dbus/display_power_service_provider.cc',
'browser/chromeos/dbus/display_power_service_provider.h',
'browser/chromeos/dbus/printer_service_provider.cc',
Expand Down
2 changes: 2 additions & 0 deletions chromeos/chromeos.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,8 @@
'dbus/power_policy_controller.h',
'dbus/privet_daemon_client.cc',
'dbus/privet_daemon_client.h',
'dbus/services/console_service_provider.cc',
'dbus/services/console_service_provider.h',
'dbus/services/cros_dbus_service.cc',
'dbus/services/cros_dbus_service.h',
'dbus/services/liveness_service_provider.cc',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/chromeos/dbus/console_service_provider.h"
#include "chromeos/dbus/services/console_service_provider.h"

#include "ash/shell.h"
#include "base/bind.h"
#include "dbus/message.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
#include "ui/display/chromeos/display_configurator.h"

namespace chromeos {

ConsoleServiceProvider::ConsoleServiceProvider() : weak_ptr_factory_(this) {
ConsoleServiceProvider::ConsoleServiceProvider(scoped_ptr<Delegate> delegate)
: delegate_(delegate.Pass()),
weak_ptr_factory_(this) {
}

ConsoleServiceProvider::~ConsoleServiceProvider() {
Expand All @@ -38,14 +38,14 @@ void ConsoleServiceProvider::Start(
void ConsoleServiceProvider::TakeDisplayOwnership(
dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
ash::Shell::GetInstance()->display_configurator()->TakeControl();
delegate_->TakeDisplayOwnership();
response_sender.Run(dbus::Response::FromMethodCall(method_call));
}

void ConsoleServiceProvider::ReleaseDisplayOwnership(
dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
ash::Shell::GetInstance()->display_configurator()->RelinquishControl();
delegate_->ReleaseDisplayOwnership();
response_sender.Run(dbus::Response::FromMethodCall(method_call));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_CHROMEOS_DBUS_CONSOLE_SERVICE_PROVIDER_H_
#define CHROME_BROWSER_CHROMEOS_DBUS_CONSOLE_SERVICE_PROVIDER_H_
#ifndef CHROMEOS_DBUS_SERVICES_CONSOLE_SERVICE_PROVIDER_H_
#define CHROMEOS_DBUS_SERVICES_CONSOLE_SERVICE_PROVIDER_H_

#include <string>

#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "chromeos/chromeos_export.h"
#include "chromeos/dbus/services/cros_dbus_service.h"
#include "dbus/exported_object.h"

Expand All @@ -17,10 +19,20 @@ namespace chromeos {
// chrome that it should release control of the display server.
// The main client is the console application. This can
// also be used by crouton to take over the display.
class ConsoleServiceProvider
class CHROMEOS_EXPORT ConsoleServiceProvider
: public CrosDBusService::ServiceProviderInterface {
public:
ConsoleServiceProvider();
class Delegate {
public:
virtual ~Delegate() {}

// Performs the actual work needed by the provider methods with the same
// names.
virtual void TakeDisplayOwnership() = 0;
virtual void ReleaseDisplayOwnership() = 0;
};

explicit ConsoleServiceProvider(scoped_ptr<Delegate> delegate);
~ConsoleServiceProvider() override;

// CrosDBusService::ServiceProviderInterface overrides:
Expand All @@ -46,11 +58,12 @@ class ConsoleServiceProvider
const std::string& method_name,
bool success);

scoped_ptr<Delegate> delegate_;
base::WeakPtrFactory<ConsoleServiceProvider> weak_ptr_factory_;

DISALLOW_COPY_AND_ASSIGN(ConsoleServiceProvider);
};

} // namespace chromeos

#endif // CHROME_BROWSER_CHROMEOS_DBUS_CONSOLE_SERVICE_PROVIDER_H_
#endif // CHROMEOS_DBUS_SERVICES_CONSOLE_SERVICE_PROVIDER_H_

0 comments on commit 574275c

Please sign in to comment.