Index: extensions/browser/api/system_display/system_display_api.cc |
diff --git a/extensions/browser/api/system_display/system_display_api.cc b/extensions/browser/api/system_display/system_display_api.cc |
index 2b09bad50bcd88c0cb5771da2772fb3a04223ff4..cbab1a7ac730589c1a207c7cb9a0026fb50d7a82 100644 |
--- a/extensions/browser/api/system_display/system_display_api.cc |
+++ b/extensions/browser/api/system_display/system_display_api.cc |
@@ -17,162 +17,157 @@ |
namespace extensions { |
-namespace system_display = api::system_display; |
+namespace display = api::system_display; |
const char SystemDisplayFunction::kCrosOnlyError[] = |
"Function available only on ChromeOS."; |
const char SystemDisplayFunction::kKioskOnlyError[] = |
"Only kiosk enabled extensions are allowed to use this function."; |
-bool SystemDisplayFunction::CheckValidExtension() { |
+bool SystemDisplayFunction::PreRunValidation(std::string* error) { |
+ if (!UIThreadExtensionFunction::PreRunValidation(error)) |
+ return false; |
+ if (!ShouldRestrictToKioskAndWebUI()) |
+ return true; |
+ |
if (!extension()) |
return true; |
#if defined(OS_CHROMEOS) |
if (KioskModeInfo::IsKioskEnabled(extension())) |
return true; |
#endif |
- SetError(kKioskOnlyError); |
+ *error = kKioskOnlyError; |
return false; |
} |
-bool SystemDisplayGetInfoFunction::RunSync() { |
+bool SystemDisplayFunction::ShouldRestrictToKioskAndWebUI() { |
+ return true; |
+} |
+ |
+ExtensionFunction::ResponseAction SystemDisplayGetInfoFunction::Run() { |
DisplayInfoProvider::DisplayUnitInfoList all_displays_info = |
DisplayInfoProvider::Get()->GetAllDisplaysInfo(); |
- results_ = system_display::GetInfo::Results::Create(all_displays_info); |
- return true; |
+ return RespondNow( |
+ ArgumentList(display::GetInfo::Results::Create(all_displays_info))); |
} |
-bool SystemDisplayGetDisplayLayoutFunction::RunSync() { |
-#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
+bool SystemDisplayGetInfoFunction::ShouldRestrictToKioskAndWebUI() { |
return false; |
+} |
+ |
+ExtensionFunction::ResponseAction SystemDisplayGetDisplayLayoutFunction::Run() { |
+#if !defined(OS_CHROMEOS) |
lazyboy
2016/08/26 23:13:16
As 8 out of 9 functions in this namespace is CrOS
Devlin
2016/08/29 16:05:56
Done. Originally I avoided that because it means a
|
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
DisplayInfoProvider::DisplayLayoutList display_layout = |
DisplayInfoProvider::Get()->GetDisplayLayout(); |
- results_ = system_display::GetDisplayLayout::Results::Create(display_layout); |
- return true; |
+ return RespondNow( |
+ ArgumentList(display::GetDisplayLayout::Results::Create(display_layout))); |
#endif |
} |
-bool SystemDisplaySetDisplayPropertiesFunction::RunSync() { |
-#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
+bool SystemDisplayGetDisplayLayoutFunction::ShouldRestrictToKioskAndWebUI() { |
return false; |
+} |
+ |
+ExtensionFunction::ResponseAction |
+SystemDisplaySetDisplayPropertiesFunction::Run() { |
+#if !defined(OS_CHROMEOS) |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
std::string error; |
- std::unique_ptr<system_display::SetDisplayProperties::Params> params( |
- system_display::SetDisplayProperties::Params::Create(*args_)); |
+ std::unique_ptr<display::SetDisplayProperties::Params> params( |
+ display::SetDisplayProperties::Params::Create(*args_)); |
bool result = |
DisplayInfoProvider::Get()->SetInfo(params->id, params->info, &error); |
if (!result) |
- SetError(error); |
- return result; |
+ return RespondNow(Error(error)); |
+ return RespondNow(NoArguments()); |
#endif |
} |
-bool SystemDisplaySetDisplayLayoutFunction::RunSync() { |
+ExtensionFunction::ResponseAction SystemDisplaySetDisplayLayoutFunction::Run() { |
#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
- return false; |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
- std::unique_ptr<system_display::SetDisplayLayout::Params> params( |
- system_display::SetDisplayLayout::Params::Create(*args_)); |
- if (!DisplayInfoProvider::Get()->SetDisplayLayout(params->layouts)) { |
- SetError("Unable to set display layout"); |
- return false; |
- } |
- return true; |
+ std::unique_ptr<display::SetDisplayLayout::Params> params( |
+ display::SetDisplayLayout::Params::Create(*args_)); |
+ if (!DisplayInfoProvider::Get()->SetDisplayLayout(params->layouts)) |
+ return RespondNow(Error("Unable to set display layout")); |
+ return RespondNow(NoArguments()); |
#endif |
} |
-bool SystemDisplayEnableUnifiedDesktopFunction::RunSync() { |
+ExtensionFunction::ResponseAction |
+SystemDisplayEnableUnifiedDesktopFunction::Run() { |
#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
- return false; |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
- std::unique_ptr<system_display::EnableUnifiedDesktop::Params> params( |
- system_display::EnableUnifiedDesktop::Params::Create(*args_)); |
+ std::unique_ptr<display::EnableUnifiedDesktop::Params> params( |
+ display::EnableUnifiedDesktop::Params::Create(*args_)); |
DisplayInfoProvider::Get()->EnableUnifiedDesktop(params->enabled); |
- return true; |
+ return RespondNow(NoArguments()); |
#endif |
} |
-bool SystemDisplayOverscanCalibrationStartFunction::RunSync() { |
+ExtensionFunction::ResponseAction |
+SystemDisplayOverscanCalibrationStartFunction::Run() { |
#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
- return false; |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
- std::unique_ptr<system_display::OverscanCalibrationStart::Params> params( |
- system_display::OverscanCalibrationStart::Params::Create(*args_)); |
- if (!DisplayInfoProvider::Get()->OverscanCalibrationStart(params->id)) { |
- SetError("Invalid display ID: " + params->id); |
- return false; |
- } |
- return true; |
+ std::unique_ptr<display::OverscanCalibrationStart::Params> params( |
+ display::OverscanCalibrationStart::Params::Create(*args_)); |
+ if (!DisplayInfoProvider::Get()->OverscanCalibrationStart(params->id)) |
+ return RespondNow(Error("Invalid display ID: " + params->id)); |
+ return RespondNow(NoArguments()); |
#endif |
} |
-bool SystemDisplayOverscanCalibrationAdjustFunction::RunSync() { |
+ExtensionFunction::ResponseAction |
+SystemDisplayOverscanCalibrationAdjustFunction::Run() { |
#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
- return false; |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
- std::unique_ptr<system_display::OverscanCalibrationAdjust::Params> params( |
- system_display::OverscanCalibrationAdjust::Params::Create(*args_)); |
- if (!params) { |
- SetError("Invalid parameters"); |
- return false; |
- } |
+ std::unique_ptr<display::OverscanCalibrationAdjust::Params> params( |
+ display::OverscanCalibrationAdjust::Params::Create(*args_)); |
+ if (!params) |
+ return RespondNow(Error("Invalid parameters")); |
if (!DisplayInfoProvider::Get()->OverscanCalibrationAdjust(params->id, |
params->delta)) { |
- SetError("Calibration not started for display ID: " + params->id); |
- return false; |
+ return RespondNow( |
+ Error("Calibration not started for display ID: " + params->id)); |
} |
- return true; |
+ return RespondNow(NoArguments()); |
+ ; |
#endif |
} |
-bool SystemDisplayOverscanCalibrationResetFunction::RunSync() { |
+ExtensionFunction::ResponseAction |
+SystemDisplayOverscanCalibrationResetFunction::Run() { |
#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
- return false; |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
- std::unique_ptr<system_display::OverscanCalibrationReset::Params> params( |
- system_display::OverscanCalibrationReset::Params::Create(*args_)); |
- if (!DisplayInfoProvider::Get()->OverscanCalibrationReset(params->id)) { |
- SetError("Calibration not started for display ID: " + params->id); |
- return false; |
- } |
- return true; |
+ std::unique_ptr<display::OverscanCalibrationReset::Params> params( |
+ display::OverscanCalibrationReset::Params::Create(*args_)); |
+ if (!DisplayInfoProvider::Get()->OverscanCalibrationReset(params->id)) |
+ return RespondNow( |
+ Error("Calibration not started for display ID: " + params->id)); |
+ return RespondNow(NoArguments()); |
#endif |
} |
-bool SystemDisplayOverscanCalibrationCompleteFunction::RunSync() { |
+ExtensionFunction::ResponseAction |
+SystemDisplayOverscanCalibrationCompleteFunction::Run() { |
#if !defined(OS_CHROMEOS) |
- SetError(kCrosOnlyError); |
- return false; |
+ return RespondNow(Error(kCrosOnlyError)); |
#else |
- if (!CheckValidExtension()) |
- return false; |
- std::unique_ptr<system_display::OverscanCalibrationComplete::Params> params( |
- system_display::OverscanCalibrationComplete::Params::Create(*args_)); |
+ std::unique_ptr<display::OverscanCalibrationComplete::Params> params( |
+ display::OverscanCalibrationComplete::Params::Create(*args_)); |
if (!DisplayInfoProvider::Get()->OverscanCalibrationComplete(params->id)) { |
- SetError("Calibration not started for display ID: " + params->id); |
- return false; |
+ return RespondNow( |
+ Error("Calibration not started for display ID: " + params->id)); |
} |
- return true; |
+ return RespondNow(NoArguments()); |
#endif |
} |