summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r--chrome/browser/extensions/api/instance_id/instance_id_api.cc21
-rw-r--r--chrome/browser/extensions/api/instance_id/instance_id_api.h4
-rw-r--r--chrome/browser/extensions/api/instance_id/instance_id_apitest.cc14
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();
}