| Index: cloud_print/service/win/chrome_launcher.cc
|
| diff --git a/cloud_print/service/win/chrome_launcher.cc b/cloud_print/service/win/chrome_launcher.cc
|
| index 831af6f25d9c087a2cfa1e12fb0d7ca2006020f1..6c5bbc52ba06c01cb3ddf4f079598b32034bc723 100644
|
| --- a/cloud_print/service/win/chrome_launcher.cc
|
| +++ b/cloud_print/service/win/chrome_launcher.cc
|
| @@ -20,6 +20,8 @@
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/installer/launcher_support/chrome_launcher_support.h"
|
| +#include "cloud_print/common/win/cloud_print_utils.h"
|
| +#include "cloud_print/service/service_constants.h"
|
| #include "google_apis/gaia/gaia_urls.h"
|
| #include "googleurl/src/gurl.h"
|
| #include "net/base/url_util.h"
|
| @@ -27,6 +29,7 @@
|
| namespace {
|
|
|
| const int kShutdownTimeoutMs = 30 * 1000;
|
| +const int kUsageUpdateTimeoutMs = 6 * 3600 * 1000; // 6 hours.
|
|
|
| static const char16 kAutoRunKeyPath[] =
|
| L"Software\\Microsoft\\Windows\\CurrentVersion\\Run";
|
| @@ -202,10 +205,14 @@ void ChromeLauncher::Run() {
|
| base::Time started = base::Time::Now();
|
| DWORD thread_id = 0;
|
| LaunchProcess(cmd, chrome_handle.Receive(), &thread_id);
|
| - int exit_code = 0;
|
| +
|
| HANDLE handles[] = {stop_event_.handle(), chrome_handle};
|
| - DWORD wait_result = ::WaitForMultipleObjects(arraysize(handles), handles,
|
| - FALSE, INFINITE);
|
| + DWORD wait_result = WAIT_TIMEOUT;
|
| + while (wait_result == WAIT_TIMEOUT) {
|
| + cloud_print::SetGoogleUpdateUsage(kGoogleUpdateId);
|
| + wait_result = ::WaitForMultipleObjects(arraysize(handles), handles,
|
| + FALSE, kUsageUpdateTimeoutMs);
|
| + }
|
| if (wait_result == WAIT_OBJECT_0) {
|
| ShutdownChrome(chrome_handle, thread_id);
|
| break;
|
| @@ -289,7 +296,6 @@ std::string ChromeLauncher::CreateServiceStateFile(
|
| return result;
|
| }
|
|
|
| - int exit_code = 0;
|
| DWORD wait_result = ::WaitForSingleObject(chrome_handle, INFINITE);
|
| if (wait_result != WAIT_OBJECT_0) {
|
| LOG(ERROR) << "Chrome launch failed.";
|
|
|