# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chrome_build.gni")
import("//third_party/WebKit/Source/bindings/bindings.gni")
import("//third_party/WebKit/Source/core/core_idl_files.gni")
import("//third_party/WebKit/Source/modules/modules_idl_files.gni")

bindings_modules_v8_output_dir = "$bindings_output_dir/modules/v8"

bindings_modules_generated_init_partial_interfaces_file =
    "$bindings_modules_v8_output_dir/initPartialInterfacesInModules.cpp"

# TODO(bashi): It would be better to have a way to update this list automatically.
bindings_modules_generated_union_type_files = [
  "$bindings_modules_v8_output_dir/ArrayBufferOrArrayBufferViewOrDictionary.cpp",
  "$bindings_modules_v8_output_dir/ArrayBufferOrArrayBufferViewOrDictionary.h",
  "$bindings_modules_v8_output_dir/ArrayBufferOrArrayBufferViewOrUSVString.cpp",
  "$bindings_modules_v8_output_dir/ArrayBufferOrArrayBufferViewOrUSVString.h",
  "$bindings_modules_v8_output_dir/ArrayBufferViewOrBlobOrStringOrFormData.cpp",
  "$bindings_modules_v8_output_dir/ArrayBufferViewOrBlobOrStringOrFormData.h",
  "$bindings_modules_v8_output_dir/AudioContextLatencyCategoryOrDouble.cpp",
  "$bindings_modules_v8_output_dir/AudioContextLatencyCategoryOrDouble.h",
  "$bindings_modules_v8_output_dir/BooleanOrConstrainBooleanParameters.cpp",
  "$bindings_modules_v8_output_dir/BooleanOrConstrainBooleanParameters.h",
  "$bindings_modules_v8_output_dir/BooleanOrMediaTrackConstraints.cpp",
  "$bindings_modules_v8_output_dir/BooleanOrMediaTrackConstraints.h",
  "$bindings_modules_v8_output_dir/ByteStringSequenceSequenceOrByteStringByteStringRecord.cpp",
  "$bindings_modules_v8_output_dir/ByteStringSequenceSequenceOrByteStringByteStringRecord.h",
  "$bindings_modules_v8_output_dir/CanvasImageSource.cpp",
  "$bindings_modules_v8_output_dir/CanvasImageSource.h",
  "$bindings_modules_v8_output_dir/ClientOrServiceWorkerOrMessagePort.cpp",
  "$bindings_modules_v8_output_dir/ClientOrServiceWorkerOrMessagePort.h",
  "$bindings_modules_v8_output_dir/DecodeErrorCallback.cpp",
  "$bindings_modules_v8_output_dir/DecodeErrorCallback.h",
  "$bindings_modules_v8_output_dir/DecodeSuccessCallback.cpp",
  "$bindings_modules_v8_output_dir/DecodeSuccessCallback.h",
  "$bindings_modules_v8_output_dir/DictionaryOrString.cpp",
  "$bindings_modules_v8_output_dir/DictionaryOrString.h",
  "$bindings_modules_v8_output_dir/DoubleOrConstrainDoubleRange.cpp",
  "$bindings_modules_v8_output_dir/DoubleOrConstrainDoubleRange.h",
  "$bindings_modules_v8_output_dir/Float32ArrayOrFloat64ArrayOrDOMMatrix.cpp",
  "$bindings_modules_v8_output_dir/Float32ArrayOrFloat64ArrayOrDOMMatrix.h",
  "$bindings_modules_v8_output_dir/FormDataOrURLSearchParams.cpp",
  "$bindings_modules_v8_output_dir/FormDataOrURLSearchParams.h",
  "$bindings_modules_v8_output_dir/HTMLCanvasElementOrOffscreenCanvas.cpp",
  "$bindings_modules_v8_output_dir/HTMLCanvasElementOrOffscreenCanvas.h",
  "$bindings_modules_v8_output_dir/LongOrConstrainLongRange.cpp",
  "$bindings_modules_v8_output_dir/LongOrConstrainLongRange.h",
  "$bindings_modules_v8_output_dir/OffscreenRenderingContext.cpp",
  "$bindings_modules_v8_output_dir/OffscreenRenderingContext.h",
  "$bindings_modules_v8_output_dir/PasswordCredentialDataOrHTMLFormElement.cpp",
  "$bindings_modules_v8_output_dir/PasswordCredentialDataOrHTMLFormElement.h",
  "$bindings_modules_v8_output_dir/Point2DSequenceOrConstrainPoint2DParameters.cpp",
  "$bindings_modules_v8_output_dir/Point2DSequenceOrConstrainPoint2DParameters.h",
  "$bindings_modules_v8_output_dir/RTCIceCandidateInitOrRTCIceCandidate.cpp",
  "$bindings_modules_v8_output_dir/RTCIceCandidateInitOrRTCIceCandidate.h",
  "$bindings_modules_v8_output_dir/RenderingContext.cpp",
  "$bindings_modules_v8_output_dir/RenderingContext.h",
  "$bindings_modules_v8_output_dir/RequestOrUSVString.cpp",
  "$bindings_modules_v8_output_dir/RequestOrUSVString.h",
  "$bindings_modules_v8_output_dir/RequestOrUSVStringOrRequestOrUSVStringSequence.cpp",
  "$bindings_modules_v8_output_dir/RequestOrUSVStringOrRequestOrUSVStringSequence.h",
  "$bindings_modules_v8_output_dir/StringOrArrayBufferOrNFCMessage.cpp",
  "$bindings_modules_v8_output_dir/StringOrArrayBufferOrNFCMessage.h",
  "$bindings_modules_v8_output_dir/StringOrCanvasGradientOrCanvasPattern.cpp",
  "$bindings_modules_v8_output_dir/StringOrCanvasGradientOrCanvasPattern.h",
  "$bindings_modules_v8_output_dir/StringOrStringSequence.cpp",
  "$bindings_modules_v8_output_dir/StringOrStringSequence.h",
  "$bindings_modules_v8_output_dir/StringOrStringSequenceOrConstrainDOMStringParameters.cpp",
  "$bindings_modules_v8_output_dir/StringOrStringSequenceOrConstrainDOMStringParameters.h",
  "$bindings_modules_v8_output_dir/StringOrUnsignedLong.cpp",
  "$bindings_modules_v8_output_dir/StringOrUnsignedLong.h",
  "$bindings_modules_v8_output_dir/UnsignedLongOrUnsignedLongSequence.cpp",
  "$bindings_modules_v8_output_dir/UnsignedLongOrUnsignedLongSequence.h",
]

generated_modules_callback_function_files = [
  "$bindings_modules_v8_output_dir/DatabaseCallback.cpp",
  "$bindings_modules_v8_output_dir/DatabaseCallback.h",
  "$bindings_modules_v8_output_dir/IDBObserverCallback.cpp",
  "$bindings_modules_v8_output_dir/IDBObserverCallback.h",
  "$bindings_modules_v8_output_dir/MediaSessionActionHandler.cpp",
  "$bindings_modules_v8_output_dir/MediaSessionActionHandler.h",
  "$bindings_modules_v8_output_dir/RemotePlaybackAvailabilityCallback.cpp",
  "$bindings_modules_v8_output_dir/RemotePlaybackAvailabilityCallback.h",
]
