Slower browser repaint after CEF v96

Issue #3326 wontfix
Emil Kalchev created an issue

I noticed that upgrading from older version to latest version of CefSharp v101, loading of pages using ResourceHandler became slower. The whole analysis is here https://github.com/cefsharp/CefSharp/discussions/4088

After digging further I found that this issue is not related to CefSharp but with Cef. It appeared after upgrade of cef runtime from v96 to v97

Comments (14)

  1. Marshall Greenblatt

    Does the problem reproduce in the CEF sample application?

    Does the problem reproduce in Google Chrome?

    If so, please provide reproduction steps that work in those applications.

  2. Emil Kalchev reporter

    I don’t have skills in C++ to write this in CEF sample application

    Since the problem is reproduced with ResourceHandlers, I don’t know how I can test this in Google Chrome. I tried with two html files and it doesn’t reproduce with latest Chrome

  3. Emil Kalchev reporter

    I try to simulate what I did with CEFSharp. Since you asked if it is reproducible in Google Chrome, and I can’t use ResourceHandlers there so, tried to with two files and I load the html like that “file:///C:/Temp/index1.html”. I don’t see delay between the load from index1.html → index2.html. I think this might be related only to ResourceHandlers because I tried in CefSharp to reproduce it with LoadHtml method which load the html with data:text/html, but it was working fine

  4. Emil Kalchev reporter
      <div class="preview-container wiki-content"><!-- loaded via ajax --></div>
      <div class="mask"></div>
    </div>
    

    </div> </form>

  5. Marshall Greenblatt

    It is understood that resource handlers cannot be tested in Google Chrome. However, there will be substantial differences in performance between file:// load vs server load, and resource handlers are closer in implementation to server load.

    Please place the HTML file(s) on a server (local or remote) and test the load behavior in CEF vs Chrome.

  6. Emil Kalchev reporter

    I was able to reproduce it with CEF Sample app. As you said the html files must be hosted on http server to reproduce it.

    Steps:

    1. Host two html files on the web server with names - index.html and empty.html. index.html is the attached file. empty.html is just “<body></body>”
    2. In CEF Sample app load “localhost\index.html” than navigate to “localhost\empty.html“

    There is delay between hitting enter and having browser draw the empty page. The delay is about ~500ms.

    I downloaded version v96 of the CEF Sample app and the difference is clearly visible - with v96 the empty.html loads immediately.

    This sounds as small delay but for apps that was hosting html locally and the refresh of their native UI was supposed to be in sync with CEF, this becomes a big problem.

    I tried to reproduce this in latest Google Chrome but I couldn’t

  7. Emil Kalchev reporter

    Actually, I was able to reproduce it in Google Chrome. Just don’t use Back and Forward arrows - I guess some caching occurs there.

    It is present in Chrome v100 but no in Chrome v96. Where I am supposed to report that?

  8. Dmitry Azaraev

    @Emil Kalchev Try run chrome and CEF with --disable-back-forward-cache as this sounds related and it was enabled by default relatively recently.

  9. Emil Kalchev reporter

    This was accepted as a bug. For workaround for this issue you can use --disable-features=PaintHoldingCrossOrigin

  10. Log in to comment