servo/servo-tidy.toml
author Ted Campbell <tcampbell@mozilla.com>
Tue, 28 Nov 2017 23:01:49 -0500
changeset 442685 84ca5dce1d6a63bc64612876eccee30fc45080f9
parent 441889 ebe8ec78d968ab6fe926495d89bb45572799bfd6
child 443529 b8a13808f775cb513b5fa8310dfcab659af2f507
permissions -rw-r--r--
Bug 1418894 - Harden XDR data decoding. r=nbp a=gchang This patch adds better error detection to XDR decoding to reduce memory corruption in the event that XDR data is corrupt (which is not *supposed* to happen). Add missing default cases. Make out-of-range values fail the decode by asserting in debug, and returning a TranscodeError in release. Mix a magic value into enum value before transcoding to buffer (to reduce chance of garbage data being decoded). MozReview-Commit-ID: 1wPkho9dm8c

[configs]
skip-check-length = false
skip-check-licenses = false
check-ordered-json-keys = [
  "./resources/prefs.json",
]
lint-scripts = [
  "./python/servo/lints/wpt_lint.py",
]

# Packages which we avoid using in Servo.
# For each blocked package, we can list the exceptions,
# which are packages allowed to use the blocked package.
[blocked-packages]
rand = [
  "deque",
  "gaol",
  "hashglobe", # only uses in tests
  "ipc-channel",
  "num-bigint",
  "parking_lot_core",
  "phf_generator",
  "rayon",
  "rayon-core",
  "servo_rand",
  "servo-websocket",
  "tempdir",
  "tempfile",
  "uuid",
  "ws",
]
num = []

[ignore]
# Ignored packages with duplicated versions
packages = [
  "bitflags",
]
# Files that are ignored for all tidy and lint checks.
files = [
  # Mako does not lend itself easily to splitting long lines
  "./components/style/properties/helpers/animated_properties.mako.rs",
  # Helper macro where actually a pseudo-element per line makes sense.
  "./components/style/gecko/non_ts_pseudo_class_list.rs",
  # Generated and upstream code combined with our own. Could use cleanup
  "./components/style/gecko/generated/bindings.rs",
  "./components/style/gecko/generated/pseudo_element_definition.rs",
  "./components/style/gecko/generated/structs.rs",
  "./components/style/gecko/generated/atom_macro.rs",
  "./resources/hsts_preload.json",
  "./tests/wpt/metadata/MANIFEST.json",
  "./components/script/dom/webidls/ForceTouchEvent.webidl",
  "./support/android/openssl.sh",
  # Upstream code from Khronos/WebGL uses tabs for indentation
  "./tests/wpt/mozilla/tests/webgl",
  # Ignore those files since the issues reported are on purpose
  "./tests/html/bad-line-ends.html",
  "./tests/unit/net/parsable_mime/text",
  "./tests/wpt/mozilla/tests/css/fonts",
  "./tests/wpt/mozilla/tests/css/pre_with_tab.html",
  "./tests/wpt/mozilla/tests/mozilla/textarea_placeholder.html",
]
# Directories that are ignored for the non-WPT tidy check.
directories = [
  # Upstream
  "./support/android/apk",
  "./tests/wpt/harness",
  "./tests/wpt/update",
  "./tests/wpt/web-platform-tests",
  "./tests/wpt/mozilla/tests/mozilla/referrer-policy",
  "./tests/wpt/mozilla/tests/webgl",
  "./tests/wpt/sync",
  "./python/tidy/servo_tidy_tests",
  "./components/script/dom/bindings/codegen/parser",
  "./components/script/dom/bindings/codegen/ply",
  "./python/_virtualenv",
  "./components/hashglobe/src",
  # Generated and upstream code combined with our own. Could use cleanup
  "./target",
  "./ports/cef",
]

# Directories that are checked for correct file extension
[check_ext]
# directory, list of expected file extensions
"./components/script/dom/webidls" = [".webidl"]