<?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>69139</bug_id>
          
          <creation_ts>2011-09-30 01:30:12 -0700</creation_ts>
          <short_desc>[UNIX] Add a method to get information for an already loaded plugin module</short_desc>
          <delta_ts>2011-09-30 07:22:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>Gtk, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>69123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475973</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-30 01:30:12 -0700</bug_when>
    <thetext>NetscapePluginModule::getPluginInfo() crashes when called from determineQuirks(). The problem is that determineQuirks() is called when loading a plugin module. Since getPluginInfo() is a static method, when called from determineQuirks() it tries to get or load the plugin module again, the module is now loaded but determineQuirks is called again recursively. A solution to this problem could be adding a private method to get the plugin info for a module already loaded that can be called from determineQuirks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475977</commentid>
    <comment_count>1</comment_count>
      <attachid>109265</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-30 01:36:56 -0700</bug_when>
    <thetext>Created attachment 109265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476065</commentid>
    <comment_count>2</comment_count>
      <attachid>109265</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-30 06:44:57 -0700</bug_when>
    <thetext>Comment on attachment 109265
Patch

Instead of adding getPluginInfo along with pluginInfo, I think it would be safer to ensure that getPluginInfo is safe to call at any time. I say this because it seems to work on Windows and Mac. If the other ports are making that assumption we should try to match it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476071</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-30 07:01:13 -0700</bug_when>
    <thetext>Other ports don&apos;t need to call NetscapePluginModule::getOrCreate() in getPluginInfo(), they use the plugin path directly. We need load the module to get the information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476078</commentid>
    <comment_count>4</comment_count>
      <attachid>109265</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-30 07:12:35 -0700</bug_when>
    <thetext>Comment on attachment 109265
Patch

Hrm. I took another look and I think your method is cleaner than adapting getPluginInfo to allow recursive calls. I think the danger of that happening is pretty low.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476081</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-30 07:22:52 -0700</bug_when>
    <thetext>Committed r96400: &lt;http://trac.webkit.org/changeset/96400&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109265</attachid>
            <date>2011-09-30 01:36:56 -0700</date>
            <delta_ts>2011-09-30 07:12:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-plugin-info-crash.diff</filename>
            <type>text/plain</type>
            <size>4922</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyNTViOTEzLi5kY2NmOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTEtMDktMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtVTklYXSBBZGQgYSBtZXRob2QgdG8gZ2V0IGluZm9ybWF0aW9uIGZvciBh
