diff options
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r-- | chrome/browser/extensions/extension_rlz_apitest.cc | 6 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_rlz_module.cc | 16 |
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() { |