OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. |
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. |
7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> | 7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> |
8 * Copyright (C) 2011 Google Inc. All rights reserved. | 8 * Copyright (C) 2011 Google Inc. All rights reserved. |
9 * | 9 * |
10 * Redistribution and use in source and binary forms, with or without | 10 * Redistribution and use in source and binary forms, with or without |
(...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 | 759 |
760 if (historyLoadType == HistorySameDocumentLoad) | 760 if (historyLoadType == HistorySameDocumentLoad) |
761 restoreScrollPositionAndViewState(); | 761 restoreScrollPositionAndViewState(); |
762 | 762 |
763 // We need to scroll to the fragment whether or not a hash change occurred,
since | 763 // We need to scroll to the fragment whether or not a hash change occurred,
since |
764 // the user might have scrolled since the previous navigation. | 764 // the user might have scrolled since the previous navigation. |
765 processFragment(url, NavigationWithinSameDocument); | 765 processFragment(url, NavigationWithinSameDocument); |
766 takeObjectSnapshot(); | 766 takeObjectSnapshot(); |
767 } | 767 } |
768 | 768 |
769 void FrameLoader::setReferrerForFrameRequest(ResourceRequest& request, ShouldSen
dReferrer shouldSendReferrer, Document* originDocument) | 769 // static |
| 770 void FrameLoader::setReferrerForFrameRequest(FrameLoadRequest& frameRequest) |
770 { | 771 { |
| 772 ResourceRequest& request = frameRequest.resourceRequest(); |
| 773 Document* originDocument = frameRequest.originDocument(); |
| 774 |
771 if (!originDocument) | 775 if (!originDocument) |
772 return; | 776 return; |
773 // Anchor elements with the 'referrerpolicy' attribute will have | 777 // Anchor elements with the 'referrerpolicy' attribute will have |
774 // already set the referrer on the request. | 778 // already set the referrer on the request. |
775 if (request.didSetHTTPReferrer()) | 779 if (request.didSetHTTPReferrer()) |
776 return; | 780 return; |
777 if (shouldSendReferrer == NeverSendReferrer) | 781 if (frameRequest.getShouldSendReferrer() == NeverSendReferrer) |
778 return; | 782 return; |
779 | 783 |
780 // Always use the initiating document to generate the referrer. | 784 // Always use the initiating document to generate the referrer. |
781 // We need to generateReferrer(), because we haven't enforced ReferrerPolicy
or https->http | 785 // We need to generateReferrer(), because we haven't enforced ReferrerPolicy
or https->http |
782 // referrer suppression yet. | 786 // referrer suppression yet. |
783 Referrer referrer = SecurityPolicy::generateReferrer(originDocument->getRefe
rrerPolicy(), request.url(), originDocument->outgoingReferrer()); | 787 Referrer referrer = SecurityPolicy::generateReferrer(originDocument->getRefe
rrerPolicy(), request.url(), originDocument->outgoingReferrer()); |
784 | 788 |
785 request.setHTTPReferrer(referrer); | 789 request.setHTTPReferrer(referrer); |
786 RefPtr<SecurityOrigin> referrerOrigin = SecurityOrigin::createFromString(ref
errer.referrer); | 790 RefPtr<SecurityOrigin> referrerOrigin = SecurityOrigin::createFromString(ref
errer.referrer); |
787 request.addHTTPOriginIfNeeded(referrerOrigin); | 791 request.addHTTPOriginIfNeeded(referrerOrigin); |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
942 bool wasInSamePage = targetFrame->page() == m_frame->page(); | 946 bool wasInSamePage = targetFrame->page() == m_frame->page(); |
943 | 947 |
944 request.setFrameName("_self"); | 948 request.setFrameName("_self"); |
945 targetFrame->navigate(request); | 949 targetFrame->navigate(request); |
946 Page* page = targetFrame->page(); | 950 Page* page = targetFrame->page(); |
947 if (!wasInSamePage && page) | 951 if (!wasInSamePage && page) |
948 page->chromeClient().focus(); | 952 page->chromeClient().focus(); |
949 return; | 953 return; |
950 } | 954 } |
951 | 955 |
952 setReferrerForFrameRequest(request.resourceRequest(), request.getShouldSendR
eferrer(), request.originDocument()); | 956 setReferrerForFrameRequest(request); |
953 | 957 |
954 FrameLoadType newLoadType = (frameLoadType == FrameLoadTypeStandard) ? | 958 FrameLoadType newLoadType = (frameLoadType == FrameLoadTypeStandard) ? |
955 determineFrameLoadType(request) : frameLoadType; | 959 determineFrameLoadType(request) : frameLoadType; |
956 NavigationPolicy policy = navigationPolicyForRequest(request); | 960 NavigationPolicy policy = navigationPolicyForRequest(request); |
957 if (shouldOpenInNewWindow(targetFrame, request, policy)) { | 961 if (shouldOpenInNewWindow(targetFrame, request, policy)) { |
958 if (policy == NavigationPolicyDownload) { | 962 if (policy == NavigationPolicyDownload) { |
959 client()->loadURLExternally(request.resourceRequest(), NavigationPol
icyDownload, String(), false); | 963 client()->loadURLExternally(request.resourceRequest(), NavigationPol
icyDownload, String(), false); |
960 } else { | 964 } else { |
961 request.resourceRequest().setFrameType(WebURLRequest::FrameTypeAuxil
iary); | 965 request.resourceRequest().setFrameType(WebURLRequest::FrameTypeAuxil
iary); |
962 createWindowForRequest(request, *m_frame, policy, request.getShouldS
endReferrer(), request.getShouldSetOpener()); | 966 createWindowForRequest(request, *m_frame, policy, request.getShouldS
endReferrer(), request.getShouldSetOpener()); |
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1592 tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoa
der->url() : String()); | 1596 tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoa
der->url() : String()); |
1593 return tracedValue; | 1597 return tracedValue; |
1594 } | 1598 } |
1595 | 1599 |
1596 inline void FrameLoader::takeObjectSnapshot() const | 1600 inline void FrameLoader::takeObjectSnapshot() const |
1597 { | 1601 { |
1598 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTraced
Value()); | 1602 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTraced
Value()); |
1599 } | 1603 } |
1600 | 1604 |
1601 } // namespace blink | 1605 } // namespace blink |
OLD | NEW |