diff options
author | Ben Murdoch <benm@google.com> | 2010-08-13 05:20:16 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-08-13 05:20:16 -0700 |
commit | f4958a7d95cd5fbc1c74905e229b02c95cd5ee78 (patch) | |
tree | 14a0f1b07a19948c2ed93d0d8547caa7fe10aa0e /WebCore/bindings/generic/BindingSecurity.h | |
parent | d074a7997da8ce379434eb6e208b97cde8a0841c (diff) | |
parent | f964bc1fd59a545a80a0cc2529ad8830be514871 (diff) | |
download | external_webkit-f4958a7d95cd5fbc1c74905e229b02c95cd5ee78.zip external_webkit-f4958a7d95cd5fbc1c74905e229b02c95cd5ee78.tar.gz external_webkit-f4958a7d95cd5fbc1c74905e229b02c95cd5ee78.tar.bz2 |
Merge changes I60a96064,I6929172f,Idefd9bec,I8cf448f2,I8791737a,I992c56b0,Ibb4b089d,I779a8ec0,Ife412e30,I2da1ae98,Ibcf41849
* changes:
Merge WebKit at r65072 : Update WebKit revision number.
Merge WebKit at r65072 : Update test_expectations.
Merge WebKit at r65072 : Complete cherry-pick of WebKit change 43848 to add EmptyDeviceMotionClient
Merge WebKit at r65072 : Implement DeviceMotionClientAndroid
Merge WebKit at r65072: JSC build fix in InspectorController.h
Merge WebKit at r65072: Fix V8 code generator.
Merge WebKit at r65072 : Build fix for JSC, update ambiguous usage of JSLock.
Merge WebKit at r65072: String class has moved to the WTF namespace.
Merge Webkit at r65072 : Fix conflicts.
Merge Webkit at r65072 : Fix Makefiles.
Merge WebKit at r65072 : Initial merge by git.
Diffstat (limited to 'WebCore/bindings/generic/BindingSecurity.h')
-rw-r--r-- | WebCore/bindings/generic/BindingSecurity.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/WebCore/bindings/generic/BindingSecurity.h b/WebCore/bindings/generic/BindingSecurity.h index d7c9dfe..1124f7e 100644 --- a/WebCore/bindings/generic/BindingSecurity.h +++ b/WebCore/bindings/generic/BindingSecurity.h @@ -34,14 +34,15 @@ #include "BindingSecurityBase.h" #include "CSSHelper.h" #include "Element.h" +#include "Frame.h" #include "GenericBinding.h" #include "HTMLFrameElementBase.h" #include "HTMLNames.h" +#include "Settings.h" namespace WebCore { class DOMWindow; -class Frame; class Node; // Security functions shared by various language bindings. @@ -55,9 +56,12 @@ public: // current security context. static bool checkNodeSecurity(State<Binding>*, Node* target); + static bool allowPopUp(State<Binding>*); static bool allowSettingFrameSrcToJavascriptUrl(State<Binding>*, HTMLFrameElementBase*, String value); static bool allowSettingSrcToJavascriptURL(State<Binding>*, Element*, String name, String value); + static bool shouldAllowNavigation(State<Binding>*, Frame*); + private: explicit BindingSecurity() {} ~BindingSecurity(); @@ -110,6 +114,18 @@ bool BindingSecurity<Binding>::checkNodeSecurity(State<Binding>* state, Node* no } template <class Binding> +bool BindingSecurity<Binding>::allowPopUp(State<Binding>* state) +{ + if (state->processingUserGesture()) + return true; + + Frame* frame = state->getFirstFrame(); + ASSERT(frame); + Settings* settings = frame->settings(); + return settings && settings->javaScriptCanOpenWindowsAutomatically(); +} + +template <class Binding> bool BindingSecurity<Binding>::allowSettingFrameSrcToJavascriptUrl(State<Binding>* state, HTMLFrameElementBase* frame, String value) { if (protocolIsJavaScript(deprecatedParseURL(value))) { @@ -128,6 +144,13 @@ bool BindingSecurity<Binding>::allowSettingSrcToJavascriptURL(State<Binding>* st return true; } +template <class Binding> +bool BindingSecurity<Binding>::shouldAllowNavigation(State<Binding>* state, Frame* frame) +{ + Frame* activeFrame = state->getActiveFrame(); + return activeFrame && activeFrame->loader()->shouldAllowNavigation(frame); +} + } #endif // BindingSecurity_h |