<?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>68817</bug_id>
          
          <creation_ts>2011-09-26 11:36:39 -0700</creation_ts>
          <short_desc>Add Document.webkitIsFullScreenEnabled property.</short_desc>
          <delta_ts>2015-04-27 14:35:10 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>80660</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jeremya</cc>
    
    <cc>me</cc>
    
    <cc>roc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>473236</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-26 11:36:39 -0700</bug_when>
    <thetext>Add Document.webkitIsFullScreenEnabled property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473247</commentid>
    <comment_count>1</comment_count>
      <attachid>108698</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-26 11:41:52 -0700</bug_when>
    <thetext>Created attachment 108698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473280</commentid>
    <comment_count>2</comment_count>
      <attachid>108698</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 12:13:37 -0700</bug_when>
    <thetext>Comment on attachment 108698
Patch

Attachment 108698 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9843913</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473288</commentid>
    <comment_count>3</comment_count>
      <attachid>108707</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-26 12:23:46 -0700</bug_when>
    <thetext>Created attachment 108707
Patch

Added missing entry from RuntimeEnabledFeatures.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473658</commentid>
    <comment_count>4</comment_count>
      <attachid>108707</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-26 20:23:41 -0700</bug_when>
    <thetext>Comment on attachment 108707
Patch

This doesn&apos;t seem like a regular way to check for features at runtime. Is there a reason why a check like &apos;if (&quot;webkitIsFullScreen&quot; in document)&apos; won&apos;t work?

I&apos;m sufficiently sure that this isn&apos;t the way to go to say r-, but I could be missing something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473665</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-26 20:38:44 -0700</bug_when>
    <thetext>I think the “enabled” concept here is more about whether the user has turned it off or something along those lines, not whether the engine has the capability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473951</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-27 08:48:05 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think the “enabled” concept here is more about whether the user has turned it off or something along those lines, not whether the engine has the capability.

Yes, this is right.  It&apos;s a way to know in advance whether the browser will reject a full-screen request outright.  If a user has checked a &quot;never allow this&quot; box, for example, this property would return false.  I originally argued for this property to be called &quot;fullScreenAllowed&quot;, but roc pointed out that there&apos;s no way to know in advance whether a given request will be allowed, or even acted upon.  So &quot;enabled&quot; it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473954</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-27 08:50:12 -0700</bug_when>
    <thetext>Another use case mentioned was that one browser vender is planning on disabling full screen &quot;when a windowed plugin is present in the document.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473962</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-27 09:03:15 -0700</bug_when>
    <thetext>I still don&apos;t see why &apos;if (&quot;webkitIsFullScreen&quot; in document)&apos; wouldn&apos;t work. We don&apos;t expose other browser preferences like this, and it&apos;s unclear why fullscreen needs to be different.

Is it because EnabledAtRuntime is only implemented for v8 at the moment, not yet for JSC (bug 52011)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473978</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-27 09:23:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I still don&apos;t see why &apos;if (&quot;webkitIsFullScreen&quot; in document)&apos; wouldn&apos;t work.

I think it might work, but to me it seems inelegant.

Leaving something out entirely is a good way to reflect the fact that a feature doesn’t exist at all in a web engine; it’s a great way to be forward-compatible with new features.

Leaving things out dynamically based on policies and user settings seems a little odd, and not a natural way to communicate policy to websites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474025</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-27 10:08:20 -0700</bug_when>
    <thetext>I have some additional considerations:

- A better name could make this more palatable. Jer mentioned that this is not only about the feature being enabled in preferences, but about a browser prediction whether it&apos;s likely to honor the request (e.g. depending on page content).

- It&apos;s not really clear why page authors would care about such browser prediction though. Developers test in major browsers to ensure that their site works; they are not commonly handling any error cases. There are many important implementation specific limitations in browsers (e.g. whether a page is stored in b/f cache), and we don&apos;t tell about those in advance.

- Having a preference accessor does not match other related specs. E.g. Mouse Lock doesn&apos;t tell you whether it&apos;s going to succeed - instead, it reports after the fact. For a common case like full screen game, you really need both, so disabling parts of your own UI based on fullscreen prediction alone is insufficient.

- We don&apos;t tell the page in advance whether we&apos;re going to block pop-ups or 3rd party cookies, why do we tell that about fullscreen?

