gecko-dev/tools/lint/license.yml
Ben Dean-Kawamura 1cf71b7095 Bug 1766045 - Initial work for UniFFI JS bindings r=nika
Generate the C++ and JS code to handle UniFFI bindings.  The WebIDL code
is completely static and doesn't need to be generated.

There's support for both synchronus and async functions, but we haven't
decided the how we want this to be configured.  In practice, almost all
functions will need to be async, so for now we're just forcing all
functions to be.

The `uniffi-bindgen-gecko-js` crate builds the binary that generates the
bindings.  This binary needs to be fed a list of UDL files, the path of
the .cpp file to generate, and the directory to generate .jsm files in
(and also all of those arguments again, but for the test fixtures).
This is quiet a horrible UI, but it's going to be wrapped in a mach
command.

The `uniffi-js` directory contains shared C++ code for
`uniffi-bindgen-gecko-js`.  As much as possible we tried to put the
functionality here and have the generated code simply forward function
calls here.

Still Todo:
  - CallbackInterfaces
  - Custom and external types
  - Datetime and TimeInterval

Differential Revision: https://phabricator.services.mozilla.com/D144472
2022-08-03 18:59:35 +00:00

95 lines
3.4 KiB
YAML

---
license:
description: License Check
include:
- .
exclude:
# These paths need to be triaged.
- build/pgo/js-input
# License not super clear
- browser/branding/
# Trademarks
- browser/components/pocket/content/panels/
- browser/components/newtab/data/content/tippytop/images/
- toolkit/components/pdfjs/content/web/images/
# We probably want a specific license
- browser/extensions/webcompat/injections/
# Different license
- build/pgo/blueprint/print.css
# Different license
- build/pgo/blueprint/screen.css
# Empty files
- config/external/nspr/_pl_bld.h
- config/external/nspr/_pr_bld.h
# Unknown origin
- gfx/2d/MMIHelpers.h
# might not work with license
- gradle.properties
# might not work with license
- gradle/wrapper/gradle-wrapper.properties
# Imported code that is dual Apache2 / MIT licensed
- intl/l10n/rust/l10nregistry-rs
# tests
- js/src/devtools/rootAnalysis/t/
- mobile/android/components/extensions
- mobile/android/geckoview/src/main/AndroidManifest.xml
- mobile/android/geckoview/src/main/AndroidManifest_overlay.jinja
- mobile/android/geckoview/src/main/res/drawable/ic_generic_file.xml
- mobile/android/geckoview_example/src/main
- testing/webcompat/interventions/
# might not work with license
- mobile/android/gradle/dotgradle-offline/gradle.properties
# might not work with license
- mobile/android/gradle/dotgradle-online/gradle.properties
# Almost empty file
- modules/libpref/greprefs.js
- parser/html/java/named-character-references.html
- python/mozlint/test/files/
# By design
- python/mozrelease/mozrelease
- security/mac/hardenedruntime/browser.developer.entitlements.xml
- security/mac/hardenedruntime/browser.production.entitlements.xml
- security/mac/hardenedruntime/developer.entitlements.xml
- security/mac/hardenedruntime/plugin-container.developer.entitlements.xml
- security/mac/hardenedruntime/plugin-container.production.entitlements.xml
- security/mac/hardenedruntime/production.entitlements.xml
- testing/marionette/harness/marionette_harness/www/
# Browsertime can't handle this script when there's a comment at the top
- testing/raptor/browsertime/browsertime_benchmark.js
- toolkit/components/reputationservice/chromium/chrome/common/safe_browsing/csd.pb.cc
- toolkit/components/reputationservice/chromium/chrome/common/safe_browsing/csd.pb.h
- toolkit/mozapps/update/updater/crctable.h
- tools/lint/eslint/eslint-plugin-mozilla/lib/configs
# template fragments used to generate .js sources.
- toolkit/components/uniffi-bindgen-gecko-js/src/templates/js
# By design
- tools/lint/test/
extensions:
- .c
- .cc
- .cpp
- .css
- .dtd
- .ftl
- .h
- .html
- .java
- .js
- .jsm
- .jsx
- .m
- .mm
- .mjs
- .properties
- .py
- .rs
- .svg
- .xhtml
- .xml
- .xul
support-files:
- 'tools/lint/license/**'
type: external
payload: license:lint
find-dotfiles: true