New issue
Advanced search Search tips

Issue 701496 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 674593


Show other hotlists

Hotlists containing this issue:
Non-Standard-IDL


Sign in to add a comment

Convert use of VoidCallback to what is used by the relevant specs

Project Member Reported by lunalu@chromium.org, Mar 14 2017

Issue description

This callback interface was added for HTMLMediaElement's addCuePoint() and removeCuePoint(), which briefly existed in 2007. It is no longer used in HTML and should be moved to where it is used.
 
Components: -Blink Blink>FileAPI Blink>DOM Blink>WebRTC
I checked it appears used in filesystem and webrtc it looks like. Not sure who wants to own it.

Comment 2 by foolip@chromium.org, Mar 20 2017

Components: -Blink>DOM Blink>Storage>WebSQL
Summary: Convert use of VoidCallback to what is used by the relevant specs (was: Move VoidCallback to where it is used )
https://w3c.github.io/webrtc-pc/#legacy-interface-extensions uses VoidFunction and https://www.w3.org/TR/webdatabase/#asynchronous-database-api has a SQLVoidCallback type.

https://w3c.github.io/filesystem-api/#directory-webidl has a promise-based API.

If there's no usage left in any spec, we should instead transition to other types. Renaming to reflect that.

Comment 3 by foolip@chromium.org, Mar 20 2017

Affected IDL files:
Source/modules/filesystem/DirectoryEntry.idl
Source/modules/filesystem/Entry.idl
Source/modules/peerconnection/RTCPeerConnection.idl
Source/modules/webdatabase/Database.idl

Comment 4 by guidou@chromium.org, Mar 20 2017

Components: -Blink>WebRTC Blink>WebRTC>PeerConnection

Comment 5 by jsb...@chromium.org, Mar 22 2017

https://w3c.github.io/filesystem-api/#directory-webidl is not implemented by anyone, let alone Chrome. The relevant snapshot of the earlier spec we implement in Chrome is:

https://dev.w3.org/2009/dap/file-system/file-dir-sys.html#the-voidcallback-interface

We can make up a FileSystemVoidCallback if we want.


Comment 6 by foolip@chromium.org, Mar 22 2017

https://heycam.github.io/webidl/#VoidFunction might be a suitable type for most or all of these cases.

Comment 7 by jsb...@chromium.org, Mar 23 2017

VoidFunction sgtm

(If anyone is depending on 'callback interface' behavior for these I'll eat my hat. Well, no, because it's a nice hat. I'll eat someone's hat.)

Comment 8 by foolip@chromium.org, Mar 28 2017

Funny enough, lots of things that look like callback interfaces don't actually have that behavior, only EventListener and NodeFilter do, see  issue 630986  and  issue 658073 . So the chance of hat for dinner is very, very low.

Comment 9 by jsb...@chromium.org, Mar 28 2017

And FYI, both the WebSQL and FileSystem ones were decorated with an obsolete extended attribute implying this behavior anyway: 

[Callback=FunctionOnly, NoInterfaceObject]
interface SQLVoidCallback {
  void handleEvent();
};

[Callback=FunctionOnly]
interface VoidCallback {
    void handleEvent ();
};


(in the spec I mean)

That's funny, I guess there was a time when callback functions didn't exist and that was the only way?
Status: Available (was: Untriaged)
Making this non-trivial in the WebSQL case: InspectorDatabaseAgent subclasses VoidCallback, overriding handleEvent(). We don't currently allow the a generated VoidFunction::call() to be overridden.
Project Member

Comment 14 by sheriffbot@chromium.org, May 21 2018

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
Components: Blink>Storage>FileAPI
Components: -Blink>FileAPI
Cc: pwnall@chromium.org
Status: Available (was: Untriaged)

Sign in to add a comment