<?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>32925</bug_id>
          
          <creation_ts>2009-12-24 17:28:44 -0800</creation_ts>
          <short_desc>[Qt] Add Open File dialog to QtLauncher</short_desc>
          <delta_ts>2009-12-29 10:28:08 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174829</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-24 17:28:44 -0800</bug_when>
    <thetext>We should add an Open File dialog and menu item to QtLauncher to make it convenient for person to open a file.

Currently a person must either specify the path to a file as a command-line argument or type a file URL. Instead, we should have a file dialog to allow the user to open a file without memorizing its path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174830</commentid>
    <comment_count>1</comment_count>
      <attachid>45480</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-24 17:32:17 -0800</bug_when>
    <thetext>Created attachment 45480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174832</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-24 17:37:16 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45480 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175542</commentid>
    <comment_count>3</comment_count>
      <attachid>45480</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-12-29 06:55:46 -0800</bug_when>
    <thetext>Comment on attachment 45480
Patch

LGTM, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175546</commentid>
    <comment_count>4</comment_count>
      <attachid>45480</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-29 07:17:09 -0800</bug_when>
    <thetext>Comment on attachment 45480
Patch


&gt; +        QFileDialog fileDialog(this, tr(&quot;Open&quot;), &quot;&quot;, filter);

Please use QString() instead of &quot;&quot;.

