Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 410837

Summary: Missing hamburger and user icon
Product: [ECD] Orion Reporter: Silenio Quarti <Silenio_Quarti>
Component: ClientAssignee: Simon Kaegi <simon_kaegi>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3 CC: ahunter.eclipse, gabriel.luong, ken_walker, simon_kaegi
Version: 3.0Flags: simon_kaegi: review+
Target Milestone: 3.0 RC3   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
screen shot none

Description Silenio Quarti CLA 2013-06-14 12:22:14 EDT
Created attachment 232391 [details]
screen shot

The hamburger and user icons sometimes are missing in the Navigator page (Chrome Windows). I am not sure how to reproduce this problem. It comes and goes. There is an exception in the console that could be related.

build I20130613-2230
Comment 1 Gabriel Luong CLA 2013-06-14 12:34:33 EDT
I see it when a new build comes out. Performing localStorage.clear() fixes it for me.
Comment 2 Anthony Hunter CLA 2013-06-14 13:55:08 EDT
The path of the image is wrong, they are using navigate/../images which does not exist.

The images are not using sprites like they are supposed to. So this will be fixed when I finish off defect 410233 .
Comment 3 Ken Walker CLA 2013-06-14 15:18:37 EDT
Retargeted this 4 months earlier
Comment 4 Simon Kaegi CLA 2013-06-14 16:37:01 EDT
When this happens I also get a "Cannot read property 'root' of undefined" which generally would indicate a problem loading an i18n module. I wonder if we are getting the problem here because an exception is getting thrown.
Comment 5 Anthony Hunter CLA 2013-06-14 16:52:59 EDT
ok, but I really cannot duplicate this issue in Chrome anymore with the changes on Bug 410233 .
Comment 6 Anthony Hunter CLA 2013-06-18 11:01:07 EDT
(In reply to comment #5)
> ok, but I really cannot duplicate this issue in Chrome anymore with the
> changes on Bug 410233 .

I am going to mark resolved, we should reopen if this occurs again.
Comment 7 Anthony Hunter CLA 2013-06-19 10:47:30 EDT
(In reply to comment #6)
> I am going to mark resolved, we should reopen if this occurs again.

I can duplicate with the minified Orion on https://orion.eclipse.org using Chrome.

The exception that silenio attached is not the problem.

Using Chrome dev tools, the first exception is in:
https://orion.eclipse.org/requirejs/require.min.js
Second exception is in:
https://orion.eclipse.org/navigate/built-table.js

Anyone an expert in debugging the minified code?
Comment 8 Anthony Hunter CLA 2013-06-19 10:47:52 EDT
Making major, this would be a must fix.
Comment 9 Anthony Hunter CLA 2013-06-19 10:55:14 EDT
I cannot get the problem to occur on Firefox ESR 17.0.6.
Comment 10 Simon Kaegi CLA 2013-06-20 15:14:53 EDT
When I look at computed style I see background-image: none. However, if I toggle on and off the background-image rule I suddenly see it and its set correctly in Computed Style.
Comment 11 Ken Walker CLA 2013-06-20 15:34:00 EDT
I can't get it to occur if I'm running my self hosted site.  Clear browser, clear localStorage, run http://kens.orion.eclipse.org:8080  and it's fine each time I try it.  That's not the same as https://orion.eclipse.org which is repeatable each time.
Comment 12 Simon Kaegi CLA 2013-06-25 16:59:36 EDT
After digging into this I think I've figured out that the trigger was the page redirect when we first hit the navigate page and move to the login page. 

What I was able to see is that resources that were partially loaded when the redirect occurred would get cached in the browser "session" as effectively canceled. By canceled I mean that they would return nothing on any future requests for the file.

For example, the case I was most easily able to re-create was the case where the call load a script "git/nls/gitmessages.js" via requirejs would always return nothing. If I then opened a new tab the exact same identical request would always succeed.

--
I think this is definitely a bug in Webkit/Blink however I found a workaround. In bootstrap.js we were doing a: ''' window.location = loginURL; ''' when a user was found to be not logged in.

Instead if we did this call in the next tick via setTimeout the problem went away. I think this is actually a little cleaner in terms of our own code as well as the browser.

I've pushed this change after a review from Mark.