Diff
Modified: trunk/Source/WebCore/ChangeLog (149112 => 149113)
--- trunk/Source/WebCore/ChangeLog 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/ChangeLog 2013-04-25 15:55:12 UTC (rev 149113)
@@ -1,3 +1,53 @@
+2013-04-25 Christophe Dumez <[email protected]>
+
+ Add support for Web IDL callback interfaces to the bindings generator
+ https://bugs.webkit.org/show_bug.cgi?id=115179
+
+ Reviewed by Kentaro Hara.
+
+ Add support in the bindings generator for Web IDL callback interfaces:
+ http://dev.w3.org/2006/webapi/WebIDL/#dfn-callback-interface
+
+ Drop support for the WebKit-specific [Callback] extended attributes
+ on Web IDL interfaces and update existing IDL files to use proper
+ callback interfaces instead.
+
+ No new tests, no behavior change.
+
+ * Modules/filesystem/EntriesCallback.idl:
+ * Modules/filesystem/EntryCallback.idl:
+ * Modules/filesystem/ErrorCallback.idl:
+ * Modules/filesystem/FileCallback.idl:
+ * Modules/filesystem/FileSystemCallback.idl:
+ * Modules/filesystem/FileWriterCallback.idl:
+ * Modules/filesystem/MetadataCallback.idl:
+ * Modules/geolocation/PositionCallback.idl:
+ * Modules/geolocation/PositionErrorCallback.idl:
+ * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
+ * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
+ * Modules/mediastream/RTCErrorCallback.idl:
+ * Modules/mediastream/RTCSessionDescriptionCallback.idl:
+ * Modules/mediastream/RTCStatsCallback.idl:
+ * Modules/notifications/NotificationPermissionCallback.idl:
+ * Modules/quota/StorageErrorCallback.idl:
+ * Modules/quota/StorageQuotaCallback.idl:
+ * Modules/quota/StorageUsageCallback.idl:
+ * Modules/webaudio/AudioBufferCallback.idl:
+ * Modules/webdatabase/DatabaseCallback.idl:
+ * Modules/webdatabase/SQLStatementCallback.idl:
+ * Modules/webdatabase/SQLStatementErrorCallback.idl:
+ * Modules/webdatabase/SQLTransactionCallback.idl:
+ * Modules/webdatabase/SQLTransactionErrorCallback.idl:
+ * Modules/webdatabase/SQLTransactionSyncCallback.idl:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateInterface):
+ * bindings/scripts/IDLParser.pm:
+ (parseCallbackRestOrInterface):
+ * bindings/scripts/test/TestCallback.idl:
+ * dom/RequestAnimationFrameCallback.idl:
+ * dom/StringCallback.idl:
+ * html/VoidCallback.idl:
+
2013-04-25 Adrian Perez de Castro <[email protected]>
[GStreamer] Add audio/speex MIME type as supported
Modified: trunk/Source/WebCore/Modules/filesystem/EntriesCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/EntriesCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/EntriesCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface EntriesCallback {
+] callback interface EntriesCallback {
boolean handleEvent(in EntryArray entries);
};
Modified: trunk/Source/WebCore/Modules/filesystem/EntryCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/EntryCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/EntryCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface EntryCallback {
+] callback interface EntryCallback {
boolean handleEvent(in Entry entry);
};
Modified: trunk/Source/WebCore/Modules/filesystem/ErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/ErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/ErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface ErrorCallback {
+] callback interface ErrorCallback {
boolean handleEvent(in FileError error);
};
Modified: trunk/Source/WebCore/Modules/filesystem/FileCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/FileCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/FileCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface FileCallback {
+] callback interface FileCallback {
boolean handleEvent(in File file);
};
Modified: trunk/Source/WebCore/Modules/filesystem/FileSystemCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/FileSystemCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/FileSystemCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface FileSystemCallback {
+] callback interface FileSystemCallback {
boolean handleEvent(in DOMFileSystem fileSystem);
};
Modified: trunk/Source/WebCore/Modules/filesystem/FileWriterCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/FileWriterCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/FileWriterCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface FileWriterCallback {
+] callback interface FileWriterCallback {
boolean handleEvent(in FileWriter fileWriter);
};
Modified: trunk/Source/WebCore/Modules/filesystem/MetadataCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/filesystem/MetadataCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/filesystem/MetadataCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=FILE_SYSTEM,
- Callback
-] interface MetadataCallback {
+] callback interface MetadataCallback {
boolean handleEvent(in Metadata metadata);
};
Modified: trunk/Source/WebCore/Modules/geolocation/PositionCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/geolocation/PositionCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/geolocation/PositionCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -24,7 +24,6 @@
[
Conditional=GEOLOCATION,
- Callback
-] interface PositionCallback {
+] callback interface PositionCallback {
boolean handleEvent(in Geoposition position);
};
Modified: trunk/Source/WebCore/Modules/geolocation/PositionErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/geolocation/PositionErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/geolocation/PositionErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -24,7 +24,6 @@
[
Conditional=GEOLOCATION,
- Callback
-] interface PositionErrorCallback {
+] callback interface PositionErrorCallback {
boolean handleEvent(in PositionError error);
};
Modified: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -24,8 +24,7 @@
[
Conditional=MEDIA_STREAM,
- Callback
-] interface NavigatorUserMediaErrorCallback {
+] callback interface NavigatorUserMediaErrorCallback {
boolean handleEvent(in NavigatorUserMediaError error);
};
Modified: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -24,8 +24,7 @@
[
Conditional=MEDIA_STREAM,
- Callback
-] interface NavigatorUserMediaSuccessCallback {
+] callback interface NavigatorUserMediaSuccessCallback {
boolean handleEvent(in LocalMediaStream stream);
};
Modified: trunk/Source/WebCore/Modules/mediastream/RTCErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/mediastream/RTCErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/mediastream/RTCErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,8 +30,7 @@
[
Conditional=MEDIA_STREAM,
- Callback
-] interface RTCErrorCallback {
+] callback interface RTCErrorCallback {
boolean handleEvent(in DOMString errorInformation);
};
Modified: trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,8 +30,7 @@
[
Conditional=MEDIA_STREAM,
- Callback
-] interface RTCSessionDescriptionCallback {
+] callback interface RTCSessionDescriptionCallback {
boolean handleEvent(in RTCSessionDescription sdp);
};
Modified: trunk/Source/WebCore/Modules/mediastream/RTCStatsCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/mediastream/RTCStatsCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/mediastream/RTCStatsCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -24,8 +24,7 @@
[
Conditional=MEDIA_STREAM,
- Callback
-] interface RTCStatsCallback {
+] callback interface RTCStatsCallback {
boolean handleEvent(in RTCStatsResponse response);
};
Modified: trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/notifications/NotificationPermissionCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -25,8 +25,7 @@
[
Conditional=NOTIFICATIONS,
- Callback
-] interface NotificationPermissionCallback {
+] callback interface NotificationPermissionCallback {
boolean handleEvent(in DOMString permission);
};
Modified: trunk/Source/WebCore/Modules/quota/StorageErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/quota/StorageErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/quota/StorageErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=QUOTA,
- Callback
-] interface StorageErrorCallback {
+] callback interface StorageErrorCallback {
boolean handleEvent(in DOMCoreException error);
};
Modified: trunk/Source/WebCore/Modules/quota/StorageQuotaCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/quota/StorageQuotaCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/quota/StorageQuotaCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=QUOTA,
- Callback
-] interface StorageQuotaCallback {
+] callback interface StorageQuotaCallback {
boolean handleEvent(in unsigned long long grantedQuotaInBytes);
};
Modified: trunk/Source/WebCore/Modules/quota/StorageUsageCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/quota/StorageUsageCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/quota/StorageUsageCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=QUOTA,
- Callback
-] interface StorageUsageCallback {
+] callback interface StorageUsageCallback {
boolean handleEvent(in unsigned long long currentUsageInBytes, in unsigned long long currentQuotaInBytes);
};
Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webaudio/AudioBufferCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -25,7 +25,6 @@
[
Conditional=WEB_AUDIO,
JSGenerateToJSObject,
- Callback
-] interface AudioBufferCallback {
+] callback interface AudioBufferCallback {
boolean handleEvent(in AudioBuffer audioBuffer);
};
Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webdatabase/DatabaseCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -28,8 +28,7 @@
[
Conditional=SQL_DATABASE,
- Callback
-] interface DatabaseCallback {
+] callback interface DatabaseCallback {
boolean handleEvent(in Database database);
boolean handleEvent(in DatabaseSync database);
};
Modified: trunk/Source/WebCore/Modules/webdatabase/SQLStatementCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webdatabase/SQLStatementCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLStatementCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -28,7 +28,6 @@
[
Conditional=SQL_DATABASE,
- Callback
-] interface SQLStatementCallback {
+] callback interface SQLStatementCallback {
boolean handleEvent(in SQLTransaction transaction, in SQLResultSet resultSet);
};
Modified: trunk/Source/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -28,7 +28,6 @@
[
Conditional=SQL_DATABASE,
- Callback
-] interface SQLStatementErrorCallback {
+] callback interface SQLStatementErrorCallback {
[Custom] boolean handleEvent(in SQLTransaction transaction, in SQLError error);
};
Modified: trunk/Source/WebCore/Modules/webdatabase/SQLTransactionCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webdatabase/SQLTransactionCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLTransactionCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -28,7 +28,6 @@
[
Conditional=SQL_DATABASE,
- Callback
-] interface SQLTransactionCallback {
+] callback interface SQLTransactionCallback {
boolean handleEvent(in SQLTransaction transaction);
};
Modified: trunk/Source/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -28,7 +28,6 @@
[
Conditional=SQL_DATABASE,
- Callback
-] interface SQLTransactionErrorCallback {
+] callback interface SQLTransactionErrorCallback {
boolean handleEvent(in SQLError error);
};
Modified: trunk/Source/WebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -30,7 +30,6 @@
[
Conditional=SQL_DATABASE,
- Callback
-] interface SQLTransactionSyncCallback {
+] callback interface SQLTransactionSyncCallback {
boolean handleEvent(in SQLTransactionSync transaction);
};
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (149112 => 149113)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2013-04-25 15:55:12 UTC (rev 149113)
@@ -95,7 +95,7 @@
$codeGenerator->LinkOverloadedFunctions($interface);
# Start actual generation
- if ($interface->extendedAttributes->{"Callback"}) {
+ if ($interface->isCallback) {
$object->GenerateCallbackHeader($interface);
$object->GenerateCallbackImplementation($interface);
} else {
Modified: trunk/Source/WebCore/bindings/scripts/IDLParser.pm (149112 => 149113)
--- trunk/Source/WebCore/bindings/scripts/IDLParser.pm 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/bindings/scripts/IDLParser.pm 2013-04-25 15:55:12 UTC (rev 149113)
@@ -50,6 +50,7 @@
extendedAttributes => '$', # Extended attributes
constructors => '@', # Constructors, list of 'domFunction'
isException => '$', # Used for exception interfaces
+ isCallback => '$', # Used for callback interfaces
});
# Used to represent domInterface contents (name of method, signature)
@@ -474,7 +475,9 @@
my $next = $self->nextToken();
if ($next->value() eq "interface") {
- return $self->parseInterface($extendedAttributeList);
+ my $interface = $self->parseInterface($extendedAttributeList);
+ $interface->isCallback(1);
+ return $interface;
}
if ($next->type() == IdentifierToken) {
return $self->parseCallbackRest($extendedAttributeList);
Modified: trunk/Source/WebCore/bindings/scripts/test/TestCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/bindings/scripts/test/TestCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/bindings/scripts/test/TestCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -26,12 +26,11 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-// This IDL file is for testing the bindings code generator with an interface
-// that has the "Callback" attribute and for tracking changes in its ouput.
+// This IDL file is for testing the bindings code generator with a callback
+// interface and for tracking changes in its ouput.
[
Conditional=SQL_DATABASE,
- Callback
-] interface TestCallback {
+] callback interface TestCallback {
boolean callbackWithNoParam();
boolean callbackWithClass1Param(in Class1 class1Param);
boolean callbackWithClass2Param(in Class2 class2Param, in DOMString strArg);
Modified: trunk/Source/WebCore/dom/RequestAnimationFrameCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/dom/RequestAnimationFrameCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/dom/RequestAnimationFrameCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -29,9 +29,8 @@
*/
[
- Callback,
Conditional=REQUEST_ANIMATION_FRAME,
-] interface RequestAnimationFrameCallback{
+] callback interface RequestAnimationFrameCallback{
// highResTime is passed as high resolution timestamp, see
// http://www.w3.org/TR/hr-time/ for details.
[Custom] boolean handleEvent(in double highResTime);
Modified: trunk/Source/WebCore/dom/StringCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/dom/StringCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/dom/StringCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -28,8 +28,6 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-[
- Callback
-] interface StringCallback {
+callback interface StringCallback {
boolean handleEvent(in DOMString data);
};
Modified: trunk/Source/WebCore/html/VoidCallback.idl (149112 => 149113)
--- trunk/Source/WebCore/html/VoidCallback.idl 2013-04-25 15:17:57 UTC (rev 149112)
+++ trunk/Source/WebCore/html/VoidCallback.idl 2013-04-25 15:55:12 UTC (rev 149113)
@@ -23,8 +23,6 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-[
- Callback
-] interface VoidCallback {
+callback interface VoidCallback {
boolean handleEvent();
};