<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>150303</bug_id>
          
          <creation_ts>2015-10-18 09:24:25 -0700</creation_ts>
          <short_desc>[GTK] Accessing default web context before gtk_init results in drawing failure (Gtk-WARNING **: drawing failure for widget &apos;WebKitWebView&apos;: invalid value for an input Visual*)</short_desc>
          <delta_ts>2018-11-26 06:18:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steef435">steefhegeman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dustin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1134346</commentid>
    <comment_count>0</comment_count>
    <who name="Steef435">steefhegeman</who>
    <bug_when>2015-10-18 09:24:25 -0700</bug_when>
    <thetext>On WebKit2GTK+ version 2.10.2, drawing failures occur when (in this order):

1. webkit_web_context_get_default() gets called
2. gtk_init() gets called
3. a window with a WebKitWebView gets shown

In this order, however, no errors occur:

1. gtk_init() gets called
2. webkit_web_context_get_default() gets called
3. a window with a WebKitWebView gets shown

I have attached a minimal example showing this behavior. When running this, the following warnings are printed from time to time:
Gtk-WARNING **: drawing failure for widget &apos;WebKitWebView&apos;: invalid value for an input Visual*

This behavior only started to appear recently, my guess would be from version 2.10.1 onward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134347</commentid>
    <comment_count>1</comment_count>
      <attachid>263423</attachid>
    <who name="Steef435">steefhegeman</who>
    <bug_when>2015-10-18 09:25:12 -0700</bug_when>
    <thetext>Created attachment 263423
Minimal example for reproduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462912</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-09-24 15:01:52 -0700</bug_when>
    <thetext>Interestingly enough, the same kind of warnings are logged when building
