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

Bug 316803

Summary: Pages not finishing in Browser lead to hanging Display execution
Product: [Eclipse Project] Platform Reporter: Ryan Levering <rrlevering>
Component: SWTAssignee: Grant Gayed <grant_gayed>
Status: RESOLVED WORKSFORME QA Contact:
Severity: major    
Priority: P3 CC: grant_gayed, Silenio_Quarti
Version: 4.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Reproducer of Display thread hang none

Description Ryan Levering CLA 2010-06-14 14:44:18 EDT
Build Identifier: 3.6m7

There's an underlying bug in Mozilla (https://bugzilla.mozilla.org/show_bug.cgi?id=571593) that causes pages to not finish loading.  Thus SWT Browser doesn't get the completed event in the ProgressListener.  That seems fairly reasonable.  However, this also means that nothing can be run on the UI thread (that wasn't initiated by the UI thread), which seems less desirable.  I'm going to attach a reproducer, but images need to be disabled before it will have the effect.

Reproducible: Always

Steps to Reproduce:
1. Disable images in the SWT Mozilla browser: put a file with permissions.image.enabled=2 in ~/.mozilla/eclipse/user.js
2. Load a page that does not finish loading: http://www.atlanta.net/visitors/calendarofevents.aspx
3. Wait until it looks loaded (10 seconds or something), then run anything on Display.asyncExec or Display.syncExec.  It will never be executed, waiting on a RunnableLock that is never coming back.
Comment 1 Ryan Levering CLA 2010-06-14 14:47:33 EDT
Created attachment 171859 [details]
Reproducer of Display thread hang

Must disable images in SWT Mozilla browser before this will reproduce.
Comment 2 Leo Ufimtsev CLA 2018-04-10 15:29:14 EDT
Mozilla was removed from SWT and was replaced with webkit. Then we ported to Webkit2.

On webkit2 this works afaik as webkit2 is async and runs a callback when page finished loading.

Please open a new bug if the issue still occurs.