<?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>108513</bug_id>
          
          <creation_ts>2013-01-31 12:29:39 -0800</creation_ts>
          <short_desc>[Chromium] Replace correct misspelled range</short_desc>
          <delta_ts>2013-02-11 12:25:31 -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>HTML Editing</component>
          <version>528+ (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>106815</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Rouslan Solomakhin">rouslan+webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>groby</cc>
    
    <cc>rniwa</cc>
    
    <cc>rouslan+webkit</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>821832</commentid>
    <comment_count>0</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-01-31 12:29:39 -0800</bug_when>
    <thetext>WebFrameImpl::replaceMisspelledRange() in Source/WebKit/chromium/src/WebFrameImpl.cpp sometimes replaces the wrong range. (Chromium will use this method instead of WebFrameImpl::replaceRange() when correcting misspellings.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822919</commentid>
    <comment_count>1</comment_count>
      <attachid>186074</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 10:23:03 -0800</bug_when>
    <thetext>Created attachment 186074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822953</commentid>
    <comment_count>2</comment_count>
      <attachid>186074</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-01 10:48:18 -0800</bug_when>
    <thetext>Comment on attachment 186074
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1319
&gt; -    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, true);
&gt; +    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, false);

Why are you disabling smart replace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822970</commentid>
    <comment_count>3</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 10:56:57 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 186074 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186074&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1319
&gt; &gt; -    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, true);
&gt; &gt; +    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, false);
&gt; 
&gt; Why are you disabling smart replace?

If the user selects &quot;wellcome_&quot; together with underline, context clicks on the selection, and chooses the &quot;welcome&quot; suggestion, then smart replace will result in &quot;welcome _&quot;. I think that might be OK behavior for replaceRange(), but not for replaceMisspelledRange(). This method should only replace the misspelling, not introduce extra spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822986</commentid>
    <comment_count>4</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 11:03:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 186074 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186074&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1319
&gt; &gt; &gt; -    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, true);
&gt; &gt; &gt; +    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, false);
&gt; &gt; 
&gt; &gt; Why are you disabling smart replace?
&gt; 
&gt; If the user selects &quot;wellcome_&quot; together with underline, context clicks on the selection, and chooses the &quot;welcome&quot; suggestion, then smart replace will result in &quot;welcome _&quot;. I think that might be OK behavior for replaceRange(), but not for replaceMisspelledRange(). This method should only replace the misspelling, not introduce extra spaces.

s/underline/underscore/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823005</commentid>
    <comment_count>5</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 11:16:54 -0800</bug_when>
    <thetext>Does smart replace have more useful functionality that I did not notice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823010</commentid>
    <comment_count>6</comment_count>
      <attachid>186074</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-01 11:19:33 -0800</bug_when>
    <thetext>Comment on attachment 186074
Patch

Which test does this fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823011</commentid>
    <comment_count>7</comment_count>
      <attachid>186074</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-01 11:20:08 -0800</bug_when>
    <thetext>Comment on attachment 186074
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:9
&gt; +        (WebKit::WebFrameImpl::replaceMisspelledRange): Replace correct misspelled range.

You could explain why you disable smart replace here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823012</commentid>
    <comment_count>8</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 11:21:11 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 186074 [details])
&gt; Which test does this fix?

I am not sure how to test this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823015</commentid>
    <comment_count>9</comment_count>
      <attachid>186083</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 11:24:27 -0800</bug_when>
    <thetext>Created attachment 186083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823016</commentid>
    <comment_count>10</comment_count>
      <attachid>186083</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 11:25:06 -0800</bug_when>
    <thetext>Comment on attachment 186083
Patch

Explained the reason for disabling smart replace in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823023</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-01 11:27:37 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 186074 [details] [details])
&gt; &gt; Which test does this fix?
&gt; 
&gt; I am not sure how to test this...

I see.  Hmm, since this is all code in Source/WebKit/chromium, you might be able to write a webkit_unit_test for this.  See Source/WebKit/chromium/tests for other C++ unit tests.  What you&apos;d want to do is set up a web frame with wellcome selected and call WebFrame::replaceMisspelledRange directly.  You could then verify that the content doesn&apos;t have the extra space between welcome and _.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823038</commentid>
    <comment_count>12</comment_count>
      <attachid>186083</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-01 11:32:26 -0800</bug_when>
    <thetext>Comment on attachment 186083
Patch

Going to write the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824499</commentid>
    <comment_count>13</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-04 10:13:57 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 186083 [details])
&gt; Going to write the test.

Would it be OK to add window.internals.replaceMisspellingRange() method for testing WebKit::WebFrameImpl::replaceMisspelledRange() from Source/WebKit/chromium/src/WebFrameImpl.h ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824523</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-04 10:26:14 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 186083 [details] [details])
&gt; &gt; Going to write the test.
&gt; 
&gt; Would it be OK to add window.internals.replaceMisspellingRange() method for testing WebKit::WebFrameImpl::replaceMisspelledRange() from Source/WebKit/chromium/src/WebFrameImpl.h ?

It&apos;s a WebKit API so it needs to be testRunner but I don&apos;t think we should be adding port specific testRunner method like that.

(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 186074 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186074&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1319
&gt; &gt; &gt; -    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, true);
&gt; &gt; &gt; +    frame()-&gt;editor()-&gt;replaceSelectionWithText(text, false, false);
&gt; &gt; 
&gt; &gt; Why are you disabling smart replace?
&gt; 
&gt; If the user selects &quot;wellcome_&quot; together with underline, context clicks on the selection, and chooses the &quot;welcome&quot; suggestion, then smart replace will result in &quot;welcome _&quot;. I think that might be OK behavior for replaceRange(), but not for replaceMisspelledRange(). This method should only replace the misspelling, not introduce extra spaces.

You should be able to create a selection like that manually using getSelection(). There ought to be a way to trigger correction once the text is selected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824543</commentid>
    <comment_count>15</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-04 10:43:02 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; You should be able to create a selection like that manually using getSelection(). There ought to be a way to trigger correction once the text is selected.

Ryosuke: Tony suggests that I make WebFrameImpl::replaceMisspelledRange() call directly into WebCore. Then we can add JS function window.internals.replaceMisspelledRange() for layout tests. Do you agree with this plan?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824549</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-04 10:50:19 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; You should be able to create a selection like that manually using getSelection(). There ought to be a way to trigger correction once the text is selected.
&gt; 
&gt; Ryosuke: Tony suggests that I make WebFrameImpl::replaceMisspelledRange() call directly into WebCore. Then we can add JS function window.internals.replaceMisspelledRange() for layout tests. Do you agree with this plan?

No. This function is specific to the Chromium port. Please don&apos;t add a new method to internals. If you&apos;re interested in unit testing this, add a Chromium API test instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824550</commentid>
    <comment_count>17</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-04 10:52:12 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Ryosuke: Tony suggests that I make WebFrameImpl::replaceMisspelledRange() call directly into WebCore. Then we can add JS function window.internals.replaceMisspelledRange() for layout tests. Do you agree with this plan?
&gt; 
&gt; No. This function is specific to the Chromium port. Please don&apos;t add a new method to internals. If you&apos;re interested in unit testing this, add a Chromium API test instead.

Understood. I am working on it :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825769</commentid>
    <comment_count>18</comment_count>
      <attachid>186692</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-05 13:24:36 -0800</bug_when>
    <thetext>Created attachment 186692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825771</commentid>
    <comment_count>19</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-05 13:27:09 -0800</bug_when>
    <thetext>I am not able to add misspelling markers from with the unit test. Am I missing something obvious or doing something completely wrong?

Here is the test output:

