<?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>35407</bug_id>
          
          <creation_ts>2010-02-25 16:00:51 -0800</creation_ts>
          <short_desc>[chromium] add ability to activate the focused node in a WebView</short_desc>
          <delta_ts>2010-03-10 14:27:02 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evan Stade">estade</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193907</commentid>
    <comment_count>0</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-02-25 16:00:51 -0800</bug_when>
    <thetext>related:
http://code.google.com/p/chromium/issues/detail?id=29500
and
http://codereview.chromium.org/660137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193910</commentid>
    <comment_count>1</comment_count>
      <attachid>49537</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-02-25 16:02:53 -0800</bug_when>
    <thetext>Created attachment 49537
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193913</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-25 16:06:18 -0800</bug_when>
    <thetext>Attachment 49537 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/WebViewImpl.cpp:1291:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
WebKit/chromium/src/WebViewImpl.cpp:1307:  no_event is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193917</commentid>
    <comment_count>3</comment_count>
      <attachid>49538</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-02-25 16:13:33 -0800</bug_when>
    <thetext>Created attachment 49538
style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193918</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-25 16:16:45 -0800</bug_when>
    <thetext>Attachment 49538 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/WebViewImpl.cpp:1291:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
WebKit/chromium/src/WebViewImpl.cpp:1307:  no_event is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193919</commentid>
    <comment_count>5</comment_count>
      <attachid>49539</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-02-25 16:17:11 -0800</bug_when>
    <thetext>Created attachment 49539
style fix, try2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193920</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-25 16:19:22 -0800</bug_when>
    <thetext>Attachment 49539 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/313027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193921</commentid>
    <comment_count>7</comment_count>
      <attachid>49540</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-02-25 16:19:43 -0800</bug_when>
    <thetext>Created attachment 49540
style fix, try3

one of these days I&apos;ll upload the right file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193923</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-25 16:22:12 -0800</bug_when>
    <thetext>Attachment 49540 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/WebViewImpl.cpp:1291:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193927</commentid>
    <comment_count>9</comment_count>
      <attachid>49543</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-02-25 16:32:33 -0800</bug_when>
    <thetext>Created attachment 49543
style again

By the way, to whoever reviews this: this code is in large part copy-pasted from clearFocusedNode(). I&apos;m not greatly confident in its correctness, but it seems to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195189</commentid>
    <comment_count>10</comment_count>
      <attachid>49543</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-02 13:18:39 -0800</bug_when>
    <thetext>Comment on attachment 49543
style again

&gt; Index: WebKit/chromium/public/WebView.h
...
&gt; +    // Activate the currently focused node, if any. If there is no focused node,
&gt; +    // do nothing.
&gt; +    virtual void activateFocusedNode() = 0;

I think it would be better to provide an accessor for the focusedNode.
Then add a method on WebNode called simulateClick.  It is better to
provide the basic building blocks in the API, so that we can more easily
do other things in the future.

My only question is whether or not we need to pass a WebInputEvent to
that simulateClick method.  This could matter for the popup blocker
since it will need to know if there was a user gesture.  Have you
tested what happens if the &apos;click&apos; event handler tries to open up a
popup window?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195240</commentid>
    <comment_count>11</comment_count>
      <attachid>49849</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-02 14:31:36 -0800</bug_when>
    <thetext>Created attachment 49849
expose WebNode

suggestion implemented. Tested + working on popup links.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195844</commentid>
    <comment_count>12</comment_count>
      <attachid>49972</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-03 18:24:30 -0800</bug_when>
    <thetext>Created attachment 49972
activate-&gt;simulateClick

changed name of function from activate() to simulateClick() as I suppose &quot;activate&quot; only makes sense for certain nodes (e.g., links).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196331</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-04 20:43:58 -0800</bug_when>
    <thetext>I tried to review your patch, but fishd wants to sign off on all patches that touch the WebKit API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196370</commentid>
    <comment_count>14</comment_count>
      <attachid>49972</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-05 00:04:38 -0800</bug_when>
    <thetext>Comment on attachment 49972
activate-&gt;simulateClick

&gt; Index: WebKit/chromium/ChangeLog
...
&gt; +        [chromium] add functionality to activate the focused node in a WebView
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=35407
&gt; +
&gt; +        * public/WebNode.h:
&gt; +        * public/WebView.h:
&gt; +        * src/WebNode.cpp:
&gt; +        (WebKit::WebNode::activate): Added.

