Chromium Code Reviews| Index: chrome/test/testing_profile.cc |
| diff --git a/chrome/test/testing_profile.cc b/chrome/test/testing_profile.cc |
| index 184a7034be3eabec6adaee6993f9f70148a7ac9c..9e1f428b215e0513cb66f1c3d93f1ff2000ef006 100644 |
| --- a/chrome/test/testing_profile.cc |
| +++ b/chrome/test/testing_profile.cc |
| @@ -27,6 +27,7 @@ |
| #include "chrome/browser/host_content_settings_map.h" |
| #include "chrome/browser/in_process_webkit/webkit_context.h" |
| #include "chrome/browser/net/gaia/token_service.h" |
| +#include "chrome/browser/net/pref_proxy_config_service.h" |
| #include "chrome/browser/notifications/desktop_notification_service.h" |
| #include "chrome/browser/prefs/browser_prefs.h" |
| #include "chrome/browser/search_engines/template_url_fetcher.h" |
| @@ -39,7 +40,6 @@ |
| #include "chrome/common/notification_service.h" |
| #include "chrome/common/url_constants.h" |
| #include "chrome/test/testing_pref_service.h" |
| -#include "chrome/test/test_url_request_context_getter.h" |
| #include "chrome/test/ui_test_utils.h" |
| #include "net/base/cookie_monster.h" |
| #include "net/url_request/url_request_context.h" |
| @@ -112,6 +112,26 @@ class BookmarkLoadObserver : public BookmarkModelObserver { |
| DISALLOW_COPY_AND_ASSIGN(BookmarkLoadObserver); |
| }; |
| +// Used to return a dummy context (normally the context is on the IO thread). |
| +// The one here can be run on the main test thread. Note that this can lead to |
| +// a leak if your test does not have a BrowserThread::IO in it because |
| +// URLRequestContextGetter is defined as a ReferenceCounted object with a |
| +// special trait that deletes it on the IO thread. |
| +class TestURLRequestContextGetter : public URLRequestContextGetter { |
|
eroman
2010/11/30 02:58:54
What is this used for? (I don't see it referenced
battre (please use the other)
2010/12/02 18:06:12
Line 427, see below.
|
| + public: |
| + virtual URLRequestContext* GetURLRequestContext() { |
| + if (!context_) |
| + context_ = new TestURLRequestContext(); |
| + return context_.get(); |
| + } |
| + virtual scoped_refptr<base::MessageLoopProxy> GetIOMessageLoopProxy() const { |
| + return BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO); |
| + } |
| + |
| + private: |
| + scoped_refptr<URLRequestContext> context_; |
| +}; |
| + |
| class TestExtensionURLRequestContext : public URLRequestContext { |
| public: |
| TestExtensionURLRequestContext() { |
| @@ -185,6 +205,8 @@ TestingProfile::~TestingProfile() { |
| extensions_service_->DestroyingProfile(); |
| extensions_service_ = NULL; |
| } |
| + if (pref_proxy_config_tracker_.get()) |
| + pref_proxy_config_tracker_->DetachFromPrefService(); |
| } |
| void TestingProfile::CreateFaviconService() { |
| @@ -470,6 +492,13 @@ DesktopNotificationService* TestingProfile::GetDesktopNotificationService() { |
| return desktop_notification_service_.get(); |
| } |
| +PrefProxyConfigTracker* TestingProfile::GetProxyConfigTracker() { |
| + if (!pref_proxy_config_tracker_) |
| + pref_proxy_config_tracker_ = new PrefProxyConfigTracker(GetPrefs()); |
| + |
| + return pref_proxy_config_tracker_; |
| +} |
| + |
| void TestingProfile::BlockUntilHistoryProcessesPendingRequests() { |
| DCHECK(history_service_.get()); |
| DCHECK(MessageLoop::current()); |