Skip to content

Browser view empty in Dia (Chromium fork, reports app name "Dia") #927

Description

@TiberiusNemesis

The Browser view (Top Domains / URLs / Titles) is permanently empty for me in Dia.
The extension itself works fine, which is what made this annoying to track down.

Events land in aw-watcher-web-chrome_<host> and keep coming:

{"timestamp": "2026-08-05T21:32:58Z", "duration": 20.1,
 "data": {"url": "http://localhost:5600/#/activity/...", "title": "ActivityWatch", "tabCount": 16}}

I'm pretty sure the problem is in browserSummaryQuery, which intersects those against window events whose app matches the chrome entry in src/queries.ts:

browser_appnames.chrome      = ['com.google.Chrome', 'com.google.ChromeDev', 'org.chromium.Chromium']
browser_appname_regex.chrome = '(?i)^(google[-_ ]?chrome|chrome|chromium)'

aw-watcher-window reports Dia as app: "Dia" (bundle id company.thebrowser.dia). But neither the exact list nor the regex matches that so filter_period_intersect doesn't return nothing and all three columns render "No data".
Seems the same as #749 and #1094.

What I've confirmed fixes it:

-    chrome: ['com.google.Chrome', 'com.google.ChromeDev', 'org.chromium.Chromium'],
+    chrome: ['com.google.Chrome', 'com.google.ChromeDev', 'org.chromium.Chromium', 'company.thebrowser.dia'],
-    chrome: '(?i)^(google[-_ ]?chrome|chrome|chromium)',
+    chrome: '(?i)^(google[-_ ]?chrome|chrome|chromium|dia)',

I've been running that patched into the bundled webui inside the .app rather than a real build and it works.

Now the part I'm less sure about. My first instinct was that Dia should get its own key, the way arc does, since it is a separate browser. but I don't think that can work, and I think it's also why #1094 keeps collecting "still broken" replies despite arc having been added to queries.ts.

browsersWithBuckets() binds a browser key to a bucket by substring match on the bucket id:

const bucketId = _.find(browserbuckets, bucket_id => _.includes(bucket_id, browserName));

The extension can't tell it's running inside a fork, so Dia announces itself as chrome and its data goes to aw-watcher-web-chrome.

But no bucket id ever contains "arc" or "dia", those keys get filtered out before their regexes are ever applied, and arc: [] with '(?i)^arc(\.exe)?$' just sits there doing nothing. @wzxu noticed the same thing on #1094 ("Looks like Arc should already be defined in that file, but it's not working for me either"), doesn't look like it went anywhere.

Anyway, while the bucket name decides which key applies, forks gotta be listed under the browser whose bucket they actually write to. Adding dia to the chrome patterns works today. arc probably belongs there too.

The other option could be have the extension declare which browser it is and binding on that, but that's a much bigger change and probably its own issue.

My local info:
macOS 15 (Darwin 25.5.0, Apple Silicon), ActivityWatch v0.14.0b3, Dia running the Chrome build of the extension.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions