Eolas patent workaround: Java folks need JavaScript help

Discussion in 'Javascript' started by Mickey Segal, Mar 14, 2006.

  1. Mickey Segal

    Mickey Segal Guest

    The long-simmering Eolas patent dispute:
    http://www.microsoft.com/presspass/press/2003/oct03/10-06EOLASPR.mspx
    has led to an optional Microsoft Update:
    http://support.microsoft.com/kb/912945/en-us
    that creates non-JavaScript problems that can be fixed using JavaScript.

    With the Microsoft update installed, Java applets (as well as other content
    such as Flash videos) are unable to receive user input until an activating
    click or key press. Although this update has not been installed by many
    users yet, is expected to be included in a periodic security update, making
    it very widespread, possibly as early as today.

    For Java applets there is a satisfactory workaround using JavaScript as
    detailed at:
    www.segal.org/java/HelloPatent/
    However, since Java experts are not JavaScript experts, it was not clear
    whether our code was written in the best way. Specifically, we'd appreciate
    input as to whether we need both of the following lines of JavaScript code
    or can get rid of the HEAD part and make a call that includes the file name
    to invoke the function. The relevant JavaScript code is:

    Between the HEAD tags:
    <script src="specifyApplet.js" language="JavaScript"
    type="text/javascript"></script>

    Where I actually insert the applet:
    <script
    language="JavaScript"type="text/javascript">getAppletTags();</script>
     
    Mickey Segal, Mar 14, 2006
    #1
    1. Advertisements

  2. Mickey Segal

    VK Guest


    Shame to California lawyers, shame to California fn greedy academics. I
    was watching this circus since the beginning and just cannot believe
    they went through with this crap... Macromedia lost the independence
    partially cause of it.

    Any way: your way is a bit risky because however small your external
    script is, it is still possible (on bad connection) that it will not be
    loaded and parsed before getAppletTags() call. I would keep all stuff
    together in the applet's insertion point:

    <script type="text/javascript">
    // Applet params separately
    // for easier editing:
    var width = 130;
    var height = 40;
    var code = 'Hello.class';
    // end of params
    var str = '<applet code="' + code
    + '" width="' + width
    + '" heigth="' + height + '"></applet>';
    document.write(str);
    </script>
    <noscript>
    <p>Client-side scripting is disabled
    or not supported</p>
    </noscript>
     
    VK, Mar 14, 2006
    #2
    1. Advertisements

  3. Mickey Segal

    Mickey Segal Guest

    My understanding of Microsoft's change to Internet Explorer is that it
    requires not the use of JavaScript per se but rather loading resources
    external to the HTML page, which as you point out can be unreliable. For
    other reasons we had been generating Java applet tags with JavaScript inside
    HTML pages and that didn't protect against this change in Internet Explorer.
     
    Mickey Segal, Mar 14, 2006
    #3
  4. Mickey Segal

    VK Guest

    Your understanding is not correct. It is all about the infamous patent
    co-owned by University of California and one overly-creative guy. Read
    more at:
    <http://news.com.com/2009-1023_3-5082004.html>
    Also google for "California university media patent"

    Note: whoever thinks that a pure idea cannot be patented - wake up and
    smell the coffee :-(

    There are already some dramatical changes in the US-residing companies.
    For example, microsoft.com site doesn't ask you anymore to install
    Flash player if you have not it installed. Same for others key players.
    Flash and Shockwave is being replaced by images - or require a click to
    start animation.

    As I'm not a lawyer I cannot advise if your JavaScript workaround is an
    escape from the patent:- you better check. If you are outside of the US
    I welcome you to place a big applet with raised finger animated by
    default on your page. :-|
     
    VK, Mar 14, 2006
    #4
  5. Mickey Segal

    Mickey Segal Guest

    The nature of the patent dispute is a secondary issue here - the need to
    work around whatever Microsoft did is the primary issue. Just assembling
    your applet tags using JavaScript is not enough to work around what
    Microsoft did; indeed we used to assemble our applet tags using JavaScript
    previously for other reasons, and that was not enough to work around this
    issue.
     
    Mickey Segal, Mar 14, 2006
    #5
  6. Mickey Segal

    RobG Guest

    Mickey Segal said on 15/03/2006 4:34 AM AEST:
    The language attribute is deprecated so ditch it, keep type.

    If you mean can you do:

    <script src="specifyApplet.js" type="text/javascript">
    getAppletTags();
    </script>


    the answer is no. Wherever an src attribute is specified then:

    "If the src has a URI value, user agents must ignore the
    element's contents and retrieve the script via the URI."

    <URL:http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT>

    So I guess strictly speaking you can do it but it won't work in most
    (nearly all) browsers. There was a recent thread on this but I can't
    find it right now.

    However, the element that loads the script doesn't have to be in the
    head. The script element that loads the .js file must be before any
    script element that calls code in the file, so it may be more convenient
    to use (wrapping allowed deliberately):

    <script src="specifyApplet.js" type="text/javascript"></script><script
    type="text/javascript">getAppletTags();</script>


    You may want to supply an argument to getAppletTags() and you only need
    the first script element once in the document (before the first call to
    getAppetTags()), it doesn't have to be added for every call.
     
    RobG, Mar 15, 2006
    #6
  7. Mickey Segal

    RobG Guest

    RobG, Mar 15, 2006
    #7
  8. Mickey Segal

    The Magpie Guest

    Hell, if you're worried about the patent, take the easy way out. Host
    your site outside the United States so no-one will give a flying fart
    about the stupid thing and you can't get sued.
     
    The Magpie, Mar 15, 2006
    #8
  9. Mickey Segal

    Mickey Segal Guest

    The issue is that Microsoft is patching Internet Explorer, so the problem is
    not my dealing with the patent it is my dealing with what Microsoft did
    because of the patent.

    According to Microsoft's workaround page:
    http://msdn.microsoft.com/library/d.../author/dhtml/overview/activating_activex.asp
    the workaround to what Microsoft did to Internet Explorer is to "load
    controls from external script files".

    Some of the code on Microsoft's workaround page does not have a reference to
    the external js file in the HEAD code, but if that is the best way to get
    the loading started as soon as possible that is OK with me.
     
    Mickey Segal, Mar 15, 2006
    #9
  10. Mickey Segal

    VK Guest

    A clear understanding of patent may give you an answer of how to deal
    with it - because in the reality nothing is changed internally in
    objects, one just need to fing a way to use them while formally staying
    out of the patent.

    The relevant MSDN article is written in Esop language, because
    Microsoft cannot publically (plus on their own server) call to bypass a
    3rd party patent and explain how to do it:- that would be a
    milti-billion mistake.

    So one needs to read between the lines - plus be aware of the patent
    background. Search Google for inspiration ideas.
     
    VK, Mar 16, 2006
    #10
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.