Details

    • Type: Bug Bug
    • Status: Open
    • Resolution: Unresolved
    • Affects Version/s: 6.2.0 CE RC1, 6.2.0 CE RC2
    • Fix Version/s: None
    • Component/s: UI Infrastructure
    • Labels:
      None
    • Environment:
      Vanilla Tomcat bundle on MySQL, but any other will do too.
    • Similar Issues:
      Show 5 results 

      Description

      Looking at the the rendered source code of a vanilla
      You'll find following included resource;

      Notice the browserId and languageID

      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/widget-base/assets/skins/sam/widget-base.css&/html/js/aui/widget-stack/assets/skins/sam/widget-stack.css
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/color-base/color-base-min.js&/html/js/aui/event-touch/event-touch-min.js&/html/js/liferay/dockbar.js
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/cssbutton/cssbutton-min.css&/html/js/aui/widget-modality/assets/skins/sam/widget-modality.css&/html/js/aui/resize-base/assets/skins/sam/resize-base.css
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/dd-delegate/dd-delegate-min.js&/html/js/aui/resize-base/resize-base-min.js&/html/js/aui/resize-plugin/resize-plugin-min.js&/html/js/aui/button/button-min.js&/html/js/aui/button-group/button-group-min.js&/html/js/aui/aui-button-core/aui-button-core-min.js&/html/js/aui/aui-toolbar/aui-toolbar-min.js&/html/js/aui/aui-widget-toolbars/aui-widget-toolbars-min.js&/html/js/aui/aui-modal/aui-modal-min.js&/html/js/liferay/widget_zindex.js&/html/js/liferay/util_window.js&/html/js/liferay/language.js&/html/js/aui/transition/transition-min.js
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/escape/escape-min.js&/html/js/aui/aui-loading-mask-deprecated/aui-loading-mask-deprecated-min.js&/html/js/aui/aui-dialog-iframe-deprecated/aui-dialog-iframe-deprecated-min.js&/html/js/aui/widget-autohide/widget-autohide-min.js&/html/js/aui/button-core/button-core-min.js&/html/js/aui/button-plugin/button-plugin-min.js&/html/js/aui/widget-buttons/widget-buttons-min.js&/html/js/aui/widget-modality/widget-modality-min.js&/html/js/aui/dd-ddm-base/dd-ddm-base-min.js&/html/js/aui/dd-drag/dd-drag-min.js&/html/js/aui/dd-plugin/dd-plugin-min.js&/html/js/aui/dd-constrain/dd-constrain-min.js&/html/js/aui/event-flick/event-flick-min.js&/html/js/aui/event-valuechange/event-valuechange-min.js&/html/js/aui/event-tap/event-tap-min.js&/html/js/aui/dd-ddm/dd-ddm-min.js&/html/js/aui/dd-ddm-drop/dd-ddm-drop-min.js&/html/js/aui/dd-drop/dd-drop-min.js&/html/js/aui/dd-drop-plugin/dd-drop-plugin-min.js
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/event-move/event-move-min.js
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/aui/widget-base/assets/skins/sam/widget-base.css&/html/js/aui/widget-stack/assets/skins/sam/widget-stack.css
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/liferay/hudcrumbs.js&/html/js/aui/async-queue/async-queue-min.js&/html/js/aui/gesture-simulate/gesture-simulate-min.js&/html/js/liferay/navigation_interaction.js&/html/js/aui/querystring-stringify/querystring-stringify-min.js&/html/js/aui/aui-io-request/aui-io-request-min.js&/html/js/aui/aui-parse-content/aui-parse-content-min.js&/html/js/liferay/portlet_url.js&/html/js/liferay/sign_in_modal.js
      http://localhost:8080/combo/?browserId=other&minifierType=&languageId=en_US&b=6200&t=1378283750000&/html/js/liferay/language.js
      

      AFAIK only the com.liferay.portal.servlet.filters.minifier.MinifierFilter is actually using the parameter browserId
      The LanguageId parameter seems only used in other request and not the resources.

      I discussed this one a year ago with Jorge Ferrer & Iliyan Peychev.

      The problem lies in the caching of static resources through a Web Server Cache like Apache/Nginx/Varnish.
      Which is promoted by Liferay's official High Availability and performance whitepapers.
      When we support multiple languages while adding the browsers (other/firefox/ie) to the equation, we can have a multifold of possible resources being cached.
      Not only eating up server resources but with a possibility of being unsynchronized to each other.

      Of course this can be mitigated by some smart caching algorithm.

      In my and others opinion it is however doubtful if this is a good method.
      It might get misused in the future by mistake.
      Next station might be adding view ports and devices as parameters too

        Activity

        Show
        Corne added a comment - Actually it has become the AggregateFilter https://github.com/liferay/liferay-portal/blob/6.2.x/portal-impl/src/com/liferay/portal/servlet/filters/aggregate/AggregateFilter.java#L464

          People

          • Assignee:
            SE Support
            Reporter:
            Corne
            Recent user:
            Dustin Ryerson
            Participants of an Issue:
          • Votes:
            2 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Days since last comment:
              1 year, 26 weeks, 4 days ago

              Development

                Structure Helper Panel