<?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>26573</bug_id>
          
          <creation_ts>2009-06-20 06:19:16 -0700</creation_ts>
          <short_desc>[Gtk] Add Undo/Redo support to WebKitGtk</short_desc>
          <delta_ts>2009-06-24 17:49:13 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiahua Huang">jhuangjiahua</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jhuangjiahua</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>127137</commentid>
    <comment_count>0</comment_count>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 06:19:16 -0700</bug_when>
    <thetext>Please add Undo/Redo support to WebKitGtk. Safari, QtWebkit and Chromium already supports this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127138</commentid>
    <comment_count>1</comment_count>
      <attachid>31595</attachid>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 06:21:47 -0700</bug_when>
    <thetext>Created attachment 31595
Add Undo/Redo support to WebKitGtk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127139</commentid>
    <comment_count>2</comment_count>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 06:25:18 -0700</bug_when>
    <thetext>This patch extracted from chromium linux.(In reply to comment #1)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127141</commentid>
    <comment_count>3</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-20 06:50:37 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch extracted from chromium linux.(In reply to comment #1)

Thanks for the patch. This requires a ChangeLog, see http://webkit.org/coding/contributing.html on how to contribute code. The style in this patch needs to adhere to our coding style too - see http://webkit.org/coding/coding-style.html for more info.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127149</commentid>
    <comment_count>4</comment_count>
      <attachid>31597</attachid>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 08:50:37 -0700</bug_when>
    <thetext>Created attachment 31597
patch with a ChangeLog

add a ChangeLog.
Create the patch using the svn-create-patch script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127150</commentid>
    <comment_count>5</comment_count>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 08:55:38 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=31597) [review]
&gt; patch with a ChangeLog
&gt; 
&gt; add a ChangeLog.
&gt; Create the patch using the svn-create-patch script.
&gt; 

Thanks.

add a ChangeLog,
and create a new patch using the svn-create-patch script.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127165</commentid>
    <comment_count>6</comment_count>
      <attachid>31597</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-20 15:10:27 -0700</bug_when>
    <thetext>Comment on attachment 31597
patch with a ChangeLog

Thanks for updating the patch.

&gt; -void EditorClient::registerCommandForUndo(WTF::PassRefPtr&lt;WebCore::EditCommand&gt;)
&gt; +void EditorClient::registerCommandForUndo(WTF::PassRefPtr&lt;WebCore::EditCommand&gt; command)
&gt;  {
&gt; -    notImplemented();
&gt; +    if (undo_stack_.size() == kMaximumUndoStackDepth)
&gt; +        undo_stack_.pop_front();  // drop oldest item off the far end

The variable names need to be fixed - should be undoStack for example. Please see the coding style guidelines I referenced earlier.

&gt;  void EditorClient::undo()
&gt;  {
&gt; -    notImplemented();
&gt; +    if (canUndo()) {
&gt; +        RefPtr&lt;WebCore::EditCommand&gt; command(undo_stack_.back());
&gt; +        undo_stack_.pop_back();
&gt; +        command-&gt;unapply();
&gt; +        // unapply will call us back to push this command onto the redo stack.

Please put the comment before the operation it&apos;s trying to give context to. Not after.

&gt;  void EditorClient::redo()
&gt;  {
&gt; -    notImplemented();
&gt; +    if (canRedo()) {
&gt; +        RefPtr&lt;WebCore::EditCommand&gt; command(redo_stack_.back());
&gt; +        redo_stack_.pop_back();
&gt; +
&gt; +        ASSERT(!in_redo_);
&gt; +        in_redo_ = true;
&gt; +        command-&gt;reapply();
&gt; +        // reapply will call us back to push this command onto the undo stack.

Ditto.

&gt;      class EditorClient : public WebCore::EditorClient {
&gt; +    protected:
&gt; +        bool use_editor_delegate_;

Where is this variable used?

Looks fine nevertheless. Please mark the review flag as r? next time so it will end up in the review queue and other reviewers can review it too.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127191</commentid>
    <comment_count>7</comment_count>
      <attachid>31605</attachid>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 22:41:20 -0700</bug_when>
    <thetext>Created attachment 31605
repatch follow the coding style guidelines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127192</commentid>
    <comment_count>8</comment_count>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-20 22:49:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 31597 [review])
&gt; Looks fine nevertheless. Please mark the review flag as r? next time so it will
&gt; end up in the review queue and other reviewers can review it too.
&gt; 

Thanks,
it has been revised.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127296</commentid>
    <comment_count>9</comment_count>
      <attachid>31605</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-21 23:50:13 -0700</bug_when>
    <thetext>Comment on attachment 31605
repatch follow the coding style guidelines

First of all great you are working on it, and I assumed that such a implementation would be much bigger than what you came up with...

A general remark is please read:
    http://webkit.org/coding/contributing.html
    http://webkit.org/coding/coding-style.html


&gt; Index: WebKit/gtk/ChangeLog
&gt; ===================================================================
&gt; --- WebKit/gtk/ChangeLog	(revision 44907)
&gt; +++ WebKit/gtk/ChangeLog	(working copy)
&gt; @@ -1,3 +1,18 @@
&gt; +2009-06-21  Jiahua Huang  &lt;jhuangjiahua@gmail.com&gt;
&gt; +
&gt; +        Unreviewed. Add Undo/Redo support to WebKitGtk.

Please us the prepare-ChangeLog tool to generate the changelog.


&gt; +// Arbitrary depth limit for the undo stack, to keep it from using
&gt; +// unbounded memory.  This is the maximum number of distinct undoable
&gt; +// actions -- unbroken stretches of typed characters are coalesced
&gt; +// into a single action.
&gt; +static const size_t kMaximumUndoStackDepth = 1000;


the naming of the variable is a bit awkward... we don&apos;t use the &apos;k&apos; for konstants or such... just make it maximumUndoStackDepth, or to reduce the binary size make it a #define..


&gt;  bool EditorClient::shouldInsertNode(Node*, Range*, EditorInsertAction)
&gt; Index: WebKit/gtk/WebCoreSupport/EditorClientGtk.h
&gt; ===================================================================
&gt; --- WebKit/gtk/WebCoreSupport/EditorClientGtk.h	(revision 44907)

&gt; +#include &lt;deque&gt;
&gt; +

Main reason to say know right now. I don&apos;t think we want to have more stl dependencies. Could you please revise the patch to use the wtf/Deque.h and check if that works?


&gt;  #include &quot;EditorClient.h&quot;
&gt;  
&gt;  #include &lt;wtf/Forward.h&gt;
&gt; @@ -43,6 +45,13 @@ namespace WebCore {
&gt;  namespace WebKit {
&gt;  
&gt;      class EditorClient : public WebCore::EditorClient {
&gt; +    protected:
&gt; +        bool isInRedo;


To make the paranoid happy, could you please add an EditorClient constructor and initialize isInRedo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127365</commentid>
    <comment_count>10</comment_count>
      <attachid>31651</attachid>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-22 09:30:57 -0700</bug_when>
    <thetext>Created attachment 31651
revise the patch to use the wtf/Deque.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127885</commentid>
    <comment_count>11</comment_count>
      <attachid>31651</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-24 03:20:42 -0700</bug_when>
    <thetext>Comment on attachment 31651
revise the patch to use the wtf/Deque.h

&gt; +void EditorClient::registerCommandForUndo(WTF::PassRefPtr&lt;WebCore::EditCommand&gt; command)
&gt;  {
&gt; -    notImplemented();
&gt; +    if (undoStack.size() == maximumUndoStackDepth)
&gt; +	undoStack.removeFirst();

Kindly fix the spacing.

&gt;  bool EditorClient::shouldInsertNode(Node*, Range*, EditorInsertAction)
&gt; @@ -524,6 +547,7 @@ EditorClient::EditorClient(WebKitWebView
&gt;      : m_webView(webView)
&gt;  {
&gt;      WebKitWebViewPrivate* priv = m_webView-&gt;priv;
&gt; +    isInRedo = false;

This needs to be in the initialization list.

&gt;      class EditorClient : public WebCore::EditorClient {
&gt; +    protected:
&gt; +        bool isInRedo;

Member variables need to be prefixed with m_. See coding style for details.

&gt; +
&gt; +        typedef WTF::Deque&lt;WTF::RefPtr&lt;WebCore::EditCommand&gt; &gt; EditCommandStack;
&gt; +        EditCommandStack undoStack;
&gt; +        EditCommandStack redoStack;

Is the typedef necessary since you&apos;re only using EditCommandStack in these two lines?

r- for now until those the style issues are fixed. Patch looks fine otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127889</commentid>
    <comment_count>12</comment_count>
      <attachid>31779</attachid>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-24 04:36:56 -0700</bug_when>
    <thetext>Created attachment 31779
fixed the style issues

(In reply to comment #11)
&gt; r- for now until those the style issues are fixed. Patch looks fine otherwise.
&gt; 

Thanks, the style issues are fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127892</commentid>
    <comment_count>13</comment_count>
      <attachid>31779</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-24 05:00:20 -0700</bug_when>
    <thetext>Comment on attachment 31779
fixed the style issues


&gt;  EditorClient::EditorClient(WebKitWebView* webView)
&gt; -    : m_webView(webView)
&gt; +    : m_isInRedo(false), m_webView(webView)

The last style issue... I will fix it when landing! Thanks for the work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127908</commentid>
    <comment_count>14</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-06-24 07:03:40 -0700</bug_when>
    <thetext>Thanks landed in r45080. Some more remarks on the style... normally we put protected/private to the bottom of the file... and at least I have the old Qt habbit to prefix members with m_ so you can easily see what is a member and what is not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127910</commentid>
    <comment_count>15</comment_count>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-24 07:25:56 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Thanks landed in r45080. Some more remarks on the style... normally we put
&gt; protected/private to the bottom of the file... and at least I have the old Qt
&gt; habbit to prefix members with m_ so you can easily see what is a member and
&gt; what is not.
&gt; 

I appreciate your comments.
I see. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128045</commentid>
    <comment_count>16</comment_count>
    <who name="Jiahua Huang">jhuangjiahua</who>
    <bug_when>2009-06-24 17:49:13 -0700</bug_when>
    <thetext>It works.
Should I mark this bug as CLOSED</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31595</attachid>
            <date>2009-06-20 06:21:47 -0700</date>
            <delta_ts>2009-06-20 22:41:20 -0700</delta_ts>
            <desc>Add Undo/Redo support to WebKitGtk</desc>
            <filename>webkitgtk-undo-redo-support.patch</filename>
            <type>text/plain</type>
            <size>3404</size>
            <attacher name="Jiahua Huang">jhuangjiahua</attacher>
            
              <data encoding="base64">PT09IG1vZGlmaWVkIGZpbGUgJ3dlYmtpdC0xLjEuMTAvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuY3BwJwotLS0gd2Via2l0LTEuMS4xMC9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAJMjAwOS0wNi0yMCAwOToyNToxMiArMDAwMAor
Kysgd2Via2l0LTEuMS4xMC9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHAJMjAwOS0wNi0yMCAxMjowMzo1NiArMDAwMApAQCAtMzksNiArMzksMTIgQEAKICNpbmNs
dWRlICJtYXJrdXAuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAKKy8vIEFyYml0cmFy
eSBkZXB0aCBsaW1pdCBmb3IgdGhlIHVuZG8gc3RhY2ssIHRvIGtlZXAgaXQgZnJvbSB1c2luZwor
Ly8gdW5ib3VuZGVkIG1lbW9yeS4gIFRoaXMgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpc3Rp
bmN0IHVuZG9hYmxlCisvLyBhY3Rpb25zIC0tIHVuYnJva2VuIHN0cmV0Y2hlcyBvZiB0eXBlZCBj
aGFyYWN0ZXJzIGFyZSBjb2FsZXNjZWQKKy8vIGludG8gYSBzaW5nbGUgYWN0aW9uLgorc3RhdGlj
IGNvbnN0IHNpemVfdCBrTWF4aW11bVVuZG9TdGFja0RlcHRoID0gMTAwMDsKKwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjUzLDQxICsyNTksNTgg
QEAgYm9vbCBFZGl0b3JDbGllbnQ6OmlzRWRpdGFibGUoKQogICAgIHJldHVybiB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2VkaXRhYmxlKG1fd2ViVmlldyk7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlckNvbW1hbmRGb3JVbmRvKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFu
ZD4pCit2b2lkIEVkaXRvckNsaWVudDo6cmVnaXN0ZXJDb21tYW5kRm9yVW5kbyhXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBpZiAodW5kb19zdGFja18uc2l6ZSgpID09IGtNYXhpbXVtVW5kb1N0YWNrRGVw
dGgpCisgICAgICAgIHVuZG9fc3RhY2tfLnBvcF9mcm9udCgpOyAgLy8gZHJvcCBvbGRlc3QgaXRl
bSBvZmYgdGhlIGZhciBlbmQKKyAgICBpZiAoIWluX3JlZG9fKQorICAgICAgICByZWRvX3N0YWNr
Xy5jbGVhcigpOworICAgIHVuZG9fc3RhY2tfLnB1c2hfYmFjayhjb21tYW5kKTsKIH0KIAotdm9p
ZCBFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8oV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OkVkaXRDb21tYW5kPikKK3ZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRG
b3JSZWRvKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJlZG9fc3RhY2tfLnB1c2hfYmFjayhjb21tYW5k
KTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnQ6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHVuZG9fc3RhY2tfLmNsZWFyKCk7CisgICAgcmVk
b19zdGFja18uY2xlYXIoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmNhblVuZG8oKSBjb25z
dAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biAhdW5kb19zdGFja18uZW1wdHkoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmNhblJlZG8o
KSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiAhcmVkb19zdGFja18uZW1wdHkoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnQ6OnVu
ZG8oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKGNhblVuZG8oKSkgeworICAg
ICAgICBSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+IGNvbW1hbmQodW5kb19zdGFja18uYmFj
aygpKTsKKyAgICAgICAgdW5kb19zdGFja18ucG9wX2JhY2soKTsKKyAgICAgICAgY29tbWFuZC0+
dW5hcHBseSgpOworICAgICAgICAvLyB1bmFwcGx5IHdpbGwgY2FsbCB1cyBiYWNrIHRvIHB1c2gg
dGhpcyBjb21tYW5kIG9udG8gdGhlIHJlZG8gc3RhY2suCisgICAgfQogfQogCiB2b2lkIEVkaXRv
ckNsaWVudDo6cmVkbygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoY2FuUmVk
bygpKSB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFuZChyZWRv
X3N0YWNrXy5iYWNrKCkpOworICAgICAgICByZWRvX3N0YWNrXy5wb3BfYmFjaygpOworCisgICAg
ICAgIEFTU0VSVCghaW5fcmVkb18pOworICAgICAgICBpbl9yZWRvXyA9IHRydWU7CisgICAgICAg
IGNvbW1hbmQtPnJlYXBwbHkoKTsKKyAgICAgICAgLy8gcmVhcHBseSB3aWxsIGNhbGwgdXMgYmFj
ayB0byBwdXNoIHRoaXMgY29tbWFuZCBvbnRvIHRoZSB1bmRvIHN0YWNrLgorICAgICAgICBpbl9y
ZWRvXyA9IGZhbHNlOworICAgIH0KIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OnNob3VsZEluc2Vy
dE5vZGUoTm9kZSosIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKQoKPT09IG1vZGlmaWVkIGZp
bGUgJ3dlYmtpdC0xLjEuMTAvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuaCcKLS0tIHdlYmtpdC0xLjEuMTAvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaAkyMDA5LTA2LTIwIDA5OjI1OjEyICswMDAwCisrKyB3ZWJraXQtMS4xLjEwL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgJMjAwOS0wNi0yMCAxMTo1
ODoxOSArMDAwMApAQCAtMzAsNiArMzAsOCBAQAogI2lmbmRlZiBFZGl0b3JDbGllbnRHdGtfaAog
I2RlZmluZSBFZGl0b3JDbGllbnRHdGtfaAogCisjaW5jbHVkZSA8ZGVxdWU+CisKICNpbmNsdWRl
ICJFZGl0b3JDbGllbnQuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Myw2ICs0
NSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgIGNs
YXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworICAgIHBy
b3RlY3RlZDoKKyAgICAgICAgYm9vbCB1c2VfZWRpdG9yX2RlbGVnYXRlXzsKKyAgICAgICAgYm9v
bCBpbl9yZWRvXzsKKyAgICAgIAorICAgICAgICB0eXBlZGVmIHN0ZDo6ZGVxdWU8V1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiA+IEVkaXRDb21tYW5kU3RhY2s7CisgICAgICAg
IEVkaXRDb21tYW5kU3RhY2sgdW5kb19zdGFja187CisgICAgICAgIEVkaXRDb21tYW5kU3RhY2sg
cmVkb19zdGFja187ICAgIAorCiAgICAgcHVibGljOgogICAgICAgICBFZGl0b3JDbGllbnQoV2Vi
S2l0V2ViVmlldyopOwogICAgICAgICB+RWRpdG9yQ2xpZW50KCk7Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31597</attachid>
            <date>2009-06-20 08:50:37 -0700</date>
            <delta_ts>2009-06-20 22:41:20 -0700</delta_ts>
            <desc>patch with a ChangeLog</desc>
            <filename>webkitgtk-undo-redo-support.patch</filename>
            <type>text/plain</type>
            <size>4115</size>
            <attacher name="Jiahua Huang">jhuangjiahua</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NDg5OSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDYtMjAgIEppYWh1YSBIdWFuZyAgPGpodWFu
Z2ppYWh1YUBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZC4gQWRkIFVuZG8vUmVkbyBz
dXBwb3J0IHRvIFdlYktpdEd0ay4KKworCSogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcDoKKwkoRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JVbmRvKToKKwkoRWRpdG9y
Q2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKToKKwkoRWRpdG9yQ2xpZW50OjpjbGVhclVu
ZG9SZWRvT3BlcmF0aW9ucyk6CisJKEVkaXRvckNsaWVudDo6Y2FuVW5kbyk6CisJKEVkaXRvckNs
aWVudDo6Y2FuUmVkbyk6CisJKEVkaXRvckNsaWVudDo6dW5kbyk6CisJKEVkaXRvckNsaWVudDo6
cmVkbyk6CisJKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKwlBZGQgRWRpdENv
bW1hbmRTdGFjaworCiAyMDA5LTA2LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25v
bWUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCkluZGV4OiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCShyZXZpc2lvbiA0NDg5
OSkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzksNiArMzksMTIgQEAKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNs
dWRlICJ3ZWJraXRwcml2YXRlLmgiCiAKKy8vIEFyYml0cmFyeSBkZXB0aCBsaW1pdCBmb3IgdGhl
IHVuZG8gc3RhY2ssIHRvIGtlZXAgaXQgZnJvbSB1c2luZworLy8gdW5ib3VuZGVkIG1lbW9yeS4g
IFRoaXMgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpc3RpbmN0IHVuZG9hYmxlCisvLyBhY3Rp
b25zIC0tIHVuYnJva2VuIHN0cmV0Y2hlcyBvZiB0eXBlZCBjaGFyYWN0ZXJzIGFyZSBjb2FsZXNj
ZWQKKy8vIGludG8gYSBzaW5nbGUgYWN0aW9uLgorc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4aW11
bVVuZG9TdGFja0RlcHRoID0gMTAwMDsKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtMjUzLDQxICsyNTksNTggQEAgYm9vbCBFZGl0b3JDbGllbnQ6
OmlzRWRpdGFibGUoKQogICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKG1f
d2ViVmlldyk7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JVbmRv
KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4pCit2b2lkIEVkaXRvckNsaWVu
dDo6cmVnaXN0ZXJDb21tYW5kRm9yVW5kbyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENv
bW1hbmQ+IGNvbW1hbmQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAodW5kb19z
dGFja18uc2l6ZSgpID09IGtNYXhpbXVtVW5kb1N0YWNrRGVwdGgpCisgICAgICAgIHVuZG9fc3Rh
Y2tfLnBvcF9mcm9udCgpOyAgLy8gZHJvcCBvbGRlc3QgaXRlbSBvZmYgdGhlIGZhciBlbmQKKyAg
ICBpZiAoIWluX3JlZG9fKQorICAgICAgICByZWRvX3N0YWNrXy5jbGVhcigpOworICAgIHVuZG9f
c3RhY2tfLnB1c2hfYmFjayhjb21tYW5kKTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnJlZ2lz
dGVyQ29tbWFuZEZvclJlZG8oV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPikK
K3ZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJlZG9fc3RhY2tfLnB1c2hfYmFjayhjb21tYW5kKTsKIH0KIAogdm9pZCBFZGl0b3JD
bGllbnQ6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHVuZG9fc3RhY2tfLmNsZWFyKCk7CisgICAgcmVkb19zdGFja18uY2xlYXIoKTsKIH0K
IAogYm9vbCBFZGl0b3JDbGllbnQ6OmNhblVuZG8oKSBjb25zdAogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhdW5kb19zdGFja18uZW1wdHko
KTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmNhblJlZG8oKSBjb25zdAogewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhcmVkb19zdGFja18u
ZW1wdHkoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnQ6OnVuZG8oKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgaWYgKGNhblVuZG8oKSkgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6
RWRpdENvbW1hbmQ+IGNvbW1hbmQodW5kb19zdGFja18uYmFjaygpKTsKKyAgICAgICAgdW5kb19z
dGFja18ucG9wX2JhY2soKTsKKyAgICAgICAgY29tbWFuZC0+dW5hcHBseSgpOworICAgICAgICAv
LyB1bmFwcGx5IHdpbGwgY2FsbCB1cyBiYWNrIHRvIHB1c2ggdGhpcyBjb21tYW5kIG9udG8gdGhl
IHJlZG8gc3RhY2suCisgICAgfQogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6cmVkbygpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoY2FuUmVkbygpKSB7CisgICAgICAgIFJlZlB0
cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFuZChyZWRvX3N0YWNrXy5iYWNrKCkpOworICAg
ICAgICByZWRvX3N0YWNrXy5wb3BfYmFjaygpOworCisgICAgICAgIEFTU0VSVCghaW5fcmVkb18p
OworICAgICAgICBpbl9yZWRvXyA9IHRydWU7CisgICAgICAgIGNvbW1hbmQtPnJlYXBwbHkoKTsK
KyAgICAgICAgLy8gcmVhcHBseSB3aWxsIGNhbGwgdXMgYmFjayB0byBwdXNoIHRoaXMgY29tbWFu
ZCBvbnRvIHRoZSB1bmRvIHN0YWNrLgorICAgICAgICBpbl9yZWRvXyA9IGZhbHNlOworICAgIH0K
IH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OnNob3VsZEluc2VydE5vZGUoTm9kZSosIFJhbmdlKiwg
RWRpdG9ySW5zZXJ0QWN0aW9uKQpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiA0NDg5OSkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAK
ICNpZm5kZWYgRWRpdG9yQ2xpZW50R3RrX2gKICNkZWZpbmUgRWRpdG9yQ2xpZW50R3RrX2gKIAor
I2luY2x1ZGUgPGRlcXVlPgorCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgpAQCAtNDMsNiArNDUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIGJvb2wgdXNlX2Vk
aXRvcl9kZWxlZ2F0ZV87CisgICAgICAgIGJvb2wgaW5fcmVkb187CisgICAgICAKKyAgICAgICAg
dHlwZWRlZiBzdGQ6OmRlcXVlPFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4g
PiBFZGl0Q29tbWFuZFN0YWNrOworICAgICAgICBFZGl0Q29tbWFuZFN0YWNrIHVuZG9fc3RhY2tf
OworICAgICAgICBFZGl0Q29tbWFuZFN0YWNrIHJlZG9fc3RhY2tfOyAgICAKKwogICAgIHB1Ymxp
YzoKICAgICAgICAgRWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqKTsKICAgICAgICAgfkVkaXRv
ckNsaWVudCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31605</attachid>
            <date>2009-06-20 22:41:20 -0700</date>
            <delta_ts>2009-06-22 09:30:57 -0700</delta_ts>
            <desc>repatch follow the coding style guidelines</desc>
            <filename>webkitgtk-undo-redo-support.patch</filename>
            <type>text/plain</type>
            <size>4137</size>
            <attacher name="Jiahua Huang">jhuangjiahua</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NDkwNykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDYtMjEgIEppYWh1YSBIdWFuZyAgPGpodWFu
Z2ppYWh1YUBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZC4gQWRkIFVuZG8vUmVkbyBz
dXBwb3J0IHRvIFdlYktpdEd0ay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5jcHA6CisgICAgICAgIChFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclVu
ZG8pOgorICAgICAgICAoRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKToKKyAg
ICAgICAgKEVkaXRvckNsaWVudDo6Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMpOgorICAgICAgICAo
RWRpdG9yQ2xpZW50OjpjYW5VbmRvKToKKyAgICAgICAgKEVkaXRvckNsaWVudDo6Y2FuUmVkbyk6
CisgICAgICAgIChFZGl0b3JDbGllbnQ6OnVuZG8pOgorICAgICAgICAoRWRpdG9yQ2xpZW50Ojpy
ZWRvKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAg
ICAgQWRkIEVkaXRDb21tYW5kU3RhY2sKKwogMjAwOS0wNi0yMCAgSmFuIE1pY2hhZWwgQWxvbnpv
ICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgYW5kIFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQ0OTA3KQorKysgV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSwxMiBAQAogI2luY2x1ZGUgIm1hcmt1cC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIK
IAorLy8gQXJiaXRyYXJ5IGRlcHRoIGxpbWl0IGZvciB0aGUgdW5kbyBzdGFjaywgdG8ga2VlcCBp
dCBmcm9tIHVzaW5nCisvLyB1bmJvdW5kZWQgbWVtb3J5LiAgVGhpcyBpcyB0aGUgbWF4aW11bSBu
dW1iZXIgb2YgZGlzdGluY3QgdW5kb2FibGUKKy8vIGFjdGlvbnMgLS0gdW5icm9rZW4gc3RyZXRj
aGVzIG9mIHR5cGVkIGNoYXJhY3RlcnMgYXJlIGNvYWxlc2NlZAorLy8gaW50byBhIHNpbmdsZSBh
Y3Rpb24uCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtNYXhpbXVtVW5kb1N0YWNrRGVwdGggPSAxMDAw
OworCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0y
NTMsNDEgKzI1OSw1OCBAQCBib29sIEVkaXRvckNsaWVudDo6aXNFZGl0YWJsZSgpCiAgICAgcmV0
dXJuIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUobV93ZWJWaWV3KTsKIH0KIAotdm9pZCBF
ZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OkVkaXRDb21tYW5kPikKK3ZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JV
bmRvKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICh1bmRvU3RhY2suc2l6ZSgpID09IGtNYXhpbXVt
VW5kb1N0YWNrRGVwdGgpCisgICAgICAgIHVuZG9TdGFjay5wb3BfZnJvbnQoKTsgIC8vIGRyb3Ag
b2xkZXN0IGl0ZW0gb2ZmIHRoZSBmYXIgZW5kCisgICAgaWYgKCFpc0luUmVkbykKKyAgICAgICAg
cmVkb1N0YWNrLmNsZWFyKCk7CisgICAgdW5kb1N0YWNrLnB1c2hfYmFjayhjb21tYW5kKTsKIH0K
IAotdm9pZCBFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8oV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPikKK3ZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNv
bW1hbmRGb3JSZWRvKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFu
ZCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJlZG9TdGFjay5wdXNoX2JhY2soY29t
bWFuZCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50OjpjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB1bmRvU3RhY2suY2xlYXIoKTsKKyAgICBy
ZWRvU3RhY2suY2xlYXIoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmNhblVuZG8oKSBjb25z
dAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biAhdW5kb1N0YWNrLmVtcHR5KCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50OjpjYW5SZWRvKCkg
Y29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gIXJlZG9TdGFjay5lbXB0eSgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6dW5kbygp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoY2FuVW5kbygpKSB7CisgICAgICAg
IFJlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gY29tbWFuZCh1bmRvU3RhY2suYmFjaygpKTsK
KyAgICAgICAgdW5kb1N0YWNrLnBvcF9iYWNrKCk7CisgICAgICAgIC8vIHVuYXBwbHkgd2lsbCBj
YWxsIHVzIGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQgb250byB0aGUgcmVkbyBzdGFjay4KKyAg
ICAgICAgY29tbWFuZC0+dW5hcHBseSgpOworICAgIH0KIH0KIAogdm9pZCBFZGl0b3JDbGllbnQ6
OnJlZG8oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKGNhblJlZG8oKSkgewor
ICAgICAgICBSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+IGNvbW1hbmQocmVkb1N0YWNrLmJh
Y2soKSk7CisgICAgICAgIHJlZG9TdGFjay5wb3BfYmFjaygpOworCisgICAgICAgIEFTU0VSVCgh
aXNJblJlZG8pOworICAgICAgICBpc0luUmVkbyA9IHRydWU7CisgICAgICAgIC8vIHJlYXBwbHkg
d2lsbCBjYWxsIHVzIGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQgb250byB0aGUgdW5kbyBzdGFj
ay4KKyAgICAgICAgY29tbWFuZC0+cmVhcHBseSgpOworICAgICAgICBpc0luUmVkbyA9IGZhbHNl
OworICAgIH0KIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OnNob3VsZEluc2VydE5vZGUoTm9kZSos
IFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKQpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiA0NDkwNykKKysrIFdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDggQEAKICNpZm5kZWYgRWRpdG9yQ2xpZW50R3RrX2gKICNkZWZpbmUgRWRpdG9yQ2xpZW50
R3RrX2gKIAorI2luY2x1ZGUgPGRlcXVlPgorCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDMsNiArNDUsMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICBjbGFzcyBFZGl0b3JDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIGJv
b2wgaXNJblJlZG87CisgICAgICAKKyAgICAgICAgdHlwZWRlZiBzdGQ6OmRlcXVlPFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gPiBFZGl0Q29tbWFuZFN0YWNrOworICAgICAg
ICBFZGl0Q29tbWFuZFN0YWNrIHVuZG9TdGFjazsKKyAgICAgICAgRWRpdENvbW1hbmRTdGFjayBy
ZWRvU3RhY2s7CisKICAgICBwdWJsaWM6CiAgICAgICAgIEVkaXRvckNsaWVudChXZWJLaXRXZWJW
aWV3Kik7CiAgICAgICAgIH5FZGl0b3JDbGllbnQoKTsK
</data>
<flag name="review"
          id="16226"
          type_id="1"
          status="-"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31651</attachid>
            <date>2009-06-22 09:30:57 -0700</date>
            <delta_ts>2009-06-24 04:36:56 -0700</delta_ts>
            <desc>revise the patch to use the wtf/Deque.h</desc>
            <filename>webkitgtk-undo-redo-support.patch</filename>
            <type>text/plain</type>
            <size>4687</size>
            <attacher name="Jiahua Huang">jhuangjiahua</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NDkzNSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDYtMjIgIEppYWh1YSBIdWFuZyAgPGpodWFu
Z2ppYWh1YUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0d0a10gQWRkIFVuZG8vUmVkbyBzdXBwb3J0IHRvIFdlYktpdEd0aworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1NzMKKworICAg
ICAgICBJbXBsZW1lbnQgRWRpdG9yQ2xpZW50Ojp1bmRvIGFuZCBvdGhlciBpbnRlcmVzdGVkIGZ1
bmNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JVbmRvKToKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKToKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpjbGVhclVuZG9SZWRvT3BlcmF0aW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuVW5kbyk6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6Y2FuUmVkbyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
dW5kbyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVkbyk6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKwogMjAwOS0wNi0yMCAgSmFuIE1pY2hhZWwgQWxvbnpv
ICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgYW5kIFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQ0OTM1KQorKysgV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSwxMiBAQAogI2luY2x1ZGUgIm1hcmt1cC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIK
IAorLy8gQXJiaXRyYXJ5IGRlcHRoIGxpbWl0IGZvciB0aGUgdW5kbyBzdGFjaywgdG8ga2VlcCBp
dCBmcm9tIHVzaW5nCisvLyB1bmJvdW5kZWQgbWVtb3J5LiAgVGhpcyBpcyB0aGUgbWF4aW11bSBu
dW1iZXIgb2YgZGlzdGluY3QgdW5kb2FibGUKKy8vIGFjdGlvbnMgLS0gdW5icm9rZW4gc3RyZXRj
aGVzIG9mIHR5cGVkIGNoYXJhY3RlcnMgYXJlIGNvYWxlc2NlZAorLy8gaW50byBhIHNpbmdsZSBh
Y3Rpb24uCisjZGVmaW5lIG1heGltdW1VbmRvU3RhY2tEZXB0aCAxMDAwCisKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTI1Myw0MSArMjU5LDU4IEBA
IGJvb2wgRWRpdG9yQ2xpZW50Ojppc0VkaXRhYmxlKCkKICAgICByZXR1cm4gd2Via2l0X3dlYl92
aWV3X2dldF9lZGl0YWJsZShtX3dlYlZpZXcpOwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6cmVn
aXN0ZXJDb21tYW5kRm9yVW5kbyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+
KQordm9pZCBFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiBjb21tYW5kKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgaWYgKHVuZG9TdGFjay5zaXplKCkgPT0gbWF4aW11bVVuZG9TdGFja0RlcHRoKQor
CXVuZG9TdGFjay5yZW1vdmVGaXJzdCgpOworICAgIGlmICghaXNJblJlZG8pCisgICAgICAgIHJl
ZG9TdGFjay5jbGVhcigpOworICAgIHVuZG9TdGFjay5hcHBlbmQoY29tbWFuZCk7CiB9CiAKLXZv
aWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpFZGl0Q29tbWFuZD4pCit2b2lkIEVkaXRvckNsaWVudDo6cmVnaXN0ZXJDb21tYW5k
Rm9yUmVkbyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZWRvU3RhY2suYXBwZW5kKGNvbW1hbmQpOwog
fQogCiB2b2lkIEVkaXRvckNsaWVudDo6Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgdW5kb1N0YWNrLmNsZWFyKCk7CisgICAgcmVkb1N0YWNr
LmNsZWFyKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50OjpjYW5VbmRvKCkgY29uc3QKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gIXVuZG9T
dGFjay5pc0VtcHR5KCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50OjpjYW5SZWRvKCkgY29uc3QK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
IXJlZG9TdGFjay5pc0VtcHR5KCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50Ojp1bmRvKCkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChjYW5VbmRvKCkpIHsKKyAgICAgICAgUmVm
UHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiBjb21tYW5kKCooLS11bmRvU3RhY2suZW5kKCkpKTsK
KyAgICAgICAgdW5kb1N0YWNrLnJlbW92ZSgtLXVuZG9TdGFjay5lbmQoKSk7CisgICAgICAgIC8v
IHVuYXBwbHkgd2lsbCBjYWxsIHVzIGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQgb250byB0aGUg
cmVkbyBzdGFjay4KKyAgICAgICAgY29tbWFuZC0+dW5hcHBseSgpOworICAgIH0KIH0KIAogdm9p
ZCBFZGl0b3JDbGllbnQ6OnJlZG8oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYg
KGNhblJlZG8oKSkgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+IGNvbW1h
bmQoKigtLXJlZG9TdGFjay5lbmQoKSkpOworICAgICAgICByZWRvU3RhY2sucmVtb3ZlKC0tcmVk
b1N0YWNrLmVuZCgpKTsKKworICAgICAgICBBU1NFUlQoIWlzSW5SZWRvKTsKKyAgICAgICAgaXNJ
blJlZG8gPSB0cnVlOworICAgICAgICAvLyByZWFwcGx5IHdpbGwgY2FsbCB1cyBiYWNrIHRvIHB1
c2ggdGhpcyBjb21tYW5kIG9udG8gdGhlIHVuZG8gc3RhY2suCisgICAgICAgIGNvbW1hbmQtPnJl
YXBwbHkoKTsKKyAgICAgICAgaXNJblJlZG8gPSBmYWxzZTsKKyAgICB9CiB9CiAKIGJvb2wgRWRp
dG9yQ2xpZW50OjpzaG91bGRJbnNlcnROb2RlKE5vZGUqLCBSYW5nZSosIEVkaXRvckluc2VydEFj
dGlvbikKQEAgLTUyNCw2ICs1NDcsNyBAQCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJL
aXRXZWJWaWV3CiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykKIHsKICAgICBXZWJLaXRXZWJWaWV3
UHJpdmF0ZSogcHJpdiA9IG1fd2ViVmlldy0+cHJpdjsKKyAgICBpc0luUmVkbyA9IGZhbHNlOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QocHJpdi0+aW1Db250ZXh0LCAiY29tbWl0IiwgR19DQUxMQkFD
SyhpbUNvbnRleHRDb21taXR0ZWQpLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHByaXYt
PmltQ29udGV4dCwgInByZWVkaXQtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soaW1Db250ZXh0UHJlZWRp
dENoYW5nZWQpLCB0aGlzKTsKIH0KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuaAkocmV2aXNpb24gNDQ5MzUpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBA
CiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKIAorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3
IFdlYktpdFdlYlZpZXc7CkBAIC00Myw2ICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogICAgIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpFZGl0b3JDbGllbnQgeworICAgIHByb3RlY3RlZDoKKyAgICAgICAgYm9vbCBpc0luUmVk
bzsKKworICAgICAgICB0eXBlZGVmIFdURjo6RGVxdWU8V1RGOjpSZWZQdHI8V2ViQ29yZTo6RWRp
dENvbW1hbmQ+ID4gRWRpdENvbW1hbmRTdGFjazsKKyAgICAgICAgRWRpdENvbW1hbmRTdGFjayB1
bmRvU3RhY2s7CisgICAgICAgIEVkaXRDb21tYW5kU3RhY2sgcmVkb1N0YWNrOworCiAgICAgcHVi
bGljOgogICAgICAgICBFZGl0b3JDbGllbnQoV2ViS2l0V2ViVmlldyopOwogICAgICAgICB+RWRp
dG9yQ2xpZW50KCk7Cg==
</data>
<flag name="review"
          id="16265"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31779</attachid>
            <date>2009-06-24 04:36:56 -0700</date>
            <delta_ts>2009-06-24 05:00:20 -0700</delta_ts>
            <desc>fixed the style issues</desc>
            <filename>webkitgtk-undo-redo-support.patch</filename>
            <type>text/plain</type>
            <size>4656</size>
            <attacher name="Jiahua Huang">jhuangjiahua</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NTA3OSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMDYtMjQgIEppYWh1YSBIdWFuZyAgPGpodWFu
Z2ppYWh1YUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0d0a10gQWRkIFVuZG8vUmVkbyBzdXBwb3J0IHRvIFdlYktpdEd0aworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1NzMKKworICAg
ICAgICBJbXBsZW1lbnQgRWRpdG9yQ2xpZW50Ojp1bmRvIGFuZCBvdGhlciBpbnRlcmVzdGVkIGZ1
bmNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JVbmRvKToKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKToKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpjbGVhclVuZG9SZWRvT3BlcmF0aW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuVW5kbyk6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6Y2FuUmVkbyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
dW5kbyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVkbyk6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKwogMjAwOS0wNi0yMCAgSmFuIE1pY2hhZWwgQWxvbnpv
ICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgYW5kIFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQ1MDc5KQorKysgV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSwxMiBAQAogI2luY2x1ZGUgIm1hcmt1cC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIK
IAorLy8gQXJiaXRyYXJ5IGRlcHRoIGxpbWl0IGZvciB0aGUgdW5kbyBzdGFjaywgdG8ga2VlcCBp
dCBmcm9tIHVzaW5nCisvLyB1bmJvdW5kZWQgbWVtb3J5LiAgVGhpcyBpcyB0aGUgbWF4aW11bSBu
dW1iZXIgb2YgZGlzdGluY3QgdW5kb2FibGUKKy8vIGFjdGlvbnMgLS0gdW5icm9rZW4gc3RyZXRj
aGVzIG9mIHR5cGVkIGNoYXJhY3RlcnMgYXJlIGNvYWxlc2NlZAorLy8gaW50byBhIHNpbmdsZSBh
Y3Rpb24uCisjZGVmaW5lIG1heGltdW1VbmRvU3RhY2tEZXB0aCAxMDAwCisKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTI1Myw0MSArMjU5LDU4IEBA
IGJvb2wgRWRpdG9yQ2xpZW50Ojppc0VkaXRhYmxlKCkKICAgICByZXR1cm4gd2Via2l0X3dlYl92
aWV3X2dldF9lZGl0YWJsZShtX3dlYlZpZXcpOwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6cmVn
aXN0ZXJDb21tYW5kRm9yVW5kbyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+
KQordm9pZCBFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiBjb21tYW5kKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgaWYgKHVuZG9TdGFjay5zaXplKCkgPT0gbWF4aW11bVVuZG9TdGFja0RlcHRoKQor
ICAgICAgICB1bmRvU3RhY2sucmVtb3ZlRmlyc3QoKTsKKyAgICBpZiAoIW1faXNJblJlZG8pCisg
ICAgICAgIHJlZG9TdGFjay5jbGVhcigpOworICAgIHVuZG9TdGFjay5hcHBlbmQoY29tbWFuZCk7
CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4pCit2b2lkIEVkaXRvckNsaWVudDo6cmVnaXN0
ZXJDb21tYW5kRm9yUmVkbyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+IGNv
bW1hbmQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZWRvU3RhY2suYXBwZW5kKGNv
bW1hbmQpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgdW5kb1N0YWNrLmNsZWFyKCk7CisgICAg
cmVkb1N0YWNrLmNsZWFyKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50OjpjYW5VbmRvKCkgY29u
c3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gIXVuZG9TdGFjay5pc0VtcHR5KCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50OjpjYW5SZWRv
KCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gIXJlZG9TdGFjay5pc0VtcHR5KCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50Ojp1
bmRvKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChjYW5VbmRvKCkpIHsKKyAg
ICAgICAgUmVmUHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiBjb21tYW5kKCooLS11bmRvU3RhY2su
ZW5kKCkpKTsKKyAgICAgICAgdW5kb1N0YWNrLnJlbW92ZSgtLXVuZG9TdGFjay5lbmQoKSk7Cisg
ICAgICAgIC8vIHVuYXBwbHkgd2lsbCBjYWxsIHVzIGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQg
b250byB0aGUgcmVkbyBzdGFjay4KKyAgICAgICAgY29tbWFuZC0+dW5hcHBseSgpOworICAgIH0K
IH0KIAogdm9pZCBFZGl0b3JDbGllbnQ6OnJlZG8oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgaWYgKGNhblJlZG8oKSkgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1h
bmQ+IGNvbW1hbmQoKigtLXJlZG9TdGFjay5lbmQoKSkpOworICAgICAgICByZWRvU3RhY2sucmVt
b3ZlKC0tcmVkb1N0YWNrLmVuZCgpKTsKKworICAgICAgICBBU1NFUlQoIW1faXNJblJlZG8pOwor
ICAgICAgICBtX2lzSW5SZWRvID0gdHJ1ZTsKKyAgICAgICAgLy8gcmVhcHBseSB3aWxsIGNhbGwg
dXMgYmFjayB0byBwdXNoIHRoaXMgY29tbWFuZCBvbnRvIHRoZSB1bmRvIHN0YWNrLgorICAgICAg
ICBjb21tYW5kLT5yZWFwcGx5KCk7CisgICAgICAgIG1faXNJblJlZG8gPSBmYWxzZTsKKyAgICB9
CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRJbnNlcnROb2RlKE5vZGUqLCBSYW5nZSos
IEVkaXRvckluc2VydEFjdGlvbikKQEAgLTUyMSw3ICs1NDQsNyBAQCB2b2lkIEVkaXRvckNsaWVu
dDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkCiB9CiAKIEVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi0gICAgOiBtX3dlYlZpZXcod2ViVmlldykKKyAgICA6
IG1faXNJblJlZG8oZmFsc2UpLCBtX3dlYlZpZXcod2ViVmlldykKIHsKICAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogcHJpdiA9IG1fd2ViVmlldy0+cHJpdjsKICAgICBnX3NpZ25hbF9jb25uZWN0
KHByaXYtPmltQ29udGV4dCwgImNvbW1pdCIsIEdfQ0FMTEJBQ0soaW1Db250ZXh0Q29tbWl0dGVk
KSwgdGhpcyk7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmgJKHJldmlzaW9uIDQ1MDc5KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCiAKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyBXZWJLaXRXZWJW
aWV3OwpAQCAtNDMsNiArNDQsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFdl
YktpdCB7CiAKICAgICBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50IHsKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIGJvb2wgbV9pc0luUmVkbzsKKworICAg
ICAgICBXVEY6OkRlcXVlPFdURjo6UmVmUHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiA+IHVuZG9T
dGFjazsKKyAgICAgICAgV1RGOjpEZXF1ZTxXVEY6OlJlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFu
ZD4gPiByZWRvU3RhY2s7CisKICAgICBwdWJsaWM6CiAgICAgICAgIEVkaXRvckNsaWVudChXZWJL
aXRXZWJWaWV3Kik7CiAgICAgICAgIH5FZGl0b3JDbGllbnQoKTsK
</data>
<flag name="review"
          id="16366"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
      

    </bug>

</bugzilla>