| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 1653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1664 return; | 1664 return; |
| 1665 | 1665 |
| 1666 Frame* firstFrame = firstWindow->frame(); | 1666 Frame* firstFrame = firstWindow->frame(); |
| 1667 if (!firstFrame) | 1667 if (!firstFrame) |
| 1668 return; | 1668 return; |
| 1669 | 1669 |
| 1670 KURL completedURL = firstFrame->document()->completeURL(urlString); | 1670 KURL completedURL = firstFrame->document()->completeURL(urlString); |
| 1671 if (completedURL.isNull()) | 1671 if (completedURL.isNull()) |
| 1672 return; | 1672 return; |
| 1673 | 1673 |
| 1674 if (isInsecureScriptAccess(activeWindow, urlString)) | 1674 if (isInsecureScriptAccess(activeWindow, completedURL)) |
| 1675 return; | 1675 return; |
| 1676 | 1676 |
| 1677 // We want a new history item if we are processing a user gesture. | 1677 // We want a new history item if we are processing a user gesture. |
| 1678 m_frame->navigationScheduler()->scheduleLocationChange(activeFrame->document
()->securityOrigin(), | 1678 m_frame->navigationScheduler()->scheduleLocationChange(activeFrame->document
()->securityOrigin(), |
| 1679 completedURL, activeFrame->loader()->outgoingReferrer(), | 1679 completedURL, activeFrame->loader()->outgoingReferrer(), |
| 1680 locking != LockHistoryBasedOnGestureState || !activeFrame->script()->any
PageIsProcessingUserGesture(), | 1680 locking != LockHistoryBasedOnGestureState || !activeFrame->script()->any
PageIsProcessingUserGesture(), |
| 1681 locking != LockHistoryBasedOnGestureState); | 1681 locking != LockHistoryBasedOnGestureState); |
| 1682 } | 1682 } |
| 1683 | 1683 |
| 1684 void DOMWindow::printErrorMessage(const String& message) | 1684 void DOMWindow::printErrorMessage(const String& message) |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1749 // We pass the opener frame for the lookupFrame in case the active frame is
different from | 1749 // We pass the opener frame for the lookupFrame in case the active frame is
different from |
| 1750 // the opener frame, and the name references a frame relative to the opener
frame. | 1750 // the opener frame, and the name references a frame relative to the opener
frame. |
| 1751 bool created; | 1751 bool created; |
| 1752 Frame* newFrame = WebCore::createWindow(activeFrame, openerFrame, frameReque
st, windowFeatures, created); | 1752 Frame* newFrame = WebCore::createWindow(activeFrame, openerFrame, frameReque
st, windowFeatures, created); |
| 1753 if (!newFrame) | 1753 if (!newFrame) |
| 1754 return 0; | 1754 return 0; |
| 1755 | 1755 |
| 1756 newFrame->loader()->setOpener(openerFrame); | 1756 newFrame->loader()->setOpener(openerFrame); |
| 1757 newFrame->page()->setOpenedByDOM(); | 1757 newFrame->page()->setOpenedByDOM(); |
| 1758 | 1758 |
| 1759 if (newFrame->domWindow()->isInsecureScriptAccess(activeWindow, urlString)) | 1759 if (newFrame->domWindow()->isInsecureScriptAccess(activeWindow, completedURL
)) |
| 1760 return newFrame; | 1760 return newFrame; |
| 1761 | 1761 |
| 1762 if (function) | 1762 if (function) |
| 1763 function(newFrame->domWindow(), functionContext); | 1763 function(newFrame->domWindow(), functionContext); |
| 1764 | 1764 |
| 1765 if (created) | 1765 if (created) |
| 1766 newFrame->loader()->changeLocation(activeWindow->securityOrigin(), compl
etedURL, referrer, false, false); | 1766 newFrame->loader()->changeLocation(activeWindow->securityOrigin(), compl
etedURL, referrer, false, false); |
| 1767 else if (!urlString.isEmpty()) { | 1767 else if (!urlString.isEmpty()) { |
| 1768 newFrame->navigationScheduler()->scheduleLocationChange(activeWindow->se
curityOrigin(), completedURL.string(), referrer, | 1768 newFrame->navigationScheduler()->scheduleLocationChange(activeWindow->se
curityOrigin(), completedURL.string(), referrer, |
| 1769 !activeFrame->script()->anyPageIsProcessingUserGesture(), false); | 1769 !activeFrame->script()->anyPageIsProcessingUserGesture(), false); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1799 else if (frameName == "_parent") { | 1799 else if (frameName == "_parent") { |
| 1800 if (Frame* parent = m_frame->tree()->parent()) | 1800 if (Frame* parent = m_frame->tree()->parent()) |
| 1801 targetFrame = parent; | 1801 targetFrame = parent; |
| 1802 else | 1802 else |
| 1803 targetFrame = m_frame; | 1803 targetFrame = m_frame; |
| 1804 } | 1804 } |
| 1805 if (targetFrame) { | 1805 if (targetFrame) { |
| 1806 if (!activeFrame->loader()->shouldAllowNavigation(targetFrame)) | 1806 if (!activeFrame->loader()->shouldAllowNavigation(targetFrame)) |
| 1807 return 0; | 1807 return 0; |
| 1808 | 1808 |
| 1809 if (targetFrame->domWindow()->isInsecureScriptAccess(activeWindow, urlSt
ring)) | 1809 KURL completedURL = firstFrame->document()->completeURL(urlString); |
| 1810 |
| 1811 if (targetFrame->domWindow()->isInsecureScriptAccess(activeWindow, compl
etedURL)) |
| 1810 return targetFrame->domWindow(); | 1812 return targetFrame->domWindow(); |
| 1811 | 1813 |
| 1812 if (urlString.isEmpty()) | 1814 if (urlString.isEmpty()) |
| 1813 return targetFrame->domWindow(); | 1815 return targetFrame->domWindow(); |
| 1814 | 1816 |
| 1815 // For whatever reason, Firefox uses the first window rather than the ac
tive window to | 1817 // For whatever reason, Firefox uses the first window rather than the ac
tive window to |
| 1816 // determine the outgoing referrer. We replicate that behavior here. | 1818 // determine the outgoing referrer. We replicate that behavior here. |
| 1817 targetFrame->navigationScheduler()->scheduleLocationChange(activeFrame->
document()->securityOrigin(), | 1819 targetFrame->navigationScheduler()->scheduleLocationChange(activeFrame->
document()->securityOrigin(), |
| 1818 firstFrame->document()->completeURL(urlString).string(), | 1820 completedURL, |
| 1819 firstFrame->loader()->outgoingReferrer(), | 1821 firstFrame->loader()->outgoingReferrer(), |
| 1820 !activeFrame->script()->anyPageIsProcessingUserGesture(), false); | 1822 !activeFrame->script()->anyPageIsProcessingUserGesture(), false); |
| 1821 | 1823 |
| 1822 return targetFrame->domWindow(); | 1824 return targetFrame->domWindow(); |
| 1823 } | 1825 } |
| 1824 | 1826 |
| 1825 WindowFeatures windowFeatures(windowFeaturesString); | 1827 WindowFeatures windowFeatures(windowFeaturesString); |
| 1826 FloatRect windowRect(windowFeatures.xSet ? windowFeatures.x : 0, windowFeatu
res.ySet ? windowFeatures.y : 0, | 1828 FloatRect windowRect(windowFeatures.xSet ? windowFeatures.x : 0, windowFeatu
res.ySet ? windowFeatures.y : 0, |
| 1827 windowFeatures.widthSet ? windowFeatures.width : 0, windowFeatures.heigh
tSet ? windowFeatures.height : 0); | 1829 windowFeatures.widthSet ? windowFeatures.width : 0, windowFeatures.heigh
tSet ? windowFeatures.height : 0); |
| 1828 Page* page = m_frame->page(); | 1830 Page* page = m_frame->page(); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1874 #if ENABLE(QUOTA) | 1876 #if ENABLE(QUOTA) |
| 1875 StorageInfo* DOMWindow::webkitStorageInfo() const | 1877 StorageInfo* DOMWindow::webkitStorageInfo() const |
| 1876 { | 1878 { |
| 1877 if (!m_storageInfo) | 1879 if (!m_storageInfo) |
| 1878 m_storageInfo = StorageInfo::create(); | 1880 m_storageInfo = StorageInfo::create(); |
| 1879 return m_storageInfo.get(); | 1881 return m_storageInfo.get(); |
| 1880 } | 1882 } |
| 1881 #endif | 1883 #endif |
| 1882 | 1884 |
| 1883 } // namespace WebCore | 1885 } // namespace WebCore |
| OLD | NEW |