<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>163883</bug_id>
          
          <creation_ts>2016-10-24 02:37:34 -0700</creation_ts>
          <short_desc>generate-bindings-all.pl should regenerate a binding which is not to be supplemented</short_desc>
          <delta_ts>2016-10-27 02:51:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>164054</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>cdumez</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1243658</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-24 02:37:34 -0700</bug_when>
    <thetext>In Bug 117900 Comment 2, Chris Dumez wrote a interesting test case:

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

To support this case, generate-bindings-all.pl needs to read
supplemental_dependency.tmp before/after invoking preprocess-idls.pl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244046</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-24 19:14:34 -0700</bug_when>
    <thetext>There is another solution.

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

In DerivedSources/WebCore/JSDOMWindow.dep:

&gt; JSDOMWindow.h : EventTarget.idl
&gt; EventTarget.idl :

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

&gt; 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&apos;s example, modifying History.idl triggers
compiling DOMWindow.idl.

In above JSDOMWindow.dep example, if the
dependency (EventTarget.idl) is removed, &apos;make&apos; just ignore
because the second line exists.  This is not ideal. In this case,
the binding should be regenerated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244096</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-24 22:05:20 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; In above JSDOMWindow.dep example, if the
&gt; dependency (EventTarget.idl) is removed, &apos;make&apos; just ignore
&gt; because the second line exists.  This is not ideal. In this case,
&gt; the binding should be regenerated.

This is wrong. I didn&apos;t understand how &apos;make&apos; works in this case.
&apos;Make&apos; works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245073</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-27 02:51:50 -0700</bug_when>
    <thetext>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 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>