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

Side by Side Diff: content/child/npapi/plugin_url_fetcher.cc

Issue 264613006: Move first-party cookie URL logic to browser process. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/child/npapi/plugin_url_fetcher.h ('k') | content/child/resource_dispatcher.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/child/npapi/plugin_url_fetcher.h" 5 #include "content/child/npapi/plugin_url_fetcher.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "content/child/child_thread.h" 8 #include "content/child/child_thread.h"
9 #include "content/child/npapi/plugin_host.h" 9 #include "content/child/npapi/plugin_host.h"
10 #include "content/child/npapi/plugin_instance.h" 10 #include "content/child/npapi/plugin_instance.h"
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 bridge_->Cancel(); 183 bridge_->Cancel();
184 plugin_stream_->DidFail(resource_id_); // That will delete |this|. 184 plugin_stream_->DidFail(resource_id_); // That will delete |this|.
185 } 185 }
186 } 186 }
187 187
188 void PluginURLFetcher::OnUploadProgress(uint64 position, uint64 size) { 188 void PluginURLFetcher::OnUploadProgress(uint64 position, uint64 size) {
189 } 189 }
190 190
191 bool PluginURLFetcher::OnReceivedRedirect( 191 bool PluginURLFetcher::OnReceivedRedirect(
192 const GURL& new_url, 192 const GURL& new_url,
193 const webkit_glue::ResourceResponseInfo& info, 193 const GURL& new_first_party_for_cookies,
194 bool* has_new_first_party_for_cookies, 194 const webkit_glue::ResourceResponseInfo& info) {
195 GURL* new_first_party_for_cookies) {
196 if (!plugin_stream_) 195 if (!plugin_stream_)
197 return false; 196 return false;
198 197
199 // TODO(jam): THIS LOGIC IS COPIED FROM WebPluginImpl::willSendRequest until 198 // TODO(jam): THIS LOGIC IS COPIED FROM WebPluginImpl::willSendRequest until
200 // kDirectNPAPIRequests is the default and we can remove the old path there. 199 // kDirectNPAPIRequests is the default and we can remove the old path there.
201 200
202 // Currently this check is just to catch an https -> http redirect when 201 // Currently this check is just to catch an https -> http redirect when
203 // loading the main plugin src URL. Longer term, we could investigate 202 // loading the main plugin src URL. Longer term, we could investigate
204 // firing mixed diplay or scripting issues for subresource loads 203 // firing mixed diplay or scripting issues for subresource loads
205 // initiated by plug-ins. 204 // initiated by plug-ins.
206 if (is_plugin_src_load_ && 205 if (is_plugin_src_load_ &&
207 !plugin_stream_->instance()->webplugin()->CheckIfRunInsecureContent( 206 !plugin_stream_->instance()->webplugin()->CheckIfRunInsecureContent(
208 new_url)) { 207 new_url)) {
209 plugin_stream_->DidFail(resource_id_); // That will delete |this|. 208 plugin_stream_->DidFail(resource_id_); // That will delete |this|.
210 return false; 209 return false;
211 } 210 }
212 211
213 // It's unfortunate that this logic of when a redirect's method changes is 212 // It's unfortunate that this logic of when a redirect's method changes is
214 // in url_request.cc, but weburlloader_impl.cc and this file have to duplicate 213 // in url_request.cc, but weburlloader_impl.cc and this file have to duplicate
215 // it instead of passing that information. 214 // it instead of passing that information.
216 int response_code = info.headers->response_code(); 215 int response_code = info.headers->response_code();
217 if (response_code != 307) 216 if (response_code != 307)
218 method_ = "GET"; 217 method_ = "GET";
219 GURL old_url = url_; 218 GURL old_url = url_;
220 url_ = new_url; 219 url_ = new_url;
221 *has_new_first_party_for_cookies = true; 220 first_party_for_cookies_ = new_first_party_for_cookies;
222 *new_first_party_for_cookies = first_party_for_cookies_;
223 221
224 // If the plugin does not participate in url redirect notifications then just 222 // If the plugin does not participate in url redirect notifications then just
225 // block cross origin 307 POST redirects. 223 // block cross origin 307 POST redirects.
226 if (!notify_redirects_) { 224 if (!notify_redirects_) {
227 if (response_code == 307 && method_ == "POST" && 225 if (response_code == 307 && method_ == "POST" &&
228 old_url.GetOrigin() != new_url.GetOrigin()) { 226 old_url.GetOrigin() != new_url.GetOrigin()) {
229 plugin_stream_->DidFail(resource_id_); // That will delete |this|. 227 plugin_stream_->DidFail(resource_id_); // That will delete |this|.
230 return false; 228 return false;
231 } 229 }
232 } else { 230 } else {
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 } 372 }
375 373
376 if (error_code == net::OK) { 374 if (error_code == net::OK) {
377 plugin_stream_->DidFinishLoading(resource_id_); 375 plugin_stream_->DidFinishLoading(resource_id_);
378 } else { 376 } else {
379 plugin_stream_->DidFail(resource_id_); 377 plugin_stream_->DidFail(resource_id_);
380 } 378 }
381 } 379 }
382 380
383 } // namespace content 381 } // namespace content
OLDNEW
« no previous file with comments | « content/child/npapi/plugin_url_fetcher.h ('k') | content/child/resource_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698