<?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>27400</bug_id>
          
          <creation_ts>2009-07-17 17:57:44 -0700</creation_ts>
          <short_desc>Inspector: Automatically Refresh DOM Storage Grids on &quot;storage&quot; event</short_desc>
          <delta_ts>2009-07-29 03:45:16 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>132798</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-07-17 17:57:44 -0700</bug_when>
    <thetext>It is too much work to click that small Refresh button to view changes in the dataGrid.  The inspected window fires a storage event that can be hooked into to automatically update the data grid.

NOTE: I could totally see this as being a &quot;setting&quot;.  If lots of storage events are firing and the table keeps updating it might not be good for a developer to work with.  It may be a good idea to add a permanent setting, and toolbar item, that will allow the user to activate &quot;live updates&quot; or not!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132802</commentid>
    <comment_count>1</comment_count>
      <attachid>32993</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-07-17 18:02:44 -0700</bug_when>
    <thetext>Created attachment 32993
Live Update both DOM Storage Grids

NOTES:

- Assumes only 2 storages exist (like the current code does with the &quot;isLocalStorage&quot; property.
- Tested on localStorage and sessionStorage and it worked great.
- register/unregister functions would be great to use for a toolbar item in case this moves into a setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134181</commentid>
    <comment_count>2</comment_count>
      <attachid>32993</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-07-23 11:52:34 -0700</bug_when>
    <thetext>Comment on attachment 32993
Live Update both DOM Storage Grids


&gt; - * Copyright (C) 2007, 2008 Apple Inc.  All rights reserved.
&gt; + * Copyright (C) 2007, 2008, 2009 Apple Inc.  All rights reserved.

You should add your name and copyright on a new line instead.

&gt; +        inspectedWindow.addEventListener(&apos;storage&apos;, this._storageEventListener, true);

You should use double quotes for strings.

&gt; +        var flag = (event.storageArea == InspectorController.inspectedWindow().localStorage);
&gt; +        if (this._domStorage) {

An early return would be better here.

&gt; +            var domStorageLength = this._domStorage.length;
&gt; +            for (var i = 0; i &lt; domStorageLength; ++i) {
&gt; +                var domStorage = this._domStorage[i];
&gt; +                if (flag == domStorage.isLocalStorage) {

Triple equals.

&gt; +                    var view = domStorage._domStorageView;
&gt; +                    if (this.visibleView &amp;&amp; view == this.visibleView)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134264</commentid>
    <comment_count>3</comment_count>
      <attachid>33378</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-07-23 14:36:04 -0700</bug_when>
    <thetext>Created attachment 33378
Fixed Based on Review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134266</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-07-23 14:38:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; You should add your name and copyright on a new line instead.

Done.

&gt; You should use double quotes for strings.

Done. All.
 
&gt; An early return would be better here.

Done.


&gt; &gt; +            var domStorageLength = this._domStorage.length;
&gt; &gt; +            for (var i = 0; i &lt; domStorageLength; ++i) {
&gt; &gt; +                var domStorage = this._domStorage[i];
&gt; &gt; +                if (flag == domStorage.isLocalStorage) {
&gt; 
&gt; Triple equals.

Done. Renamed flag to &quot;isLocalStorage&quot; like the inspect() patch coming for Keishi.

&gt; &gt; +                    var view = domStorage._domStorageView;
&gt; &gt; +                    if (this.visibleView &amp;&amp; view == this.visibleView)
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135484</commentid>
    <comment_count>5</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-07-28 21:55:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/46518</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135557</commentid>
    <comment_count>6</comment_count>
    <who name="Anthony Ricaud">rik</who>
    <bug_when>2009-07-29 03:45:16 -0700</bug_when>
    <thetext>Instead of a setting, another option is to add a timer before doing the update. Both options are valid.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32993</attachid>
            <date>2009-07-17 18:02:44 -0700</date>
            <delta_ts>2009-07-23 14:36:04 -0700</delta_ts>
            <desc>Live Update both DOM Storage Grids</desc>
            <filename>LiveUpdateDomStorageGrid.patch</filename>
            <type>text/plain</type>
            <size>3749</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjA3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDctMTcgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2swMkBn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW5zcGVjdG9yOiBBdXRvbWF0aWNhbGx5IFJlZnJlc2ggRE9NIFN0b3JhZ2UgR3JpZHMgb24g
InN0b3JhZ2UiIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNzQwMAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZXNQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZXNQYW5lbC5wcm90b3R5cGUu
c2hvdyk6IHRyaWdnZXIgYWRkaW5nIHRoZSBsaXN0ZW5lcgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRhdGFiYXNlc1BhbmVsLnByb3RvdHlwZS5yZXNldCk6IHRyaWdnZXIgcmVtb3ZpbmcgdGhlIGxp
c3RlbmVyCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VzUGFuZWwucHJvdG90eXBlLl9y
ZWdpc3RlclN0b3JhZ2VFdmVudExpc3RlbmVyKTogcmVnaXN0ZXIgdGhlIGxpc3RlbmVyIG9uIHRo
ZSBpbnNwZWN0ZWQgd2luZG93CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VzUGFuZWwu
cHJvdG90eXBlLl91bnJlZ2lzdGVyU3RvcmFnZUV2ZW50TGlzdGVuZXIpOiB1bnJlZ2lzdGVyIHRo
ZSBsaXN0ZW5lciBvbiB0aGUgaW5zcGVjdGVkIHdpbmRvdworICAgICAgICAoV2ViSW5zcGVjdG9y
LkRhdGFiYXNlc1BhbmVsLnByb3RvdHlwZS5fc3RvcmFnZUV2ZW50KTogaGFuZGxlIHRoZSBzdG9y
YWdlIGV2ZW50CisKIDIwMDktMDctMTcgIE1hZHMgQWdlciAgPGFnZXJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFdlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZXNQYW5lbC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VzUGFuZWwuanMJKHJldmlzaW9uIDQ2MDMzKQor
KysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlc1BhbmVsLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTg1LDYgKzg1LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNl
c1BhbmVsLnByb3RvdHlwZSA9IAogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0
aCgpOworICAgICAgICB0aGlzLl9yZWdpc3RlclN0b3JhZ2VFdmVudExpc3RlbmVyKCk7CiAgICAg
fSwKIAogICAgIHJlc2V0OiBmdW5jdGlvbigpCkBAIC0xMTEsNiArMTEyLDggQEAgV2ViSW5zcGVj
dG9yLkRhdGFiYXNlc1BhbmVsLnByb3RvdHlwZSA9IAogICAgICAgICB9CiAKICAgICAgICAgdGhp
cy5fZG9tU3RvcmFnZSA9IFtdOworICAgICAgICAKKyAgICAgICAgdGhpcy5fdW5yZWdpc3RlclN0
b3JhZ2VFdmVudExpc3RlbmVyKCk7CiAKICAgICAgICAgdGhpcy5kYXRhYmFzZXNMaXN0VHJlZUVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VMaXN0VHJl
ZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKQEAgLTM2OSw2ICszNzIsNDIgQEAgV2ViSW5zcGVj
dG9yLkRhdGFiYXNlc1BhbmVsLnByb3RvdHlwZSA9IAogICAgICAgICAgICAgbm9kZXNbMF0uc2Vs
ZWN0ZWQgPSB0cnVlOwogICAgICAgICByZXR1cm4gZGF0YUdyaWQ7CiAgICAgfSwKKyAgICAKKyAg
ICBfcmVnaXN0ZXJTdG9yYWdlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdmFyIGluc3BlY3RlZFdpbmRvdyA9IEluc3BlY3RvckNvbnRyb2xsZXIuaW5zcGVjdGVkV2lu
ZG93KCk7CisgICAgICAgIGlmICghaW5zcGVjdGVkV2luZG93IHx8ICFpbnNwZWN0ZWRXaW5kb3cu
ZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fc3RvcmFnZUV2
ZW50TGlzdGVuZXIgPSBJbnNwZWN0b3JDb250cm9sbGVyLndyYXBDYWxsYmFjayh0aGlzLl9zdG9y
YWdlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgICAgIGluc3BlY3RlZFdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdzdG9yYWdlJywgdGhpcy5fc3RvcmFnZUV2ZW50TGlzdGVuZXIsIHRydWUpOworICAg
IH0sCisgICAgCisgICAgX3VucmVnaXN0ZXJTdG9yYWdlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdmFyIGluc3BlY3RlZFdpbmRvdyA9IEluc3BlY3RvckNvbnRyb2xs
ZXIuaW5zcGVjdGVkV2luZG93KCk7CisgICAgICAgIGlmICghaW5zcGVjdGVkV2luZG93IHx8ICFp
bnNwZWN0ZWRXaW5kb3cuZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aW5zcGVjdGVkV2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCB0aGlzLl9zdG9y
YWdlRXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zdG9yYWdlRXZl
bnRMaXN0ZW5lcjsKKyAgICB9LAorICAgIAorICAgIF9zdG9yYWdlRXZlbnQ6IGZ1bmN0aW9uKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGZsYWcgPSAoZXZlbnQuc3RvcmFnZUFyZWEgPT0gSW5z
cGVjdG9yQ29udHJvbGxlci5pbnNwZWN0ZWRXaW5kb3coKS5sb2NhbFN0b3JhZ2UpOworICAgICAg
ICBpZiAodGhpcy5fZG9tU3RvcmFnZSkgeworICAgICAgICAgICAgdmFyIGRvbVN0b3JhZ2VMZW5n
dGggPSB0aGlzLl9kb21TdG9yYWdlLmxlbmd0aDsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZG9tU3RvcmFnZUxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIGRvbVN0
b3JhZ2UgPSB0aGlzLl9kb21TdG9yYWdlW2ldOworICAgICAgICAgICAgICAgIGlmIChmbGFnID09
IGRvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHZp
ZXcgPSBkb21TdG9yYWdlLl9kb21TdG9yYWdlVmlldzsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRoaXMudmlzaWJsZVZpZXcgJiYgdmlldyA9PSB0aGlzLnZpc2libGVWaWV3KQorICAgICAgICAg
ICAgICAgICAgICAgICAgZG9tU3RvcmFnZS5fZG9tU3RvcmFnZVZpZXcudXBkYXRlKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKIAogICAgIF9z
dGFydFNpZGViYXJEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewo=
</data>
<flag name="review"
          id="17336"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33378</attachid>
            <date>2009-07-23 14:36:04 -0700</date>
            <delta_ts>2009-07-27 14:59:58 -0700</delta_ts>
            <desc>Fixed Based on Review</desc>
            <filename>LiveUpdateDOMStorage.patch</filename>
            <type>text/plain</type>
            <size>3798</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjE1ZThmMS4uNGEyNzZjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0wNy0yMyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVjazAyQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3I6IEF1dG9tYXRpY2FsbHkgUmVmcmVzaCBET00g
U3RvcmFnZSBHcmlkcyBvbiAic3RvcmFnZSIgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDAwCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0RhdGFiYXNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNl
c1BhbmVsLnByb3RvdHlwZS5zaG93KTogdHJpZ2dlciBhZGRpbmcgdGhlIGxpc3RlbmVyCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VzUGFuZWwucHJvdG90eXBlLnJlc2V0KTogdHJpZ2dl
ciByZW1vdmluZyB0aGUgbGlzdGVuZXIKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZXNQ
YW5lbC5wcm90b3R5cGUuX3JlZ2lzdGVyU3RvcmFnZUV2ZW50TGlzdGVuZXIpOiByZWdpc3RlciB0
aGUgbGlzdGVuZXIgb24gdGhlIGluc3BlY3RlZCB3aW5kb3cKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EYXRhYmFzZXNQYW5lbC5wcm90b3R5cGUuX3VucmVnaXN0ZXJTdG9yYWdlRXZlbnRMaXN0ZW5l
cik6IHVucmVnaXN0ZXIgdGhlIGxpc3RlbmVyIG9uIHRoZSBpbnNwZWN0ZWQgd2luZG93CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VzUGFuZWwucHJvdG90eXBlLl9zdG9yYWdlRXZlbnQp
OiBoYW5kbGUgdGhlIHN0b3JhZ2UgZXZlbnQKKwogMjAwOS0wNy0yMiAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZXNQYW5lbC5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZXNQYW5lbC5qcwppbmRleCBiMWQ4
MTVmLi4yODY5YjU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0
YWJhc2VzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
c1BhbmVsLmpzCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEpvc2VwaCBQZWNvcmFybwogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NSw2
ICs4Niw3IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsK
ICAgICAgICAgdGhpcy5fdXBkYXRlU2lkZWJhcldpZHRoKCk7CisgICAgICAgIHRoaXMuX3JlZ2lz
dGVyU3RvcmFnZUV2ZW50TGlzdGVuZXIoKTsKICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1bmN0aW9u
KCkKQEAgLTEwMSw2ICsxMDMsOCBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgICAgIHRoaXMuX2RhdGFiYXNlcyA9IFtdOwogCisgICAgICAgIHRoaXMu
X3VucmVnaXN0ZXJTdG9yYWdlRXZlbnRMaXN0ZW5lcigpOworCiAgICAgICAgIGlmICh0aGlzLl9k
b21TdG9yYWdlKSB7CiAgICAgICAgICAgICB2YXIgZG9tU3RvcmFnZUxlbmd0aCA9IHRoaXMuX2Rv
bVN0b3JhZ2UubGVuZ3RoOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb21TdG9y
YWdlTGVuZ3RoOyArK2kpIHsKQEAgLTM3MCw2ICszNzQsNDMgQEAgV2ViSW5zcGVjdG9yLkRhdGFi
YXNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGRhdGFHcmlkOwogICAgIH0s
CiAKKyAgICBfcmVnaXN0ZXJTdG9yYWdlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdmFyIGluc3BlY3RlZFdpbmRvdyA9IEluc3BlY3RvckNvbnRyb2xsZXIuaW5zcGVj
dGVkV2luZG93KCk7CisgICAgICAgIGlmICghaW5zcGVjdGVkV2luZG93IHx8ICFpbnNwZWN0ZWRX
aW5kb3cuZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fc3Rv
cmFnZUV2ZW50TGlzdGVuZXIgPSBJbnNwZWN0b3JDb250cm9sbGVyLndyYXBDYWxsYmFjayh0aGlz
Ll9zdG9yYWdlRXZlbnQuYmluZCh0aGlzKSk7CisgICAgICAgIGluc3BlY3RlZFdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJzdG9yYWdlIiwgdGhpcy5fc3RvcmFnZUV2ZW50TGlzdGVuZXIsIHRydWUp
OworICAgIH0sCisgICAgCisgICAgX3VucmVnaXN0ZXJTdG9yYWdlRXZlbnRMaXN0ZW5lcjogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGluc3BlY3RlZFdpbmRvdyA9IEluc3BlY3RvckNv
bnRyb2xsZXIuaW5zcGVjdGVkV2luZG93KCk7CisgICAgICAgIGlmICghaW5zcGVjdGVkV2luZG93
IHx8ICFpbnNwZWN0ZWRXaW5kb3cuZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgaW5zcGVjdGVkV2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLCB0aGlz
Ll9zdG9yYWdlRXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zdG9y
YWdlRXZlbnRMaXN0ZW5lcjsKKyAgICB9LAorICAgIAorICAgIF9zdG9yYWdlRXZlbnQ6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9kb21TdG9yYWdlKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBpc0xvY2FsU3RvcmFnZSA9IChldmVudC5zdG9y
YWdlQXJlYSA9PT0gSW5zcGVjdG9yQ29udHJvbGxlci5pbnNwZWN0ZWRXaW5kb3coKS5sb2NhbFN0
b3JhZ2UpOworICAgICAgICB2YXIgZG9tU3RvcmFnZUxlbmd0aCA9IHRoaXMuX2RvbVN0b3JhZ2Uu
bGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvbVN0b3JhZ2VMZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLl9kb21TdG9yYWdlW2ldOwor
ICAgICAgICAgICAgaWYgKGlzTG9jYWxTdG9yYWdlID09PSBkb21TdG9yYWdlLmlzTG9jYWxTdG9y
YWdlKSB7CisgICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBkb21TdG9yYWdlLl9kb21TdG9yYWdl
VmlldzsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldyAmJiB2aWV3ID09PSB0
aGlzLnZpc2libGVWaWV3KQorICAgICAgICAgICAgICAgICAgICBkb21TdG9yYWdlLl9kb21TdG9y
YWdlVmlldy51cGRhdGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKICAg
ICBfc3RhcnRTaWRlYmFyRHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmVsZW1lbnREcmFnU3RhcnQodGhpcy5zaWRlYmFyUmVzaXplRWxlbWVudCwg
dGhpcy5fc2lkZWJhckRyYWdnaW5nLmJpbmQodGhpcyksIHRoaXMuX2VuZFNpZGViYXJEcmFnZ2lu
Zy5iaW5kKHRoaXMpLCBldmVudCwgImNvbC1yZXNpemUiKTsK
</data>
<flag name="review"
          id="17672"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>