It looks like this ChangeLog should be re-generated since the newly
added method is named simulateClick.  It&apos;d be good to make the comment
in the ChangeLog also say that you are adding an access for the focused
node, and that you are providing a method to simulate a click on a node.


&gt; Index: WebKit/chromium/public/WebView.h
...
&gt; +    // Get the currently focused node. If no node is focused, returns a Null

nit: s/Null/null/ for consistency with other comments.


&gt; Index: WebKit/chromium/src/WebNode.cpp
...
&gt; +void WebNode::simulateClick()
&gt; +{

insert an ASSERT(m_private) here please.

&gt; +    RefPtr&lt;Event&gt; noEvent;
&gt; +    m_private-&gt;dispatchSimulatedClick(noEvent);
&gt; +}


&gt; Index: WebKit/chromium/src/WebViewImpl.cpp
...
&gt; +WebNode WebViewImpl::focusedNode()
&gt; +{
&gt; +    if (!m_page.get())
&gt; +        return WebNode();
&gt; +
&gt; +    RefPtr&lt;Frame&gt; frame = m_page-&gt;mainFrame();
&gt; +    if (!frame.get())
&gt; +        return WebNode();
&gt; +
&gt; +    RefPtr&lt;Document&gt; document = frame-&gt;document();
&gt; +    if (!document.get())
&gt; +        return WebNode();
&gt; +
&gt; +    RefPtr&lt;Node&gt; focusedNode = document-&gt;focusedNode();

What if the focused node is actually contained in a subframe?
Perhaps you should use FocusController::focusedFrame to access
the document containing the focused node.

This also suggests that it might be best if we instead added
focusedNode to WebDocument.  So, your code in Chromium would
then need to access the focusedNode like so:

  WebFrame* frame = view-&gt;focusedFrame();
  if (frame) {
    WebDocument doc = frame-&gt;document();
    if (!doc.isNull()) {
      WebNode node = doc.focusedNode(); 
      ...
    }
  }

Sorry for giving bad advice about putting focusedNode on WebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196804</commentid>
    <comment_count>15</comment_count>
      <attachid>50141</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 16:40:22 -0800</bug_when>
    <thetext>Created attachment 50141
review comments

I&apos;ve done as you said, but along the way I noticed that WebViewImpl has a function called focusedWebCoreNode() which is not part of the API. It&apos;s implementation is exactly as you suggested (it acts on the document of the focused framE). It would thus be easy (and possibly more convenient for users of the API) to expose this function as part of the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196806</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-05 16:42:55 -0800</bug_when>
    <thetext>&gt; I&apos;ve done as you said, but along the way I noticed that WebViewImpl has a
&gt; function called focusedWebCoreNode() which is not part of the API. It&apos;s
&gt; implementation is exactly as you suggested (it acts on the document of the
&gt; focused framE). It would thus be easy (and possibly more convenient for users
&gt; of the API) to expose this function as part of the API.

Yeah, there&apos;s a balance between convenience and minimalism.  I tend to favor having the API provide the more basic building blocks, and then leave it up to the embedder to write helper functions to make things more convenient.  That way the interfaces are simpler and easier to maintain.  This case is pretty borderline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196891</commentid>
    <comment_count>17</comment_count>
      <attachid>50141</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-06 05:29:42 -0800</bug_when>
    <thetext>Comment on attachment 50141
review comments

Rejecting patch 50141 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Darin Fisher&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
king copy)
--------------------------
No file to patch.  Skipping patch.
1 out of 1 hunk ignored
can&apos;t find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: src/WebNode.cpp
|===================================================================
|--- src/WebNode.cpp	(revision 55462)
|+++ src/WebNode.cpp	(working copy)
--------------------------
No file to patch.  Skipping patch.
1 out of 1 hunk ignored

Full output: http://webkit-commit-queue.appspot.com/results/342183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197240</commentid>
    <comment_count>18</comment_count>
      <attachid>50235</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-08 11:03:53 -0800</bug_when>
    <thetext>Created attachment 50235
fix paths in .diff

no code change, just fix patch so it applies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198345</commentid>
    <comment_count>19</comment_count>
      <attachid>50235</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-10 14:26:55 -0800</bug_when>
    <thetext>Comment on attachment 50235
fix paths in .diff

Clearing flags on attachment: 50235

Committed r55808: &lt;http://trac.webkit.org/changeset/55808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198346</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-10 14:27:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49537</attachid>
            <date>2010-02-25 16:02:53 -0800</date>
            <delta_ts>2010-02-25 16:13:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>activate.diff</filename>
            <type>text/plain</type>
            <size>2611</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTUyNjEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMjUgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGEgZnVuY3Rpb24gdG8gYWN0aXZh
dGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMC0wMi0yNSAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw5IEBAIHB1YmxpYzoK
ICAgICAvLyBzZW5kIGl0LgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZvY3VzZWROb2RlKCkgPSAw
OwogCisgICAgLy8gRklYTUUKKyAgICB2aXJ0dWFsIHZvaWQgYWN0aXZhdGVGb2N1c2VkTm9kZSgp
ID0gMDsKKwogCiAgICAgLy8gWm9vbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCShyZXZpc2lvbiA1NTEwNikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjg4LDYgKzEyODgsMjYgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6Y2xlYXJGb2N1c2VkTm9kZSgpCiAgICAgfQogfQogCit2b2lkIFdlYlZpZXdJ
bXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKCkgeworICAgIGlmICghbV9wYWdlLmdldCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9wYWdlLT5tYWluRnJh
bWUoKTsKKyAgICBpZiAoIWZyYW1lLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQ
dHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1
bWVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWRO
b2RlID0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZS5nZXQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFzc1JlZlB0cjxFdmVudD4gbm9fZXZlbnQ7Cisg
ICAgZm9jdXNlZE5vZGUtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobm9fZXZlbnQpOworfQorCiBp
bnQgV2ViVmlld0ltcGw6Onpvb21MZXZlbCgpCiB7CiAgICAgcmV0dXJuIG1fem9vbUxldmVsOwpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsx
MTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzZWRGcmFtZShXZWJGcmFt
ZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCByZXZlcnNl
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpOworICAgIHZpcnR1YWwgdm9p
ZCBhY3RpdmF0ZUZvY3VzZWROb2RlKCk7CiAgICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCk7CiAg
ICAgdmlydHVhbCBpbnQgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwp
OwogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtTWVkaWFQbGF5ZXJBY3Rpb24oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49538</attachid>
            <date>2010-02-25 16:13:33 -0800</date>
            <delta_ts>2010-02-25 16:17:11 -0800</delta_ts>
            <desc>style fix</desc>
            <filename>activate.diff</filename>
            <type>text/plain</type>
            <size>2611</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTUyNjEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMjUgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGEgZnVuY3Rpb24gdG8gYWN0aXZh
dGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMC0wMi0yNSAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw5IEBAIHB1YmxpYzoK
ICAgICAvLyBzZW5kIGl0LgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZvY3VzZWROb2RlKCkgPSAw
OwogCisgICAgLy8gRklYTUUKKyAgICB2aXJ0dWFsIHZvaWQgYWN0aXZhdGVGb2N1c2VkTm9kZSgp
ID0gMDsKKwogCiAgICAgLy8gWm9vbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCShyZXZpc2lvbiA1NTEwNikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjg4LDYgKzEyODgsMjYgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6Y2xlYXJGb2N1c2VkTm9kZSgpCiAgICAgfQogfQogCit2b2lkIFdlYlZpZXdJ
bXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKCkgeworICAgIGlmICghbV9wYWdlLmdldCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9wYWdlLT5tYWluRnJh
bWUoKTsKKyAgICBpZiAoIWZyYW1lLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQ
dHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1
bWVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWRO
b2RlID0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZS5nZXQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFzc1JlZlB0cjxFdmVudD4gbm9fZXZlbnQ7Cisg
ICAgZm9jdXNlZE5vZGUtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobm9fZXZlbnQpOworfQorCiBp
bnQgV2ViVmlld0ltcGw6Onpvb21MZXZlbCgpCiB7CiAgICAgcmV0dXJuIG1fem9vbUxldmVsOwpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsx
MTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzZWRGcmFtZShXZWJGcmFt
ZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCByZXZlcnNl
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpOworICAgIHZpcnR1YWwgdm9p
ZCBhY3RpdmF0ZUZvY3VzZWROb2RlKCk7CiAgICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCk7CiAg
ICAgdmlydHVhbCBpbnQgc2V0Wm9vbUxldmVsKGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwp
OwogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtTWVkaWFQbGF5ZXJBY3Rpb24oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49539</attachid>
            <date>2010-02-25 16:17:11 -0800</date>
            <delta_ts>2010-02-25 16:19:43 -0800</delta_ts>
            <desc>style fix, try2</desc>
            <filename>activate.diff</filename>
            <type>text/plain</type>
            <size>1230</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTUyNjEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMjUgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGEgZnVuY3Rpb24gdG8gYWN0aXZh
dGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMC0wMi0yNSAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw5IEBAIHB1YmxpYzoK
ICAgICAvLyBzZW5kIGl0LgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZvY3VzZWROb2RlKCkgPSAw
OwogCisgICAgLy8gRklYTUUKKyAgICB2aXJ0dWFsIHZvaWQgYWN0aXZhdGVGb2N1c2VkTm9kZSgp
ID0gMDsKKwogCiAgICAgLy8gWm9vbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49540</attachid>
            <date>2010-02-25 16:19:43 -0800</date>
            <delta_ts>2010-02-25 16:32:33 -0800</delta_ts>
            <desc>style fix, try3</desc>
            <filename>activate.diff</filename>
            <type>text/plain</type>
            <size>2698</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTUyNjEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMjUgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGEgZnVuY3Rpb24gdG8gYWN0aXZh
dGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMC0wMi0yNSAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gc2VuZCBpdC4KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpID0g
MDsKIAorICAgIC8vIEFjdGl2YXRlIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBub2RlLCBpZiBhbnku
IElmIHRoZXJlIGlzIG5vIGZvY3VzZWQgbm9kZSwKKyAgICAvLyBkbyBub3RoaW5nLgorICAgIHZp
cnR1YWwgdm9pZCBhY3RpdmF0ZUZvY3VzZWROb2RlKCkgPSAwOworCiAKICAgICAvLyBab29tIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU1
MTA2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyODgsNiArMTI4OCwyNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjbGVhckZvY3VzZWRO
b2RlKCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OmFjdGl2YXRlRm9jdXNlZE5vZGUo
KSB7CisgICAgaWYgKCFtX3BhZ2UuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0
cjxGcmFtZT4gZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOworICAgIGlmICghZnJhbWUuZ2V0
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSBm
cmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50LmdldCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZWZQdHI8Tm9kZT4gZm9jdXNlZE5vZGUgPSBkb2N1bWVudC0+Zm9jdXNlZE5v
ZGUoKTsKKyAgICBpZiAoIWZvY3VzZWROb2RlLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBQYXNzUmVmUHRyPEV2ZW50PiBub0V2ZW50OworICAgIGZvY3VzZWROb2RlLT5kaXNwYXRjaFNp
bXVsYXRlZENsaWNrKG5vRXZlbnQpOworfQorCiBpbnQgV2ViVmlld0ltcGw6Onpvb21MZXZlbCgp
CiB7CiAgICAgcmV0dXJuIG1fem9vbUxldmVsOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldEZvY3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbml0aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJG
b2N1c2VkTm9kZSgpOworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmF0ZUZvY3VzZWROb2RlKCk7CiAg
ICAgdmlydHVhbCBpbnQgem9vbUxldmVsKCk7CiAgICAgdmlydHVhbCBpbnQgc2V0Wm9vbUxldmVs
KGJvb2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwpOwogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3Jt
TWVkaWFQbGF5ZXJBY3Rpb24oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49543</attachid>
            <date>2010-02-25 16:32:33 -0800</date>
            <delta_ts>2010-03-02 14:31:36 -0800</delta_ts>
            <desc>style again</desc>
            <filename>activate.diff</filename>
            <type>text/plain</type>
            <size>2695</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTUyNjEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDItMjUgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGEgZnVuY3Rpb24gdG8gYWN0aXZh
dGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjphY3RpdmF0ZUZvY3VzZWROb2RlKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMC0wMi0yNSAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gc2VuZCBpdC4KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2VkTm9kZSgpID0g
MDsKIAorICAgIC8vIEFjdGl2YXRlIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBub2RlLCBpZiBhbnku
IElmIHRoZXJlIGlzIG5vIGZvY3VzZWQgbm9kZSwKKyAgICAvLyBkbyBub3RoaW5nLgorICAgIHZp
cnR1YWwgdm9pZCBhY3RpdmF0ZUZvY3VzZWROb2RlKCkgPSAwOworCiAKICAgICAvLyBab29tIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU1
MTA2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyODgsNiArMTI4OCwyNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjbGVhckZvY3VzZWRO
b2RlKCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OmFjdGl2YXRlRm9jdXNlZE5vZGUo
KQoreworICAgIGlmICghbV9wYWdlLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQ
dHI8RnJhbWU+IGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lLmdl
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0g
ZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudC5nZXQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWROb2RlID0gZG9jdW1lbnQtPmZvY3VzZWRO
b2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVmUHRyPEV2ZW50PiBub0V2ZW50OworICAgIGZvY3VzZWROb2RlLT5kaXNwYXRjaFNpbXVs
YXRlZENsaWNrKG5vRXZlbnQpOworfQorCiBpbnQgV2ViVmlld0ltcGw6Onpvb21MZXZlbCgpCiB7
CiAgICAgcmV0dXJuIG1fem9vbUxldmVsOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEZvY3VzZWRGcmFtZShXZWJGcmFtZSogZnJhbWUpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbml0aWFsRm9jdXMoYm9vbCByZXZlcnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1
c2VkTm9kZSgpOworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmF0ZUZvY3VzZWROb2RlKCk7CiAgICAg
dmlydHVhbCBpbnQgem9vbUxldmVsKCk7CiAgICAgdmlydHVhbCBpbnQgc2V0Wm9vbUxldmVsKGJv
b2wgdGV4dE9ubHksIGludCB6b29tTGV2ZWwpOwogICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtTWVk
aWFQbGF5ZXJBY3Rpb24oCg==
</data>
<flag name="review"
          id="32451"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49849</attachid>
            <date>2010-03-02 14:31:36 -0800</date>
            <delta_ts>2010-03-03 18:24:30 -0800</delta_ts>
            <desc>expose WebNode</desc>
            <filename>webnode.diff</filename>
            <type>text/plain</type>
            <size>3699</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTU0MjgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDIgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gYWN0
aXZhdGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
Tm9kZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1dlYk5v
ZGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb2RlOjphY3RpdmF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojpmb2N1c2VkTm9kZSk6IEFkZGVkLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAy
MDEwLTAzLTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5o
CShyZXZpc2lvbiA1NTEwNikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDcgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkg
Ym9vbCBpc0VsZW1lbnROb2RlKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIGFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgV2ViU3RyaW5nJiBldmVudFR5cGUsIFdlYkV2ZW50TGlzdGVuZXIqIGxp
c3RlbmVyLCBib29sIHVzZUNhcHR1cmUpOwogICAgIFdFQktJVF9BUEkgdm9pZCByZW1vdmVFdmVu
dExpc3RlbmVyKGNvbnN0IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJFdmVudExpc3RlbmVyKiBs
aXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKKyAgICBXRUJLSVRfQVBJIHZvaWQgYWN0aXZhdGUo
KTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgdG9FbGVtZW50KCkKICAgICB7CkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNTUxMDYpCisrKyBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiwxMCBA
QCBwdWJsaWM6CiAgICAgLy8gc2VuZCBpdC4KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGb2N1c2Vk
Tm9kZSgpID0gMDsKIAorICAgIC8vIEdldCB0aGUgY3VycmVudGx5IGZvY3VzZWQgbm9kZS4gSWYg
bm8gbm9kZSBpcyBmb2N1c2VkLCByZXR1cm5zIGEgTnVsbAorICAgIC8vIFdlYk5vZGUuCisgICAg
dmlydHVhbCBXZWJOb2RlIGZvY3VzZWROb2RlKCkgPSAwOworCiAKICAgICAvLyBab29tIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCShyZXZpc2lvbiA1NTEwNikKKysrIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NCw0ICsx
OTQsMTAgQEAgdm9pZCBXZWJOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IAogICAgIC8v
IGxpc3RlbmVyV3JhcHBlciBpcyBub3cgZGVsZXRlZC4KIH0KIAordm9pZCBXZWJOb2RlOjphY3Rp
dmF0ZSgpCit7CisgICAgUmVmUHRyPEV2ZW50PiBub0V2ZW50OworICAgIG1fcHJpdmF0ZS0+ZGlz
cGF0Y2hTaW11bGF0ZWRDbGljayhub0V2ZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNTUxMDYpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTI4OCw2ICsxMjg4LDI2IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNsZWFyRm9jdXNlZE5vZGUoKQog
ICAgIH0KIH0KIAorV2ViTm9kZSBXZWJWaWV3SW1wbDo6Zm9jdXNlZE5vZGUoKQoreworICAgIGlm
ICghbV9wYWdlLmdldCgpKQorICAgICAgICByZXR1cm4gV2ViTm9kZSgpOworCisgICAgUmVmUHRy
PEZyYW1lPiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgaWYgKCFmcmFtZS5nZXQo
KSkKKyAgICAgICAgcmV0dXJuIFdlYk5vZGUoKTsKKworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50LmdldCgpKQorICAg
ICAgICByZXR1cm4gV2ViTm9kZSgpOworCisgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWROb2RlID0g
ZG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZS5nZXQoKSkKKyAg
ICAgICAgcmV0dXJuIFdlYk5vZGUoKTsKKworICAgIHJldHVybiBXZWJOb2RlKGZvY3VzZWROb2Rl
KTsKK30KKwogaW50IFdlYlZpZXdJbXBsOjp6b29tTGV2ZWwoKQogewogICAgIHJldHVybiBtX3pv
b21MZXZlbDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU1MTA2
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1c2VkRnJh
bWUoV2ViRnJhbWUqIGZyYW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5pdGlhbEZvY3VzKGJv
b2wgcmV2ZXJzZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRm9jdXNlZE5vZGUoKTsKKyAgICB2
aXJ0dWFsIFdlYk5vZGUgZm9jdXNlZE5vZGUoKTsKICAgICB2aXJ0dWFsIGludCB6b29tTGV2ZWwo
KTsKICAgICB2aXJ0dWFsIGludCBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgaW50IHpvb21M
ZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1NZWRpYVBsYXllckFjdGlvbigK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49972</attachid>
            <date>2010-03-03 18:24:30 -0800</date>
            <delta_ts>2010-03-05 16:40:22 -0800</delta_ts>
            <desc>activate-&gt;simulateClick</desc>
            <filename>simulate.diff</filename>
            <type>text/plain</type>
            <size>3705</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTU0OTEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDMgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gYWN0
aXZhdGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
Tm9kZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1dlYk5v
ZGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb2RlOjphY3RpdmF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojpmb2N1c2VkTm9kZSk6IEFkZGVkLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAy
MDEwLTAzLTAyICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJO
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHJl
dmlzaW9uIDU1NDkwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBib29s
IGlzRWxlbWVudE5vZGUoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgYWRkRXZlbnRMaXN0
ZW5lcihjb25zdCBXZWJTdHJpbmcmIGV2ZW50VHlwZSwgV2ViRXZlbnRMaXN0ZW5lciogbGlzdGVu
ZXIsIGJvb2wgdXNlQ2FwdHVyZSk7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHJlbW92ZUV2ZW50TGlz
dGVuZXIoY29uc3QgV2ViU3RyaW5nJiBldmVudFR5cGUsIFdlYkV2ZW50TGlzdGVuZXIqIGxpc3Rl
bmVyLCBib29sIHVzZUNhcHR1cmUpOworICAgIFdFQktJVF9BUEkgdm9pZCBzaW11bGF0ZUNsaWNr
KCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIHRvRWxlbWVudCgpCiAgICAgewpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDU1NDkwKQorKysgV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw2ICsxMzIsMTAg
QEAgcHVibGljOgogICAgIC8vIHNlbmQgaXQuCiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRm9jdXNl
ZE5vZGUoKSA9IDA7CiAKKyAgICAvLyBHZXQgdGhlIGN1cnJlbnRseSBmb2N1c2VkIG5vZGUuIElm
IG5vIG5vZGUgaXMgZm9jdXNlZCwgcmV0dXJucyBhIE51bGwKKyAgICAvLyBXZWJOb2RlLgorICAg
IHZpcnR1YWwgV2ViTm9kZSBmb2N1c2VkTm9kZSgpID0gMDsKKwogCiAgICAgLy8gWm9vbSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcAkocmV2aXNpb24gNTU0OTApCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNCAr
MTk5LDEwIEBAIHZvaWQgV2ViTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCAKICAgICAv
LyBsaXN0ZW5lcldyYXBwZXIgaXMgbm93IGRlbGV0ZWQuCiB9CiAKK3ZvaWQgV2ViTm9kZTo6c2lt
dWxhdGVDbGljaygpCit7CisgICAgUmVmUHRyPEV2ZW50PiBub0V2ZW50OworICAgIG1fcHJpdmF0
ZS0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhub0V2ZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNTU0
OTApCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTI4OCw2ICsxMjg4LDI2IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNsZWFyRm9jdXNlZE5v
ZGUoKQogICAgIH0KIH0KIAorV2ViTm9kZSBXZWJWaWV3SW1wbDo6Zm9jdXNlZE5vZGUoKQorewor
ICAgIGlmICghbV9wYWdlLmdldCgpKQorICAgICAgICByZXR1cm4gV2ViTm9kZSgpOworCisgICAg
UmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgaWYgKCFmcmFt
ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIFdlYk5vZGUoKTsKKworICAgIFJlZlB0cjxEb2N1bWVu
dD4gZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50LmdldCgp
KQorICAgICAgICByZXR1cm4gV2ViTm9kZSgpOworCisgICAgUmVmUHRyPE5vZGU+IGZvY3VzZWRO
b2RlID0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZS5nZXQo
KSkKKyAgICAgICAgcmV0dXJuIFdlYk5vZGUoKTsKKworICAgIHJldHVybiBXZWJOb2RlKGZvY3Vz
ZWROb2RlKTsKK30KKwogaW50IFdlYlZpZXdJbXBsOjp6b29tTGV2ZWwoKQogewogICAgIHJldHVy
biBtX3pvb21MZXZlbDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9u
IDU1NDkwKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1
c2VkRnJhbWUoV2ViRnJhbWUqIGZyYW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5pdGlhbEZv
Y3VzKGJvb2wgcmV2ZXJzZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRm9jdXNlZE5vZGUoKTsK
KyAgICB2aXJ0dWFsIFdlYk5vZGUgZm9jdXNlZE5vZGUoKTsKICAgICB2aXJ0dWFsIGludCB6b29t
TGV2ZWwoKTsKICAgICB2aXJ0dWFsIGludCBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0T25seSwgaW50
IHpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1NZWRpYVBsYXllckFjdGlvbigK
</data>
<flag name="review"
          id="32990"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50141</attachid>
            <date>2010-03-05 16:40:22 -0800</date>
            <delta_ts>2010-03-08 11:03:53 -0800</delta_ts>
            <desc>review comments</desc>
            <filename>node.diff</filename>
            <type>text/plain</type>
            <size>2613</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDU1NjAx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDMt
MDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gYWN0aXZhdGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBw
dWJsaWMvV2ViRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTm9kZS5oOgorICAgICAg
ICAqIHNyYy9XZWJEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRvY3VtZW50Ojpm
b2N1c2VkTm9kZSk6IEFkZGVkCisgICAgICAgICogc3JjL1dlYk5vZGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb2RlOjpzaW11bGF0ZUNsaWNrKTogQWRkZWQKKwogMjAxMC0wMy0wNSAgSWx5
YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IHB1YmxpYy9XZWJEb2N1bWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHB1YmxpYy9XZWJEb2N1bWVudC5oCShyZXZpc2lvbiA1NTQ2MikKKysrIHB1YmxpYy9XZWJE
b2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICBX
RUJLSVRfQVBJIFdlYkVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCkg
Y29uc3Q7CiAgICAgV0VCS0lUX0FQSSBXZWJOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShj
b25zdCBXZWJTdHJpbmcmKTsKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBhcHBsaWNhdGlvbklE
KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBXZWJOb2RlIGZvY3VzZWROb2RlKCkgY29uc3Q7CiAK
ICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJEb2N1bWVudChjb25zdCBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnQ+Jik7CkluZGV4OiBwdWJsaWMvV2ViTm9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHB1YmxpYy9XZWJOb2RlLmgJKHJldmlzaW9uIDU1NDYyKQorKysgcHVibGlj
L1dlYk5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAg
ICBXRUJLSVRfQVBJIGJvb2wgaXNFbGVtZW50Tm9kZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkg
dm9pZCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJFdmVu
dExpc3RlbmVyKiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKTsKICAgICBXRUJLSVRfQVBJIHZv
aWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBXZWJTdHJpbmcmIGV2ZW50VHlwZSwgV2ViRXZl
bnRMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSk7CisgICAgV0VCS0lUX0FQSSB2
b2lkIHNpbXVsYXRlQ2xpY2soKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgdG9FbGVt
ZW50KCkKICAgICB7CkluZGV4OiBzcmMvV2ViRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNy
Yy9XZWJEb2N1bWVudC5jcHAJKHJldmlzaW9uIDU1NDYyKQorKysgc3JjL1dlYkRvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDQgKzE1OCw5IEBAIFdlYlN0cmluZyBXZWJEb2N1bWVu
dDo6YXBwbGljYXRpb25JRCgpIGMKICAgICByZXR1cm4gV2ViU3RyaW5nKCk7CiB9CiAKK1dlYk5v
ZGUgV2ViRG9jdW1lbnQ6OmZvY3VzZWROb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViTm9k
ZShjb25zdFVud3JhcDxEb2N1bWVudD4oKS0+Zm9jdXNlZE5vZGUoKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogc3JjL1dlYk5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNyYy9X
ZWJOb2RlLmNwcAkocmV2aXNpb24gNTU0NjIpCisrKyBzcmMvV2ViTm9kZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE5OSw0ICsxOTksMTEgQEAgdm9pZCBXZWJOb2RlOjpyZW1vdmVFdmVudExpc3Rl
bmVyKGNvbnN0IAogICAgIC8vIGxpc3RlbmVyV3JhcHBlciBpcyBub3cgZGVsZXRlZC4KIH0KIAor
dm9pZCBXZWJOb2RlOjpzaW11bGF0ZUNsaWNrKCkKK3sKKyAgICBBU1NFUlQobV9wcml2YXRlKTsK
KyAgICBSZWZQdHI8RXZlbnQ+IG5vRXZlbnQ7CisgICAgbV9wcml2YXRlLT5kaXNwYXRjaFNpbXVs
YXRlZENsaWNrKG5vRXZlbnQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="33205"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="33206"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50235</attachid>
            <date>2010-03-08 11:03:53 -0800</date>
            <delta_ts>2010-03-10 14:26:55 -0800</delta_ts>
            <desc>fix paths in .diff</desc>
            <filename>webkit_relative.diff</filename>
            <type>text/plain</type>
            <size>2853</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTU2MDEpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDMtMDUgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gYWN0