$ build-webkit --chromium &amp;&amp; ./out/Release/webkit_unit_tests  --gtest_filter=&apos;WebFrameTest.*spell*&apos;
ninja -C out/Release all 
ninja: Entering directory `out/Release&apos;
[3/3] STAMP obj/Source/WebKit/chromium/all_webkit.actions_depends.stamp

====================================================================
 WebKit is now built (00m:06s). 
====================================================================
Note: Google Test filter = WebFrameTest.*spell*
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from WebFrameTest
[ RUN      ] WebFrameTest.ReplaceMisspelledRange
../../Source/WebKit/chromium/tests/WebFrameTest.cpp:2149: Failure
Value of: document-&gt;markers()-&gt;markersInRange(range.get(), WebCore::DocumentMarker::Spelling).size()
  Actual: 0
Expected: 1U
Which is: 1
../../Source/WebKit/chromium/tests/WebFrameTest.cpp:2158: Failure
Value of: std::string(frame-&gt;contentAsText(std::numeric_limits&lt;size_t&gt;::max()).utf8().data())
  Actual: &quot;_wellcome_.&quot;
Expected: &quot;_welcome_.&quot;
[  FAILED  ] WebFrameTest.ReplaceMisspelledRange (33 ms)
[----------] 1 test from WebFrameTest (33 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (34 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] WebFrameTest.ReplaceMisspelledRange

 1 FAILED TEST
  YOU HAVE 9 DISABLED TESTS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828804</commentid>
    <comment_count>20</comment_count>
      <attachid>187378</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-08 15:54:47 -0800</bug_when>
    <thetext>Created attachment 187378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828806</commentid>
    <comment_count>21</comment_count>
      <attachid>187378</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-08 15:55:34 -0800</bug_when>
    <thetext>Comment on attachment 187378
Patch

Fixed the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828810</commentid>
    <comment_count>22</comment_count>
      <attachid>187380</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-08 15:59:43 -0800</bug_when>
    <thetext>Created attachment 187380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828812</commentid>
    <comment_count>23</comment_count>
      <attachid>187380</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-08 16:00:46 -0800</bug_when>
    <thetext>Comment on attachment 187380
Patch

This patch avoids a leak in WebFrameTest by keeping the spellcheck client on stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828967</commentid>
    <comment_count>24</comment_count>
      <attachid>187380</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-08 22:39:22 -0800</bug_when>
    <thetext>Comment on attachment 187380
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1316
&gt; +    RefPtr&lt;Range&gt; markerRange = Range::create(caretRange-&gt;ownerDocument(), caretRange-&gt;startContainer(), markers[0]-&gt;startOffset(), caretRange-&gt;endContainer(), markers[0]-&gt;endOffset());
&gt; +    if (!markerRange)
&gt; +        return;
&gt; +    if (!frame()-&gt;selection()-&gt;shouldChangeSelection(markerRange.get()))

Doesn&apos;t this break spellchecking inside a contenteditable element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829806</commentid>
    <comment_count>25</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-11 09:48:40 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 187380 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187380&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1316
&gt; &gt; +    RefPtr&lt;Range&gt; markerRange = Range::create(caretRange-&gt;ownerDocument(), caretRange-&gt;startContainer(), markers[0]-&gt;startOffset(), caretRange-&gt;endContainer(), markers[0]-&gt;endOffset());
&gt; &gt; +    if (!markerRange)
&gt; &gt; +        return;
&gt; &gt; +    if (!frame()-&gt;selection()-&gt;shouldChangeSelection(markerRange.get()))
&gt; 
&gt; Doesn&apos;t this break spellchecking inside a contenteditable element?

This patch adds a test that uses &lt;div contentEditable&gt;&lt;/div&gt; for spellcheck. I don&apos;t think it breaks anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829818</commentid>
    <comment_count>26</comment_count>
      <attachid>187380</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-11 09:58:53 -0800</bug_when>
    <thetext>Comment on attachment 187380
Patch

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

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2204
&gt; +    virtual void requestCheckingOfText(const WebKit::WebString&amp;, WebKit::WebTextCheckingCompletion* completion)

OVERRIDE

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2206
&gt; +        m_numberOfTimesChecked++;

Nit: ++m_numberOfTimesChecked

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2208
&gt; +        results.append(WebTextCheckingResult(WebTextCheckingTypeSpelling, 1, 8, WebString()));

Nit: Can we make local variables for 1 and 8 to make it more clear what the parameters are?

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2226
&gt; +    // Setup environment.

I would remove all of these comments.  They aren&apos;t &quot;why?&quot; comments.

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2236
&gt; +    // Select the text &quot;_wellcome_.&quot;
&gt; +    frame-&gt;selectRange(WebRange::fromDocumentRange(frame, 0, 11));

For example, if you made local variables like:
  int wellcomeStartOffset = 0;
  int wellcomeEndOffset = 11;
I don&apos;t think you need the comment.

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2241
&gt; +    // Wait for spellcheck.
&gt; +    for (int i = 0; i &lt; 10 &amp;&amp; document-&gt;markers()-&gt;markersInRange(selectionRange.get(), DocumentMarker::Spelling).isEmpty(); ++i)
&gt; +        webkit_support::RunAllPendingMessages();

Why 10 times?  Would it be sufficient to use &quot;while (document-&gt;markers()-&gt;markersInRange(selectionRange.get(), DocumentMarker::Spelling).isEmpty())&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829848</commentid>
    <comment_count>27</comment_count>
      <attachid>187380</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-11 10:27:30 -0800</bug_when>
    <thetext>Comment on attachment 187380
Patch

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

&gt;&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1316
&gt;&gt;&gt; +    if (!frame()-&gt;selection()-&gt;shouldChangeSelection(markerRange.get()))
&gt;&gt; 
&gt;&gt; Doesn&apos;t this break spellchecking inside a contenteditable element?
&gt; 
&gt; This patch adds a test that uses &lt;div contentEditable&gt;&lt;/div&gt; for spellcheck. I don&apos;t think it breaks anything.

Does it work even if you had content (e.g. some text) before div?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829899</commentid>
    <comment_count>28</comment_count>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-11 11:07:13 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 187380 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187380&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1316
&gt; &gt;&gt;&gt; +    if (!frame()-&gt;selection()-&gt;shouldChangeSelection(markerRange.get()))
&gt; &gt;&gt; 
&gt; &gt;&gt; Doesn&apos;t this break spellchecking inside a contenteditable element?
&gt; &gt; 
&gt; &gt; This patch adds a test that uses &lt;div contentEditable&gt;&lt;/div&gt; for spellcheck. I don&apos;t think it breaks anything.
&gt; 
&gt; Does it work even if you had content (e.g. some text) before div?

Spellcheck works with that use-case both pre-patch and post-patch: spellcheck suggests a correctly-spelled word and lets you replace the word within the element. The replacement behavior changes because the patch turns off smart-replace, but I expect that.

I&apos;ve tested pre-patch and post-patch spellcheck for the following URL:

data:text/html,&lt;span contentEditable&gt;well&lt;/span&gt;&lt;span contentEditable&gt;come&lt;/span&gt; home

Most behavior does not change:

1) The text fragments &quot;well&quot; and &quot;come&quot; are treated as one misspelled word &quot;wellcome&quot;.

2) Context-click on &quot;well&quot; selects only &quot;well&quot; and suggests &quot;welcome&quot; as correct spelling.

3) Context-click on &quot;come&quot; selects only &quot;come&quot; and suggest &quot;welcome&quot; as correct spelling.

The behavior that changes is due to turning off smart-replace in the patch:

BEFORE the patch: If you select &quot;welcome&quot; suggestion from context menu, you would get either &quot;welcome come&quot; or &quot;well welcome&quot;, depending on whether you context clicked on &quot;well&quot; or &quot;come&quot; part of the word.

AFTER the patch: If you select &quot;welcome&quot; suggestion from context menu, you would get either &quot;welcomecome&quot; or &quot;wellwelcome&quot;, depending on whether you context clicked on &quot;well&quot; or &quot;come&quot; part of the word.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829940</commentid>
    <comment_count>29</comment_count>
      <attachid>187380</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-11 11:31:21 -0800</bug_when>
    <thetext>Comment on attachment 187380
Patch

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

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2218
&gt; +    WebView* webView = FrameTestHelpers::createWebViewAndLoad(&quot;data:text/html,&lt;div id=\&quot;data\&quot; contentEditable&gt;&lt;/div&gt;&quot;);

Replace this with:

m_webView = FrameTestHelpers:....

so the test harness properly cleans this view up at the end of the test

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2247
&gt; +    webkit_support::RunAllPendingMessages();

call runPendingTasks() here (it&apos;s in FrameTestHelpers and pulled into the namespace of this file by a using statement)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829944</commentid>
    <comment_count>30</comment_count>
      <attachid>187380</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-11 11:33:23 -0800</bug_when>
    <thetext>Comment on attachment 187380
Patch

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

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2220
&gt; +    SpellCheckClient spellcheck;
&gt; +    webView-&gt;setSpellCheckClient(&amp;spellcheck);

actually, since you have this client on the stack you need to close (aka destroy) your WebView before this class falls out of scope or you may get mysterious crashes.  Add these two lines to the bottom of this function:

m_webView-&gt;close();
m_webView = 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829966</commentid>
    <comment_count>31</comment_count>
      <attachid>187633</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-11 12:03:48 -0800</bug_when>
    <thetext>Created attachment 187633
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829967</commentid>
    <comment_count>32</comment_count>
      <attachid>187633</attachid>
    <who name="Rouslan Solomakhin">rouslan+webkit</who>
    <bug_when>2013-02-11 12:06:17 -0800</bug_when>
    <thetext>Comment on attachment 187633
Patch for landing

I removed RunAllPendingMessages() because it turned out to not be necessary with the stub implementation of SpellCheckClient. It marks the misspelling immediately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829977</commentid>
    <comment_count>33</comment_count>
      <attachid>187633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 12:25:26 -0800</bug_when>
    <thetext>Comment on attachment 187633
Patch for landing

Clearing flags on attachment: 187633

Committed r142494: &lt;http://trac.webkit.org/changeset/142494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829978</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 12:25:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186074</attachid>
            <date>2013-02-01 10:23:03 -0800</date>
            <delta_ts>2013-02-01 11:24:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108513-20130201101945.patch</filename>
            <type>text/plain</type>
            <size>2393</size>
            <attacher name="Rouslan Solomakhin">rouslan+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDBhNDU0MGMyNTMzNzFjMTMzOGNhNjM4OGZiNTVjODAzZDNiZWZhMzIuLmNhMTAwNjA1OTJmYzM2
MjI3NzdlMzljOWI4NTU2MDYyZDQyNDc2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDEgIFJvdXNsYW4gU29sb21ha2hpbiAgPHJvdXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVwbGFjZSBjb3JyZWN0IG1pc3Nw
ZWxsZWQgcmFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODUxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1w
bDo6cmVwbGFjZU1pc3NwZWxsZWRSYW5nZSk6IFJlcGxhY2UgY29ycmVjdCBtaXNzcGVsbGVkIHJh
bmdlLgorCiAyMDEzLTAyLTAxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIENocm9taXVtIERFUFMgdG8gcjE4
MDEzMS4gIFJlcXVlc3RlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5jcHAKaW5kZXggZGJmNDc0MTE4MWRkMGVhMTQwMjhmODdhODg1NjI5NDBkZWY0NTUyNi4u
NDU3MDQ0NTM4M2VkMzY2MzFiNTY2ZTA0NjhmMmYxOWMyZGE1YmQ1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xMzA3LDExICsxMzA3LDE2IEBA
IHZvaWQgV2ViRnJhbWVJbXBsOjpyZXBsYWNlTWlzc3BlbGxlZFJhbmdlKGNvbnN0IFdlYlN0cmlu
ZyYgdGV4dCkKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzID0gZnJhbWUoKS0+
ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzSW5SYW5nZShjYXJldFJhbmdlLmdldCgpLCBE
b2N1bWVudE1hcmtlcjo6U3BlbGxpbmcgfCBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcik7CiAgICAg
aWYgKG1hcmtlcnMuc2l6ZSgpIDwgMSB8fCBtYXJrZXJzWzBdLT5zdGFydE9mZnNldCgpID49IG1h
cmtlcnNbMF0tPmVuZE9mZnNldCgpKQogICAgICAgICByZXR1cm47Ci0gICAgUmVmUHRyPFJhbmdl
PiBtYXJrZXJSYW5nZSA9IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgo
ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVu
dCgpLCBtYXJrZXJzWzBdLT5zdGFydE9mZnNldCgpLCBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSAt
IG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCkpOwotICAgIGlmICghbWFya2VyUmFuZ2UuZ2V0KCkg
fHwgIWZyYW1lKCktPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obWFya2VyUmFu
Z2UuZ2V0KCkpKQorICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29kZTsKKyAgICBSZWZQdHI8
UmFuZ2U+IG1hcmtlclJhbmdlID0gY2FyZXRSYW5nZS0+Y2xvbmVSYW5nZShleGNlcHRpb25Db2Rl
KTsKKyAgICBpZiAoIWV4Y2VwdGlvbkNvZGUpCisgICAgICAgIHJldHVybjsKKyAgICBtYXJrZXJS
YW5nZS0+c2V0U3RhcnQobWFya2VyUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIG1hcmtlcnNbMF0t
PnN0YXJ0T2Zmc2V0KCkpOworICAgIG1hcmtlclJhbmdlLT5zZXRFbmQobWFya2VyUmFuZ2UtPmVu
ZENvbnRhaW5lcigpLCBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSk7CisgICAgaWYgKCFmcmFtZSgp
LT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG1hcmtlclJhbmdlLmdldCgpKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24o
bWFya2VyUmFuZ2UuZ2V0KCksIENoYXJhY3RlckdyYW51bGFyaXR5KTsKLSAgICBmcmFtZSgpLT5l
ZGl0b3IoKS0+cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRleHQsIGZhbHNlLCB0cnVlKTsKKyAg
ICBmcmFtZSgpLT5lZGl0b3IoKS0+cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRleHQsIGZhbHNl
LCBmYWxzZSk7CiB9CiAKIGJvb2wgV2ViRnJhbWVJbXBsOjpoYXNTZWxlY3Rpb24oKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186083</attachid>
            <date>2013-02-01 11:24:27 -0800</date>
            <delta_ts>2013-02-05 13:24:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108513-20130201112109.patch</filename>
            <type>text/plain</type>
            <size>2465</size>
            <attacher name="Rouslan Solomakhin">rouslan+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDk0MTU4ODBkY2FkNzc3NzIyNjUxNTg5ZDJkMTg0YmI5ZDBkYzA1ODguLmY0Y2RlNTFmMDlhMTVk
ZjkzNDViYTA4OGM5OGMyNzY0ZTE0ZjQ1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDEgIFJvdXNsYW4gU29sb21ha2hpbiAgPHJvdXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVwbGFjZSBjb3JyZWN0IG1pc3Nw
ZWxsZWQgcmFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODUxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1w
bDo6cmVwbGFjZU1pc3NwZWxsZWRSYW5nZSk6IFJlcGxhY2UgY29ycmVjdCBtaXNzcGVsbGVkIHJh
bmdlLiBEaXNhYmxlIHNtYXJ0IHJlcGxhY2UgdG8gYXZvaWQgaW50cm9kdWNpbmcgd2hpdGVzcGFj
ZSBhcm91bmQgdGhlIG1pc3NwZWxsZWQgcmFuZ2UuCisKIDIwMTMtMDItMDEgIE5pY28gV2ViZXIg
IDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQnVpbGQgd2Via2l0
IHdpdGggZW5hYmxlX3dlYl9pbnRlbnRzIHNldCB0byAwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggMTE3MDUxZGNhYzk4OWEzMjM0MDg2NzY1MGM2
YWZlNGEzODA3N2Q0OC4uNzA5YjJmZDExNDY5ODU2ZTg1MjliMWY4NGI0YTEwNjRmOTJkOWQ0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xMzEw
LDExICsxMzEwLDE2IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXBsYWNlTWlzc3BlbGxlZFJhbmdl
KGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJr
ZXJzID0gZnJhbWUoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzSW5SYW5nZShjYXJl
dFJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcgfCBEb2N1bWVudE1hcmtlcjo6
R3JhbW1hcik7CiAgICAgaWYgKG1hcmtlcnMuc2l6ZSgpIDwgMSB8fCBtYXJrZXJzWzBdLT5zdGFy
dE9mZnNldCgpID49IG1hcmtlcnNbMF0tPmVuZE9mZnNldCgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgUmVmUHRyPFJhbmdlPiBtYXJrZXJSYW5nZSA9IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9tTG9j
YXRpb25BbmRMZW5ndGgoZnJhbWUoKS0+c2VsZWN0aW9uKCktPnJvb3RFZGl0YWJsZUVsZW1lbnRP
ckRvY3VtZW50RWxlbWVudCgpLCBtYXJrZXJzWzBdLT5zdGFydE9mZnNldCgpLCBtYXJrZXJzWzBd
LT5lbmRPZmZzZXQoKSAtIG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCkpOwotICAgIGlmICghbWFy
a2VyUmFuZ2UuZ2V0KCkgfHwgIWZyYW1lKCktPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxl
Y3Rpb24obWFya2VyUmFuZ2UuZ2V0KCkpKQorICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29k
ZTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlID0gY2FyZXRSYW5nZS0+Y2xvbmVSYW5n
ZShleGNlcHRpb25Db2RlKTsKKyAgICBpZiAoIWV4Y2VwdGlvbkNvZGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBtYXJrZXJSYW5nZS0+c2V0U3RhcnQobWFya2VyUmFuZ2UtPnN0YXJ0Q29udGFpbmVy
KCksIG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCkpOworICAgIG1hcmtlclJhbmdlLT5zZXRFbmQo
bWFya2VyUmFuZ2UtPmVuZENvbnRhaW5lcigpLCBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSk7Cisg
ICAgaWYgKCFmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG1hcmtl
clJhbmdlLmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGZyYW1lKCktPnNlbGVjdGlvbigp
LT5zZXRTZWxlY3Rpb24obWFya2VyUmFuZ2UuZ2V0KCksIENoYXJhY3RlckdyYW51bGFyaXR5KTsK
LSAgICBmcmFtZSgpLT5lZGl0b3IoKS0+cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRleHQsIGZh
bHNlLCB0cnVlKTsKKyAgICBmcmFtZSgpLT5lZGl0b3IoKS0+cmVwbGFjZVNlbGVjdGlvbldpdGhU
ZXh0KHRleHQsIGZhbHNlLCBmYWxzZSk7CiB9CiAKIGJvb2wgV2ViRnJhbWVJbXBsOjpoYXNTZWxl
Y3Rpb24oKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186692</attachid>
            <date>2013-02-05 13:24:36 -0800</date>
            <delta_ts>2013-02-08 15:54:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108513-20130205132114.patch</filename>
            <type>text/plain</type>
            <size>4493</size>
            <attacher name="Rouslan Solomakhin">rouslan+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGM2MWU2OTBjY2I4OTg5NDRkMWZiNDQ2OGI5OWIzNWU2MWExODYxNDYuLmFmN2VkMDQxMjVkYWNh
ZDMzMjgwNDc3YTI2NTIyOTQ3OGI3N2U5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMDUgIFJvdXNsYW4gU29sb21ha2hpbiAgPHJvdXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVwbGFjZSBjb3JyZWN0IHJhbmdl
IGluIFdlYktpdDo6V2ViRnJhbWVJbXBsOjpyZXBsYWNlTWlzc3BlbGxlZFJhbmdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg1MTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUlt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVk
UmFuZ2UpOiBSZXBsYWNlIGNvcnJlY3QgbWlzc3BlbGxlZCByYW5nZS4KKyAgICAgICAgKiB0ZXN0
cy9XZWJGcmFtZVRlc3QuY3BwOiBBZGQgdW5pdCB0ZXN0IGZvciBXZWJLaXQ6OldlYkZyYW1lSW1w
bDo6cmVwbGFjZU1pc3NwZWxsZWRSYW5nZSBtZXRob2QuCisKIDIwMTMtMDItMDUgIEtlbnRhcm8g
SGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxNDE4NjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAppbmRleCBlNWM1ZDNiMWM3OWE4OWFlMzZiOTk2MGE3Y2RiOGYwOWY1Y2E4OWJjLi5lZTE3
NDQ0MGY0OTBjZTBmYzc4MWExZGZjZDdmNzA1MjA1MDcwMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTEzMTAsMTEgKzEzMTAsMTYgQEAgdm9p
ZCBXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UoY29uc3QgV2ViU3RyaW5nJiB0
ZXh0KQogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBmcmFtZSgpLT5kb2N1
bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNJblJhbmdlKGNhcmV0UmFuZ2UuZ2V0KCksIERvY3Vt
ZW50TWFya2VyOjpTcGVsbGluZyB8IERvY3VtZW50TWFya2VyOjpHcmFtbWFyKTsKICAgICBpZiAo
bWFya2Vycy5zaXplKCkgPCAxIHx8IG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCkgPj0gbWFya2Vy
c1swXS0+ZW5kT2Zmc2V0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBSZWZQdHI8UmFuZ2U+IG1h
cmtlclJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChmcmFt
ZSgpLT5zZWxlY3Rpb24oKS0+cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCks
IG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCksIG1hcmtlcnNbMF0tPmVuZE9mZnNldCgpIC0gbWFy
a2Vyc1swXS0+c3RhcnRPZmZzZXQoKSk7Ci0gICAgaWYgKCFtYXJrZXJSYW5nZS5nZXQoKSB8fCAh
ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihtYXJrZXJSYW5nZS5n
ZXQoKSkpCisgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOworICAgIFJlZlB0cjxSYW5n
ZT4gbWFya2VyUmFuZ2UgPSBjYXJldFJhbmdlLT5jbG9uZVJhbmdlKGV4Y2VwdGlvbkNvZGUpOwor
ICAgIGlmICghZXhjZXB0aW9uQ29kZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1hcmtlclJhbmdl
LT5zZXRTdGFydChtYXJrZXJSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgbWFya2Vyc1swXS0+c3Rh
cnRPZmZzZXQoKSk7CisgICAgbWFya2VyUmFuZ2UtPnNldEVuZChtYXJrZXJSYW5nZS0+ZW5kQ29u
dGFpbmVyKCksIG1hcmtlcnNbMF0tPmVuZE9mZnNldCgpKTsKKyAgICBpZiAoIWZyYW1lKCktPnNl
bGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obWFya2VyUmFuZ2UuZ2V0KCkpKQogICAg
ICAgICByZXR1cm47CiAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihtYXJr
ZXJSYW5nZS5nZXQoKSwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lKCktPmVkaXRv
cigpLT5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodGV4dCwgZmFsc2UsIHRydWUpOworICAgIGZy
YW1lKCktPmVkaXRvcigpLT5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodGV4dCwgZmFsc2UsIGZh
bHNlKTsKIH0KIAogYm9vbCBXZWJGcmFtZUltcGw6Omhhc1NlbGVjdGlvbigpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggMmJiMzUy
YjlkZmU4YzgyNmE3NzE5OTgwMTM5ZmI1MGIxYzExODcxMi4uNjA5NTk1MzMwNzQyOTIxNjAzZGJi
ZTEyMGNhZTAzZjQzOGIxZDNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViRnJhbWVUZXN0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiV2ViRnJhbWUu
aCIKIAorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVUZXN0SGVscGVy
cy5oIgpAQCAtNjQsNiArNjUsOSBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBXZWJDb3JlOjpEb2N1bWVudDsKK3VzaW5nIFdlYkNv
cmU6OkRvY3VtZW50TWFya2VyOwordXNpbmcgV2ViQ29yZTo6RWxlbWVudDsKIHVzaW5nIFdlYkNv
cmU6OkZsb2F0UmVjdDsKIHVzaW5nIFdlYkNvcmU6OlJhbmdlOwogdXNpbmcgV2ViS2l0OjpVUkxU
ZXN0SGVscGVyczo6dG9LVVJMOwpAQCAtMjEyOCw0ICsyMTMyLDMwIEBAIFRFU1RfRihXZWJGcmFt
ZVRlc3QsIEVtcHR5RG9jdW1lbnQpCiAgICAgd2ViVmlldy0+Y2xvc2UoKTsKIH0KIAorVEVTVF9G
KFdlYkZyYW1lVGVzdCwgUmVwbGFjZU1pc3NwZWxsZWRSYW5nZSkKK3sKKyAgICBXZWJWaWV3KiB3
ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQoImRhdGE6dGV4
dC9odG1sLDxkaXYgaWQ9XCJkYXRhXCIgY29udGVudEVkaXRhYmxlPjwvZGl2PiIpOworICAgIFdl
YkZyYW1lSW1wbCogZnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUltcGwqPih3ZWJWaWV3LT5t
YWluRnJhbWUoKSk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmZyYW1lKCktPmRv
Y3VtZW50KCk7CisgICAgRWxlbWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5nZXRFbGVtZW50QnlJ
ZCgiZGF0YSIpOworCisgICAgLy8gVHlwZSB0aGUgdGV4dCAiX3dlbGxjb21lXy4iCisgICAgZWxl
bWVudC0+Zm9jdXMoKTsKKyAgICBkb2N1bWVudC0+ZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBm
YWxzZSwgIl93ZWxsY29tZV8uIik7CisKKyAgICAvLyBNYXJrIHRoZSB0ZXh0ICJ3ZWxsY29tZSIg
bWlzc3BlbGxlZC4KKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1
bWVudCwgZWxlbWVudCwgMSwgZWxlbWVudCwgOSk7CisgICAgZG9jdW1lbnQtPm1hcmtlcnMoKS0+
YWRkTWFya2VyKHJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcsIFN0cmluZygi
d2VsY29tZSIpKTsKKyAgICBFWFBFQ1RfRVEoMVUsIGRvY3VtZW50LT5tYXJrZXJzKCktPm1hcmtl
cnNJblJhbmdlKHJhbmdlLmdldCgpLCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcp
LnNpemUoKSk7CisKKyAgICAvLyBTZWxlY3QgdGhlIHRleHQgIl93ZWxsY29tZV8uIgorICAgIGZy
YW1lLT5zZWxlY3RSYW5nZShXZWJSYW5nZTo6ZnJvbURvY3VtZW50UmFuZ2UoZnJhbWUsIDAsIDEx
KSk7CisKKyAgICAvLyBSZXBsYWNlIG1pc3NwZWxsZWQgcmFuZ2UuCisgICAgZnJhbWUtPnJlcGxh
Y2VNaXNzcGVsbGVkUmFuZ2UoIndlbGNvbWUiKTsKKworICAgIC8vIFRoZSByZXN1bHRpbmcgdGV4
dCBzaG91bGQgYmUgIl93ZWxjb21lXyIuCisgICAgRVhQRUNUX0VRKCJfd2VsY29tZV8uIiwgc3Rk
OjpzdHJpbmcoZnJhbWUtPmNvbnRlbnRBc1RleHQoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+
OjptYXgoKSkudXRmOCgpLmRhdGEoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187378</attachid>
            <date>2013-02-08 15:54:47 -0800</date>
            <delta_ts>2013-02-08 15:59:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108513-20130208155122.patch</filename>
            <type>text/plain</type>
            <size>6596</size>
            <attacher name="Rouslan Solomakhin">rouslan+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDE4NmQxMjhhNmM0Y2UyYzRiM2RiNTNiOWRlMDM1NDEyZmI4Y2RmNGQuLmIxZGRmODcyYTIyMTY2
YzNlOTQ5ZTgxZDcyODY1Yzk0ZDNmOGQyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDggIFJvdXNsYW4gU29sb21ha2hpbiAgPHJvdXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVwbGFjZSBjb3JyZWN0IG1pc3Nw
ZWxsZWQgcmFuZ2UgaW4gV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFu
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODUx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktp
dDo6V2ViRnJhbWVJbXBsOjpyZXBsYWNlTWlzc3BlbGxlZFJhbmdlIGlzIGdvaW5nIHRvIGJlIHVz
ZWQgYnkgQ2hyb21pdW0gaW5zdGVhZCBvZgorICAgICAgICBXZWJLaXQ6OldlYkZyYW1lSW1wbDo6
cmVwbGFjZVNlbGVjdGlvbiBmb3IgY29ycmVjdGluZyBtaXNzcGVsbGluZ3MuIFRoZSBjdXJyZW50
IGltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIFdlYktpdDo6V2ViRnJhbWVJbXBsOjpyZXBsYWNl
TWlzc3BlbGxlZFJhbmdlIHNvbWV0aW1lcyByZXBsYWNlcyB0aGUgd3JvbmcgcmFuZ2UuIFRoaXMg
Y2hhbmdlCisgICAgICAgIHVzZXMgUmFuZ2U6OmNyZWF0ZSBpbnN0ZWFkIG9mIFRleHRJdGVyYXRv
cjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGggdG8gc2VsZWN0IHRoZSBjb3JyZWN0CisgICAg
ICAgIHJhbmdlLiBUaGlzIGNoYW5nZSBhbHNvIGRpc2FibGVzIHNtYXJ0IHJlcGxhY2UgaW4gV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UKKyAgICAgICAgdG8gYXZv
aWQgaW50cm9kdWNpbmcgc3BhY2VzIGFyb3VuZCBtaXNzcGVsbGluZ3MuCisKKyAgICAgICAgKiBz
cmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpyZXBs
YWNlTWlzc3BlbGxlZFJhbmdlKTogUmVwbGFjZSBjb3JyZWN0IG1pc3NwZWxsZWQgcmFuZ2UuCisg
ICAgICAgICogdGVzdHMvV2ViRnJhbWVUZXN0LmNwcDogQWRkIHVuaXQgdGVzdCBmb3IgV2ViS2l0
OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UgbWV0aG9kLgorCiAyMDEzLTAy
LTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21p
dW1dIERpc2FibGUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDllZjUwMDIxNzQ2NzY0MDJhZDcwOTMx
NDUxZDIzYjc3Y2FhOGVhMjYuLjlhYzY5NmY5NjY2NjJkODM2Nzk2OWRmMmNmYmIwNWE4YTlkMjJk
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAt
MTMxMCwxMSArMTMxMCwxMyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZU1pc3NwZWxsZWRS
YW5nZShjb25zdCBXZWJTdHJpbmcmIHRleHQpCiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4g
bWFya2VycyA9IGZyYW1lKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0luUmFuZ2Uo
Y2FyZXRSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nIHwgRG9jdW1lbnRNYXJr
ZXI6OkdyYW1tYXIpOwogICAgIGlmIChtYXJrZXJzLnNpemUoKSA8IDEgfHwgbWFya2Vyc1swXS0+
c3RhcnRPZmZzZXQoKSA+PSBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIFJlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJv
bUxvY2F0aW9uQW5kTGVuZ3RoKGZyYW1lKCktPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVt
ZW50T3JEb2N1bWVudEVsZW1lbnQoKSwgbWFya2Vyc1swXS0+c3RhcnRPZmZzZXQoKSwgbWFya2Vy
c1swXS0+ZW5kT2Zmc2V0KCkgLSBtYXJrZXJzWzBdLT5zdGFydE9mZnNldCgpKTsKLSAgICBpZiAo
IW1hcmtlclJhbmdlLmdldCgpIHx8ICFmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdl
U2VsZWN0aW9uKG1hcmtlclJhbmdlLmdldCgpKSkKKyAgICBSZWZQdHI8UmFuZ2U+IG1hcmtlclJh
bmdlID0gUmFuZ2U6OmNyZWF0ZShjYXJldFJhbmdlLT5vd25lckRvY3VtZW50KCksIGNhcmV0UmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCksIG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCksIGNhcmV0UmFu
Z2UtPmVuZENvbnRhaW5lcigpLCBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSk7CisgICAgaWYgKCFt
YXJrZXJSYW5nZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghZnJhbWUoKS0+c2VsZWN0aW9u
KCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihtYXJrZXJSYW5nZS5nZXQoKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG1hcmtlclJhbmdl
LmdldCgpLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgZnJhbWUoKS0+ZWRpdG9yKCktPnJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0ZXh0LCBmYWxzZSwgdHJ1ZSk7CisgICAgZnJhbWUoKS0+
ZWRpdG9yKCktPnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0ZXh0LCBmYWxzZSwgZmFsc2UpOwog
fQogCiBib29sIFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCBhMjZhZDI3MjIzNzUw
MTFkMjJiYjNjN2U4Njk0ZTliZjc4NzA0OWY3Li5jYTE1MzJlZTYwZGY5NDU0ZDQ3MTZjNmY3ZjI1
NzRiYThhODQwYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFt
ZVRlc3QuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogCisj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdGluZ0Jl
aGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lVGVzdEhlbHBlcnMuaCIKQEAgLTU3LDYgKzU5LDkgQEAKICNpbmNs
dWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlNlY3VyaXR5UG9saWN5Lmgi
CiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJTcGVsbENoZWNrQ2xpZW50
LmgiCisjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIldl
YlRleHRDaGVja2luZ1Jlc3VsdC5oIgogI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgInY4LmgiCkBAIC02Nyw2ICs3Miw5IEBACiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5n
IFdlYkNvcmU6OkRvY3VtZW50OwordXNpbmcgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI7Cit1c2lu
ZyBXZWJDb3JlOjpFbGVtZW50OwogdXNpbmcgV2ViQ29yZTo6RmxvYXRSZWN0OwogdXNpbmcgV2Vi
Q29yZTo6UmFuZ2U7CiB1c2luZyBXZWJLaXQ6OlVSTFRlc3RIZWxwZXJzOjp0b0tVUkw7CkBAIC0y
MTg5LDQgKzIxOTcsNTcgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgTW92ZUNhcmV0U2VsZWN0aW9u
VG93YXJkc1dpbmRvd1BvaW50V2l0aE5vU2VsZWN0aW9uKQogICAgIGZyYW1lLT5tb3ZlQ2FyZXRT
ZWxlY3Rpb25Ub3dhcmRzV2luZG93UG9pbnQoV2ViUG9pbnQoMCwgMCkpOwogfQogCitjbGFzcyBT
cGVsbENoZWNrQ2xpZW50IDogcHVibGljIFdlYlNwZWxsQ2hlY2tDbGllbnQgeworcHVibGljOgor
ICAgIFNwZWxsQ2hlY2tDbGllbnQoKSA6IG1fbnVtYmVyT2ZUaW1lc0NoZWNrZWQoMCkgeyB9Cisg
ICAgdmlydHVhbCB+U3BlbGxDaGVja0NsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlRleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmLCBXZWJLaXQ6OldlYlRl
eHRDaGVja2luZ0NvbXBsZXRpb24qIGNvbXBsZXRpb24pCisgICAgeworICAgICAgICBtX251bWJl
ck9mVGltZXNDaGVja2VkKys7CisgICAgICAgIFZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ+
IHJlc3VsdHM7CisgICAgICAgIHJlc3VsdHMuYXBwZW5kKFdlYlRleHRDaGVja2luZ1Jlc3VsdChX
ZWJUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcsIDEsIDgsIFdlYlN0cmluZygpKSk7CisgICAgICAg
IGNvbXBsZXRpb24tPmRpZEZpbmlzaENoZWNraW5nVGV4dChyZXN1bHRzKTsKKyAgICB9CisgICAg
aW50IG51bWJlck9mVGltZXNDaGVja2VkKCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZlRpbWVz
Q2hlY2tlZDsgfQorcHJpdmF0ZToKKyAgICBpbnQgbV9udW1iZXJPZlRpbWVzQ2hlY2tlZDsKK307
CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIFJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UpCit7CisgICAg
V2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2Fk
KCJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPVwiZGF0YVwiIGNvbnRlbnRFZGl0YWJsZT48L2Rpdj4i
KTsKKyAgICBTcGVsbENoZWNrQ2xpZW50KiBzcGVsbGNoZWNrID0gbmV3IFNwZWxsQ2hlY2tDbGll
bnQoKTsKKyAgICB3ZWJWaWV3LT5zZXRTcGVsbENoZWNrQ2xpZW50KHNwZWxsY2hlY2spOworCisg
ICAgV2ViRnJhbWVJbXBsKiBmcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lSW1wbCo+KHdlYlZp
ZXctPm1haW5GcmFtZSgpKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZnJhbWUo
KS0+ZG9jdW1lbnQoKTsKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQtPmdldEVsZW1l
bnRCeUlkKCJkYXRhIik7CisKKyAgICAvLyBTZXR1cCBlbnZpcm9ubWVudC4KKyAgICBmcmFtZS0+
ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgZnJhbWUtPmZyYW1lKCktPnNldHRpbmdzKCktPnNldFVuaWZpZWRUZXh0Q2hl
Y2tlckVuYWJsZWQodHJ1ZSk7CisgICAgZnJhbWUtPmZyYW1lKCktPnNldHRpbmdzKCktPnNldEVk
aXRpbmdCZWhhdmlvclR5cGUoV2ViQ29yZTo6RWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7CisKKyAg
ICAvLyBUeXBlIHRoZSB0ZXh0ICJfd2VsbGNvbWVfLiIKKyAgICBlbGVtZW50LT5mb2N1cygpOwor
ICAgIGRvY3VtZW50LT5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiX3dlbGxjb21l
Xy4iKTsKKworICAgIC8vIFNlbGVjdCB0aGUgdGV4dCAiX3dlbGxjb21lXy4iCisgICAgZnJhbWUt
PnNlbGVjdFJhbmdlKFdlYlJhbmdlOjpmcm9tRG9jdW1lbnRSYW5nZShmcmFtZSwgMCwgMTEpKTsK
KyAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gZnJhbWUtPmZyYW1lKCktPnNlbGVj
dGlvbigpLT50b05vcm1hbGl6ZWRSYW5nZSgpOworCisgICAgLy8gV2FpdCBmb3Igc3BlbGxjaGVj
ay4KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwICYmIGRvY3VtZW50LT5tYXJrZXJzKCktPm1h
cmtlcnNJblJhbmdlKHNlbGVjdGlvblJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxp
bmcpLmlzRW1wdHkoKTsgKytpKQorICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UnVuQWxsUGVuZGlu
Z01lc3NhZ2VzKCk7CisgICAgRVhQRUNUX0VRKDFVLCBkb2N1bWVudC0+bWFya2VycygpLT5tYXJr
ZXJzSW5SYW5nZShzZWxlY3Rpb25SYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5n
KS5zaXplKCkpOworICAgIEVYUEVDVF9FUSgxLCBzcGVsbGNoZWNrLT5udW1iZXJPZlRpbWVzQ2hl
Y2tlZCgpKTsKKworICAgIC8vIFJlcGxhY2UgbWlzc3BlbGxlZCByYW5nZS4KKyAgICBmcmFtZS0+
cmVwbGFjZU1pc3NwZWxsZWRSYW5nZSgid2VsY29tZSIpOworICAgIHdlYmtpdF9zdXBwb3J0OjpS
dW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKworICAgIC8vIFRoZSByZXN1bHRpbmcgdGV4dCBzaG91
bGQgYmUgIl93ZWxjb21lXyIuCisgICAgRVhQRUNUX0VRKCJfd2VsY29tZV8uIiwgc3RkOjpzdHJp
bmcoZnJhbWUtPmNvbnRlbnRBc1RleHQoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSkudXRmOCgpLmRhdGEoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187380</attachid>
            <date>2013-02-08 15:59:43 -0800</date>
            <delta_ts>2013-02-11 12:03:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108513-20130208155617.patch</filename>
            <type>text/plain</type>
            <size>6570</size>
            <attacher name="Rouslan Solomakhin">rouslan+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDE4NmQxMjhhNmM0Y2UyYzRiM2RiNTNiOWRlMDM1NDEyZmI4Y2RmNGQuLmIxZGRmODcyYTIyMTY2
YzNlOTQ5ZTgxZDcyODY1Yzk0ZDNmOGQyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDggIFJvdXNsYW4gU29sb21ha2hpbiAgPHJvdXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVwbGFjZSBjb3JyZWN0IG1pc3Nw
ZWxsZWQgcmFuZ2UgaW4gV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFu
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODUx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktp
dDo6V2ViRnJhbWVJbXBsOjpyZXBsYWNlTWlzc3BlbGxlZFJhbmdlIGlzIGdvaW5nIHRvIGJlIHVz
ZWQgYnkgQ2hyb21pdW0gaW5zdGVhZCBvZgorICAgICAgICBXZWJLaXQ6OldlYkZyYW1lSW1wbDo6
cmVwbGFjZVNlbGVjdGlvbiBmb3IgY29ycmVjdGluZyBtaXNzcGVsbGluZ3MuIFRoZSBjdXJyZW50
IGltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIFdlYktpdDo6V2ViRnJhbWVJbXBsOjpyZXBsYWNl
TWlzc3BlbGxlZFJhbmdlIHNvbWV0aW1lcyByZXBsYWNlcyB0aGUgd3JvbmcgcmFuZ2UuIFRoaXMg
Y2hhbmdlCisgICAgICAgIHVzZXMgUmFuZ2U6OmNyZWF0ZSBpbnN0ZWFkIG9mIFRleHRJdGVyYXRv
cjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGggdG8gc2VsZWN0IHRoZSBjb3JyZWN0CisgICAg
ICAgIHJhbmdlLiBUaGlzIGNoYW5nZSBhbHNvIGRpc2FibGVzIHNtYXJ0IHJlcGxhY2UgaW4gV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UKKyAgICAgICAgdG8gYXZv
aWQgaW50cm9kdWNpbmcgc3BhY2VzIGFyb3VuZCBtaXNzcGVsbGluZ3MuCisKKyAgICAgICAgKiBz
cmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpyZXBs
YWNlTWlzc3BlbGxlZFJhbmdlKTogUmVwbGFjZSBjb3JyZWN0IG1pc3NwZWxsZWQgcmFuZ2UuCisg
ICAgICAgICogdGVzdHMvV2ViRnJhbWVUZXN0LmNwcDogQWRkIHVuaXQgdGVzdCBmb3IgV2ViS2l0
OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UgbWV0aG9kLgorCiAyMDEzLTAy
LTA4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21p
dW1dIERpc2FibGUgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDllZjUwMDIxNzQ2NzY0MDJhZDcwOTMx
NDUxZDIzYjc3Y2FhOGVhMjYuLjlhYzY5NmY5NjY2NjJkODM2Nzk2OWRmMmNmYmIwNWE4YTlkMjJk
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAt
MTMxMCwxMSArMTMxMCwxMyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZU1pc3NwZWxsZWRS
YW5nZShjb25zdCBXZWJTdHJpbmcmIHRleHQpCiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4g
bWFya2VycyA9IGZyYW1lKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0luUmFuZ2Uo
Y2FyZXRSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nIHwgRG9jdW1lbnRNYXJr
ZXI6OkdyYW1tYXIpOwogICAgIGlmIChtYXJrZXJzLnNpemUoKSA8IDEgfHwgbWFya2Vyc1swXS0+
c3RhcnRPZmZzZXQoKSA+PSBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIFJlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJv
bUxvY2F0aW9uQW5kTGVuZ3RoKGZyYW1lKCktPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVt
ZW50T3JEb2N1bWVudEVsZW1lbnQoKSwgbWFya2Vyc1swXS0+c3RhcnRPZmZzZXQoKSwgbWFya2Vy
c1swXS0+ZW5kT2Zmc2V0KCkgLSBtYXJrZXJzWzBdLT5zdGFydE9mZnNldCgpKTsKLSAgICBpZiAo
IW1hcmtlclJhbmdlLmdldCgpIHx8ICFmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdl
U2VsZWN0aW9uKG1hcmtlclJhbmdlLmdldCgpKSkKKyAgICBSZWZQdHI8UmFuZ2U+IG1hcmtlclJh
bmdlID0gUmFuZ2U6OmNyZWF0ZShjYXJldFJhbmdlLT5vd25lckRvY3VtZW50KCksIGNhcmV0UmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCksIG1hcmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCksIGNhcmV0UmFu
Z2UtPmVuZENvbnRhaW5lcigpLCBtYXJrZXJzWzBdLT5lbmRPZmZzZXQoKSk7CisgICAgaWYgKCFt
YXJrZXJSYW5nZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghZnJhbWUoKS0+c2VsZWN0aW9u
KCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihtYXJrZXJSYW5nZS5nZXQoKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG1hcmtlclJhbmdl
LmdldCgpLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgZnJhbWUoKS0+ZWRpdG9yKCktPnJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0ZXh0LCBmYWxzZSwgdHJ1ZSk7CisgICAgZnJhbWUoKS0+
ZWRpdG9yKCktPnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0ZXh0LCBmYWxzZSwgZmFsc2UpOwog
fQogCiBib29sIFdlYkZyYW1lSW1wbDo6aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCBhMjZhZDI3MjIzNzUw
MTFkMjJiYjNjN2U4Njk0ZTliZjc4NzA0OWY3Li42NWZlZmY4ODk4YWNjYzkxNDc1NzdiODc4MzA3
YjJlYzVjMTg0OTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFt
ZVRlc3QuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogCisj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdGluZ0Jl
aGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lVGVzdEhlbHBlcnMuaCIKQEAgLTU3LDYgKzU5LDkgQEAKICNpbmNs
dWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlNlY3VyaXR5UG9saWN5Lmgi
CiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJTcGVsbENoZWNrQ2xpZW50
LmgiCisjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIldl
YlRleHRDaGVja2luZ1Jlc3VsdC5oIgogI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgInY4LmgiCkBAIC02Nyw2ICs3Miw5IEBACiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5n
IFdlYkNvcmU6OkRvY3VtZW50OwordXNpbmcgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI7Cit1c2lu
ZyBXZWJDb3JlOjpFbGVtZW50OwogdXNpbmcgV2ViQ29yZTo6RmxvYXRSZWN0OwogdXNpbmcgV2Vi
Q29yZTo6UmFuZ2U7CiB1c2luZyBXZWJLaXQ6OlVSTFRlc3RIZWxwZXJzOjp0b0tVUkw7CkBAIC0y
MTg5LDQgKzIxOTcsNTcgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgTW92ZUNhcmV0U2VsZWN0aW9u
VG93YXJkc1dpbmRvd1BvaW50V2l0aE5vU2VsZWN0aW9uKQogICAgIGZyYW1lLT5tb3ZlQ2FyZXRT
ZWxlY3Rpb25Ub3dhcmRzV2luZG93UG9pbnQoV2ViUG9pbnQoMCwgMCkpOwogfQogCitjbGFzcyBT
cGVsbENoZWNrQ2xpZW50IDogcHVibGljIFdlYlNwZWxsQ2hlY2tDbGllbnQgeworcHVibGljOgor
ICAgIFNwZWxsQ2hlY2tDbGllbnQoKSA6IG1fbnVtYmVyT2ZUaW1lc0NoZWNrZWQoMCkgeyB9Cisg
ICAgdmlydHVhbCB+U3BlbGxDaGVja0NsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlRleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmLCBXZWJLaXQ6OldlYlRl
eHRDaGVja2luZ0NvbXBsZXRpb24qIGNvbXBsZXRpb24pCisgICAgeworICAgICAgICBtX251bWJl
ck9mVGltZXNDaGVja2VkKys7CisgICAgICAgIFZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ+
IHJlc3VsdHM7CisgICAgICAgIHJlc3VsdHMuYXBwZW5kKFdlYlRleHRDaGVja2luZ1Jlc3VsdChX
ZWJUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcsIDEsIDgsIFdlYlN0cmluZygpKSk7CisgICAgICAg
IGNvbXBsZXRpb24tPmRpZEZpbmlzaENoZWNraW5nVGV4dChyZXN1bHRzKTsKKyAgICB9CisgICAg
aW50IG51bWJlck9mVGltZXNDaGVja2VkKCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZlRpbWVz
Q2hlY2tlZDsgfQorcHJpdmF0ZToKKyAgICBpbnQgbV9udW1iZXJPZlRpbWVzQ2hlY2tlZDsKK307
CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIFJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UpCit7CisgICAg
V2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2Fk
KCJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPVwiZGF0YVwiIGNvbnRlbnRFZGl0YWJsZT48L2Rpdj4i
KTsKKyAgICBTcGVsbENoZWNrQ2xpZW50IHNwZWxsY2hlY2s7CisgICAgd2ViVmlldy0+c2V0U3Bl
bGxDaGVja0NsaWVudCgmc3BlbGxjaGVjayk7CisKKyAgICBXZWJGcmFtZUltcGwqIGZyYW1lID0g
c3RhdGljX2Nhc3Q8V2ViRnJhbWVJbXBsKj4od2ViVmlldy0+bWFpbkZyYW1lKCkpOworICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIEVsZW1l
bnQqIGVsZW1lbnQgPSBkb2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQoImRhdGEiKTsKKworICAgIC8v
IFNldHVwIGVudmlyb25tZW50LgorICAgIGZyYW1lLT5mcmFtZSgpLT5zZXR0aW5ncygpLT5zZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICBmcmFtZS0+ZnJhbWUo
KS0+c2V0dGluZ3MoKS0+c2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCh0cnVlKTsKKyAgICBm
cmFtZS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c2V0RWRpdGluZ0JlaGF2aW9yVHlwZShXZWJDb3Jl
OjpFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKKworICAgIC8vIFR5cGUgdGhlIHRleHQgIl93ZWxs
Y29tZV8uIgorICAgIGVsZW1lbnQtPmZvY3VzKCk7CisgICAgZG9jdW1lbnQtPmV4ZWNDb21tYW5k
KCJJbnNlcnRUZXh0IiwgZmFsc2UsICJfd2VsbGNvbWVfLiIpOworCisgICAgLy8gU2VsZWN0IHRo
ZSB0ZXh0ICJfd2VsbGNvbWVfLiIKKyAgICBmcmFtZS0+c2VsZWN0UmFuZ2UoV2ViUmFuZ2U6OmZy
b21Eb2N1bWVudFJhbmdlKGZyYW1lLCAwLCAxMSkpOworICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0
aW9uUmFuZ2UgPSBmcmFtZS0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdl
KCk7CisKKyAgICAvLyBXYWl0IGZvciBzcGVsbGNoZWNrLgorICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgMTAgJiYgZG9jdW1lbnQtPm1hcmtlcnMoKS0+bWFya2Vyc0luUmFuZ2Uoc2VsZWN0aW9uUmFu
Z2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVsbGluZykuaXNFbXB0eSgpOyArK2kpCisgICAg
ICAgIHdlYmtpdF9zdXBwb3J0OjpSdW5BbGxQZW5kaW5nTWVzc2FnZXMoKTsKKyAgICBFWFBFQ1Rf
RVEoMVUsIGRvY3VtZW50LT5tYXJrZXJzKCktPm1hcmtlcnNJblJhbmdlKHNlbGVjdGlvblJhbmdl
LmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpLnNpemUoKSk7CisgICAgRVhQRUNUX0VR
KDEsIHNwZWxsY2hlY2subnVtYmVyT2ZUaW1lc0NoZWNrZWQoKSk7CisKKyAgICAvLyBSZXBsYWNl
IG1pc3NwZWxsZWQgcmFuZ2UuCisgICAgZnJhbWUtPnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UoIndl
bGNvbWUiKTsKKyAgICB3ZWJraXRfc3VwcG9ydDo6UnVuQWxsUGVuZGluZ01lc3NhZ2VzKCk7CisK
KyAgICAvLyBUaGUgcmVzdWx0aW5nIHRleHQgc2hvdWxkIGJlICJfd2VsY29tZV8iLgorICAgIEVY
UEVDVF9FUSgiX3dlbGNvbWVfLiIsIHN0ZDo6c3RyaW5nKGZyYW1lLT5jb250ZW50QXNUZXh0KHN0
ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpLnV0ZjgoKS5kYXRhKCkpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187633</attachid>
            <date>2013-02-11 12:03:48 -0800</date>
            <delta_ts>2013-02-11 12:25:26 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108513-20130211120019.patch</filename>
            <type>text/plain</type>
            <size>6406</size>
            <attacher name="Rouslan Solomakhin">rouslan+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDI3NDNlN2E1YjNlNTI2ZTJjZTU4MWE2MmE5ZWY3NjkxNzdmOWE4YzEuLjY2ZDQ3ZTk4NjIzNjRj
NTM5Y2Q2MDJlYTM4YjI2OWE4ZmZlZmE1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDggIFJvdXNsYW4gU29sb21ha2hpbiAgPHJvdXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVwbGFjZSBjb3JyZWN0IG1pc3Nw
ZWxsZWQgcmFuZ2UgaW4gV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFu
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODUx
MworCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgV2ViS2l0OjpX
ZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNzcGVsbGVkUmFuZ2UgaXMgZ29pbmcgdG8gYmUgdXNlZCBi
eSBDaHJvbWl1bSBpbnN0ZWFkIG9mCisgICAgICAgIFdlYktpdDo6V2ViRnJhbWVJbXBsOjpyZXBs
YWNlU2VsZWN0aW9uIGZvciBjb3JyZWN0aW5nIG1pc3NwZWxsaW5ncy4gVGhlIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24KKyAgICAgICAgb2YgV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VNaXNz
cGVsbGVkUmFuZ2Ugc29tZXRpbWVzIHJlcGxhY2VzIHRoZSB3cm9uZyByYW5nZS4gVGhpcyBjaGFu
Z2UKKyAgICAgICAgdXNlcyBSYW5nZTo6Y3JlYXRlIGluc3RlYWQgb2YgVGV4dEl0ZXJhdG9yOjpy
YW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aCB0byBzZWxlY3QgdGhlIGNvcnJlY3QKKyAgICAgICAg
cmFuZ2UuIFRoaXMgY2hhbmdlIGFsc28gZGlzYWJsZXMgc21hcnQgcmVwbGFjZSBpbiBXZWJLaXQ6
OldlYkZyYW1lSW1wbDo6cmVwbGFjZU1pc3NwZWxsZWRSYW5nZQorICAgICAgICB0byBhdm9pZCBp
bnRyb2R1Y2luZyBzcGFjZXMgYXJvdW5kIG1pc3NwZWxsaW5ncy4KKworICAgICAgICAqIHNyYy9X
ZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnJlcGxhY2VN
aXNzcGVsbGVkUmFuZ2UpOiBSZXBsYWNlIGNvcnJlY3QgbWlzc3BlbGxlZCByYW5nZS4KKyAgICAg
ICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOiBBZGQgdW5pdCB0ZXN0IGZvciBXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6cmVwbGFjZU1pc3NwZWxsZWRSYW5nZSBtZXRob2QuCisKIDIwMTMtMDItMTEg
IEFsZXhlaSBGaWxpcHBvdiAgPGFscGhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFNwbGl0IFByb2ZpbGVyIGRvbWFpbiBpbiBwcm90b2NvbCBpbnRvIFByb2ZpbGVyIGFu
ZCBIZWFwUHJvZmlsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCmluZGV4IDllZjUwMDIxNzQ2NzY0MDJhZDcwOTMxNDUxZDIzYjc3Y2FhOGVhMjYuLjlhYzY5
NmY5NjY2NjJkODM2Nzk2OWRmMmNmYmIwNWE4YTlkMjJkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtMTMxMCwxMSArMTMxMCwxMyBAQCB2b2lk
IFdlYkZyYW1lSW1wbDo6cmVwbGFjZU1pc3NwZWxsZWRSYW5nZShjb25zdCBXZWJTdHJpbmcmIHRl
eHQpCiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gbWFya2VycyA9IGZyYW1lKCktPmRvY3Vt
ZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0luUmFuZ2UoY2FyZXRSYW5nZS5nZXQoKSwgRG9jdW1l
bnRNYXJrZXI6OlNwZWxsaW5nIHwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOwogICAgIGlmICht
YXJrZXJzLnNpemUoKSA8IDEgfHwgbWFya2Vyc1swXS0+c3RhcnRPZmZzZXQoKSA+PSBtYXJrZXJz
WzBdLT5lbmRPZmZzZXQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIFJlZlB0cjxSYW5nZT4gbWFy
a2VyUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGZyYW1l
KCktPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSwg
bWFya2Vyc1swXS0+c3RhcnRPZmZzZXQoKSwgbWFya2Vyc1swXS0+ZW5kT2Zmc2V0KCkgLSBtYXJr
ZXJzWzBdLT5zdGFydE9mZnNldCgpKTsKLSAgICBpZiAoIW1hcmtlclJhbmdlLmdldCgpIHx8ICFm
cmFtZSgpLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG1hcmtlclJhbmdlLmdl
dCgpKSkKKyAgICBSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlID0gUmFuZ2U6OmNyZWF0ZShjYXJl
dFJhbmdlLT5vd25lckRvY3VtZW50KCksIGNhcmV0UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIG1h
cmtlcnNbMF0tPnN0YXJ0T2Zmc2V0KCksIGNhcmV0UmFuZ2UtPmVuZENvbnRhaW5lcigpLCBtYXJr
ZXJzWzBdLT5lbmRPZmZzZXQoKSk7CisgICAgaWYgKCFtYXJrZXJSYW5nZSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlv
bihtYXJrZXJSYW5nZS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBmcmFtZSgpLT5zZWxl
Y3Rpb24oKS0+c2V0U2VsZWN0aW9uKG1hcmtlclJhbmdlLmdldCgpLCBDaGFyYWN0ZXJHcmFudWxh
cml0eSk7Ci0gICAgZnJhbWUoKS0+ZWRpdG9yKCktPnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0
ZXh0LCBmYWxzZSwgdHJ1ZSk7CisgICAgZnJhbWUoKS0+ZWRpdG9yKCktPnJlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dCh0ZXh0LCBmYWxzZSwgZmFsc2UpOwogfQogCiBib29sIFdlYkZyYW1lSW1wbDo6
aGFzU2VsZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2Vi
RnJhbWVUZXN0LmNwcAppbmRleCBkNTE5NzAzODMwZjE5MDNlMjE4NWU2M2UxZmE3Y2I5MGFiMGMx
NGFlLi5lYWE5NzUyNmI3NTVhY2M5YWU2OWYyMGM1OTBlZDE2OGIwMGJhNzZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVRlc3RIZWxwZXJzLmgiCkBAIC01Nyw2ICs1OCw5IEBACiAjaW5jbHVk
ZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eVBvbGljeS5oIgog
I2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViU3BlbGxDaGVja0NsaWVudC5o
IgorI2luY2x1ZGUgIldlYlRleHRDaGVja2luZ0NvbXBsZXRpb24uaCIKKyNpbmNsdWRlICJXZWJU
ZXh0Q2hlY2tpbmdSZXN1bHQuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJ2OC5oIgpAQCAtNjksNiArNzMsOSBAQAogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1c2luZyBX
ZWJDb3JlOjpEb2N1bWVudDsKK3VzaW5nIFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOwordXNpbmcg
V2ViQ29yZTo6RWxlbWVudDsKIHVzaW5nIFdlYkNvcmU6OkZsb2F0UmVjdDsKIHVzaW5nIFdlYkNv
cmU6OlJhbmdlOwogdXNpbmcgV2ViS2l0OjpVUkxUZXN0SGVscGVyczo6dG9LVVJMOwpAQCAtMjIz
Myw0ICsyMjQwLDU0IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIE1vdmVDYXJldFNlbGVjdGlvblRv
d2FyZHNXaW5kb3dQb2ludFdpdGhOb1NlbGVjdGlvbikKICAgICBmcmFtZS0+bW92ZUNhcmV0U2Vs
ZWN0aW9uVG93YXJkc1dpbmRvd1BvaW50KFdlYlBvaW50KDAsIDApKTsKIH0KIAorY2xhc3MgU3Bl
bGxDaGVja0NsaWVudCA6IHB1YmxpYyBXZWJTcGVsbENoZWNrQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBTcGVsbENoZWNrQ2xpZW50KCkgOiBtX251bWJlck9mVGltZXNDaGVja2VkKDApIHsgfQorICAg
IHZpcnR1YWwgflNwZWxsQ2hlY2tDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZUZXh0KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiwgV2ViS2l0OjpXZWJUZXh0
Q2hlY2tpbmdDb21wbGV0aW9uKiBjb21wbGV0aW9uKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
KyttX251bWJlck9mVGltZXNDaGVja2VkOworICAgICAgICBWZWN0b3I8V2ViVGV4dENoZWNraW5n
UmVzdWx0PiByZXN1bHRzOworICAgICAgICBjb25zdCBpbnQgbWlzc3BlbGxpbmdTdGFydE9mZnNl
dCA9IDE7CisgICAgICAgIGNvbnN0IGludCBtaXNzcGVsbGluZ0xlbmd0aCA9IDg7CisgICAgICAg
IHJlc3VsdHMuYXBwZW5kKFdlYlRleHRDaGVja2luZ1Jlc3VsdChXZWJUZXh0Q2hlY2tpbmdUeXBl
U3BlbGxpbmcsIG1pc3NwZWxsaW5nU3RhcnRPZmZzZXQsIG1pc3NwZWxsaW5nTGVuZ3RoLCBXZWJT
dHJpbmcoKSkpOworICAgICAgICBjb21wbGV0aW9uLT5kaWRGaW5pc2hDaGVja2luZ1RleHQocmVz
dWx0cyk7CisgICAgfQorICAgIGludCBudW1iZXJPZlRpbWVzQ2hlY2tlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbnVtYmVyT2ZUaW1lc0NoZWNrZWQ7IH0KK3ByaXZhdGU6CisgICAgaW50IG1fbnVtYmVy
T2ZUaW1lc0NoZWNrZWQ7Cit9OworCitURVNUX0YoV2ViRnJhbWVUZXN0LCBSZXBsYWNlTWlzc3Bl
bGxlZFJhbmdlKQoreworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdl
YlZpZXdBbmRMb2FkKCJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPVwiZGF0YVwiIGNvbnRlbnRFZGl0
YWJsZT48L2Rpdj4iKTsKKyAgICBTcGVsbENoZWNrQ2xpZW50IHNwZWxsY2hlY2s7CisgICAgbV93
ZWJWaWV3LT5zZXRTcGVsbENoZWNrQ2xpZW50KCZzcGVsbGNoZWNrKTsKKworICAgIFdlYkZyYW1l
SW1wbCogZnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUltcGwqPihtX3dlYlZpZXctPm1haW5G
cmFtZSgpKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZnJhbWUoKS0+ZG9jdW1l
bnQoKTsKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQtPmdldEVsZW1lbnRCeUlkKCJk
YXRhIik7CisKKyAgICBmcmFtZS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgZnJhbWUtPmZyYW1lKCktPnNldHRpbmdz
KCktPnNldFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CisgICAgZnJhbWUtPmZyYW1l
KCktPnNldHRpbmdzKCktPnNldEVkaXRpbmdCZWhhdmlvclR5cGUoV2ViQ29yZTo6RWRpdGluZ1dp
bmRvd3NCZWhhdmlvcik7CisKKyAgICBlbGVtZW50LT5mb2N1cygpOworICAgIGRvY3VtZW50LT5l
eGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiX3dlbGxjb21lXy4iKTsKKworICAgIGNv
bnN0IGludCBhbGxUZXh0QmVnaW5PZmZzZXQgPSAwOworICAgIGNvbnN0IGludCBhbGxUZXh0TGVu
Z3RoID0gMTE7CisgICAgZnJhbWUtPnNlbGVjdFJhbmdlKFdlYlJhbmdlOjpmcm9tRG9jdW1lbnRS
YW5nZShmcmFtZSwgYWxsVGV4dEJlZ2luT2Zmc2V0LCBhbGxUZXh0TGVuZ3RoKSk7CisgICAgUmVm
UHRyPFJhbmdlPiBzZWxlY3Rpb25SYW5nZSA9IGZyYW1lLT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKKworICAgIEVYUEVDVF9FUSgxLCBzcGVsbGNoZWNrLm51bWJl
ck9mVGltZXNDaGVja2VkKCkpOworICAgIEVYUEVDVF9FUSgxVSwgZG9jdW1lbnQtPm1hcmtlcnMo
KS0+bWFya2Vyc0luUmFuZ2Uoc2VsZWN0aW9uUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpT
cGVsbGluZykuc2l6ZSgpKTsKKworICAgIGZyYW1lLT5yZXBsYWNlTWlzc3BlbGxlZFJhbmdlKCJ3
ZWxjb21lIik7CisgICAgRVhQRUNUX0VRKCJfd2VsY29tZV8uIiwgc3RkOjpzdHJpbmcoZnJhbWUt
PmNvbnRlbnRBc1RleHQoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkudXRmOCgp
LmRhdGEoKSkpOworCisgICAgbV93ZWJWaWV3LT5jbG9zZSgpOworICAgIG1fd2ViVmlldyA9IDA7
Cit9CisKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>