Index: chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc |
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc |
index a7f1ce612bd5baa88d9da56f050c474165e529de..67fa839fe022953dce8a3ddafcf573199b8611a1 100644 |
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc |
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc |
@@ -10,8 +10,11 @@ |
#include "base/values.h" |
#include "chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.h" |
#include "chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_crypto_delegate.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/signin/easy_unlock_service.h" |
#include "chrome/common/extensions/api/easy_unlock_private.h" |
#include "extensions/browser/browser_context_keyed_api_factory.h" |
+#include "extensions/browser/event_router.h" |
#include "grit/generated_resources.h" |
#include "ui/base/l10n/l10n_util.h" |
@@ -43,11 +46,22 @@ BrowserContextKeyedAPIFactory<EasyUnlockPrivateAPI>* |
} |
EasyUnlockPrivateAPI::EasyUnlockPrivateAPI(content::BrowserContext* context) |
- : crypto_delegate_(EasyUnlockPrivateCryptoDelegate::Create()) { |
+ : browser_context_(context), |
+ crypto_delegate_(EasyUnlockPrivateCryptoDelegate::Create()) { |
} |
EasyUnlockPrivateAPI::~EasyUnlockPrivateAPI() {} |
+void EasyUnlockPrivateAPI::SendTurnOffFlowFinished() { |
+ using easy_unlock_private::OnTurnOffFlowFinished::kEventName; |
+ EventRouter* router = EventRouter::Get(browser_context_); |
+ if (!router || !router->HasEventListener(kEventName)) |
+ return; |
+ scoped_ptr<base::ListValue> args(new base::ListValue()); |
+ scoped_ptr<Event> event(new Event(kEventName, args.Pass())); |
+ router->BroadcastEvent(event.Pass()); |
+} |
+ |
EasyUnlockPrivateGetStringsFunction::EasyUnlockPrivateGetStringsFunction() { |
} |
EasyUnlockPrivateGetStringsFunction::~EasyUnlockPrivateGetStringsFunction() { |
@@ -368,5 +382,103 @@ void EasyUnlockPrivateSeekBluetoothDeviceByAddressFunction::OnSeekCompleted( |
} |
} |
+EasyUnlockPrivateSetPermitAccessFunction:: |
+ EasyUnlockPrivateSetPermitAccessFunction() { |
+} |
+ |
+EasyUnlockPrivateSetPermitAccessFunction:: |
+ ~EasyUnlockPrivateSetPermitAccessFunction() { |
+} |
+ |
+bool EasyUnlockPrivateSetPermitAccessFunction::RunSync() { |
+ scoped_ptr<easy_unlock_private::SetPermitAccess::Params> params( |
+ easy_unlock_private::SetPermitAccess::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ Profile* profile = Profile::FromBrowserContext(browser_context()); |
+ EasyUnlockService::Get(profile) |
+ ->SetPermitAccess(*params->permit_access.ToValue()); |
+ |
+ return true; |
+} |
+ |
+EasyUnlockPrivateGetPermitAccessFunction:: |
+ EasyUnlockPrivateGetPermitAccessFunction() { |
+} |
+ |
+EasyUnlockPrivateGetPermitAccessFunction:: |
+ ~EasyUnlockPrivateGetPermitAccessFunction() { |
+} |
+ |
+bool EasyUnlockPrivateGetPermitAccessFunction::RunSync() { |
+ Profile* profile = Profile::FromBrowserContext(browser_context()); |
+ const base::DictionaryValue* permit_value = |
+ EasyUnlockService::Get(profile)->GetPermitAccess(); |
+ if (permit_value) { |
+ scoped_ptr<easy_unlock_private::PermitRecord> permit = |
+ easy_unlock_private::PermitRecord::FromValue(*permit_value); |
+ results_ = easy_unlock_private::GetPermitAccess::Results::Create(*permit); |
+ } |
+ |
+ return true; |
+} |
+ |
+EasyUnlockPrivateClearPermitAccessFunction:: |
+ EasyUnlockPrivateClearPermitAccessFunction() { |
+} |
+ |
+EasyUnlockPrivateClearPermitAccessFunction:: |
+ ~EasyUnlockPrivateClearPermitAccessFunction() { |
+} |
+ |
+bool EasyUnlockPrivateClearPermitAccessFunction::RunSync() { |
+ Profile* profile = Profile::FromBrowserContext(browser_context()); |
+ EasyUnlockService::Get(profile)->ClearPermitAccess(); |
+ return true; |
+} |
+ |
+EasyUnlockPrivateSetRemoteDevicesFunction:: |
+ EasyUnlockPrivateSetRemoteDevicesFunction() { |
+} |
+ |
+EasyUnlockPrivateSetRemoteDevicesFunction:: |
+ ~EasyUnlockPrivateSetRemoteDevicesFunction() { |
+} |
+ |
+bool EasyUnlockPrivateSetRemoteDevicesFunction::RunSync() { |
+ scoped_ptr<easy_unlock_private::SetRemoteDevices::Params> params( |
+ easy_unlock_private::SetRemoteDevices::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ Profile* profile = Profile::FromBrowserContext(browser_context()); |
+ if (params->devices.empty()) { |
+ EasyUnlockService::Get(profile)->ClearRemoteDevices(); |
+ } else { |
+ base::ListValue devices; |
+ for (size_t i = 0; i < params->devices.size(); ++i) { |
+ devices.Append(params->devices[i]->ToValue().release()); |
+ } |
+ EasyUnlockService::Get(profile)->SetRemoteDevices(devices); |
+ } |
+ |
+ return true; |
+} |
+ |
+EasyUnlockPrivateGetRemoteDevicesFunction:: |
+ EasyUnlockPrivateGetRemoteDevicesFunction() { |
+} |
+ |
+EasyUnlockPrivateGetRemoteDevicesFunction:: |
+ ~EasyUnlockPrivateGetRemoteDevicesFunction() { |
+} |
+ |
+bool EasyUnlockPrivateGetRemoteDevicesFunction::RunSync() { |
+ Profile* profile = Profile::FromBrowserContext(browser_context()); |
+ const base::ListValue* devices = |
+ EasyUnlockService::Get(profile)->GetRemoteDevices(); |
+ SetResult(devices ? devices->DeepCopy() : new base::ListValue()); |
+ return true; |
+} |
+ |
} // namespace api |
} // namespace extensions |