&gt; +        fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
&gt; +        fileDialog.setFileMode(QFileDialog::ExistingFile);
&gt; +        fileDialog.setOptions(QFileDialog::ReadOnly);
&gt; +
&gt; +        if (fileDialog.exec()) {
&gt; +            QString selectedFile = fileDialog.selectedFiles()[0];
&gt; +            if (!selectedFile.isEmpty()) {
&gt; +                QUrl fileURL(&quot;file://&quot; + selectedFile);

This should be done using QUrl::fromLocalFile instead, to convert slashes correctly, support drives on Windows and support spaces in filenames, etc.

&gt; +    void loadURL(const QUrl&amp; url)
&gt; +    {
&gt; +        if (!url.isValid())
&gt; +            return;
&gt; +    
&gt; +        urlEdit-&gt;setText(url.toEncoded());

That doesn&apos;t look correct. toEncoded() returns a QByteArray, urlEdit takes a QString. The conversion from a QByteArray to a QString must be done using a known encoding. It seems the use of toString() would be better.

&gt; +        view-&gt;load(url);
&gt; +        view-&gt;setFocus(Qt::OtherFocusReason);
&gt; +    }
&gt; +
&gt;      // create the status bar, tool bar &amp; menu
&gt;      void setupUI()
&gt;      {
&gt; @@ -515,6 +539,7 @@ private:
&gt;  
&gt;          QMenu* fileMenu = menuBar()-&gt;addMenu(&quot;&amp;File&quot;);
&gt;          QAction* newWindow = fileMenu-&gt;addAction(&quot;New Window&quot;, this, SLOT(newWindow()));
&gt; +        fileMenu-&gt;addAction(tr(&quot;Open File...&quot;), this, SLOT(openFile()), QKeySequence(Qt::CTRL | Qt::Key_O));
&gt;          fileMenu-&gt;addAction(tr(&quot;Print&quot;), this, SLOT(print()), QKeySequence::Print);
&gt;          QAction* screenshot = fileMenu-&gt;addAction(&quot;Screenshot&quot;, this, SLOT(screenshot()));
&gt;          fileMenu-&gt;addAction(&quot;Close&quot;, this, SLOT(close()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175547</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-12-29 07:20:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 45480 [details])
&gt; 
&gt; &gt; +        QFileDialog fileDialog(this, tr(&quot;Open&quot;), &quot;&quot;, filter);
&gt; 
&gt; Please use QString() instead of &quot;&quot;.

What about QLatin1String? 

Also, why are we using tr(), are we ever going to translate the launcher?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175560</commentid>
    <comment_count>6</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-12-29 08:24:36 -0800</bug_when>
    <thetext>What about QGVLauncher? Would be nice to keep the symmetry by implementing the same for QGVLauncher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175578</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-29 08:54:39 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 45480 [details])
&gt; 
&gt; &gt; +        QFileDialog fileDialog(this, tr(&quot;Open&quot;), &quot;&quot;, filter);
&gt; 
&gt; Please use QString() instead of &quot;&quot;.
&gt; 

Will do.

&gt; &gt; +        fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
&gt; &gt; +        fileDialog.setFileMode(QFileDialog::ExistingFile);
&gt; &gt; +        fileDialog.setOptions(QFileDialog::ReadOnly);
&gt; &gt; +
&gt; &gt; +        if (fileDialog.exec()) {
&gt; &gt; +            QString selectedFile = fileDialog.selectedFiles()[0];
&gt; &gt; +            if (!selectedFile.isEmpty()) {
&gt; &gt; +                QUrl fileURL(&quot;file://&quot; + selectedFile);
&gt; 
&gt; This should be done using QUrl::fromLocalFile instead, to convert slashes
&gt; correctly, support drives on Windows and support spaces in filenames, etc.
&gt; 

Will do.

&gt; &gt; +    void loadURL(const QUrl&amp; url)
&gt; &gt; +    {
&gt; &gt; +        if (!url.isValid())
&gt; &gt; +            return;
&gt; &gt; +    
&gt; &gt; +        urlEdit-&gt;setText(url.toEncoded());
&gt; 
&gt; That doesn&apos;t look correct. toEncoded() returns a QByteArray, urlEdit takes a
&gt; QString. The conversion from a QByteArray to a QString must be done using a
&gt; known encoding. It seems the use of toString() would be better.

Will do. Will also make this change to line 221 &lt;http://trac.webkit.org/browser/trunk/WebKitTools/QtLauncher/main.cpp?rev=52601#L221&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175582</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-29 09:07:56 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 45480 [details] [details])
&gt; &gt; 
&gt; &gt; &gt; +        QFileDialog fileDialog(this, tr(&quot;Open&quot;), &quot;&quot;, filter);
&gt; &gt; 
&gt; &gt; Please use QString() instead of &quot;&quot;.
&gt; 
&gt; What about QLatin1String?

Is it better to use a QLatin1String over a QString? From the API for QFileDialog &lt;http://doc.trolltech.com/4.6/qfiledialog.html&gt; it is sufficient to pass a QString.

&gt; 
&gt; Also, why are we using tr(), are we ever going to translate the launcher?

I can remove it if you want? For your reference, tr() appears at following places in the code:

Line 85: &lt;http://trac.webkit.org/browser/trunk/WebKitTools/QtLauncher/main.cpp?rev=52601#L85&gt;
Line 520: &lt;http://trac.webkit.org/browser/trunk/WebKitTools/QtLauncher/main.cpp?rev=52601#L520&gt;
Line 555: &lt;http://trac.webkit.org/browser/trunk/WebKitTools/QtLauncher/main.cpp?rev=52601#L555&gt;
Line 582: &lt;http://trac.webkit.org/browser/trunk/WebKitTools/QtLauncher/main.cpp?rev=52601#L582&gt;

We should probably adopt an all or nothing approach to internationalization of QtLauncher. I think we should support possible &quot;future&quot; translations of the app.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175585</commentid>
    <comment_count>9</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-12-29 09:14:01 -0800</bug_when>
    <thetext>&gt; &gt; What about QLatin1String?
&gt; 
&gt; Is it better to use a QLatin1String over a QString? From the API for
&gt; QFileDialog &lt;http://doc.trolltech.com/4.6/qfiledialog.html&gt; it is sufficient to
&gt; pass a QString.

QLatin1String is good for a string constant, since it avoids a copy.
However, in the above case, it is supposed to be a null string, so just use QString() as Simon suggested.

&gt; 
&gt; &gt; 
&gt; &gt; Also, why are we using tr(), are we ever going to translate the launcher?
&gt; 
&gt; I can remove it if you want? For your reference, tr() appears at following
&gt; places in the code:

My take: leave the tr as is, then we can have another patch that un-tr everything (if needed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175587</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-29 09:18:19 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; What about QGVLauncher? Would be nice to keep the symmetry by implementing the
&gt; same for QGVLauncher.

Sure. I would suggest we do this in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175590</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-29 09:20:38 -0800</bug_when>
    <thetext>Will make changes suggested by Simon Hausmann before I land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175616</commentid>
    <comment_count>12</comment_count>
      <attachid>45611</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-29 10:12:22 -0800</bug_when>
    <thetext>Created attachment 45611
Patch

After talking with Ariya on IRC, updated patch to include similar changes to QGVLauncher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175618</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-29 10:13:22 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45611 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175625</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-29 10:28:08 -0800</bug_when>
    <thetext>Committed in &lt;http://trac.webkit.org/changeset/52626&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45480</attachid>
            <date>2009-12-24 17:32:17 -0800</date>
            <delta_ts>2009-12-29 10:12:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug32925.patch</filename>
            <type>text/plain</type>
            <size>3331</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDUyNTUyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTItMjQgIERhbmllbCBCYXRlcyAgPGRi
YXRlc0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjkyNQor
CisgICAgICAgIEFkZHMgYW4gT3BlbiBGaWxlIGRpYWxvZyB0byBtYWtlIGl0IGNvbnZlbmllbnQg
dG8gb3BlbiBhIGZpbGUKKyAgICAgICAgdG8gdmlldyBpbiB0aGUgYnJvd3Nlci4KKworICAgICAg
ICBDdXJyZW50bHkgYSBwZXJzb24gbXVzdCBlaXRoZXIgc3BlY2lmeSB0aGUgcGF0aCB0byBhIGZp
bGUgYXMgYQorICAgICAgICBjb21tYW5kLWxpbmUgYXJndW1lbnQgb3IgdHlwZSBhIGZpbGUgVVJM
LiBJbnN0ZWFkLCB3ZSBzaG91bGQKKyAgICAgICAgaGF2ZSBhIGZpbGUgZGlhbG9nIHRvIGFsbG93
IGEgcGVyc29uIHRvIG9wZW4gYSBmaWxlIHdpdGhvdXQKKyAgICAgICAgbWVtb3JpemluZyBpdHMg
cGF0aC4KKworICAgICAgICAqIFF0TGF1bmNoZXIvbWFpbi5jcHA6CisgICAgICAgIChNYWluV2lu
ZG93OjpvcGVuRmlsZSk6IEFkZGVkLgorICAgICAgICAoTWFpbldpbmRvdzo6Y2hhbmdlTG9jYXRp
b24pOiBNb3ZlZCBjb2RlIHRvIGxvYWQgVVJMIGludG8gbWV0aG9kCisgICAgICAgIE1haW5XaW5k
b3c6OmxvYWRVUkwuCisgICAgICAgIChNYWluV2luZG93Ojpsb2FkVVJMKTogQWRkZWQuCisgICAg
ICAgIChNYWluV2luZG93OjpzZXR1cFVJKTogQWRkZWQgbWVudSBpdGVtIE9wZW4gRmlsZS4KKwog
MjAwOS0xMi0yMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdFRvb2xzL1F0TGF1bmNoZXIvbWFpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvUXRMYXVuY2hlci9tYWluLmNwcAkocmV2aXNp
b24gNTI1NDMpCisrKyBXZWJLaXRUb29scy9RdExhdW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMzAsMTcgKzMzMCwzMSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZCBzbG90czoKIAor
ICAgIHZvaWQgb3BlbkZpbGUoKQorICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IFFTdHJpbmcg
ZmlsdGVyKCJIVE1MIEZpbGVzICgqLmh0bSAqLmh0bWwpOztUZXh0IEZpbGVzICgqLnR4dCk7O0lt
YWdlIEZpbGVzICgqLmdpZiAqLmpwZyAqLnBuZyk7O0FsbCBGaWxlcyAoKikiKTsKKworICAgICAg
ICBRRmlsZURpYWxvZyBmaWxlRGlhbG9nKHRoaXMsIHRyKCJPcGVuIiksICIiLCBmaWx0ZXIpOwor
ICAgICAgICBmaWxlRGlhbG9nLnNldEFjY2VwdE1vZGUoUUZpbGVEaWFsb2c6OkFjY2VwdE9wZW4p
OworICAgICAgICBmaWxlRGlhbG9nLnNldEZpbGVNb2RlKFFGaWxlRGlhbG9nOjpFeGlzdGluZ0Zp
bGUpOworICAgICAgICBmaWxlRGlhbG9nLnNldE9wdGlvbnMoUUZpbGVEaWFsb2c6OlJlYWRPbmx5
KTsKKworICAgICAgICBpZiAoZmlsZURpYWxvZy5leGVjKCkpIHsKKyAgICAgICAgICAgIFFTdHJp
bmcgc2VsZWN0ZWRGaWxlID0gZmlsZURpYWxvZy5zZWxlY3RlZEZpbGVzKClbMF07CisgICAgICAg
ICAgICBpZiAoIXNlbGVjdGVkRmlsZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBRVXJs
IGZpbGVVUkwoImZpbGU6Ly8iICsgc2VsZWN0ZWRGaWxlKTsKKyAgICAgICAgICAgICAgICBsb2Fk
VVJMKGZpbGVVUkwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgdm9p
ZCBjaGFuZ2VMb2NhdGlvbigpCiAgICAgewogICAgICAgICBRU3RyaW5nIHN0cmluZyA9IHVybEVk
aXQtPnRleHQoKTsKICAgICAgICAgUVVybCB1cmwgPSB1cmxGcm9tVXNlcklucHV0KHN0cmluZyk7
CiAgICAgICAgIGlmICh1cmwuc2NoZW1lKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgdXJsID0g
UVVybCgiaHR0cDovLyIgKyBzdHJpbmcgKyAiLyIpOwotICAgICAgICBpZiAodXJsLmlzVmFsaWQo
KSkgewotICAgICAgICAgICAgdXJsRWRpdC0+c2V0VGV4dCh1cmwudG9FbmNvZGVkKCkpOwotICAg
ICAgICAgICAgdmlldy0+bG9hZCh1cmwpOwotICAgICAgICAgICAgdmlldy0+c2V0Rm9jdXMoUXQ6
Ok90aGVyRm9jdXNSZWFzb24pOwotICAgICAgICB9CisgICAgICAgIGxvYWRVUkwodXJsKTsKICAg
ICB9CiAKICAgICB2b2lkIGxvYWRGaW5pc2hlZCgpCkBAIC00ODQsNiArNDk4LDE2IEBAIHByaXZh
dGU6CiAgICAgUVZlY3RvcjxpbnQ+IHpvb21MZXZlbHM7CiAgICAgaW50IGN1cnJlbnRab29tOwog
CisgICAgdm9pZCBsb2FkVVJMKGNvbnN0IFFVcmwmIHVybCkKKyAgICB7CisgICAgICAgIGlmICgh
dXJsLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAgICAgdXJsRWRp
dC0+c2V0VGV4dCh1cmwudG9FbmNvZGVkKCkpOworICAgICAgICB2aWV3LT5sb2FkKHVybCk7Cisg
ICAgICAgIHZpZXctPnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKKyAgICB9CisKICAg
ICAvLyBjcmVhdGUgdGhlIHN0YXR1cyBiYXIsIHRvb2wgYmFyICYgbWVudQogICAgIHZvaWQgc2V0
dXBVSSgpCiAgICAgewpAQCAtNTE1LDYgKzUzOSw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgUU1l
bnUqIGZpbGVNZW51ID0gbWVudUJhcigpLT5hZGRNZW51KCImRmlsZSIpOwogICAgICAgICBRQWN0
aW9uKiBuZXdXaW5kb3cgPSBmaWxlTWVudS0+YWRkQWN0aW9uKCJOZXcgV2luZG93IiwgdGhpcywg
U0xPVChuZXdXaW5kb3coKSkpOworICAgICAgICBmaWxlTWVudS0+YWRkQWN0aW9uKHRyKCJPcGVu
IEZpbGUuLi4iKSwgdGhpcywgU0xPVChvcGVuRmlsZSgpKSwgUUtleVNlcXVlbmNlKFF0OjpDVFJM
IHwgUXQ6OktleV9PKSk7CiAgICAgICAgIGZpbGVNZW51LT5hZGRBY3Rpb24odHIoIlByaW50Iiks
IHRoaXMsIFNMT1QocHJpbnQoKSksIFFLZXlTZXF1ZW5jZTo6UHJpbnQpOwogICAgICAgICBRQWN0
aW9uKiBzY3JlZW5zaG90ID0gZmlsZU1lbnUtPmFkZEFjdGlvbigiU2NyZWVuc2hvdCIsIHRoaXMs
IFNMT1Qoc2NyZWVuc2hvdCgpKSk7CiAgICAgICAgIGZpbGVNZW51LT5hZGRBY3Rpb24oIkNsb3Nl
IiwgdGhpcywgU0xPVChjbG9zZSgpKSk7Cg==
</data>
<flag name="review"
          id="27529"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45611</attachid>
            <date>2009-12-29 10:12:22 -0800</date>
            <delta_ts>2009-12-29 10:16:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug32925_2.patch</filename>
            <type>text/plain</type>
            <size>6574</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNTI2MjUpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTItMjkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjkyNQorCisgICAg
ICAgIEFkZHMgYW4gT3BlbiBGaWxlIGRpYWxvZyB0byBtYWtlIGl0IGNvbnZlbmllbnQgdG8gb3Bl
biBhIGZpbGUKKyAgICAgICAgdG8gdmlldyBpbiB0aGUgYnJvd3Nlci4KKworICAgICAgICAqIFFH
VkxhdW5jaGVyL21haW4uY3BwOgorICAgICAgICAoTWFpbldpbmRvdzo6bG9hZCk6IE1vZGlmaWVk
IHRvIGNhbGwgbG9hZFVSTC4KKyAgICAgICAgKE1haW5XaW5kb3c6Om9wZW5GaWxlKTogQWRkZWQu
CisgICAgICAgIChNYWluV2luZG93Ojpsb2FkVVJMKTogQWRkZWQuCisgICAgICAgIChNYWluV2lu
ZG93OjpidWlsZFVJKTogQWRkZWQgbWVudSBpdGVtIE9wZW4gRmlsZS4KKwogMjAwOS0xMi0yOSAg
Um9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHJvYmVydGhvZ2FuLm5ldD4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYktpdC9xdC9RR1ZMYXVuY2hlci9tYWluLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvUUdWTGF1bmNoZXIvbWFpbi5jcHAJKHJldmlzaW9uIDUy
NjEzKQorKysgV2ViS2l0L3F0L1FHVkxhdW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTYsOSArMjk2LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoIWRlZHVjZWRVcmwuaXNWYWxp
ZCgpKQogICAgICAgICAgICAgZGVkdWNlZFVybCA9IFFVcmwoImh0dHA6Ly8iICsgdXJsICsgIi8i
KTsKIAotICAgICAgICB1cmxFZGl0LT5zZXRUZXh0KGRlZHVjZWRVcmwudG9FbmNvZGVkKCkpOwot
ICAgICAgICBzY2VuZS0+d2ViVmlldygpLT5sb2FkKGRlZHVjZWRVcmwpOwotICAgICAgICBzY2Vu
ZS0+d2ViVmlldygpLT5zZXRGb2N1cyhRdDo6T3RoZXJGb2N1c1JlYXNvbik7CisgICAgICAgIGxv
YWRVUkwoZGVkdWNlZFVybCk7CiAgICAgfQogCiAgICAgUVdlYlBhZ2UqIHBhZ2UoKSBjb25zdApA
QCAtMzA3LDYgKzMwNSwyMyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQgc2xvdHM6CisK
KyAgICB2b2lkIG9wZW5GaWxlKCkKKyAgICB7CisgICAgICAgIHN0YXRpYyBjb25zdCBRU3RyaW5n
IGZpbHRlcigiSFRNTCBGaWxlcyAoKi5odG0gKi5odG1sKTs7VGV4dCBGaWxlcyAoKi50eHQpOztJ
bWFnZSBGaWxlcyAoKi5naWYgKi5qcGcgKi5wbmcpOztBbGwgRmlsZXMgKCopIik7CisKKyAgICAg
ICAgUUZpbGVEaWFsb2cgZmlsZURpYWxvZyh0aGlzLCB0cigiT3BlbiIpLCBRU3RyaW5nKCksIGZp
bHRlcik7CisgICAgICAgIGZpbGVEaWFsb2cuc2V0QWNjZXB0TW9kZShRRmlsZURpYWxvZzo6QWNj
ZXB0T3Blbik7CisgICAgICAgIGZpbGVEaWFsb2cuc2V0RmlsZU1vZGUoUUZpbGVEaWFsb2c6OkV4
aXN0aW5nRmlsZSk7CisgICAgICAgIGZpbGVEaWFsb2cuc2V0T3B0aW9ucyhRRmlsZURpYWxvZzo6
UmVhZE9ubHkpOworCisgICAgICAgIGlmIChmaWxlRGlhbG9nLmV4ZWMoKSkgeworICAgICAgICAg
ICAgUVN0cmluZyBzZWxlY3RlZEZpbGUgPSBmaWxlRGlhbG9nLnNlbGVjdGVkRmlsZXMoKVswXTsK
KyAgICAgICAgICAgIGlmICghc2VsZWN0ZWRGaWxlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICBsb2FkVVJMKFFVcmw6OmZyb21Mb2NhbEZpbGUoc2VsZWN0ZWRGaWxlKSk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICB2b2lkIGNoYW5nZUxvY2F0aW9uKCkKICAgICB7CiAgICAgICAgIGxvYWQo
dXJsRWRpdC0+dGV4dCgpKTsKQEAgLTM2OCw2ICszODMsMTcgQEAgcHVibGljIHNsb3RzOgogICAg
IH0KIAogcHJpdmF0ZToKKworICAgIHZvaWQgbG9hZFVSTChjb25zdCBRVXJsJiB1cmwpCisgICAg
eworICAgICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
CisgICAgICAgIHVybEVkaXQtPnNldFRleHQodXJsLnRvU3RyaW5nKCkpOworICAgICAgICBzY2Vu
ZS0+d2ViVmlldygpLT5sb2FkKHVybCk7CisgICAgICAgIHNjZW5lLT53ZWJWaWV3KCktPnNldEZv
Y3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKKyAgICB9CisKICAgICB2b2lkIGJ1aWxkVUkoKQog
ICAgIHsKICAgICAgICAgUVdlYlBhZ2UqIHBhZ2UgPSBzY2VuZS0+d2ViVmlldygpLT5wYWdlKCk7
CkBAIC0zODQsNiArNDEwLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBRTWVudSogZmlsZU1lbnUg
PSBtZW51QmFyKCktPmFkZE1lbnUoIiZGaWxlIik7CiAgICAgICAgIGZpbGVNZW51LT5hZGRBY3Rp
b24oIk5ldyBXaW5kb3ciLCB0aGlzLCBTTE9UKG5ld1dpbmRvdygpKSk7CisgICAgICAgIGZpbGVN
ZW51LT5hZGRBY3Rpb24oIk9wZW4gRmlsZS4uLiIsIHRoaXMsIFNMT1Qob3BlbkZpbGUoKSksIFFL
ZXlTZXF1ZW5jZShRdDo6Q1RSTCB8IFF0OjpLZXlfTykpOwogICAgICAgICBmaWxlTWVudS0+YWRk
QWN0aW9uKCJDbG9uZSB2aWV3IiwgdGhpcywgU0xPVChjbG9uZSgpKSk7CiAgICAgICAgIGZpbGVN
ZW51LT5hZGRBY3Rpb24oIkNsb3NlIiwgdGhpcywgU0xPVChjbG9zZSgpKSk7CiAKSW5kZXg6IFdl
YktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUyNjI1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMjkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjkyNQorCisgICAgICAg
IEFkZHMgYW4gT3BlbiBGaWxlIGRpYWxvZyB0byBtYWtlIGl0IGNvbnZlbmllbnQgdG8gb3BlbiBh
IGZpbGUKKyAgICAgICAgdG8gdmlldyBpbiB0aGUgYnJvd3Nlci4KKworICAgICAgICBDdXJyZW50
bHkgYSBwZXJzb24gbXVzdCBlaXRoZXIgc3BlY2lmeSB0aGUgcGF0aCB0byBhIGZpbGUgYXMgYQor
ICAgICAgICBjb21tYW5kLWxpbmUgYXJndW1lbnQgb3IgdHlwZSBhIGZpbGUgVVJMLiBJbnN0ZWFk
LCB3ZSBzaG91bGQKKyAgICAgICAgaGF2ZSBhIGZpbGUgZGlhbG9nIHRvIGFsbG93IGEgcGVyc29u
IHRvIG9wZW4gYSBmaWxlIHdpdGhvdXQKKyAgICAgICAgbWVtb3JpemluZyBpdHMgcGF0aC4KKwor
ICAgICAgICAqIFF0TGF1bmNoZXIvbWFpbi5jcHA6CisgICAgICAgIChNYWluV2luZG93OjpNYWlu
V2luZG93KTogQ2hhbmdlZCB1cmxFZGl0LT5zZXRUZXh0KHF1cmwudG9FbmNvZGVkKCkpCisgICAg
ICAgIHRvIHVybEVkaXQtPnNldFRleHQocXVybC50b1N0cmluZygpKS4gCisgICAgICAgIChNYWlu
V2luZG93OjpvcGVuRmlsZSk6IEFkZGVkLgorICAgICAgICAoTWFpbldpbmRvdzo6Y2hhbmdlTG9j
YXRpb24pOiBNb3ZlZCBjb2RlIHRvIGxvYWQgVVJMIGludG8gbWV0aG9kCisgICAgICAgIE1haW5X
aW5kb3c6OmxvYWRVUkwuCisgICAgICAgIChNYWluV2luZG93Ojpsb2FkVVJMKTogQWRkZWQuCisg
ICAgICAgIChNYWluV2luZG93OjpzZXR1cFVJKTogQWRkZWQgbWVudSBpdGVtIE9wZW4gRmlsZS4K
KwogMjAwOS0xMi0yOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCklu
ZGV4OiBXZWJLaXRUb29scy9RdExhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFRvb2xzL1F0TGF1bmNoZXIvbWFpbi5jcHAJKHJldmlzaW9uIDUyNjEzKQorKysgV2ViS2l0VG9v
bHMvUXRMYXVuY2hlci9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDcgKzIxOCw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKHF1cmwuc2NoZW1lKCkuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgcXVybCA9IFFVcmwoImh0dHA6Ly8iICsgdXJsICsgIi8iKTsKICAgICAgICAgaWYgKHF1cmwu
aXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICB1cmxFZGl0LT5zZXRUZXh0KHF1cmwudG9FbmNvZGVk
KCkpOworICAgICAgICAgICAgdXJsRWRpdC0+c2V0VGV4dChxdXJsLnRvU3RyaW5nKCkpOwogICAg
ICAgICAgICAgdmlldy0+bG9hZChxdXJsKTsKICAgICAgICAgfQogCkBAIC0zMzIsMTcgKzMzMiwy
OSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZCBzbG90czoKIAorICAgIHZvaWQgb3BlbkZpbGUoKQor
ICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IFFTdHJpbmcgZmlsdGVyKCJIVE1MIEZpbGVzICgq
Lmh0bSAqLmh0bWwpOztUZXh0IEZpbGVzICgqLnR4dCk7O0ltYWdlIEZpbGVzICgqLmdpZiAqLmpw
ZyAqLnBuZyk7O0FsbCBGaWxlcyAoKikiKTsKKworICAgICAgICBRRmlsZURpYWxvZyBmaWxlRGlh
bG9nKHRoaXMsIHRyKCJPcGVuIiksIFFTdHJpbmcoKSwgZmlsdGVyKTsKKyAgICAgICAgZmlsZURp
YWxvZy5zZXRBY2NlcHRNb2RlKFFGaWxlRGlhbG9nOjpBY2NlcHRPcGVuKTsKKyAgICAgICAgZmls
ZURpYWxvZy5zZXRGaWxlTW9kZShRRmlsZURpYWxvZzo6RXhpc3RpbmdGaWxlKTsKKyAgICAgICAg
ZmlsZURpYWxvZy5zZXRPcHRpb25zKFFGaWxlRGlhbG9nOjpSZWFkT25seSk7CisKKyAgICAgICAg
aWYgKGZpbGVEaWFsb2cuZXhlYygpKSB7CisgICAgICAgICAgICBRU3RyaW5nIHNlbGVjdGVkRmls
ZSA9IGZpbGVEaWFsb2cuc2VsZWN0ZWRGaWxlcygpWzBdOworICAgICAgICAgICAgaWYgKCFzZWxl
Y3RlZEZpbGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGxvYWRVUkwoUVVybDo6ZnJvbUxv
Y2FsRmlsZShzZWxlY3RlZEZpbGUpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHZvaWQgY2hh
bmdlTG9jYXRpb24oKQogICAgIHsKICAgICAgICAgUVN0cmluZyBzdHJpbmcgPSB1cmxFZGl0LT50
ZXh0KCk7CiAgICAgICAgIFFVcmwgdXJsID0gdXJsRnJvbVVzZXJJbnB1dChzdHJpbmcpOwogICAg
ICAgICBpZiAodXJsLnNjaGVtZSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHVybCA9IFFVcmwo
Imh0dHA6Ly8iICsgc3RyaW5nICsgIi8iKTsKLSAgICAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsK
LSAgICAgICAgICAgIHVybEVkaXQtPnNldFRleHQodXJsLnRvRW5jb2RlZCgpKTsKLSAgICAgICAg
ICAgIHZpZXctPmxvYWQodXJsKTsKLSAgICAgICAgICAgIHZpZXctPnNldEZvY3VzKFF0OjpPdGhl
ckZvY3VzUmVhc29uKTsKLSAgICAgICAgfQorICAgICAgICBsb2FkVVJMKHVybCk7CiAgICAgfQog
CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoKQpAQCAtNDg2LDYgKzQ5OCwxNiBAQCBwcml2YXRlOgog
ICAgIFFWZWN0b3I8aW50PiB6b29tTGV2ZWxzOwogICAgIGludCBjdXJyZW50Wm9vbTsKIAorICAg
IHZvaWQgbG9hZFVSTChjb25zdCBRVXJsJiB1cmwpCisgICAgeworICAgICAgICBpZiAoIXVybC5p
c1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgCisgICAgICAgIHVybEVkaXQtPnNl
dFRleHQodXJsLnRvU3RyaW5nKCkpOworICAgICAgICB2aWV3LT5sb2FkKHVybCk7CisgICAgICAg
IHZpZXctPnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKKyAgICB9CisKICAgICAvLyBj
cmVhdGUgdGhlIHN0YXR1cyBiYXIsIHRvb2wgYmFyICYgbWVudQogICAgIHZvaWQgc2V0dXBVSSgp
CiAgICAgewpAQCAtNTE3LDYgKzUzOSw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgUU1lbnUqIGZp
bGVNZW51ID0gbWVudUJhcigpLT5hZGRNZW51KCImRmlsZSIpOwogICAgICAgICBRQWN0aW9uKiBu
ZXdXaW5kb3cgPSBmaWxlTWVudS0+YWRkQWN0aW9uKCJOZXcgV2luZG93IiwgdGhpcywgU0xPVChu
ZXdXaW5kb3coKSkpOworICAgICAgICBmaWxlTWVudS0+YWRkQWN0aW9uKHRyKCJPcGVuIEZpbGUu
Li4iKSwgdGhpcywgU0xPVChvcGVuRmlsZSgpKSwgUUtleVNlcXVlbmNlKFF0OjpDVFJMIHwgUXQ6
OktleV9PKSk7CiAgICAgICAgIGZpbGVNZW51LT5hZGRBY3Rpb24odHIoIlByaW50IiksIHRoaXMs
IFNMT1QocHJpbnQoKSksIFFLZXlTZXF1ZW5jZTo6UHJpbnQpOwogICAgICAgICBRQWN0aW9uKiBz
Y3JlZW5zaG90ID0gZmlsZU1lbnUtPmFkZEFjdGlvbigiU2NyZWVuc2hvdCIsIHRoaXMsIFNMT1Qo
c2NyZWVuc2hvdCgpKSk7CiAgICAgICAgIGZpbGVNZW51LT5hZGRBY3Rpb24oIkNsb3NlIiwgdGhp
cywgU0xPVChjbG9zZSgpKSk7Cg==
</data>
<flag name="review"
          id="27686"
          type_id="1"
          status="+"
          setter="ariya.hidayat"
    />
          </attachment>
      

    </bug>

</bugzilla>