I did a quick GitHub search and quickly found this
<https://github.com/xuehuibo/MobileQueryPlatform/blob/master/MobileQueryPlatform/MobileQueryPlatform/Views/Home/ReportMenu.cshtml>:
:-(

  if (window.Report == undefined) {
        Tools.Namespace.register("window.Report");
    }

And then a bunch of downstream code expecting to build stuff up on
window.Report. I didn't try to find out where or how much this is used, but
it's certainly not promising.

Where is this decision to expose all interface objects by default coming
from? Are we sure it's the right thing for the web when the global
namespace is shared between the platform and application code?

Sorry Ian, I know I said I thought this should be a simple one :-). If we
have data that it looks very rare, then I'm still happy to approve. I'm
just wondering now about the bigger picture of this class of changes.

Rick

On Wed, Nov 23, 2022 at 9:52 AM Yoav Weiss <[email protected]> wrote:

> As this is not actually a feature, but a spec alignment effort, I think it
> makes sense to skip TAG reviews and vendor positions for this.
>
> I'm slightly concerned about `Report` collisions. Would you be able to run
> a quick HTTPArchive scan for "window.Report" and "self.Report" and see what
> that gives? ("var Report" would just unconditionally override it, so that's
> not an issue)
>
> On Wed, Nov 23, 2022 at 2:55 PM Ian Clelland <[email protected]>
> wrote:
>
>> Contact [email protected]
>>
>> Specificationhttps://w3c.github.io/reporting/#idl-index
>>
>> Summary
>>
>> Several interface objects used by the Reporting API were originally not
>> exposed as symbols on the JavaScript global object. This includes Report,
>> ReportBody, and the various specific report body types such as
>> CSPViolationReportBody and DeprecationReportBody. This change exposes those
>> objects on the window (or worker global), bringing the implementation in
>> line with the specification.
>>
>>
>> Blink componentBlink>ReportingObserver
>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EReportingObserver>
>>
>> TAG review
>>
>> TAG review statusNot applicable
>>
>> Risks
>>
>>
>> Interoperability and Compatibility
>>
>> The main risk here is that the newly-exposed symbols will collide with
>> symbols defined in existing scripts. Most of the names are quite specific,
>> but "Report" and "ReportBody" may have some existing use. However, this is
>> unlikely to be a problem in practice, as most code which uses these names
>> for its own variables will also continue to work; redefining them in a
>> local script should not have any effect on either the script or the
>> Reporting API. One possibility for breakage would be a script that defines,
>> say, a "Report" object, (unrelated to the Reporting API,) but does so only
>> if it did not previously exist. In that case, the hypothetical script would
>> *not* define its own Report, and would presumably attempt to use the
>> newly-exposed interface object. In order for this to be a real issue, a
>> script would have to: 1. Use one of these symbol names, down to
>> capitalization. I suspect that "Report" is the most probable, with the
>> various ReportBody types being far less likely candidates for collision 2.
>> Specifically guard against re-defining the symbol, even though it's not
>> currently platform-exposed anywhere. This would likely only occur if some
>> initialization code was expected to be run multiple times blindly. (Blink's
>> web test result page, for instance, uses "Report" as an object name, but
>> defines it unconditionally, so it will simply shadow the interface object.)
>>
>>
>> *Gecko*: No signal
>>
>> *WebKit*: No signal
>>
>> *Web developers*: No signals
>>
>> *Other signals*:
>>
>> Ergonomics
>>
>> None
>>
>>
>> Activation
>>
>> None
>>
>>
>> Security
>>
>> None
>>
>>
>> WebView application risks
>>
>> Does this intent deprecate or change behavior of existing APIs, such that
>> it has potentially high risk for Android WebView-based applications?
>>
>>
>>
>> Debuggability
>>
>>
>>
>> Will this feature be supported on all six Blink platforms (Windows, Mac,
>> Linux, Chrome OS, Android, and Android WebView)?Yes
>>
>> This is a change to the IDL for these interfaces, and is automatically
>> supported by all Blink platforms.
>>
>>
>> Is this feature fully tested by web-platform-tests
>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>> ?Yes
>>
>> Flag name
>>
>> Requires code in //chrome?False
>>
>> Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1122656
>>
>> Estimated milestones
>>
>> M110
>>
>> Anticipated spec changes
>>
>> Open questions about a feature may be a source of future web compat or
>> interop issues. Please list open issues (e.g. links to known github issues
>> in the project for the feature specification) whose resolution may
>> introduce web compat/interop risk (e.g., changing to naming or structure of
>> the API in a non-backward-compatible way).
>>
>>
>> Link to entry on the Chrome Platform Status
>> https://chromestatus.com/feature/5977883141472256
>>
>> This intent message was generated by Chrome Platform Status
>> <https://chromestatus.com/>.
>>
>> --
>> 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 [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK_TSXKUf6wAHB-3EdgP04%2Bcmhgis3j3M54B%3DASXGtHVJcenDQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK_TSXKUf6wAHB-3EdgP04%2Bcmhgis3j3M54B%3DASXGtHVJcenDQ%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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfV3b3BnY26B6tuGtFFYRm-K5P0U6b5_giLgB1h6PeK7ag%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfV3b3BnY26B6tuGtFFYRm-K5P0U6b5_giLgB1h6PeK7ag%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY-TmHFJ31cMxtW8qz-K8gVtAj9RXX0BYbsLqPvUZZqm6w%40mail.gmail.com.

Reply via email to