Uploaded image for project: 'PUBLIC - Liferay Faces'
  1. PUBLIC - Liferay Faces
  2. FACES-1435

p_p_auth URL parameter causing DOM diff inefficiency with ICEfaces

    Details

      Description

      While doing some testing with the liferay-ui:input-editor, I found that the p_p_auth URL parameter was being added to ActionURLs and PartialActionURLs during Ajax requests. This is causing DOM-diff inefficiencies with ICEfaces. In the case of the liferay-ui:input-editor, the entire form ends up getting replaced in the browser because the form's "action" attribute contains a slightly different URL.

      It turns out that during the RENDER_PHASE of the portlet lifecycle, the Liferay PortletImpl.renderPortlet(...) method adds the "RENDER_PORTLET" request attribute, which is consulted by the PortletURLImpl.addPortletAuthToken(...) method when URLs are being constructed. But during the RESOURCE_PHASE, Liferay does not add the "RENDER_PORTLET" attribute, and the PortletURLImpl.addPortletAuthToken(...) method behaves differently and ultimately causes the URL to have an additional "p_p_auth" parameter. Since the URL is different, it will cause ICEfaces to detect a DOM-diff, and will unnecessarily replace markup in the DOM.

      UPDATE: August 19, 2013

      The following line has a strikethrough to point out that it was an incorrect fix for this problem. The correct fix appears in FACES-1633.
      The solution is to have the bridge add the attribute before the RENDER_RESPONSE phase of the JSF lifecycle executes, and then remove it after it executes.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                neil.griffin Neil Griffin
                Reporter:
                neil.griffin Neil Griffin
                Participants of an Issue:
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Packages

                  Version Package
                  liferay-faces-3.0.1-legacy-ga2
                  liferay-faces-3.0.1-ga2
                  liferay-faces-3.1.1-ga2
                  liferay-faces-3.2.4-ga5