Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / frame / Location.idl
index 1d1c893..99a3ae9 100644 (file)
  */
 
 [
-    CheckSecurity
+    CheckSecurity=Frame,
+    WillBeGarbageCollected,
 ] 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, Unforgeable, ReadOnly] void reload();
+    [CallWith=(ActiveWindow,FirstWindow), DoNotCheckSecurity, Unforgeable] void assign(DOMString url);
+    [CallWith=(ActiveWindow,FirstWindow), DoNotCheckSecurity, Unforgeable] void replace(DOMString url);
+    [CallWith=ActiveWindow, Unforgeable] void reload();
 
     // URI decomposition attributes
-    [SetterCallWith=ActiveWindow&FirstWindow, SetterRaisesException] attribute DOMString protocol;
-    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString host;
-    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString hostname;
-    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString port;
-    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString pathname;
-    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString search;
-    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString hash;
+    [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;
+    [SetterCallWith=(ActiveWindow,FirstWindow)] attribute DOMString pathname;
+    [SetterCallWith=(ActiveWindow,FirstWindow)] attribute DOMString search;
+    [SetterCallWith=(ActiveWindow,FirstWindow)] attribute DOMString hash;
 
     readonly attribute DOMString origin;
 
     readonly attribute DOMStringList ancestorOrigins;
 
-    [NotEnumerable, Unforgeable, ReadOnly, ImplementedAs=href] DOMString toString();
-    [NotEnumerable, Custom, Unforgeable, ReadOnly] any valueOf();
+    [NotEnumerable, Unforgeable, ImplementedAs=href] DOMString toString();
+    [NotEnumerable, Custom, Unforgeable] any valueOf();
 };