View Issue Details

IDProjectCategoryView StatusLast Update
0002976Slicer4Core: Extensionspublic2013-06-16 20:45
Reportercrmullin Assigned Tojcfr  
PriorityurgentSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.2.2-1 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002976: Extensions Manager hangs when a category is selected
Description

Steps to reproduce:

1) Download Slicer4.2.2-1 from the downloads page for MacOS X.
2) Copy to my Applications directory
3) Open Slicer
4) Choose Extension Manager from the View menu (at this point, a list of 15 plugins is displayed with icons)
5) Click on any category (for example, "Segmentation")
6) Get stuck on "Loading extensions" indefinitely (over 5 minutes)
7) No extensions are ever shown.

Additional Information

I am able to download an extension properly, as long as I don't click on any of the categories.

TagsNo tags attached.

Relationships

related to 0002911 closedjcfr extension manager lists many extensions multiple times 

Activities

jcfr

jcfr

2013-02-22 10:56

administrator   ~0008003

Last edited: 2013-02-22 11:08

Based on my discussion with Chris, on MacOSX:

  • work on the nightly build
  • does NOT work on the stable 4.2.2-1
jcfr

jcfr

2013-02-22 11:08

administrator   ~0008004

It is not OS dependent. I observe the same thing on Linux.

jcfr

jcfr

2013-02-22 12:37

administrator   ~0008007

Issue has been identified.

The recent changes allowing to fetch on demand extensions when scrolling required to extend the QWebkit object embedded in Slicer so that it emulates part of the HTML5 Visibility API.

This was done while working on Slicer issue 2911, and the associated changesets are Slicer r21660 [2] and SlicerAppStore commit fd86adc7 [3]

When the slicerappstore page is loaded, it checks if the browser has support for
PageVisibility API [4]:

// Setup scroll pagination and fetch results based on the initial settings
if ($.support.pageVisibility){

[...]

} else {
// If visibility API is not supported, fetch all extensions

[...] // Here is the logic to fetch if no pageVisibility API support

}

The problem occurred when clicking on a category. Indeed, the javascript callback associated with the click event was "applyFilter()" and this function wasn't checking if the pagevisiblity API was present and was assuming the "fetch on demand" mode was enabled. Then a "loading gif" was displayed bu no extension were fetched .. it then give the impression of "hang".

[1] http://na-mic.org/Mantis/view.php?id=2911
[2] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21660
[3] https://github.com/midasplatform/slicerappstore/commit/fd86adc72671858340f881528408b0db181cf2d4

[4] https://github.com/midasplatform/slicerappstore/blob/fd86adc72671858340f881528408b0db181cf2d4/public/js/index/index.index.js#L317

jcfr

jcfr

2013-02-22 13:01

administrator   ~0008008

This has been fixed in the slicerappstore midas plugin. See https://github.com/jcfr/slicerappstore/commit/fb3e94343df37c69f32f9ffc766211c79b88aa6d and https://github.com/midasplatform/slicerappstore/pull/37

As soon as the change have been reviewed, integrated and the server update. It should be possible to click on the category using from Slicer 4.2.2-1.

jcfr

jcfr

2013-02-22 14:33

administrator   ~0008009

Changes have been reviewed, integrated and tested.

@chris: Issue can be closed

Thanks

Issue History

Date Modified Username Field Change
2013-02-22 09:40 crmullin New Issue
2013-02-22 09:40 crmullin Status new => assigned
2013-02-22 09:40 crmullin Assigned To => jcfr
2013-02-22 10:53 jcfr Priority normal => urgent
2013-02-22 10:53 jcfr Target Version => Slicer 4.3.0
2013-02-22 10:56 jcfr Note Added: 0008003
2013-02-22 11:08 jcfr Note Added: 0008004
2013-02-22 11:08 jcfr Note Edited: 0008003
2013-02-22 12:37 jcfr Note Added: 0008007
2013-02-22 12:44 jcfr Relationship added related to 0002911
2013-02-22 13:01 jcfr Note Added: 0008008
2013-02-22 13:01 jcfr Status assigned => resolved
2013-02-22 13:01 jcfr Fixed in Version => Slicer 4.3.0
2013-02-22 13:01 jcfr Resolution open => fixed
2013-02-22 14:33 jcfr Note Added: 0008009
2013-06-16 20:45 crmullin Status resolved => closed