| Index: chrome/browser/profiles/off_the_record_profile_impl.cc
|
| diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc
|
| index 75d42a62520d1dfa419c5cc24a9833f88e5261a2..df018419ad1a6e4adf650c6bbb796381d6ae65c9 100644
|
| --- a/chrome/browser/profiles/off_the_record_profile_impl.cc
|
| +++ b/chrome/browser/profiles/off_the_record_profile_impl.cc
|
| @@ -452,8 +452,16 @@ chrome_browser_net::Predictor* OffTheRecordProfileImpl::GetNetworkPredictor() {
|
| return NULL;
|
| }
|
|
|
| -void OffTheRecordProfileImpl::ClearNetworkingHistorySince(base::Time time) {
|
| - // No need to do anything here, our transport security state is read-only.
|
| +void OffTheRecordProfileImpl::ClearNetworkingHistorySince(
|
| + base::Time time,
|
| + const base::Closure& completion) {
|
| + // Nothing to do here, our transport security state is read-only.
|
| + // Still, fire the callback to indicate we have finished, otherwise the
|
| + // BrowsingDataRemover will never be destroyed and the dialog will never be
|
| + // closed. We must do this asynchronously in order to avoid reentrancy issues.
|
| + if (!completion.is_null()) {
|
| + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, completion);
|
| + }
|
| }
|
|
|
| GURL OffTheRecordProfileImpl::GetHomePage() {
|
|
|