aXZhdGUgdGhlIGZvY3VzZWQgbm9kZSBpbiBhIFdlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDA3CisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
RG9jdW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTm9kZS5oOgorICAgICAgICAqIHNyYy9X
ZWJEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRvY3VtZW50Ojpmb2N1c2VkTm9k
ZSk6IEFkZGVkCisgICAgICAgICogc3JjL1dlYk5vZGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb2RlOjpzaW11bGF0ZUNsaWNrKTogQWRkZWQKKwogMjAxMC0wMy0wNSAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgJKHJldmlzaW9u
IDU1NDYyKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYkVsZW1l
bnQgZ2V0RWxlbWVudEJ5SWQoY29uc3QgV2ViU3RyaW5nJiBpZCkgY29uc3Q7CiAgICAgV0VCS0lU
X0FQSSBXZWJOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShjb25zdCBXZWJTdHJpbmcmKTsK
ICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBhcHBsaWNhdGlvbklEKCkgY29uc3Q7CisgICAgV0VC
S0lUX0FQSSBXZWJOb2RlIGZvY3VzZWROb2RlKCkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVN
RU5UQVRJT04KICAgICBXZWJEb2N1bWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
RG9jdW1lbnQ+Jik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaAkocmV2aXNpb24gNTU0
NjIpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA2LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIGJvb2wgaXNFbGVtZW50
Tm9kZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBhZGRFdmVudExpc3RlbmVyKGNvbnN0
IFdlYlN0cmluZyYgZXZlbnRUeXBlLCBXZWJFdmVudExpc3RlbmVyKiBsaXN0ZW5lciwgYm9vbCB1
c2VDYXB0dXJlKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25z
dCBXZWJTdHJpbmcmIGV2ZW50VHlwZSwgV2ViRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIsIGJvb2wg
dXNlQ2FwdHVyZSk7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNpbXVsYXRlQ2xpY2soKTsKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgdG9FbGVtZW50KCkKICAgICB7CkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRvY3VtZW50LmNwcAkocmV2aXNpb24gNTU0NjIpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDQgKzE1OCw5IEBA
IFdlYlN0cmluZyBXZWJEb2N1bWVudDo6YXBwbGljYXRpb25JRCgpIGMKICAgICByZXR1cm4gV2Vi
U3RyaW5nKCk7CiB9CiAKK1dlYk5vZGUgV2ViRG9jdW1lbnQ6OmZvY3VzZWROb2RlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gV2ViTm9kZShjb25zdFVud3JhcDxEb2N1bWVudD4oKS0+Zm9jdXNlZE5v
ZGUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5v
ZGUuY3BwCShyZXZpc2lvbiA1NTQ2MikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw0ICsxOTksMTEgQEAgdm9pZCBXZWJOb2RlOjpyZW1v
dmVFdmVudExpc3RlbmVyKGNvbnN0IAogICAgIC8vIGxpc3RlbmVyV3JhcHBlciBpcyBub3cgZGVs
ZXRlZC4KIH0KIAordm9pZCBXZWJOb2RlOjpzaW11bGF0ZUNsaWNrKCkKK3sKKyAgICBBU1NFUlQo
bV9wcml2YXRlKTsKKyAgICBSZWZQdHI8RXZlbnQ+IG5vRXZlbnQ7CisgICAgbV9wcml2YXRlLT5k
aXNwYXRjaFNpbXVsYXRlZENsaWNrKG5vRXZlbnQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>