OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 DCHECK(frame_); | 459 DCHECK(frame_); |
460 DCHECK_EQ(resource, main_resource_); | 460 DCHECK_EQ(resource, main_resource_); |
461 DCHECK(!redirect_response.IsNull()); | 461 DCHECK(!redirect_response.IsNull()); |
462 request_ = request; | 462 request_ = request; |
463 | 463 |
464 // If the redirecting url is not allowed to display content from the target | 464 // If the redirecting url is not allowed to display content from the target |
465 // origin, then block the redirect. | 465 // origin, then block the redirect. |
466 const KURL& request_url = request_.Url(); | 466 const KURL& request_url = request_.Url(); |
467 RefPtr<SecurityOrigin> redirecting_origin = | 467 RefPtr<SecurityOrigin> redirecting_origin = |
468 SecurityOrigin::Create(redirect_response.Url()); | 468 SecurityOrigin::Create(redirect_response.Url()); |
469 if (!redirecting_origin->CanDisplay(request_url)) { | |
470 FrameLoader::ReportLocalLoadFailed(frame_, request_url.GetString()); | |
471 fetcher_->StopFetching(); | |
472 return false; | |
473 } | |
474 if (GetFrameLoader().ShouldContinueForRedirectNavigationPolicy( | 469 if (GetFrameLoader().ShouldContinueForRedirectNavigationPolicy( |
475 request_, SubstituteData(), this, kCheckContentSecurityPolicy, | 470 request_, SubstituteData(), this, kCheckContentSecurityPolicy, |
476 navigation_type_, kNavigationPolicyCurrentTab, load_type_, | 471 navigation_type_, kNavigationPolicyCurrentTab, load_type_, |
477 IsClientRedirect(), nullptr) != kNavigationPolicyCurrentTab) { | 472 IsClientRedirect(), nullptr) != kNavigationPolicyCurrentTab) { |
478 fetcher_->StopFetching(); | 473 fetcher_->StopFetching(); |
479 return false; | 474 return false; |
480 } | 475 } |
481 | 476 |
482 DCHECK(GetTiming().FetchStart()); | 477 DCHECK(GetTiming().FetchStart()); |
483 AppendRedirect(request_url); | 478 AppendRedirect(request_url); |
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1103 InstallNewDocumentReason::kJavascriptURL, | 1098 InstallNewDocumentReason::kJavascriptURL, |
1104 kForceSynchronousParsing, KURL()); | 1099 kForceSynchronousParsing, KURL()); |
1105 if (!source.IsNull()) | 1100 if (!source.IsNull()) |
1106 writer_->AppendReplacingData(source); | 1101 writer_->AppendReplacingData(source); |
1107 EndWriting(); | 1102 EndWriting(); |
1108 } | 1103 } |
1109 | 1104 |
1110 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); | 1105 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); |
1111 | 1106 |
1112 } // namespace blink | 1107 } // namespace blink |
OLD | NEW |