LGTM3 On Wed, Sep 11, 2024 at 6:02 PM Vladimir Levin <vmp...@chromium.org> wrote:
> LGTM2 > > On Wed, Sep 11, 2024 at 12:00 PM Alex Russell <slightly...@chromium.org> > wrote: > >> LGTM1 >> >> On Tuesday, September 10, 2024 at 3:36:50 PM UTC-7 Reilly Grant wrote: >> >>> LGTM as an IWA OWNER (3x LGTM from Blink API OWNERS are still required >>> according to the IWA-specific API launch process >>> <https://www.chromium.org/blink/launching-features/isolated-web-apps/>). >>> >>> This feature has been an interesting case study for when to restrict a >>> capability to IWAs because the two underlying components of it, capturing a >>> screen and enterprise policies to control a permission, exist in other >>> features without requiring such drastic security measures. In >>> consultation with the Security reviewers however we found that the >>> combination of a requirement to capture all screens (which is more >>> dangerous than normal screen capture because it doesn't allow the user to >>> differentiate between shared and unshared content) and an administrator >>> control (which removes user agency to decide whether their screen is >>> displaying sensitive information) makes this feature a particularly >>> attractive target for an attacker and necessitates the code integrity >>> protections provided by Isolated Web Apps. >>> Reilly Grant | Software Engineer | reil...@chromium.org | Google Chrome >>> <https://www.google.com/chrome> >>> >>> >>> On Tue, Sep 10, 2024 at 7:39 AM 'Simon Hangl' via blink-dev < >>> blink-dev@chromium.org> wrote: >>> >>>> Contact emails >>>> >>>> simo...@google.com, swethasiva...@google.com >>>> >>>> Explainer >>>> >>>> https://github.com/screen-share/capture-all-screens/blob/main/README.md >>>> >>>> Specification >>>> >>>> https://screen-share.github.io/capture-all-screens >>>> >>>> Design docs >>>> >>>> https://screen-share.github.io/capture-all-screens >>>> >>>> https://github.com/screen-share/capture-all-screens/blob/main/README.md >>>> >>>> >>>> https://docs.google.com/document/d/1XB8rQRnY5N8G2PeEcNJpVO0q22CutvwW8GGKCZ1z_vc/edit?usp=sharing >>>> >>>> Summary >>>> >>>> Capture all the screens currently connected to the device using >>>> getAllScreensMedia(). >>>> >>>> Calling getDisplayMedia() multiple times requires multiple user >>>> gestures, with the user manually selecting the next screen each time, and >>>> without a guarantee to the app that all screens were selected. >>>> getAllScreensMedia() improves on all of these fronts. >>>> >>>> (As this feature has extreme privacy ramifications, it is only exposed >>>> behind an enterprise policy, and users are warned before recording even >>>> starts, that recording *could* start at some point.) >>>> >>>> >>>> Blink component >>>> >>>> Blink>Media>GetAllScreensMedia >>>> <https://g-issues.chromium.org/components/1637013> >>>> >>>> TAG review >>>> >>>> https://github.com/w3ctag/design-reviews/issues/856 >>>> >>>> TAG review status >>>> >>>> TAG has expressed concerns about exposing such a powerful capability on >>>> the web. We mitigate their concerns by moving the API to Isolated Web Apps >>>> and only exposing it to apps that are explicitly allowlisted by the device >>>> owner. >>>> >>>> Chromium Trial Name >>>> >>>> GetAllScreensMedia >>>> >>>> Link to origin trial feedback summary >>>> >>>> https://github.com/screen-share/capture-all-screens/issues >>>> >>>> Origin Trial documentation link >>>> >>>> https://github.com/screen-share/capture-all-screens >>>> >>>> Risks >>>> >>>> Interoperability and Compatibility >>>> >>>> This API is only available to origins allowlisted by administrators >>>> through a policy. The policy itself is non-standard, limiting even >>>> theoretical interoperability. This API rejects requests from pages that are >>>> not allowlisted by an administrator. The likelihood of this API being >>>> adopted by a browser that does not provide administrators mechanisms to >>>> manage clients is low. >>>> >>>> >>>> Gecko: N/A - given that the API is limited to managed configurations, >>>> it's not clear that requesting a position is needed >>>> >>>> WebKit: N/A - given that the API is limited to managed configurations, >>>> it's not clear that requesting a position is needed >>>> >>>> Web developers: Positive ( >>>> https://github.com/screen-share/capture-all-screens/issues/9) >>>> >>>> Other signals: >>>> >>>> Ergonomics >>>> >>>> No >>>> >>>> >>>> Activation >>>> >>>> The challenge for developers is the limitation of the API to origins >>>> allowlisted by an enterprise policy. >>>> >>>> >>>> Security >>>> >>>> 1. >>>> >>>> Risk of malicious sites exploiting the API and gaining access to >>>> sensitive information on users' devices. This risk is mitigated by the >>>> API >>>> only being accessible to origins allowlisted by an enterprise policy. >>>> 2. >>>> >>>> Risk of an allowlisted site being compromised to gain access to >>>> sensitive information on users’ devices. This risk is mitigated by the >>>> API >>>> only being accessible to Isolated Web Apps. >>>> 3. >>>> >>>> Risk of users loading private information that gets recorded and >>>> made available to apps affiliated with their device's admin. This risk >>>> is >>>> mitigated by informing users that recording might start at any moment >>>> before the API becomes accessible. (In CrOS, this warning is delivered >>>> in >>>> the log-in screen, and when users log-in despite the warning, this is >>>> tantamount to assent.) >>>> 4. >>>> >>>> Risk of users forgetting that their screens are being recorded. >>>> This risk is mitigated through a persistent notification. >>>> >>>> >>>> >>>> WebView application risks >>>> >>>> N/A (No change in behavior for existing APIs). >>>> >>>> >>>> Debuggability >>>> >>>> Will this feature be supported on all six Blink platforms (Windows, >>>> Mac, Linux, ChromeOS, Android, and Android WebView)? >>>> >>>> No >>>> >>>> This API is initially implemented on CrOS, where demand for it is >>>> greatest, and where we have the most flexibility in offering users early >>>> warning that their screens may be recorded if they proceed past the log-in >>>> screen. Lessons learned from shipping this API on CrOS will be used when >>>> deciding how to correctly implement such warnings on other platforms. >>>> >>>> >>>> Is this feature fully tested by web-platform-tests >>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>> ? >>>> >>>> No, as WPTs don’t support setting of managed policies. The API is >>>> tested by a number of unit- and browser- tests (Test files >>>> <https://source.chromium.org/search?q=getallscreensmedia%20f:test.cc%20-f:out%2F&sq=> >>>> ). >>>> >>>> >>>> DevTrial instructions >>>> >>>> https://github.com/screen-share/capture-all-screens/blob/main/HOWTO.md >>>> >>>> Flag name on chrome://flags >>>> >>>> chrome://flags#enable-get-all-screens-media >>>> >>>> Finch feature name >>>> >>>> GetAllScreensMedia >>>> >>>> Non-finch justification >>>> >>>> This feature is only available through active enabling by admin policy >>>> and can be disabled the same way at any time. >>>> >>>> Requires code in //chrome? >>>> >>>> True >>>> >>>> Tracking bug >>>> >>>> https://issues.chromium.org/issues/40216442 >>>> >>>> Launch bug >>>> >>>> https://launch.corp.google.com/launch/4276771 >>>> >>>> Measurement >>>> >>>> As this is a managed feature, monthly active users can be measured and >>>> are displayed at go/contact-center-dashboard >>>> <https://goto.google.com/contact-center-dashboard> (Googlers only). >>>> >>>> Availability expectation >>>> >>>> Feature is available only on ChromeOS for the foreseeable future. >>>> >>>> Adoption expectation >>>> >>>> We anticipate this feature being used by partners in the contact center >>>> space (or other areas that have to comply with regulation or established >>>> usage patterns that require screen capture). >>>> >>>> Adoption plan >>>> >>>> There is already a significant number of developers that are working on >>>> integrating this feature in their products (beyond the developers that >>>> expressed public interest here >>>> <https://github.com/screen-share/capture-all-screens/issues/9>). >>>> >>>> Non-OSS dependencies >>>> >>>> At this time, this feature is only enabled through the Chrome admin >>>> panel <https://admin.google.com/>. >>>> >>>> Sample links >>>> >>>> https://github.com/screen-share/capture-all-screens/blob/main/HOWTO.md >>>> >>>> https://github.com/screen-share/capture-all-screens/blob/main/README.md >>>> >>>> Estimated milestones >>>> >>>> Shipping on desktop >>>> >>>> 137 >>>> >>>> Origin trial desktop first >>>> >>>> 118 >>>> >>>> Origin trial desktop last >>>> >>>> 128 >>>> >>>> Origin trial extension 1 end milestone >>>> >>>> 131 >>>> >>>> DevTrial on desktop >>>> >>>> 116 >>>> >>>> Note there is a gap between the end of the origin trial (M131) and the >>>> launch of this API (M137). Developers are currently using this API in PWAs >>>> via OT and we agreed with Blink owners (assuming substantial progress on >>>> the launch of this API in Isolated Web Apps) to extend the OT until >>>> (including) M136 to enable developers to move from PWAs to IWAs. Please >>>> refer to this thread >>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/HErdlr3e_V0/m/WAey1zq5AAAJ> >>>> for further information. >>>> >>>> Anticipated spec changes >>>> >>>> No open issues and no anticipated changes. >>>> >>>> Link to entry on the Chrome Platform Status >>>> >>>> https://chromestatus.com/feature/6284029979525120?gate=5610053803966464 >>>> >>>> Links to previous Intent discussions >>>> >>>> Intent to Prototype: >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEdDZo9N354i6eST0x19TXwpeBtgs5_gJUYVF%2BTKLpiJySDADg%40mail.gmail.com >>>> >>>> Intent to Experiment: >>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/6TRT0XsVOE4/m/NOm-YEQCAgAJ >>>> Intent to Extend Experiment 1: >>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/HErdlr3e_V0 >>>> >>>> >>>> -- >>>> 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/CAP0TkgEM43oxOSdADK5upZauT9HgGnse4AfS5r403kKs9uoi8Q%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAP0TkgEM43oxOSdADK5upZauT9HgGnse4AfS5r403kKs9uoi8Q%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/aecf44e6-c464-4cc9-bb8d-07b284ad2f61n%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/aecf44e6-c464-4cc9-bb8d-07b284ad2f61n%40chromium.org?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/CADsXd2NVJ469vLsTo1tmjtAM%2Bnu5mnELkkCeo7gFdHpSviLoBA%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NVJ469vLsTo1tmjtAM%2Bnu5mnELkkCeo7gFdHpSviLoBA%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/CAOmohSKMUKUd%3D3Q0%3DxnWgcw3CdT%2BUjmUO5%3DLNq2eLX-xFMzmRg%40mail.gmail.com.