diff options
Diffstat (limited to 'chrome/browser/automation/automation_profile_impl.cc')
-rw-r--r-- | chrome/browser/automation/automation_profile_impl.cc | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/chrome/browser/automation/automation_profile_impl.cc b/chrome/browser/automation/automation_profile_impl.cc deleted file mode 100644 index 0b14c7e..0000000 --- a/chrome/browser/automation/automation_profile_impl.cc +++ /dev/null @@ -1,203 +0,0 @@ -// Copyright (c) 2006-2009 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. - -#include "chrome/browser/automation/automation_profile_impl.h" - -#include <map> - -#include "chrome/browser/automation/automation_resource_message_filter.h" -#include "chrome/browser/chrome_thread.h" -#include "chrome/browser/net/chrome_url_request_context.h" -#include "chrome/browser/profile.h" -#include "net/base/net_errors.h" -#include "net/url_request/url_request_context.h" -#include "chrome/test/automation/automation_messages.h" - -namespace AutomationRequestContext { - -// A special Request context for automation. Substitute a few things -// like cookie store, proxy settings etc to handle them differently -// for automation. -class AutomationURLRequestContext : public ChromeURLRequestContext { - public: - AutomationURLRequestContext(ChromeURLRequestContext* original_context, - net::CookieStore* automation_cookie_store, - net::CookiePolicy* automation_cookie_policy) - : ChromeURLRequestContext(original_context), - // We must hold a reference to |original_context|, since many - // of the dependencies that ChromeURLRequestContext(original_context) - // copied are scoped to |original_context|. - original_context_(original_context) { - cookie_policy_ = automation_cookie_policy; - cookie_store_ = automation_cookie_store; - } - - virtual bool IsExternal() const { - return true; - } - - private: - virtual ~AutomationURLRequestContext() { - // Clear out members before calling base class dtor since we don't - // own any of them. - - // Clear URLRequestContext members. - host_resolver_ = NULL; - proxy_service_ = NULL; - http_transaction_factory_ = NULL; - ftp_transaction_factory_ = NULL; - cookie_store_ = NULL; - transport_security_state_ = NULL; - } - - scoped_refptr<ChromeURLRequestContext> original_context_; - DISALLOW_COPY_AND_ASSIGN(AutomationURLRequestContext); -}; - -// CookieStore specialization to have automation specific -// behavior for cookies. -class AutomationCookieStore : public net::CookieStore { - public: - AutomationCookieStore(net::CookieStore* original_cookie_store, - AutomationResourceMessageFilter* automation_client, - int tab_handle) - : original_cookie_store_(original_cookie_store), - automation_client_(automation_client), - tab_handle_(tab_handle) { - } - - virtual ~AutomationCookieStore() { - DLOG(INFO) << "In " << __FUNCTION__; - } - - // CookieStore implementation. - virtual bool SetCookieWithOptions(const GURL& url, - const std::string& cookie_line, - const net::CookieOptions& options) { - // The cookie_string_ is available only once, i.e. once it is read by - // it is invalidated. - cookie_string_ = cookie_line; - return true; - } - - virtual std::string GetCookiesWithOptions(const GURL& url, - const net::CookieOptions& options) { - return cookie_string_; - } - - virtual void DeleteCookie(const GURL& url, - const std::string& cookie_name) { - NOTREACHED() << "Should not get called for an automation profile"; - } - - virtual net::CookieMonster* GetCookieMonster() { - NOTREACHED() << "Should not get called for an automation profile"; - return NULL; - } - - protected: - net::CookieStore* original_cookie_store_; - scoped_refptr<AutomationResourceMessageFilter> automation_client_; - int tab_handle_; - std::string cookie_string_; - - private: - DISALLOW_COPY_AND_ASSIGN(AutomationCookieStore); -}; - -// CookiePolicy specialization for automation specific cookie policies. -class AutomationCookiePolicy : public net::CookiePolicy { - public: - AutomationCookiePolicy(AutomationResourceMessageFilter* automation_client, - int tab_handle, net::CookieStore* cookie_store) - : automation_client_(automation_client), - tab_handle_(tab_handle), - cookie_store_(cookie_store) {} - - virtual int CanGetCookies(const GURL& url, - const GURL& first_party_for_cookies, - net::CompletionCallback* callback) { - DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); - - AutomationResourceMessageFilter::GetCookiesForUrl(tab_handle_, url, - callback, - cookie_store_.get()); - return net::ERR_IO_PENDING; - } - - virtual int CanSetCookie(const GURL& url, - const GURL& first_party_for_cookies, - const std::string& cookie_line, - net::CompletionCallback* callback) { - AutomationResourceMessageFilter::SetCookiesForUrl(tab_handle_, url, - cookie_line, - callback); - return net::ERR_IO_PENDING; - } - - private: - scoped_refptr<AutomationResourceMessageFilter> automation_client_; - int tab_handle_; - scoped_refptr<net::CookieStore> cookie_store_; - - DISALLOW_COPY_AND_ASSIGN(AutomationCookiePolicy); -}; - -class Factory : public ChromeURLRequestContextFactory { - public: - Factory(ChromeURLRequestContextGetter* original_context_getter, - Profile* profile, - AutomationResourceMessageFilter* automation_client, - int tab_handle) - : ChromeURLRequestContextFactory(profile), - original_context_getter_(original_context_getter), - automation_client_(automation_client), - tab_handle_(tab_handle) { - } - - virtual ChromeURLRequestContext* Create() { - ChromeURLRequestContext* original_context = - original_context_getter_->GetIOContext(); - - // Create an automation cookie store. - scoped_refptr<net::CookieStore> automation_cookie_store = - new AutomationCookieStore(original_context->cookie_store(), - automation_client_, - tab_handle_); - - // Create an automation cookie policy. - AutomationCookiePolicy* automation_cookie_policy = - new AutomationCookiePolicy(automation_client_, - tab_handle_, - automation_cookie_store); - - return new AutomationURLRequestContext(original_context, - automation_cookie_store, - automation_cookie_policy); - } - - private: - scoped_refptr<ChromeURLRequestContextGetter> original_context_getter_; - scoped_refptr<AutomationResourceMessageFilter> automation_client_; - int tab_handle_; -}; - -ChromeURLRequestContextGetter* CreateAutomationURLRequestContextForTab( - int tab_handle, - Profile* profile, - AutomationResourceMessageFilter* automation_client) { - ChromeURLRequestContextGetter* original_context = - static_cast<ChromeURLRequestContextGetter*>( - profile->GetRequestContext()); - - ChromeURLRequestContextGetter* request_context = - new ChromeURLRequestContextGetter( - NULL, // Don't register an observer on PrefService. - new Factory(original_context, profile, automation_client, - tab_handle)); - return request_context; -} - -} // namespace AutomationRequestContext - |