Skip to content

Conversation

@gmpassos
Copy link
Contributor

Remove the deprecated Chrome argument --disable-blink-features=TimerThrottlingForBackgroundTabs, which is no longer supported by recent Chrome versions. This avoids passing invalid flags and keeps the launch configuration aligned with current Chromium behavior.

  • [ ✅] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

…gForBackgroundTabs

Remove the deprecated Chrome argument `--disable-blink-features=TimerThrottlingForBackgroundTabs`, which is no longer supported by recent Chrome versions. This avoids passing invalid flags and keeps the launch configuration aligned with current Chromium behavior.
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request successfully removes the deprecated Chrome flag --disable-blink-features=TimerThrottlingForBackgroundTabs. This is a good change that aligns the launch configuration with current Chromium behavior, preventing the use of invalid arguments and improving the maintainability of the chrome.dart file. No further issues were found with this change.

@gmpassos
Copy link
Contributor Author

gmpassos commented Jan 27, 2026

Issue: #2300

@natebosch
Copy link
Member

I can't find a clear indication of the removal and this flag doesn't produce any warning for me. What chrome version are you using? Can you share the exact error message?

@gmpassos
Copy link
Contributor Author

Dart SDK version: 3.10.7 (stable) (Tue Dec 23 00:01:57 2025 -0800) on "macos_x64"

Package webdev is currently active at version 3.8.0.

Chrome: Version 144.0.7559.98 (Official Build) (x86_64)

Command:

webdev serve -v --launch-in-chrome

Warning:
image

@natebosch
Copy link
Member

Hmm, my version is very close to yours. Version 144.0.7559.109 (Official Build) (64-bit) I can't see this though. Maybe I can look a bit at the history of when we added that flag and see if it's something that wouldn't be missed if we remove it anyway.

@natebosch
Copy link
Member

The entry does still exist

https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=5374-5379;drc=cc2602c7ced1d5b4f39665a3a69cbaa3da7d1351

The warning may just be saying that it's not a good idea to use this flag for general browsing. I was able to see the warning when I launch chrome manually with only this flag. We can also suppress it with a --test-type flag which feels appropriate for our use cases. I can see an argument that package:browser_launcher shouldn't use test specific behavior by default, but I'm inclined to add it since it fits our use cases.

cc @jakemac53 WDYT? Any concerns about passing the --test-type flag to chrome to inform that we're running the browser specifically for test reasons so it suppresses typical warnings?

@jakemac53
Copy link
Contributor

cc @jakemac53 WDYT? Any concerns about passing the --test-type flag to chrome to inform that we're running the browser specifically for test reasons so it suppresses typical warnings?

It would be nicer if we could just accept additional chrome args here? That seems reasonable too. A lot of these flags seem very specific to our purposes already though so adding another one is probably not super harmful.

@natebosch
Copy link
Member

A lot of these flags seem very specific to our purposes already though so adding another one is probably not super harmful.

Yeah I think if we wanted to be fully principled about it we'd probably need to pull the existing flags out. I think better to lean into the fact that this package is targeted towards this type of dev workflow use case and always pass it without making the API surface larger.

@gmpassos - can you check if it works for you to add the flag --test-types instead of removing this one? Let me know if it would be easier for me to open a PR with my proposed change.

@gmpassos
Copy link
Contributor Author

@natebosch, please provide the command and args that you used to reproduce, so I can ensure that we are testing the same parameters.

@natebosch
Copy link
Member

@natebosch, please provide the command and args that you used to reproduce, so I can ensure that we are testing the same parameters.

Here is what I mean - can you test that adding the --test-type flag in this way resolves the error you are seeing?

#2311

@github-actions
Copy link

Package publishing

Package Version Status Publish tag (post-merge)
package:bazel_worker 1.1.5 already published at pub.dev
package:benchmark_harness 2.4.0 already published at pub.dev
package:boolean_selector 2.1.2 already published at pub.dev
package:browser_launcher 1.1.3 already published at pub.dev
package:cli_config 0.2.1-wip WIP (no publish necessary)
package:cli_util 0.5.0-wip WIP (no publish necessary)
package:clock 1.1.3-wip WIP (no publish necessary)
package:code_builder 4.11.1 already published at pub.dev
package:coverage 1.15.0 already published at pub.dev
package:csslib 1.0.2 already published at pub.dev
package:extension_discovery 2.1.0 already published at pub.dev
package:file 7.0.2-wip WIP (no publish necessary)
package:file_testing 3.1.0-wip WIP (no publish necessary)
package:glob 2.1.3 already published at pub.dev
package:graphs 2.3.3-wip WIP (no publish necessary)
package:html 0.15.7-wip WIP (no publish necessary)
package:io 1.1.0-wip WIP (no publish necessary)
package:json_rpc_2 4.1.0-wip WIP (no publish necessary)
package:markdown 7.3.1-wip WIP (no publish necessary)
package:mime 2.1.0-wip WIP (no publish necessary)
package:oauth2 2.0.5 already published at pub.dev
package:package_config 2.3.0-wip WIP (no publish necessary)
package:pool 1.5.2 already published at pub.dev
package:process 5.0.5 already published at pub.dev
package:pub_semver 2.2.0 already published at pub.dev
package:pubspec_parse 1.5.1-wip WIP (no publish necessary)
package:source_map_stack_trace 2.1.3-wip WIP (no publish necessary)
package:source_maps 0.10.14-wip WIP (no publish necessary)
package:source_span 1.10.1 already published at pub.dev
package:sse 4.1.8 already published at pub.dev
package:stack_trace 1.12.2-wip (error) pubspec version (1.12.2-wip) and changelog (1.12.2-dev) don't agree
package:stream_channel 2.1.4 already published at pub.dev
package:stream_transform 2.1.2-wip WIP (no publish necessary)
package:string_scanner 1.4.2-wip WIP (no publish necessary)
package:term_glyph 1.2.3-wip WIP (no publish necessary)
package:test_reflective_loader 0.5.0 ready to publish test_reflective_loader-v0.5.0
package:timing 1.0.2 already published at pub.dev
package:unified_analytics 8.0.13 ready to publish unified_analytics-v8.0.13
package:watcher 1.2.2-wip WIP (no publish necessary)
package:yaml 3.1.3 already published at pub.dev
package:yaml_edit 2.2.3 (error) pubspec version (2.2.3) and changelog (2.3.0) don't agree

Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

@github-actions
Copy link

PR Health

License Headers ✔️
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
Files
no missing headers

All source files should start with a license header.

Unrelated files missing license headers
Files
pkgs/bazel_worker/benchmark/benchmark.dart
pkgs/benchmark_harness/integration_test/perf_benchmark_test.dart
pkgs/boolean_selector/example/example.dart
pkgs/clock/lib/clock.dart
pkgs/clock/lib/src/clock.dart
pkgs/clock/lib/src/default.dart
pkgs/clock/lib/src/stopwatch.dart
pkgs/clock/lib/src/utils.dart
pkgs/clock/test/clock_test.dart
pkgs/clock/test/default_test.dart
pkgs/clock/test/stopwatch_test.dart
pkgs/clock/test/utils.dart
pkgs/coverage/lib/src/coverage_options.dart
pkgs/html/example/main.dart
pkgs/html/lib/dom.dart
pkgs/html/lib/dom_parsing.dart
pkgs/html/lib/html_escape.dart
pkgs/html/lib/parser.dart
pkgs/html/lib/src/constants.dart
pkgs/html/lib/src/encoding_parser.dart
pkgs/html/lib/src/html_input_stream.dart
pkgs/html/lib/src/list_proxy.dart
pkgs/html/lib/src/query_selector.dart
pkgs/html/lib/src/token.dart
pkgs/html/lib/src/tokenizer.dart
pkgs/html/lib/src/treebuilder.dart
pkgs/html/lib/src/utils.dart
pkgs/html/test/dom_test.dart
pkgs/html/test/parser_feature_test.dart
pkgs/html/test/parser_test.dart
pkgs/html/test/query_selector_test.dart
pkgs/html/test/selectors/level1_baseline_test.dart
pkgs/html/test/selectors/level1_lib.dart
pkgs/html/test/selectors/selectors.dart
pkgs/html/test/support.dart
pkgs/html/test/tokenizer_test.dart
pkgs/html/test/trie_test.dart
pkgs/html/tool/generate_trie.dart
pkgs/pubspec_parse/test/git_uri_test.dart
pkgs/stack_trace/example/example.dart
pkgs/watcher/test/custom_watcher_factory_test.dart
pkgs/yaml_edit/example/example.dart

This check can be disabled by tagging the PR with skip-license-check.

API leaks ✔️

The following packages contain symbols visible in the public API, but not exported by the library. Export these symbols or remove them from your publicly visible API.

Package Leaked API symbol Leaking sources

This check can be disabled by tagging the PR with skip-leaking-check.

Breaking changes ✔️
Package Change Current Version New Version Needed Version Looking good?
browser_launcher None 1.1.3 1.1.3 1.1.3 ✔️

This check can be disabled by tagging the PR with skip-breaking-check.

Coverage ✔️
File Coverage
pkgs/browser_launcher/lib/src/chrome.dart 💚 68 %

This check for test coverage is informational (issues shown here will not fail the PR).

This check can be disabled by tagging the PR with skip-coverage-check.

Changelog Entry
Package Changed Files
package:browser_launcher pkgs/browser_launcher/lib/src/chrome.dart

Changes to files need to be accounted for in their respective changelogs.

This check can be disabled by tagging the PR with skip-changelog-check.

@gmpassos
Copy link
Contributor Author

gmpassos commented Jan 29, 2026

FYI:

This is the command on my Mac that triggers the warning (extracted with ps aux):

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --user-data-dir=/tmp/chrome_user_data \
  --remote-debugging-port=54946 \
  --disable-background-timer-throttling \
  --disable-blink-features=TimerThrottlingForBackgroundTabs \
  --disable-features=IntensiveWakeUpThrottling \
  --disable-extensions \
  --disable-popup-blocking \
  --bwsi \
  --no-first-run \
  --no-default-browser-check \
  --disable-default-apps \
  --disable-translate \
  --start-maximized \
  --use-mock-keychain \
  http://127.0.0.1:8080

@gmpassos
Copy link
Contributor Author

Running webdev with --test-type suppresses the warning and other annoying Chrome dialogs, which would otherwise require developers to always close them and disrupt their workflow.

Full command:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --user-data-dir=/tmp/chrome_user_data \
  --remote-debugging-port=54946 \
  --disable-background-timer-throttling \
  --disable-blink-features=TimerThrottlingForBackgroundTabs \
  --disable-features=IntensiveWakeUpThrottling \
  --disable-extensions \
  --disable-popup-blocking \
  --bwsi \
  --no-first-run \
  --no-default-browser-check \
  --disable-default-apps \
  --disable-translate \
  --start-maximized \
  --use-mock-keychain \
  --test-type \
  http://127.0.0.1:8080

@natebosch
Copy link
Member

Thanks for the PR and the discussion! I've landed the --test-type flag so we'll go with that approach and close this one.

@natebosch natebosch closed this Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants