summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/api')
-rw-r--r--chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc56
-rw-r--r--chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h25
-rw-r--r--chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc15
3 files changed, 93 insertions, 3 deletions
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 a7f1ce6..1b7f87e 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
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h
index de47c5e..3802861 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h
@@ -81,6 +81,8 @@ class EasyUnlockPrivatePerformECDHKeyAgreementFunction
DECLARE_EXTENSION_FUNCTION("easyUnlockPrivate.performECDHKeyAgreement",
EASYUNLOCKPRIVATE_PERFORMECDHKEYAGREEMENT)
+
+ DISALLOW_COPY_AND_ASSIGN(EasyUnlockPrivatePerformECDHKeyAgreementFunction);
};
class EasyUnlockPrivateGenerateEcP256KeyPairFunction
@@ -99,6 +101,8 @@ class EasyUnlockPrivateGenerateEcP256KeyPairFunction
DECLARE_EXTENSION_FUNCTION("easyUnlockPrivate.generateEcP256KeyPair",
EASYUNLOCKPRIVATE_GENERATEECP256KEYPAIR)
+
+ DISALLOW_COPY_AND_ASSIGN(EasyUnlockPrivateGenerateEcP256KeyPairFunction);
};
class EasyUnlockPrivateCreateSecureMessageFunction
@@ -116,6 +120,8 @@ class EasyUnlockPrivateCreateSecureMessageFunction
DECLARE_EXTENSION_FUNCTION("easyUnlockPrivate.createSecureMessage",
EASYUNLOCKPRIVATE_CREATESECUREMESSAGE)
+
+ DISALLOW_COPY_AND_ASSIGN(EasyUnlockPrivateCreateSecureMessageFunction);
};
class EasyUnlockPrivateUnwrapSecureMessageFunction
@@ -133,6 +139,8 @@ class EasyUnlockPrivateUnwrapSecureMessageFunction
DECLARE_EXTENSION_FUNCTION("easyUnlockPrivate.unwrapSecureMessage",
EASYUNLOCKPRIVATE_UNWRAPSECUREMESSAGE)
+
+ DISALLOW_COPY_AND_ASSIGN(EasyUnlockPrivateUnwrapSecureMessageFunction);
};
class EasyUnlockPrivateSeekBluetoothDeviceByAddressFunction
@@ -155,6 +163,23 @@ class EasyUnlockPrivateSeekBluetoothDeviceByAddressFunction
EasyUnlockPrivateSeekBluetoothDeviceByAddressFunction);
};
+class EasyUnlockPrivateUpdateScreenlockStateFunction
+ : public SyncExtensionFunction {
+ public:
+ EasyUnlockPrivateUpdateScreenlockStateFunction();
+
+ protected:
+ virtual ~EasyUnlockPrivateUpdateScreenlockStateFunction();
+
+ virtual bool RunSync() OVERRIDE;
+
+ private:
+ DECLARE_EXTENSION_FUNCTION("easyUnlockPrivate.updateScreenlockState",
+ EASYUNLOCKPRIVATE_UPDATESCREENLOCKSTATE)
+
+ DISALLOW_COPY_AND_ASSIGN(EasyUnlockPrivateUpdateScreenlockStateFunction);
+};
+
} // namespace api
} // namespace extensions
diff --git a/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc b/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
index a51aca6..eb7b6e2 100644
--- a/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
+++ b/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
@@ -7,6 +7,7 @@
#include <vector>
#include "base/lazy_instance.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/screenlock_private.h"
@@ -100,7 +101,7 @@ bool ScreenlockPrivateShowMessageFunction::RunAsync() {
ScreenlockBridge::LockHandler* locker =
ScreenlockBridge::Get()->lock_handler();
if (locker)
- locker->ShowBannerMessage(params->message);
+ locker->ShowBannerMessage(base::UTF8ToUTF16(params->message));
SendResponse(error_.empty());
return true;
}
@@ -168,9 +169,17 @@ void ScreenlockPrivateShowCustomIconFunction::OnImageLoaded(
const gfx::Image& image) {
ScreenlockBridge::LockHandler* locker =
ScreenlockBridge::Get()->lock_handler();
+ if (!locker) {
+ SetError(kNotLockedError);
+ SendResponse(false);
+ return;
+ }
+
+ ScreenlockBridge::UserPodCustomIconOptions icon;
+ icon.SetIconAsImage(image);
locker->ShowUserPodCustomIcon(
ScreenlockBridge::GetAuthenticatedUserEmail(GetProfile()),
- image);
+ icon);
SendResponse(error_.empty());
}
@@ -212,7 +221,7 @@ bool ScreenlockPrivateSetAuthTypeFunction::RunAsync() {
locker->SetAuthType(
ScreenlockBridge::GetAuthenticatedUserEmail(GetProfile()),
ToLockHandlerAuthType(params->auth_type),
- initial_value);
+ base::UTF8ToUTF16(initial_value));
} else {
SetError(kNotLockedError);
}