Bug 163883
| Summary: | generate-bindings-all.pl should regenerate a binding which is not to be supplemented | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Fujii Hironori <fujii.hironori> |
| Component: | Tools / Tests | Assignee: | Fujii Hironori <fujii.hironori> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Normal | CC: | cdumez, lforschler |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Fujii Hironori
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.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Fujii Hironori
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.
Fujii Hironori
(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.
Fujii Hironori
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 ***