summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r--chrome/browser/extensions/extension_rlz_apitest.cc6
-rw-r--r--chrome/browser/extensions/extension_rlz_module.cc16
2 files changed, 17 insertions, 5 deletions
diff --git a/chrome/browser/extensions/extension_rlz_apitest.cc b/chrome/browser/extensions/extension_rlz_apitest.cc
index c9c1416..ce97ae0f 100644
--- a/chrome/browser/extensions/extension_rlz_apitest.cc
+++ b/chrome/browser/extensions/extension_rlz_apitest.cc
@@ -55,6 +55,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Rlz) {
KEY_READ);
ASSERT_FALSE(key.Valid());
+ key.Open(HKEY_CURRENT_USER, L"Software\\Google\\Common\\Rlz\\Events\\D",
+ KEY_READ);
+ ASSERT_FALSE(key.Valid());
+
// Mock out experimental.rlz.sendFinancialPing().
ASSERT_TRUE(ExtensionFunctionDispatcher::OverrideFunction(
"experimental.rlz.sendFinancialPing",
@@ -66,7 +70,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Rlz) {
// Now run all the tests.
ASSERT_TRUE(RunExtensionTest("rlz")) << message_;
- ASSERT_EQ(1, MockRlzSendFinancialPingFunction::expected_count());
+ ASSERT_EQ(3, MockRlzSendFinancialPingFunction::expected_count());
ExtensionFunctionDispatcher::ResetFunctions();
// Now make sure we recorded what was expected. If the code in test.js
diff --git a/chrome/browser/extensions/extension_rlz_module.cc b/chrome/browser/extensions/extension_rlz_module.cc
index 25724be..e31fc69 100644
--- a/chrome/browser/extensions/extension_rlz_module.cc
+++ b/chrome/browser/extensions/extension_rlz_module.cc
@@ -144,10 +144,18 @@ bool RlzSendFinancialPingFunction::RunImpl() {
bool exclude_machine_id;
EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(6, &exclude_machine_id));
- return rlz_lib::SendFinancialPing(product, access_points.get(),
- signature.c_str(), brand.c_str(),
- id.c_str(), lang.c_str(),
- exclude_machine_id);
+ // rlz_lib::SendFinancialPing() will not send a ping more often than once in
+ // any 24-hour period. Calling it more often has no effect. If a ping is
+ // not sent false is returned, but this is not an error, so we should not
+ // use the return value of rlz_lib::SendFinancialPing() as the return value
+ // of this function. Callers interested in the return value can register
+ // an optional callback function.
+ bool sent = rlz_lib::SendFinancialPing(product, access_points.get(),
+ signature.c_str(), brand.c_str(),
+ id.c_str(), lang.c_str(),
+ exclude_machine_id);
+ result_.reset(Value::CreateBooleanValue(sent));
+ return true;
}
bool RlzClearProductStateFunction::RunImpl() {