Make sure that extensions are bundled with the package they claim to be. (#9981)

* Make sure that extensions are bundled with the package they claim to be.

With this change, extensions are enabled if and only if the package name
on disk matches the package name in extension/devtools/config.yaml.

* Check string type in if expression

* Normalize package root

* Fix typo

* Revert missing line in CHANGELOG.md

* Fix presubmits

* Use the package name to verify extension permissions and deduplication

* Use non-nullable parameters

Make extensionPackage a required non-nullable parameter in extensionEnabledState
Make packageName non-nullable parameter in TestPackageWithExtension

* fix PR link

* Add pubspec verification to CHANGELOG

* Fix doc comment in lookupExtensionEnabledState and setExtensionEnabledState

* Format

* Move packageName to correct section in constructor
29 files changed
tree: 5bb6bc6ceb2bf8d602708d742fa9db9b3dce8644
  1. .agents/
  2. .gemini/
  3. .github/
  4. .vscode/
  5. _markdown_images/
  6. docs/
  7. packages/
  8. third_party/
  9. tool/
  10. .gitattributes
  11. .gitignore
  12. AGENTS.md
  13. analysis_options.yaml
  14. AUTHORS
  15. BETA_TESTING.md
  16. CLAUDE.md
  17. CODE_OF_CONDUCT.md
  18. CODEOWNERS
  19. CONTRIBUTING.md
  20. DEBUGGING.md
  21. devtools_options.yaml
  22. DOCUMENTATION.md
  23. flutter-candidate.txt
  24. LICENSE
  25. pubspec.lock
  26. pubspec.yaml
  27. README.md
  28. STYLE.md
  29. TESTING.md
  30. TRIAGE.md
README.md

Dart & Flutter DevTools

Build Status OpenSSF Scorecard

What is this?

Dart & Flutter DevTools is a suite of performance tools for Dart and Flutter.

Getting started

For documentation on installing and trying out DevTools, please see our docs.

Contributing and development

Contributions welcome! See our contributing page for an overview of how to build and contribute to the project.

Terms and Privacy

By using Dart DevTools, you agree to the Google Terms of Service. To understand how we use data collected from this service, see the Google Privacy Policy.