Skip to content
  • Gabriele Svelto's avatar
    Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan · bc9290f7
    Gabriele Svelto authored
    The inclusions were removed with the following very crude script and the
    resulting breakage was fixed up by hand. The manual fixups did either
    revert the changes done by the script, replace a generic header with a more
    specific one or replace a header with a forward declaration.
    
    find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
        interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
        if [ -n "$interfaces" ]; then
            if [[ "$interfaces" == *$'\n'* ]]; then
              regexp="\("
              for i in $interfaces; do regexp="$regexp$i\|"; done
              regexp="${regexp%%\\\|}\)"
            else
              regexp="$interfaces"
            fi
            interface=$(basename "$path")
            rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
                hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
                if [ $hits -eq 0 ]; then
                    echo "Removing ${interface} from ${path2}"
                    grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                    mv -f "$path2".tmp "$path2"
                fi
            done
        fi
    done
    
    Differential Revision: https://phabricator.services.mozilla.com/D55442
    
    --HG--
    extra : moz-landing-system : lando
    bc9290f7