<?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>58847</bug_id>
          
          <creation_ts>2011-04-18 15:59:04 -0700</creation_ts>
          <short_desc>[Qt] REGRESSION(r84099): It made two Qt API tests fail</short_desc>
          <delta_ts>2011-06-06 08:20:59 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38654</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Rafael Brandao">rafael.lobo</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>388134</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-04-18 15:59:04 -0700</bug_when>
    <thetext>FAIL!  : tst_QWebPage::testOptionalJSObjects() Compared values are not the same
   Actual (testFlag(webPage2, QWebSettings::LocalStorageEnabled, &quot;localStorage&quot;, true)): 0
   Expected (true): 1
   Loc: [/home/webkitbuildbot/slaves/release32bit/buildslave/qt-linux-release/build/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp(2275)]

FAIL!  : tst_QWebPage::errorPageExtensionInFrameset() Received a fatal error.
   Loc: [Unknown file(0)]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394913</commentid>
    <comment_count>1</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-04-28 16:45:17 -0700</bug_when>
    <thetext>I may have found a piece of contradiction on SecurityOrigin&apos;s constructor. You can read the following:

    // These protocols do not create security origins; the owner frame provides the origin
    if (m_protocol == &quot;about&quot; || m_protocol == &quot;javascript&quot;)
        m_protocol = &quot;&quot;;

    (...)

    if (m_protocol.isEmpty())
        m_isUnique = true;


If it is marked as unique, then it will be created. This check for empty protocol was added on r84099.

But in this test, you get an empty url as a parameter on constructor, and then it sets its protocol as empty, so it&apos;ll mark its security origin as unique, and this makes impossible to make use of local storage.

I&apos;ll try to figure out why it&apos;s coming there already empty. If anyone knows more about this, I would appreciate some help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394979</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-28 17:35:42 -0700</bug_when>
    <thetext>&gt; If it is marked as unique, then it will be created.

This is the constructor.  We can&apos;t avoid creating an object.

&gt; But in this test, you get an empty url as a parameter on constructor, and then it sets its protocol as empty, so it&apos;ll mark its security origin as unique, and this makes impossible to make use of local storage.

Correct.  URLs with empty schemes can&apos;t use local storage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397347</commentid>
    <comment_count>3</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-03 13:48:56 -0700</bug_when>
    <thetext>I&apos;ve just realized that if instead of setting HTML without a baseURL you set this base URL to any valid url, like &quot;http://localhost&quot; or, let&apos;s say, &quot;http://google.com&quot;, the tests will pass. The difference is this:

webPage.currentFrame()-&gt;setHtml(QString(&quot;&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;&quot;), QUrl()); // This cannot access local storage.

webPage.currentFrame()-&gt;setHtml(QString(&quot;&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;&quot;), QUrl(&quot;http://localhost&quot;)); // And this can access local storage.

As user of QWebPage, I would think that not setting a baseURL would be the same as using &quot;about:blank&quot; as baseURL. Indeed it is working like this, but it looks like it&apos;s the opposite. If you pass &quot;about:blank&quot; it will change it to a blank baseURL. As it is blank url, it won&apos;t recognize any protocol on it, not allowing it to make any use of local storage. This check was added to address a previous bug, so I&apos;m puzzled now. In this case, when the user wants to make use of local storage with his own substitute HTML, should we change the baseURL to allow him to do so? If so, what would be the best to put, localhost? Or it&apos;s best for him to disable this feature and put a note in the documentation that he won&apos;t be able to do it (by the way I don&apos;t like this idea)?

I can&apos;t help much but to ask, so I&apos;ll appreciate any feedback. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401373</commentid>
    <comment_count>4</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-10 11:32:30 -0700</bug_when>
    <thetext>Hey Laszlo, what do you think about this change to allow your test to work? I really don&apos;t know what it should be, as about:blank origins are now globally unique and cannot use local storage. Perhaps adding a QWebSetting to force it to create the security origin would be a great solution. Do you have any suggestion?

I&apos;ve also noticed that in this test the local storage path is not set, so it creates a local storage that is not persistent, which is a bit weird. But in this test it may not be important.

Any feedback will be greatly appreciated. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401379</commentid>
    <comment_count>5</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-10 11:37:28 -0700</bug_when>
    <thetext>I forgot to say that this strange behavior (not persistent local storage) was already predicted in WebKit, but never confirmed: https://bugs.webkit.org/show_bug.cgi?id=25894</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401388</commentid>
    <comment_count>6</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-05-10 11:52:00 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Do you have any suggestion?

Rafael, I think that you should change this test to get a proper baseUrl, since the point of the test is not about whether we have a baseUrl or not -- but about how QWebSettings affect JS objects available. And note that test is still &quot;broken&quot; (QEXPECT_FAIL just tell us we know it&apos;s broken), see bug 29867.

Then create another test (and a new bug) that will explicitly check the behavior we expect for setHtml() regarding local storage (with empty baseUrl, and also specified baseUrl).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401562</commentid>
    <comment_count>7</comment_count>
      <attachid>93026</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-10 15:22:48 -0700</bug_when>
    <thetext>Created attachment 93026
Changed baseURL to allow them to create a local storage when needed.

This patch fixes this test so it can test what it was designed to test. But I&apos;ve reported the bug that was found (https://bugs.webkit.org/show_bug.cgi?id=60589), so we will hopefully find a great solution to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401607</commentid>
    <comment_count>8</comment_count>
      <attachid>93026</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-05-10 16:07:28 -0700</bug_when>
    <thetext>Comment on attachment 93026
Changed baseURL to allow them to create a local storage when needed.

I think having a valid security origin in order to get local storage is reasonable.

But, I r- because I think you should have test for both behavior. Testing that &quot;no security origin&quot;-&gt;&quot;local storage disabled&quot; would be good to avoid future regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402271</commentid>
    <comment_count>9</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-11 14:14:41 -0700</bug_when>
    <thetext>Ok, in this case I&apos;ll modify testOptionalJSObjects to test it in both scenarios. Thanks a lot for your input. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402422</commentid>
    <comment_count>10</comment_count>
      <attachid>93214</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-11 16:52:18 -0700</bug_when>
    <thetext>Created attachment 93214
The failing test now works and tests what it was supposed to do, but also added a new one to make sure the opposite scenario wouldn&apos;t work.

I&apos;ve originally thought to modify testOptionalJSObjects, but I&apos;ve found myself with a big test. So I decided to only change it to work and then added the new test which does some tests to assure that local storage can&apos;t be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403065</commentid>
    <comment_count>11</comment_count>
      <attachid>93214</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-12 12:15:43 -0700</bug_when>
    <thetext>Comment on attachment 93214
The failing test now works and tests what it was supposed to do, but also added a new one to make sure the opposite scenario wouldn&apos;t work.

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

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2301
&gt; +static inline bool checkLocalStorageVisibility(QWebPage&amp; webPage, bool localStorageEnabled)

Why inline? It&apos;s tests, performance does not matter. :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403067</commentid>
    <comment_count>12</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-12 12:16:19 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 93214 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93214&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2301
&gt; &gt; +static inline bool checkLocalStorageVisibility(QWebPage&amp; webPage, bool localStorageEnabled)
&gt; 
&gt; Why inline? It&apos;s tests, performance does not matter. :D

Or does not count as much as other places. But it&apos;s no big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403069</commentid>
    <comment_count>13</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-12 12:18:09 -0700</bug_when>
    <thetext>I agree. I was just following the pattern I&apos;ve saw there. :P
But look, if you perform tests quickly, wouldn&apos;t that be a good thing? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409610</commentid>
    <comment_count>14</comment_count>
      <attachid>93214</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2011-05-25 06:30:03 -0700</bug_when>
    <thetext>Comment on attachment 93214
The failing test now works and tests what it was supposed to do, but also added a new one to make sure the opposite scenario wouldn&apos;t work.

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

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2287
&gt; +    webPage1.currentFrame()-&gt;setHtml(QString(&quot;&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;&quot;), QUrl(&quot;http://www.example.com&quot;));
&gt; +    webPage2.currentFrame()-&gt;setHtml(QString(&quot;&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;&quot;), QUrl(&quot;http://www.example.com&quot;));
&gt;  

I would not use http:// here ... a local unexistent path would not be enough?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409614</commentid>
    <comment_count>15</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-05-25 06:59:50 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 93214 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93214&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2287
&gt; &gt; +    webPage1.currentFrame()-&gt;setHtml(QString(&quot;&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;&quot;), QUrl(&quot;http://www.example.com&quot;));
&gt; &gt; +    webPage2.currentFrame()-&gt;setHtml(QString(&quot;&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;&quot;), QUrl(&quot;http://www.example.com&quot;));
&gt; &gt;  
&gt; 
&gt; I would not use http:// here ... a local unexistent path would not be enough?

It would work as well, but I&apos;ve used that example url because I&apos;ve noticed people using it very often on those tests. But it won&apos;t actually load anything from that page because I&apos;ve specified a substitute data on it, if that&apos;s the concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414360</commentid>
    <comment_count>16</comment_count>
      <attachid>93214</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-06-02 12:55:28 -0700</bug_when>
    <thetext>Comment on attachment 93214
The failing test now works and tests what it was supposed to do, but also added a new one to make sure the opposite scenario wouldn&apos;t work.

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

Like mentioned on IRC, can we get a test where checkLocalStorageVisiblity() returns true, as well?

&gt; Source/WebKit/qt/ChangeLog:10
&gt; +        Specified a valid url to allow the failing test to work and
&gt; +        get its security origin. Also added a new test to check the
&gt; +        opposite situation, when the origin is globally unique, so
&gt; +        local storage can&apos;t be used.
&gt; +        
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=58847

The format for ChangeLog is typically:
$BugName
$BugURL

$MoreInformation

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2309
&gt; +    // Local storage&apos;s accessibility depends on its security origin, which depends on base url.

accessibility -&gt; visibility

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2319
&gt; +    QCOMPARE(checkLocalStorageVisibility(webPage, true),  false);

Two spaces.

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2324
&gt; +    QCOMPARE(checkLocalStorageVisibility(webPage, true),  false);

Ditto.

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2329
&gt; +    QCOMPARE(checkLocalStorageVisibility(webPage, true),  false);

Ditto.

&gt; Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:2334
&gt; +    QCOMPARE(checkLocalStorageVisibility(webPage, true),  false);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415053</commentid>
    <comment_count>17</comment_count>
      <attachid>95939</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2011-06-03 11:51:54 -0700</bug_when>
    <thetext>Created attachment 95939
modified new test so it could also check for positive scenario (also changed its name)

I&apos;ve added more negative tests in the meantime, and the new ones that would make use of local storage. I was wondering if I should keep this in two separated tests, but for now it seemed right to me to keep them all together as it would be better for understanding the relationship between base url and local storage.

Any feedbacks are welcome. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415111</commentid>
    <comment_count>18</comment_count>
      <attachid>95939</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-06-03 13:03:54 -0700</bug_when>
    <thetext>Comment on attachment 95939
modified new test so it could also check for positive scenario (also changed its name)

Glorious! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415222</commentid>
    <comment_count>19</comment_count>
      <attachid>95939</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-03 14:53:16 -0700</bug_when>
    <thetext>Comment on attachment 95939
modified new test so it could also check for positive scenario (also changed its name)

Clearing flags on attachment: 95939

Committed r88065: &lt;http://trac.webkit.org/changeset/88065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415224</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-03 14:53:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415847</commentid>
    <comment_count>21</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-06-06 08:20:59 -0700</bug_when>
    <thetext>Revision r88065 cherry-picked into qtwebkit-2.2 with commit 98ac1d2 &lt;http://gitorious.org/webkit/qtwebkit/commit/98ac1d2&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93026</attachid>
            <date>2011-05-10 15:22:48 -0700</date>
            <delta_ts>2011-05-11 16:52:18 -0700</delta_ts>
            <desc>Changed baseURL to allow them to create a local storage when needed.</desc>
            <filename>patch-optional-js-objects.diff</filename>
            <type>text/plain</type>
            <size>1718</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggNWJiMjI2Zi4uODU5ZDRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMS0wNS0xMCAgUmFmYWVsIEJyYW5kYW8gIDxyYWZhZWwubG9ib0BvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgRGVmaW5lIGEgdmFsaWQgYmFzZSBVUkwgdG8gbWFrZSB0aGUgdGVzdGluZyBw
YWdlcyB0byBub3QKKyAgICAgICAgaGF2ZSBhIGdsb2JhbGx5IHVuaXF1ZSBzZWN1cml0eSBvcmln
aW4gYW5kIGFsbG93aW5nIHRoZW0KKyAgICAgICAgdG8gbWFrZSB1c2Ugb2YgbG9jYWwgc3RvcmFn
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4ODQ3
CisKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAo
dHN0X1FXZWJQYWdlOjp0ZXN0T3B0aW9uYWxKU09iamVjdHMpOgorCiAyMDExLTA1LTEwICBBZGVt
YXIgZGUgU291emEgUmVpcyBKci4gIDxhZGVtYXIucmVpc0BvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCBiNGMxMTkxLi5jOTVkYTcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2Uu
Y3BwCkBAIC0yMjgxLDggKzIyODEsOCBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6dGVzdE9wdGlvbmFs
SlNPYmplY3RzKCkKICAgICBRV2ViUGFnZSB3ZWJQYWdlMTsKICAgICBRV2ViUGFnZSB3ZWJQYWdl
MjsKIAotICAgIHdlYlBhZ2UxLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmcoIjxodG1s
Pjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCkpOwotICAgIHdlYlBhZ2UyLmN1cnJl
bnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1s
PiIpLCBRVXJsKCkpOworICAgIHdlYlBhZ2UxLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJp
bmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJodHRwOi8vdGVzdCIp
KTsKKyAgICB3ZWJQYWdlMi5jdXJyZW50RnJhbWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48
Ym9keT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiaHR0cDovL3Rlc3QiKSk7CiAKICAgICBR
RVhQRUNUX0ZBSUwoIiIsIkZlYXR1cmUgZW5hYmxlZC9kaXNhYmxlZCBjaGVja2luZyBwcm9ibGVt
LiBMb29rIGF0IGJ1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk4NjciLCBDb250aW51
ZSk7CiAgICAgUUNPTVBBUkUodGVzdEZsYWcod2ViUGFnZTEsIFFXZWJTZXR0aW5nczo6T2ZmbGlu
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkLCAiYXBwbGljYXRpb25DYWNoZSIsIGZhbHNlKSwg
ZmFsc2UpOwo=
</data>
<flag name="review"
          id="86105"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93214</attachid>
            <date>2011-05-11 16:52:18 -0700</date>
            <delta_ts>2011-06-03 11:51:54 -0700</delta_ts>
            <desc>The failing test now works and tests what it was supposed to do, but also added a new one to make sure the opposite scenario wouldn&apos;t work.</desc>
            <filename>local-storage-origin.diff</filename>
            <type>text/plain</type>
            <size>4110</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggYWEyZDA3Mi4uOWJiMmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMS0wNS0xMSAgUmFmYWVsIEJyYW5kYW8gIDxyYWZhZWwubG9ib0BvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNwZWNpZmllZCBhIHZhbGlkIHVybCB0byBhbGxvdyB0aGUgZmFpbGluZyB0ZXN0IHRvIHdv
cmsgYW5kCisgICAgICAgIGdldCBpdHMgc2VjdXJpdHkgb3JpZ2luLiBBbHNvIGFkZGVkIGEgbmV3
IHRlc3QgdG8gY2hlY2sgdGhlCisgICAgICAgIG9wcG9zaXRlIHNpdHVhdGlvbiwgd2hlbiB0aGUg
b3JpZ2luIGlzIGdsb2JhbGx5IHVuaXF1ZSwgc28KKyAgICAgICAgbG9jYWwgc3RvcmFnZSBjYW4n
dCBiZSB1c2VkLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU4ODQ3CisKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwOgorICAgICAgICAodHN0X1FXZWJQYWdlOjp0ZXN0T3B0aW9uYWxKU09iamVjdHMpOgor
ICAgICAgICAoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KToKKyAgICAgICAgKHRzdF9RV2Vi
UGFnZTo6dGVzdExvY2FsU3RvcmFnZVdpdGhVbmlxdWVPcmlnaW4pOgorCiAyMDExLTA1LTExICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9x
d2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFn
ZS5jcHAKaW5kZXggYjRjMTE5MS4uN2EyZDkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcApAQCAtMTE5LDYgKzExOSw3IEBAIHByaXZh
dGUgc2xvdHM6CiAgICAgdm9pZCBwcm90ZWN0QmluZGluZ3NSdW50aW1lT2JqZWN0c0Zyb21Db2xs
ZWN0b3IoKTsKICAgICB2b2lkIGxvY2FsVVJMU2NoZW1lcygpOwogICAgIHZvaWQgdGVzdE9wdGlv
bmFsSlNPYmplY3RzKCk7CisgICAgdm9pZCB0ZXN0TG9jYWxTdG9yYWdlV2l0aFVuaXF1ZU9yaWdp
bigpOwogICAgIHZvaWQgdGVzdEVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKCk7CiAgICAgdm9pZCBj
b25zb2xlT3V0cHV0KCk7CiAgICAgdm9pZCBpbnB1dE1ldGhvZHNfZGF0YSgpOwpAQCAtMjI4MSw4
ICsyMjgyLDggQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OnRlc3RPcHRpb25hbEpTT2JqZWN0cygpCiAg
ICAgUVdlYlBhZ2Ugd2ViUGFnZTE7CiAgICAgUVdlYlBhZ2Ugd2ViUGFnZTI7CiAKLSAgICB3ZWJQ
YWdlMS5jdXJyZW50RnJhbWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9keT50ZXN0PC9i
b2R5PjwvaHRtbD4iKSwgUVVybCgpKTsKLSAgICB3ZWJQYWdlMi5jdXJyZW50RnJhbWUoKS0+c2V0
SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9keT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgpKTsK
KyAgICB3ZWJQYWdlMS5jdXJyZW50RnJhbWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9k
eT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpKTsK
KyAgICB3ZWJQYWdlMi5jdXJyZW50RnJhbWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9k
eT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpKTsK
IAogICAgIFFFWFBFQ1RfRkFJTCgiIiwiRmVhdHVyZSBlbmFibGVkL2Rpc2FibGVkIGNoZWNraW5n
IHByb2JsZW0uIExvb2sgYXQgYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg2NyIs
IENvbnRpbnVlKTsKICAgICBRQ09NUEFSRSh0ZXN0RmxhZyh3ZWJQYWdlMSwgUVdlYlNldHRpbmdz
OjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsICJhcHBsaWNhdGlvbkNhY2hlIiwg
ZmFsc2UpLCBmYWxzZSk7CkBAIC0yMjk3LDYgKzIyOTgsNDIgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6
OnRlc3RPcHRpb25hbEpTT2JqZWN0cygpCiAgICAgUUNPTVBBUkUodGVzdEZsYWcod2ViUGFnZTIs
IFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCwgImxvY2FsU3RvcmFnZSIsIGZhbHNl
KSwgdHJ1ZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0xvY2FsU3RvcmFnZVZpc2li
aWxpdHkoUVdlYlBhZ2UmIHdlYlBhZ2UsIGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZCkKK3sKKyAg
ICB3ZWJQYWdlLnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3Rv
cmFnZUVuYWJsZWQsIGxvY2FsU3RvcmFnZUVuYWJsZWQpOworICAgIHJldHVybiB3ZWJQYWdlLm1h
aW5GcmFtZSgpLT5ldmFsdWF0ZUphdmFTY3JpcHQoUVN0cmluZygiKHdpbmRvdy5sb2NhbFN0b3Jh
Z2UgIT0gdW5kZWZpbmVkKSIpKS50b0Jvb2woKTsKK30KKwordm9pZCB0c3RfUVdlYlBhZ2U6OnRl
c3RMb2NhbFN0b3JhZ2VXaXRoVW5pcXVlT3JpZ2luKCkKK3sKKyAgICAvLyBMb2NhbCBzdG9yYWdl
J3MgYWNjZXNzaWJpbGl0eSBkZXBlbmRzIG9uIGl0cyBzZWN1cml0eSBvcmlnaW4sIHdoaWNoIGRl
cGVuZHMgb24gYmFzZSB1cmwuCisgICAgLy8gVGhpcyB3aWxsIHRlc3QgaXQgd2l0aCBiYXNlIHVy
bHMgdGhhdCBnZXQgYSBnbG9iYWxseSB1bmlxdWUgb3JpZ2luLCB3aGljaCBtYXkgbm90IGJlIGFi
bGUKKyAgICAvLyB0byB1c2UgbG9jYWwgc3RvcmFnZSBldmVuIGlmIHRoZSBmZWF0dXJlIGlzIGVu
YWJsZWQuIEJlZm9yZSBldmVyeSB0ZXN0IGNhc2UgaXQgY2hlY2tzIGlmCisgICAgLy8gbG9jYWwg
c3RvcmFnZSBpcyBub3QgYWxyZWFkeSB2aXNpYmxlLgorCisgICAgUVdlYlBhZ2Ugd2ViUGFnZTsK
KworICAgIHdlYlBhZ2UuY3VycmVudEZyYW1lKCktPnNldEh0bWwoUVN0cmluZygiPGh0bWw+PGJv
ZHk+dGVzdDwvYm9keT48L2h0bWw+IiksIFFVcmwoKSk7CisKKyAgICBRQ09NUEFSRShjaGVja0xv
Y2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFnZSwgZmFsc2UpLCBmYWxzZSk7CisgICAgUUNPTVBB
UkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIHRydWUpLCAgZmFsc2UpOwor
CisgICAgd2ViUGFnZS5jdXJyZW50RnJhbWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9k
eT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiaW52YWxpZCIpKTsKKworICAgIFFDT01QQVJF
KGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0eSh3ZWJQYWdlLCBmYWxzZSksIGZhbHNlKTsKKyAg
ICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFnZSwgdHJ1ZSksICBm
YWxzZSk7CisKKyAgICB3ZWJQYWdlLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmcoIjxo
dG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJhYm91dDpibGFuayIpKTsKKwor
ICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0eSh3ZWJQYWdlLCBmYWxzZSks
IGZhbHNlKTsKKyAgICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFn
ZSwgdHJ1ZSksICBmYWxzZSk7CisKKyAgICB3ZWJQYWdlLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1s
KFFTdHJpbmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJkYXRhOnRl
eHQvaHRtbCx0ZXN0IikpOworCisgICAgUUNPTVBBUkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmls
aXR5KHdlYlBhZ2UsIGZhbHNlKSwgZmFsc2UpOworICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9y
YWdlVmlzaWJpbGl0eSh3ZWJQYWdlLCB0cnVlKSwgIGZhbHNlKTsKK30KKwogdm9pZCB0c3RfUVdl
YlBhZ2U6OnRlc3RFbmFibGVQZXJzaXN0ZW50U3RvcmFnZSgpCiB7CiAgICAgUVdlYlBhZ2Ugd2Vi
UGFnZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95939</attachid>
            <date>2011-06-03 11:51:54 -0700</date>
            <delta_ts>2011-06-03 14:53:16 -0700</delta_ts>
            <desc>modified new test so it could also check for positive scenario (also changed its name)</desc>
            <filename>local-storage-origin-2.diff</filename>
            <type>text/plain</type>
            <size>6522</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggMTg3YzdiNS4uMzc1YmYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMS0wNi0wMyAgUmFmYWVsIEJyYW5kYW8gIDxyYWZhZWwubG9ib0BvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtRdF0gSXQgbWFkZSB0d28gUXQgQVBJIHRlc3RzIGZhaWwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4ODQ3CisKKyAgICAgICAgTW9kaWZpZWQg
ZmFpbGluZyB0ZXN0J3MgYmFzZSB1cmwgc28gaXQgY291bGQgZ2V0IGEgdmFsaWQgb3JpZ2luCisg
ICAgICAgIGFuZCBtYWtlIHVzZSBvZiBsb2NhbCBzdG9yYWdlLiBBbHNvIGFkZGVkIGFub3RoZXIg
dGVzdCB0aGF0IGNoZWNrcworICAgICAgICBsb2NhbCBzdG9yYWdlIHZpc2liaWxpdHkgaW4gYm90
aCBzY2VuYXJpb3MuCisKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3Bw
OgorICAgICAgICAodHN0X1FXZWJQYWdlOjp0ZXN0T3B0aW9uYWxKU09iamVjdHMpOgorICAgICAg
ICAoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6
dGVzdExvY2FsU3RvcmFnZVZpc2liaWxpdHkpOgorCiAyMDExLTA2LTAyICBBbmRyZWFzIEtsaW5n
ICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBTaW1vbiBI
YXVzbWFubi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJw
YWdlLmNwcAppbmRleCA4MWUxNDU0Li5mYjZmMWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgcHJp
dmF0ZSBzbG90czoKICAgICB2b2lkIHByb3RlY3RCaW5kaW5nc1J1bnRpbWVPYmplY3RzRnJvbUNv
bGxlY3RvcigpOwogICAgIHZvaWQgbG9jYWxVUkxTY2hlbWVzKCk7CiAgICAgdm9pZCB0ZXN0T3B0
aW9uYWxKU09iamVjdHMoKTsKKyAgICB2b2lkIHRlc3RMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KCk7
CiAgICAgdm9pZCB0ZXN0RW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UoKTsKICAgICB2b2lkIGNvbnNv
bGVPdXRwdXQoKTsKICAgICB2b2lkIGlucHV0TWV0aG9kc19kYXRhKCk7CkBAIC0yMzI4LDggKzIz
MjksOCBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6dGVzdE9wdGlvbmFsSlNPYmplY3RzKCkKICAgICBR
V2ViUGFnZSB3ZWJQYWdlMTsKICAgICBRV2ViUGFnZSB3ZWJQYWdlMjsKIAotICAgIHdlYlBhZ2Ux
LmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+
PC9odG1sPiIpLCBRVXJsKCkpOwotICAgIHdlYlBhZ2UyLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1s
KFFTdHJpbmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCkpOworICAg
IHdlYlBhZ2UxLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmcoIjxodG1sPjxib2R5PnRl
c3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIpKTsKKyAg
ICB3ZWJQYWdlMi5jdXJyZW50RnJhbWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9keT50
ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iKSk7CiAK
ICAgICBRRVhQRUNUX0ZBSUwoIiIsIkZlYXR1cmUgZW5hYmxlZC9kaXNhYmxlZCBjaGVja2luZyBw
cm9ibGVtLiBMb29rIGF0IGJ1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk4NjciLCBD
b250aW51ZSk7CiAgICAgUUNPTVBBUkUodGVzdEZsYWcod2ViUGFnZTEsIFFXZWJTZXR0aW5nczo6
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkLCAiYXBwbGljYXRpb25DYWNoZSIsIGZh
bHNlKSwgZmFsc2UpOwpAQCAtMjMzOSwxMyArMjM0MCw4MyBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6
dGVzdE9wdGlvbmFsSlNPYmplY3RzKCkKICAgICBRQ09NUEFSRSh0ZXN0RmxhZyh3ZWJQYWdlMiwg
UVdlYlNldHRpbmdzOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsICJhcHBsaWNh
dGlvbkNhY2hlIiwgZmFsc2UpLCB0cnVlKTsKIAogICAgIFFDT01QQVJFKHRlc3RGbGFnKHdlYlBh
Z2UxLCBRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZUVuYWJsZWQsICJsb2NhbFN0b3JhZ2UiLCBm
YWxzZSksIGZhbHNlKTsKLSAgICBRRVhQRUNUX0ZBSUwoIiIsICJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEwNDUiLCBDb250aW51ZSk7CiAgICAgUUNPTVBBUkUodGVz
dEZsYWcod2ViUGFnZTIsIFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCwgImxvY2Fs
U3RvcmFnZSIsIHRydWUpLCAgdHJ1ZSk7CiAgICAgUUNPTVBBUkUodGVzdEZsYWcod2ViUGFnZTEs
IFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCwgImxvY2FsU3RvcmFnZSIsIGZhbHNl
KSwgZmFsc2UpOwotICAgIFFFWFBFQ1RfRkFJTCgiIiwgImh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTA0NSIsIENvbnRpbnVlKTsKICAgICBRQ09NUEFSRSh0ZXN0Rmxh
Zyh3ZWJQYWdlMiwgUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkLCAibG9jYWxTdG9y
YWdlIiwgZmFsc2UpLCB0cnVlKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGNoZWNrTG9jYWxT
dG9yYWdlVmlzaWJpbGl0eShRV2ViUGFnZSYgd2ViUGFnZSwgYm9vbCBsb2NhbFN0b3JhZ2VFbmFi
bGVkKQoreworICAgIHdlYlBhZ2Uuc2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5n
czo6TG9jYWxTdG9yYWdlRW5hYmxlZCwgbG9jYWxTdG9yYWdlRW5hYmxlZCk7CisgICAgcmV0dXJu
IHdlYlBhZ2UubWFpbkZyYW1lKCktPmV2YWx1YXRlSmF2YVNjcmlwdChRU3RyaW5nKCIod2luZG93
LmxvY2FsU3RvcmFnZSAhPSB1bmRlZmluZWQpIikpLnRvQm9vbCgpOworfQorCit2b2lkIHRzdF9R
V2ViUGFnZTo6dGVzdExvY2FsU3RvcmFnZVZpc2liaWxpdHkoKQoreworICAgIC8vIExvY2FsIHN0
b3JhZ2UncyB2aXNpYmlsaXR5IGRlcGVuZHMgb24gaXRzIHNlY3VyaXR5IG9yaWdpbiwgd2hpY2gg
ZGVwZW5kcyBvbiBiYXNlIHVybC4KKyAgICAvLyBJbml0aWFsbHksIGl0IHdpbGwgdGVzdCBpdCB3
aXRoIGJhc2UgdXJscyB0aGF0IGdldCBhIGdsb2JhbGx5IHVuaXF1ZSBvcmlnaW4sIHdoaWNoIG1h
eSBub3QKKyAgICAvLyBiZSBhYmxlIHRvIHVzZSBsb2NhbCBzdG9yYWdlIGV2ZW4gaWYgdGhlIGZl
YXR1cmUgaXMgZW5hYmxlZC4gVGhlbiBsYXRlciB0aGUgc2FtZSB0ZXN0IGlzCisgICAgLy8gZG9u
ZSBidXQgd2l0aCB1cmxzIHRoYXQgd291bGQgZ2V0IGEgdmFsaWQgb3JpZ2luLCBzbyBsb2NhbCBz
dG9yYWdlIGNvdWxkIGJlIHVzZWQuCisgICAgLy8gQmVmb3JlIGV2ZXJ5IHRlc3QgY2FzZSBpdCBj
aGVja3MgaWYgbG9jYWwgc3RvcmFnZSBpcyBub3QgYWxyZWFkeSB2aXNpYmxlLgorCisgICAgUVdl
YlBhZ2Ugd2ViUGFnZTsKKworICAgIHdlYlBhZ2UuY3VycmVudEZyYW1lKCktPnNldEh0bWwoUVN0
cmluZygiPGh0bWw+PGJvZHk+dGVzdDwvYm9keT48L2h0bWw+IiksIFFVcmwoKSk7CisKKyAgICBR
Q09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFnZSwgZmFsc2UpLCBmYWxz
ZSk7CisgICAgUUNPTVBBUkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIHRy
dWUpLCBmYWxzZSk7CisKKyAgICB3ZWJQYWdlLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJp
bmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJpbnZhbGlkIikpOwor
CisgICAgUUNPTVBBUkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIGZhbHNl
KSwgZmFsc2UpOworICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0eSh3ZWJQ
YWdlLCB0cnVlKSwgZmFsc2UpOworCisgICAgd2ViUGFnZS5jdXJyZW50RnJhbWUoKS0+c2V0SHRt
bChRU3RyaW5nKCI8aHRtbD48Ym9keT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiOi8vbWlz
cGFyc2VkLmNvbSIpKTsKKworICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0
eSh3ZWJQYWdlLCBmYWxzZSksIGZhbHNlKTsKKyAgICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFn
ZVZpc2liaWxpdHkod2ViUGFnZSwgdHJ1ZSksIGZhbHNlKTsKKworICAgIHdlYlBhZ2UuY3VycmVu
dEZyYW1lKCktPnNldEh0bWwoUVN0cmluZygiPGh0bWw+PGJvZHk+dGVzdDwvYm9keT48L2h0bWw+
IiksIFFVcmwoImh0dHA6Ly8iKSk7CisKKyAgICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZp
c2liaWxpdHkod2ViUGFnZSwgZmFsc2UpLCBmYWxzZSk7CisgICAgUUNPTVBBUkUoY2hlY2tMb2Nh
bFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIHRydWUpLCBmYWxzZSk7CisKKyAgICB3ZWJQYWdl
LmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+
PC9odG1sPiIpLCBRVXJsKCJhYm91dDpibGFuayIpKTsKKworICAgIFFDT01QQVJFKGNoZWNrTG9j
YWxTdG9yYWdlVmlzaWJpbGl0eSh3ZWJQYWdlLCBmYWxzZSksIGZhbHNlKTsKKyAgICBRQ09NUEFS
RShjaGVja0xvY2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFnZSwgdHJ1ZSksIGZhbHNlKTsKKwor
ICAgIHdlYlBhZ2UuY3VycmVudEZyYW1lKCktPnNldEh0bWwoUVN0cmluZygiPGh0bWw+PGJvZHk+
dGVzdDwvYm9keT48L2h0bWw+IiksIFFVcmwoImRhdGE6dGV4dC9odG1sLHRlc3QiKSk7CisKKyAg
ICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFnZSwgZmFsc2UpLCBm
YWxzZSk7CisgICAgUUNPTVBBUkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2Us
IHRydWUpLCBmYWxzZSk7CisKKyAgICB3ZWJQYWdlLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFT
dHJpbmcoIjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJmaWxlOi8vLyIp
KTsKKworICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0eSh3ZWJQYWdlLCBm
YWxzZSksIGZhbHNlKTsKKyAgICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZpc2liaWxpdHko
d2ViUGFnZSwgdHJ1ZSksIGZhbHNlKTsKKworICAgIHdlYlBhZ2UuY3VycmVudEZyYW1lKCktPnNl
dEh0bWwoUVN0cmluZygiPGh0bWw+PGJvZHk+dGVzdDwvYm9keT48L2h0bWw+IiksIFFVcmwoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iKSk7CisKKyAgICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFn
ZVZpc2liaWxpdHkod2ViUGFnZSwgZmFsc2UpLCBmYWxzZSk7CisgICAgUUNPTVBBUkUoY2hlY2tM
b2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIHRydWUpLCB0cnVlKTsKKworICAgIHdlYlBh
Z2UuY3VycmVudEZyYW1lKCktPnNldEh0bWwoUVN0cmluZygiPGh0bWw+PGJvZHk+dGVzdDwvYm9k
eT48L2h0bWw+IiksIFFVcmwoImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIikpOworCisgICAgUUNP
TVBBUkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIGZhbHNlKSwgZmFsc2Up
OworICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0eSh3ZWJQYWdlLCB0cnVl
KSwgdHJ1ZSk7CisKKyAgICB3ZWJQYWdlLmN1cnJlbnRGcmFtZSgpLT5zZXRIdG1sKFFTdHJpbmco
IjxodG1sPjxib2R5PnRlc3Q8L2JvZHk+PC9odG1sPiIpLCBRVXJsKCJmdHA6Ly9maWxlcy5leGFt
cGxlLmNvbSIpKTsKKworICAgIFFDT01QQVJFKGNoZWNrTG9jYWxTdG9yYWdlVmlzaWJpbGl0eSh3
ZWJQYWdlLCBmYWxzZSksIGZhbHNlKTsKKyAgICBRQ09NUEFSRShjaGVja0xvY2FsU3RvcmFnZVZp
c2liaWxpdHkod2ViUGFnZSwgdHJ1ZSksIHRydWUpOworCisgICAgd2ViUGFnZS5jdXJyZW50RnJh
bWUoKS0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9keT50ZXN0PC9ib2R5PjwvaHRtbD4iKSwg
UVVybCgiZmlsZTovLy9wYXRoL3RvL2luZGV4Lmh0bWwiKSk7CisKKyAgICBRQ09NUEFSRShjaGVj
a0xvY2FsU3RvcmFnZVZpc2liaWxpdHkod2ViUGFnZSwgZmFsc2UpLCBmYWxzZSk7CisgICAgUUNP
TVBBUkUoY2hlY2tMb2NhbFN0b3JhZ2VWaXNpYmlsaXR5KHdlYlBhZ2UsIHRydWUpLCB0cnVlKTsK
K30KKwogdm9pZCB0c3RfUVdlYlBhZ2U6OnRlc3RFbmFibGVQZXJzaXN0ZW50U3RvcmFnZSgpCiB7
CiAgICAgUVdlYlBhZ2Ugd2ViUGFnZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>