<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GTK] Version 2.14.4 does not paint most websites"
   href="https://bugs.webkit.org/show_bug.cgi?id=168128#c10">Comment # 10</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GTK] Version 2.14.4 does not paint most websites"
   href="https://bugs.webkit.org/show_bug.cgi?id=168128">bug 168128</a>
              from <span class="vcard"><a class="email" href="mailto:aperez&#64;igalia.com" title="Adrian Perez &lt;aperez&#64;igalia.com&gt;"> <span class="fn">Adrian Perez</span></a>
</span></b>
        <pre>Created <span class=""><a href="attachment.cgi?id=301303&amp;action=diff" name="attach_301303" title="Patch to add debug-prints in DrawingAreaImpl.cpp">attachment 301303</a> <a href="attachment.cgi?id=301303&amp;action=edit" title="Patch to add debug-prints in DrawingAreaImpl.cpp">[details]</a></span>
Patch to add debug-prints in DrawingAreaImpl.cpp

With this patch applied, running MiniBrowser results in the following output:

  % run-minibrowser --gtk --debug        
  Starting MiniBrowser.
 DrawingAreaImpl: instantiated!
  updatePreferences
    AC enabled: yes
    AC forced: no
    layerTreeHost: 0x7fea80741fdd
  updateBackingStoreState
    m_forceRepaintAfterBackingStoreStateUpdate: no
  enterAcceleratedCompositingMode((nil))
  setNeedsDisplay
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplay()
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  ...
  (keeps repeating until resizing the window)
  ...
  mainFrameContentSizeChanged
    m_layerTreeHost -&gt; delegating
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  ...
  (keeps repeating)

The output with “WEBKIT_DISABLE_COMPOSITING_MODE=1” is the same except for
the 4th line, which report “AC enabled: no”. The, with AC forced, the output
becomes:

  % WEBKIT_FORCE_COMPOSITING_MODE=1 run-minibrowser --gtk --debug
  Starting MiniBrowser.
  DrawingAreaImpl: instantiated!
  updatePreferences
    AC enabled: yes
    AC forced: yes
    layerTreeHost: 0x7f7997961fdd
    will call enterAcceleratedCompositingMode(nullptr)
  enterAcceleratedCompositingMode((nil))
  updateBackingStoreState
    m_forceRepaintAfterBackingStoreStateUpdate: no
  setNeedsDisplay
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplay()
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  ...
  (repeats a few times)
  ...
  mainFrameContentSizeChanged
    m_layerTreeHost -&gt; delegating
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  setRootCompositingLayer
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  didUpdateBackingStoreState
  setNeedsDisplay
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplay()
  sendDidUpdateBackingStoreState
  setRootCompositingLayer
  setRootCompositingLayer
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  setNeedsDisplayInRect
    m_layerTreeHost -&gt; AcceleratedDrawingArea::setNeedsDisplayInRect()
  mainFrameContentSizeChanged
    m_layerTreeHost -&gt; delegating
  mainFrameContentSizeChanged
    m_layerTreeHost -&gt; delegating

With AC disabled, methods in AcceleratedDrawingArea are also called, which sounds
odd in my head (note that I am not familiar with the AC vs. non-AC code paths, I am
just pointing out what sounds odd to me). What should be the condition that determines
the code path to be followed? Currently there are are many checks for a valid pointer
DrawingAreaImpl::m_layerTreeHost, which seems to be one the main decision point to
decide whether to forward calls to methods in AcceleratedDrawingArea or not, but it
seems that ::m_layerTreeHost is always a valid pointer despite the values used for
the environment variables... Is that correct? If it's going to be always valid, why
all the checks?</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>