When you get a new noscript update, it loads a tab for you to tell you what changed. Now, in the noscript case, it's doing this to sell you ads so it can profit from you, which is kind of annoying. But the general concept of telling our users what changed would still be beneficial. Otherwise they have to (know to) find the info on the blog.
Good idea / bad idea?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
I think this is a good suggestion; this is the approach Mozilla uses. The browser already has a mechanism that will allow us to open a tab with release notes in it (but we are not using it and we may need to make some minor changes to it so it works well for us). If we do use it, it will replace the bland "Update Installed" window that is currently displayed after an update has been applied.
Do other people like this idea?
Trac: Cc: N/Ato Sherief, mcs, brade Status: new to needs_information
We need to do a little but more research, but it seems that if we use Mozilla's existing mechanism to open release notes in a new tab after an update, as a "side effect" the browser will restore the session (including any open tabs) when it restarts after applying an update. We probably want to disable this "one time session restore" behavior so as to not alarm or confuse people.
It seems like the session restore problem that I mentioned in ticket:13512#comment:5 does not occur, at least in TB 5.5a1 (maybe Kathy and I had enabled history when we tried it). But there are a few things we need to fix to make this work well. A patch for TB 5.5 is available here:
https://gitweb.torproject.org/user/brade/tor-browser.git/commit/?h=bug13512_01&id=33315787e7f4a0855a3533dfd93224489a7a8b72
Please review. Note that if we merge this fix, we will need to commit to providing an URL for each release that contains useful info. about the changes (but we already do that on the blog today).
This patch looks good to me. However, I'd like to test that before merging which means we need to fix the other parts first, especially patching update_responses accordingly which is why this ticket needs revision. Assigning this back to mcs for the time being as I am not sure who'll work on these parts.
I attached a patch to update_responses to add the actions and openURL attributes in the xml responses, if openURL is present in the config.yml file.
...
Thanks! Your patch looks good.
In light of #16768 (moved), we probably want the detailsURL to usually be the same as the openURL. Do we want them to always be the same?
The detailsURL is displayed as a link in the window that is shown when an update is available. The link is labeled as "View more information about this update" and the contents should tell people what changes are in the update. Note that if app.update.auto is true, that window is not shown.
The openURL will open automatically in a new tab after an update has been applied (i.e., after the browser is restarted). This will happen regardless of the app.update.auto setting.
I attached a patch to update_responses to add the actions and openURL attributes in the xml responses, if openURL is present in the config.yml file.
...
Thanks! Your patch looks good.
In light of #16768 (moved), we probably want the detailsURL to usually be the same as the openURL. Do we want them to always be the same?
Sounds good to me. The blog + the included change notes are after all our details. So this makes sense to me.
If detailsURL and openURL are always going to be the same, then we probably want to define it only once in the config.yml file. I uploaded a new version of the patch which uses the detailsURL for both.
Okay. I tested a bit. If anybody could test the intended use-case (i.e. updating while not applying MAR files manually) that would be neat as I don't have such a setup handy at the moment.
I was a bit surprised to see nothing happen after applying the update manually actually. I thought it would at least try to load https://blog.torproject.org/category/tags/tor-browser in a new tab, no? Instead the normal about:tor page was loaded. The "Update was successfully installed" was missing, though, as expected.
Okay. I tested a bit. If anybody could test the intended use-case (i.e. updating while not applying MAR files manually) that would be neat as I don't have such a setup handy at the moment.
Kathy and I have tested that case with the browser patches but not boklm's update_responses changes.
I was a bit surprised to see nothing happen after applying the update manually actually. I thought it would at least try to load https://blog.torproject.org/category/tags/tor-browser in a new tab, no? Instead the normal about:tor page was loaded. The "Update was successfully installed" was missing, though, as expected.
Hmm. I think the default page should have been opened. I am not sure how you tested things, but Kathy and I can do some more testing early next week.
I was a bit surprised to see nothing happen after applying the update manually actually. I thought it would at least try to load https://blog.torproject.org/category/tags/tor-browser in a new tab, no? Instead the normal about:tor page was loaded. The "Update was successfully installed" was missing, though, as expected.
Hmm. I think the default page should have been opened. I am not sure how you tested things, but Kathy and I can do some more testing early next week.
Here is what I did:
I applied the patches to tor-browser-bundle.git and tor-browser.git (on new branches) and updated the config.yml
I tagged the new commit on tor-browser.git and pointed versions.alpha to it (and disabled the signature verification for alphas)
I tagged tbb-5.5a1-build4 with all of it
I rebuilt the browser part and rebundled
I generated the XML files for the updater and checked that boklm's patch did indeed include the additional attributes
I took a MAR file and signed it
I applied that MAR file manually to 5.0a4
I restarted and just got an about:tor page but no "You successfully updated Tor Browser" dialog
Here is what I did:
...
5) I generated the XML files for the updater and checked that boklm's patch did indeed include the additional attributes
6) I took a MAR file and signed it
7) I applied that MAR file manually to 5.0a4
8) I restarted and just got an about:tor page but no "You successfully updated Tor Browser" dialog
Here is what I did:
...
5) I generated the XML files for the updater and checked that boklm's patch did indeed include the additional attributes
6) I took a MAR file and signed it
7) I applied that MAR file manually to 5.0a4
8) I restarted and just got an about:tor page but no "You successfully updated Tor Browser" dialog
Yes, that seems to be the bit I missed. Interestingly this causes things like
2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb314487000+0x403a8, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libnspr4.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb3144e3000+0x5094, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libplc4.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb3144de000+0x40d8, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libplds4.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb31445d000+0x295a0, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libnssutil3.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb31436a000+0xf2354, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libnss3.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb314346000+0x232e0, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libsmime3.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb31430f000+0x36b42, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libssl3.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb3144da000+0x3020, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libmozalloc.so could not be stored2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb3142f4000+0x16070, existing 0x7fb3142ca000+0x2241c82015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/components/libdbusservice.so could not be stored2015-08-24 15:56:21: stackwalker.cc:125: INFO: Couldn't load symbols for: /lib/x86_64-linux-gnu/libc.so.6|C64DC9301F6A51E980C3D68D2B89E57602015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: stackwalker.cc:125: INFO: Couldn't load symbols for: /home/firefox64/tor-browser_en-US/Browser/libxul.so|C07A9E4BA3E5CBDDFFB87653E49AED9702015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x4ffffffff2015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2fce19c802015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: stackwalker.cc:125: INFO: Couldn't load symbols for: /lib/x86_64-linux-gnu/libglib-2.0.so.0|4E3AFBA0E12427494B93F3FCCE34095102015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x1e3a9b8e02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e5dcc02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0xffffffff7fffffff2015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e5dcc02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2ff0523902015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2ff0523902015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x8dcd62015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x144b1a412015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x2442015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f0a3d02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x8dcd62015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x873bb988f42015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7f01000000142015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x182015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f0a3d02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddbfa82015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc00f2015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x800401542015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc0082015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2ff0523982015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2e9f956a02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb3022383002015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: stackwalker.cc:125: INFO: Couldn't load symbols for: /lib64/ld-linux-x86-64.so.2|1A58009FC7B33A3EEA35995A0C50D24D02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f703402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x12015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f0a3002015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e808402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f834602015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc3d92015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1382015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2e9f409e02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f834402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x776f7262746c00742015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2ff0523902015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f0a3d02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x800040052015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305ffd2102015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7f00000000012015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e808402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305f0a3d02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x32015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2fcf1c6a02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1482015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc2702015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc0d82015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1302015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x1000000092015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1082015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1182015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x3f2015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1082015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x6d006f0068002f2015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x2f00652015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2fcf1c6a02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x2d0072006f00742015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2f1bc01402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb2f1be74402015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305ffd1f02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb305ffd1f02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc2002015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e8f3802015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1982015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x10011000000242015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc1982015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x52015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc2082015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e563d82015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x52015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x90a68522ad281002015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc2082015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7ffce8ddc2702015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x52015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e5d9002015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e5d6c02015-08-24 15:56:21: basic_code_modules.cc:88: INFO: No module at 0x7fb312e5d9a8
to happen on restart. Not sure if that is expected.
Yes, that seems to be the bit I missed. Interestingly this causes things like
{{{
2015-08-24 15:56:21: range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x7fb314487000+0x403a8, existing 0x7fb3142ca000+0x2241c8
2015-08-24 15:56:21: basic_code_modules.cc:70: ERROR: Module /home/firefox64/tor-browser_en-US/Browser/libnspr4.so could not be stored
...
}}}
to happen on restart. Not sure if that is expected.
It is not expected. The odd thing is that all of those log messages appear to be coming from the code under toolkit/crashreporter/google-breakpad... and I know we configure the browser build with --disable-crashreporter. Do you know if parts of that code are linked into Tor Browser (even when crash reporter is disabled)? If you don't know, Kathy and I will look into this.
Here is what I did:
...
5) I generated the XML files for the updater and checked that boklm's patch did indeed include the additional attributes
6) I took a MAR file and signed it
7) I applied that MAR file manually to 5.0a4
8) I restarted and just got an about:tor page but no "You successfully updated Tor Browser" dialog
Yes, that seems to be the bit I missed. Interestingly this causes things like
[...]
to happen on restart. Not sure if that is expected.
This is not due to your patches it turns out. I just updated 4.5a5 to 5.5a1 and get the same stuff on my testing machine. Interesting, but probably a different ticket :)
Testing this locally did not work but thanks to boklm I got it tested remotely. Sadly, no page was showing up, dunno why. Here are the steps to reproduce:
Download Tor Browser 5.0a4 for Linux 64 bit (en-US)
Click on the hamburger menu, question mark and "About Tor Browser" to get the update going
The update succeeds but on restart no new tab is opening
Note: I checked the updated code thereafter and nsBrowserContentHandler.js has all the Tor Browser bits of your patch, thus is got applied in the build.
boklm and gk, thanks for all of your work to test this. It turns out that your test was better (cleaner) than the tests that Kathy and I did. Here is a revised patch:
The difference between this patch and the previous one is the addition of some code inside needHomepageOverride() (within nsBrowserContentHandler.js) to detect the situation where an upgrade just occurred from an older release of Tor Browser that does not have this new patch applied. In our testing we used a scenario equivalent to TB 5.5a2 to TB 5.5a3 (in other words, we were upgrading from a browser that already had this patch applied). Please review and test this one.
Okay, the test worked and the code looks good, thanks. One final thing I am wondering is whether we really should contact the blog or an external resource after an update. If that goes wrong (mybe there is an issue with the server, or whatever) the users are seeing a weird error message instead of the site we want to show them and instead of the familiar about:tor page (which is now a backgounrd tab). And we put additional load on the Tor network (an on the server hosting the blog) instead of using the changelog we ship with the browser. These concerns might be for a follow-up bug, though (while we are testing the things we have so far in the alpha cycle).
One final thing I am wondering is whether we really should contact the blog or an external resource after an update. If that goes wrong (mybe there is an issue with the server, or whatever) the users are seeing a weird error message instead of the site we want to show them and instead of the familiar about:tor page (which is now a backgounrd tab). And we put additional load on the Tor network (an on the server hosting the blog) instead of using the changelog we ship with the browser. These concerns might be for a follow-up bug, though (while we are testing the things we have so far in the alpha cycle).
I am not sure how concerned we should be about the network load but if an error occurs while loading the page, that could be confusing. We could create a local page (about:update or similar) that just said "An update has been applied" which also included a link (or an iframe) that pointed to a remote page. We would need to figure out how to pass the remote link to the about:update page.
Alternatively, we could create a local page that displayed the top part of ChangeLog.txt. But doing that would take away a major benefit of loading a remote page: no ability to inform the user about issues and/or workarounds we learn after release.
Or we could combine both approaches. Any approach that reads ChangeLog.txt would require us to standardize the format of that file (e.g., a blank line separates the info for one versions from the next).
Okay, the test worked and the code looks good, thanks. One final thing I am wondering is whether we really should contact the blog or an external resource after an update. If that goes wrong (mybe there is an issue with the server, or whatever) the users are seeing a weird error message instead of the site we want to show them and instead of the familiar about:tor page (which is now a backgounrd tab).
This is a very valid concern. The blog is usually at least half a day behind in publishing news about updates. (There seems to be some general problem with the infrastructure with site updates being slow to trickle down.)
I've created #16940 (moved) for the remaining things: whether and how we should move to showing local change notes (only). Commit 8882fd2ca86bc843060556b8126de75046a35f8f in tor-browser-38.2.1esr-5.5-2 has the fix for this bug.
Trac: Status: needs_review to closed Resolution: N/Ato fixed