| 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 |