<?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>202894</bug_id>
          
          <creation_ts>2019-10-13 08:26:30 -0700</creation_ts>
          <short_desc>[GTK][WebInspector] Support for saving data</short_desc>
          <delta_ts>2019-11-26 06:54:50 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>204618</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1579485</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-13 08:26:30 -0700</bug_when>
    <thetext>Implementation of WebInspectorProxy::platformSave() is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579487</commentid>
    <comment_count>1</comment_count>
      <attachid>380843</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-13 08:29:54 -0700</bug_when>
    <thetext>Created attachment 380843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579562</commentid>
    <comment_count>2</comment_count>
      <attachid>380843</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-14 00:41:13 -0700</bug_when>
    <thetext>Comment on attachment 380843
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=380843&amp;action=review

&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:467
&gt; +        GTK_WINDOW(gtk_widget_get_toplevel(m_inspectorView)), GTK_FILE_CHOOSER_ACTION_SAVE, &quot;Save&quot;, &quot;Cancel&quot;));

You need to check the toplevel before using it, you can use WebCore::widgetIsOnscreenToplevelWindow(toplevel) and pass nullptr if it returns false.

&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:470
&gt; +    gtk_file_chooser_set_do_overwrite_confirmation(chooser, true);

TRUE

&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:471
&gt; +    gtk_file_chooser_set_current_name(chooser, suggestedURL.utf8().data());

This expects a name not a URL.

&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:479
&gt; +            if (!base64Decode(content, out, Base64ValidatePadding))

Do we want to decode UTF-16 here?

&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:486
&gt; +            data = content.utf8().data();

We are saving UTF-8 here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579570</commentid>
    <comment_count>3</comment_count>
      <attachid>380843</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-14 01:53:47 -0700</bug_when>
    <thetext>Comment on attachment 380843
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=380843&amp;action=review

&gt;&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:471
&gt;&gt; +    gtk_file_chooser_set_current_name(chooser, suggestedURL.utf8().data());
&gt; 
&gt; This expects a name not a URL.

Actually the argument is not an URL, it&apos;s a filename. I&apos;ll rename it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579571</commentid>
    <comment_count>4</comment_count>
      <attachid>380843</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-10-14 02:01:14 -0700</bug_when>
    <thetext>Comment on attachment 380843
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=380843&amp;action=review

&gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:487
&gt; +            dataLength = strlen(data);

You could use “content.utf8().length()” here instead which is O(1), and avoid
the call to strlen() which is O(n).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579574</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-14 02:21:22 -0700</bug_when>
    <thetext>Committed r251069: &lt;https://trac.webkit.org/changeset/251069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579575</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-10-14 02:21:48 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #4)
&gt; Comment on attachment 380843 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380843&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp:487
&gt; &gt; +            dataLength = strlen(data);
&gt; 
&gt; You could use “content.utf8().length()” here instead which is O(1), and avoid
&gt; the call to strlen() which is O(n).

Indeed, good tip :P</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380843</attachid>
            <date>2019-10-13 08:29:54 -0700</date>
            <delta_ts>2019-10-14 00:41:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202894-20191013162953.patch</filename>
            <type>text/plain</type>
            <size>4031</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjNTU0NmIzNWU2YjQzNDZh
