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

Side by Side Diff: chrome/browser/automation/automation_profile_impl.cc

Issue 3066004: ChromeFrame cookie requests would incorrectly get routed to the first host br... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/automation/automation_profile_impl.h" 5 #include "chrome/browser/automation/automation_profile_impl.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "chrome/browser/automation/automation_resource_message_filter.h" 9 #include "chrome/browser/automation/automation_resource_message_filter.h"
10 #include "chrome/browser/chrome_thread.h" 10 #include "chrome/browser/chrome_thread.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 const std::string& cookie_name) { 90 const std::string& cookie_name) {
91 NOTREACHED() << "Should not get called for an automation profile"; 91 NOTREACHED() << "Should not get called for an automation profile";
92 } 92 }
93 93
94 virtual net::CookieMonster* GetCookieMonster() { 94 virtual net::CookieMonster* GetCookieMonster() {
95 NOTREACHED() << "Should not get called for an automation profile"; 95 NOTREACHED() << "Should not get called for an automation profile";
96 return NULL; 96 return NULL;
97 } 97 }
98 98
99 protected: 99 protected:
100 void SendIPCMessageOnIOThread(IPC::Message* m) {
101 if (ChromeThread::CurrentlyOn(ChromeThread::IO)) {
102 automation_client_->Send(m);
103 } else {
104 Task* task = NewRunnableMethod(this,
105 &AutomationCookieStore::SendIPCMessageOnIOThread, m);
106 ChromeThread::PostTask(ChromeThread::IO, FROM_HERE, task);
107 }
108 }
109
110 net::CookieStore* original_cookie_store_; 100 net::CookieStore* original_cookie_store_;
111 scoped_refptr<AutomationResourceMessageFilter> automation_client_; 101 scoped_refptr<AutomationResourceMessageFilter> automation_client_;
112 int tab_handle_; 102 int tab_handle_;
113 std::string cookie_string_; 103 std::string cookie_string_;
114 104
115 private: 105 private:
116 DISALLOW_COPY_AND_ASSIGN(AutomationCookieStore); 106 DISALLOW_COPY_AND_ASSIGN(AutomationCookieStore);
117 }; 107 };
118 108
119 // CookiePolicy specialization for automation specific cookie policies. 109 // CookiePolicy specialization for automation specific cookie policies.
120 class AutomationCookiePolicy : public net::CookiePolicy { 110 class AutomationCookiePolicy : public net::CookiePolicy {
121 public: 111 public:
122 AutomationCookiePolicy(AutomationResourceMessageFilter* automation_client, 112 AutomationCookiePolicy(AutomationResourceMessageFilter* automation_client,
123 int tab_handle, net::CookieStore* cookie_store) 113 int tab_handle, net::CookieStore* cookie_store)
124 : automation_client_(automation_client), 114 : automation_client_(automation_client),
125 tab_handle_(tab_handle), 115 tab_handle_(tab_handle),
126 cookie_store_(cookie_store) {} 116 cookie_store_(cookie_store) {}
127 117
128 virtual int CanGetCookies(const GURL& url, 118 virtual int CanGetCookies(const GURL& url,
129 const GURL& first_party_for_cookies, 119 const GURL& first_party_for_cookies,
130 net::CompletionCallback* callback) { 120 net::CompletionCallback* callback) {
131 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); 121 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
132 122
133 if (automation_client_.get()) { 123 AutomationResourceMessageFilter::GetCookiesForUrl(tab_handle_, url,
134 automation_client_->GetCookiesForUrl(tab_handle_, url, callback, 124 callback,
135 cookie_store_.get()); 125 cookie_store_.get());
136 return net::ERR_IO_PENDING; 126 return net::ERR_IO_PENDING;
137 }
138 return net::ERR_ACCESS_DENIED;
139 } 127 }
140 128
141 virtual int CanSetCookie(const GURL& url, 129 virtual int CanSetCookie(const GURL& url,
142 const GURL& first_party_for_cookies, 130 const GURL& first_party_for_cookies,
143 const std::string& cookie_line, 131 const std::string& cookie_line,
144 net::CompletionCallback* callback) { 132 net::CompletionCallback* callback) {
145 if (automation_client_.get()) { 133 AutomationResourceMessageFilter::SetCookiesForUrl(tab_handle_, url,
146 automation_client_->Send(new AutomationMsg_SetCookieAsync(0, 134 cookie_line,
147 tab_handle_, url, cookie_line)); 135 callback);
148 } 136 return net::ERR_IO_PENDING;
149 return net::ERR_ACCESS_DENIED;
150 } 137 }
151 138
152 private: 139 private:
153 scoped_refptr<AutomationResourceMessageFilter> automation_client_; 140 scoped_refptr<AutomationResourceMessageFilter> automation_client_;
154 int tab_handle_; 141 int tab_handle_;
155 scoped_refptr<net::CookieStore> cookie_store_; 142 scoped_refptr<net::CookieStore> cookie_store_;
156 143
157 DISALLOW_COPY_AND_ASSIGN(AutomationCookiePolicy); 144 DISALLOW_COPY_AND_ASSIGN(AutomationCookiePolicy);
158 }; 145 };
159 146
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 ChromeURLRequestContextGetter* request_context = 194 ChromeURLRequestContextGetter* request_context =
208 new ChromeURLRequestContextGetter( 195 new ChromeURLRequestContextGetter(
209 NULL, // Don't register an observer on PrefService. 196 NULL, // Don't register an observer on PrefService.
210 new Factory(original_context, profile, automation_client, 197 new Factory(original_context, profile, automation_client,
211 tab_handle)); 198 tab_handle));
212 return request_context; 199 return request_context;
213 } 200 }
214 201
215 } // namespace AutomationRequestContext 202 } // namespace AutomationRequestContext
216 203
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698