BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
2.03k stars 449 forks source link

Manager opens browser from notices without clicking link #4036

Open tomasbrod opened 4 years ago

tomasbrod commented 4 years ago

The boinc manager launches browser window with rosetta@home video without clicking any hyperlink, either:

a) clicking the Notices tab header in the manager or b) every few minutes, with no user action necessary

Steps To Reproduce

  1. be attached to rosetta
  2. start boinc manager
  3. click on notices tab
  4. the rosetta video pops up in browser

alternatively

  1. be attached to rosetta
  2. wait
  3. the rosetta video pops up in browser

Expected behavior Browser window should open only after clicking a link.

System Information

Additional context Bug also affects eFMer's BoincTasks, but does not requite BT to be present. Notice in question in next message.

AenBleidd commented 4 years ago

Can't reproduce this on Windows: BOINC Version: 7.16.11 Windows version: Windows 10 Enterprise 1909 Build 18363.778

tomasbrod commented 4 years ago
<notices>
<notice>
   <title>Coronavirus update from David Baker. Thank you all for your contributions!</title>
   <description><![CDATA[
Here is a short video of David Baker describing some exciting results from <i>de novo</i> designs targeting SARS-Cov-2.<br />
<br />
Thank you all for your contributions to this research!  Although R@h was not directly used for the work described in the publication (link provided below), R@h was used for designing relevant scaffolds. Additionally, there are currently many similar designs that bind SARS-Cov-2 and related targets that were engineered using R@h.<br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/ODEIN5V3yLg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br />
<br />
<a href="https://www.youtube.com/embed/ODEIN5V3yLg" rel="nofollow">https://www.youtube.com/embed/ODEIN5V3yLg</a><br />
<br />
More information is available from the publication, <a href="https://science.sciencemag.org/content/early/2020/09/08/science.abd9909" rel="nofollow">De novo design of picomolar SARS-CoV-2 mini protein inhibitors</a>.
]]></description>
   <create_time>1600726593.000000</create_time>
   <arrival_time>1601067842.622493</arrival_time>
   <is_private>0</is_private>
   <project_name>Rosetta@home</project_name>
   <category></category>
   <link>https://boinc.bakerlab.org/rosetta/forum_thread.php?id=14226</link>
   <guid>https://boinc.bakerlab.org/rosetta/forum_thread.php?id=14226</guid>
</notice>
</notices>

boinc.zip

tomasbrod commented 4 years ago

I think the culprit lies in the iframe element and whatever is used to render the html (gecko?).

AenBleidd commented 4 years ago

Also could be the case because of different versions of wxWidgets BOINC built with. On Windows it's 3.0.1

sam8641 commented 4 years ago

My Linux Debian Buster, BOINC manager 7.14.2 is affected with the same Rosetta notice. Every time I have my Linux Boinc manager connect to any computer with this notice, Firefox opens with video.

On Windows 10 with BOINC 7.16.7, the only time I found it opens web browser with video, is to right click refresh the notices page.

CharlieFenton commented 4 years ago

I can confirm this on Macintosh running BOINC 7.16.11 (using wxWidgets 3.1.0.) As soon as I selected the Notices tab it instantly launched my browser (Safari) with the video. The notice from Rosetta with the video link is the most recent notice, so appears at the top of the Notices window.

CharlieFenton commented 4 years ago

After the first time, the browser with the video does not launch automatically if I select the Notices tab again after having switched to another tab. But if I exit BOINC Manager and relaunch it, selecting the Notices tab once again immediately launches the browser with the video.

CharlieFenton commented 4 years ago

I investigated this. I have a very limited understanding of HTML syntax, but I think the problem occurred because Rosetta@home embedded the video's URL as src="https://www.youtube.com/embed/ODEIN5V3yLg" in addition to href="https://www.youtube.com/embed/ODEIN5V3yLg".

When I remove this line from the file _notices/archive_boinc.bakerlab.org_rosettanotices.php.xml: <iframe width="560" height="315" src="https://www.youtube.com/embed/ODEIN5V3yLg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> it solves the problem while still allowing me to manually launch the video by clicking on the link in the notice.

I suspect they included the src="https://www.youtube.com/embed/ODEIN5V3yLg" to display a preview of the video as a graphic in the notice. Unfortunately, that did not work as intended.

tomasbrod commented 4 years ago

What you highlighted, Charlie, is an iframe tag, it embeds another webpage into the current document. It could be wxwidgets wrong interpretation of iframe, or a script inside that iframe (src) that causes new window to open whenever the notices tab contents reload.

mblumberg commented 4 years ago

Btw, a comment from Rosetta:

I removed the iframe tag in our server response. Let me know if there’s still issues. Thanks.

...Does anyone know: are these messages cached, e.g. will this make the issue go away for users who have already encountered it, or will it only resolve the issue moving forward?

tomasbrod commented 4 years ago

Yes, The messages are cached in the notices folder.