biBhbHJlYWR5IGxvYWRlZCBwbHVnaW4gbW9kdWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTEzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW5Nb2R1bGUuaDogQWRkIHBsdWdpbkluZm8oKS4KKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lu
cy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6cGx1Z2luSW5mbyk6IFByaXZhdGUgbWV0aG9kIHRv
IGdldAorICAgICAgICB0aGUgcGx1Z2luIGluZm9ybWF0aW9uIGZyb20gdGhlIG1vZHVsZSwgaXQg
bXVzdCBiZSBjYWxsZWQgd2hlbiB0aGUKKyAgICAgICAgbW9kdWxlIGhhcyBiZWVuIGFscmVhZHkg
aW5pdGlhbGl6ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQ
bHVnaW5JbmZvKTogVXNlIHBsdWdpbkluZm8oKSB0bworICAgICAgICBnZXQgaW5mb3JtYXRpb24g
b2YgdGhlIHBsdWdpbiBtb2R1bGUgZm9yIHRoZSBnaXZlbiBwYXRoLgorCiAyMDExLTA5LTI5ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBGb3JjZSBzaW5nbGUgaGVhZGVyIGluY2x1ZGUgaW4gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW5Nb2R1bGUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luTW9kdWxlLmgKaW5kZXggZWQ2ZjE4Mi4uMDhkODc0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbk1vZHVsZS5oCkBAIC02OSw2ICs2OSw3IEBAIHByaXZhdGU6CiAjaWYgUExVR0lOX0FSQ0hJ
VEVDVFVSRShYMTEpCiAgICAgdm9pZCBhcHBseVgxMVF1aXJrc0JlZm9yZUxvYWQoKTsKICAgICBz
dGF0aWMgdm9pZCBzZXRNSU1FRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBtaW1lRGVzY3JpcHRp
b24sIFBsdWdpbk1vZHVsZUluZm8mKTsKKyAgICBib29sIHBsdWdpbkluZm8oUGx1Z2luTW9kdWxl
SW5mbyYpOwogI2VuZGlmCiAKICAgICBib29sIHRyeUdldFNpdGVzV2l0aERhdGEoVmVjdG9yPFN0
cmluZz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCmluZGV4
IGI2MGE1MzYzLi4yM2YzODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVs
ZVgxMS5jcHAKQEAgLTExOCwzNSArMTE4LDIxIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6
OnNldE1JTUVEZXNjcmlwdGlvbihjb25zdCBTdHJpbmcmIG1pbWVEZXNjcmlwdGlvbiwgUGx1CiAg
ICAgfQogfQogCi1ib29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvKGNvbnN0
IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQorYm9vbCBOZXRz
Y2FwZVBsdWdpbk1vZHVsZTo6cGx1Z2luSW5mbyhQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCiB7
Ci0gICAgLy8gVGVtcGFyYXJpbHkgc3VwcHJlc3Mgc3Rkb3V0IGluIHRoaXMgZnVuY3Rpb24gYXMg
cGx1Z2lucyB3aWxsIGJlIGxvYWRlZCBhbmQgc2h1dGRvd24gYW5kIGRlYnVnIGluZm8KLSAgICAv
LyBpcyBsZWFrZWQgdG8gbGF5b3V0IHRlc3Qgb3V0cHV0LgotICAgIFN0ZG91dERldk51bGxSZWRp
cmVjdG9yIHN0ZG91dERldk51bGxSZWRpcmVjdG9yOwotCi0gICAgLy8gV2UgYXJlIGxvYWRpbmcg
dGhlIHBsdWdpbiBoZXJlIHNpbmNlIGl0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzdGFuZGFyZGl6
ZWQgd2F5IHRvCi0gICAgLy8gZ2V0IHRoZSBuZWVkZWQgaW5mb3JtYXRpb25zIGZyb20gYSBVTklY
IHBsdWdpbiB3aXRob3V0IGxvYWRpbmcgaXQuCi0gICAgUmVmUHRyPE5ldHNjYXBlUGx1Z2luTW9k
dWxlPiBwbHVnaW5Nb2R1bGUgPSBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0T3JDcmVhdGUocGx1
Z2luUGF0aCk7Ci0gICAgaWYgKCFwbHVnaW5Nb2R1bGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHBsdWdpbk1vZHVsZS0+aW5jcmVtZW50TG9hZENvdW50KCk7CisgICAgQVNTRVJUKG1f
aXNJbml0aWFsaXplZCk7CiAKLSAgICBwbHVnaW4ucGF0aCA9IHBsdWdpblBhdGg7Ci0gICAgcGx1
Z2luLmluZm8uZmlsZSA9IHBhdGhHZXRGaWxlTmFtZShwbHVnaW5QYXRoKTsKKyAgICBwbHVnaW4u
cGF0aCA9IG1fcGx1Z2luUGF0aDsKKyAgICBwbHVnaW4uaW5mby5maWxlID0gcGF0aEdldEZpbGVO
YW1lKG1fcGx1Z2luUGF0aCk7CiAKLSAgICBNb2R1bGUqIG1vZHVsZSA9IHBsdWdpbk1vZHVsZS0+
bW9kdWxlKCk7CisgICAgTW9kdWxlKiBtb2R1bGUgPSBtX21vZHVsZS5nZXQoKTsKICAgICBOUFBf
R2V0VmFsdWVQcm9jUHRyIE5QUF9HZXRWYWx1ZSA9IG1vZHVsZS0+ZnVuY3Rpb25Qb2ludGVyPE5Q
UF9HZXRWYWx1ZVByb2NQdHI+KCJOUF9HZXRWYWx1ZSIpOwotICAgIGlmICghTlBQX0dldFZhbHVl
KSB7Ci0gICAgICAgIHBsdWdpbk1vZHVsZS0+ZGVjcmVtZW50TG9hZENvdW50KCk7CisgICAgaWYg
KCFOUFBfR2V0VmFsdWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAKICAgICBOUF9H
ZXRNSU1FRGVzY3JpcHRpb25GdW5jUHRyIE5QX0dldE1JTUVEZXNjcmlwdGlvbiA9IG1vZHVsZS0+
ZnVuY3Rpb25Qb2ludGVyPE5QX0dldE1JTUVEZXNjcmlwdGlvbkZ1bmNQdHI+KCJOUF9HZXRNSU1F
RGVzY3JpcHRpb24iKTsKLSAgICBpZiAoIU5QX0dldE1JTUVEZXNjcmlwdGlvbikgewotICAgICAg
ICBwbHVnaW5Nb2R1bGUtPmRlY3JlbWVudExvYWRDb3VudCgpOworICAgIGlmICghTlBfR2V0TUlN
RURlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogCiAgICAgY2hhciog
YnVmZmVyOwogICAgIE5QRXJyb3IgZXJyb3IgPSBOUFBfR2V0VmFsdWUoMCwgTlBQVnBsdWdpbk5h
bWVTdHJpbmcsICZidWZmZXIpOwpAQCAtMTU4LDE2ICsxNDQsMzAgQEAgYm9vbCBOZXRzY2FwZVBs
dWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbyhjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdp
bk1vZHVsZUkKICAgICAgICAgcGx1Z2luLmluZm8uZGVzYyA9IGJ1ZmZlcjsKIAogICAgIGNvbnN0
IGNoYXIqIG1pbWVEZXNjcmlwdGlvbiA9IE5QX0dldE1JTUVEZXNjcmlwdGlvbigpOwotICAgIGlm
ICghbWltZURlc2NyaXB0aW9uKSB7Ci0gICAgICAgIHBsdWdpbk1vZHVsZS0+ZGVjcmVtZW50TG9h
ZENvdW50KCk7CisgICAgaWYgKCFtaW1lRGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9CiAKICAgICBzZXRNSU1FRGVzY3JpcHRpb24obWltZURlc2NyaXB0aW9uLCBwbHVn
aW4pOwogCisgICAgcmV0dXJuIHRydWU7Cit9Citib29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpn
ZXRQbHVnaW5JbmZvKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luTW9kdWxlSW5mbyYg
cGx1Z2luKQoreworICAgIC8vIFRlbXBhcmFyaWx5IHN1cHByZXNzIHN0ZG91dCBpbiB0aGlzIGZ1
bmN0aW9uIGFzIHBsdWdpbnMgd2lsbCBiZSBsb2FkZWQgYW5kIHNodXRkb3duIGFuZCBkZWJ1ZyBp
bmZvCisgICAgLy8gaXMgbGVha2VkIHRvIGxheW91dCB0ZXN0IG91dHB1dC4KKyAgICBTdGRvdXRE
ZXZOdWxsUmVkaXJlY3RvciBzdGRvdXREZXZOdWxsUmVkaXJlY3RvcjsKKworICAgIC8vIFdlIGFy
ZSBsb2FkaW5nIHRoZSBwbHVnaW4gaGVyZSBzaW5jZSBpdCBkb2VzIG5vdCBzZWVtIHRvIGJlIGEg
c3RhbmRhcmRpemVkIHdheSB0bworICAgIC8vIGdldCB0aGUgbmVlZGVkIGluZm9ybWF0aW9ucyBm
cm9tIGEgVU5JWCBwbHVnaW4gd2l0aG91dCBsb2FkaW5nIGl0LgorICAgIFJlZlB0cjxOZXRzY2Fw
ZVBsdWdpbk1vZHVsZT4gcGx1Z2luTW9kdWxlID0gTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldE9y
Q3JlYXRlKHBsdWdpblBhdGgpOworICAgIGlmICghcGx1Z2luTW9kdWxlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBwbHVnaW5Nb2R1bGUtPmluY3JlbWVudExvYWRDb3VudCgpOworICAg
IGJvb2wgcmV0dXJuVmFsdWUgPSBwbHVnaW5Nb2R1bGUtPnBsdWdpbkluZm8ocGx1Z2luKTsKICAg
ICBwbHVnaW5Nb2R1bGUtPmRlY3JlbWVudExvYWRDb3VudCgpOwogCi0gICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luTW9kdWxl
OjpkZXRlcm1pbmVRdWlya3MoKQo=
</data>
<flag name="review"
          id="106468"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>