<?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>35747</bug_id>
          
          <creation_ts>2010-03-04 07:39:33 -0800</creation_ts>
          <short_desc>[GStreamer] on Mac OS use a runloop observer to process the glib context iterations</short_desc>
          <delta_ts>2010-07-05 02:05:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          <blocked>39202</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>196077</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-03-04 07:39:33 -0800</bug_when>
    <thetext>Applications using the GTK+ port will most likely use a glib main loop but in the eventuality of reusing the media player backend from a port not depending on glib main loop we&apos;d need to have a Timer periodically polling messages from the GStreamer bus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196081</commentid>
    <comment_count>1</comment_count>
      <attachid>50023</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-03-04 07:43:46 -0800</bug_when>
    <thetext>Created attachment 50023
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197300</commentid>
    <comment_count>2</comment_count>
      <attachid>50023</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-03-08 13:52:13 -0800</bug_when>
    <thetext>Comment on attachment 50023
proposed patch

Hrm. I don&apos;t know. I don&apos;t like the runtime checking, also the polling time seems to be pretty arbitrary. I&apos;m worried we may end up in that situation in the gtk+ port, in some cases (say, the application hasn&apos;t run gtk_main(), but is running the mainloop itself). Why not have ports that would like to use the GStreamer backend run the glib main loop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197505</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-03-09 02:14:56 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 50023 [details])
&gt; Hrm. I don&apos;t know. I don&apos;t like the runtime checking

What would be a better checking?

&gt; also the polling time
&gt; seems to be pretty arbitrary. 

Agreed, it&apos;d probably need some tweaking

&gt; I&apos;m worried we may end up in that situation in
&gt; the gtk+ port, in some cases (say, the application hasn&apos;t run gtk_main(), but
&gt; is running the mainloop itself). Why not have ports that would like to use the
&gt; GStreamer backend run the glib main loop?

I&apos;m not sure this would be an option for, say, the mac or win port :) It&apos;d be nice to propose the GStreamer backend as an optional replacement for these ports and avoiding use of a glib loop inside apps running on these platforms would be good, I think...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198131</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-03-10 07:38:44 -0800</bug_when>
    <thetext>(In reply to comment #3)

&gt; &gt; I&apos;m worried we may end up in that situation in
&gt; &gt; the gtk+ port, in some cases (say, the application hasn&apos;t run gtk_main(), but
&gt; &gt; is running the mainloop itself). Why not have ports that would like to use the
&gt; &gt; GStreamer backend run the glib main loop?
&gt; 
&gt; I&apos;m not sure this would be an option for, say, the mac or win port :) It&apos;d be
&gt; nice to propose the GStreamer backend as an optional replacement for these
&gt; ports and avoiding use of a glib loop inside apps running on these platforms
&gt; would be good, I think...

Another approach would be to do the polling only on win and mac platforms (#if PLATFORM(WIN)...). So the GTK+ port wouldn&apos;t be affected, as webkitgtk apps use a glib mainloop in most (all?) cases.

BTW I tested the polling on my laptop and couldn&apos;t really notice a difference in terms of CPU usage, apart from the obvious overhead of wakeups :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198140</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-03-10 07:52:26 -0800</bug_when>
    <thetext>Eric, could you share some thoughts on this? =D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198156</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-03-10 08:34:06 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Eric, could you share some thoughts on this? =D

Well, I know *nothing* about the gtk main loop but I wonder if it is a good idea to do this by default, even on Mac in Windows. 

I assume anyone using WebKit with the GStreamer backend in their app will be building from source, so why not make it a compile time option?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198157</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-03-10 08:34:55 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; BTW I tested the polling on my laptop and couldn&apos;t really notice a difference
&gt; in terms of CPU usage, apart from the obvious overhead of wakeups :)

I&apos;ll bet you weren&apos;t monitoring battery consumption ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198736</commentid>
    <comment_count>8</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-03-11 12:18:00 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Eric, could you share some thoughts on this? =D
