-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Proposing a new feature policy for lazy-loading which will overwrite the default or specified behavior of lazyload attribute for <iframe> and <img>. The proposed name for the feature is lazyload.
The lazyload attribute (for an <iframe> or <img>) takes on three values of auto (decision of lazy-loading is deferred to the user agent), on (the contents will be loaded lazily), off (the contents will not be loaded lazily).
The proposed lazyload feature is a parameterized feature which takes one of the three values of:
auto: the default behavior oflazyloadattribute is not altered (user agent decides) .off: the default behavior oflazyloadis set tooff.
For example, if the sitewww.example.comsets its header policy toFeature Policy: lazyload 'self'(off), then
<iframe src="https://www.example.com/a" lazyload="on"></iframe>
will still load the contents lazily due to the defined attributes, but
<iframe src="https://www.example.com/b"></iframe>
will not load the contents lazily since the feature is set to off by default.
force: ignores the value oflazyloadattribute and enforces it toonfor all<iframe>and<img>.
For example, if a site sets its header policy toFeature Policy: lazyload *(force)then all<iframe>'s and<img>'s from all domains will be loaded lazily. For example in
<iframe src="http://www.example.com/" lazyload="off"></iframe>
the provided attributed is ignored and the contents will be loaded lazily due to policy enforcement. Also, since the lazyload attribute setting is in violation of the lazyload feature, such a usage may trigger a violation error.
The feature can also be set through container policies, for instance:
<iframe allow="lazyload *(force)" src="https://www.example.com" lazyload="off"></iframe>
which will enforce lazy loading for all domains. This would include https://www.example.com.