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.

Reply via email to