New issue
Advanced search Search tips

Issue 683743 link

Starred by 0 users

Issue metadata

Status: Archived
Owner: ----
Closed: Aug 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocking:
issue 654129



Sign in to add a comment

[Blink API]: Support generation from EventTarget.idl

Project Member Reported by dglazkov@chromium.org, Jan 22 2017

Issue description

Needs support for:
* methods
* Optional types
* nullable types
* callback interface (EventListener)
* union types (AddEventListenerOptions or boolean)
* dictionaries (AddEventListenerOptions + EventListenerOptions)
 
Labels: -Type-Bug Type-Feature
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 12 2017

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

commit feab6985ba849044d3acc1d6fa7d5904c6db3f8a
Author: dglazkov <dglazkov@chromium.org>
Date: Sun Feb 12 02:19:09 2017

[Web Agents API]: Start fleshing out generated code.

A whole bunch of small tweaks:
* Started using proper paths in includes.
* Added constructor/factory methods.
* Modified the handling of inheritance to fit reality.
* Made all paths and macro guards ready to build.

This almost compiles into something :)

R=bashi,yuki,haraken
BUG= 683743 

Review-Url: https://codereview.chromium.org/2688933003
Cr-Commit-Position: refs/heads/master@{#449882}

[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/DEPS
[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/scripts/code_generator_web_module.py
[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/scripts/code_generator_web_module_test.py
[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/templates/web_module_interface.cc.tmpl
[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/templates/web_module_interface.h.tmpl
[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/tests/results/core/test_interface_3.cc
[modify] https://crrev.com/feab6985ba849044d3acc1d6fa7d5904c6db3f8a/third_party/WebKit/Source/bindings/tests/results/core/test_interface_3.h

Project Member

Comment 3 by bugdroid1@chromium.org, Feb 24 2017

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

commit dded9758efbb26c683ca211a4e74b1b085537fc1
Author: dglazkov <dglazkov@chromium.org>
Date: Fri Feb 24 05:21:46 2017

[WebAgentsAPI]: Split overload set functions into their own module.

This is a part of adapting common overload set resolution
for both JS and C++ bindings.

BUG= 683743 
R=bashi,yuki,haraken

Review-Url: https://codereview.chromium.org/2712913002
Cr-Commit-Position: refs/heads/master@{#452759}

[add] https://crrev.com/dded9758efbb26c683ca211a4e74b1b085537fc1/third_party/WebKit/Source/bindings/scripts/overload_set_algorithm.py
[modify] https://crrev.com/dded9758efbb26c683ca211a4e74b1b085537fc1/third_party/WebKit/Source/bindings/scripts/v8_interface.py

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 3 2017

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

commit 321806ab7acbd5756ed30659d0b916a7af54f13a
Author: dglazkov <dglazkov@chromium.org>
Date: Fri Mar 03 15:07:10 2017

[WebAgentsAPI]: Fix the spurios file mis-name.

I accidentally named the test file incorrectly. Whoopsie.

BUG= 683743 
R=yukishiino@chromium.org,bashi,haraken

Review-Url: https://codereview.chromium.org/2729493005
Cr-Commit-Position: refs/heads/master@{#454582}

[rename] https://crrev.com/321806ab7acbd5756ed30659d0b916a7af54f13a/third_party/WebKit/Source/bindings/scripts/code_generator_web_agent_api_test.py

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 3 2017

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

commit 6d2b4f8955d1733666dfc7a0d0309b65566fa20d
Author: dglazkov <dglazkov@chromium.org>
Date: Fri Mar 03 15:09:42 2017

[WebAgentsAPI]: Introduce OverloadSetAdapter.

Currently, effective_overload_set takes a list of Jinja2 method
contexts. This is fairly easy to replicate in Web Agent API
generator, but I would prefer to rely on idl_definition types
(that is, taking a list of IdlOperations as arguments).

I tried a couple of ways to refactor effective_overload_set to
use them directly, but all of them were rather expensive, so
I settled on a simple adapter pattern.

BUG= 683743 
R=bashi,yukishiino,haraken

Review-Url: https://codereview.chromium.org/2731683002
Cr-Commit-Position: refs/heads/master@{#454584}

[modify] https://crrev.com/6d2b4f8955d1733666dfc7a0d0309b65566fa20d/third_party/WebKit/Source/bindings/scripts/overload_set_algorithm.py
[add] https://crrev.com/6d2b4f8955d1733666dfc7a0d0309b65566fa20d/third_party/WebKit/Source/bindings/scripts/overload_set_algorithm_test.py

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 19 2017

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

commit 8ad9fcbb9107bf9c945c8eaa6a0124124a4956f7
Author: dglazkov <dglazkov@chromium.org>
Date: Sun Mar 19 17:12:27 2017

Remove OverloadSetAdapter.

Despite potential promise of code reuse, the effective overload
set algorithm isn't useful for C++-based bindings: the primary
purpose of the algorithm is to build a set that is later used
by the overload resolution algorithm:
https://heycam.github.io/webidl/#dfn-overload-resolution-algorithm

The purpose of this algorithm is to identify the overloaded
operation based on the arguments given. In case of C++,
the compiler does the work of identification and the task is
diminished to generating sufficient number of overloads
to express the intent in WebIDL.

That work is something that is more efficiently done with a
different algorithm.

Also added another unit test based on the spec example.

R=bashi@chromium.org,yukishiino@chromium.org
BUG= 683743 

Review-Url: https://codereview.chromium.org/2756993003
Cr-Commit-Position: refs/heads/master@{#457997}

[modify] https://crrev.com/8ad9fcbb9107bf9c945c8eaa6a0124124a4956f7/third_party/WebKit/Source/bindings/scripts/overload_set_algorithm.py
[modify] https://crrev.com/8ad9fcbb9107bf9c945c8eaa6a0124124a4956f7/third_party/WebKit/Source/bindings/scripts/overload_set_algorithm_test.py

Project Member

Comment 7 by bugdroid1@chromium.org, Mar 20 2017

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

commit 912f7ad6383cc7aa987c66cee8bb23c75c45685c
Author: dglazkov <dglazkov@chromium.org>
Date: Mon Mar 20 14:26:12 2017

[WebAgentsAPI]: Start adding support for method arguments.

To make the C++ API more natural/elegant to use,
I decided to rely on method overloads to handle
union and optional types, thus generating more than
one C++ function for each IDL operation.

Includes:
* Basic handling of optional and union types in arguments.
* Plumbing for template contexts to include arguments.
* Minor reshufflings of related code.

BUG= 683743 
R=bashi,yuki,haraken

Review-Url: https://codereview.chromium.org/2703653004
Cr-Commit-Position: refs/heads/master@{#458057}

[modify] https://crrev.com/912f7ad6383cc7aa987c66cee8bb23c75c45685c/third_party/WebKit/Source/bindings/scripts/code_generator_web_agent_api.py
[modify] https://crrev.com/912f7ad6383cc7aa987c66cee8bb23c75c45685c/third_party/WebKit/Source/bindings/scripts/code_generator_web_agent_api_test.py
[modify] https://crrev.com/912f7ad6383cc7aa987c66cee8bb23c75c45685c/third_party/WebKit/Source/bindings/templates/web_agent_api_interface.cc.tmpl
[modify] https://crrev.com/912f7ad6383cc7aa987c66cee8bb23c75c45685c/third_party/WebKit/Source/bindings/tests/results/core/test_interface_3.cc

Cc: slangley@chromium.org
Owner: ----
Status: Available (was: Assigned)
slangley@, these are the bugs I owned around Web Agents. Please triage/close as you see fit.
Cc: joelhockey@chromium.org
Project Member

Comment 11 by sheriffbot@chromium.org, Aug 15

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Archived (was: Untriaged)
Feel free to reopen and/or triage this issue.
It seems to me that no one is actively working on this and the requested feature may be no longer needed.

Sign in to add a comment