summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsdefresne <sdefresne@chromium.org>2015-12-01 09:50:21 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-01 17:51:23 +0000
commitd11ece3c9f74fb73c5e73836bc61fd6dcbd317e2 (patch)
treed3c94ec3a459774ece6c30a84214ee8954aebe1c
parent934d88d64c50f9f4d684194320cf15cd9b29059e (diff)
downloadchromium_src-d11ece3c9f74fb73c5e73836bc61fd6dcbd317e2.zip
chromium_src-d11ece3c9f74fb73c5e73836bc61fd6dcbd317e2.tar.gz
chromium_src-d11ece3c9f74fb73c5e73836bc61fd6dcbd317e2.tar.bz2
Remove obsolete provider IOSChromeBrowsingDataRemoverProvider.
Inline the two methods that no longer have any bad dependency in client IOSChromeBrowsingDataRemover, and move GetSafeBrowsingURLRequestContext method to ChromeBrowserProvider to remove one indirection. BUG=562155,563936,563581 Review URL: https://codereview.chromium.org/1492443002 Cr-Commit-Position: refs/heads/master@{#362447}
-rw-r--r--ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.cc91
-rw-r--r--ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h21
-rw-r--r--ios/public/provider/chrome/browser/browsing_data/ios_chrome_browsing_data_remover_provider.h50
-rw-r--r--ios/public/provider/chrome/browser/chrome_browser_provider.cc12
-rw-r--r--ios/public/provider/chrome/browser/chrome_browser_provider.h8
5 files changed, 64 insertions, 118 deletions
diff --git a/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.cc b/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.cc
index ee4e2b4..3140ee2 100644
--- a/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.cc
+++ b/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.cc
@@ -26,9 +26,11 @@
#include "components/password_manager/core/browser/password_store.h"
#include "components/search_engines/template_url_service.h"
#include "components/sessions/core/tab_restore_service.h"
+#include "ios/chrome/browser/application_context.h"
#include "ios/chrome/browser/autofill/personal_data_manager_factory.h"
#include "ios/chrome/browser/history/history_service_factory.h"
#include "ios/chrome/browser/history/web_history_service_factory.h"
+#include "ios/chrome/browser/ios_chrome_io_thread.h"
#include "ios/chrome/browser/passwords/ios_chrome_password_store_factory.h"
#include "ios/chrome/browser/pref_names.h"
#include "ios/chrome/browser/search_engines/template_url_service_factory.h"
@@ -36,7 +38,6 @@
#include "ios/chrome/browser/web_data_service_factory.h"
#include "ios/net/http_cache_helper.h"
#include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state.h"
-#include "ios/public/provider/chrome/browser/browsing_data/ios_chrome_browsing_data_remover_provider.h"
#include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
#include "ios/public/provider/chrome/browser/keyed_service_provider.h"
#include "ios/web/public/user_metrics.h"
@@ -48,7 +49,6 @@
#include "net/ssl/channel_id_store.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
-#include "url/origin.h"
using base::UserMetricsAction;
using web::WebThread;
@@ -110,9 +110,7 @@ IOSChromeBrowsingDataRemover::IOSChromeBrowsingDataRemover(
: browser_state_(browser_state),
delete_begin_(delete_begin),
delete_end_(delete_end),
- main_context_getter_(browser_state->GetRequestContext()),
- provider_(ios::GetChromeBrowserProvider()
- ->GetIOSChromeBrowsingDataRemoverProvider(browser_state)) {
+ main_context_getter_(browser_state->GetRequestContext()) {
DCHECK(browser_state);
// crbug.com/140910: Many places were calling this with base::Time() as
// delete_end, even though they should've used base::Time::Max(). Work around
@@ -141,7 +139,6 @@ void IOSChromeBrowsingDataRemover::RemoveImpl(int remove_mask,
DCHECK_CURRENTLY_ON_WEB_THREAD(WebThread::UI);
set_removing(true);
remove_mask_ = remove_mask;
- url::Origin remove_origin(remove_url);
PrefService* prefs = browser_state_->GetPrefs();
bool may_delete_history =
@@ -181,10 +178,18 @@ void IOSChromeBrowsingDataRemover::RemoveImpl(int remove_mask,
// Need to clear the host cache and accumulated speculative data, as it also
// reveals some history: we have no mechanism to track when these items were
// created, so we'll clear them all. Better safe than sorry.
- waiting_for_clear_hostname_resolution_cache_ = true;
- provider_->ClearHostnameResolutionCache(base::Bind(
- &IOSChromeBrowsingDataRemover::OnClearedHostnameResolutionCache,
- base::Unretained(this)));
+ IOSChromeIOThread* ios_chrome_io_thread =
+ GetApplicationContext()->GetIOSChromeIOThread();
+ if (ios_chrome_io_thread) {
+ waiting_for_clear_hostname_resolution_cache_ = true;
+ web::WebThread::PostTaskAndReply(
+ web::WebThread::IO, FROM_HERE,
+ base::Bind(&IOSChromeIOThread::ClearHostCache,
+ base::Unretained(ios_chrome_io_thread)),
+ base::Bind(
+ &IOSChromeBrowsingDataRemover::OnClearedHostnameResolutionCache,
+ base::Unretained(this)));
+ }
// As part of history deletion we also delete the auto-generated keywords.
// Because the TemplateURLService is shared between incognito and
@@ -266,33 +271,36 @@ void IOSChromeBrowsingDataRemover::RemoveImpl(int remove_mask,
// hours/days to the safebrowsing cookies since they aren't the result of
// any user action.
if (delete_begin_ == base::Time()) {
- net::URLRequestContextGetter* safe_browsing_context =
- provider_->GetSafeBrowsingURLRequestContext();
+ scoped_refptr<net::URLRequestContextGetter> safe_browsing_context =
+ make_scoped_refptr(ios::GetChromeBrowserProvider()
+ ->GetSafeBrowsingURLRequestContext());
if (safe_browsing_context) {
++waiting_for_clear_cookies_count_;
WebThread::PostTask(
WebThread::IO, FROM_HERE,
base::Bind(&IOSChromeBrowsingDataRemover::ClearCookiesOnIOThread,
- base::Unretained(this),
- base::Unretained(safe_browsing_context)));
+ base::Unretained(this), safe_browsing_context, GURL()));
}
}
+ ++waiting_for_clear_cookies_count_;
+ WebThread::PostTask(
+ WebThread::IO, FROM_HERE,
+ base::Bind(&IOSChromeBrowsingDataRemover::ClearCookiesOnIOThread,
+ base::Unretained(this), main_context_getter_, remove_url));
+
// TODO(mkwst): If we're not removing passwords, then clear the 'zero-click'
// flag for all credentials in the password store.
}
if (remove_mask & REMOVE_CHANNEL_IDS) {
web::RecordAction(UserMetricsAction("ClearBrowsingData_ChannelIDs"));
- // Since we are running on the UI thread don't call GetURLRequestContext().
- net::URLRequestContextGetter* rq_context =
- browser_state_->GetRequestContext();
- if (rq_context) {
+ if (main_context_getter_) {
waiting_for_clear_channel_ids_ = true;
WebThread::PostTask(
WebThread::IO, FROM_HERE,
base::Bind(&IOSChromeBrowsingDataRemover::ClearChannelIDsOnIOThread,
- base::Unretained(this), base::Unretained(rq_context)));
+ base::Unretained(this), main_context_getter_));
}
}
@@ -345,18 +353,10 @@ void IOSChromeBrowsingDataRemover::RemoveImpl(int remove_mask,
DCHECK(delete_begin_.is_null()) << "Partial clearing not supported";
ClearHttpCache(browser_state_->GetRequestContext(),
WebThread::GetTaskRunnerForThread(WebThread::IO),
- base::Bind(&IOSChromeBrowsingDataRemover::ClearedCache,
+ base::Bind(&IOSChromeBrowsingDataRemover::OnClearedCache,
base::Unretained(this)));
}
- if (remove_mask & REMOVE_COOKIES) {
- waiting_for_clear_storage_partition_data_ = true;
- provider_->ClearStoragePartition(
- remove_url, delete_begin_, delete_end_,
- base::Bind(&IOSChromeBrowsingDataRemover::OnClearedStoragePartitionData,
- base::Unretained(this)));
- }
-
// Remove omnibox zero-suggest cache results.
if ((remove_mask & (REMOVE_CACHE | REMOVE_COOKIES)))
prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string());
@@ -418,8 +418,7 @@ bool IOSChromeBrowsingDataRemover::AllDone() {
!waiting_for_clear_hostname_resolution_cache_ &&
!waiting_for_clear_keyword_data_ &&
!waiting_for_clear_networking_history_ &&
- !waiting_for_clear_passwords_ &&
- !waiting_for_clear_storage_partition_data_;
+ !waiting_for_clear_passwords_;
}
void IOSChromeBrowsingDataRemover::OnKeywordsLoaded() {
@@ -473,7 +472,7 @@ void IOSChromeBrowsingDataRemover::OnClearedNetworkingHistory() {
NotifyAndDeleteIfDone();
}
-void IOSChromeBrowsingDataRemover::ClearedCache(int error) {
+void IOSChromeBrowsingDataRemover::OnClearedCache(int error) {
waiting_for_clear_cache_ = false;
NotifyAndDeleteIfDone();
@@ -500,29 +499,37 @@ void IOSChromeBrowsingDataRemover::OnClearedCookies(int num_deleted) {
}
void IOSChromeBrowsingDataRemover::ClearCookiesOnIOThread(
- net::URLRequestContextGetter* rq_context) {
+ const scoped_refptr<net::URLRequestContextGetter>& rq_context,
+ const GURL& storage_url) {
DCHECK_CURRENTLY_ON_WEB_THREAD(WebThread::IO);
net::CookieStore* cookie_store =
rq_context->GetURLRequestContext()->cookie_store();
- cookie_store->DeleteAllCreatedBetweenAsync(
- delete_begin_, delete_end_,
- base::Bind(&IOSChromeBrowsingDataRemover::OnClearedCookies,
- base::Unretained(this)));
+ if (storage_url.is_empty()) {
+ cookie_store->DeleteAllCreatedBetweenAsync(
+ delete_begin_, delete_end_,
+ base::Bind(&IOSChromeBrowsingDataRemover::OnClearedCookies,
+ base::Unretained(this)));
+ } else {
+ cookie_store->DeleteAllCreatedBetweenForHostAsync(
+ delete_begin_, delete_end_, storage_url,
+ base::Bind(&IOSChromeBrowsingDataRemover::OnClearedCookies,
+ base::Unretained(this)));
+ }
}
void IOSChromeBrowsingDataRemover::ClearChannelIDsOnIOThread(
- net::URLRequestContextGetter* rq_context) {
+ const scoped_refptr<net::URLRequestContextGetter>& rq_context) {
DCHECK_CURRENTLY_ON_WEB_THREAD(WebThread::IO);
net::ChannelIDService* channel_id_service =
rq_context->GetURLRequestContext()->channel_id_service();
channel_id_service->GetChannelIDStore()->DeleteAllCreatedBetween(
delete_begin_, delete_end_,
base::Bind(&IOSChromeBrowsingDataRemover::OnClearedChannelIDsOnIOThread,
- base::Unretained(this), base::Unretained(rq_context)));
+ base::Unretained(this), rq_context));
}
void IOSChromeBrowsingDataRemover::OnClearedChannelIDsOnIOThread(
- net::URLRequestContextGetter* rq_context) {
+ const scoped_refptr<net::URLRequestContextGetter>& rq_context) {
// Need to close open SSL connections which may be using the channel ids we
// are deleting.
// TODO(mattm): http://crbug.com/166069 Make the server bound cert
@@ -554,12 +561,6 @@ void IOSChromeBrowsingDataRemover::OnClearedAutofillOriginURLs() {
NotifyAndDeleteIfDone();
}
-void IOSChromeBrowsingDataRemover::OnClearedStoragePartitionData() {
- DCHECK_CURRENTLY_ON_WEB_THREAD(WebThread::UI);
- waiting_for_clear_storage_partition_data_ = false;
- NotifyAndDeleteIfDone();
-}
-
// static
IOSChromeBrowsingDataRemover::CallbackSubscription
IOSChromeBrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback(
diff --git a/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h b/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h
index 6f14bc4..aaf15d2 100644
--- a/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h
+++ b/ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h
@@ -21,7 +21,6 @@
namespace ios {
class ChromeBrowserState;
-class IOSChromeBrowsingDataRemoverProvider;
}
namespace net {
@@ -189,7 +188,7 @@ class IOSChromeBrowsingDataRemover {
// Callback for when the cache has been deleted. Invokes
// NotifyAndDeleteIfDone.
- void ClearedCache(int error);
+ void OnClearedCache(int error);
// Callback for when passwords for the requested time range have been cleared.
void OnClearedPasswords();
@@ -198,14 +197,18 @@ class IOSChromeBrowsingDataRemover {
void OnClearedCookies(int num_deleted);
// Invoked on the IO thread to delete cookies.
- void ClearCookiesOnIOThread(net::URLRequestContextGetter* rq_context);
+ void ClearCookiesOnIOThread(
+ const scoped_refptr<net::URLRequestContextGetter>& rq_context,
+ const GURL& storage_url);
// Invoked on the IO thread to delete channel IDs.
- void ClearChannelIDsOnIOThread(net::URLRequestContextGetter* rq_context);
+ void ClearChannelIDsOnIOThread(
+ const scoped_refptr<net::URLRequestContextGetter>& rq_context);
// Callback on IO Thread when channel IDs have been deleted. Clears SSL
// connection pool and posts to UI thread to run OnClearedChannelIDs.
- void OnClearedChannelIDsOnIOThread(net::URLRequestContextGetter* rq_context);
+ void OnClearedChannelIDsOnIOThread(
+ const scoped_refptr<net::URLRequestContextGetter>& rq_context);
// Callback for when channel IDs have been deleted. Invokes
// NotifyAndDeleteIfDone.
@@ -218,9 +221,6 @@ class IOSChromeBrowsingDataRemover {
// been deleted.
void OnClearedAutofillOriginURLs();
- // Callback on UI thread when the storage partition related data are cleared.
- void OnClearedStoragePartitionData();
-
void OnClearedDomainReliabilityMonitor();
// Returns true if we're all done.
@@ -254,7 +254,6 @@ class IOSChromeBrowsingDataRemover {
bool waiting_for_clear_keyword_data_ = false;
bool waiting_for_clear_networking_history_ = false;
bool waiting_for_clear_passwords_ = false;
- bool waiting_for_clear_storage_partition_data_ = false;
// The removal mask for the current removal operation.
int remove_mask_ = 0;
@@ -266,10 +265,6 @@ class IOSChromeBrowsingDataRemover {
scoped_ptr<TemplateURLService::Subscription> template_url_sub_;
- // Object that supports legacy functionality and functionality that has not
- // yet been ported to //ios/chrome.
- scoped_ptr<ios::IOSChromeBrowsingDataRemoverProvider> provider_;
-
DISALLOW_COPY_AND_ASSIGN(IOSChromeBrowsingDataRemover);
};
diff --git a/ios/public/provider/chrome/browser/browsing_data/ios_chrome_browsing_data_remover_provider.h b/ios/public/provider/chrome/browser/browsing_data/ios_chrome_browsing_data_remover_provider.h
deleted file mode 100644
index 692ebed..0000000
--- a/ios/public/provider/chrome/browser/browsing_data/ios_chrome_browsing_data_remover_provider.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2015 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.
-
-#ifndef IOS_PUBLIC_PROVIDER_CHROME_BROWSER_BROWSING_DATA_IOS_CHROME_BROWSING_DATA_REMOVER_PROVIDER_H_
-#define IOS_PUBLIC_PROVIDER_CHROME_BROWSER_BROWSING_DATA_IOS_CHROME_BROWSING_DATA_REMOVER_PROVIDER_H_
-
-#include "base/basictypes.h"
-#include "base/callback_forward.h"
-
-class GURL;
-
-namespace base {
-class Time;
-}
-
-namespace net {
-class URLRequestContextGetter;
-}
-
-namespace ios {
-
-class ChromeBrowserState;
-
-// A class that provides additional functionality to
-// IOSChromeBrowsingDataRemover.
-class IOSChromeBrowsingDataRemoverProvider {
- public:
- virtual ~IOSChromeBrowsingDataRemoverProvider() {}
-
- // Clears the hostname resolution cache and runs |callback| on completion.
- // If the hostname resolution cache doesn't exist, runs |callback|
- // immediately.
- virtual void ClearHostnameResolutionCache(const base::Closure& callback) = 0;
-
- // Gets the URLRequestContextGetter used by the SafeBrowsing service. Returns
- // null if there is no SafeBrowsing service.
- virtual net::URLRequestContextGetter* GetSafeBrowsingURLRequestContext() = 0;
-
- // Clears the relevant storage partition and runs |callback| on
- // completion.
- virtual void ClearStoragePartition(const GURL& remove_url,
- base::Time delete_begin,
- base::Time delete_end,
- const base::Closure& callback) = 0;
-};
-
-} // namespace ios
-
-#endif // IOS_PUBLIC_PROVIDER_CHROME_BROWSER_BROWSING_DATA_IOS_CHROME_BROWSING_DATA_REMOVER_PROVIDER_H_
diff --git a/ios/public/provider/chrome/browser/chrome_browser_provider.cc b/ios/public/provider/chrome/browser/chrome_browser_provider.cc
index a12824c..285144b 100644
--- a/ios/public/provider/chrome/browser/chrome_browser_provider.cc
+++ b/ios/public/provider/chrome/browser/chrome_browser_provider.cc
@@ -10,7 +10,6 @@
#include "components/metrics/metrics_provider.h"
#include "components/sync_sessions/local_session_event_router.h"
#include "components/sync_sessions/synced_window_delegates_getter.h"
-#include "ios/public/provider/chrome/browser/browsing_data/ios_chrome_browsing_data_remover_provider.h"
#include "ios/public/provider/chrome/browser/keyed_service_provider.h"
namespace ios {
@@ -82,12 +81,6 @@ LiveTabContextProvider* ChromeBrowserProvider::GetLiveTabContextProvider() {
return nullptr;
}
-scoped_ptr<IOSChromeBrowsingDataRemoverProvider>
-ChromeBrowserProvider::GetIOSChromeBrowsingDataRemoverProvider(
- ChromeBrowserState* browser_state) {
- return nullptr;
-}
-
GeolocationUpdaterProvider*
ChromeBrowserProvider::GetGeolocationUpdaterProvider() {
return nullptr;
@@ -138,4 +131,9 @@ ChromeBrowserProvider::CreateSyncedWindowDelegatesGetter(
return nullptr;
}
+net::URLRequestContextGetter*
+ChromeBrowserProvider::GetSafeBrowsingURLRequestContext() {
+ return nullptr;
+}
+
} // namespace ios
diff --git a/ios/public/provider/chrome/browser/chrome_browser_provider.h b/ios/public/provider/chrome/browser/chrome_browser_provider.h
index 470b3e4..4509c50 100644
--- a/ios/public/provider/chrome/browser/chrome_browser_provider.h
+++ b/ios/public/provider/chrome/browser/chrome_browser_provider.h
@@ -11,6 +11,7 @@
#include <vector>
#include "base/callback_forward.h"
+#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "components/favicon_base/favicon_callback.h"
@@ -57,7 +58,6 @@ class ChromeBrowserState;
class ChromeBrowserStateManager;
class ChromeIdentityService;
class GeolocationUpdaterProvider;
-class IOSChromeBrowsingDataRemoverProvider;
class SigninResourcesProvider;
class StringProvider;
class LiveTabContextProvider;
@@ -103,8 +103,6 @@ class ChromeBrowserProvider {
virtual StringProvider* GetStringProvider();
// Returns an instance of a LiveTabContextProvider.
virtual LiveTabContextProvider* GetLiveTabContextProvider();
- virtual scoped_ptr<IOSChromeBrowsingDataRemoverProvider>
- GetIOSChromeBrowsingDataRemoverProvider(ChromeBrowserState* browser_state);
virtual GeolocationUpdaterProvider* GetGeolocationUpdaterProvider();
// Returns "enabled", "disabled", or "default".
virtual std::string DataReductionProxyAvailability();
@@ -139,6 +137,10 @@ class ChromeBrowserProvider {
// Returns the SyncedWindowDelegatesGetter implementation.
virtual scoped_ptr<browser_sync::SyncedWindowDelegatesGetter>
CreateSyncedWindowDelegatesGetter(ios::ChromeBrowserState* browser_state);
+
+ // Gets the URLRequestContextGetter used by the SafeBrowsing service. Returns
+ // null if there is no SafeBrowsing service.
+ virtual net::URLRequestContextGetter* GetSafeBrowsingURLRequestContext();
};
} // namespace ios