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.