MmUxMTUxZGFiNjkyNzFlMDUwM2NkYzQuLjk5NDViMmUxZDRiNDQ5YWI2MWNmYjhlMGE2YzkxOTA2
ZTM5ZjkxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTAtMTMgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dlYkluc3Bl
Y3Rvcl0gU3VwcG9ydCBmb3Igc2F2aW5nIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2F2ZSgpIG1ldGhvZC4gVGhpcworICAgICAgICBhbGxvd3MgdXNlcnMgdG8gc2F2ZSB0
aGUgaW5zcGVjdG9yIHBlcmZvcm1hbmNlIG1lYXN1cmVtZW50cywgZm9yCisgICAgICAgIGluc3Rh
bmNlLgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6Y2FuU2F2ZSk6CisKIDIwMTktMTAtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCYWNrL0ZvcndhcmQgY2Fj
aGUgZG9lcyBub3Qgd29yayBhZnRlciBkb2luZyBhIGZhdm9yaXRlIG5hdmlnYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3Bw
CmluZGV4IDg1MjcxOTgxNDExMGJkNmE3MTg1ZTlhZjdiNzFmZGZkYTYxMTkzZmUuLjZkOTEwY2Nk
ZmVjZjk5NGVkODE4MTkyYWY4ZmNmZDUzOWEyNmFlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIldLTXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHlDbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5z
cGVjdG9yV2luZG93LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCkBAIC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9HdGtVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTQ1OCw5ICs0NjAsMzcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBib29sLCBib29sKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZl
KGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wg
YmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVEaWFsb2cpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBVTlVTRURfUEFSQU0oZm9yY2VTYXZlRGlhbG9nKTsKKyAgICBHUmVmUHRyPEd0
a0ZpbGVDaG9vc2VyTmF0aXZlPiBkaWFsb2cgPSBhZG9wdEdSZWYoZ3RrX2ZpbGVfY2hvb3Nlcl9u
YXRpdmVfbmV3KCJTYXZlIEZpbGUiLAorICAgICAgICBHVEtfV0lORE9XKGd0a193aWRnZXRfZ2V0
X3RvcGxldmVsKG1faW5zcGVjdG9yVmlldykpLCBHVEtfRklMRV9DSE9PU0VSX0FDVElPTl9TQVZF
LCAiU2F2ZSIsICJDYW5jZWwiKSk7CisKKyAgICBHdGtGaWxlQ2hvb3NlciogY2hvb3NlciA9IEdU
S19GSUxFX0NIT09TRVIoZGlhbG9nLmdldCgpKTsKKyAgICBndGtfZmlsZV9jaG9vc2VyX3NldF9k
b19vdmVyd3JpdGVfY29uZmlybWF0aW9uKGNob29zZXIsIHRydWUpOworICAgIGd0a19maWxlX2No
b29zZXJfc2V0X2N1cnJlbnRfbmFtZShjaG9vc2VyLCBzdWdnZXN0ZWRVUkwudXRmOCgpLmRhdGEo
KSk7CisKKyAgICBpZiAoZ3RrX25hdGl2ZV9kaWFsb2dfcnVuKEdUS19OQVRJVkVfRElBTE9HKGRp
YWxvZy5nZXQoKSkpID09IEdUS19SRVNQT05TRV9BQ0NFUFQpIHsKKyAgICAgICAgR1JlZlB0cjxH
RmlsZT4gZmlsZSA9IGFkb3B0R1JlZihndGtfZmlsZV9jaG9vc2VyX2dldF9maWxlKGNob29zZXIp
KTsKKyAgICAgICAgZ3NzaXplIGRhdGFMZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBk
YXRhOworICAgICAgICBpZiAoYmFzZTY0RW5jb2RlZCkgeworICAgICAgICAgICAgVmVjdG9yPGNo
YXI+IG91dDsKKyAgICAgICAgICAgIGlmICghYmFzZTY0RGVjb2RlKGNvbnRlbnQsIG91dCwgQmFz
ZTY0VmFsaWRhdGVQYWRkaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIG91dC5zaHJpbmtUb0ZpdCgpOworICAgICAgICAgICAgZGF0YSA9IG91dC5kYXRhKCk7Cisg
ICAgICAgICAgICBkYXRhTGVuZ3RoID0gb3V0LnNpemUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGRhdGEgPSBjb250ZW50LnV0ZjgoKS5kYXRhKCk7CisgICAgICAgICAgICBkYXRh
TGVuZ3RoID0gc3RybGVuKGRhdGEpOworICAgICAgICB9CisKKyAgICAgICAgR1VuaXF1ZVB0cjxj
aGFyPiBwYXRoKGdfZmlsZV9nZXRfcGF0aChmaWxlLmdldCgpKSk7CisgICAgICAgIGlmIChnX2Zp
bGVfc2V0X2NvbnRlbnRzKHBhdGguZ2V0KCksIGRhdGEsIGRhdGFMZW5ndGgsIG51bGxwdHIpKQor
ICAgICAgICAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yVUk6OkRpZFNhdmUocGF0aC5nZXQoKSksIG1faW5zcGVjdG9yUGFnZS0+d2ViUGFn
ZUlEKCkpOworICAgIH0KIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BcHBl
bmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwCmluZGV4
IGRiYjJhOTE4MDRiZTEzMjY0OGM5YWQzM2U2ZjAyN2JkZDNmMTEwZjEuLjlkMjVhMWFkZmVjYWUx
NDAxNGViYzQ4MTU1MmE1MTFjNjkyY2ExYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcApAQCAtMzYs
NyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBXZWJJbnNwZWN0b3JVSTo6Y2Fu
U2F2ZSgpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogCiBTdHJp
bmcgV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQo=
</data>
<flag name="review"
          id="396602"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="396617"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>