summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_profile_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/automation/automation_profile_impl.cc')
-rw-r--r--chrome/browser/automation/automation_profile_impl.cc203
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
-