- I see your point about the difference between unimplemented features and ones that are enabled at runtime. A Web page may indeed want to have a different behavior in these cases (prompting the user to enable the feature), although it seems unlikely to be very common, especially long-term. I don&apos;t necessarily agree that it&apos;s unnatural - there is not that much difference for a Web page between a browser that doesn&apos;t support a feature and one that has it fully disabled at runtime, so detecting these with one test makes sense to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474138</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-27 12:16:04 -0700</bug_when>
    <thetext>Also, if we expose a browser preference with the goal of letting pages change appearance or behavior based on it, then perhaps we also need a callback when it changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474189</commentid>
    <comment_count>12</comment_count>
    <who name="Robert O&apos;Callahan">roc</who>
    <bug_when>2011-09-27 13:31:24 -0700</bug_when>
    <thetext>Shouldn&apos;t the Webkit API be webkitFullScreenEnabled? There&apos;s no &quot;is&quot; in the proposed attribute. Doesn&apos;t really matter given the prefixing, but may confuse authors later.

(In reply to comment #10)
&gt; - A better name could make this more palatable. Jer mentioned that this is
&gt; not only about the feature being enabled in preferences, but about a browser
&gt; prediction whether it&apos;s likely to honor the request (e.g. depending on page
&gt; content).

To clarify: when fullScreenEnabled returns false, the browser guarantees that a requestFullScreen made at that moment will be denied. When fullScreenEnabled returns true, no guarantees are made.

Can you suggest a better name?

&gt; - It&apos;s not really clear why page authors would care about such browser prediction though. Developers test in major browsers to ensure that their site works; they are not commonly handling any error cases. There are many important implementation specific limitations in browsers (e.g. whether a page is stored in b/f cache), and we don&apos;t tell about those in advance.

Youtube is requesting this feature, primarily so that a player in an &lt;iframe&gt; lacking the &quot;allowfullscreen&quot; attribute can alter its UI due to fullscreen being disabled.

&gt; - Having a preference accessor does not match other related specs. E.g. Mouse Lock doesn&apos;t tell you whether it&apos;s going to succeed - instead, it reports after the fact. For a common case like full screen game, you really need both, so disabling parts of your own UI based on fullscreen prediction alone is insufficient.

Yes, we&apos;ll still be reporting after the fact as well. But I think it still make sense to remove a fullscreen button from your UI when you *know* it won&apos;t work.

&gt; - We don&apos;t tell the page in advance whether we&apos;re going to block pop-ups or 3rd party cookies, why do we tell that about fullscreen?

Perhaps people have not asked for an API to detect whether cookies or pop-ups are enabled?

The value of fullScreenEnabled can change dynamically, e.g. when a containing page adds or removes the &quot;allowfullscreen&quot; attribute of an &lt;iframe&gt;. I don&apos;t think dynamically adding or removing full-screen-related properties and/or methods from the document is appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474283</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-27 15:19:01 -0700</bug_when>
    <thetext>I didn&apos;t know that this is also affected by an iframe attribute. Hiding fullscreen properties for feature detection is clearly inappropriate in that case.

Presumably the reason why YouTube code cannot just check presence of the attribute on frame element is that the expected use case is cross origin, correct?

Given that the result combines several entirely unrelated checks into an implementation specific policy, the &quot;enabled&quot; name seems extremely confusing, whether I personally have a better suggestion or not:
- user preference;
- iframe property;
- presence of windowed plug-ins;
- something more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474288</commentid>
    <comment_count>14</comment_count>
    <who name="Robert O&apos;Callahan">roc</who>
    <bug_when>2011-09-27 15:29:00 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Presumably the reason why YouTube code cannot just check presence of the attribute on frame element is that the expected use case is cross origin, correct?

Correct.

&gt; Given that the result combines several entirely unrelated checks into an implementation specific policy, the &quot;enabled&quot; name seems extremely confusing, whether I personally have a better suggestion or not:
&gt; - user preference;
&gt; - iframe property;
&gt; - presence of windowed plug-ins;
&gt; - something more?

The semantics are well-defined, and I think not confusing, as described in comment #12: &quot;when fullScreenEnabled returns false, the browser guarantees that a requestFullScreen made at that moment will be denied.&quot; So we just need to find the best name for it. The name should avoid suggesting requestFullScreen will definitely be granted. Several people thought &quot;enabled&quot; was the best term for that. If no-one can think of a better one, then I think we should go with the best we have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491243</commentid>
    <comment_count>15</comment_count>
    <who name="Brad Dougherty">me</who>
    <bug_when>2011-10-26 16:04:56 -0700</bug_when>
    <thetext>We&apos;d love to have this for Vimeo as well. I think that fullScreenEnabled makes sense. The sooner the better, as the experience sucks if our full screen button is there but doesn&apos;t work if the attribute isn&apos;t on the iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089196</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-27 14:35:10 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 80660 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108698</attachid>
            <date>2011-09-26 11:41:52 -0700</date>
            <delta_ts>2011-09-26 12:23:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68817-20110926114151.patch</filename>
            <type>text/plain</type>
            <size>4860</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3NDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYzI3NWU2NjAyNDU5MjViY2E4MDY2
NDA3YWNlMmM1MzRkNWI0YTM5Li5iNjNkMjBiYTVmZDlmYjFiNzkwZjY4YTdiNDVlNzk1M2RmMGNj
YzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMDktMjYgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIERvY3VtZW50LndlYmtpdElzRnVsbFNjcmVl
bkVuYWJsZWQgcHJvcGVydHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODgxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1hcGktZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLmh0bWw6CisKKzIwMTEtMDktMjYgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCiAKICAgICAgICAgRW1pdCBhbiBlcnJvciBldmVudCB3aGVuIGEgcmVxdWVz
dCB0byBlbnRlciBmdWxsLXNjcmVlbiBpcyByZWplY3RlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLWV4cGVjdGVkLnR4dAppbmRleCA4YzRlODEyNzQ4
ODI5MmY4MDIyM2U4ODI4NDk2MmRlODY4YWE4MTgyLi5hNzQwMTA2NjY3NTc5NGJlOGI3MzhmNmRl
ZTNiNzFhNWI4M2JkOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxs
LXNjcmVlbi1hcGktZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAorRVhQRUNURUQgKGRvY3Vt
ZW50LndlYmtpdElzRnVsbFNjcmVlbkVuYWJsZWQgPT0gJ3RydWUnKSBPSwogRVhQRUNURUQgKGRv
Y3VtZW50LndlYmtpdElzRnVsbFNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKGRvY3Vt
ZW50LndlYmtpdENhbmNlbEZ1bGxTY3JlZW4gIT0gJ3VuZGVmaW5lZCcpIE9LCiBFWFBFQ1RFRCAo
ZG9jdW1lbnQud2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50ID09ICdudWxsJykgT0sKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLmh0bWwgYi9M
YXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWFwaS5odG1sCmluZGV4IDc4Y2YxNTZk
Y2Y1NjAyNDE2NGFkNTNkYzhiNTY3MWE0NDM2MDcyNjguLmFiNDM3N2NjNjZjMDIxMDhmODkyZWNl
MzhhMTliMGU4MTIxYTU1YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVs
bC1zY3JlZW4tYXBpLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1hcGkuaHRtbApAQCAtMyw2ICszLDcgQEAKIDxzcGFuPjwvc3Bhbj4KIDxzY3JpcHQ+CiAgICAg
c3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJylbMF07CisgICAgdGVz
dEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW5FbmFibGVkIiwgdHJ1ZSk7CiAg
ICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW4iLCBmYWxzZSk7CiAg
ICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuIiwgdW5kZWZp
bmVkLCAiIT0iKTsKICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50LndlYmtpdEN1cnJlbnRGdWxs
U2NyZWVuRWxlbWVudCIsIG51bGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc3Mzc2ZTcwZDJjOWYxMTQ0YTc0
ZmE2MjU3YjAwYWJjMGNhMTlkNDUuLjBhZDQxYmEzZGY2N2I3Mjk0MDFiZGIzZmZlZTFlMTRkN2Fk
YWJkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxMS0wOS0yNiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgRG9jdW1lbnQud2Via2l0SXNG
dWxsU2NyZWVuRW5hYmxlZCBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY4ODE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1hcGkuaHRtbAor
CisgICAgICAgIEFkZCBhIHNpbXBsZSBBUEkgdG8gYWxsb3cgYXV0aG9ycyB0byBjaGVjayBpZiB0
aGUgZnVsbCBzY3JlZW4gZmVhdHVyZSBpcworICAgICAgICBlbmFibGVkIGF0IHJ1bnRpbWUuCisK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OndlYmtpdElzRnVsbFNjcmVlbkVuYWJsZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6CisKKzIwMTEtMDktMjYgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CiAKICAgICAgICAgRW1pdCBhbiBlcnJvciBldmVudCB3aGVuIGEgcmVxdWVzdCB0byBlbnRlciBm
dWxsLXNjcmVlbiBpcyByZWplY3RlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJiYzFl
YjA2YWQ5ZTg5YjMwMjFjMmI3ZDE0OWVhMzllMmU2ZWMyZTAuLmYzZmE5NThmNmMyYWRkYjgwMWJh
NDMyY2YxNWM3MTVkYWFmOWM1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDgyOCw2
ICs0ODI4LDExIEBAIGJvb2wgRG9jdW1lbnQ6OmlzWEhUTUxNUERvY3VtZW50KCkgY29uc3QKICNl
bmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorYm9vbCBEb2N1bWVudDo6d2Via2l0
SXNGdWxsU2NyZWVuRW5hYmxlZCgpIGNvbnN0IAoreyAKKyAgICByZXR1cm4gcGFnZSgpICYmIHBh
Z2UoKS0+c2V0dGluZ3MoKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsgCit9CisKIGJvb2wgRG9jdW1l
bnQ6OmZ1bGxTY3JlZW5Jc0FsbG93ZWRGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDNlOGIw
ODliMDFhMzQxZTk0MTg4YmYxMzc1M2YyOGIyYTA4MmM1Li4zZTVlMzhlMDQ1NWM1MDg5YTE4OTRk
OTUyNzU4M2MwYTE4NzI0NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTAzNyw2ICsxMDM3
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGlkQXR0cmlidXRlTmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWRBdHRyaWJ1dGVOYW1lOyB9CiAgICAgCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQorICAgIGJvb2wgd2Via2l0SXNGdWxsU2NyZWVuRW5hYmxlZCgpIGNvbnN0
OwogICAgIGJvb2wgd2Via2l0SXNGdWxsU2NyZWVuKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsU2Ny
ZWVuRWxlbWVudC5nZXQoKTsgfQogICAgIGJvb2wgd2Via2l0RnVsbFNjcmVlbktleWJvYXJkSW5w
dXRBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsU2NyZWVuRWxlbWVudC5nZXQoKSAmJiBt
X2FyZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuOyB9CiAgICAgRWxlbWVudCogd2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9mdWxsU2NyZWVuRWxlbWVudC5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggMDVlOTA5MTQ1MmYxNDkxYWY0MzBk
OTNmMDliNGUwYjZhY2RmZWFlOC4uOTVhMjQwYTM3OWE4YmY4NWJjNGM5MDkwZWYwNWY1MThjYmEz
NGI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNDEsNiArMjQxLDcgQEAgbW9kdWxl
IGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIGJv
b2xlYW4gd2Via2l0SXNGdWxsU2NyZWVuOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Vu
YWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gd2Via2l0RnVsbFNjcmVlbktleWJvYXJkSW5wdXRBbGxv
d2VkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIEVsZW1l
bnQgd2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50OworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gd2Via2l0SXNGdWxsU2NyZWVuRW5hYmxl
ZDsKICAgICAgICAgW0VuYWJsZWRBdFJ1bnRpbWVdIHZvaWQgd2Via2l0Q2FuY2VsRnVsbFNjcmVl
bigpOwogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108707</attachid>
            <date>2011-09-26 12:23:46 -0700</date>
            <delta_ts>2011-09-26 20:23:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68817-20110926122345.patch</filename>
            <type>text/plain</type>
            <size>5899</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU3NDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NTg2ZTcyNDQ5MWIwYmM2ZmI4YmFh
NWRhNjIzYjAyODdlNTQyNjY5Li5jMTczOGIwOTY0YmYxYTJiYjdjNDYwZTVmN2QzZjk5MTk1N2M0
YWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMDktMjYgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIERvY3VtZW50LndlYmtpdElzRnVsbFNjcmVl
bkVuYWJsZWQgcHJvcGVydHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODgxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1hcGktZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLmh0bWw6CisKKzIwMTEtMDktMjYgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgRW1pdCBhbiBlcnJvciBl
dmVudCB3aGVuIGEgcmVxdWVzdCB0byBlbnRlciBmdWxsLXNjcmVlbiBpcyByZWplY3RlZC4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzIwCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLWV4cGVjdGVkLnR4
dAppbmRleCA4YzRlODEyNzQ4ODI5MmY4MDIyM2U4ODI4NDk2MmRlODY4YWE4MTgyLi5hNzQwMTA2
NjY3NTc5NGJlOGI3MzhmNmRlZTNiNzFhNWI4M2JkOGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1hcGktZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBA
QAorRVhQRUNURUQgKGRvY3VtZW50LndlYmtpdElzRnVsbFNjcmVlbkVuYWJsZWQgPT0gJ3RydWUn
KSBPSwogRVhQRUNURUQgKGRvY3VtZW50LndlYmtpdElzRnVsbFNjcmVlbiA9PSAnZmFsc2UnKSBP
SwogRVhQRUNURUQgKGRvY3VtZW50LndlYmtpdENhbmNlbEZ1bGxTY3JlZW4gIT0gJ3VuZGVmaW5l
ZCcpIE9LCiBFWFBFQ1RFRCAoZG9jdW1lbnQud2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50
ID09ICdudWxsJykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWFwaS5o
dG1sCmluZGV4IDc4Y2YxNTZkY2Y1NjAyNDE2NGFkNTNkYzhiNTY3MWE0NDM2MDcyNjguLmFiNDM3
N2NjNjZjMDIxMDhmODkyZWNlMzhhMTliMGU4MTIxYTU1YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tYXBpLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1hcGkuaHRtbApAQCAtMyw2ICszLDcgQEAKIDxzcGFuPjwvc3Bh
bj4KIDxzY3JpcHQ+CiAgICAgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
cGFuJylbMF07CisgICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW5F
bmFibGVkIiwgdHJ1ZSk7CiAgICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRJc0Z1bGxT
Y3JlZW4iLCBmYWxzZSk7CiAgICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC53ZWJraXRDYW5jZWxG
dWxsU2NyZWVuIiwgdW5kZWZpbmVkLCAiIT0iKTsKICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50
LndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCIsIG51bGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQy
OTY3N2NmNTE4MzQ4ZGFjNDA3NzUyYWFhMTE0NjlmMjU1MTc4MjEuLmFlZGQ4OGJmNGQ0NzRiNDI1
MTU1NjkwNTM5NDYyYjU4YTQ5YWZjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAx
MS0wOS0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQg
RG9jdW1lbnQud2Via2l0SXNGdWxsU2NyZWVuRW5hYmxlZCBwcm9wZXJ0eS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZnVsbHNjcmVlbi9mdWxs
LXNjcmVlbi1hcGkuaHRtbAorCisgICAgICAgIEFkZCBhIHNpbXBsZSBBUEkgdG8gYWxsb3cgYXV0
aG9ycyB0byBjaGVjayBpZiB0aGUgZnVsbCBzY3JlZW4gZmVhdHVyZSBpcworICAgICAgICBlbmFi
bGVkIGF0IHJ1bnRpbWUuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdElzRnVsbFNjcmVlbkVuYWJsZWQpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6CisKKzIwMTEtMDkt
MjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgRW1pdCBhbiBl
cnJvciBldmVudCB3aGVuIGEgcmVxdWVzdCB0byBlbnRlciBmdWxsLXNjcmVlbiBpcyByZWplY3Rl
ZC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzIw
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggNzIzMmIwMTRmYzVjZTI1NDZhZjkxYjE1YjI2OWEyYTBl
Y2VmYTYyNC4uMTdkZGMzOWFkZTRkZmM0OTQ2NDRkOGQ4ODNjZDgxMDJkNjI4M2QyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHdl
YmtpdEZ1bGxTY3JlZW5BUElFbmFibGVkKCkgeyByZXR1cm4gaXNGdWxsU2NyZWVuQVBJRW5hYmxl
ZDsgfQogICAgIHN0YXRpYyB2b2lkIHNldFdlYmtpdEZ1bGxTY3JlZW5BUElFbmFibGVkKGJvb2wg
aXNFbmFibGVkKSB7IGlzRnVsbFNjcmVlbkFQSUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBz
dGF0aWMgYm9vbCB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbkVuYWJsZWQoKSB7IHJldHVybiBpc0Z1
bGxTY3JlZW5BUElFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2Via2l0SXNGdWxsU2NyZWVu
RW5hYmxlZEVuYWJsZWQoKSB7IHJldHVybiBpc0Z1bGxTY3JlZW5BUElFbmFibGVkOyB9CiAgICAg
c3RhdGljIGJvb2wgd2Via2l0SXNGdWxsU2NyZWVuRW5hYmxlZCgpIHsgcmV0dXJuIGlzRnVsbFNj
cmVlbkFQSUVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCB3ZWJraXRGdWxsU2NyZWVuS2V5Ym9h
cmRJbnB1dEFsbG93ZWRFbmFibGVkKCkgeyByZXR1cm4gaXNGdWxsU2NyZWVuQVBJRW5hYmxlZDsg
fQogICAgIHN0YXRpYyBib29sIHdlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudEVuYWJsZWQo
KSB7IHJldHVybiBpc0Z1bGxTY3JlZW5BUElFbmFibGVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCAxODNhMGQ1MTIwMjhjZTYxM2FlZmJiYWVmZTBhMzMxYTRlODExZGY0Li45ZTUxNTIw
MDMxMDFjNTU3YzBiZWFkOGZmYTE1NWQ5YTJlZjc3ZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTQ4MjgsNiArNDgyOCwxMSBAQCBib29sIERvY3VtZW50Ojppc1hIVE1MTVBEb2N1bWVu
dCgpIGNvbnN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK2Jvb2wgRG9j
dW1lbnQ6OndlYmtpdElzRnVsbFNjcmVlbkVuYWJsZWQoKSBjb25zdCAKK3sgCisgICAgcmV0dXJu
IHBhZ2UoKSAmJiBwYWdlKCktPnNldHRpbmdzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCk7IAorfQor
CiBib29sIERvY3VtZW50OjpmdWxsU2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50KiBl
bGVtZW50KSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggNTQzZThiMDg5YjAxYTM0MWU5NDE4OGJmMTM3NTNmMjhiMmEwODJjNS4uM2U1ZTM4ZTA0
NTVjNTA4OWExODk0ZDk1Mjc1ODNjMGExODcyNDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEwMzcsNiArMTAzNyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBpZEF0
dHJpYnV0ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2lkQXR0cmlidXRlTmFtZTsgfQogICAgIAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBib29sIHdlYmtpdElzRnVsbFNjcmVlbkVu
YWJsZWQoKSBjb25zdDsKICAgICBib29sIHdlYmtpdElzRnVsbFNjcmVlbigpIGNvbnN0IHsgcmV0
dXJuIG1fZnVsbFNjcmVlbkVsZW1lbnQuZ2V0KCk7IH0KICAgICBib29sIHdlYmtpdEZ1bGxTY3Jl
ZW5LZXlib2FyZElucHV0QWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbFNjcmVlbkVsZW1l
bnQuZ2V0KCkgJiYgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbjsgfQogICAgIEVsZW1lbnQq
IHdlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbFNj
cmVlbkVsZW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDA1ZTkwOTE0
NTJmMTQ5MWFmNDMwZDkzZjA5YjRlMGI2YWNkZmVhZTguLjk1YTI0MGEzNzlhOGJmODViYzRjOTA5
MGVmMDVmNTE4Y2JhMzRiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMjQxLDYgKzI0
MSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVk
QXRSdW50aW1lXSBib29sZWFuIHdlYmtpdElzRnVsbFNjcmVlbjsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBib29sZWFuIHdlYmtpdEZ1bGxTY3JlZW5LZXli
b2FyZElucHV0QWxsb3dlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRS
dW50aW1lXSBFbGVtZW50IHdlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBib29sZWFuIHdlYmtpdElzRnVs
bFNjcmVlbkVuYWJsZWQ7CiAgICAgICAgIFtFbmFibGVkQXRSdW50aW1lXSB2b2lkIHdlYmtpdENh
bmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="105739"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>