#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
#include "base/metrics/histogram.h"
+#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/signin/profile_oauth2_token_service.h"
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
+#include "chrome/browser/signin/signin_manager.h"
+#include "chrome/browser/signin/signin_manager_factory.h"
#include "google_apis/gaia/gaia_urls.h"
#include "google_apis/gaia/google_service_auth_error.h"
#include "google_apis/gaia/oauth2_token_service.h"
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
+ SigninManagerBase* signin_manager =
+ SigninManagerFactory::GetForProfile(profile_);
token_request_ = token_service->StartRequest(
- token_service->GetPrimaryAccountId(), oauth_scopes, this);
+ signin_manager->GetAuthenticatedAccountId(), oauth_scopes, this);
is_pending_ = true;
}
oauth_scopes.insert(kHistoryOAuthScope);
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
- token_service->InvalidateToken(token_service->GetPrimaryAccountId(),
- oauth_scopes,
- access_token_);
+ SigninManagerBase* signin_manager =
+ SigninManagerFactory::GetForProfile(profile_);
+ token_service->InvalidateToken(
+ signin_manager->GetAuthenticatedAccountId(),
+ oauth_scopes,
+ access_token_);
access_token_.clear();
Start();
}
WebHistoryService::~WebHistoryService() {
+ STLDeleteElements(&pending_expire_requests_);
}
scoped_ptr<WebHistoryService::Request> WebHistoryService::QueryHistory(
return request.PassAs<Request>();
}
-scoped_ptr<WebHistoryService::Request> WebHistoryService::ExpireHistory(
+void WebHistoryService::ExpireHistory(
const std::vector<ExpireHistoryArgs>& expire_list,
const ExpireWebHistoryCallback& callback) {
base::DictionaryValue delete_request;
new RequestImpl(profile_, url, completion_callback));
request->set_post_data(post_data);
request->Start();
- return request.PassAs<Request>();
+ pending_expire_requests_.insert(request.release());
}
-scoped_ptr<WebHistoryService::Request> WebHistoryService::ExpireHistoryBetween(
+void WebHistoryService::ExpireHistoryBetween(
const std::set<GURL>& restrict_urls,
base::Time begin_time,
base::Time end_time,
expire_list.back().urls = restrict_urls;
expire_list.back().begin_time = begin_time;
expire_list.back().end_time = end_time;
- return ExpireHistory(expire_list, callback);
+ ExpireHistory(expire_list, callback);
}
// static
if (response_value)
response_value->GetString("version_info", &server_version_info_);
}
- callback.Run(request, response_value.get() && success);
+ callback.Run(response_value.get() && success);
+ // Clean up from pending requests.
+ pending_expire_requests_.erase(request);
+ delete request;
}
} // namespace history