Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(963)

Side by Side Diff: Source/core/frame/LocalDOMWindow.cpp

Issue 1191903002: Add console messages when modals are suppressed due to sandboxing. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 769 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 { 780 {
781 if (!frame()) 781 if (!frame())
782 return; 782 return;
783 783
784 FrameHost* host = frame()->host(); 784 FrameHost* host = frame()->host();
785 if (!host) 785 if (!host)
786 return; 786 return;
787 787
788 if (frame()->document()->isSandboxed(SandboxModals)) { 788 if (frame()->document()->isSandboxed(SandboxModals)) {
789 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext); 789 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext);
790 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) 790 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) {
791 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou rce, ErrorMessageLevel, "Ignored call to 'print()'. The document is sandboxed, a nd the 'allow-modals' keyword is not set."));
791 return; 792 return;
793 }
792 } 794 }
793 795
794 if (frame()->isLoading()) { 796 if (frame()->isLoading()) {
795 m_shouldPrintWhenFinishedLoading = true; 797 m_shouldPrintWhenFinishedLoading = true;
796 return; 798 return;
797 } 799 }
798 m_shouldPrintWhenFinishedLoading = false; 800 m_shouldPrintWhenFinishedLoading = false;
799 host->chromeClient().print(frame()); 801 host->chromeClient().print(frame());
800 } 802 }
801 803
802 void LocalDOMWindow::stop() 804 void LocalDOMWindow::stop()
803 { 805 {
804 if (!frame()) 806 if (!frame())
805 return; 807 return;
806 frame()->loader().stopAllLoaders(); 808 frame()->loader().stopAllLoaders();
807 } 809 }
808 810
809 void LocalDOMWindow::alert(const String& message) 811 void LocalDOMWindow::alert(const String& message)
810 { 812 {
811 if (!frame()) 813 if (!frame())
812 return; 814 return;
813 815
814 if (frame()->document()->isSandboxed(SandboxModals)) { 816 if (frame()->document()->isSandboxed(SandboxModals)) {
815 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext); 817 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext);
816 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) 818 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) {
819 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou rce, ErrorMessageLevel, "Ignored call to 'alert()'. The document is sandboxed, a nd the 'allow-modals' keyword is not set."));
817 return; 820 return;
821 }
818 } 822 }
819 823
820 frame()->document()->updateLayoutTreeIfNeeded(); 824 frame()->document()->updateLayoutTreeIfNeeded();
821 825
822 FrameHost* host = frame()->host(); 826 FrameHost* host = frame()->host();
823 if (!host) 827 if (!host)
824 return; 828 return;
825 829
826 host->chromeClient().openJavaScriptAlert(frame(), message); 830 host->chromeClient().openJavaScriptAlert(frame(), message);
827 } 831 }
828 832
829 bool LocalDOMWindow::confirm(const String& message) 833 bool LocalDOMWindow::confirm(const String& message)
830 { 834 {
831 if (!frame()) 835 if (!frame())
832 return false; 836 return false;
833 837
834 if (frame()->document()->isSandboxed(SandboxModals)) { 838 if (frame()->document()->isSandboxed(SandboxModals)) {
835 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext); 839 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext);
836 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) 840 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) {
841 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou rce, ErrorMessageLevel, "Ignored call to 'confirm()'. The document is sandboxed, and the 'allow-modals' keyword is not set."));
837 return false; 842 return false;
843 }
838 } 844 }
839 845
840 frame()->document()->updateLayoutTreeIfNeeded(); 846 frame()->document()->updateLayoutTreeIfNeeded();
841 847
842 FrameHost* host = frame()->host(); 848 FrameHost* host = frame()->host();
843 if (!host) 849 if (!host)
844 return false; 850 return false;
845 851
846 if (frame()->document()->isSandboxed(SandboxModals)) {
847 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext);
848 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled())
849 return false;
850 }
851
852 return host->chromeClient().openJavaScriptConfirm(frame(), message); 852 return host->chromeClient().openJavaScriptConfirm(frame(), message);
853 } 853 }
854 854
855 String LocalDOMWindow::prompt(const String& message, const String& defaultValue) 855 String LocalDOMWindow::prompt(const String& message, const String& defaultValue)
856 { 856 {
857 if (!frame()) 857 if (!frame())
858 return String(); 858 return String();
859 859
860 if (frame()->document()->isSandboxed(SandboxModals)) { 860 if (frame()->document()->isSandboxed(SandboxModals)) {
861 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext); 861 UseCounter::count(frame()->document(), UseCounter::DialogInSandboxedCont ext);
862 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) 862 if (RuntimeEnabledFeatures::sandboxBlocksModalsEnabled()) {
863 frameConsole()->addMessage(ConsoleMessage::create(SecurityMessageSou rce, ErrorMessageLevel, "Ignored call to 'prompt()'. The document is sandboxed, and the 'allow-modals' keyword is not set."));
863 return String(); 864 return String();
865 }
864 } 866 }
865 867
866 frame()->document()->updateLayoutTreeIfNeeded(); 868 frame()->document()->updateLayoutTreeIfNeeded();
867 869
868 FrameHost* host = frame()->host(); 870 FrameHost* host = frame()->host();
869 if (!host) 871 if (!host)
870 return String(); 872 return String();
871 873
872 String returnValue; 874 String returnValue;
873 if (host->chromeClient().openJavaScriptPrompt(frame(), message, defaultValue , returnValue)) 875 if (host->chromeClient().openJavaScriptPrompt(frame(), message, defaultValue , returnValue))
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
1503 DOMWindow::trace(visitor); 1505 DOMWindow::trace(visitor);
1504 DOMWindowLifecycleNotifier::trace(visitor); 1506 DOMWindowLifecycleNotifier::trace(visitor);
1505 } 1507 }
1506 1508
1507 LocalFrame* LocalDOMWindow::frame() const 1509 LocalFrame* LocalDOMWindow::frame() const
1508 { 1510 {
1509 return m_frameObserver->frame(); 1511 return m_frameObserver->frame();
1510 } 1512 }
1511 1513
1512 } // namespace blink 1514 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698