Skip to main content

How to fix Chrome frozon issue when loading applet?

I suffered a lot by chrome when embedding the applet into page during these days.
Fortunately, I figure out what the tricky parts of it:)

1) Firstly, we need get rid of all security issues which should be addressed by jarsigner with the following MANIFEST.MF

Manifest-Version: 1.0


Application-Library-Allowable-Codebase: *
Caller-Allowable-Codebase: *
Codebase: *
Permissions: all-permissions

Archiver-Version: Plexus Archiver
Application-Name: XXXXX
Build-Jdk: 1.7.0_45
Built-By: lzheng
Created-By: Apache Maven 3.0.4
Here is the reference for all applet jar manifest: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html
If you know nothing about jarsigner, the chrome frozen issue is out of your ability to resolve it:)

2) After that, the code work perfectly on firefox but randomly freeze the chrome browser which depress me a lot.
Is it a chrome issue? yes and no.
Chrome just didn't handle the exceptions correctly when we call applet method before applet's get actually started. We need to call applet method after applet's start life cycle.

Here is applet's life cycle:
public class Simple extends Applet {

    StringBuffer buffer;

    public void init() {
        System.out.println("initializing... ");
    }

    public void start() {
        System.out.println("starting... ");
    }

    public void stop() {
        System.out.println("stopping... ");
    }

    public void destroy() {
        System.out.println("preparing for unloading...");
    }
}

We need to override the start() function to tell page, the applet  start successfully. 
@Override public void start() { win.eval("onAppletStartHandler();"); //onAppletStartHandler is the callback function defined in JS. }
we put related applet code which are used to get information automatically using applet when page get loaded to "onAppletStartHandler()".


Easy fix, then chrome stuck issue should go away:)



Comments

  1. i did this, and i still get applet hanging on chrome.

    ReplyDelete
  2. I summarized all possible applet stuck issues there, hope it helps.
    http://springflex.blogspot.com/2014/09/my-practices-to-resolve-applet-stuck.html

    ReplyDelete

Post a Comment

Popular posts from this blog

How to fix "ValueError when trying to compile python module with VC Express"

When I tried to compile the python, I always get compile issue as following: ------------ ... File "C:\Python26\lib\ distutils\msvc9compiler.py ", line 358, in initialize vc_env = query_vcvarsall(VERSION, plat_spec) File "C:\Python26\lib\ distutils\msvc9compiler.py ", line 274, in query_vcvarsall raise ValueError(str(list(result.keys()))) ValueError: [u'path'] --------------------- Python community discussed a lot but no solution: http://bugs.python.org/issue7511 The root cause is because the latest visual studio change the *.bat file a lot especially on 64bit env. The python 2.7 didn't update the path accordingly. Based on the assumption above, the following solution worked for me. To install Visual Studio 2008 Express Edition with all required components: 1. Install Microsoft Visual Studio 2008 Express Edition. The main Visual Studio 2008 Express installer is available from (the C++ installer name is vcsetup.exe): https://ww...

How to convert the ResultSet to Stream

Java 8 provided the Stream family and easy operation of it. The way of pipeline usage made the code clear and smart. However, ResultSet is still go with very legacy way to process. Per actual ResultSet usage, it is really helpful if converted as Stream. Here is the simple usage of above: StreamUtils.uncheckedConsumer is required to convert the the SQLException to runtimeException to make the Lamda clear.

How to run odoo(openerp8) in IDE from source on windows

1. install python 2.7 (per openerp8's official doc, python 27 is required.) 2. download get-pip.py from https://bootstrap.pypa.io/get-pip.py , execute the command: python get-pip.py 3. get source of openerp8 from https://github.com/odoo/odoo.git 4. execute the command: pip install -r D:\source_code\odoo\openerp8/requirements.txt . (requirements.txt contains all dependencies. ) The pip will install the python module automatically. However, the real world always bring us the issues because our C++ compile environment is not setup correctly.  we will get the link error when pip try to install psycopg2 (driver to access postgresql db.). Go to  http://www.stickpeople.com/projects/python/win-psycopg/  and choose the compiled binary file directly. For Python-ldap, go to  http://www.lfd.uci.edu/~gohlke/pythonlibs/ 5. Finally, go to http://sourceforge.net/projects/pywin32/files/pywin32 and choose correct version for python-win32service. 6. If you are family with...