<?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>56393</bug_id>
          
          <creation_ts>2011-03-15 11:40:42 -0700</creation_ts>
          <short_desc>Crash on www.crave.cnet.com in FrameView::windowClipRect()</short_desc>
          <delta_ts>2011-06-28 07:48:29 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32653</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="suchi">suchi.kundu</reporter>
          <assigned_to name="Joe Wild">joseph.wild</assigned_to>
          <cc>ademar</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>cmarrin</cc>
    
    <cc>eric</cc>
    
    <cc>joel.parks</cc>
    
    <cc>joseph.wild</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>ostap73</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>367821</commentid>
    <comment_count>0</comment_count>
    <who name="suchi">suchi.kundu</who>
    <bug_when>2011-03-15 11:40:42 -0700</bug_when>
    <thetext>In function FrameView::windowClipRect(bool clipToContents)  we have following code where we try to access enclosing layer without checking the existence of renderer, which cause crashes in some circumstances.


// Take our owner element and get the clip rect from the enclosing layer.

     Element* elt = m_frame-&gt;document()-&gt;ownerElement();
     RenderLayer* layer = elt-&gt;renderer()-&gt;enclosingLayer();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368326</commentid>
    <comment_count>1</comment_count>
      <attachid>85929</attachid>
    <who name="suchi">suchi.kundu</who>
    <bug_when>2011-03-16 07:56:25 -0700</bug_when>
    <thetext>Created attachment 85929
Check the existence of the renderer of element, before trying to access the layer.

This patch provides a check for existence of the renderer of element, before trying to access the enclosing layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368978</commentid>
    <comment_count>2</comment_count>
      <attachid>85929</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-17 04:21:17 -0700</bug_when>
    <thetext>Comment on attachment 85929
Check the existence of the renderer of element, before trying to access the layer.

How do we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368980</commentid>
    <comment_count>3</comment_count>
      <attachid>85929</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-17 04:21:38 -0700</bug_when>
    <thetext>Comment on attachment 85929
Check the existence of the renderer of element, before trying to access the layer.

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Without checking whether renderer of the element is existing, it is trying to find the layer.

s/is existing/exists/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383126</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-11 06:04:18 -0700</bug_when>
    <thetext>Suchi sent me this in email:

I am wondering if you could help me out about the testcase for bug #56393, you had denied to review the patch as I did not provide the testcase. As this is just a NULL check, I am not able to create layout testcase for this yet. If renderer is null on a generic case, the control does not even come to this function and will crash much beyond. I see the existence of same NULL check in function RenderView::paintBoxDecorations() in file RenderView.cpp. If you could let me know any existense test case for the same NULL check would be great.

My response:

So I&apos;m confused why we&apos;re adding this null check if this is never null?  What case is it ever null that we need this null check for?  Do you have an example page which crashes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383142</commentid>
    <comment_count>5</comment_count>
    <who name="suchi">suchi.kundu</who>
    <bug_when>2011-04-11 06:29:37 -0700</bug_when>
    <thetext>Hi Eric, Browser crashed on loading www.crave.cnet.com. During debug we have found out that without checking whether renderer of the element existed, it tried to find the layer and as a result the crash happened. With this NULL check we were able to prevent the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383191</commentid>
    <comment_count>6</comment_count>
    <who name="suchi">suchi.kundu</who>
    <bug_when>2011-04-11 08:57:07 -0700</bug_when>
    <thetext>Hi Eric, Browser crashed on loading www.crave.cnet.com. During debug we have found out that without checking whether renderer of the element existed, it tried to find the layer and as a result the crash happened. With this NULL check we were able to prevent the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383920</commentid>
    <comment_count>7</comment_count>
      <attachid>89185</attachid>
    <who name="suchi">suchi.kundu</who>
    <bug_when>2011-04-12 03:39:24 -0700</bug_when>
    <thetext>Created attachment 89185
Modified changelog

As this Null check does not change the functionality, no new layout test was created for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383935</commentid>
    <comment_count>8</comment_count>
      <attachid>89185</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-12 04:44:16 -0700</bug_when>
    <thetext>Comment on attachment 89185
Modified changelog

You seem very confused about this change. First, understand what is going on, should the layer be null here, if yes in which cases. Then make a layout test accessing this path.

If that crashes on some websites, it is likely possible to make a test for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392511</commentid>
    <comment_count>9</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-04-26 09:29:15 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Hi Eric, Browser crashed on loading www.crave.cnet.com. During debug we have found out that without checking whether renderer of the element existed, it tried to find the layer and as a result the crash happened. With this NULL check we were able to prevent the crash.

Did you try to create reduction? Some simple html that crashes webkit.
If you get reduction it would be very easy to add layout test. There is a lot of tests that pass if webkit doesn’t crash.

Does it crash with frame flattening switched on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393667</commentid>
    <comment_count>10</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-27 11:11:17 -0700</bug_when>
    <thetext>Blocking 2.1.x as requested/discussed via e-mail. Any chance of adding the test still this week? I would like to avoid adding yet another unreviewed patch to 2.1.x.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395257</commentid>
    <comment_count>11</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-04-29 07:32:24 -0700</bug_when>
    <thetext>Patch added to 2.1 as c56e63a70e7186cd056b192f8a0056f6ed3bc84d, pending trunk inclusion and blocking 2.2.

P1 because it&apos;s a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400710</commentid>
    <comment_count>12</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-05-09 13:31:33 -0700</bug_when>
    <thetext>This is not resetting on Linux because it allows calling a nonvirtual function with a null this pointer.

If I add this assert statement it will reset on Linux too.
Source/WebCore/page/FrameView.cpp

ASSERT(elt-&gt;renderer());
layer = elt-&gt;renderer()-&gt;enclosingLayer();

The Sample html files to reproduce the crash in 
https://bugs.webkit.org/show_bug.cgi?id=59684 
show a small test case.

We should be able add a layout test now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406382</commentid>
    <comment_count>13</comment_count>
      <attachid>94067</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-05-19 07:24:35 -0700</bug_when>
    <thetext>Created attachment 94067
Example Layout test for this problem

I am not only submitting this as a an example for a test.  I think it
has too many problems listed below for it to be a real test.  Main
problem is that I could not get it to not reset on Linux QtWebkit
with gtk/flash plugin interaction.

Here is a small test case that can show the null renderer reset.  It
contains an iframe with style=&quot;display:none&quot; of an object element of a
.swf file.

There are a number of things I don&apos;t like about this test, but could not
figure out a better way to do.

First, I had to add an ASSERT((elt-&gt;renderer()) to
FrameView::windowClipRect() to get it to reset in Linux as it does
on Symbian.

Second, I had to break the test into 3 files.  I could not reproduce the
problem by trying to embed content with the data: scheme.

Third, since I have to wait for the iframe file and .swf file to load,
I used a window.setTimeout( &quot;bodyLoaded();&quot;, 300) to wait for the failure.

Fourth, I had to go through all sorts of investigation to get the plugin
code in be loaded under run-webkit-tests to reproduce this error.  Eventually,
I just copied the Linux plugins to the run-webkit-tests plugin area with

   $ cp /usr/lib/mozilla/plugins/*.so /home/jwild/dev/webkit/WebKit.2011.03.21/WebKitBuild/Release/lib/plugins/

Fifth, this test was continuing to assert/reset on Linux QtWebkit
because of problem with the Flash Plugin/Gtk that fails for other .swf
tests.

(process:27607): Gtk-CRITICAL **: IA__gtk_clipboard_get_for_display: assertion `display != NULL&apos; failed
Adobe Flash Player: gtk_clipboard_get(GDK_SELECTION_PRIMARY); failed. Trying to call gtk_init(0,0);

(&lt;unknown&gt;:27607): Gdk-CRITICAL **: IA__gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)&apos; failed

(&lt;unknown&gt;:27607): Gdk-WARNING **: /build/buildd/gtk+2.0-2.22.0/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
Source:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412021</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-29 14:06:36 -0700</bug_when>
    <thetext>Chris is Mr-Layer.  He might have a sense as to if this is &quot;expected&quot; or not.  I think Suchi just needs to spend a bit of time and come up with a reduction from the original site.  Code changes are basically useless w/o testing, as WebKit changes soo fast that we commonly regress untested fixes (hence why we require tests when possible).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415959</commentid>
    <comment_count>15</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-06 12:58:35 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Chris is Mr-Layer.  He might have a sense as to if this is &quot;expected&quot; or not.  I think Suchi just needs to spend a bit of time and come up with a reduction from the original site.  Code changes are basically useless w/o testing, as WebKit changes soo fast that we commonly regress untested fixes (hence why we require tests when possible).

Does the test submitted in Comment #13 seem adequate?  I know it has
a lot of limitations as I listed, but I&apos;m not sure how to make it better or
smaller since it relies on the plugin environment.

If you think it is adequate, we can submit a patch with both Suchi&apos;s fix and
the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416748</commentid>
    <comment_count>16</comment_count>
      <attachid>96287</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-07 13:05:03 -0700</bug_when>
    <thetext>Created attachment 96287
FrameView null renderer fix for WebKit 2.2

Here is Suchi&apos;s original patch applied to WebKit 2.2.  It is not submitted for review.
It is only here for a convenience if it is needed to be applied to 2.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416750</commentid>
    <comment_count>17</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-06-07 13:20:51 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=96287) [details]
&gt; FrameView null renderer fix for WebKit 2.2
&gt; 
&gt; Here is Suchi&apos;s original patch applied to WebKit 2.2.  It is not submitted for review.
&gt; It is only here for a convenience if it is needed to be applied to 2.2.

So we&apos;re giving up by now? :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417580</commentid>
    <comment_count>18</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-08 15:06:07 -0700</bug_when>
    <thetext>I am able to get this to fail more cleanly with the WebKit Gtk build.

I will submit a new patch with the patched code and test case for review.  
Just running tests now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418096</commentid>
    <comment_count>19</comment_count>
      <attachid>96602</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-09 10:41:17 -0700</bug_when>
    <thetext>Created attachment 96602
Check for null renderer to avoid reset.  

I was able to get the layout test to run more cleanly under Gtk WebKit than Qt WebKit 
because Gtk seems to have a full plugin code for DumpRenderTree.

Included is that code fix and layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419536</commentid>
    <comment_count>20</comment_count>
      <attachid>96602</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-13 06:58:04 -0700</bug_when>
    <thetext>Comment on attachment 96602
Check for null renderer to avoid reset.  

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

&gt; Source/WebCore/rendering/RenderObject.cpp:528
&gt; +    ASSERT(this);

I don&apos;t think this is the right fix. How come the &quot;this&quot; could be null here? In which scenario, the &quot;this&quot; could be null?

I don&apos;t think you fix the root of the problem here. I don&apos;t understand why this change is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420538</commentid>
    <comment_count>21</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-14 10:27:38 -0700</bug_when>
    <thetext>(In reply to comment #20)

The &quot;this&quot; pointer is null on all platforms (at least the ones I looked at).
It only reset&apos;s on Symbian because of a difference in execution environment.

The renderer is null causing a null &quot;this&quot;.  This is show in the small test case by an iframe with style=display:none to an html page containing a .swf
plugin.

I will look again in the debugger and see if I can exactly where and why the
renderer is set to null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420577</commentid>
    <comment_count>22</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-14 11:01:42 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; 
&gt; The &quot;this&quot; pointer is null on all platforms (at least the ones I looked at).
&gt; It only reset&apos;s on Symbian because of a difference in execution environment.
&gt; 
&gt; The renderer is null causing a null &quot;this&quot;.  This is show in the small test case by an iframe with style=display:none to an html page containing a .swf
&gt; plugin.
&gt; 
&gt; I will look again in the debugger and see if I can exactly where and why the
&gt; renderer is set to null.

But the test should be done before the function call, i.e. before enclosingLayer() is called like the other part of your patch does.

ASSERT is not run in release so what&apos;s the purpose of the ASSERT, to check you don&apos;t enter in enclosingLayer() with an invalid pointer. It&apos;s not the right way, you should ASSERT *before* the call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420654</commentid>
    <comment_count>23</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-14 12:18:01 -0700</bug_when>
    <thetext>(In reply to comment #22)
Now I understand your question.

I added this ASSERT so that this situation would fail on all platforms
so I could write the test.  If we had Symbian layout tests, that would
be a much better alternative.

Orignally, I put the ASSERT at the site of
the call as you suggest, but that did not make any sense once I applied
the patch for checking the null renderer.

IntRect FrameView::windowClipRect()
  ...
  ASSERT(elt &amp;&amp; elt-&gt;renderer());

  // Patch for null renderer
  RenderLayer* layer = 0; 
  if (elt &amp;&amp; elt-&gt;renderer()) 
    layer = elt-&gt;renderer()-&gt;enclosingLayer(); 

So I thought the best place to include the ASSERT was in 
enclosingLayer().

I agree that the ASSERT is a bit odd.  However, I could not think
of a better way to expose this problem in the Layout tests.  I am 
open to other suggestions.  While this currently only fails on Symbian,
I assume we don&apos;t want WebKit depending on undefined C++ behavior.

I hope this makes sense.  If not, please ask more questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420657</commentid>
    <comment_count>24</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-14 12:35:52 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; Now I understand your question.
&gt; 
&gt; I added this ASSERT so that this situation would fail on all platforms
&gt; so I could write the test.  If we had Symbian layout tests, that would
&gt; be a much better alternative.
&gt; 
&gt; Orignally, I put the ASSERT at the site of
&gt; the call as you suggest, but that did not make any sense once I applied
&gt; the patch for checking the null renderer.
&gt; 
&gt; IntRect FrameView::windowClipRect()
&gt;   ...
&gt;   ASSERT(elt &amp;&amp; elt-&gt;renderer());
&gt; 
&gt;   // Patch for null renderer
&gt;   RenderLayer* layer = 0; 
&gt;   if (elt &amp;&amp; elt-&gt;renderer()) 
&gt;     layer = elt-&gt;renderer()-&gt;enclosingLayer(); 
&gt; 
&gt; So I thought the best place to include the ASSERT was in 
&gt; enclosingLayer().

The first idea was better than the current one.

One thing bother me. If the test is good enough you don&apos;t need the ASSERT, it should just crash properly therefore it will be catch at a LayoutTest failure. A crashing test is good enough to be treated as a regression/failure.

&gt; 
&gt; I agree that the ASSERT is a bit odd.  However, I could not think
&gt; of a better way to expose this problem in the Layout tests.  I am 
&gt; open to other suggestions.  While this currently only fails on Symbian,
&gt; I assume we don&apos;t want WebKit depending on undefined C++ behavior.

That&apos;s why I&apos;m annoying you with my questions. We can&apos;t put such code.

&gt; 
&gt; I hope this makes sense.  If not, please ask more questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420682</commentid>
    <comment_count>25</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-06-14 13:15:17 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #22)
&gt; &gt; Now I understand your question.
&gt; &gt; 
&gt; &gt; I added this ASSERT so that this situation would fail on all platforms
&gt; &gt; so I could write the test.  If we had Symbian layout tests, that would
&gt; &gt; be a much better alternative.
&gt; &gt; 
&gt; &gt; Orignally, I put the ASSERT at the site of
&gt; &gt; the call as you suggest, but that did not make any sense once I applied
&gt; &gt; the patch for checking the null renderer.
&gt; &gt; 
&gt; &gt; IntRect FrameView::windowClipRect()
&gt; &gt;   ...
&gt; &gt;   ASSERT(elt &amp;&amp; elt-&gt;renderer());
&gt; &gt; 
&gt; &gt;   // Patch for null renderer
&gt; &gt;   RenderLayer* layer = 0; 
&gt; &gt;   if (elt &amp;&amp; elt-&gt;renderer()) 
&gt; &gt;     layer = elt-&gt;renderer()-&gt;enclosingLayer(); 
&gt; &gt; 
&gt; &gt; So I thought the best place to include the ASSERT was in 
&gt; &gt; enclosingLayer().
&gt; 
&gt; The first idea was better than the current one.
&gt; 
&gt; One thing bother me. If the test is good enough you don&apos;t need the ASSERT, it should just crash properly therefore it will be catch at a LayoutTest failure. A crashing test is good enough to be treated as a regression/failure.

The problem here, that RenderObject::enclosingLayer doesn&apos;t deference any data member if this is null:

RenderLayer* RenderObject::enclosingLayer() const
{
    const RenderObject* curr = this;
    while (curr) {

But on symbian something is deferenced on function enter (IMHO, VMT if function has VM calls). So, this function is designed to work fine with this pointer null, but it doesn&apos;t work on symbian because of code generation specifics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420693</commentid>
    <comment_count>26</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-14 13:30:42 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; &gt; enclosingLayer().
&gt; The first idea was better than the current one.
&gt; One thing bother me. If the test is good enough you don&apos;t need the ASSERT, it should just crash properly therefore it will be catch at a LayoutTest failure. A crashing test is good enough to be treated as a regression/failure.

That&apos;s the problem.  The test without the ASSERT is not good enough
to crash on the Unix platforms.  The Unix platforms allow a null
&quot;this&quot; pointer and Symbian does not.  I can&apos;t think of a way to 
make a better test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420695</commentid>
    <comment_count>27</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-14 13:33:25 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; Now I understand your question.
&gt; &gt; &gt; 
&gt; &gt; &gt; I added this ASSERT so that this situation would fail on all platforms
&gt; &gt; &gt; so I could write the test.  If we had Symbian layout tests, that would
&gt; &gt; &gt; be a much better alternative.
&gt; &gt; &gt; 
&gt; &gt; &gt; Orignally, I put the ASSERT at the site of
&gt; &gt; &gt; the call as you suggest, but that did not make any sense once I applied
&gt; &gt; &gt; the patch for checking the null renderer.
&gt; &gt; &gt; 
&gt; &gt; &gt; IntRect FrameView::windowClipRect()
&gt; &gt; &gt;   ...
&gt; &gt; &gt;   ASSERT(elt &amp;&amp; elt-&gt;renderer());
&gt; &gt; &gt; 
&gt; &gt; &gt;   // Patch for null renderer
&gt; &gt; &gt;   RenderLayer* layer = 0; 
&gt; &gt; &gt;   if (elt &amp;&amp; elt-&gt;renderer()) 
&gt; &gt; &gt;     layer = elt-&gt;renderer()-&gt;enclosingLayer(); 
&gt; &gt; &gt; 
&gt; &gt; &gt; So I thought the best place to include the ASSERT was in 
&gt; &gt; &gt; enclosingLayer().
&gt; &gt; 
&gt; &gt; The first idea was better than the current one.
&gt; &gt; 
&gt; &gt; One thing bother me. If the test is good enough you don&apos;t need the ASSERT, it should just crash properly therefore it will be catch at a LayoutTest failure. A crashing test is good enough to be treated as a regression/failure.
&gt; 
&gt; The problem here, that RenderObject::enclosingLayer doesn&apos;t deference any data member if this is null:
&gt; 
&gt; RenderLayer* RenderObject::enclosingLayer() const
&gt; {
&gt;     const RenderObject* curr = this;
&gt;     while (curr) {
&gt; 
&gt; But on symbian something is deferenced on function enter (IMHO, VMT if function has VM calls). So, this function is designed to work fine with this pointer null, but it doesn&apos;t work on symbian because of code generation specifics.

But it doesn&apos;t matter if this function deference any data-member, you *should* never enter here from a pointer-&gt;enclosingLayer() where pointer is null. If I follow your logic we should put ASSERT(this) in *every* functions of WebKit, just in case we end up with a null this, this is wrong. This function was obviously NOT designed to work with a null this, it just goes from the current RenderObject (the this) and walk to the parents to find the first RenderLayer. The function enclosingBox is doing something similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420699</commentid>
    <comment_count>28</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-14 13:36:49 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #24)
&gt; &gt; &gt; enclosingLayer().
&gt; &gt; The first idea was better than the current one.
&gt; &gt; One thing bother me. If the test is good enough you don&apos;t need the ASSERT, it should just crash properly therefore it will be catch at a LayoutTest failure. A crashing test is good enough to be treated as a regression/failure.
&gt; 
&gt; That&apos;s the problem.  The test without the ASSERT is not good enough
&gt; to crash on the Unix platforms.  The Unix platforms allow a null
&gt; &quot;this&quot; pointer and Symbian does not.  I can&apos;t think of a way to 
&gt; make a better test.

Either ASSERT earlier or make a specific layout test only executed on Symbian (look in LayoutTests/platform/qt, we have different sets of Skipped tests, e.g. one with Qt 4.8).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420705</commentid>
    <comment_count>29</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-14 13:40:30 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #26)
&gt; &gt; (In reply to comment #24)
&gt; &gt; &gt; &gt; enclosingLayer().
&gt; &gt; &gt; The first idea was better than the current one.
&gt; &gt; &gt; One thing bother me. If the test is good enough you don&apos;t need the ASSERT, it should just crash properly therefore it will be catch at a LayoutTest failure. A crashing test is good enough to be treated as a regression/failure.
&gt; &gt; 
&gt; &gt; That&apos;s the problem.  The test without the ASSERT is not good enough
&gt; &gt; to crash on the Unix platforms.  The Unix platforms allow a null
&gt; &gt; &quot;this&quot; pointer and Symbian does not.  I can&apos;t think of a way to 
&gt; &gt; make a better test.
&gt; 
&gt; Either ASSERT earlier or make a specific layout test only executed on Symbian (look in LayoutTests/platform/qt, we have different sets of Skipped tests, e.g. one with Qt 4.8).

And it doesn&apos;t matter if you don&apos;t cover other platforms in your tests because anyway they didn&apos;t crash earlier. What you want to make sure is that Symbian is not crashing. So just let the test like it is, run it on all platforms (UNIX will never crash) but Symbian will (without the patch) and is covered if a regression could happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420713</commentid>
    <comment_count>30</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-14 13:55:52 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; And it doesn&apos;t matter if you don&apos;t cover other platforms in your tests because anyway they didn&apos;t crash earlier. What you want to make sure is that Symbian is not crashing. So just let the test like it is, run it on all platforms (UNIX will never crash) but Symbian will (without the patch) and is covered if a regression could happen.

That makes sense.  Thanks!  So I really just need to remove the ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420717</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-14 14:05:13 -0700</bug_when>
    <thetext>Do you know what exactly on Symbian makes it different?

I&apos;m not sure what a compiler might want to do that makes calling a non-virtual function with a null &quot;this&quot; not work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421323</commentid>
    <comment_count>32</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-15 08:44:14 -0700</bug_when>
    <thetext>(In reply to comment #31)
Good question.  If I am reading the asm correctly,
it looks like the compiler assumes &quot;this != 0&quot; and
puts the loop check at the end of the loop.

// comments added by me

    Built with
    ARM C/C++ Compiler, RVCT4.0 [Build 902]

    _ZNK7WebCore12RenderObject14enclosingLayerEv
        0x000003e8:    e5d0101a    ....    LDRB     r1,[r0,#0x1a]
        0x000003ec:    e2011002    ....    AND      r1,r1,#2
        0x000003f0:    e1b010a1    ....    LSRS     r1,r1,#1
        0x000003f4:    15901020     ...    LDRNE    r1,[r0,#0x20]
        0x000003f8:    e3510000    ..Q.    CMP      r1,#0     // if (layer)
        0x000003fc:    11a00001    ....    MOVNE    r0,r1
        0x00000400:    112fff1e    ../.    BXNE     r14
        0x00000404:    e590000c    ....    LDR      r0,[r0,#0xc]
        0x00000408:    e3500000    ..P.    CMP      r0,#0    // while (curr)
        0x0000040c:    1afffff5    ....    BNE      {pc} - 0x24  ; 0x3e8
        0x00000410:    e12fff1e    ../.    BX       r14

RenderLayer* RenderObject::enclosingLayer() const
{
    const RenderObject* curr = this;
    while (curr) {
        RenderLayer* layer = curr-&gt;hasLayer() ? toRenderBoxModelObject(curr)-&gt;layer() : 0;
        if (layer)
            return layer;
        curr = curr-&gt;parent();
    }
    return 0;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422272</commentid>
    <comment_count>33</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-16 15:02:26 -0700</bug_when>
    <thetext>I am still planning to work on this.  I&apos;m having some WebKit build problems on my linux box.  As soon as I straighten that out, I&apos;ll resubmit a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423718</commentid>
    <comment_count>34</comment_count>
      <attachid>97815</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-20 09:52:19 -0700</bug_when>
    <thetext>Created attachment 97815
Check for null renderer to avoid a reset.

Removed the ASSERT(this).  Now this test will only reset on platforms, like Symbian,  
that do not allow the &quot;this&quot; pointer of a nonvirtual function to be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423721</commentid>
    <comment_count>35</comment_count>
      <attachid>97815</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-20 10:02:46 -0700</bug_when>
    <thetext>Comment on attachment 97815
Check for null renderer to avoid a reset.

Forgot to set flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423727</commentid>
    <comment_count>36</comment_count>
      <attachid>97815</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-20 10:07:09 -0700</bug_when>
    <thetext>Comment on attachment 97815
Check for null renderer to avoid a reset.

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

&gt; Source/WebCore/page/FrameView.cpp:2128
&gt; +    if (elt &amp;&amp; elt-&gt;renderer())
&gt; +        layer = elt-&gt;renderer()-&gt;enclosingLayer();

Which of the added checks fails with the included test case? Please add a test case for the other one, or remove the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423731</commentid>
    <comment_count>37</comment_count>
      <attachid>97815</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-20 10:12:37 -0700</bug_when>
    <thetext>Comment on attachment 97815
Check for null renderer to avoid a reset.

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Check for a null renderer to fix a reset.

This should explain why the new check is needed. What is the website doing that&apos;s different from most pages?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423735</commentid>
    <comment_count>38</comment_count>
      <attachid>97815</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-20 10:16:32 -0700</bug_when>
    <thetext>Comment on attachment 97815
Check for null renderer to avoid a reset.

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        Without checking existence of the renderer of the element,tries to access the enclosing layer.

Name of the bug should be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423752</commentid>
    <comment_count>39</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-20 10:35:51 -0700</bug_when>
    <thetext>(In reply to comment #36)

I will change this to &quot;if (elt-&gt;renderer())&quot;.  I don&apos;t think elt can
ever be null.

&gt; (From update of attachment 97815 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97815&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:2128
&gt; &gt; +    if (elt &amp;&amp; elt-&gt;renderer())
&gt; &gt; +        layer = elt-&gt;renderer()-&gt;enclosingLayer();
&gt; 
&gt; Which of the added checks fails with the included test case? Please add a test case for the other one, or remove the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423755</commentid>
    <comment_count>40</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-20 10:41:16 -0700</bug_when>
    <thetext>Some general comments about bug filing and patches:
1. The title of the bug should describe the user-visible symptom, not the fix.
2. The changelog should describe what the is, and what you did to fix it. For example, in the current case, why is elt-&gt;renderer() null here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423893</commentid>
    <comment_count>41</comment_count>
      <attachid>97845</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-20 13:12:26 -0700</bug_when>
    <thetext>Created attachment 97845
Check for a null renderer to avoid a crash.

I removed the check for a null of elt and tried to 
better explain in the change log when the null renderer case
arises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423912</commentid>
    <comment_count>42</comment_count>
      <attachid>97845</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-20 13:23:42 -0700</bug_when>
    <thetext>Comment on attachment 97845
Check for a null renderer to avoid a crash.

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

&gt; LayoutTests/ChangeLog:12
&gt; +        This test will only reset on platforms (like Symbian) that

What does &apos;reset&apos; mean here? Is it the same as crashing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423915</commentid>
    <comment_count>43</comment_count>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-20 13:30:00 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 97845 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97845&amp;action=review
&gt; &gt; LayoutTests/ChangeLog:12
&gt; &gt; +        This test will only reset on platforms (like Symbian) that
&gt; What does &apos;reset&apos; mean here? Is it the same as crashing?

Yes.  It will dereference 0 and crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428231</commentid>
    <comment_count>44</comment_count>
      <attachid>97845</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-27 13:34:28 -0700</bug_when>
    <thetext>Comment on attachment 97845
Check for a null renderer to avoid a crash.

Channged &quot;reset&quot; to &quot;crash&quot; to be more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428235</commentid>
    <comment_count>45</comment_count>
      <attachid>97845</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-27 13:43:13 -0700</bug_when>
    <thetext>Comment on attachment 97845
Check for a null renderer to avoid a crash.

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Check for a null renderer to fix a reset. This situation can

s/reset/crash

&gt; Source/WebCore/page/FrameView.cpp:2130
&gt; +    RenderLayer* layer = 0;
&gt; +    // The renderer can sometimes be null when style=&quot;display:none&quot; interacts
&gt; +    // with external content and plugins.
&gt; +    if (elt-&gt;renderer())
&gt; +        layer = elt-&gt;renderer()-&gt;enclosingLayer();

You could write this as layer = elt-&gt;renderer() ? elt-&gt;renderer()-&gt;enclosingLayer().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428246</commentid>
    <comment_count>46</comment_count>
      <attachid>97845</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-27 13:49:33 -0700</bug_when>
    <thetext>Comment on attachment 97845
Check for a null renderer to avoid a crash.

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

&gt; LayoutTests/plugins/hidden-iframe-with-swf-plugin.html:42
&gt; +If this test does not assert or reset it and the line below reads &quot;PASSED&quot;, it passes.

The test also needs to get rid of &quot;reset&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428350</commentid>
    <comment_count>47</comment_count>
      <attachid>98796</attachid>
    <who name="Joe Wild">joseph.wild</who>
    <bug_when>2011-06-27 15:03:38 -0700</bug_when>
    <thetext>Created attachment 98796
Check for a null renderer to avoid a crash.

Changed &quot;reset&quot; to &quot;crash&quot;, and updated check for null renderer to use the ?: operator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428432</commentid>
    <comment_count>48</comment_count>
      <attachid>98796</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-27 16:26:31 -0700</bug_when>
    <thetext>Comment on attachment 98796
Check for a null renderer to avoid a crash.

Clearing flags on attachment: 98796

Committed r89876: &lt;http://trac.webkit.org/changeset/89876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428433</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-27 16:26:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428878</commentid>
    <comment_count>50</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-06-28 07:48:29 -0700</bug_when>
    <thetext>Revision r89876 cherry-picked into qtwebkit-2.2 with commit dad7a55 &lt;http://gitorious.org/webkit/qtwebkit/commit/dad7a55&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85929</attachid>
            <date>2011-03-16 07:56:25 -0700</date>
            <delta_ts>2011-03-17 04:21:38 -0700</delta_ts>
            <desc>Check the existence of the renderer of element, before trying to access the layer.</desc>
            <filename>56393.patch</filename>
            <type>text/plain</type>
            <size>1360</size>
            <attacher name="suchi">suchi.kundu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMjQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDMtMTYgIEt1bmR1IFN1
Y2hpc21pdGEgIDxzdWNoaS5rdW5kdUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2MzkzICAgICAgICAKKyAgICAgICAgV2l0aG91dCBjaGVja2luZyB3aGV0aGVy
IHJlbmRlcmVyIG9mIHRoZSBlbGVtZW50IGlzIGV4aXN0aW5nLCBpdCBpcyB0cnlpbmcgdG8gZmlu
ZCB0aGUgbGF5ZXIuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KToKKwogMjAxMS0wMy0xNiAgQW5kcmV5
IEFkYWlraW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVy
eSBTZW1pa2hhdHNreS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9u
IDgxMjQwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTkxLDcgKzE5OTEsMTEgQEAgSW50UmVjdCBGcmFtZVZpZXc6OndpbmRvd0NsaXBS
ZWN0KGJvb2wgYwogCiAgICAgLy8gVGFrZSBvdXIgb3duZXIgZWxlbWVudCBhbmQgZ2V0IHRoZSBj
bGlwIHJlY3QgZnJvbSB0aGUgZW5jbG9zaW5nIGxheWVyLgogICAgIEVsZW1lbnQqIGVsdCA9IG1f
ZnJhbWUtPm93bmVyRWxlbWVudCgpOwotICAgIFJlbmRlckxheWVyKiBsYXllciA9IGVsdC0+cmVu
ZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSAwOwor
ICAgIAorICAgIGlmIChlbHQgJiYgZWx0LT5yZW5kZXJlcigpKQorICAgICAgICBsYXllciA9IGVs
dC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgCiAgICAgLy8gRklYTUU6
IGxheWVyIHNob3VsZCBuZXZlciBiZSBudWxsLCBidXQgc29tZXRpbWVzIHNlZW1zIHRvIGJlIGFu
eXdheS4KICAgICBpZiAoIWxheWVyKQogICAgICAgICByZXR1cm4gY2xpcFJlY3Q7Cg==
</data>
<flag name="review"
          id="78126"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89185</attachid>
            <date>2011-04-12 03:39:24 -0700</date>
            <delta_ts>2011-04-12 04:44:16 -0700</delta_ts>
            <desc>Modified changelog</desc>
            <filename>56393_1.patch</filename>
            <type>text/plain</type>
            <size>1405</size>
            <attacher name="suchi">suchi.kundu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNTcyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDQtMTIgIEt1bmR1IFN1
Y2hpc21pdGEgIDxzdWNoaS5rdW5kdUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2MzkzCisgICAgICAgIFdpdGhvdXQgY2hlY2tpbmcgd2hldGhlciByZW5kZXJl
ciBvZiB0aGUgZWxlbWVudCBleGlzdHMsdHJpZXMgdG8gZmluZCB0aGUgbGF5ZXIuCisKKyAgICAg
ICAgVGhlcmUgaXMgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkgc28gbm8gbmV3IHRlc3RzLgor
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojp3aW5kb3dDbGlwUmVjdCk6CisKIDIwMTEtMDQtMDYgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
bi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDgzNTcxKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTk3
LDcgKzE5OTcsMTEgQEAgSW50UmVjdCBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KGJvb2wgYwog
CiAgICAgLy8gVGFrZSBvdXIgb3duZXIgZWxlbWVudCBhbmQgZ2V0IHRoZSBjbGlwIHJlY3QgZnJv
bSB0aGUgZW5jbG9zaW5nIGxheWVyLgogICAgIEVsZW1lbnQqIGVsdCA9IG1fZnJhbWUtPm93bmVy
RWxlbWVudCgpOwotICAgIFJlbmRlckxheWVyKiBsYXllciA9IGVsdC0+cmVuZGVyZXIoKS0+ZW5j
bG9zaW5nTGF5ZXIoKTsKKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSAwOworICAgIAorICAgIGlm
IChlbHQgJiYgZWx0LT5yZW5kZXJlcigpKQorICAgICAgICBsYXllciA9IGVsdC0+cmVuZGVyZXIo
KS0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgCiAgICAgLy8gRklYTUU6IGxheWVyIHNob3Vs
ZCBuZXZlciBiZSBudWxsLCBidXQgc29tZXRpbWVzIHNlZW1zIHRvIGJlIGFueXdheS4KICAgICBp
ZiAoIWxheWVyKQogICAgICAgICByZXR1cm4gY2xpcFJlY3Q7Cg==
</data>
<flag name="review"
          id="81824"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94067</attachid>
            <date>2011-05-19 07:24:35 -0700</date>
            <delta_ts>2011-05-19 07:24:35 -0700</delta_ts>
            <desc>Example Layout test for this problem</desc>
            <filename>hidden_iframe_test06.patch</filename>
            <type>text/plain</type>
            <size>3621</size>
            <attacher name="Joe Wild">joseph.wild</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDg2ODQzKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDk1LDcg
KzIwOTUsMTIgQEAgSW50UmVjdCBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KGJvb2wgYwogCiAg
ICAgLy8gVGFrZSBvdXIgb3duZXIgZWxlbWVudCBhbmQgZ2V0IHRoZSBjbGlwIHJlY3QgZnJvbSB0
aGUgZW5jbG9zaW5nIGxheWVyLgogICAgIEVsZW1lbnQqIGVsdCA9IG1fZnJhbWUtPm93bmVyRWxl
bWVudCgpOworCisgICAgLy8gQXNzZXJ0IHJlbmRlcmVyIGlzIG5vdCBudWxsLiBUaGlzIGZvcmNl
cyBhIG51bGwgcmVuZGVyZXIgdG8gZmFpbAorICAgIC8vIG9uIGFsbCBwbGF0Zm9ybXMuCisgICAg
QVNTRVJUKGVsdC0+cmVuZGVyZXIoKSk7CiAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gZWx0LT5y
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOworCiAgICAgLy8gRklYTUU6IGxheWVyIHNob3Vs
ZCBuZXZlciBiZSBudWxsLCBidXQgc29tZXRpbWVzIHNlZW1zIHRvIGJlIGFueXdheS4KICAgICBp
ZiAoIWxheWVyKQogICAgICAgICByZXR1cm4gY2xpcFJlY3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9w
bHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2lu
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvaGlkZGVu
LWlmcmFtZS13aXRoLXN3Zi1wbHVnaW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDggQEAKK1RoaXMgcGFnZSB0ZXN0cworaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2MzkzCitCdWcgNTYzOTMgLSBXaXRob3V0IGNoZWNraW5nIGV4aXN0ZW5jZSBv
ZiB0aGUgcmVuZGVyZXIgb2YgdGhlIGVsZW1lbnQsdHJpZXMgdG8gYWNjZXNzIHRoZSBlbmNsb3Np
bmcgbGF5ZXIuCitJdCBjb250YWlucyBhbiBpZnJhbWUgZWxlbWVudCB3aXRoIGRpc3BsYXk6bm9u
ZSB0aGF0IGxvYWRzIGFuIEhUTUwgcGFnZSB3aXRoIGFuIG9iamVjdCBlbGVtZW50IG9mIGEgLnN3
ZiBmaWxlLiBPYmplY3QgbXVzdCBiZSBpbiBhIHNlcGFyYXRlIHBhZ2UgKGRhdGE6IHNjaGVtZSB3
b24ndCBzaG93IHByb2JsZW0pLgorSWYgdGhpcyB0ZXN0IGRvZXMgbm90IGFzc2VydCBvciByZXNl
dCBpdCBhbmQgdGhlIGxpbmUgYmVsb3cgcmVhZHMgIlBBU1NFRCIsIGl0IHBhc3Nlcy4KKworUEFT
U0VECisKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvaGlkZGVuLWlmcmFtZS13aXRoLXN3Zi1w
bHVnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJh
bWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVn
aW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9CisKKy8vIFRoaXMg
d2FzIHRoZSBvbmx5IHdheSB0aGF0IEkgd2FzIGFibGUgdG8gd2FpdCBsb25nIGVub3VnaAorLy8g
Zm9yIHRoZSB0ZXN0IHRvIHJlc2V0IHdoaWxlIHN0aWxsIHJ1bm5pbmcgdW5kZXIgRHVtcFJlbmRl
clRyZWUoRFJUKS4KK3dpbmRvdy5zZXRUaW1lb3V0KCAiYm9keUxvYWRlZCgpOyIsIDMwMCk7CisK
K2Z1bmN0aW9uIGxvZyhtc2cpCit7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChzcGFuKTsKKyAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOworfQor
CitmdW5jdGlvbiBib2R5TG9hZGVkKCkgeworICAgIGxvZygiUEFTU0VEIik7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorPGRpdiBzdHls
ZT0iZGlzcGxheTpub25lIj4KKyAgPGlmcmFtZSBuYW1lPSJ0ZXN0aWZyYW1lIiBpZD0idGVzdGlm
cmFtZSIKKyAgICAgICAgICBzcmM9InJlc291cmNlcy9pZnJhbWUtY29udGVudC13aXRoLXN3Zi1w
bHVnaW4uaHRtbCI+CisgIDwvaWZyYW1lPgorPC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPgor
VGhpcyBwYWdlIHRlc3RzPGJyLz4KK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjM5Mzxici8+CitCdWcgNTYzOTMgLSBXaXRob3V0IGNoZWNraW5nIGV4aXN0ZW5jZSBv
ZiB0aGUgcmVuZGVyZXIgb2YgdGhlCitlbGVtZW50LHRyaWVzIHRvIGFjY2VzcyB0aGUgZW5jbG9z
aW5nIGxheWVyLjxici8+CitJdCBjb250YWlucyBhbiBpZnJhbWUgZWxlbWVudCB3aXRoIGRpc3Bs
YXk6bm9uZSB0aGF0IGxvYWRzIGFuIEhUTUwgcGFnZQord2l0aCBhbiBvYmplY3QgZWxlbWVudCBv
ZiBhIC5zd2YgZmlsZS4gT2JqZWN0IG11c3QgYmUgaW4gYSBzZXBhcmF0ZSBwYWdlCisoZGF0YTog
c2NoZW1lIHdvbid0IHNob3cgcHJvYmxlbSkuPGJyLz4KK0lmIHRoaXMgdGVzdCBkb2VzIG5vdCBh
c3NlcnQgb3IgcmVzZXQgaXQgYW5kIHRoZSBsaW5lIGJlbG93IHJlYWRzICJQQVNTRUQiLCBpdCBw
YXNzZXMuCis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50LXdpdGgt
c3dmLXBsdWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3Vy
Y2VzL2lmcmFtZS1jb250ZW50LXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGx1Z2lucy9yZXNvdXJjZXMvaWZyYW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1
Z2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8Ym9keT4KKyAg
IDxvYmplY3Q+CisgICAgICAgPHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0ic2ltcGxlX2JsYW5r
LnN3ZiI+CisgICAgICAgPGVtYmVkIHNyYz0ic2ltcGxlX2JsYW5rLnN3ZiI+PC9lbWJlZD4KKyAg
ICA8L29iamVjdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96287</attachid>
            <date>2011-06-07 13:05:03 -0700</date>
            <delta_ts>2011-06-20 10:19:43 -0700</delta_ts>
            <desc>FrameView null renderer fix for WebKit 2.2</desc>
            <filename>frameview_render_fix_webkit2.2_02.patch</filename>
            <type>text/plain</type>
            <size>702</size>
            <attacher name="Joe Wild">joseph.wild</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA4OTRjMTk2Li5iMzRmNGQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMDc1LDcgKzIwNzUsMTEgQEAgSW50UmVjdCBGcmFt
ZVZpZXc6OndpbmRvd0NsaXBSZWN0KGJvb2wgY2xpcFRvQ29udGVudHMpIGNvbnN0CiAKICAgICAv
LyBUYWtlIG91ciBvd25lciBlbGVtZW50IGFuZCBnZXQgdGhlIGNsaXAgcmVjdCBmcm9tIHRoZSBl
bmNsb3NpbmcgbGF5ZXIuCiAgICAgRWxlbWVudCogZWx0ID0gbV9mcmFtZS0+b3duZXJFbGVtZW50
KCk7Ci0gICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gZWx0LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdM
YXllcigpOworICAgIFJlbmRlckxheWVyKiBsYXllciA9IDA7CisKKyAgICBpZiAoZWx0ICYmIGVs
dC0+cmVuZGVyZXIoKSkKKyAgICAgICAgbGF5ZXIgPSBlbHQtPnJlbmRlcmVyKCktPmVuY2xvc2lu
Z0xheWVyKCk7CisKICAgICAvLyBGSVhNRTogbGF5ZXIgc2hvdWxkIG5ldmVyIGJlIG51bGwsIGJ1
dCBzb21ldGltZXMgc2VlbXMgdG8gYmUgYW55d2F5LgogICAgIGlmICghbGF5ZXIpCiAgICAgICAg
IHJldHVybiBjbGlwUmVjdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96602</attachid>
            <date>2011-06-09 10:41:17 -0700</date>
            <delta_ts>2011-06-20 09:52:19 -0700</delta_ts>
            <desc>Check for null renderer to avoid reset.  </desc>
            <filename>null_renderer_fix01.patch</filename>
            <type>text/plain</type>
            <size>6397</size>
            <attacher name="Joe Wild">joseph.wild</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NDU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDYtMDkgIEpvZSBXaWxk
ICA8am9zZXBoLndpbGRAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdpdGhvdXQgY2hlY2tpbmcgZXhpc3RlbmNlIG9mIHRoZSByZW5k
ZXJlciBvZiB0aGUgZWxlbWVudCx0cmllcyB0byBhY2Nlc3MgdGhlIGVuY2xvc2luZyBsYXllci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkzCisK
KyAgICAgICAgQWRkZWQgY29kZSB0byBjaGVjayBmb3IgYSBudWxsIHJlbmRlcmVyIHRvIGZpeCBh
IHJlc2V0LgorCisgICAgICAgIE5vdGUgdGhhdCBhbiBBU1NFUlQodGhpcykgd2FzIGFkZGVkIGlu
IFJlbmRlck9iamVjdDo6ZW5jbG9zaW5nTGF5ZXIoKQorICAgICAgICB0byBmb3JjZSB0aGlzIHBy
b2JsZW0gdG8gYmUgdmlzaWJsZSBvbiBhbGwgcGxhdGZvcm1zIGZvciBtb3JlCisgICAgICAgIHJl
bGlhYmxlIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdDogcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdp
dGgtc3dmLXBsdWdpbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
ZW5jbG9zaW5nTGF5ZXIpOgorCiAyMDExLTA2LTA4ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gODg0NTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMjMsNyArMjEyMyw5
IEBAIEludFJlY3QgRnJhbWVWaWV3Ojp3aW5kb3dDbGlwUmVjdChib29sIGMKIAogICAgIC8vIFRh
a2Ugb3VyIG93bmVyIGVsZW1lbnQgYW5kIGdldCB0aGUgY2xpcCByZWN0IGZyb20gdGhlIGVuY2xv
c2luZyBsYXllci4KICAgICBFbGVtZW50KiBlbHQgPSBtX2ZyYW1lLT5vd25lckVsZW1lbnQoKTsK
LSAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBlbHQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVy
KCk7CisgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gMDsKKyAgICBpZiAoZWx0ICYmIGVsdC0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgbGF5ZXIgPSBlbHQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVy
KCk7CiAgICAgLy8gRklYTUU6IGxheWVyIHNob3VsZCBuZXZlciBiZSBudWxsLCBidXQgc29tZXRp
bWVzIHNlZW1zIHRvIGJlIGFueXdheS4KICAgICBpZiAoIWxheWVyKQogICAgICAgICByZXR1cm4g
Y2xpcFJlY3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAkocmV2aXNpb24gODg0NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIyLDYgKzUyMiwxMSBAQCBSZW5kZXJMYXllciog
UmVuZGVyT2JqZWN0OjpmaW5kTmV4dExheWVyCiAKIFJlbmRlckxheWVyKiBSZW5kZXJPYmplY3Q6
OmVuY2xvc2luZ0xheWVyKCkgY29uc3QKIHsKKyAgICAvLyBJbiBDKyssIGEgbnVsbCAidGhpcyIg
aW4gYSBub252aXJ0dWFsIGZ1bmN0aW9uIGlzIHVuZGVmaW5lZCBhbmQKKyAgICAvLyBvbmx5IGZh
aWxzIG9uIHNvbWUgcGxhdGZvcm1zLiBGb3JjZSBpdCB0byBmYWlsIG9uIGFsbAorICAgIC8vIHBs
YXRmb3Jtcy4KKyAgICBBU1NFUlQodGhpcyk7CisKICAgICBjb25zdCBSZW5kZXJPYmplY3QqIGN1
cnIgPSB0aGlzOwogICAgIHdoaWxlIChjdXJyKSB7CiAgICAgICAgIFJlbmRlckxheWVyKiBsYXll
ciA9IGN1cnItPmhhc0xheWVyKCkgPyB0b1JlbmRlckJveE1vZGVsT2JqZWN0KGN1cnIpLT5sYXll
cigpIDogMDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NDU3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDYtMDkgIEpvZSBXaWxk
ICA8am9zZXBoLndpbGRAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdpdGhvdXQgY2hlY2tpbmcgZXhpc3RlbmNlIG9mIHRoZSByZW5k
ZXJlciBvZiB0aGUgZWxlbWVudCx0cmllcyB0byBhY2Nlc3MgdGhlIGVuY2xvc2luZyBsYXllci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkzCisK
KyAgICAgICAgVGVzdHMgdGhhdCBhIHBsdWdpbiBvZiBhIHN3ZiBmaWxlIGluIGEgaGlkZGVuIGlm
cmFtZSB3aWxsIG5vdAorICAgICAgICByZXNldC4gVGhpcyB0ZXN0IHJlcXVpcmVkIG1vcmUgdGhh
biAxIGNvbnRlbnQgZmlsZSBhbmQgYSB0aW1lb3V0CisgICAgICAgIG9yIGVsc2UgaXQgd291bGQg
bm90IHJlcGVhdCB0aGUgZXJyb3IgY29uZGl0aW9uLiBUaGlzIHRlc3RzIHJ1bnMKKyAgICAgICAg
bW9yZSBjbGVhbmx5IHVuZGVyIEd0ayBXZWJLaXQgdGhhbiBRdCBXZWJraXQgd2hlcmUgdGhlIHBs
dWdpbiBjb2RlCisgICAgICAgIGZvciBEdW1wUmVuZGVyVHJlZSBpcyBtb3JlIGZ1bGx5IGltcGxl
bWVudGVkLgorCisgICAgICAgICogcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdp
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvaGlkZGVuLWlmcmFtZS13
aXRoLXN3Zi1wbHVnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9yZXNvdXJjZXMv
aWZyYW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1Z2luLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTA4
ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZy
YW1lLXdpdGgtc3dmLXBsdWdpbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2Yt
cGx1Z2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitUaGlzIHBh
Z2UgdGVzdHMKK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM5Mwor
QnVnIDU2MzkzIC0gV2l0aG91dCBjaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHJlbmRlcmVyIG9m
IHRoZSBlbGVtZW50LHRyaWVzIHRvIGFjY2VzcyB0aGUgZW5jbG9zaW5nIGxheWVyLgorSXQgY29u
dGFpbnMgYW4gaWZyYW1lIGVsZW1lbnQgd2l0aCBkaXNwbGF5Om5vbmUgdGhhdCBsb2FkcyBhbiBI
VE1MIHBhZ2Ugd2l0aCBhbiBvYmplY3QgZWxlbWVudCBvZiBhIC5zd2YgZmlsZS4gT2JqZWN0IG11
c3QgYmUgaW4gYSBzZXBhcmF0ZSBwYWdlIChkYXRhOiBzY2hlbWUgd29uJ3Qgc2hvdyBwcm9ibGVt
KS4KK0lmIHRoaXMgdGVzdCBkb2VzIG5vdCBhc3NlcnQgb3IgcmVzZXQgaXQgYW5kIHRoZSBsaW5l
IGJlbG93IHJlYWRzICJQQVNTRUQiLCBpdCBwYXNzZXMuCisKK1BBU1NFRAorCkluZGV4OiBMYXlv
dXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdp
bi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1l
LXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCisvLyBUaGlzIHdhcyB0aGUgb25seSB3YXkg
dGhhdCBJIHdhcyBhYmxlIHRvIHdhaXQgbG9uZyBlbm91Z2gKKy8vIGZvciB0aGUgdGVzdCB0byBy
ZXNldCB3aGlsZSBzdGlsbCBydW5uaW5nIHVuZGVyIER1bXBSZW5kZXJUcmVlKERSVCkuCit3aW5k
b3cuc2V0VGltZW91dCggImJvZHlMb2FkZWQoKTsiLCAzMDApOworCitmdW5jdGlvbiBsb2cobXNn
KQoreworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7Cisg
ICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsKK30KKworZnVuY3Rpb24gYm9keUxv
YWRlZCgpIHsKKyAgICBsb2coIlBBU1NFRCIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI+
CisgIDxpZnJhbWUgbmFtZT0idGVzdGlmcmFtZSIgaWQ9InRlc3RpZnJhbWUiCisgICAgICAgICAg
c3JjPSJyZXNvdXJjZXMvaWZyYW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1Z2luLmh0bWwiPgorICA8
L2lmcmFtZT4KKzwvZGl2PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj4KK1RoaXMgcGFnZSB0ZXN0czxi
ci8+CitodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTM8YnIvPgor
QnVnIDU2MzkzIC0gV2l0aG91dCBjaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHJlbmRlcmVyIG9m
IHRoZQorZWxlbWVudCx0cmllcyB0byBhY2Nlc3MgdGhlIGVuY2xvc2luZyBsYXllci48YnIvPgor
SXQgY29udGFpbnMgYW4gaWZyYW1lIGVsZW1lbnQgd2l0aCBkaXNwbGF5Om5vbmUgdGhhdCBsb2Fk
cyBhbiBIVE1MIHBhZ2UKK3dpdGggYW4gb2JqZWN0IGVsZW1lbnQgb2YgYSAuc3dmIGZpbGUuIE9i
amVjdCBtdXN0IGJlIGluIGEgc2VwYXJhdGUgcGFnZQorKGRhdGE6IHNjaGVtZSB3b24ndCBzaG93
IHByb2JsZW0pLjxici8+CitJZiB0aGlzIHRlc3QgZG9lcyBub3QgYXNzZXJ0IG9yIHJlc2V0IGl0
IGFuZCB0aGUgbGluZSBiZWxvdyByZWFkcyAiUEFTU0VEIiwgaXQgcGFzc2VzLgorPC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9wbHVnaW5zL3Jlc291cmNlcy9pZnJhbWUtY29udGVudC13aXRoLXN3Zi1wbHVnaW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9pZnJhbWUtY29udGVu
dC13aXRoLXN3Zi1wbHVnaW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdp
bnMvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50LXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDggQEAKKzxodG1sPgorPGJvZHk+CisgICA8b2JqZWN0PgorICAgICAg
IDxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9InNpbXBsZV9ibGFuay5zd2YiPgorICAgICAgIDxl
bWJlZCBzcmM9InNpbXBsZV9ibGFuay5zd2YiPjwvZW1iZWQ+CisgICAgPC9vYmplY3Q+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97815</attachid>
            <date>2011-06-20 09:52:19 -0700</date>
            <delta_ts>2011-06-20 13:12:26 -0700</delta_ts>
            <desc>Check for null renderer to avoid a reset.</desc>
            <filename>null_renderer_fix04.patch</filename>
            <type>text/plain</type>
            <size>5410</size>
            <attacher name="Joe Wild">joseph.wild</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MjUwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMjAgIEpvZSBXaWxk
ICA8am9zZXBoLndpbGRAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdpdGhvdXQgY2hlY2tpbmcgZXhpc3RlbmNlIG9mIHRoZSByZW5k
ZXJlciBvZiB0aGUgZWxlbWVudCx0cmllcyB0byBhY2Nlc3MgdGhlIGVuY2xvc2luZyBsYXllci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkzCisK
KyAgICAgICAgQ2hlY2sgZm9yIGEgbnVsbCByZW5kZXJlciB0byBmaXggYSByZXNldC4KKworICAg
ICAgICBUZXN0OiBwbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6d2luZG93Q2xpcFJlY3QpOgorCiAyMDExLTA2LTIwICBNaWtlIFJlZWQgIDxyZWVkQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RlcGhlbiBXaGl0ZS4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDg5MjQ5KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIzLDcgKzIxMjMsOSBAQCBJ
bnRSZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjCiAKICAgICAvLyBUYWtlIG91
ciBvd25lciBlbGVtZW50IGFuZCBnZXQgdGhlIGNsaXAgcmVjdCBmcm9tIHRoZSBlbmNsb3Npbmcg
bGF5ZXIuCiAgICAgRWxlbWVudCogZWx0ID0gbV9mcmFtZS0+b3duZXJFbGVtZW50KCk7Ci0gICAg
UmVuZGVyTGF5ZXIqIGxheWVyID0gZWx0LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwor
ICAgIFJlbmRlckxheWVyKiBsYXllciA9IDA7CisgICAgaWYgKGVsdCAmJiBlbHQtPnJlbmRlcmVy
KCkpCisgICAgICAgIGxheWVyID0gZWx0LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwog
ICAgIC8vIEZJWE1FOiBsYXllciBzaG91bGQgbmV2ZXIgYmUgbnVsbCwgYnV0IHNvbWV0aW1lcyBz
ZWVtcyB0byBiZSBhbnl3YXkuCiAgICAgaWYgKCFsYXllcikKICAgICAgICAgcmV0dXJuIGNsaXBS
ZWN0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODkyNTApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wNi0yMCAgSm9lIFdpbGQgIDxq
b3NlcGgud2lsZEBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aG91dCBjaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHJlbmRlcmVy
IG9mIHRoZSBlbGVtZW50LHRyaWVzIHRvIGFjY2VzcyB0aGUgZW5jbG9zaW5nIGxheWVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTMKKworICAg
ICAgICBUZXN0cyB0aGF0IGEgcGx1Z2luIG9mIGEgc3dmIGZpbGUgaW4gYSBoaWRkZW4gaWZyYW1l
IHdpbGwgbm90CisgICAgICAgIHJlc2V0LiBUaGlzIHRlc3QgcmVxdWlyZWQgbW9yZSB0aGFuIDEg
Y29udGVudCBmaWxlIGFuZCBhCisgICAgICAgIHRpbWVvdXQgb3IgZWxzZSBpdCB3b3VsZCBub3Qg
cmVwZWF0IHRoZSBlcnJvciBjb25kaXRpb24uCisKKyAgICAgICAgVGhpcyB0ZXN0IHdpbGwgb25s
eSByZXNldCBvbiBwbGF0Zm9ybXMgKGxpa2UgU3ltYmlhbikgdGhhdCBkb24ndAorICAgICAgICBh
bGxvdyBub252aXJ0dWFsIGZ1bmN0aW9ucyB0byBoYXZlIGEgbnVsbCB0aGlzIHBvaW50ZXIuCisK
KyAgICAgICAgKiBwbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBs
dWdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3Jlc291cmNlcy9pZnJhbWUtY29u
dGVudC13aXRoLXN3Zi1wbHVnaW4uaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMjAgIE1pa2UgUmVl
ZCAgPHJlZWRAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGVwaGVuIFdoaXRl
LgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdp
bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4t
aWZyYW1lLXdpdGgtc3dmLXBsdWdpbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitUaGlzIHBhZ2UgdGVzdHMKK2h0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM5MworQnVnIDU2MzkzIC0gV2l0aG91
dCBjaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHJlbmRlcmVyIG9mIHRoZSBlbGVtZW50LHRyaWVz
IHRvIGFjY2VzcyB0aGUgZW5jbG9zaW5nIGxheWVyLgorSXQgY29udGFpbnMgYW4gaWZyYW1lIGVs
ZW1lbnQgd2l0aCBkaXNwbGF5Om5vbmUgdGhhdCBsb2FkcyBhbiBIVE1MIHBhZ2Ugd2l0aCBhbiBv
YmplY3QgZWxlbWVudCBvZiBhIC5zd2YgZmlsZS4gT2JqZWN0IG11c3QgYmUgaW4gYSBzZXBhcmF0
ZSBwYWdlIChkYXRhOiBzY2hlbWUgd29uJ3Qgc2hvdyBwcm9ibGVtKS4KK0lmIHRoaXMgdGVzdCBk
b2VzIG5vdCBhc3NlcnQgb3IgcmVzZXQgaXQgYW5kIHRoZSBsaW5lIGJlbG93IHJlYWRzICJQQVNT
RUQiLCBpdCBwYXNzZXMuCisKK1BBU1NFRAorCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2hp
ZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworfQorCisvLyBUaGlzIHdhcyB0aGUgb25seSB3YXkgdGhhdCBJIHdhcyBhYmxlIHRv
IHdhaXQgbG9uZyBlbm91Z2gKKy8vIGZvciB0aGUgdGVzdCB0byByZXNldCB3aGlsZSBzdGlsbCBy
dW5uaW5nIHVuZGVyIER1bXBSZW5kZXJUcmVlKERSVCkuCit3aW5kb3cuc2V0VGltZW91dCggImJv
ZHlMb2FkZWQoKTsiLCAzMDApOworCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIHZhciBzcGFu
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgc3Bhbi5pbm5lckhUTUwg
PSBtc2cgKyAnPGJyIC8+JzsKK30KKworZnVuY3Rpb24gYm9keUxvYWRlZCgpIHsKKyAgICBsb2co
IlBBU1NFRCIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keT4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CisgIDxpZnJhbWUgbmFtZT0i
dGVzdGlmcmFtZSIgaWQ9InRlc3RpZnJhbWUiCisgICAgICAgICAgc3JjPSJyZXNvdXJjZXMvaWZy
YW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1Z2luLmh0bWwiPgorICA8L2lmcmFtZT4KKzwvZGl2Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj4KK1RoaXMgcGFnZSB0ZXN0czxici8+CitodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTM8YnIvPgorQnVnIDU2MzkzIC0gV2l0aG91
dCBjaGVja2luZyBleGlzdGVuY2Ugb2YgdGhlIHJlbmRlcmVyIG9mIHRoZQorZWxlbWVudCx0cmll
cyB0byBhY2Nlc3MgdGhlIGVuY2xvc2luZyBsYXllci48YnIvPgorSXQgY29udGFpbnMgYW4gaWZy
YW1lIGVsZW1lbnQgd2l0aCBkaXNwbGF5Om5vbmUgdGhhdCBsb2FkcyBhbiBIVE1MIHBhZ2UKK3dp
dGggYW4gb2JqZWN0IGVsZW1lbnQgb2YgYSAuc3dmIGZpbGUuIE9iamVjdCBtdXN0IGJlIGluIGEg
c2VwYXJhdGUgcGFnZQorKGRhdGE6IHNjaGVtZSB3b24ndCBzaG93IHByb2JsZW0pLjxici8+CitJ
ZiB0aGlzIHRlc3QgZG9lcyBub3QgYXNzZXJ0IG9yIHJlc2V0IGl0IGFuZCB0aGUgbGluZSBiZWxv
dyByZWFkcyAiUEFTU0VEIiwgaXQgcGFzc2VzLgorPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3Jlc291cmNl
cy9pZnJhbWUtY29udGVudC13aXRoLXN3Zi1wbHVnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9pZnJhbWUtY29udGVudC13aXRoLXN3Zi1wbHVnaW4u
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2VzL2lmcmFt
ZS1jb250ZW50LXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgg
QEAKKzxodG1sPgorPGJvZHk+CisgICA8b2JqZWN0PgorICAgICAgIDxwYXJhbSBuYW1lPSJtb3Zp
ZSIgdmFsdWU9InNpbXBsZV9ibGFuay5zd2YiPgorICAgICAgIDxlbWJlZCBzcmM9InNpbXBsZV9i
bGFuay5zd2YiPjwvZW1iZWQ+CisgICAgPC9vYmplY3Q+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97845</attachid>
            <date>2011-06-20 13:12:26 -0700</date>
            <delta_ts>2011-06-27 15:03:38 -0700</delta_ts>
            <desc>Check for a null renderer to avoid a crash.</desc>
            <filename>null_renderer_fix05.patch</filename>
            <type>text/plain</type>
            <size>5646</size>
            <attacher name="Joe Wild">joseph.wild</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MjgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMjAgIEpvZSBXaWxk
ICA8am9zZXBoLndpbGRAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENyYXNoIG9uIHd3dy5jcmF2ZS5jbmV0LmNvbSBpbiBGcmFtZVZp
ZXc6OndpbmRvd0NsaXBSZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU2MzkzCisKKyAgICAgICAgQ2hlY2sgZm9yIGEgbnVsbCByZW5kZXJlciB0
byBmaXggYSByZXNldC4gVGhpcyBzaXR1YXRpb24gY2FuCisgICAgICAgIGFyaXNlIHdoZW4gZXh0
ZXJuYWwgY29udGVudC9wbHVnaW5zIGlzIHJlZmVyZW5jZWQgZnJvbSBodG1sCisgICAgICAgIGVs
ZW1lbnRzIHdpdGggc3R5bGU9ImRpc3BsYXk6bm9uZSIuCisKKyAgICAgICAgVGVzdDogcGx1Z2lu
cy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0
KToKKwogMjAxMS0wNi0yMCAgQWxleCBNaWxvd3NraSAgPGFsZXhAbWlsb3dza2kuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAkocmV2aXNpb24gODkyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMjMsOCArMjEyMywxMSBAQCBJbnRSZWN0IEZyYW1l
Vmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjCiAKICAgICAvLyBUYWtlIG91ciBvd25lciBlbGVt
ZW50IGFuZCBnZXQgdGhlIGNsaXAgcmVjdCBmcm9tIHRoZSBlbmNsb3NpbmcgbGF5ZXIuCiAgICAg
RWxlbWVudCogZWx0ID0gbV9mcmFtZS0+b3duZXJFbGVtZW50KCk7Ci0gICAgUmVuZGVyTGF5ZXIq
IGxheWVyID0gZWx0LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwotICAgIC8vIEZJWE1F
OiBsYXllciBzaG91bGQgbmV2ZXIgYmUgbnVsbCwgYnV0IHNvbWV0aW1lcyBzZWVtcyB0byBiZSBh
bnl3YXkuCisgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gMDsKKyAgICAvLyBUaGUgcmVuZGVyZXIg
Y2FuIHNvbWV0aW1lcyBiZSBudWxsIHdoZW4gc3R5bGU9ImRpc3BsYXk6bm9uZSIgaW50ZXJhY3Rz
CisgICAgLy8gd2l0aCBleHRlcm5hbCBjb250ZW50IGFuZCBwbHVnaW5zLgorICAgIGlmIChlbHQt
PnJlbmRlcmVyKCkpCisgICAgICAgIGxheWVyID0gZWx0LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdM
YXllcigpOwogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybiBjbGlwUmVjdDsKICAgICBG
cmFtZVZpZXcqIHBhcmVudFZpZXcgPSBlbHQtPmRvY3VtZW50KCktPnZpZXcoKTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDg5MjgxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDYtMjAgIEpvZSBXaWxkICA8am9zZXBoLndpbGRAbm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENyYXNoIG9uIHd3dy5jcmF2ZS5jbmV0LmNvbSBpbiBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2Mzkz
CisKKyAgICAgICAgVGVzdHMgdGhhdCBhIHBsdWdpbiBvZiBhIHN3ZiBmaWxlIGluIGEgaGlkZGVu
IGlmcmFtZSB3aWxsIG5vdAorICAgICAgICByZXNldC4gVGhpcyB0ZXN0IHJlcXVpcmVkIG1vcmUg
dGhhbiAxIGNvbnRlbnQgZmlsZSBhbmQgYQorICAgICAgICB0aW1lb3V0IG9yIGVsc2UgaXQgd291
bGQgbm90IHJlcGVhdCB0aGUgZXJyb3IgY29uZGl0aW9uLgorCisgICAgICAgIFRoaXMgdGVzdCB3
aWxsIG9ubHkgcmVzZXQgb24gcGxhdGZvcm1zIChsaWtlIFN5bWJpYW4pIHRoYXQKKyAgICAgICAg
ZG9uJ3QgYWxsb3cgbm9udmlydHVhbCBmdW5jdGlvbnMgdG8gaGF2ZSBhIG51bGwgdGhpcyBwb2lu
dGVyLgorCisgICAgICAgICogcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvaGlkZGVuLWlmcmFtZS13aXRo
LXN3Zi1wbHVnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9yZXNvdXJjZXMvaWZy
YW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1Z2luLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTIwICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1z
d2YtcGx1Z2luLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5z
L2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL3BsdWdpbnMvaGlkZGVuLWlmcmFtZS13aXRoLXN3Zi1wbHVnaW4tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK1RoaXMgcGFnZSB0ZXN0cwor
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkzCitCdWcgNTYzOTMg
LSBXaXRob3V0IGNoZWNraW5nIGV4aXN0ZW5jZSBvZiB0aGUgcmVuZGVyZXIgb2YgdGhlIGVsZW1l
bnQsdHJpZXMgdG8gYWNjZXNzIHRoZSBlbmNsb3NpbmcgbGF5ZXIuCitJdCBjb250YWlucyBhbiBp
ZnJhbWUgZWxlbWVudCB3aXRoIGRpc3BsYXk6bm9uZSB0aGF0IGxvYWRzIGFuIEhUTUwgcGFnZSB3
aXRoIGFuIG9iamVjdCBlbGVtZW50IG9mIGEgLnN3ZiBmaWxlLiBPYmplY3QgbXVzdCBiZSBpbiBh
IHNlcGFyYXRlIHBhZ2UgKGRhdGE6IHNjaGVtZSB3b24ndCBzaG93IHByb2JsZW0pLgorSWYgdGhp
cyB0ZXN0IGRvZXMgbm90IGFzc2VydCBvciByZXNldCBpdCBhbmQgdGhlIGxpbmUgYmVsb3cgcmVh
ZHMgIlBBU1NFRCIsIGl0IHBhc3Nlcy4KKworUEFTU0VECisKSW5kZXg6IExheW91dFRlc3RzL3Bs
dWdpbnMvaGlkZGVuLWlmcmFtZS13aXRoLXN3Zi1wbHVnaW4uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJhbWUtd2l0aC1zd2Yt
cGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Cit9CisKKy8vIFRoaXMgd2FzIHRoZSBvbmx5IHdheSB0aGF0IEkgd2Fz
IGFibGUgdG8gd2FpdCBsb25nIGVub3VnaAorLy8gZm9yIHRoZSB0ZXN0IHRvIHJlc2V0IHdoaWxl
IHN0aWxsIHJ1bm5pbmcgdW5kZXIgRHVtcFJlbmRlclRyZWUoRFJUKS4KK3dpbmRvdy5zZXRUaW1l
b3V0KCAiYm9keUxvYWRlZCgpOyIsIDMwMCk7CisKK2Z1bmN0aW9uIGxvZyhtc2cpCit7CisgICAg
dmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzcGFuLmlu
bmVySFRNTCA9IG1zZyArICc8YnIgLz4nOworfQorCitmdW5jdGlvbiBib2R5TG9hZGVkKCkgewor
ICAgIGxvZygiUEFTU0VEIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5PgorPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIj4KKyAgPGlmcmFt
ZSBuYW1lPSJ0ZXN0aWZyYW1lIiBpZD0idGVzdGlmcmFtZSIKKyAgICAgICAgICBzcmM9InJlc291
cmNlcy9pZnJhbWUtY29udGVudC13aXRoLXN3Zi1wbHVnaW4uaHRtbCI+CisgIDwvaWZyYW1lPgor
PC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPgorVGhpcyBwYWdlIHRlc3RzPGJyLz4KK2h0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjM5Mzxici8+CitCdWcgNTYzOTMg
LSBXaXRob3V0IGNoZWNraW5nIGV4aXN0ZW5jZSBvZiB0aGUgcmVuZGVyZXIgb2YgdGhlCitlbGVt
ZW50LHRyaWVzIHRvIGFjY2VzcyB0aGUgZW5jbG9zaW5nIGxheWVyLjxici8+CitJdCBjb250YWlu
cyBhbiBpZnJhbWUgZWxlbWVudCB3aXRoIGRpc3BsYXk6bm9uZSB0aGF0IGxvYWRzIGFuIEhUTUwg
cGFnZQord2l0aCBhbiBvYmplY3QgZWxlbWVudCBvZiBhIC5zd2YgZmlsZS4gT2JqZWN0IG11c3Qg
YmUgaW4gYSBzZXBhcmF0ZSBwYWdlCisoZGF0YTogc2NoZW1lIHdvbid0IHNob3cgcHJvYmxlbSku
PGJyLz4KK0lmIHRoaXMgdGVzdCBkb2VzIG5vdCBhc3NlcnQgb3IgcmVzZXQgaXQgYW5kIHRoZSBs
aW5lIGJlbG93IHJlYWRzICJQQVNTRUQiLCBpdCBwYXNzZXMuCis8L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMv
cmVzb3VyY2VzL2lmcmFtZS1jb250ZW50LXdpdGgtc3dmLXBsdWdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50LXdpdGgtc3dm
LXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9yZXNvdXJj
ZXMvaWZyYW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOCBAQAorPGh0bWw+Cis8Ym9keT4KKyAgIDxvYmplY3Q+CisgICAgICAgPHBhcmFtIG5h
bWU9Im1vdmllIiB2YWx1ZT0ic2ltcGxlX2JsYW5rLnN3ZiI+CisgICAgICAgPGVtYmVkIHNyYz0i
c2ltcGxlX2JsYW5rLnN3ZiI+PC9lbWJlZD4KKyAgICA8L29iamVjdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="91914"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="91915"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98796</attachid>
            <date>2011-06-27 15:03:38 -0700</date>
            <delta_ts>2011-06-27 16:26:30 -0700</delta_ts>
            <desc>Check for a null renderer to avoid a crash.</desc>
            <filename>null_renderer_fix06.patch</filename>
            <type>text/plain</type>
            <size>5589</size>
            <attacher name="Joe Wild">joseph.wild</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5ODYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMjcgIEpvZSBXaWxk
ICA8am9zZXBoLndpbGRAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENyYXNoIG9uIHd3dy5jcmF2ZS5jbmV0LmNvbSBpbiBGcmFtZVZp
ZXc6OndpbmRvd0NsaXBSZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU2MzkzCisKKyAgICAgICAgQ2hlY2sgZm9yIGEgbnVsbCByZW5kZXJlciB0
byBmaXggYSBjcmFzaC4gVGhpcyBzaXR1YXRpb24gY2FuCisgICAgICAgIGFyaXNlIHdoZW4gZXh0
ZXJuYWwgY29udGVudC9wbHVnaW5zIGlzIHJlZmVyZW5jZWQgZnJvbSBodG1sCisgICAgICAgIGVs
ZW1lbnRzIHdpdGggc3R5bGU9ImRpc3BsYXk6bm9uZSIuCisKKyAgICAgICAgVGVzdDogcGx1Z2lu
cy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0
KToKKwogMjAxMS0wNi0yNyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDg5ODYzKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTI3LDggKzIxMjcsOSBAQCBJbnRS
ZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjCiAKICAgICAvLyBUYWtlIG91ciBv
d25lciBlbGVtZW50IGFuZCBnZXQgdGhlIGNsaXAgcmVjdCBmcm9tIHRoZSBlbmNsb3NpbmcgbGF5
ZXIuCiAgICAgRWxlbWVudCogZWx0ID0gbV9mcmFtZS0+b3duZXJFbGVtZW50KCk7Ci0gICAgUmVu
ZGVyTGF5ZXIqIGxheWVyID0gZWx0LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwotICAg
IC8vIEZJWE1FOiBsYXllciBzaG91bGQgbmV2ZXIgYmUgbnVsbCwgYnV0IHNvbWV0aW1lcyBzZWVt
cyB0byBiZSBhbnl3YXkuCisgICAgLy8gVGhlIHJlbmRlcmVyIGNhbiBzb21ldGltZXMgYmUgbnVs
bCB3aGVuIHN0eWxlPSJkaXNwbGF5Om5vbmUiIGludGVyYWN0cworICAgIC8vIHdpdGggZXh0ZXJu
YWwgY29udGVudCBhbmQgcGx1Z2lucy4KKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBlbHQtPnJl
bmRlcmVyKCkgPyBlbHQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCkgOiAwOwogICAgIGlm
ICghbGF5ZXIpCiAgICAgICAgIHJldHVybiBjbGlwUmVjdDsKICAgICBGcmFtZVZpZXcqIHBhcmVu
dFZpZXcgPSBlbHQtPmRvY3VtZW50KCktPnZpZXcoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5ODYz
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDYtMjcgIEpvZSBXaWxkICA8am9zZXBoLndpbGRAbm9raWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyYXNoIG9uIHd3dy5j
cmF2ZS5jbmV0LmNvbSBpbiBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkzCisKKyAgICAgICAgVGVz
dHMgdGhhdCBhIHBsdWdpbiBvZiBhIHN3ZiBmaWxlIGluIGEgaGlkZGVuIGlmcmFtZSB3aWxsIG5v
dAorICAgICAgICBjcmFzaC4gVGhpcyB0ZXN0IHJlcXVpcmVkIG1vcmUgdGhhbiAxIGNvbnRlbnQg
ZmlsZSBhbmQgYQorICAgICAgICB0aW1lb3V0IG9yIGVsc2UgaXQgd291bGQgbm90IHJlcGVhdCB0
aGUgZXJyb3IgY29uZGl0aW9uLgorCisgICAgICAgIFRoaXMgdGVzdCB3aWxsIG9ubHkgY3Jhc2gg
b24gcGxhdGZvcm1zIChsaWtlIFN5bWJpYW4pIHRoYXQKKyAgICAgICAgZG9uJ3QgYWxsb3cgbm9u
dmlydHVhbCBmdW5jdGlvbnMgdG8gaGF2ZSBhIG51bGwgdGhpcyBwb2ludGVyLgorCisgICAgICAg
ICogcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsdWdpbnMvaGlkZGVuLWlmcmFtZS13aXRoLXN3Zi1wbHVnaW4uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9yZXNvdXJjZXMvaWZyYW1lLWNvbnRlbnQtd2l0
aC1zd2YtcGx1Z2luLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTI3ICBKZXNzaWUgQmVybGluICA8
amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdpbmRvd3Mtc3BlY2lmaWMgcmVzdWx0
cyBmb3IgdGhlIHRlc3QgYWRkZWQgaW4gcjg5NzQ1LgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lu
cy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJh
bWUtd2l0aC1zd2YtcGx1Z2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
IEBACitUaGlzIHBhZ2UgdGVzdHMKK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NjM5MworQnVnIDU2MzkzIC0gQ3Jhc2ggb24gd3d3LmNyYXZlLmNuZXQuY29tIGluIEZy
YW1lVmlldzo6d2luZG93Q2xpcFJlY3QoKQorSXQgY29udGFpbnMgYW4gaWZyYW1lIGVsZW1lbnQg
d2l0aCBkaXNwbGF5Om5vbmUgdGhhdCBsb2FkcyBhbiBIVE1MIHBhZ2Ugd2l0aCBhbiBvYmplY3Qg
ZWxlbWVudCBvZiBhIC5zd2YgZmlsZS4gT2JqZWN0IG11c3QgYmUgaW4gYSBzZXBhcmF0ZSBwYWdl
IChkYXRhOiBzY2hlbWUgd29uJ3Qgc2hvdyBwcm9ibGVtKS4KK0lmIHRoaXMgdGVzdCBkb2VzIG5v
dCBhc3NlcnQgb3IgY3Jhc2ggYW5kIHRoZSBsaW5lIGJlbG93IHJlYWRzICJQQVNTRUQiLCBpdCBw
YXNzZXMuCisKK1BBU1NFRAorCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2hpZGRlbi1pZnJh
bWUtd2l0aC1zd2YtcGx1Z2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lu
cy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGx1Z2lucy9oaWRkZW4taWZyYW1lLXdpdGgtc3dmLXBsdWdpbi5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
fQorCisvLyBUaGlzIHdhcyB0aGUgb25seSB3YXkgdGhhdCBJIHdhcyBhYmxlIHRvIHdhaXQgbG9u
ZyBlbm91Z2gKKy8vIGZvciB0aGUgdGVzdCB0byBjcmFzaCB3aGlsZSBzdGlsbCBydW5uaW5nIHVu
ZGVyIER1bXBSZW5kZXJUcmVlKERSVCkuCit3aW5kb3cuc2V0VGltZW91dCggImJvZHlMb2FkZWQo
KTsiLCAzMDApOworCitmdW5jdGlvbiBsb2cobXNnKQoreworICAgIHZhciBzcGFuID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAn
PGJyIC8+JzsKK30KKworZnVuY3Rpb24gYm9keUxvYWRlZCgpIHsKKyAgICBsb2coIlBBU1NFRCIp
OworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9k
eT4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CisgIDxpZnJhbWUgbmFtZT0idGVzdGlmcmFt
ZSIgaWQ9InRlc3RpZnJhbWUiCisgICAgICAgICAgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLWNvbnRl
bnQtd2l0aC1zd2YtcGx1Z2luLmh0bWwiPgorICA8L2lmcmFtZT4KKzwvZGl2PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj4KK1RoaXMgcGFnZSB0ZXN0czxici8+CitodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTYzOTM8YnIvPgorQnVnIDU2MzkzIC0gQ3Jhc2ggb24gd3d3LmNy
YXZlLmNuZXQuY29tIGluIEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoKTxici8+CitJdCBjb250
YWlucyBhbiBpZnJhbWUgZWxlbWVudCB3aXRoIGRpc3BsYXk6bm9uZSB0aGF0IGxvYWRzIGFuIEhU
TUwgcGFnZQord2l0aCBhbiBvYmplY3QgZWxlbWVudCBvZiBhIC5zd2YgZmlsZS4gT2JqZWN0IG11
c3QgYmUgaW4gYSBzZXBhcmF0ZSBwYWdlCisoZGF0YTogc2NoZW1lIHdvbid0IHNob3cgcHJvYmxl
bSkuPGJyLz4KK0lmIHRoaXMgdGVzdCBkb2VzIG5vdCBhc3NlcnQgb3IgY3Jhc2ggYW5kIHRoZSBs
aW5lIGJlbG93IHJlYWRzICJQQVNTRUQiLCBpdCBwYXNzZXMuCis8L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMv
cmVzb3VyY2VzL2lmcmFtZS1jb250ZW50LXdpdGgtc3dmLXBsdWdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvcmVzb3VyY2VzL2lmcmFtZS1jb250ZW50LXdpdGgtc3dm
LXBsdWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9yZXNvdXJj
ZXMvaWZyYW1lLWNvbnRlbnQtd2l0aC1zd2YtcGx1Z2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOCBAQAorPGh0bWw+Cis8Ym9keT4KKyAgIDxvYmplY3Q+CisgICAgICAgPHBhcmFtIG5h
bWU9Im1vdmllIiB2YWx1ZT0ic2ltcGxlX2JsYW5rLnN3ZiI+CisgICAgICAgPGVtYmVkIHNyYz0i
c2ltcGxlX2JsYW5rLnN3ZiI+PC9lbWJlZD4KKyAgICA8L29iamVjdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>