Cog (https://github.com/Igalia/cog) with “-DCOG_USE_WEBKITGTK=ON”, and
after I have updated to WebKitGTK+ 2.22.x

While it might be possible to workaround this issue in many cases, it
is very annoying for programs which, for example, fetch the default
context, then its associated WebKitSettings, and change the initial
settings based on CLI flags *before* GTK+ has been initialized (in
Cog GTK+ is initialized by GtkApplication, and the default context
has been retrieved at least once precisely to setup CLI parsing).

A workaround has been to call gtk_init() early anyway, but it feels
dirty to do that: https://github.com/Igalia/cog/pull/63

IMHO it would be great if we could fix this regression, as we don&apos;t
know how many applications out there in the wild depend on this
behaviour, and it would be better to not break them if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476464</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-08 01:32:54 -0800</bug_when>
    <thetext>I can&apos;t reproduce this in current trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476487</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-08 03:18:39 -0800</bug_when>
    <thetext>I still don&apos;t get the error message, but I&apos;m getting a black screen in pages using AC. The problem is that PlatformDisplay::sharedDisplay() is called before gtk_init(), creating a new display instead of reusing the one opened by GTK+ in gtk_init(). This approach doesn&apos;t seem to work anymore when using AC, neither in X11 nor in wayland. The display is created by HardwareAccelerationManager, called when settings are initialized to check if the x server support xdamange and xcomposite in case of x11 and whether the wayland nested compositor failed in case of wayland. Both things are unlikely to happen, and they are already handled by AcceleratedBackingStoreX11 and AcceleratedBackingStoreWayland in their create() method. So, we could probably remove those checks and not change the settings based on system capabilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481087</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-23 01:27:53 -0800</bug_when>
    <thetext>I&apos;ve changed my mind here, we should ensure that gtk init has been initialized before creating the default display. Application that want to handle gtk command line arguments either call gtk_init earlier or use GtkApplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481088</commentid>
    <comment_count>6</comment_count>
      <attachid>355504</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-23 01:31:27 -0800</bug_when>
    <thetext>Created attachment 355504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481141</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-11-23 09:06:59 -0800</bug_when>
    <thetext>GTK+ command line args are deprecated anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481511</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-11-26 06:18:44 -0800</bug_when>
    <thetext>Committed r238492: &lt;https://trac.webkit.org/changeset/238492&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>263423</attachid>
            <date>2015-10-18 09:25:12 -0700</date>
            <delta_ts>2015-10-18 09:25:12 -0700</delta_ts>
            <desc>Minimal example for reproduction</desc>
            <filename>wc-before-init.c</filename>
            <type>text/x-csrc</type>
            <size>371</size>
            <attacher name="Steef435">steefhegeman</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPGd0ay9ndGsuaD4KI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgoKaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQp7CglHdGtXaWRnZXQqIHdpbjsKCUd0a1dpZGdldCog
dmlldzsKCgl3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKTsKCglndGtfaW5pdCgmYXJn
YywgJmFyZ3YpOwoKCXdpbiA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfVE9QTEVWRUwpOwoJ
dmlldyA9IHdlYmtpdF93ZWJfdmlld19uZXcoKTsKCglndGtfY29udGFpbmVyX2FkZChHVEtfQ09O
VEFJTkVSKHdpbiksIHZpZXcpOwoJZ3RrX3dpZGdldF9zaG93X2FsbChHVEtfV0lER0VUKHdpbikp
OwoKCWd0a19tYWluKCk7CglyZXR1cm4gMDsKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355504</attachid>
            <date>2018-11-23 01:31:27 -0800</date>
            <delta_ts>2018-11-23 09:06:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-display.diff</filename>
            <type>text/plain</type>
            <size>2312</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OWNjMTIzMWVhZS4uN2M4MjVmNTMxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0xMS0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWNjZXNzaW5nIGRlZmF1bHQgd2ViIGNvbnRleHQg
YmVmb3JlIGd0a19pbml0IHJlc3VsdHMgaW4gZHJhd2luZyBmYWlsdXJlIChHdGstV0FSTklORyAq
KjogZHJhd2luZyBmYWlsdXJlIGZvciB3aWRnZXQgJ1dlYktpdFdlYlZpZXcnOiBpbnZhbGlkIHZh
bHVlIGZvciBhbiBpbnB1dCBWaXN1YWwqKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRW5zdXJlIGd0ayBoYXMgYmVlbiBpbml0aWFsaXplZCBiZWZvcmUg
dHJ5aW5nIHRvIGdldCB0aGUgZGVmYXVsdCBkaXNwbGF5LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KToKKwogMjAxOC0xMS0yMiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHBvc3QtcmV2
aWV3IGZlZWRiYWNrIGFmdGVyIHIyMzg0MzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IGIxYWM0MGNiOGM3Li5kMjNj
NjA3OTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybURpc3BsYXkuY3BwCkBAIC00Nyw3ICs0Nyw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKEdUSykKLSNpbmNsdWRlIDxnZGsvZ2RrLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFgxMSkKQEAgLTc3LDE1ICs3Nywx
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3BsYXk6OmNy
ZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAjaWYgZGVmaW5lZChHVEtfQVBJX1ZFUlNJT05fMikKICAg
ICByZXR1cm4gUGxhdGZvcm1EaXNwbGF5WDExOjpjcmVhdGUoR0RLX0RJU1BMQVlfWERJU1BMQVko
Z2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSkpOwogI2Vsc2UKLSAgICBHZGtEaXNwbGF5KiBkaXNw
bGF5ID0gZ2RrX2Rpc3BsYXlfbWFuYWdlcl9nZXRfZGVmYXVsdF9kaXNwbGF5KGdka19kaXNwbGF5
X21hbmFnZXJfZ2V0KCkpOworICAgIGlmIChndGtfaW5pdF9jaGVjayhudWxscHRyLCBudWxscHRy
KSkgeworICAgICAgICBHZGtEaXNwbGF5KiBkaXNwbGF5ID0gZ2RrX2Rpc3BsYXlfbWFuYWdlcl9n
ZXRfZGVmYXVsdF9kaXNwbGF5KGdka19kaXNwbGF5X21hbmFnZXJfZ2V0KCkpOwogI2lmIFBMQVRG
T1JNKFgxMSkKLSAgICBpZiAoR0RLX0lTX1gxMV9ESVNQTEFZKGRpc3BsYXkpKQotICAgICAgICBy
ZXR1cm4gUGxhdGZvcm1EaXNwbGF5WDExOjpjcmVhdGUoR0RLX0RJU1BMQVlfWERJU1BMQVkoZGlz
cGxheSkpOworICAgICAgICBpZiAoR0RLX0lTX1gxMV9ESVNQTEFZKGRpc3BsYXkpKQorICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRGlzcGxheVgxMTo6Y3JlYXRlKEdES19ESVNQTEFZX1hESVNQ
TEFZKGRpc3BsYXkpKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0gICAgaWYgKEdE
S19JU19XQVlMQU5EX0RJU1BMQVkoZGlzcGxheSkpCi0gICAgICAgIHJldHVybiBQbGF0Zm9ybURp
c3BsYXlXYXlsYW5kOjpjcmVhdGUoZ2RrX3dheWxhbmRfZGlzcGxheV9nZXRfd2xfZGlzcGxheShk
aXNwbGF5KSk7CisgICAgICAgIGlmIChHREtfSVNfV0FZTEFORF9ESVNQTEFZKGRpc3BsYXkpKQor
ICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZShnZGtfd2F5
bGFuZF9kaXNwbGF5X2dldF93bF9kaXNwbGF5KGRpc3BsYXkpKTsKICNlbmRpZgorICAgIH0KICNl
bmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAo=
</data>
<flag name="review"
          id="372592"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>