&gt; 
&gt; Well, I know *nothing* about the gtk main loop but I wonder if it is a good
&gt; idea to do this by default, even on Mac in Windows. 

My question is more along the lines of - would it be a problem to add running the glib main loop along with the win/mac mainloop if you decide to build those ports with the GStreamer backend included? That would mean adding this call:

    g_main_context_iteration(NULL, FALSE);

To these functions:

[WebCore/platform/mac/EventLoopMac.mm]
void EventLoop::cycle()
{
    // FIXME: Should this use NSRunLoopCommonModes? Switching to NSRunLoopCommonModes causes Safari to hang in a tight loop.
    [NSApp setWindowsNeedUpdate:YES];
    NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantFuture] inMode:NSDefaultRunLoopMode dequeue:YES];
    [NSApp sendEvent:event];
}

[WebCore/platform/win/EventLoopWin.cpp]
void EventLoop::cycle()
{
    MSG msg;
    if (!GetMessage(&amp;msg, 0, 0, 0)) {
        m_ended = true;
        return;
    }

    TranslateMessage(&amp;msg);
    DispatchMessage(&amp;msg);
}

&gt; I assume anyone using WebKit with the GStreamer backend in their app will be
&gt; building from source, so why not make it a compile time option?

Yes, build time option defeats runtime choice, IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198752</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-03-11 13:01:19 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; Eric, could you share some thoughts on this? =D
&gt; &gt; 
&gt; &gt; Well, I know *nothing* about the gtk main loop but I wonder if it is a good
&gt; &gt; idea to do this by default, even on Mac in Windows. 
&gt; 
&gt; My question is more along the lines of - would it be a problem to add running
&gt; the glib main loop along with the win/mac mainloop if you decide to build those
&gt; ports with the GStreamer backend included? That would mean adding this call:
&gt; 
I don&apos;t know :-(

&gt; &gt; I assume anyone using WebKit with the GStreamer backend in their app will be
&gt; &gt; building from source, so why not make it a compile time option?
&gt; 
&gt; Yes, build time option defeats runtime choice, IMO.
My point was that *if* people that want to use the GStreamer backend are likely to build WebKit, they can easily enable polling if their app doesn&apos;t already run the gtk main loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212157</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-04-13 16:55:05 -0700</bug_when>
    <thetext>Some news about this. I am now experimenting on a new approach, setting a synchronous handler on the gst bus with gst_bus_set_sync_handler() and processing the message in the mainloop using a one-shot timer. Songbird uses a similar approach.

It works fine if I use a g_timeout_add but not with the higher level WebCore Timer API... Trying to figure out why the timer callback is never fired :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226705</commentid>
    <comment_count>11</comment_count>
      <attachid>56226</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-17 02:25:13 -0700</bug_when>
    <thetext>Created attachment 56226
proposed patch

I had some success with this patch. Would it make sense to extract it
from the player code? The EventLoop code mentionned by Gustavo doesn&apos;t
seem to be used by WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236812</commentid>
    <comment_count>12</comment_count>
      <attachid>56226</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-06-11 07:09:10 -0700</bug_when>
    <thetext>Comment on attachment 56226
proposed patch

I don&apos;t know a lot about the mac part of this, but it sounds sane. I do think this should be extracted from the player and added to the main loop part of the Mac port, though, since running the glib mainloop affects more and is useful to more than just the player.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236814</commentid>
    <comment_count>13</comment_count>
      <attachid>56226</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-06-11 07:15:06 -0700</bug_when>
    <thetext>Comment on attachment 56226
proposed patch

Thanks Gustavo, I&apos;ll see if I can do that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241736</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-06-23 01:14:57 -0700</bug_when>
    <thetext>This bug is specific to Mac OS, a similar approach would be needed on Windows though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241770</commentid>
    <comment_count>15</comment_count>
      <attachid>59495</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-06-23 02:15:51 -0700</bug_when>
    <thetext>Created attachment 59495
GLib runloop observer in WebView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245457</commentid>
    <comment_count>16</comment_count>
      <attachid>59495</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-07-01 11:54:26 -0700</bug_when>
    <thetext>Comment on attachment 59495
GLib runloop observer in WebView

glib-wise looks sane, might want to poke someone from the mac camp to look at the rest =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245948</commentid>
    <comment_count>17</comment_count>
      <attachid>59495</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-07-02 10:15:40 -0700</bug_when>
    <thetext>Comment on attachment 59495
GLib runloop observer in WebView

The Mac specific code look OK to me, so marking r+ since kov signed off on the glib parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246519</commentid>
    <comment_count>18</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-07-05 00:20:16 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/62476
Thanks for the review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246535</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 02:00:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62476 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246539</commentid>
    <comment_count>20</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-07-05 02:05:01 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; http://trac.webkit.org/changeset/62476 might have broken Leopard Intel Release (Tests)

I don&apos;t see how this patch could break any test because the GSTREAMER feature is not enabled yet in the build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50023</attachid>
            <date>2010-03-04 07:43:46 -0800</date>
            <delta_ts>2010-06-23 02:15:51 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>5019</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyMjIwYWI1NzFjY2M3OGVkZWQ4OTdjOGU4ZGZmNjU0NTkxMThhZjRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDQgTWFyIDIwMTAgMTU6MTc6MTEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgMzUgKysrKysrKysrKysrKysrKystLQogLi4u
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAgICAzICsr
CiAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDE3
N2FhLi5jYmJjOWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTAzLTA0ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbR1N0cmVhbWVyXSBQb2xsIG1lc3NhZ2VzIGZyb20gdGhlIGJ1cyBp
ZiB0aGUgcGxheWVyIGlzIG5vdCBydW5uZWQgaW5zaWRlIGEgZ2xpYiBtYWlubG9vcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU3NDcKKworICAgICAg
ICBQb2xsIEdTdHJlYW1lciBtZXNzYWdlcyBlYWNoIDUwbXMgaWYgdGhlIG1lZGlhIHBsYXllciBp
cyBub3QKKyAgICAgICAgcnVubmluZyBpbnNpZGUgYSBnbGliIG1haW4gbG9vcC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpNZWRpYVBsYXll
clByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQ
bGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6cG9s
bE1lc3NhZ2VzVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGU6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAxMC0wMy0wNCAgQW5kcmV5
IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBh
dmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBm
ZTRiMmY5Li5jZTEzYzgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
QEAgLTMxNCw2ICszMTQsNyBAQCBNZWRpYVBsYXllclByaXZhdGU6Ok1lZGlhUGxheWVyUHJpdmF0
ZShNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV9maWxsVGltZW91dElkKDApCiAgICAgLCBt
X21heFRpbWVMb2FkZWQoMCkKICAgICAsIG1fZmlsbFN0YXR1cygwKQorICAgICwgbV9wb2xsTWVz
c2FnZXNUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlOjpwb2xsTWVzc2FnZXNUaW1lckZp
cmVkKQogewogICAgIGlmIChkb0dzdEluaXQoKSkKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbigp
OwpAQCAtMzIxLDYgKzMyMiw5IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAKIE1lZGlhUGxheWVyUHJpdmF0ZTo6fk1lZGlhUGxh
eWVyUHJpdmF0ZSgpCiB7CisgICAgaWYgKG1fcG9sbE1lc3NhZ2VzVGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgbV9wb2xsTWVzc2FnZXNUaW1lci5zdG9wKCk7CisKICAgICBpZiAobV9maWxsVGlt
ZW91dElkKSB7CiAgICAgICAgIGdfc291cmNlX3JlbW92ZShtX2ZpbGxUaW1lb3V0SWQpOwogICAg
ICAgICBtX2ZpbGxUaW1lb3V0SWQgPSAwOwpAQCAtMTM0NSwxNSArMTM0OSwzOCBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2Fk
KQogICAgICAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAiZmxhZ3MiLCBmbGFncyB8IEdTVF9Q
TEFZX0ZMQUdfRE9XTkxPQUQsIE5VTEwpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
cG9sbE1lc3NhZ2VzVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGU+KiB0aW1lcikK
K3sKKyAgICBHc3RCdXMqIGJ1cyA9IGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORSht
X3BsYXlCaW4pKTsKKworICAgIHdoaWxlIChnc3RfYnVzX2hhdmVfcGVuZGluZyhidXMpKSB7Cisg
ICAgICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfYnVzX3BvcChidXMpOworICAgICAgICBp
ZiAobWVzc2FnZSkgeworICAgICAgICAgICAgbWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxi
YWNrKGJ1cywgbWVzc2FnZSwgdGhpcyk7CisgICAgICAgICAgICBnc3RfbWVzc2FnZV91bnJlZiht
ZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGdzdF9vYmplY3RfdW5yZWYoYnVzKTsK
K30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmNyZWF0ZUdTVFBsYXlCaW4oKQogewogICAg
IEFTU0VSVCghbV9wbGF5QmluKTsKICAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoInBsYXliaW4yIiwgInBsYXkiKTsKIAotICAgIEdzdEJ1cyogYnVzID0gZ3N0X3BpcGVs
aW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGxheUJpbikpOwotICAgIGdzdF9idXNfYWRkX3Np
Z25hbF93YXRjaChidXMpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZSIsIEdf
Q0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7Ci0gICAg
Z3N0X29iamVjdF91bnJlZihidXMpOworICAgIGlmIChnX21haW5fZGVwdGgoKSkgeworICAgICAg
ICAvLyBJbnNpZGUgYSBtYWluIGxvb3AsIHdlIGNhbiBhZGQgYSBidXMgc2lnbmFsIHdhdGNoIGFu
ZAorICAgICAgICAvLyBuaWNlbHkgYmVpbmcgbm90aWZpZWQgb2YgR1N0cmVhbWVyIG1lc3NhZ2Vz
LgorICAgICAgICBHc3RCdXMqIGJ1cyA9IGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElO
RShtX3BsYXlCaW4pKTsKKyAgICAgICAgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKGJ1cyk7Cisg
ICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZSIsIEdfQ0FMTEJBQ0sobWVkaWFQ
bGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CisgICAgICAgIGdzdF9vYmplY3Rf
dW5yZWYoYnVzKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBOb3QgaW5zaWRlIGEgbWFpbiBs
b29wLCBzdGFydCBhIFRpbWVyIHRvIHBlcmlvZGljYWxseSBwb2xsCisgICAgICAgIC8vIGZvciBt
ZXNzYWdlcy4KKyAgICAgICAgbV9wb2xsTWVzc2FnZXNUaW1lci5zdGFydFJlcGVhdGluZygwLjA1
MCk7CisgICAgfQogCiAgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnZv
bHVtZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNr
KSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnNvdXJj
ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKSwg
dGhpcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDQwMWRkNjUuLmJj
NGU1NGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0xMzcsNiArMTM3
LDggQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZSB7CiAKICAgICAgICAgICAgIHZvaWQgcHJvY2Vzc0J1ZmZlcmluZ1N0YXRzKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpOwogCisgICAgICAgICAgICB2b2lkIHBvbGxNZXNzYWdlc1RpbWVy
RmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlPiopOworCiAgICAgICAgIHByaXZhdGU6CiAg
ICAgICAgICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAgICAgICAgICAgICBHc3RFbGVtZW50
KiBtX3BsYXlCaW47CkBAIC0xNjcsNiArMTY5LDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBndWlu
dCBtX2ZpbGxUaW1lb3V0SWQ7CiAgICAgICAgICAgICBmbG9hdCBtX21heFRpbWVMb2FkZWQ7CiAg
ICAgICAgICAgICBnZG91YmxlIG1fZmlsbFN0YXR1czsKKyAgICAgICAgICAgIFRpbWVyPE1lZGlh
UGxheWVyUHJpdmF0ZT4gbV9wb2xsTWVzc2FnZXNUaW1lcjsKICAgICB9OwogfQogCi0tIAoxLjYu
My4z
</data>
<flag name="review"
          id="33050"
          type_id="1"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56226</attachid>
            <date>2010-05-17 02:25:13 -0700</date>
            <delta_ts>2010-06-23 02:15:51 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>3920</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5YWVhY2IwNjg1MWQ0OGI0NzlmNjcxMTQ2NTc0M2RmMGUxNDAxOGFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDI4IEFwciAyMDEwIDEyOjEwOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICAyNSArKysrKysrKysrKysrKysrKysr
KwogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAg
ICAzICsrCiAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAwZjdhOTgxLi44OGIyODI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA1LTE3ICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR1N0cmVhbWVyXSBQb2xsIG1lc3NhZ2VzIGZyb20gdGhl
IGJ1cyBpZiB0aGUgcGxheWVyIGlzIG5vdCBydW5uZWQgaW5zaWRlIGEgZ2xpYiBtYWlubG9vcAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU3NDcKKwor
ICAgICAgICBBZGRlZCBhIHJ1bmxvb3Agb2JzZXJ2ZXIgdGhhdCBlbnN1cmVzIGl0ZXJhdGlvbnMg
b24gdGhlIGdsaWIgbWFpbgorICAgICAgICBjb250ZXh0IGFyZSBkb25lLiBUaGlzIGFsbG93cywg
YW1vbmdzdCBvdGhlciB0aGluZ3MsIHRvIG1ha2UgdGhlCisgICAgICAgIGdzdHJlYW1lciBidXMg
bWVzc2FnZXMgdG8gc2lnbmFscyB3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6cnVuTG9vcE9ic2VydmVyQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5
QmluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmg6CisKIDIwMTAtMDUtMTYgIENocmlzIEplcmRvbmVrICA8Y2plcmRv
bmVrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgPUFkYW0gQmFydGguCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4ZjZjOWUwLi5iYWMwN2Q4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTMwOSw2ICszMDksMTEg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKIHsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBDRlJ1bkxvb3BPYnNlcnZlckludmFsaWRhdGUobV9ydW5Mb29wT2JzZXJ2ZXIpOworI2VuZGlm
CisKICAgICBpZiAobV9maWxsVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9maWxsVGltZXIu
c3RvcCgpOwogCkBAIC0xMzY3LDExICsxMzcyLDMxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCiAgICAg
fQogfQogCisjaWYgUExBVEZPUk0oTUFDKQorc3RhdGljIHZvaWQgcnVuTG9vcE9ic2VydmVyQ2Fs
bGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgb2JzZXJ2ZXIsIENGUnVuTG9vcEFjdGl2aXR5IGFj
dGl2aXR5LCB2b2lkICppbmZvKQoreworICAgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbigwLCBG
QUxTRSk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNy
ZWF0ZUdTVFBsYXlCaW4oKQogewogICAgIEFTU0VSVCghbV9wbGF5QmluKTsKICAgICBtX3BsYXlC
aW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInBsYXliaW4yIiwgInBsYXkiKTsKIAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBOU1J1bkxvb3AqIG15UnVuTG9vcCA9IFtOU1J1bkxvb3AgY3Vy
cmVudFJ1bkxvb3BdOworCisgICAgLy8gQ3JlYXRlIGEgcnVuIGxvb3Agb2JzZXJ2ZXIgYW5kIGF0
dGFjaCBpdCB0byB0aGUgcnVuIGxvb3AuCisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJDb250ZXh0IGNv
bnRleHQgPSB7MCwgdGhpcywgMCwgMCwgMH07CisgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBDRlJ1
bkxvb3BPYnNlcnZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZSdW5Mb29wQmVmb3Jl
V2FpdGluZywgWUVTLCAwLCAmcnVuTG9vcE9ic2VydmVyQ2FsbGJhY2ssICZjb250ZXh0KTsKKwor
ICAgIGlmIChtX3J1bkxvb3BPYnNlcnZlcikgeworICAgICAgICBDRlJ1bkxvb3BSZWYgY2ZMb29w
ID0gW215UnVuTG9vcCBnZXRDRlJ1bkxvb3BdOworICAgICAgICBDRlJ1bkxvb3BBZGRPYnNlcnZl
cihjZkxvb3AsIG1fcnVuTG9vcE9ic2VydmVyLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUpOworICAg
IH0KKyNlbmRpZgorCiAgICAgR3N0QnVzKiBidXMgPSBnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1Rf
UElQRUxJTkUobV9wbGF5QmluKSk7CiAgICAgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKGJ1cyk7
CiAgICAgZ19zaWduYWxfY29ubmVjdChidXMsICJtZXNzYWdlIiwgR19DQUxMQkFDSyhtZWRpYVBs
YXllclByaXZhdGVNZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKaW5kZXggMDY1MTlmYS4uMzFiYzYxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTE3Miw2ICsxNzIsOSBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKICAgICAg
ICAgICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKICAgICAgICAgICAgIGJvb2wg
bV9kZWxheWluZ0xvYWQ7CiAgICAgICAgICAgICBib29sIG1fbWVkaWFEdXJhdGlvbktub3duOwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgICAgIENGUnVuTG9vcE9ic2VydmVyUmVmIG1fcnVu
TG9vcE9ic2VydmVyOworI2VuZGlmCiAgICAgfTsKIH0KIAotLSAKMS43LjE=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59495</attachid>
            <date>2010-06-23 02:15:51 -0700</date>
            <delta_ts>2010-07-02 10:15:39 -0700</delta_ts>
            <desc>GLib runloop observer in WebView</desc>
            <filename>GLib-runloop-observer-in-WebView.patch</filename>
            <type>text/plain</type>
            <size>5533</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4MDRlOTZmOGQ5YzU0Yjc2NjllMTY2NThlZGY5MzY2NzU1NWJkNzkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDIzIEp1biAyMDEwIDEwOjA5OjAzICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
R0xpYiBydW5sb29wIG9ic2VydmVyIGluIFdlYlZpZXcKCi0tLQogV2ViS2l0L21hYy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKysrKysrKysrCiBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSAgICAgICAgfCAgIDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oICAgICB8ICAgIDMgKysKIFdl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCB8ICAgIDQgKysKIDQgZmlsZXMgY2hh
bmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGRjM2Y0M2MuLmY0
NjY3ZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDYtMjMgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHU3RyZWFtZXJdIG9uIE1hYyBPUyB1c2UgYSBydW5sb29wIG9ic2Vy
dmVyIHRvIHByb2Nlc3MgdGhlIGdsaWIgY29udGV4dCBpdGVyYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTc0NworCisgICAgICAgIElmIFZJ
REVPIGFuZCBHU1RSRUFNRVIgYXJlIGVuYWJsZWQsIG1ha2UgdGhlIFdlYlZpZXcgc3RhcnQgYQor
ICAgICAgICBydW5sb29wIG9ic2VydmVyIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBnbGliIG1haW4g
Y29udGV4dAorICAgICAgICBpdGVyYXRpb25zLiBUaG9zZSBhcmUgbmVlZGVkIGJ5IHRoZSBHU3Ry
ZWFtZXIgcGxheWVyIG9ubHkgYXQgdGhlCisgICAgICAgIG1vbWVudCBidXQgY291bGQgbGF0ZXIg
YmUgdXNlZCBmb3Igb3RoZXIgR0xpYi1kZXBlbmRhbnQgY29tcG9uZW50cworICAgICAgICBpZiBy
ZXF1aXJlZC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTp1c2VzRG9j
dW1lbnRWaWV3czpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfY2xvc2VdKToKKyAgICAgICAgKC1b
V2ViVmlldyBfY2xlYXJHbGliTG9vcE9ic2VydmVyXSk6CisgICAgICAgIChnbGliQ29udGV4dEl0
ZXJhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVHbGliQ29udGV4
dEl0ZXJhdGlvbnNdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAxMC0wNi0yMyAgWXV6byBGdWppc2hp
bWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBI
YW1hamkuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDYzMWRkNjMuLjI0YTE5MWMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0xNzgsNiArMTc4LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xv
Y2F0aW9uRXJyb3IuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVB
TUVSKQorI2ltcG9ydCA8Z2xpYi5oPgorI2VuZGlmCisKIEBpbnRlcmZhY2UgTlNTcGVsbENoZWNr
ZXIgKFdlYk5TU3BlbGxDaGVja2VyRGV0YWlscykKIC0gKHZvaWQpX3ByZWZsaWdodENob3NlblNw
ZWxsU2VydmVyOwogQGVuZApAQCAtMzY5LDYgKzM3Myw5IEBAIHN0YXRpYyBjb25zdCBjaGFyIHdl
YlZpZXdJc09wZW5bXSA9ICJBdCBsZWFzdCBvbmUgV2ViVmlldyBpcyBzdGlsbCBvcGVuLiI7CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogLSAodm9pZClfY2xlYXJMYXllclN5bmNM
b29wT2JzZXJ2ZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIp
CistICh2b2lkKV9jbGVhckdsaWJMb29wT2JzZXJ2ZXI7CisjZW5kaWYKIEBlbmQKIAogc3RhdGlj
IHZvaWQgcGF0Y2hNYWlsUmVtb3ZlQXR0cmlidXRlc01ldGhvZCgpOwpAQCAtNzIyLDYgKzcyOSwx
MSBAQCBzdGF0aWMgYm9vbCBzaG91bGRFbmFibGVMb2FkRGVmZXJyaW5nKCkKIAogICAgIGlmICgh
V2ViS2l0TGlua2VkT25PckFmdGVyKFdFQktJVF9GSVJTVF9WRVJTSU9OX1dJVEhPVVRfQ09OVEVO
VF9TTklGRklOR19GT1JfRklMRV9VUkxTKSkKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmZvcmNl
Q29udGVudFNuaWZmaW5nKCk7CisKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIp
CisgICAgW3NlbGYgX3NjaGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25zXTsKKyNlbmRpZgorCiB9
CiAKIC0gKGlkKV9pbml0V2l0aEZyYW1lOihOU1JlY3QpZiBmcmFtZU5hbWU6KE5TU3RyaW5nICop
ZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdHJpbmcgKilncm91cE5hbWUgdXNlc0RvY3VtZW50Vmll
d3M6KEJPT0wpdXNlc0RvY3VtZW50Vmlld3MKQEAgLTExMTksNiArMTEzMSwxMCBAQCBzdGF0aWMg
Ym9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQoKQogICAgIFtzZWxmIF9jbGVhckxheWVy
U3luY0xvb3BPYnNlcnZlcl07CiAjZW5kaWYKICAgICAKKyNpZiBFTkFCTEUoVklERU8pICYmIFVT
RShHU1RSRUFNRVIpCisgICAgW3NlbGYgX2NsZWFyR2xpYkxvb3BPYnNlcnZlcl07CisjZW5kaWYK
KwogICAgIFtbTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBy
ZW1vdmVPYnNlcnZlcjpzZWxmXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwogCkBAIC01NDU2LDYgKzU0NzIsMTggQEAgc3Rh
dGljIFdlYkZyYW1lVmlldyAqY29udGFpbmluZ0ZyYW1lVmlldyhOU1ZpZXcgKnZpZXcpCiAgICAg
X3ByaXZhdGUtPmxheWVyU3luY1J1bkxvb3BPYnNlcnZlciA9IDA7CiB9CiAjZW5kaWYKKworI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKKy0gKHZvaWQpX2NsZWFyR2xpYkxvb3BP
YnNlcnZlcgoreworICAgIGlmICghX3ByaXZhdGUtPmdsaWJSdW5Mb29wT2JzZXJ2ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIENGUnVuTG9vcE9ic2VydmVySW52YWxpZGF0ZShfcHJpdmF0ZS0+
Z2xpYlJ1bkxvb3BPYnNlcnZlcik7CisgICAgQ0ZSZWxlYXNlKF9wcml2YXRlLT5nbGliUnVuTG9v
cE9ic2VydmVyKTsKKyAgICBfcHJpdmF0ZS0+Z2xpYlJ1bkxvb3BPYnNlcnZlciA9IDA7Cit9Cisj
ZW5kaWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZXcgKFdlYlZpZXdJbnRlcm5hbCkK
QEAgLTU3NjMsNiArNTc5MSwzMyBAQCBzdGF0aWMgdm9pZCBsYXllclN5bmNSdW5Mb29wT2JzZXJ2
ZXJDYWxsQmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aQogCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKKworc3RhdGljIHZvaWQgZ2xp
YkNvbnRleHRJdGVyYXRpb25DYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29w
QWN0aXZpdHksIHZvaWQqKQoreworICAgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbigwLCBGQUxT
RSk7Cit9CisKKy0gKHZvaWQpX3NjaGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25zCit7CisgICAg
aWYgKF9wcml2YXRlLT5nbGliUnVuTG9vcE9ic2VydmVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU1J1bkxvb3AqIG15UnVuTG9vcCA9IFtOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdOworCisg
ICAgLy8gQ3JlYXRlIGEgcnVuIGxvb3Agb2JzZXJ2ZXIgYW5kIGF0dGFjaCBpdCB0byB0aGUgcnVu
IGxvb3AuCisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJDb250ZXh0IGNvbnRleHQgPSB7MCwgc2VsZiwg
MCwgMCwgMH07CisgICAgX3ByaXZhdGUtPmdsaWJSdW5Mb29wT2JzZXJ2ZXIgPSBDRlJ1bkxvb3BP
YnNlcnZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZSdW5Mb29wQmVmb3JlV2FpdGlu
ZywgWUVTLCAwLCAmZ2xpYkNvbnRleHRJdGVyYXRpb25DYWxsYmFjaywgJmNvbnRleHQpOworCisg
ICAgaWYgKF9wcml2YXRlLT5nbGliUnVuTG9vcE9ic2VydmVyKSB7CisgICAgICAgIENGUnVuTG9v
cFJlZiBjZkxvb3AgPSBbbXlSdW5Mb29wIGdldENGUnVuTG9vcF07CisgICAgICAgIENGUnVuTG9v
cEFkZE9ic2VydmVyKGNmTG9vcCwgX3ByaXZhdGUtPmdsaWJSdW5Mb29wT2JzZXJ2ZXIsIGtDRlJ1
bkxvb3BEZWZhdWx0TW9kZSk7CisgICAgfQorCit9CisjZW5kaWYKKworCiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJWaWV3IChXZWJWaWV3R2VvbG9jYXRpb24pCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCmluZGV4IDJiNTFmM2MuLjA2ZmVlNGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5o
CkBAIC0xNjksNiArMTY5LDkgQEAgZXh0ZXJuIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50
OwogICAgIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgKmZ1bGxzY3JlZW5Db250cm9sbGVy
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCisgICAgQ0ZS
dW5Mb29wT2JzZXJ2ZXJSZWYgZ2xpYlJ1bkxvb3BPYnNlcnZlcjsKKyNlbmRpZgogICAgIGlkPFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXI+IF9nZW9sb2NhdGlvblByb3ZpZGVyOwogfQogQGVuZApkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDQ2NDM1NzMuLmJmOWI3MzIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTg2LDYgKzg2LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmM7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKKy0gKHZvaWQpX3NjaGVk
dWxlR2xpYkNvbnRleHRJdGVyYXRpb25zOworI2VuZGlmCisKIEBlbmQKIAogI2VuZGlmCi0tIAox
LjcuMQ==
</data>
<flag name="review"
          id="46385"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>