Vivaldi Browser Support

Would it be possible to add Vivald (and Opera) support?

Should in principle be easy as both Vivaldi and Opera run on Chromium

I’ve added the extension to Vivaldi and the Extension reports running. Even in the RAW data of the UI I can see the bucket as well as the entries, also in the timeline there.

However, these entries are not shown in the “Activity” tab.

I’ll have a look soon as well on how to fix that, maybe someone can point me in the right direction?

They should already work on some platforms, what OS are you on?

The only thing needed for it to work would be to add the appname to the list here

If the appname from the aw-watcher-window bucket is already in that list however the situation might be more tricky and needs more investigation.

I’m on Windows 10.

vivaldi.exe seems to be already in the list, added on 2. december. Last build is from 10th december, so I guess I already have it?

Why is it not recording then?

This is actually quite strange. The two debug jsons (bucket dumps) are virtually the same. They do show up in the Timeline, but not in the Activity Tab.

Chrome:

Number of active tabs: 1
Tabs:
{
    "active": true,
    "audible": false,
    "autoDiscardable": true,
    "discarded": false,
    "favIconUrl": "https://www.test.com/favicon.ico",
    "height": 927,
    "highlighted": true,
    "id": 2,
    "incognito": false,
    "index": 0,
    "mutedInfo": {
        "muted": false
    },
    "pinned": false,
    "selected": true,
    "status": "complete",
    "title": "Find online tests, practice test, and test creation software | Test.com",
    "url": "https://www.test.com/",
    "width": 974,
    "windowId": 1
}

{"testing":null,"lastSyncSuccess":true}

Vivaldi:

Number of active tabs: 1
Tabs:
{
    "active": true,
    "audible": false,
    "autoDiscardable": true,
    "discarded": false,
    "extData": "{\"read\":true,\"useDefaultIcon\":true,\"vivaldi_tab_muted\":false}",
    "favIconUrl": "https://www.test.com/favicon.ico",
    "height": 920,
    "highlighted": true,
    "id": 157,
    "incognito": false,
    "index": 17,
    "mutedInfo": {
        "muted": false,
        "reason": "capture"
    },
    "pinned": false,
    "selected": true,
    "status": "complete",
    "title": "Find online tests, practice test, and test creation software | Test.com",
    "url": "https://www.test.com/",
    "width": 910,
    "windowId": 32
}

{"testing":null,"lastSyncSuccess":true}

Additionally the downloaded JSONS seem to have the same entries for both browsers:

Chrome
{"timestamp": "2020-01-12T19:57:10.133000+00:00", "duration": 10.003, "data": {"url": "https://www.google.com/chrome/", "title": "Google Chrome - The New Chrome & Most Secure Web Browser", "audible": false, "incognito": false}}

Vivaldi
{"timestamp": "2020-01-12T19:56:53.186000+00:00", "duration": 5.001, "data": {"url": "https://vivaldi.com/", "title": "Vivaldi \u2014 The browser that puts you in control", "audible": false, "incognito": false}}

However, I seem to be having a bunch of duration:0 in my logs, is that normal?

{"timestamp": "2020-01-12T19:56:33.165000+00:00", "duration": 0.0, "data": {"url": "https://vivaldi.com/", "title": "Vivaldi \u2014 The browser that puts you in control", "audible": false, "incognito": false}}

Anyhow, data is still recorded, right? So with the logs I can wait for a fix and still analyze them later?

The appname could still be different if for example you are running a beta version of vivaldi, the developers have changed the appname etc… Did you check the aw-watcher-window bucket and make sure that the appid is exactly the same?

That’s intetesting… It might be that vivaldi doesn’t allow extensions to fire a callback as often as chrome/firefox. While possible though I don’t believe that’s the issue (especially if you don’t get any info at all, in that case it would still show lots of domains but all of them would have a duration of 0)

Depends, if the data is there but if every event has a duration of 0 seconds the summary in the web-ui won’t be very interesting.

This seems to not be the case, the app name is indeed ‘vivaldi.exe’

It’s quite strange that it indeed shows up in the Timeline, but not in the Activity tab.

Two other things:

  1. The web watcher records all open pages, even if the Browser is not focused. This makes it sometimes hard to see how much time I actually spend on a website. Do you think it might make sense to implement that it only records the time actually spend actively on a site? (maybe cross-reference later with active application/window)

  2. The web watcher prioritizes tabs with audio. I will spend time on another website, however, it records things as ‘youtube.com’, even if I just listen to a song while working. Do you think it might make sense to report the actual active tab instead of tabs with audio?

The browser does not expose to the extensions whether the window is focused or not and whether there’s recent mouse/keyboard activity so that’s impossible to do with todays browsers. What the Activity tab does when it works properly is that it intersects the “not-afk” events from the aw-watcher-afk bucket and the “vivaldi.exe” events from aw-watcher-window to only show the actual time spent on that website. That’s why it’s so important that the “vivaldi.exe” title is correct.

Are you sure this is the case? It does not work like that for me (I have multiple tabs open, one with music running but only the tab which is selected shows up in the aw-watcher-web bucket).

Another thing, what is the name of your aw-watcher-web bucket? Is it aw-watcher-web-vivaldi or aw-watcher-web-chrome?

yes, it’s indeed aw-watcher-web-chrome !

You might be right. I’ll check again, but quite likely that I made a mistake.

As you can see in the aw-webui code with appnames “vivaldi.exe” is only inside the “vivaldi” category, but apparently it’s recognized as “chrome” so we would have to add “vivaldi.exe” inside the chrome category to get it to work.

The issue with doing so would be that having both Chrome and Vivaldi open at the same time with the extension would mess up the data for that time period. Would be better if the correct browser name was detected instead, but some browsers go very far to try and hide their actual name so I’m not sure how hard that would be to do.