Mark inherited and overridden rules for highlights

As a follow-up to [1], this change makes two updates for inherited
highlight pseudos:

- Draw a strikethrough through overridden styles.
- Don't grey-out non-inherited properties in the context of highlight
pseudos, since the highlight cascade treats all valid properties as if
they were inherited [2].

See [3] for screenshots of the change.

For now, custom highlights are not included in this change. Custom
highlights are currently grouped together into the same
`DOMInheritanceCascade` regardless of highlight name, so custom
highlight styles could be shown as overridden by styles from a
highlight with a different name. To fix this, custom highlights
would need to be divided into separate inheritance cascades.
This is nontrivial, so that work will be split up into a separate
change.

[1] https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3502175
[2] https://www.w3.org/TR/css-pseudo-4/#highlight-cascade
[3] https://docs.google.com/document/d/1hU-KL5-WIbTWSH46N7xaP8SBm69QAMiyg5jOY7ZHVTU/edit

Bug: 1024156
Change-Id: Ib32d862bba1ce1843b55d3e85f0e6e9f3a2447e3
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3563627
Reviewed-by: Delan Azabani <dazabani@igalia.com>
Reviewed-by: Johan Bay <jobay@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
7 files changed
tree: 2d9a8e49961b94ff2755fb77d3c91660e11611f4
  1. .vscode/
  2. build_overrides/
  3. config/
  4. docs/
  5. extension-api/
  6. front_end/
  7. inspector_overlay/
  8. node_modules/
  9. scripts/
  10. test/
  11. third_party/
  12. v8/
  13. .clang-format
  14. .editorconfig
  15. .eslintignore
  16. .eslintrc.js
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .mailmap
  21. .npmignore
  22. .npmrc
  23. .style.yapf
  24. .stylelintignore
  25. .stylelintrc.json
  26. ARCHITECTURE.md
  27. AUTHORS
  28. BUILD.gn
  29. DEPS
  30. LICENSE
  31. OWNERS
  32. package-lock.json
  33. package.json
  34. PRESUBMIT.py
  35. README.md
  36. tsconfig.json
  37. WATCHLISTS
README.md

Chrome DevTools frontend

npm package

The client-side of the Chrome DevTools, including all JS & CSS to run the DevTools webapp.

Source code

The frontend is available on chromium.googlesource.com.

Design guidelines

Please be aware that DevTools follows additional development guidelines.

Issue triage

The issue triage guidelines can be found in docs/triage_guidelines.md.

Workflows

Instructions to set up, use, and maintain a DevTools frontend checkout can be found in docs/workflows.md.

Additional references

Source mirrors

DevTools frontend repository is mirrored on GitHub.

DevTools frontend is also available on NPM as the chrome-devtools-frontend package. It's not currently available via CJS or ES modules, so consuming this package in other tools may require some effort.

The version number of the npm package (e.g. 1.0.373466) refers to the Chromium commit position of latest frontend git commit. It's incremented with every Chromium commit, however the package is updated roughly daily.

Getting in touch