Bug 163883 - generate-bindings-all.pl should regenerate a binding which is not to be supplemented
Summary: generate-bindings-all.pl should regenerate a binding which is not to be suppl...
Status: RESOLVED DUPLICATE of bug 164054
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-24 02:37 PDT by Fujii Hironori
Modified: 2016-10-27 02:51 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fujii Hironori 2016-10-24 02:37:34 PDT
In Bug 117900 Comment 2, Chris Dumez wrote a interesting test case:

> - Do a full build
> - Edit Source/WebCore/page/History.idl and add a [NoInterfaceObject] extended attribute to the IDL interface
> - Do an incremental build
> 
> What should happen is that:
> a) JSHistory.* are regenerated.
> b) JSDOMWindow.* should be regenerated so that the Window object no longer has a 'History' property.

To support this case, generate-bindings-all.pl needs to read
supplemental_dependency.tmp before/after invoking preprocess-idls.pl.
Comment 1 Fujii Hironori 2016-10-24 19:14:34 PDT
There is another solution.

IDL's dep file does not have the information about supplements at
the moment.  For example:

In DerivedSources/WebCore/JSDOMWindow.dep:

> JSDOMWindow.h : EventTarget.idl
> EventTarget.idl :

On the other handle, supplemental_dependency.tmp has following information:

> C:/home/0000134108/work/webkit/webkit1/Source/WebCore/page/DOMWindow.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/Modules/fetch/DOMWindowFetch.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/Modules/notifications/DOMWindowNotifications.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/dom/GlobalEventHandlers.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/page/GlobalCrypto.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/page/WindowEventHandlers.idl C:/home/0000134108/work/webkit/webkit1/Source/WebCore/page/WindowOrWorkerGlobalScope.idl C:/home/0000134108/work/webkit/webkit1/WebKitBuild/Debug/DerivedSources/WebCore/DOMWindowConstructors.idl

If dep files include information of supplements, this problem can
be solved. In comment 0's example, modifying History.idl triggers
compiling DOMWindow.idl.

In above JSDOMWindow.dep example, if the
dependency (EventTarget.idl) is removed, 'make' just ignore
because the second line exists.  This is not ideal. In this case,
the binding should be regenerated.
Comment 2 Fujii Hironori 2016-10-24 22:05:20 PDT
(In reply to comment #1)
> In above JSDOMWindow.dep example, if the
> dependency (EventTarget.idl) is removed, 'make' just ignore
> because the second line exists.  This is not ideal. In this case,
> the binding should be regenerated.

This is wrong. I didn't understand how 'make' works in this case.
'Make' works fine.
Comment 3 Fujii Hironori 2016-10-27 02:51:50 PDT
It turned out generate-bindings-all.pl has more problems.
This bug will be solved if I solve Bug 164054.
Closed as DUPLICATE.

*** This bug has been marked as a duplicate of bug 164054 ***