code: public boolean isClientSideWindowHandlerRequest(FacesContext facesContext)
      {
          if (!isJavaScriptEnabled())
          {
              return false;
          }
  
          String userAgent = getUserAgent(facesContext);
  
          if (userAgent != null &&
              ( userAgent.indexOf("bot")     >= 0 || // Googlebot, etc
                userAgent.indexOf("Bot")     >= 0 || // BingBot, etc
                userAgent.indexOf("Slurp")   >= 0 || // Yahoo Slurp
                userAgent.indexOf("Crawler") >= 0    // various other Crawlers
              ) )
          {
              return false;
          }
  
          return true;
      }
docs: Users can overload this method to define in which scenarios a request should result
  in an 'intercepted' page with proper windowId detection. This can e.g. contain
  blacklisting some userAgents.
  By default the following User-Agents will be served directly:
  <ul>
  <li>.*bot.*</li>
  <li>.*Bot.*</li>
  <li>.*Slurp.*</li>
  <li>.*Crawler.*</li>
  </ul>
  @return <code>true</code> if the Request should get 'intercepted' and the intermediate
  windowhandler.html page should get rendered first. By returning <code>false</code>
  the requested page will get rendered intermediately.
  @see #getUserAgent(javax.faces.context.FacesContext) for determining the UserAgent