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 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 if (action.policy() == NavigationPolicyDownload) | 756 if (action.policy() == NavigationPolicyDownload) |
757 m_client->loadURLExternally(action.resourceRequest(), NavigationPoli
cyDownload); | 757 m_client->loadURLExternally(action.resourceRequest(), NavigationPoli
cyDownload); |
758 else | 758 else |
759 createWindowForRequest(request, *m_frame, action.policy(), request.s
houldSendReferrer()); | 759 createWindowForRequest(request, *m_frame, action.policy(), request.s
houldSendReferrer()); |
760 return; | 760 return; |
761 } | 761 } |
762 | 762 |
763 const KURL& url = request.resourceRequest().url(); | 763 const KURL& url = request.resourceRequest().url(); |
764 if (!action.shouldOpenInNewWindow() && shouldPerformFragmentNavigation(reque
st.formState(), request.resourceRequest().httpMethod(), newLoadType, url)) { | 764 if (!action.shouldOpenInNewWindow() && shouldPerformFragmentNavigation(reque
st.formState(), request.resourceRequest().httpMethod(), newLoadType, url)) { |
765 m_documentLoader->setTriggeringAction(action); | 765 m_documentLoader->setTriggeringAction(action); |
766 loadInSameDocument(url, nullptr, newLoadType == FrameLoadTypeStandard ?
UpdateBackForwardList : DoNotUpdateBackForwardList, request.clientRedirect()); | 766 loadInSameDocument(url, nullptr, newLoadType == FrameLoadTypeStandard &&
!shouldTreatURLAsSameAsCurrent(url) ? UpdateBackForwardList : DoNotUpdateBackFo
rwardList, request.clientRedirect()); |
767 return; | 767 return; |
768 } | 768 } |
769 bool sameURL = url == m_documentLoader->urlForHistory(); | 769 bool sameURL = url == m_documentLoader->urlForHistory(); |
770 loadWithNavigationAction(action, newLoadType, request.formState(), request.s
ubstituteData(), request.clientRedirect()); | 770 loadWithNavigationAction(action, newLoadType, request.formState(), request.s
ubstituteData(), request.clientRedirect()); |
771 // Example of this case are sites that reload the same URL with a different
cookie | 771 // Example of this case are sites that reload the same URL with a different
cookie |
772 // driving the generated content, or a master frame with links that drive a
target | 772 // driving the generated content, or a master frame with links that drive a
target |
773 // frame, where the user has clicked on the same link repeatedly. | 773 // frame, where the user has clicked on the same link repeatedly. |
774 if (sameURL && newLoadType != FrameLoadTypeReload && newLoadType != FrameLoa
dTypeReloadFromOrigin && request.resourceRequest().httpMethod() != "POST") | 774 if (sameURL && newLoadType != FrameLoadTypeReload && newLoadType != FrameLoa
dTypeReloadFromOrigin && request.resourceRequest().httpMethod() != "POST") |
775 m_loadType = FrameLoadTypeSame; | 775 m_loadType = FrameLoadTypeSame; |
776 } | 776 } |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1394 return true; | 1394 return true; |
1395 case XFrameOptionsInvalid: | 1395 case XFrameOptionsInvalid: |
1396 m_frame->document()->addConsoleMessageWithRequestIdentifier(JSMessageSou
rce, ErrorMessageLevel, "Invalid 'X-Frame-Options' header encountered when loadi
ng '" + url.elidedString() + "': '" + content + "' is not a recognized directive
. The header will be ignored.", requestIdentifier); | 1396 m_frame->document()->addConsoleMessageWithRequestIdentifier(JSMessageSou
rce, ErrorMessageLevel, "Invalid 'X-Frame-Options' header encountered when loadi
ng '" + url.elidedString() + "': '" + content + "' is not a recognized directive
. The header will be ignored.", requestIdentifier); |
1397 return false; | 1397 return false; |
1398 default: | 1398 default: |
1399 ASSERT_NOT_REACHED(); | 1399 ASSERT_NOT_REACHED(); |
1400 return false; | 1400 return false; |
1401 } | 1401 } |
1402 } | 1402 } |
1403 | 1403 |
| 1404 bool FrameLoader::shouldTreatURLAsSameAsCurrent(const KURL& url) const |
| 1405 { |
| 1406 return m_currentItem && url == m_currentItem->url(); |
| 1407 } |
| 1408 |
1404 bool FrameLoader::shouldTreatURLAsSrcdocDocument(const KURL& url) const | 1409 bool FrameLoader::shouldTreatURLAsSrcdocDocument(const KURL& url) const |
1405 { | 1410 { |
1406 if (!equalIgnoringCase(url.string(), "about:srcdoc")) | 1411 if (!equalIgnoringCase(url.string(), "about:srcdoc")) |
1407 return false; | 1412 return false; |
1408 HTMLFrameOwnerElement* ownerElement = m_frame->ownerElement(); | 1413 HTMLFrameOwnerElement* ownerElement = m_frame->ownerElement(); |
1409 if (!isHTMLIFrameElement(ownerElement)) | 1414 if (!isHTMLIFrameElement(ownerElement)) |
1410 return false; | 1415 return false; |
1411 return ownerElement->fastHasAttribute(srcdocAttr); | 1416 return ownerElement->fastHasAttribute(srcdocAttr); |
1412 } | 1417 } |
1413 | 1418 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1469 { | 1474 { |
1470 SandboxFlags flags = m_forcedSandboxFlags; | 1475 SandboxFlags flags = m_forcedSandboxFlags; |
1471 if (LocalFrame* parentFrame = m_frame->tree().parent()) | 1476 if (LocalFrame* parentFrame = m_frame->tree().parent()) |
1472 flags |= parentFrame->document()->sandboxFlags(); | 1477 flags |= parentFrame->document()->sandboxFlags(); |
1473 if (HTMLFrameOwnerElement* ownerElement = m_frame->ownerElement()) | 1478 if (HTMLFrameOwnerElement* ownerElement = m_frame->ownerElement()) |
1474 flags |= ownerElement->sandboxFlags(); | 1479 flags |= ownerElement->sandboxFlags(); |
1475 return flags; | 1480 return flags; |
1476 } | 1481 } |
1477 | 1482 |
1478 } // namespace WebCore | 1483 } // namespace WebCore |
OLD | NEW |