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.

Reply via email to