| Index: chrome/browser/history/web_history_service.cc
|
| diff --git a/chrome/browser/history/web_history_service.cc b/chrome/browser/history/web_history_service.cc
|
| index 12d13e10e41981d1889f1a1d76868a7aee46174f..a8be69ccd56a5efcd4fb926e64aa482f0610bd0d 100644
|
| --- a/chrome/browser/history/web_history_service.cc
|
| +++ b/chrome/browser/history/web_history_service.cc
|
| @@ -8,6 +8,7 @@
|
| #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"
|
| @@ -304,6 +305,7 @@ WebHistoryService::WebHistoryService(Profile* profile)
|
| }
|
|
|
| WebHistoryService::~WebHistoryService() {
|
| + STLDeleteElements(&pending_expire_requests_);
|
| }
|
|
|
| scoped_ptr<WebHistoryService::Request> WebHistoryService::QueryHistory(
|
| @@ -321,7 +323,7 @@ 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;
|
| @@ -368,10 +370,10 @@ scoped_ptr<WebHistoryService::Request> WebHistoryService::ExpireHistory(
|
| 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,
|
| @@ -380,7 +382,7 @@ scoped_ptr<WebHistoryService::Request> WebHistoryService::ExpireHistoryBetween(
|
| 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
|
| @@ -404,7 +406,10 @@ void WebHistoryService::ExpireHistoryCompletionCallback(
|
| 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
|
|
|