| 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..1b7f87e4225524c8878bcc8a6c6a8f11f662adb9 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,6 +10,9 @@
|
| #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_screenlock_state_handler.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 "grit/generated_resources.h"
|
| @@ -34,6 +37,36 @@ EasyUnlockPrivateCryptoDelegate* GetCryptoDelegate(
|
| ->crypto_delegate();
|
| }
|
|
|
| +EasyUnlockScreenlockStateHandler* GetScreenlockStateHandler(
|
| + content::BrowserContext* context) {
|
| + return EasyUnlockService::Get(Profile::FromBrowserContext(context))
|
| + ->GetScreenlockStateHandler();
|
| +}
|
| +
|
| +EasyUnlockScreenlockStateHandler::State ToScreenlockStateHandlerState(
|
| + easy_unlock_private::State state) {
|
| + switch (state) {
|
| + case easy_unlock_private::STATE_NO_BLUETOOTH:
|
| + return EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH;
|
| + case easy_unlock_private::STATE_BLUETOOTH_CONNECTING:
|
| + return EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING;
|
| + case easy_unlock_private::STATE_NO_PHONE:
|
| + return EasyUnlockScreenlockStateHandler::STATE_NO_PHONE;
|
| + case easy_unlock_private::STATE_PHONE_NOT_AUTHENTICATED:
|
| + return EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_AUTHENTICATED;
|
| + case easy_unlock_private::STATE_PHONE_LOCKED:
|
| + return EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED;
|
| + case easy_unlock_private::STATE_PHONE_UNLOCKABLE:
|
| + return EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE;
|
| + case easy_unlock_private::STATE_PHONE_NOT_NEARBY:
|
| + return EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY;
|
| + case easy_unlock_private::STATE_AUTHENTICATED:
|
| + return EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED;
|
| + default:
|
| + return EasyUnlockScreenlockStateHandler::STATE_INACTIVE;
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -368,5 +401,28 @@ void EasyUnlockPrivateSeekBluetoothDeviceByAddressFunction::OnSeekCompleted(
|
| }
|
| }
|
|
|
| +EasyUnlockPrivateUpdateScreenlockStateFunction::
|
| + EasyUnlockPrivateUpdateScreenlockStateFunction() {}
|
| +
|
| +EasyUnlockPrivateUpdateScreenlockStateFunction::
|
| + ~EasyUnlockPrivateUpdateScreenlockStateFunction() {}
|
| +
|
| +bool EasyUnlockPrivateUpdateScreenlockStateFunction::RunSync() {
|
| + scoped_ptr<easy_unlock_private::UpdateScreenlockState::Params> params(
|
| + easy_unlock_private::UpdateScreenlockState::Params::Create(*args_));
|
| + EXTENSION_FUNCTION_VALIDATE(params.get());
|
| +
|
| + EasyUnlockScreenlockStateHandler* screenlock_state_handler =
|
| + GetScreenlockStateHandler(browser_context());
|
| + if (screenlock_state_handler) {
|
| + screenlock_state_handler->ChangeState(
|
| + ToScreenlockStateHandlerState(params->state));
|
| + return true;
|
| + }
|
| +
|
| + SetError("Not allowed");
|
| + return false;
|
| +}
|
| +
|
| } // namespace api
|
| } // namespace extensions
|
|
|