OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
3 * reserved. | 3 * reserved. |
4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
5 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 5 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
6 * (http://www.torchmobile.com/) | 6 * (http://www.torchmobile.com/) |
7 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 7 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
8 * Copyright (C) Research In Motion Limited 2009. All rights reserved. | 8 * Copyright (C) Research In Motion Limited 2009. All rights reserved. |
9 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> | 9 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> |
10 * Copyright (C) 2011 Google Inc. All rights reserved. | 10 * Copyright (C) 2011 Google Inc. All rights reserved. |
(...skipping 1614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1625 type, | 1625 type, |
1626 frameLoadRequest.resourceRequest().httpBody() || frameLoadRequest.form(), | 1626 frameLoadRequest.resourceRequest().httpBody() || frameLoadRequest.form(), |
1627 frameLoadRequest.triggeringEvent()); | 1627 frameLoadRequest.triggeringEvent()); |
1628 frameLoadRequest.resourceRequest().setRequestContext( | 1628 frameLoadRequest.resourceRequest().setRequestContext( |
1629 determineRequestContextFromNavigationType(navigationType)); | 1629 determineRequestContextFromNavigationType(navigationType)); |
1630 frameLoadRequest.resourceRequest().setFrameType( | 1630 frameLoadRequest.resourceRequest().setFrameType( |
1631 m_frame->isMainFrame() ? WebURLRequest::FrameTypeTopLevel | 1631 m_frame->isMainFrame() ? WebURLRequest::FrameTypeTopLevel |
1632 : WebURLRequest::FrameTypeNested); | 1632 : WebURLRequest::FrameTypeNested); |
1633 ResourceRequest& request = frameLoadRequest.resourceRequest(); | 1633 ResourceRequest& request = frameLoadRequest.resourceRequest(); |
1634 | 1634 |
1635 // Record the latest requiredCSP value that will be used when sending this | |
1636 // request. | |
1637 recordLatestRequiredCSP(); | |
1638 modifyRequestForCSP(request, nullptr); | |
1639 if (!shouldContinueForNavigationPolicy( | 1635 if (!shouldContinueForNavigationPolicy( |
1640 request, frameLoadRequest.substituteData(), nullptr, | 1636 request, frameLoadRequest.substituteData(), nullptr, |
1641 frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), | 1637 frameLoadRequest.shouldCheckMainWorldContentSecurityPolicy(), |
1642 navigationType, navigationPolicy, | 1638 navigationType, navigationPolicy, |
1643 type == FrameLoadTypeReplaceCurrentItem, | 1639 type == FrameLoadTypeReplaceCurrentItem, |
1644 frameLoadRequest.clientRedirect() == | 1640 frameLoadRequest.clientRedirect() == |
1645 ClientRedirectPolicy::ClientRedirect, | 1641 ClientRedirectPolicy::ClientRedirect, |
1646 frameLoadRequest.form())) | 1642 frameLoadRequest.form())) |
1647 return; | 1643 return; |
1648 | 1644 |
| 1645 // Record the latest requiredCSP value that will be used when sending this |
| 1646 // request. |
| 1647 recordLatestRequiredCSP(); |
| 1648 modifyRequestForCSP(request, nullptr); |
| 1649 |
1649 m_frame->document()->cancelParsing(); | 1650 m_frame->document()->cancelParsing(); |
1650 detachDocumentLoader(m_provisionalDocumentLoader); | 1651 detachDocumentLoader(m_provisionalDocumentLoader); |
1651 | 1652 |
1652 // beforeunload fired above, and detaching a DocumentLoader can fire events, | 1653 // beforeunload fired above, and detaching a DocumentLoader can fire events, |
1653 // which can detach this frame. | 1654 // which can detach this frame. |
1654 if (!m_frame->host()) | 1655 if (!m_frame->host()) |
1655 return; | 1656 return; |
1656 | 1657 |
1657 m_provisionalDocumentLoader = client()->createDocumentLoader( | 1658 m_provisionalDocumentLoader = client()->createDocumentLoader( |
1658 m_frame, request, frameLoadRequest.substituteData().isValid() | 1659 m_frame, request, frameLoadRequest.substituteData().isValid() |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1877 | 1878 |
1878 // If we don't yet have an |m_document| (because we're loading an iframe, for | 1879 // If we don't yet have an |m_document| (because we're loading an iframe, for |
1879 // instance), check the FrameLoader's policy. | 1880 // instance), check the FrameLoader's policy. |
1880 WebInsecureRequestPolicy relevantPolicy = | 1881 WebInsecureRequestPolicy relevantPolicy = |
1881 document ? document->getInsecureRequestPolicy() | 1882 document ? document->getInsecureRequestPolicy() |
1882 : getInsecureRequestPolicy(); | 1883 : getInsecureRequestPolicy(); |
1883 SecurityContext::InsecureNavigationsSet* relevantNavigationSet = | 1884 SecurityContext::InsecureNavigationsSet* relevantNavigationSet = |
1884 document ? document->insecureNavigationsToUpgrade() | 1885 document ? document->insecureNavigationsToUpgrade() |
1885 : insecureNavigationsToUpgrade(); | 1886 : insecureNavigationsToUpgrade(); |
1886 | 1887 |
| 1888 resourceRequest.setInsecurePolicy(relevantPolicy); |
| 1889 |
1887 if (url.protocolIs("http") && relevantPolicy & kUpgradeInsecureRequests) { | 1890 if (url.protocolIs("http") && relevantPolicy & kUpgradeInsecureRequests) { |
1888 // We always upgrade requests that meet any of the following criteria: | 1891 // We always upgrade requests that meet any of the following criteria: |
1889 // | 1892 // |
1890 // 1. Are for subresources (including nested frames). | 1893 // 1. Are for subresources (including nested frames). |
1891 // 2. Are form submissions. | 1894 // 2. Are form submissions. |
1892 // 3. Whose hosts are contained in the document's InsecureNavigationSet. | 1895 // 3. Whose hosts are contained in the document's InsecureNavigationSet. |
1893 if (resourceRequest.frameType() == WebURLRequest::FrameTypeNone || | 1896 if (resourceRequest.frameType() == WebURLRequest::FrameTypeNone || |
1894 resourceRequest.frameType() == WebURLRequest::FrameTypeNested || | 1897 resourceRequest.frameType() == WebURLRequest::FrameTypeNested || |
1895 resourceRequest.requestContext() == WebURLRequest::RequestContextForm || | 1898 resourceRequest.requestContext() == WebURLRequest::RequestContextForm || |
1896 (!url.host().isNull() && | 1899 (!url.host().isNull() && |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1928 m_documentLoader ? m_documentLoader->url() : String()); | 1931 m_documentLoader ? m_documentLoader->url() : String()); |
1929 return tracedValue; | 1932 return tracedValue; |
1930 } | 1933 } |
1931 | 1934 |
1932 inline void FrameLoader::takeObjectSnapshot() const { | 1935 inline void FrameLoader::takeObjectSnapshot() const { |
1933 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, | 1936 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, |
1934 toTracedValue()); | 1937 toTracedValue()); |
1935 } | 1938 } |
1936 | 1939 |
1937 } // namespace blink | 1940 } // namespace blink |
OLD | NEW |