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

Side by Side Diff: Source/core/loader/FrameFetchContext.cpp

Issue 1299493003: Attach mixed content status to resource requests when sent to devtools (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: add contextTypeForInspector() unit test Created 5 years, 4 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 // when a CSP is active, to see if implementing CSP 489 // when a CSP is active, to see if implementing CSP
490 // 'unsafe-redirect' is feasible. 490 // 'unsafe-redirect' is feasible.
491 if (csp && csp->isActive() && resourceRequest.frameType() != WebURLRequest:: FrameTypeTopLevel && resourceRequest.frameType() != WebURLRequest::FrameTypeAuxi liary && redirectStatus == ContentSecurityPolicy::DidRedirect) { 491 if (csp && csp->isActive() && resourceRequest.frameType() != WebURLRequest:: FrameTypeTopLevel && resourceRequest.frameType() != WebURLRequest::FrameTypeAuxi liary && redirectStatus == ContentSecurityPolicy::DidRedirect) {
492 ASSERT(frame()->document()); 492 ASSERT(frame()->document());
493 UseCounter::count(frame()->document(), UseCounter::ResourceLoadedAfterRe directWithCSP); 493 UseCounter::count(frame()->document(), UseCounter::ResourceLoadedAfterRe directWithCSP);
494 } 494 }
495 495
496 // Last of all, check for mixed content. We do this last so that when 496 // Last of all, check for mixed content. We do this last so that when
497 // folks block mixed content with a CSP policy, they don't get a warning. 497 // folks block mixed content with a CSP policy, they don't get a warning.
498 // They'll still get a warning in the console about CSP blocking the load. 498 // They'll still get a warning in the console about CSP blocking the load.
499
500 // If we're loading the main resource of a subframe, ensure that we check
501 // against the parent of the active frame, rather than the frame itself.
502 LocalFrame* effectiveFrame = frame();
503 if (resourceRequest.frameType() == WebURLRequest::FrameTypeNested) {
504 // FIXME: Deal with RemoteFrames.
505 Frame* parentFrame = effectiveFrame->tree().parent();
506 ASSERT(parentFrame);
507 if (parentFrame->isLocalFrame())
508 effectiveFrame = toLocalFrame(parentFrame);
509 }
510
511 MixedContentChecker::ReportingStatus mixedContentReporting = forPreload ? 499 MixedContentChecker::ReportingStatus mixedContentReporting = forPreload ?
512 MixedContentChecker::SuppressReport : MixedContentChecker::SendReport; 500 MixedContentChecker::SuppressReport : MixedContentChecker::SendReport;
513 return !MixedContentChecker::shouldBlockFetch(effectiveFrame, resourceReques t, url, mixedContentReporting); 501 return !MixedContentChecker::shouldBlockFetch(MixedContentChecker::effective FrameForFrameType(frame(), resourceRequest.frameType()), resourceRequest, url, m ixedContentReporting);
514 } 502 }
515 503
516 bool FrameFetchContext::isControlledByServiceWorker() const 504 bool FrameFetchContext::isControlledByServiceWorker() const
517 { 505 {
518 ASSERT(m_documentLoader || frame()->loader().documentLoader()); 506 ASSERT(m_documentLoader || frame()->loader().documentLoader());
519 if (m_documentLoader) 507 if (m_documentLoader)
520 return frame()->loader().client()->isControlledByServiceWorker(*m_docume ntLoader); 508 return frame()->loader().client()->isControlledByServiceWorker(*m_docume ntLoader);
521 // m_documentLoader is null while loading resources from an HTML import. 509 // m_documentLoader is null while loading resources from an HTML import.
522 // In such cases whether the request is controlled by ServiceWorker or not 510 // In such cases whether the request is controlled by ServiceWorker or not
523 // is determined by the document loader of the frame. 511 // is determined by the document loader of the frame.
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 680
693 681
694 DEFINE_TRACE(FrameFetchContext) 682 DEFINE_TRACE(FrameFetchContext)
695 { 683 {
696 visitor->trace(m_document); 684 visitor->trace(m_document);
697 visitor->trace(m_documentLoader); 685 visitor->trace(m_documentLoader);
698 FetchContext::trace(visitor); 686 FetchContext::trace(visitor);
699 } 687 }
700 688
701 } // namespace blink 689 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorResourceAgent.cpp ('k') | Source/core/loader/MixedContentChecker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698