Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Unified Diff: chrome/browser/net/sdch_browsertest.cc

Issue 1133763003: SdchObserver: add OnDictionary{Added,Removed} (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove manager parameter from SdchObserver Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/base/sdch_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/sdch_browsertest.cc
diff --git a/chrome/browser/net/sdch_browsertest.cc b/chrome/browser/net/sdch_browsertest.cc
index 16bf982558f2c09d5a4676fdb0bdf0f23ecd6c89..7a1cb7b69211d697e86a68cd7e59376138ae01aa 100644
--- a/chrome/browser/net/sdch_browsertest.cc
+++ b/chrome/browser/net/sdch_browsertest.cc
@@ -261,9 +261,41 @@ class SdchResponseHandler {
base::WeakPtrFactory<SdchResponseHandler> weak_ptr_factory_;
};
+class TestSdchObserver : public net::SdchObserver {
+ public:
+ TestSdchObserver() : manager_(nullptr), fetch_count_(0) {}
+ ~TestSdchObserver() override {
+ if (manager_) {
+ manager_->RemoveObserver(this);
+ }
+ }
+
+ void Observe(net::SdchManager* manager) {
+ DCHECK(!manager_);
+ manager_ = manager;
+ manager_->AddObserver(this);
+ }
+
+ // SdchObserver
+ void OnDictionaryAdded(const GURL& /* dictionary_url */,
+ const std::string& /* server_hash */) override {}
+ void OnDictionaryRemoved(const std::string& /* server_hash */) override {}
+ void OnGetDictionary(const GURL& /* request_url */,
+ const GURL& /* dictionary_url */) override {
+ fetch_count_++;
+ }
+ void OnDictionaryUsed(const std::string& /* server_hash */) override {}
+ void OnClearDictionaries() override {}
+
+ int fetch_count() const { return fetch_count_; }
+
+ private:
+ net::SdchManager* manager_;
+ int fetch_count_;
mmenke 2015/05/14 19:20:24 nit: DISALLOW_COPY_AND_ASSIGN
Elly Fong-Jones 2015/05/14 19:29:28 This won't work, since this class is used as a val
+};
+
class SdchBrowserTest : public InProcessBrowserTest,
- public net::URLFetcherDelegate,
- public net::SdchObserver {
+ public net::URLFetcherDelegate {
public:
static const char kTestHost[];
@@ -548,9 +580,9 @@ class SdchBrowserTest : public InProcessBrowserTest,
net::SdchManager* manager(
context_getter->GetURLRequestContext()->sdch_manager());
- DCHECK(fetch_counts_.end() != fetch_counts_.find(manager));
+ DCHECK(observers_.end() != observers_.find(manager));
- *result = fetch_counts_[manager];
+ *result = observers_[manager].fetch_count();
}
// InProcessBrowserTest
@@ -595,36 +627,16 @@ class SdchBrowserTest : public InProcessBrowserTest,
net::SdchManager* manager =
context_getter->GetURLRequestContext()->sdch_manager();
- DCHECK(fetch_counts_.end() == fetch_counts_.find(manager));
+ DCHECK(observers_.end() == observers_.find(manager));
- fetch_counts_[manager] = 0;
- manager->AddObserver(this);
+ observers_[manager].Observe(manager);
}
void UnsubscribeFromAllSdchNotifications() {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-
- for (auto it = fetch_counts_.begin(); it != fetch_counts_.end(); ++it)
- it->first->RemoveObserver(this);
-
- fetch_counts_.clear();
- }
-
- // SdchObserver
- void OnDictionaryUsed(net::SdchManager* manager,
- const std::string& server_hash) override {}
-
- void OnGetDictionary(net::SdchManager* manager,
- const GURL& request_url,
- const GURL& dictionary_url) override {
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
- DLOG(ERROR) << "Retrieving count of notifications from manager " << manager;
- DCHECK(fetch_counts_.end() != fetch_counts_.find(manager));
- ++fetch_counts_[manager];
+ observers_.clear();
}
- void OnClearDictionaries(net::SdchManager* manager) override {}
-
// URLFetcherDelegate
void OnURLFetchComplete(const net::URLFetcher* source) override {
url_fetch_complete_ = true;
@@ -644,7 +656,7 @@ class SdchBrowserTest : public InProcessBrowserTest,
Browser* incognito_browser_;
// IO Thread access only.
- std::map<net::SdchManager*, int> fetch_counts_;
+ std::map<net::SdchManager*, TestSdchObserver> observers_;
};
const char SdchBrowserTest::kTestHost[] = "our.test.host.com";
« no previous file with comments | « no previous file | net/base/sdch_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698