diff options
Diffstat (limited to 'chrome/browser/extensions')
3 files changed, 33 insertions, 6 deletions
diff --git a/chrome/browser/extensions/api/instance_id/instance_id_api.cc b/chrome/browser/extensions/api/instance_id/instance_id_api.cc index 4c15782..c57b4ed 100644 --- a/chrome/browser/extensions/api/instance_id/instance_id_api.cc +++ b/chrome/browser/extensions/api/instance_id/instance_id_api.cc @@ -81,8 +81,13 @@ InstanceIDGetIDFunction::InstanceIDGetIDFunction() {} InstanceIDGetIDFunction::~InstanceIDGetIDFunction() {} ExtensionFunction::ResponseAction InstanceIDGetIDFunction::DoWork() { - return RespondNow( - OneArgument(new base::StringValue(GetInstanceID()->GetID()))); + GetInstanceID()->GetID( + base::Bind(&InstanceIDGetIDFunction::GetIDCompleted, this)); + return RespondLater(); +} + +void InstanceIDGetIDFunction::GetIDCompleted(const std::string& id) { + Respond(OneArgument(new base::StringValue(id))); } InstanceIDGetCreationTimeFunction::InstanceIDGetCreationTimeFunction() {} @@ -90,9 +95,15 @@ InstanceIDGetCreationTimeFunction::InstanceIDGetCreationTimeFunction() {} InstanceIDGetCreationTimeFunction::~InstanceIDGetCreationTimeFunction() {} ExtensionFunction::ResponseAction InstanceIDGetCreationTimeFunction::DoWork() { - return RespondNow(OneArgument( - new base::FundamentalValue( - GetInstanceID()->GetCreationTime().ToDoubleT()))); + GetInstanceID()->GetCreationTime( + base::Bind(&InstanceIDGetCreationTimeFunction::GetCreationTimeCompleted, + this)); + return RespondLater(); +} + +void InstanceIDGetCreationTimeFunction::GetCreationTimeCompleted( + const base::Time& creation_time) { + Respond(OneArgument(new base::FundamentalValue(creation_time.ToDoubleT()))); } InstanceIDGetTokenFunction::InstanceIDGetTokenFunction() {} diff --git a/chrome/browser/extensions/api/instance_id/instance_id_api.h b/chrome/browser/extensions/api/instance_id/instance_id_api.h index 9bb404a..6ae1f9d0 100644 --- a/chrome/browser/extensions/api/instance_id/instance_id_api.h +++ b/chrome/browser/extensions/api/instance_id/instance_id_api.h @@ -47,6 +47,8 @@ class InstanceIDGetIDFunction : public InstanceIDApiFunction { ResponseAction DoWork() override; private: + void GetIDCompleted(const std::string& id); + DISALLOW_COPY_AND_ASSIGN(InstanceIDGetIDFunction); }; @@ -64,6 +66,8 @@ class InstanceIDGetCreationTimeFunction : public InstanceIDApiFunction { ResponseAction DoWork() override; private: + void GetCreationTimeCompleted(const base::Time& creation_time); + DISALLOW_COPY_AND_ASSIGN(InstanceIDGetCreationTimeFunction); }; diff --git a/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc b/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc index 6a3c4ab..a8c00fb 100644 --- a/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc +++ b/chrome/browser/extensions/api/instance_id/instance_id_apitest.cc @@ -12,12 +12,24 @@ #include "chrome/browser/services/gcm/instance_id/instance_id_profile_service_factory.h" #include "chrome/common/chrome_switches.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h" #include "extensions/test/result_catcher.h" using extensions::ResultCatcher; namespace extensions { +namespace { + +KeyedService* BuildFakeGCMProfileService(content::BrowserContext* context) { + gcm::FakeGCMProfileService* service = + new gcm::FakeGCMProfileService(Profile::FromBrowserContext(context)); + service->SetDriverForTesting(new instance_id::FakeGCMDriverForInstanceID()); + return service; +} + +} // namespace + class InstanceIDApiTest : public ExtensionApiTest { public: InstanceIDApiTest() {} @@ -32,7 +44,7 @@ class InstanceIDApiTest : public ExtensionApiTest { void InstanceIDApiTest::SetUpOnMainThread() { gcm::GCMProfileServiceFactory::GetInstance()->SetTestingFactory( - browser()->profile(), &gcm::FakeGCMProfileService::Build); + browser()->profile(), &BuildFakeGCMProfileService); ExtensionApiTest::SetUpOnMainThread(); } |