Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8128179

Out-of-memory: Webkit does not get [renderContent] callback for dirty rectangles.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P2
    • Resolution: Not an Issue
    • Affects Version/s: fx2.0
    • Fix Version/s: None
    • Component/s: javafx

      Description

      1. WebNode contains an active content that is dynamically change (oracle.com is a good example)
      2. The dynamic content sends dirty regions to FX.
      3. FX producing the pulse events that is treated in [javafx.scene.web.WevView.handleStagePulse] method.
      4. Inside the method, to skip creating native rendering queue, we analyze an ability for FX to render the WebNode context by following construction
              boolean reallyVisible = impl_isTreeVisible()
                      && getScene() != null
                      && getScene().getWindow() != null
                      && getScene().getWindow().isShowing();
      We need to know about FX ability to render reported dirty regions. Elsewhere the native rendering queues will not be utilized inside
      com.sun.javafx.sg.prism.NGWebView.renderContent and will eat the memory.

      5. Described approach does not work any more for case when an application (sample [Browser] as an example) is minimized or screen saver is in action.

      We need the method that informs us inside the pulse about FX ability to render the dirty region inside [renderContent]. Above mentioned construction with [reallyVisible] seemed worked well in time of RT-12440 and RT-12439 fix.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                apikalev Andrey Pikalev
                Reporter:
                uta Alexey Utkin (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported: