ICEfaces
  1. ICEfaces
  2. ICE-7129

inputRichText causes IE8 browser crash

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-2.0.0.GA, 2.0.2
    • Fix Version/s: 3.0.RC2, 3.0, EE-2.0.0.GA_P01
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      IE8
    • Assignee Priority:
      P1

      Description

      Here are the steps to reproduce the issue in the attached test case:

      1) Run application and start on landing page
      2) Navigate to second page by clicking button. Second page contains the inputRichText.
      3) Click inside of inputRichText to set focus.
      4) Navigate back to the previous page by clicking button below the inputRIchText. Browser will hang.

        Activity

        Tyler Johnson created issue -
        Tyler Johnson made changes -
        Field Original Value New Value
        Salesforce Case [5007000000I0Ddb]
        Tyler Johnson made changes -
        Attachment sc10371.war [ 13428 ]
        Ken Fyten made changes -
        Fix Version/s EE-2.0.0.GA_P01 [ 10271 ]
        Fix Version/s 2.1 [ 10241 ]
        Assignee Priority P1
        Assignee Mircea Toma [ mircea.toma ]
        Hide
        Ken Fyten added a comment -

        Carmen says:

        I reproduced the issue (following the steps bellow) in IE 8.0.7600 on Windows 7, and IE 8.0.6001 on Windows XP (icepc4), using ICEfaces 2.0.2 code version deployed locally on tomcat7. This happens only if setting focus in the Input Rich Text.

        IE browser crashes when navigating away from Rich Text to any other component in IE 8.0.6001.
        IE browser crashes when navigating back to Rich Text from any other component in IE 8.0.7600.

        Screen shots attached.

        Show
        Ken Fyten added a comment - Carmen says: I reproduced the issue (following the steps bellow) in IE 8.0.7600 on Windows 7, and IE 8.0.6001 on Windows XP (icepc4), using ICEfaces 2.0.2 code version deployed locally on tomcat7. This happens only if setting focus in the Input Rich Text. IE browser crashes when navigating away from Rich Text to any other component in IE 8.0.6001. IE browser crashes when navigating back to Rich Text from any other component in IE 8.0.7600. Screen shots attached.
        Ken Fyten made changes -
        Attachment testIE8.0.7600.jpg [ 13429 ]
        Attachment testIE8.0.6001.JPG [ 13430 ]
        Hide
        Carmen Cristurean added a comment -

        I also tested this using latest trunk version (#25268), using same browser version (IE 8.0.6001) on Windows XP (icepc4).
        First, there is a JS error when loading component-showcase app (JIRA-7134 has been created for this issue).

        When clicking on Rich Text link an error message is displayed in a popup: "TypeError: Object doesn't support this property or method", error details are bellow.
        If closing this JS error message, Rich Text does not display its content on the page (there is no Input Rich Text). If clicking a second time on Rich Text nothing changes on the page.
        Navigating away from Rich Text to another component works fine, but when selecting again Rich Text the JS error pops up again.

        Webpage error details

        User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDS; .NET4.0C)
        Timestamp: Wed, 17 Aug 2011 20:51:44 UTC

        Message: Object doesn't support this property or method
        Line: 1924
        Char: 5
        Code: 0
        URI: http://localhost:8080/component-showcase/javax.faces.resource/icepush.js.jsf

        Message: Object expected
        Line: 14352745
        Char: 1
        Code: 0
        URI: http://localhost:8080/component-showcase/showcase.jsf

        Show
        Carmen Cristurean added a comment - I also tested this using latest trunk version (#25268), using same browser version (IE 8.0.6001) on Windows XP (icepc4). First, there is a JS error when loading component-showcase app (JIRA-7134 has been created for this issue). When clicking on Rich Text link an error message is displayed in a popup: "TypeError: Object doesn't support this property or method", error details are bellow. If closing this JS error message, Rich Text does not display its content on the page (there is no Input Rich Text). If clicking a second time on Rich Text nothing changes on the page. Navigating away from Rich Text to another component works fine, but when selecting again Rich Text the JS error pops up again. Webpage error details User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDS; .NET4.0C) Timestamp: Wed, 17 Aug 2011 20:51:44 UTC Message: Object doesn't support this property or method Line: 1924 Char: 5 Code: 0 URI: http://localhost:8080/component-showcase/javax.faces.resource/icepush.js.jsf Message: Object expected Line: 14352745 Char: 1 Code: 0 URI: http://localhost:8080/component-showcase/showcase.jsf
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #25285 Fri Aug 19 13:07:23 MDT 2011 mircea.toma ICE-7129 Pass 'true' as parameter to the CKEditor.editor.destroy() function so the CKEditor code will remove the editor instance without trying to restore the element that the iframe replaced when the editor was created.
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/inputrichtext/ckeditor_ext.js
        Hide
        Mircea Toma added a comment -
        Show
        Mircea Toma added a comment - Applied the fix described here: http://jira.icefaces.org/browse/ICE-6714?focusedCommentId=34776&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_34776 . It seems that when while working on ICE-6714 we forgot about ICEfaces2.
        Mircea Toma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Ken Fyten added a comment -

        Need to analyze the root cause of the issue with ICEfaces EE 2.0 level code, which is based on FCKeditor, not the newer CKEditor used by 2.0.2 and 2.1 in the future.

        Show
        Ken Fyten added a comment - Need to analyze the root cause of the issue with ICEfaces EE 2.0 level code, which is based on FCKeditor, not the newer CKEditor used by 2.0.2 and 2.1 in the future.
        Ken Fyten made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Mircea Toma added a comment -

        IE8 crashes while JSF tries to cleanup the replaced elements in browser's document to avoid memory leaks (more on that here: http://weblogs.java.net/blog/driscoll/archive/2009/11/13/ie-memory-management-and-you ). But the crash during cleanup seems to be caused by the presence of one of more dynamically created iframes inside the updated element.

        Show
        Mircea Toma added a comment - IE8 crashes while JSF tries to cleanup the replaced elements in browser's document to avoid memory leaks (more on that here: http://weblogs.java.net/blog/driscoll/archive/2009/11/13/ie-memory-management-and-you ). But the crash during cleanup seems to be caused by the presence of one of more dynamically created iframes inside the updated element.
        Hide
        Mircea Toma added a comment -

        The attached patch removes pre-emptively the included iframes to avoid the hard crash that occurs when iframes are removed by updating innerHTML or outerHTML to the empty string.

        Show
        Mircea Toma added a comment - The attached patch removes pre-emptively the included iframes to avoid the hard crash that occurs when iframes are removed by updating innerHTML or outerHTML to the empty string.
        Mircea Toma made changes -
        Attachment ICE-7129.patch [ 13469 ]
        Mircea Toma made changes -
        Assignee Mircea Toma [ mircea.toma ] Arran Mccullough [ arran.mccullough ]
        Tyler Johnson made changes -
        Assignee Arran Mccullough [ arran.mccullough ] Tyler Johnson [ tyler.johnson ]
        Ken Fyten made changes -
        Assignee Tyler Johnson [ tyler.johnson ] Carmen Cristurean [ ccristurean ]
        Hide
        Carmen Cristurean added a comment -

        Retested using ICEfaces3/trunk revision 26767 in IE 8.0.7601 on Windows7 and found the JS error still occurs:

        Webpage error details

        User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDS; .NET4.0C)
        Timestamp: Wed, 7 Dec 2011 21:59:09 UTC

        Message: Object expected
        Line: 13315273
        Char: 1
        Code: 0
        URI: http://localhost:8080/sc10371/

        Show
        Carmen Cristurean added a comment - Retested using ICEfaces3/trunk revision 26767 in IE 8.0.7601 on Windows7 and found the JS error still occurs: Webpage error details User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDS; .NET4.0C) Timestamp: Wed, 7 Dec 2011 21:59:09 UTC Message: Object expected Line: 13315273 Char: 1 Code: 0 URI: http://localhost:8080/sc10371/
        Ken Fyten made changes -
        Assignee Carmen Cristurean [ ccristurean ] Mircea Toma [ mircea.toma ]
        Hide
        Deryk Sinotte added a comment -

        Another observation that might be related:

        I was running the ACE Showcase from the latest on the trunk and noticed that in the ace:linkButton demo when I press the Action Navigation button that it does a "forward-style" navigation to the new location. Watching the console, I see a lot of extra activity (GETs, etc) where it looks as if it's trying to get resources. This only happens with Mojarra. MyFaces seems to be fine.

        Show
        Deryk Sinotte added a comment - Another observation that might be related: I was running the ACE Showcase from the latest on the trunk and noticed that in the ace:linkButton demo when I press the Action Navigation button that it does a "forward-style" navigation to the new location. Watching the console, I see a lot of extra activity (GETs, etc) where it looks as if it's trying to get resources. This only happens with Mojarra. MyFaces seems to be fine.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #26841 Tue Dec 13 07:59:56 MST 2011 mircea.toma ICE-7129 Modified BridgeSetup to add the mandatory resources first, when some resources are already added they would be replaced without changing their order. Modified PropagatingNavigationHandler to propagate the oldDOM whenever a forward navigation is triggered to allow the dom-diff to run and avoid a full page DOM update. Fixed unescapeHtml() JS function to test for empty string or null input before executing.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/core/src/main/java/org/icefaces/impl/event/BridgeSetup.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/core/src/main/java/org/icefaces/impl/application/PropagatingNavigationHandler.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/core/src/main/javascript/fixjsf.js
        Hide
        Mircea Toma added a comment -

        Modified BridgeSetup to add the mandatory resources first, when some resources are already added they would be replaced without changing their order. Modified PropagatingNavigationHandler to propagate the oldDOM whenever a forward navigation is triggered to allow the dom-diff to run and avoid a full page DOM update. Fixed unescapeHtml() JS function to test for empty string or null input before executing.

        Show
        Mircea Toma added a comment - Modified BridgeSetup to add the mandatory resources first, when some resources are already added they would be replaced without changing their order. Modified PropagatingNavigationHandler to propagate the oldDOM whenever a forward navigation is triggered to allow the dom-diff to run and avoid a full page DOM update. Fixed unescapeHtml() JS function to test for empty string or null input before executing.
        Mircea Toma made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Fix Version/s 3.0.RC2 [ 10313 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Tyler Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: