Re: [Tails-dev] Verification extension [was: HTML prototype …

Delete this message

Reply to this message
Author: sajolida
Date:  
To: The Tails public development discussion list, Uzair Farooq, Muhammad Usman Subhani
Subject: Re: [Tails-dev] Verification extension [was: HTML prototype for new download page]
Uzair Farooq:
>> * Test that it works for you on https://tails.boum.org/install/download_2/
> .
>
> This does not work for us either. Reason because no element with id
> 'download-and-verify' is present on the page. You will have to assign this
> id to some element to make it work.


I also realized that shortly after I gave up yesterday night :)

So I pushed 7b5ec02933 on the production website and it's working now.

>> * I see that you changed some condition in scripts/background
> /background.js, is it still supposed to work when I try from
> a local build of the website. On my Tails, I'm checking
>
> We have only whitelisted 'tails.boum.org' so it'll only work on this site.
> If we add any other domains, it'll ask user for permission to those sites
> as well during installation.


Ok, so let's not do that...

But then it very painful to work on the code, test, and debug because
I'm pushing new versions on the production website every time. I know
how to edit HTML and CSS through the Firefox developer tools but I don't
know how to do something similar for the JavaScript on the page.

How do you test your changes to dave_2.js locally?

>> Uzair Farooq:
>>> 1. We are now logging percentage to console, you can replace it with a
>>> progress bar. Please have a look at the commit: https://github.com/
>>> usman-subhani/Tails-repos/commit/bfb204b3c006189094c23626acab0d
>>> b1daf99109. The console.log(percentage) line is executed whenever there's a change in
>>> percentage.


I wired that into the HTML page and it's working. Cooool!

>>> 2. We now update the $FILENAME with actual filename.


This works great! I updated a bit the HTML to avoid hard coding an
English string in the JavaScript code (9dd2fe1a31).

>>> 3. We have ported the version update logic from original extension i.e.
>>> it will find element with id '#extension-version' on page and will compare
>>> its text with installed version of extension and will set `document.
>>> documentElement.dataset.extension` accordingly (either 'ok' or 'old').


I wired this logic into the CSS (73cec4b28c).

It works when the version of the extension is up-to-date (1.0 or 1.1)
but it doesn't work when the version is outdated (0.9). I can see that
data-extension is still set to "ok". See screenshot.

Can you check what's wrong here?

I see that you ported the code from Giorgio in your extension but that
it involves quite complex string parsing, so instead of struggling with
it, I think it would be fine if you prefer replacing it with comparing
two floating point numbers. We don't need a very evolved version scheme
for the extension.

Also, I initially tried to the display logic in dave_2.js since it's
where we already have all the rest but I didn't know how to do that
(249e6f2153). Do you know if that would be possible? But it's working
now (at least for up-to-date version) so we shouldn't spend too much
time on that; it might just ease a bit maintenance in the future.

>>> 4. We have removed the icon. Note that Chrome still shows a greyed out
>>> icon by default and user can hide the icon themselves if they want but
>>> extension cannot hide it.


Good!

>>> 5. Yeah, the extension is ready for chrome too. To install, follow the
>>> procedure here https://developer.chrome.com/
>>> extensions/getstarted#unpacked


Wow, it works!!!

>>> 6. We have changed the logic to run the extension on all web pages of
>>> tails.boum.org which have an element with id 'download-and-verify'
>>> present in DOM


Adjusted the download page accordingly and it works.

We're almost there! Now I'll investigate how to upload to the Firefox
and Chrome stores would work and if I can do that myself.