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

Side by Side Diff: content/browser/frame_host/render_frame_message_filter.cc

Issue 1855383002: Add DumpWithoutCrashing to RenderFrameMessageFilter cookie kills (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@doghouse_now
Patch Set: Add second dump site. Created 4 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
« no previous file with comments | « content/browser/child_process_security_policy_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/browser/frame_host/render_frame_message_filter.h" 5 #include "content/browser/frame_host/render_frame_message_filter.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/crash_logging.h"
9 #include "base/debug/dump_without_crashing.h"
8 #include "base/macros.h" 10 #include "base/macros.h"
9 #include "base/metrics/field_trial.h" 11 #include "base/metrics/field_trial.h"
10 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
11 #include "build/build_config.h" 13 #include "build/build_config.h"
12 #include "content/browser/bad_message.h" 14 #include "content/browser/bad_message.h"
13 #include "content/browser/child_process_security_policy_impl.h" 15 #include "content/browser/child_process_security_policy_impl.h"
14 #include "content/browser/frame_host/render_frame_host_impl.h" 16 #include "content/browser/frame_host/render_frame_host_impl.h"
15 #include "content/browser/gpu/gpu_data_manager_impl.h" 17 #include "content/browser/gpu/gpu_data_manager_impl.h"
16 #include "content/browser/renderer_host/render_widget_helper.h" 18 #include "content/browser/renderer_host/render_widget_helper.h"
17 #include "content/common/frame_messages.h" 19 #include "content/common/frame_messages.h"
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 params.frame_owner_properties, *new_routing_id)); 244 params.frame_owner_properties, *new_routing_id));
243 } 245 }
244 246
245 void RenderFrameMessageFilter::OnSetCookie(int render_frame_id, 247 void RenderFrameMessageFilter::OnSetCookie(int render_frame_id,
246 const GURL& url, 248 const GURL& url,
247 const GURL& first_party_for_cookies, 249 const GURL& first_party_for_cookies,
248 const std::string& cookie) { 250 const std::string& cookie) {
249 ChildProcessSecurityPolicyImpl* policy = 251 ChildProcessSecurityPolicyImpl* policy =
250 ChildProcessSecurityPolicyImpl::GetInstance(); 252 ChildProcessSecurityPolicyImpl::GetInstance();
251 if (!policy->CanAccessDataForOrigin(render_process_id_, url)) { 253 if (!policy->CanAccessDataForOrigin(render_process_id_, url)) {
254 {
255 // TODO(nick): Remove this once we understand http://crbug.com/600441
256 auto origin_lock = policy->GetOriginLockCrashKey(render_process_id_);
257 base::debug::ScopedCrashKey("cookie_url", url.possibly_invalid_spec());
258 base::debug::ScopedCrashKey(
259 "cookie_first_party",
260 first_party_for_cookies.possibly_invalid_spec());
261 base::debug::DumpWithoutCrashing();
262 }
263
252 bad_message::ReceivedBadMessage(this, 264 bad_message::ReceivedBadMessage(this,
253 bad_message::RFMF_SET_COOKIE_BAD_ORIGIN); 265 bad_message::RFMF_SET_COOKIE_BAD_ORIGIN);
254 return; 266 return;
255 } 267 }
256 268
257 net::CookieOptions options; 269 net::CookieOptions options;
258 bool experimental_web_platform_features_enabled = 270 bool experimental_web_platform_features_enabled =
259 base::CommandLine::ForCurrentProcess()->HasSwitch( 271 base::CommandLine::ForCurrentProcess()->HasSwitch(
260 switches::kEnableExperimentalWebPlatformFeatures); 272 switches::kEnableExperimentalWebPlatformFeatures);
261 const std::string enforce_strict_secure_group = 273 const std::string enforce_strict_secure_group =
(...skipping 13 matching lines...) Expand all
275 } 287 }
276 } 288 }
277 289
278 void RenderFrameMessageFilter::OnGetCookies(int render_frame_id, 290 void RenderFrameMessageFilter::OnGetCookies(int render_frame_id,
279 const GURL& url, 291 const GURL& url,
280 const GURL& first_party_for_cookies, 292 const GURL& first_party_for_cookies,
281 IPC::Message* reply_msg) { 293 IPC::Message* reply_msg) {
282 ChildProcessSecurityPolicyImpl* policy = 294 ChildProcessSecurityPolicyImpl* policy =
283 ChildProcessSecurityPolicyImpl::GetInstance(); 295 ChildProcessSecurityPolicyImpl::GetInstance();
284 if (!policy->CanAccessDataForOrigin(render_process_id_, url)) { 296 if (!policy->CanAccessDataForOrigin(render_process_id_, url)) {
297 {
298 // TODO(nick): Remove this once we understand http://crbug.com/600441
299 auto origin_lock = policy->GetOriginLockCrashKey(render_process_id_);
300 base::debug::ScopedCrashKey("cookie_url", url.possibly_invalid_spec());
301 base::debug::ScopedCrashKey(
302 "cookie_first_party",
303 first_party_for_cookies.possibly_invalid_spec());
304 base::debug::DumpWithoutCrashing();
305 }
306
285 bad_message::ReceivedBadMessage(this, 307 bad_message::ReceivedBadMessage(this,
286 bad_message::RFMF_GET_COOKIES_BAD_ORIGIN); 308 bad_message::RFMF_GET_COOKIES_BAD_ORIGIN);
287 delete reply_msg; 309 delete reply_msg;
288 return; 310 return;
289 } 311 }
290 312
291 // If we crash here, figure out what URL the renderer was requesting. 313 // If we crash here, figure out what URL the renderer was requesting.
292 // http://crbug.com/99242 314 // http://crbug.com/99242
293 char url_buf[128]; 315 char url_buf[128];
294 base::strlcpy(url_buf, url.spec().c_str(), arraysize(url_buf)); 316 base::strlcpy(url_buf, url.spec().c_str(), arraysize(url_buf));
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 net::URLRequestContext* context = 541 net::URLRequestContext* context =
520 GetContentClient()->browser()->OverrideRequestContextForURL( 542 GetContentClient()->browser()->OverrideRequestContextForURL(
521 url, resource_context_); 543 url, resource_context_);
522 if (!context) 544 if (!context)
523 context = request_context_->GetURLRequestContext(); 545 context = request_context_->GetURLRequestContext();
524 546
525 return context; 547 return context;
526 } 548 }
527 549
528 } // namespace content 550 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/child_process_security_policy_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698