Index: chrome/browser/chromeos/dbus/display_power_service_provider.cc |
diff --git a/chrome/browser/chromeos/dbus/display_power_service_provider.cc b/chrome/browser/chromeos/dbus/display_power_service_provider.cc |
index 6b92d44387218aac0eec5bd7315a4ec6d443ba1c..5de5c95dc7eb362dd2c53cd751632c15fab565da 100644 |
--- a/chrome/browser/chromeos/dbus/display_power_service_provider.cc |
+++ b/chrome/browser/chromeos/dbus/display_power_service_provider.cc |
@@ -29,6 +29,13 @@ void DisplayPowerServiceProvider::Start( |
weak_ptr_factory_.GetWeakPtr()), |
base::Bind(&DisplayPowerServiceProvider::OnExported, |
weak_ptr_factory_.GetWeakPtr())); |
+ exported_object->ExportMethod( |
+ kLibCrosServiceInterface, |
+ kSetDisplaySoftwareDimming, |
+ base::Bind(&DisplayPowerServiceProvider::SetDisplaySoftwareDimming, |
+ weak_ptr_factory_.GetWeakPtr()), |
+ base::Bind(&DisplayPowerServiceProvider::OnExported, |
+ weak_ptr_factory_.GetWeakPtr())); |
} |
void DisplayPowerServiceProvider::OnExported(const std::string& interface_name, |
@@ -63,4 +70,18 @@ void DisplayPowerServiceProvider::SetDisplayPower( |
response_sender.Run(dbus::Response::FromMethodCall(method_call)); |
} |
+void DisplayPowerServiceProvider::SetDisplaySoftwareDimming( |
+ dbus::MethodCall* method_call, |
+ dbus::ExportedObject::ResponseSender response_sender) { |
+ dbus::MessageReader reader(method_call); |
+ bool dimmed = false; |
+ if (reader.PopBool(&dimmed)) { |
+ ash::Shell::GetInstance()->SetDimming(dimmed); |
+ } else { |
+ LOG(ERROR) << "Unable to parse " << kSetDisplaySoftwareDimming |
+ << " request"; |
+ } |
+ response_sender.Run(dbus::Response::FromMethodCall(method_call)); |
+} |
+ |
} // namespace chromeos |