I drafted a blog post highlighting the additions/changes to the extension APIs. It is just going through reviews before being posted to developer.chrome.com, hopefully sometime next week.
dave. On Thu, Sep 1, 2022 at 2:49 AM Yoav Weiss <yoavwe...@chromium.org> wrote: > > > On Thu, Sep 1, 2022 at 8:24 AM Takashi Toyoshima <toyos...@chromium.org> > wrote: > >> Thank you for the feedback. >> >> Yes, the Extensions is the thing we have paid the biggest attention to >> support Prerendering on Desktop. >> >> https://docs.google.com/document/d/16Sy2Xq-AcnhwnpC0q232OMSmxTpQYDANRAO-zJ8DKiA/edit?usp=sharing >> This is the document we discussed especially on Prerendering and >> Extensions. In the design discussion we tried finding the best choice to >> minimize possible compatibility breakage for most Extensions, but at the >> same time, we understood it's unavoidable that some Extensions may be >> surprised to see unexpected prerendering pages. >> >> So, our prepared mitigations are >> - Enterprise Policy to disable Prerendering completely >> - Users' report based incompatible Chrome Extensions list that disables >> Prerendering when a user installs one in the list. >> > > That sounds reasonable, but I wonder if more communication to the > extensions community is warranted. > > +Simeon Vincent <sime...@google.com> for thoughts > > >> >> It minimizes the risk to block the rollout for such unexpected Extensions >> compatibility breakages. >> >> For more visibility, here is the crbug entry to report such incompatible >> Extensions quickly. >> https://bugs.chromium.org/p/chromium/issues/detail?id=1351312 >> >> <https://bugs.chromium.org/p/chromium/issues/detail?id=1351312> >> T <https://bugs.chromium.org/p/chromium/issues/detail?id=1351312>hanks! >> >> On Thu, Sep 1, 2022 at 6:20 AM Daniel Bratell <bratel...@gmail.com> >> wrote: >> >>> In addition to the LGTM, I want to point out that during our discussion >>> among the API Owners, we did specifically wonder about extension >>> compatibility. Since this will change things for extensions, I think it >>> will be important to look for compatibility problems popping up, and, if >>> necessary, delay until any such problems are fully understood. >>> >>> /Daniel >>> On 2022-08-31 16:34, Daniel Bratell wrote: >>> >>> LGTM3 >>> >>> /Daniel >>> On 2022-08-30 10:58, Yoav Weiss wrote: >>> >>> LGTM2 to expand support for desktop. >>> >>> On Tue, Aug 30, 2022 at 8:53 AM TAMURA, Kent <tk...@chromium.org> wrote: >>> >>>> LGTM1. >>>> It's pretty safe to expand support to desktop platforms, and it >>>> seems there are no negative signals. >>>> >>>> On Thu, Aug 18, 2022 at 4:07 PM 'Angel Raposo' via blink-dev < >>>> blink-dev@chromium.org> wrote: >>>> >>>>> Contact emails >>>>> >>>>> toyos...@chromium.org, angelrapo...@google.com >>>>> >>>>> Explainer >>>>> >>>>> This I2S aims to expand our efforts on Prerender2 (currently shipped >>>>> only on Android) to Desktop. >>>>> >>>>> The full prerendering revamped explainer can be found at >>>>> >>>>> https://github.com/WICG/nav-speculation/blob/main/README.md >>>>> >>>>> Specification >>>>> >>>>> https://wicg.github.io/nav-speculation/prerendering.html >>>>> >>>>> Design docs >>>>> >>>>> >>>>> https://docs.google.com/document/d/1EpLshvc9RRW3vswmXsJGrbCkhlFmxDsWfbvgxmYDTfs >>>>> >>>>> Summary >>>>> >>>>> Prerendering is “pre”-rendering, it’s about pre-loading and rendering >>>>> a Web page before the user actually navigates to it. The main goal of >>>>> prerendering is to make the next page navigation faster, or ideally nearly >>>>> instant. >>>>> >>>>> Sites can inform the user agent about which pages the user may likely >>>>> visit, by asking to trigger a ‘prerendering’ for a particular URL (e.g. >>>>> user is at page A and will likely navigate to page B next). Once the >>>>> prerender is triggered, the browser pre-fetches the main resource, >>>>> instantiates a hidden page, and processes the main resource to fetch and >>>>> process more subresources. >>>>> >>>>> After shipping Prerender2 for Android (I2S speculation rules >>>>> triggered Prerender2 >>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/EdW7O8yG7Jc/m/ypgp7pIjBAAJ?utm_medium=email&utm_source=footer> >>>>> and I2S for Omnibox triggered Prerender2 >>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/ogegRwcRlcs/m/Aso1a0UcBgAJ>), >>>>> we are now requesting approval to ship Prerender2 for Desktop. This >>>>> release >>>>> will enable the same triggers (speculation rules and Omnibox) for Desktop. >>>>> >>>>> With this feature, Chrome (Desktop) will start prerendering >>>>> high-confidence URL suggestions provided by the page using speculation >>>>> rules or directly by Omnibox. During the prerendering process, a page will >>>>> process and construct the full DOM tree, including the execution of >>>>> scripts >>>>> (this differs from No-state Prefetch >>>>> <https://developers.google.com/web/updates/2018/07/nostate-prefetch> >>>>> which only prefetches resources and doesn’t execute scripts). >>>>> >>>>> Note that we are not shipping cross-origin prerendering, which allows >>>>> a web page to prerender another page on a different origin. >>>>> >>>>> >>>>> Blink component >>>>> >>>>> Internals>Preload>Prerender >>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3EPreload%3EPrerender> >>>>> >>>>> TAG review >>>>> >>>>> https://github.com/w3ctag/design-reviews/issues/667 >>>>> >>>>> TAG review status >>>>> >>>>> All issues have been addressed. >>>>> >>>>> Risks >>>>> >>>>> >>>>> Interoperability and Compatibility >>>>> >>>>> Interoperability risk: this feature is focused on enabling Prerender >>>>> on Desktop, which is already launched and available for Android. >>>>> >>>>> We believe that some browsers already have prerendering >>>>> implementations which are not specified and may differ from each other, or >>>>> not always exposed to the platform. Our vision is to produce a >>>>> specification that can help improve interoperability. There is a risk that >>>>> other browsers do not converge on a prerendering standard but we hope that >>>>> we’ll be able to address legitimate concerns if any are raised by >>>>> interested parties. >>>>> >>>>> Compatibility risk: this feature is focused on enabling Prerender on >>>>> Desktop, which is already launched and available for Android. There are >>>>> some use cases that will need to know whether a page is being prerendered >>>>> by the user agent or navigated by the user, e.g. ads and analytics are >>>>> likely examples of this which are supported by already launched features >>>>> such as `document.prerendering` which lets a page know that it’s being >>>>> prerendered. >>>>> >>>>> Chrome Extensions have abilities to interact with web contents and >>>>> have widely used API surfaces. We’ve been keeping in mind compatibility >>>>> with Extensions’ compatibility, including giving enough capability for >>>>> Extensions to properly support Prerender2 [1]. >>>>> >>>>> A similar concern applies to (P)NaCl/PPAPI. However, these plugins are >>>>> on a deprecation path. In the meantime, given that NaCl permits the page >>>>> to >>>>> perform powerful operations, we are taking the safe route by canceling >>>>> prerendering if it triggers a request to load a NaCl module. >>>>> >>>>> [1] >>>>> https://docs.google.com/document/d/1EpLshvc9RRW3vswmXsJGrbCkhlFmxDsWfbvgxmYDTfs/edit >>>>> >>>>> >>>>> Gecko: When we launched Prerender2 for Android, we had some informal >>>>> positive discussion with Gecko engineers on the HTML Standard issue >>>>> tracker >>>>> <https://github.com/whatwg/html/issues/7533#issuecomment-1022051187> >>>>> and in the HTML triage call >>>>> <https://github.com/whatwg/html/issues/7488#issuecomment-1029510684>; >>>>> formal positions request here: >>>>> https://github.com/mozilla/standards-positions/issues/613 >>>>> >>>>> >>>>> WebKit: WebKit already ships URL-bar triggered prerendering, but not >>>>> any APIs for letting pages know about it, and it's unclear what strategy >>>>> they are using to prohibit disruptive behaviors for prerendered pages. >>>>> When >>>>> we launched Prerender2 for Android, we reached out for a formal positions >>>>> request here in the hopes of moving toward interoperability: >>>>> https://lists.webkit.org/pipermail/webkit-dev/2022-February/032113.html >>>>> >>>>> Web developers: When we launched Prerender2 for Android, we received >>>>> positive feedback from initial web developers testing the speculation >>>>> rules >>>>> triggers (see https://github.com/WICG/proposals/issues/2 for positive >>>>> sentiments on speculation rules triggered). >>>>> >>>>> >>>>> Other signals: When we launched Prerender2 for Android we created a >>>>> public request for feedback published ( >>>>> https://web.dev/speculative-prerendering/#feedback-welcome) which is >>>>> currently being managed through: >>>>> https://github.com/WICG/nav-speculation/issues >>>>> >>>>> >>>>> Ergonomics >>>>> >>>>> This feature is triggered by the speculation rules API >>>>> <https://chromestatus.com/feature/5740655424831488> and Omnibox. We >>>>> don't anticipate any conflict with other Platform APIs. >>>>> >>>>> IT admins can disable Prerender2 via the existing group policy >>>>> "NetworkPredictionOptions" >>>>> >>>>> We are shipping the same web-exposed APIs previously launched on >>>>> Android: document.prerendering, prerenderingchange event and >>>>> performanceEntry.activationStart timing. >>>>> >>>>> >>>>> Activation >>>>> >>>>> There are two mechanisms to trigger a prerender: (1) Speculation >>>>> rules in which developers can immediately take advantage of this feature >>>>> by >>>>> defining suggestions that the user agent will take into consideration when >>>>> deciding if a page is likely going to be browsed next. >>>>> >>>>> (2) Omnibox where the user agent decides if an URL should be >>>>> prerendered according to different heuristics. Both of these triggers >>>>> are already shipped for Android. With this request, we want to allow >>>>> Desktop to also trigger Prerender2 in the same scenarios. >>>>> >>>>> The feature should just work for most existing pages but developers >>>>> should be aware of restrictions on prerendering content (they cannot play >>>>> audio or perform other disruptive behavior, etc.). As we grow our reach of >>>>> navigations by enabling the Desktop version, we will pay special attention >>>>> to the documentation available to developers. >>>>> >>>>> We’ve also paid close attention to extensions. We believe that >>>>> extensions shouldn’t be affected by this feature as the restricted >>>>> features >>>>> are deferred behind a Promise resolution, and many extensions appear to >>>>> just work transparently. >>>>> >>>>> To report breakages in extensions developers have two options: they >>>>> can comment on the extensions related compatibility issue at >>>>> https://crbug.com/1351312, or they can discuss the desired API >>>>> surface in the mail group: >>>>> https://groups.google.com/a/chromium.org/g/chromium-extensions. >>>>> >>>>> Security >>>>> >>>>> We are scaling an already shipped feature in Android to cover Desktop. The >>>>> speculation rules API was the first use of the Multiple-Page Architecture, >>>>> which is a significant change to Chromium's internals. Both MPArch and the >>>>> speculation rules API underwent significant security review. From a >>>>> web-exposed perspective, the security and privacy concerns are smaller, >>>>> because this feature is restricted to the same-origin case only. WebView >>>>> application risks >>>>> >>>>> Prerendering is not supported on WebView and doesn’t deprecate or >>>>> change behavior of existing APIs directly. >>>>> >>>>> >>>>> Debuggability >>>>> >>>>> We are actively talking to the DevTools team about adding general >>>>> Prerender support to it [metabug >>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=1217029>] with >>>>> a current focus in providing meaningful debugging messages. The >>>>> current MVP is to reveal the status of prerendered pages so web developers >>>>> can know if prerendering succeeded or not. >>>>> >>>>> See [this document >>>>> <https://docs.google.com/document/d/1YEAfcuBjwlJn7GG6po8AFteObG15r9ro63fdFfcMvoI/edit>] >>>>> for our longer-term plan for improving the experience of debugging >>>>> prerendering with DevTools. >>>>> >>>>> Prerendered pages are also visible in chrome://process-internals. >>>>> >>>>> >>>>> >>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>> Mac, Linux, Chrome OS, Android, and Android WebView)? >>>>> >>>>> No. Prerender2 was originally shipped on Android. This Intent expands >>>>> it to cover Windows, Mac, Linux, and Chrome OS. It remains disabled on >>>>> Android WebView. >>>>> >>>>> >>>>> Is this feature fully tested by web-platform-tests >>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>> ? >>>>> >>>>> We have written a lot of web platform tests using speculation rules as >>>>> the trigger: >>>>> >>>>> >>>>> https://wpt.fyi/results/speculation-rules/prerender?label=experimental&label=master&aligned >>>>> >>>>> Flag name >>>>> >>>>> Prerender2 >>>>> >>>>> Requires code in //chrome? >>>>> >>>>> True >>>>> >>>>> Tracking bug >>>>> >>>>> https://crbug.com/1278141 >>>>> >>>>> Launch bug >>>>> >>>>> https://crbug.com/1332400 >>>>> >>>>> Estimated milestones >>>>> >>>>> DevTrial on desktop >>>>> >>>>> 105 >>>>> >>>>> DevTrial on Android >>>>> >>>>> Already shipped on 103 >>>>> >>>>> >>>>> Anticipated spec changes >>>>> >>>>> With this I2S we are aiming to scale already shipped APIs to Desktop. >>>>> >>>>> When we shipped the speculation rules, we reviewed all the current >>>>> pending discussions >>>>> <https://docs.google.com/document/d/1eFY7RMoeG7Mdhon9yLs6hKSfi6DYrASBPM-31hWXPDg/edit> >>>>> and all of them were resolved with the initial launch without causing >>>>> compatibility issues. >>>>> >>>>> >>>>> Link to entry on the Chrome Platform Status >>>>> >>>>> https://chromestatus.com/feature/5197044678393856 >>>>> >>>>> Links to previous Intent discussions >>>>> >>>>> Intent to prototype: >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFWCB1n7W-gfr9b8FTNtB1bNDnYJ_%3DkSfWiY%2BtfGyqjuXe52zA%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFWCB1n7W-gfr9b8FTNtB1bNDnYJ_=ksfwiy+tfgyqjuxe5...@mail.gmail.com> >>>>> >>>>> >>>>> This intent message was generated by Chrome Platform Status >>>>> <https://chromestatus.com/>. >>>>> >>>>> >>>>> -- >>>>> Angel Raposo | Engagement Manager | angelrap...@google.com | >>>>> Google Japan G.K. >>>>> >>>>> >>>>> This email may be confidential or privileged. If you received this >>>>> communication by mistake, please don't forward it to anyone else, please >>>>> erase all copies and attachments, and please let me know that it went to >>>>> the wrong person. Thanks. >>>>> >>>>> The above terms reflect a potential business arrangement, are provided >>>>> solely as a basis for further discussion, and are not intended to be and >>>>> do >>>>> not constitute a legally binding obligation. No legally binding >>>>> obligations will be created, implied, or inferred until an agreement in >>>>> final form is executed in writing by all parties involved. >>>>> >>>>> >>>>> もし、このメッセージが誤って貴殿に送信されたと思われる場合には、機密情報を含んでいる可能性もありますので、どなたにも転送せず、添付ファイルも含めて削除していただくとともに、発信者にその旨をお伝えいただきますようお願いいたします。 >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "blink-dev" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to blink-dev+unsubscr...@chromium.org. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA9vRHy7_o1ftcTz2-pC5rOPtZRhas5PGLw4HJ--v%2Bewkvcoww%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA9vRHy7_o1ftcTz2-pC5rOPtZRhas5PGLw4HJ--v%2Bewkvcoww%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> >>>> >>>> -- >>>> TAMURA Kent >>>> Software Engineer, Google >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "blink-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to blink-dev+unsubscr...@chromium.org. >>>> To view this discussion on the web visit >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGH7WqGfDVX7aWqdHt9skKSsnZcvvGHa9F6ZWshvGnVDJ24EAQ%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGH7WqGfDVX7aWqdHt9skKSsnZcvvGHa9F6ZWshvGnVDJ24EAQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "blink-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to blink-dev+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUr2bVZHm-GCy0Eh18rXY4HcZ0yv2EEsT_S1o7ORm%2BCtg%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfUr2bVZHm-GCy0Eh18rXY4HcZ0yv2EEsT_S1o7ORm%2BCtg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "blink-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to blink-dev+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e6aff414-3ed1-2714-7d59-7dcfb7582391%40gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e6aff414-3ed1-2714-7d59-7dcfb7582391%40gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >>> >> >> -- >> Takashi Toyoshima >> Software Engineer, Google >> > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWo1dYYKB-HfEi19BW0isGziXbd57GpMLp6pT9rPSH1rA%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfWo1dYYKB-HfEi19BW0isGziXbd57GpMLp6pT9rPSH1rA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHgVhZXbk5FxBFoDq-Fas6d-k35VF3meXcx54DnDNYNgjMj_fQ%40mail.gmail.com.