Index: core/frame/Location.idl |
diff --git a/core/frame/Location.idl b/core/frame/Location.idl |
index 1d1c89389ebe7e181ee8649fc3b52e6f1ab65b66..5ce29901ece1c12697f524c54e386b17d61a3071 100644 |
--- a/core/frame/Location.idl |
+++ b/core/frame/Location.idl |
@@ -27,16 +27,21 @@ |
*/ |
[ |
- CheckSecurity |
+ CheckSecurity=Frame, |
] interface Location { |
- [SetterCallWith=ActiveWindow&FirstWindow, DoNotCheckSecurityOnSetter, Unforgeable] attribute DOMString href; |
+ // |assign|, |replace|, and *writing* |href| do not require a security |
+ // check, as they *change* the page, and thus these do not change any |
+ // property of an *existing* document at a different origin. |
+ // However, *reading* |href|, or accessing any component, is a security |
+ // problem, since that allows tracking navigation. |
+ [SetterCallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity=Setter, Unforgeable] attribute DOMString href; |
- [CallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLogging=AccessForIsolatedWorlds] void assign([Default=Undefined] optional DOMString url); |
- [CallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLogging=AccessForIsolatedWorlds] void replace([Default=Undefined] optional DOMString url); |
+ [CallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void assign(DOMString url); |
+ [CallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void replace(DOMString url); |
[CallWith=ActiveWindow, Unforgeable, ReadOnly] void reload(); |
// URI decomposition attributes |
- [SetterCallWith=ActiveWindow&FirstWindow, SetterRaisesException] attribute DOMString protocol; |
+ [SetterCallWith=ActiveWindow&FirstWindow, RaisesException=Setter] attribute DOMString protocol; |
[SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString host; |
[SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString hostname; |
[SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString port; |