New issue
Advanced search Search tips

Issue 914703 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 14
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

[OriginTrialEnabled] does not work for [NoInterfaceObject]

Project Member Reported by peria@chromium.org, Dec 13

Issue description

We use [NoInterfaceObject] for
1. interfaces that are not exposed to global objects, and
2. interface mixins to be implemented in other interfaces

However, generate_origin_trial_featuers.py assumes [NoInterfaceObject] are all for (2)
https://cs.chromium.org/chromium/src/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py?l=99-103
and hence we can't use [OriginTrialEnabled] for cases of (1).

Here is an example for the case.
https://chromium-review.googlesource.com/c/chromium/src/+/1373752/7/third_party/blink/renderer/core/timing/memory_info.idl
 
A root cause of this issue is that we have no way to distinguish (1) and (2) within an IDL file.


Here are some random ideas to fix;
- introduce a white list not to check [NoInterfaceObject]
- support "interface mixin" for (2)
- check if the interface is a target of "implements" in other IDL files
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8abbe3239992a883f6f6492127badb81325751ed

commit 8abbe3239992a883f6f6492127badb81325751ed
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Dec 13 14:51:18 2018

GN: Drop webgl2_compute_rendering_context_base.idl

If we support WebGL2ComputeContext, we have a dependency
 WebGL2ComputeRenderingContext --(implements)-->
 WebGL2ComputeRenderingContextBase --(implements)-->
 WebGL{,2}RenderingContextBase
but otherwise, we don't have this dependency, because
we do not use WebGL2ComputeRenderingContext, and
hence we don't need WebGL2ComputeRenderingContextBase either.

This CL drops the idl file for WebGL2ComputeRendringContextBase
if we don't support it.


Bug:  914703 
Change-Id: I5210ba25a296f3bc4c07a57cc22c9d801b2bc55b
Reviewed-on: https://chromium-review.googlesource.com/c/1375181
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616312}
[modify] https://crrev.com/8abbe3239992a883f6f6492127badb81325751ed/third_party/blink/renderer/modules/modules_idl_files.gni

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66d7e09d847718affbabe67015f07ab5776b9cef

commit 66d7e09d847718affbabe67015f07ab5776b9cef
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Thu Dec 13 16:49:22 2018

OriginTrial: Check if interfaces are implemented by others

We use [NoInterfaceObject] for interfaces implemented by others,
but also for interfaces hidden from global objects.

In generating origin trials code, we skip all [NoInterfaceObject]
interfaces regardless they are implemented by others or not.
Thus if we have [OriginTrialEnabled] with [NoInterfaceObject],
we did not generate code of origin trials for the interface.

This CL checks if each interface is implemented, and try to
generate origin trials code if it is not implemented.


Bug:  914703 
Change-Id: Ide7b9872b3bfb76eb28977413b2a08ff8d14c792
Reviewed-on: https://chromium-review.googlesource.com/c/1375196
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616333}
[modify] https://crrev.com/66d7e09d847718affbabe67015f07ab5776b9cef/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py

Status: Fixed (was: Assigned)

Sign in to add a comment