Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: components/update_client/action.cc

Issue 1578083002: Implements an UpdateClient::SendUninstallPing API for the (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/update_client/action.h" 5 #include "components/update_client/action.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 NotifyObservers(Events::COMPONENT_UPDATED, id); 82 NotifyObservers(Events::COMPONENT_UPDATED, id);
83 break; 83 break;
84 case CrxUpdateItem::State::kUpToDate: 84 case CrxUpdateItem::State::kUpToDate:
85 case CrxUpdateItem::State::kNoUpdate: 85 case CrxUpdateItem::State::kNoUpdate:
86 NotifyObservers(Events::COMPONENT_NOT_UPDATED, id); 86 NotifyObservers(Events::COMPONENT_NOT_UPDATED, id);
87 break; 87 break;
88 case CrxUpdateItem::State::kNew: 88 case CrxUpdateItem::State::kNew:
89 case CrxUpdateItem::State::kDownloading: 89 case CrxUpdateItem::State::kDownloading:
90 case CrxUpdateItem::State::kDownloadingDiff: 90 case CrxUpdateItem::State::kDownloadingDiff:
91 case CrxUpdateItem::State::kDownloaded: 91 case CrxUpdateItem::State::kDownloaded:
92 case CrxUpdateItem::State::kUninstalled:
92 case CrxUpdateItem::State::kLastStatus: 93 case CrxUpdateItem::State::kLastStatus:
93 // No notification for these states. 94 // No notification for these states.
94 break; 95 break;
95 } 96 }
96 } 97 }
97 98
98 size_t ActionImpl::ChangeAllItemsState(CrxUpdateItem::State from, 99 size_t ActionImpl::ChangeAllItemsState(CrxUpdateItem::State from,
99 CrxUpdateItem::State to) { 100 CrxUpdateItem::State to) {
100 DCHECK(thread_checker_.CalledOnValidThread()); 101 DCHECK(thread_checker_.CalledOnValidThread());
101 size_t count = 0; 102 size_t count = 0;
(...skipping 26 matching lines...) Expand all
128 : ActionUpdateFull::Create()); 129 : ActionUpdateFull::Create());
129 130
130 base::ThreadTaskRunnerHandle::Get()->PostTask( 131 base::ThreadTaskRunnerHandle::Get()->PostTask(
131 FROM_HERE, base::Bind(&Action::Run, base::Unretained(update_action.get()), 132 FROM_HERE, base::Bind(&Action::Run, base::Unretained(update_action.get()),
132 update_context_, callback_)); 133 update_context_, callback_));
133 134
134 update_context_->current_action.reset(update_action.release()); 135 update_context_->current_action.reset(update_action.release());
135 } 136 }
136 137
137 void ActionImpl::UpdateCrxComplete(CrxUpdateItem* item) { 138 void ActionImpl::UpdateCrxComplete(CrxUpdateItem* item) {
138 update_context_->ping_manager->OnUpdateComplete(item); 139 update_context_->ping_manager->SendPing(item);
139 140
140 update_context_->queue.pop(); 141 update_context_->queue.pop();
141 142
142 if (update_context_->queue.empty()) { 143 if (update_context_->queue.empty()) {
143 UpdateComplete(0); 144 UpdateComplete(0);
144 } else { 145 } else {
145 // TODO(sorin): the value of timing interval between CRX updates might have 146 // TODO(sorin): the value of timing interval between CRX updates might have
146 // to be injected at the call site of update_client::UpdateClient::Update. 147 // to be injected at the call site of update_client::UpdateClient::Update.
147 const int wait_sec = update_context_->config->UpdateDelay(); 148 const int wait_sec = update_context_->config->UpdateDelay();
148 149
149 scoped_ptr<ActionWait> action_wait( 150 scoped_ptr<ActionWait> action_wait(
150 new ActionWait(base::TimeDelta::FromSeconds(wait_sec))); 151 new ActionWait(base::TimeDelta::FromSeconds(wait_sec)));
151 152
152 base::ThreadTaskRunnerHandle::Get()->PostTask( 153 base::ThreadTaskRunnerHandle::Get()->PostTask(
153 FROM_HERE, base::Bind(&Action::Run, base::Unretained(action_wait.get()), 154 FROM_HERE, base::Bind(&Action::Run, base::Unretained(action_wait.get()),
154 update_context_, callback_)); 155 update_context_, callback_));
155 156
156 update_context_->current_action.reset(action_wait.release()); 157 update_context_->current_action.reset(action_wait.release());
157 } 158 }
158 } 159 }
159 160
160 void ActionImpl::UpdateComplete(int error) { 161 void ActionImpl::UpdateComplete(int error) {
161 DCHECK(thread_checker_.CalledOnValidThread()); 162 DCHECK(thread_checker_.CalledOnValidThread());
162 163
163 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 164 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
164 base::Bind(callback_, error)); 165 base::Bind(callback_, error));
165 } 166 }
166 167
167 } // namespace update_client 168 } // namespace update_client
OLDNEW
« no previous file with comments | « components/component_updater/component_updater_service_unittest.cc ('k') | components/update_client/crx_update_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698