| Index: chrome/browser/chrome_net_benchmarking_message_filter.cc
|
| diff --git a/chrome/browser/chrome_net_benchmarking_message_filter.cc b/chrome/browser/chrome_net_benchmarking_message_filter.cc
|
| index b95edb47744fc37d27f1bc8e3b94023892d9f32c..ef57cf85d7d71cfc8166bd924077254023f6f51a 100644
|
| --- a/chrome/browser/chrome_net_benchmarking_message_filter.cc
|
| +++ b/chrome/browser/chrome_net_benchmarking_message_filter.cc
|
| @@ -60,6 +60,13 @@ bool ChromeNetBenchmarkingMessageFilter::OnMessageReceived(
|
| return handled;
|
| }
|
|
|
| +void ChromeNetBenchmarkingMessageFilter::OverrideThreadForMessage(
|
| + const IPC::Message& message,
|
| + content::BrowserThread::ID* thread) {
|
| + if (message.type() == ChromeViewHostMsg_ClearPredictorCache::ID)
|
| + *thread = content::BrowserThread::UI;
|
| +}
|
| +
|
| void ChromeNetBenchmarkingMessageFilter::OnClearCache(IPC::Message* reply_msg) {
|
| // This function is disabled unless the user has enabled
|
| // benchmarking extensions.
|
| @@ -126,13 +133,16 @@ void ChromeNetBenchmarkingMessageFilter::OnSetCacheMode(bool enabled) {
|
| void ChromeNetBenchmarkingMessageFilter::OnClearPredictorCache() {
|
| // This function is disabled unless the user has enabled
|
| // benchmarking extensions.
|
| + DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| if (!CheckBenchmarkingEnabled()) {
|
| NOTREACHED() << "Received unexpected benchmarking IPC";
|
| return;
|
| }
|
| + // TODO(623967): Ensure that the profile or predictor are not accessed after
|
| + // they have been shut down.
|
| chrome_browser_net::Predictor* predictor = profile_->GetNetworkPredictor();
|
| if (predictor)
|
| - predictor->DiscardAllResults();
|
| + predictor->DiscardAllResultsAndClearPrefsOnUIThread();
|
| }
|
|
|
| bool ChromeNetBenchmarkingMessageFilter::CheckBenchmarkingEnabled() const {
|
|
|