| 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 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 | 304 |
| 305 Settings* settings = firstFrame->settings(); | 305 Settings* settings = firstFrame->settings(); |
| 306 return settings && settings->javaScriptCanOpenWindowsAutomatically(); | 306 return settings && settings->javaScriptCanOpenWindowsAutomatically(); |
| 307 } | 307 } |
| 308 | 308 |
| 309 bool DOMWindow::allowPopUp() | 309 bool DOMWindow::allowPopUp() |
| 310 { | 310 { |
| 311 return m_frame && allowPopUp(m_frame); | 311 return m_frame && allowPopUp(m_frame); |
| 312 } | 312 } |
| 313 | 313 |
| 314 bool DOMWindow::canShowModalDialog(const Frame* frame) | |
| 315 { | |
| 316 if (!frame) | |
| 317 return false; | |
| 318 FrameHost* host = frame->host(); | |
| 319 if (!host) | |
| 320 return false; | |
| 321 return host->chrome().canRunModal(); | |
| 322 } | |
| 323 | |
| 324 bool DOMWindow::canShowModalDialogNow(const Frame* frame) | |
| 325 { | |
| 326 if (!frame) | |
| 327 return false; | |
| 328 FrameHost* host = frame->host(); | |
| 329 if (!host) | |
| 330 return false; | |
| 331 return host->chrome().canRunModalNow(); | |
| 332 } | |
| 333 | |
| 334 DOMWindow::DOMWindow(Frame* frame) | 314 DOMWindow::DOMWindow(Frame* frame) |
| 335 : FrameDestructionObserver(frame) | 315 : FrameDestructionObserver(frame) |
| 336 , m_shouldPrintWhenFinishedLoading(false) | 316 , m_shouldPrintWhenFinishedLoading(false) |
| 337 { | 317 { |
| 338 ASSERT(frame); | 318 ASSERT(frame); |
| 339 ScriptWrappable::init(this); | 319 ScriptWrappable::init(this); |
| 340 } | 320 } |
| 341 | 321 |
| 342 void DOMWindow::clearDocument() | 322 void DOMWindow::clearDocument() |
| 343 { | 323 { |
| (...skipping 1495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1839 Referrer(firstFrame->document()->outgoingReferrer(), firstFrame->doc
ument()->referrerPolicy()), | 1819 Referrer(firstFrame->document()->outgoingReferrer(), firstFrame->doc
ument()->referrerPolicy()), |
| 1840 false); | 1820 false); |
| 1841 return targetFrame->domWindow(); | 1821 return targetFrame->domWindow(); |
| 1842 } | 1822 } |
| 1843 | 1823 |
| 1844 WindowFeatures windowFeatures(windowFeaturesString); | 1824 WindowFeatures windowFeatures(windowFeaturesString); |
| 1845 Frame* result = createWindow(urlString, frameName, windowFeatures, callingWi
ndow, firstFrame, m_frame); | 1825 Frame* result = createWindow(urlString, frameName, windowFeatures, callingWi
ndow, firstFrame, m_frame); |
| 1846 return result ? result->domWindow() : 0; | 1826 return result ? result->domWindow() : 0; |
| 1847 } | 1827 } |
| 1848 | 1828 |
| 1849 void DOMWindow::showModalDialog(const String& urlString, const String& dialogFea
turesString, | |
| 1850 DOMWindow* callingWindow, DOMWindow* enteredWindow, PrepareDialogFunction fu
nction, void* functionContext) | |
| 1851 { | |
| 1852 if (!isCurrentlyDisplayedInFrame()) | |
| 1853 return; | |
| 1854 Frame* activeFrame = callingWindow->frame(); | |
| 1855 if (!activeFrame) | |
| 1856 return; | |
| 1857 Frame* firstFrame = enteredWindow->frame(); | |
| 1858 if (!firstFrame) | |
| 1859 return; | |
| 1860 | |
| 1861 if (!canShowModalDialogNow(m_frame) || !enteredWindow->allowPopUp()) | |
| 1862 return; | |
| 1863 | |
| 1864 UseCounter::countDeprecation(this, UseCounter::ShowModalDialog); | |
| 1865 | |
| 1866 WindowFeatures windowFeatures(dialogFeaturesString, screenAvailableRect(m_fr
ame->view())); | |
| 1867 Frame* dialogFrame = createWindow(urlString, emptyAtom, windowFeatures, | |
| 1868 callingWindow, firstFrame, m_frame, function, functionContext); | |
| 1869 if (!dialogFrame) | |
| 1870 return; | |
| 1871 UserGestureIndicatorDisabler disabler; | |
| 1872 dialogFrame->host()->chrome().runModal(); | |
| 1873 } | |
| 1874 | |
| 1875 DOMWindow* DOMWindow::anonymousIndexedGetter(uint32_t index) | 1829 DOMWindow* DOMWindow::anonymousIndexedGetter(uint32_t index) |
| 1876 { | 1830 { |
| 1877 Frame* frame = this->frame(); | 1831 Frame* frame = this->frame(); |
| 1878 if (!frame) | 1832 if (!frame) |
| 1879 return 0; | 1833 return 0; |
| 1880 | 1834 |
| 1881 Frame* child = frame->tree().scopedChild(index); | 1835 Frame* child = frame->tree().scopedChild(index); |
| 1882 if (child) | 1836 if (child) |
| 1883 return child->domWindow(); | 1837 return child->domWindow(); |
| 1884 | 1838 |
| 1885 return 0; | 1839 return 0; |
| 1886 } | 1840 } |
| 1887 | 1841 |
| 1888 DOMWindowLifecycleNotifier& DOMWindow::lifecycleNotifier() | 1842 DOMWindowLifecycleNotifier& DOMWindow::lifecycleNotifier() |
| 1889 { | 1843 { |
| 1890 return static_cast<DOMWindowLifecycleNotifier&>(LifecycleContext<DOMWindow>:
:lifecycleNotifier()); | 1844 return static_cast<DOMWindowLifecycleNotifier&>(LifecycleContext<DOMWindow>:
:lifecycleNotifier()); |
| 1891 } | 1845 } |
| 1892 | 1846 |
| 1893 PassOwnPtr<LifecycleNotifier<DOMWindow> > DOMWindow::createLifecycleNotifier() | 1847 PassOwnPtr<LifecycleNotifier<DOMWindow> > DOMWindow::createLifecycleNotifier() |
| 1894 { | 1848 { |
| 1895 return DOMWindowLifecycleNotifier::create(this); | 1849 return DOMWindowLifecycleNotifier::create(this); |
| 1896 } | 1850 } |
| 1897 | 1851 |
| 1898 | 1852 |
| 1899 } // namespace WebCore | 1853 } // namespace WebCore |
| OLD | NEW |