Thanks!! Were extensions affected by previous multi-page arch shipped
features, such as BFCache?
Is there a way for us to scan the various extension stores, look for
patterns that would be affected by this change and notify the extension's
authors ahead of time?

On Thu, Sep 1, 2022 at 4:23 PM Dave Tapuska <dtapu...@chromium.org> wrote:

> 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/CAL5BFfUHMGhLKbpe2AHgn12oNGOBNBAgYpWYL9_YtfeRJhNjFw%40mail.gmail.com.

Reply via email to