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

Unified Diff: chrome/browser/cancelable_request.cc

Issue 6538100: Move core pieces of chrome\browser. I've only gone up to "g", will do the re... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: take out extra stuff from content_browser.gypi Created 9 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/cancelable_request.h ('k') | chrome/browser/cert_store.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cancelable_request.cc
===================================================================
--- chrome/browser/cancelable_request.cc (revision 75626)
+++ chrome/browser/cancelable_request.cc (working copy)
@@ -1,106 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/cancelable_request.h"
-
-CancelableRequestProvider::CancelableRequestProvider() : next_handle_(1) {
-}
-
-CancelableRequestProvider::~CancelableRequestProvider() {
- // There may be requests whose result callback has not been run yet. We need
- // to cancel them otherwise they may try and call us back after we've been
- // deleted, or do other bad things. This can occur on shutdown (or profile
- // destruction) when a request is scheduled, completed (but not dispatched),
- // then the Profile is deleted.
- base::AutoLock lock(pending_request_lock_);
- while (!pending_requests_.empty())
- CancelRequestLocked(pending_requests_.begin());
-}
-
-CancelableRequestProvider::Handle CancelableRequestProvider::AddRequest(
- CancelableRequestBase* request,
- CancelableRequestConsumerBase* consumer) {
- Handle handle;
- {
- base::AutoLock lock(pending_request_lock_);
-
- handle = next_handle_;
- pending_requests_[next_handle_] = request;
- ++next_handle_;
- }
-
- consumer->OnRequestAdded(this, handle);
-
- request->Init(this, handle, consumer);
- return handle;
-}
-
-void CancelableRequestProvider::CancelRequest(Handle handle) {
- base::AutoLock lock(pending_request_lock_);
- CancelRequestLocked(pending_requests_.find(handle));
-}
-
-void CancelableRequestProvider::CancelRequestLocked(
- const CancelableRequestMap::iterator& item) {
- pending_request_lock_.AssertAcquired();
- if (item == pending_requests_.end()) {
- NOTREACHED() << "Trying to cancel an unknown request";
- return;
- }
-
- item->second->consumer()->OnRequestRemoved(this, item->first);
- item->second->set_canceled();
- pending_requests_.erase(item);
-}
-
-void CancelableRequestProvider::RequestCompleted(Handle handle) {
- CancelableRequestConsumerBase* consumer = NULL;
- {
- base::AutoLock lock(pending_request_lock_);
-
- CancelableRequestMap::iterator i = pending_requests_.find(handle);
- if (i == pending_requests_.end()) {
- NOTREACHED() << "Trying to cancel an unknown request";
- return;
- }
- consumer = i->second->consumer();
-
- // This message should only get sent if the class is not cancelled, or
- // else the consumer might be gone).
- DCHECK(!i->second->canceled());
-
- pending_requests_.erase(i);
- }
-
- // Notify the consumer that the request is gone
- consumer->OnRequestRemoved(this, handle);
-}
-
-// MSVC doesn't like complex extern templates and DLLs.
-#if !defined(COMPILER_MSVC)
-// Emit our most common CancelableRequestConsumer.
-template class CancelableRequestConsumerTSimple<int>;
-
-// And the most common subclass of it.
-template class CancelableRequestConsumerT<int, 0>;
-#endif
-
-CancelableRequestBase::CancelableRequestBase()
- : provider_(NULL),
- consumer_(NULL),
- handle_(0) {
- callback_thread_ = MessageLoop::current();
-}
-
-CancelableRequestBase::~CancelableRequestBase() {
-}
-
-void CancelableRequestBase::Init(CancelableRequestProvider* provider,
- CancelableRequestProvider::Handle handle,
- CancelableRequestConsumerBase* consumer) {
- DCHECK(handle_ == 0 && provider_ == NULL && consumer_ == NULL);
- provider_ = provider;
- consumer_ = consumer;
- handle_ = handle;
-}
« no previous file with comments | « chrome/browser/cancelable_request.h ('k') | chrome/browser/cert_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698