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 714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 { | 725 { |
726 if (!frame()) | 726 if (!frame()) |
727 return; | 727 return; |
728 | 728 |
729 FrameHost* host = frame()->host(); | 729 FrameHost* host = frame()->host(); |
730 if (!host) | 730 if (!host) |
731 return; | 731 return; |
732 | 732 |
733 if (document()->isSandboxed(SandboxModals)) { | 733 if (document()->isSandboxed(SandboxModals)) { |
734 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); | 734 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); |
735 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) { | 735 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSource,
ErrorMessageLevel, "Ignored call to 'print()'. The document is sandboxed, and t
he 'allow-modals' keyword is not set.")); |
736 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou
rce, ErrorMessageLevel, "Ignored call to 'print()'. The document is sandboxed, a
nd the 'allow-modals' keyword is not set.")); | 736 return; |
737 return; | |
738 } | |
739 } | 737 } |
740 | 738 |
741 if (scriptState && v8::MicrotasksScope::IsRunningMicrotasks(scriptState->iso
late())) { | 739 if (scriptState && v8::MicrotasksScope::IsRunningMicrotasks(scriptState->iso
late())) { |
742 UseCounter::count(document(), UseCounter::During_Microtask_Print); | 740 UseCounter::count(document(), UseCounter::During_Microtask_Print); |
743 } | 741 } |
744 | 742 |
745 if (frame()->isLoading()) { | 743 if (frame()->isLoading()) { |
746 m_shouldPrintWhenFinishedLoading = true; | 744 m_shouldPrintWhenFinishedLoading = true; |
747 return; | 745 return; |
748 } | 746 } |
(...skipping 11 matching lines...) Expand all Loading... |
760 frame()->loader().stopAllLoaders(); | 758 frame()->loader().stopAllLoaders(); |
761 } | 759 } |
762 | 760 |
763 void LocalDOMWindow::alert(ScriptState* scriptState, const String& message) | 761 void LocalDOMWindow::alert(ScriptState* scriptState, const String& message) |
764 { | 762 { |
765 if (!frame()) | 763 if (!frame()) |
766 return; | 764 return; |
767 | 765 |
768 if (document()->isSandboxed(SandboxModals)) { | 766 if (document()->isSandboxed(SandboxModals)) { |
769 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); | 767 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); |
770 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) { | 768 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSource,
ErrorMessageLevel, "Ignored call to 'alert()'. The document is sandboxed, and t
he 'allow-modals' keyword is not set.")); |
771 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou
rce, ErrorMessageLevel, "Ignored call to 'alert()'. The document is sandboxed, a
nd the 'allow-modals' keyword is not set.")); | 769 return; |
772 return; | |
773 } | |
774 } | 770 } |
775 | 771 |
776 if (v8::MicrotasksScope::IsRunningMicrotasks(scriptState->isolate())) { | 772 if (v8::MicrotasksScope::IsRunningMicrotasks(scriptState->isolate())) { |
777 UseCounter::count(document(), UseCounter::During_Microtask_Alert); | 773 UseCounter::count(document(), UseCounter::During_Microtask_Alert); |
778 } | 774 } |
779 | 775 |
780 document()->updateStyleAndLayoutTree(); | 776 document()->updateStyleAndLayoutTree(); |
781 | 777 |
782 FrameHost* host = frame()->host(); | 778 FrameHost* host = frame()->host(); |
783 if (!host) | 779 if (!host) |
784 return; | 780 return; |
785 | 781 |
786 UseCounter::countCrossOriginIframe(*document(), UseCounter::CrossOriginWindo
wAlert); | 782 UseCounter::countCrossOriginIframe(*document(), UseCounter::CrossOriginWindo
wAlert); |
787 | 783 |
788 host->chromeClient().openJavaScriptAlert(frame(), message); | 784 host->chromeClient().openJavaScriptAlert(frame(), message); |
789 } | 785 } |
790 | 786 |
791 bool LocalDOMWindow::confirm(ScriptState* scriptState, const String& message) | 787 bool LocalDOMWindow::confirm(ScriptState* scriptState, const String& message) |
792 { | 788 { |
793 if (!frame()) | 789 if (!frame()) |
794 return false; | 790 return false; |
795 | 791 |
796 if (document()->isSandboxed(SandboxModals)) { | 792 if (document()->isSandboxed(SandboxModals)) { |
797 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); | 793 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); |
798 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) { | 794 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSource,
ErrorMessageLevel, "Ignored call to 'confirm()'. The document is sandboxed, and
the 'allow-modals' keyword is not set.")); |
799 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou
rce, ErrorMessageLevel, "Ignored call to 'confirm()'. The document is sandboxed,
and the 'allow-modals' keyword is not set.")); | 795 return false; |
800 return false; | |
801 } | |
802 } | 796 } |
803 | 797 |
804 if (v8::MicrotasksScope::IsRunningMicrotasks(scriptState->isolate())) { | 798 if (v8::MicrotasksScope::IsRunningMicrotasks(scriptState->isolate())) { |
805 UseCounter::count(document(), UseCounter::During_Microtask_Confirm); | 799 UseCounter::count(document(), UseCounter::During_Microtask_Confirm); |
806 } | 800 } |
807 | 801 |
808 document()->updateStyleAndLayoutTree(); | 802 document()->updateStyleAndLayoutTree(); |
809 | 803 |
810 FrameHost* host = frame()->host(); | 804 FrameHost* host = frame()->host(); |
811 if (!host) | 805 if (!host) |
812 return false; | 806 return false; |
813 | 807 |
814 UseCounter::countCrossOriginIframe(*document(), UseCounter::CrossOriginWindo
wConfirm); | 808 UseCounter::countCrossOriginIframe(*document(), UseCounter::CrossOriginWindo
wConfirm); |
815 | 809 |
816 return host->chromeClient().openJavaScriptConfirm(frame(), message); | 810 return host->chromeClient().openJavaScriptConfirm(frame(), message); |
817 } | 811 } |
818 | 812 |
819 String LocalDOMWindow::prompt(ScriptState* scriptState, const String& message, c
onst String& defaultValue) | 813 String LocalDOMWindow::prompt(ScriptState* scriptState, const String& message, c
onst String& defaultValue) |
820 { | 814 { |
821 if (!frame()) | 815 if (!frame()) |
822 return String(); | 816 return String(); |
823 | 817 |
824 if (document()->isSandboxed(SandboxModals)) { | 818 if (document()->isSandboxed(SandboxModals)) { |
825 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); | 819 UseCounter::count(document(), UseCounter::DialogInSandboxedContext); |
826 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) { | 820 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSource,
ErrorMessageLevel, "Ignored call to 'prompt()'. The document is sandboxed, and
the 'allow-modals' keyword is not set.")); |
827 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou
rce, ErrorMessageLevel, "Ignored call to 'prompt()'. The document is sandboxed,
and the 'allow-modals' keyword is not set.")); | 821 return String(); |
828 return String(); | |
829 } | |
830 } | 822 } |
831 | 823 |
832 if (v8::MicrotasksScope::IsRunningMicrotasks(scriptState->isolate())) { | 824 if (v8::MicrotasksScope::IsRunningMicrotasks(scriptState->isolate())) { |
833 UseCounter::count(document(), UseCounter::During_Microtask_Prompt); | 825 UseCounter::count(document(), UseCounter::During_Microtask_Prompt); |
834 } | 826 } |
835 | 827 |
836 document()->updateStyleAndLayoutTree(); | 828 document()->updateStyleAndLayoutTree(); |
837 | 829 |
838 FrameHost* host = frame()->host(); | 830 FrameHost* host = frame()->host(); |
839 if (!host) | 831 if (!host) |
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1537 { | 1529 { |
1538 // If the LocalDOMWindow still has a frame reference, that frame must point | 1530 // If the LocalDOMWindow still has a frame reference, that frame must point |
1539 // back to this LocalDOMWindow: otherwise, it's easy to get into a situation | 1531 // back to this LocalDOMWindow: otherwise, it's easy to get into a situation |
1540 // where script execution leaks between different LocalDOMWindows. | 1532 // where script execution leaks between different LocalDOMWindows. |
1541 if (m_frameObserver->frame()) | 1533 if (m_frameObserver->frame()) |
1542 ASSERT_WITH_SECURITY_IMPLICATION(m_frameObserver->frame()->domWindow() =
= this); | 1534 ASSERT_WITH_SECURITY_IMPLICATION(m_frameObserver->frame()->domWindow() =
= this); |
1543 return m_frameObserver->frame(); | 1535 return m_frameObserver->frame(); |
1544 } | 1536 } |
1545 | 1537 |
1546 } // namespace blink | 1538 } // namespace blink |
OLD | NEW |