The iframe retrieves and displays the managed configurations schema for aspecified app. Within the iframe, an IT admin can set configurations and savethem as a configuration profile. Each time an IT admin saves a newconfiguration profile, the iframe returns a unique identifier called mcmId.This makes it possible for IT admins to create multiple profiles for the sameapp.
Use Enterprises.createWebToken to generate a web token that identifies the enterprise. You must include thereturned token, along with other parameters, when rendering the iframe in yourconsole. The following example shows how to retrieve the token using the GooglePlay EMM API Client Library for Java.
The managed configurations iframe now allows IT admins to explicitly deselectthe app restrictions of a managed configuration when they do not need them. Thisis a change from previous behaviour and may have an impact to what restrictionsare sent to your app based on the admin's selection.
Standardized lazy-loading for images landed in Chrome 76 via the loading attribute and later came to Firefox. We are happy to share that browser-level lazy-loading for iframes is now standardized and is also supported in Chrome and Chromium-based browsers.
The loading attribute affects iframes differently than images, depending on whether the iframe is hidden. (Hidden iframes are often used for analytics or communication purposes.) Chrome uses the following criteria to determine whether an iframe is hidden:The iframe's width and height are 4px or smaller.display: none or visibility: hidden is applied.The iframe is placed off-screen using negative X or Y positioning.This criteria applies to both loading=lazy and loading=auto.If an iframe meets any of these conditions, Chrome considers it hidden and won't lazy-load it in most cases. iframes that aren't hidden will only load when they're within the load-in distance threshold. Chrome shows a placeholder for lazy-loaded iframes that are still being fetched.What impact might we see from lazy-loading popular iframe embeds? #What if we could change the web at large so that lazy-loading offscreen iframes was the default? It would look a little like this:Lazy-loading YouTube video embeds (saves 500KB on initial page load):
Anecdote: when we switched to lazy-loading YouTube embeds for Chrome.com, we saved 10 seconds off of how soon our pages could be interactive on mobile devices. I have opened an internal bug with YouTube to discuss adding loading=lazy to its embed code.If you are looking for more efficient ways to load YouTube embeds, you may be interested in the YouTube lite component.Lazy-loading Instagram embeds (saves >100KB gzipped on initial load):Instagram embeds provide a block of markup and a script, which injects an iframe into your page. Lazy-loading this iframe avoids having to load all of the script necessary for the embed. Given such embeds are often displayed below the viewport in most articles, this seems like a reasonable candidate for lazy-loading of their iframe.Lazy-loading Spotify embeds (saves 514KB on initial load):
You might have many iframes scattered across years worth of post content in a WordPress site. You can optionally add the following code to your WordPress theme's functions.php file to automatically insert loading="lazy" to your existing iframes without having to manually update them each individually.Note that browser-level support for lazy-loading iframes is also being worked on in WordPress core. The following snippet will check for the relevant flags so that, once WordPress has the functionality built-in, it will no longer manually add the loading="lazy" attribute, ensuring it is interoperable with those changes and will not result in a duplicate attribute.
The src attribute gives the URL of a page that the element's content navigable is to contain. The attribute, if present, must be a valid non-empty URL potentially surrounded by spaces. If the itemprop attribute is specified on an iframe element, then the src attribute must also be specified.
Element/iframe#attr-srcdocSupport in all current engines.Firefox25+Safari6+Chrome20+Opera?Edge79+Edge (Legacy)?Internet ExplorerNoFirefox Android?Safari iOS?Chrome Android?WebView Android37+Samsung Internet?Opera Android?The srcdoc attribute gives the content of the page that the element's content navigable is to contain. The value of the attribute is the source of an iframe srcdoc document.
Furthermore, notice that since the DOCTYPE is optional in iframe srcdoc documents, and the html, head, and body elements have optional start and end tags, and the title element is also optional in iframe srcdoc documents, the markup in a srcdoc attribute can be relatively succinct despite representing an entire document, since only the contents of the body element need appear literally in the syntax. The other elements are still present, but only by implication.
When an iframe element element is inserted into a document whose browsing context is non-null, the user agent must run these steps: Create a new child navigable for element.If element has a sandbox attribute, then parse the sandboxing directive given the attribute's value and element's iframe sandboxing flag set.Process the iframe attributes for element, with initialInsertion set to true. When an iframe element is removed from a document, the user agent must destroy a child navigable given the element.
Similarly, whenever an iframe element with a non-null content navigable but with no srcdoc attribute specified has its src attribute set, changed, or removed, the user agent must process the iframe attributes.
Set element's lazy load resumption steps to the rest of this algorithm starting with the step labeled navigate to the srcdoc resource.Set element's current navigation was lazy loaded boolean to true.Start intersection-observing a lazy loading element for element.Return. Navigate to the srcdoc resource: navigate an iframe or frame given element, about:srcdoc, the empty string, and the value of element's srcdoc attribute.
Let url be the result of running the shared attribute processing steps for iframe and frame elements given element and initialInsertion.If url is null, then return. If url matches about:blank and initialInsertion is true, then:
Run the iframe load event steps given element.Return. Let referrerPolicy be the current state of element's referrerpolicy content attribute.Set element's current navigation was lazy loaded boolean to false. If the will lazy load element steps given element return true, then:
Set element's lazy load resumption steps to the rest of this algorithm starting with the step labeled navigate.Set element's current navigation was lazy loaded boolean to true.Start intersection-observing a lazy loading element for element.Return. Navigate: navigate an iframe or frame given element, url, and referrerPolicy. The shared attribute processing steps for iframe and frame elements, given an element element and a boolean initialInsertion, are:
If element's content navigable's active document is not completely loaded, then set historyHandling to "replace".Navigate element's content navigable to url using element's node document, with historyHandling set to historyHandling, referrerPolicy set to referrerPolicy, and documentResource set to scrdocString. Each Document has an iframe load in progress flag and a mute iframe load flag. When a Document is created, these flags must be unset for that Document.
Assert: element's content navigable is not null.Let childDocument be element's content navigable's active document.If childDocument has its mute iframe load flag set, then return.Set childDocument's iframe load in progress flag.Fire an event named load at element.Unset childDocument's iframe load in progress flag. This, in conjunction with scripting, can be used to probe the URL space of the local network's HTTP servers. User agents may implement cross-origin access control policies that are stricter than those described above to mitigate this attack, but unfortunately such policies are typically not compatible with existing web content.