<?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>141682</bug_id>
          
          <creation_ts>2015-02-16 17:43:21 -0800</creation_ts>
          <short_desc>Viewport units should not dirty style just before we do layout</short_desc>
          <delta_ts>2015-02-28 20:37:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bjonesbe</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069696</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-16 17:43:21 -0800</bug_when>
    <thetext>The test fast/css-grid-layout/breadth-size-resolution-grid.html reveals some bad behavior where viewport units dirty style right before we do layout:

  * frame #1: 0x0000000104d020ba WebCore`WebCore::Document::scheduleStyleRecalc(this=0x0000000116043580) + 218 at Document.cpp:1693
    frame #2: 0x0000000105d1d53d WebCore`WebCore::Node::updateAncestorsForStyleRecalc(this=0x0000000117ff0618) + 349 at Node.cpp:671
    frame #3: 0x0000000105d15b4a WebCore`WebCore::Node::setNeedsStyleRecalc(this=0x0000000117ff0618, changeType=InlineStyleChange) + 170 at Node.cpp:685
    frame #4: 0x0000000104d098e0 WebCore`WebCore::Document::updateViewportUnitsOnResize(this=0x0000000116043580) + 176 at Document.cpp:3305
    frame #5: 0x00000001050920e0 WebCore`WebCore::FrameView::layout(this=0x0000000116016d00, allowSubtree=true) + 2976 at FrameView.cpp:1294
    frame #6: 0x0000000104cff357 WebCore`WebCore::Document::updateLayout(this=0x0000000116043580) + 343 at Document.cpp:1857
    frame #7: 0x0000000104d02daf WebCore`WebCore::Document::updateLayoutIgnorePendingStylesheets(this=0x0000000116043580, runPostLayoutTasks=Asynchronously) + 207 at Document.cpp:1889
    frame #8: 0x0000000104ea0e29 WebCore`WebCore::Element::offsetWidth(this=0x0000000117ff0a90) + 41 at Element.cpp:717
    frame #9: 0x00000001056cf6fc WebCore`WebCore::jsElementOffsetWidth(exec=0x00007fff5fbfc920, slotBase=0x0000000115fffda0, thisValue=4700567472, (null)=PropertyName at 0x00007fff5fbfc5b0) + 204 at JSElement.cpp:657
    frame #10: 0x000000010035d7e8 JavaScriptCore`JSC::PropertySlot::getValue(this=0x00007fff5fbfc760, exec=0x00007fff5fbfc920, propertyName=PropertyName at 0x00007fff5fbfc610) const + 184 at PropertySlot.h:256
    frame #11: 0x000000010038184b JavaScriptCore`JSC::JSValue::get(this=0x00007fff5fbfc798, exec=0x00007fff5fbfc920, propertyName=PropertyName at 0x00007fff5fbfc660, slot=0x00007fff5fbfc760) const + 91 at JSCJSValueInlines.h:703
    frame #12: 0x0000000100a699a1 JavaScriptCore`llint_slow_path_get_by_id(exec=0x00007fff5fbfc920, pc=0x000000011608a540) + 241 at LLIntSlowPaths.cpp:581
    frame #13: 0x0000000100a77567 JavaScriptCore`llint_entry + 11115
    frame #14: 0x0000000100a7acc7 JavaScriptCore`llint_entry + 25291
    frame #15: 0x0000000100a7acc7 JavaScriptCore`llint_entry + 25291
    frame #16: 0x0000000100a7acc7 JavaScriptCore`llint_entry + 25291
    frame #17: 0x0000000100a7ad3a JavaScriptCore`llint_entry + 25406
    frame #18: 0x0000000100a7ad3a JavaScriptCore`llint_entry + 25406
    frame #19: 0x0000000100a7ad3a JavaScriptCore`llint_entry + 25406
    frame #20: 0x0000000100a7ad3a JavaScriptCore`llint_entry + 25406
    frame #21: 0x00002c9e956019fa
    frame #22: 0x0000000100a747b9 JavaScriptCore`vmEntryToJavaScript + 361
    frame #23: 0x00000001008fda8c JavaScriptCore`JSC::JITCode::execute(this=0x0000000117f81660, vm=0x0000000116027380, protoCallFrame=0x00007fff5fbfcf48) + 252 at JITCode.cpp:77
    frame #24: 0x00000001008e2379 JavaScriptCore`JSC::Interpreter::executeCall(this=0x0000000117ff02d8, callFrame=0x00000001182bf4b0, function=0x00000001182f99f0, callType=CallTypeJS, callData=0x00007fff5fbfd418, thisValue=JSValue at 0x00007fff5fbfd020, args=0x00007fff5fbfd2e8) + 1465 at Interpreter.cpp:912
    frame #25: 0x00000001003e71de JavaScriptCore`JSC::call(exec=0x00000001182bf4b0, functionObject=JSValue at 0x00007fff5fbfd100, callType=CallTypeJS, callData=0x00007fff5fbfd418, thisValue=JSValue at 0x00007fff5fbfd0f8, args=0x00007fff5fbfd2e8) + 190 at CallData.cpp:39
    frame #26: 0x00000001003e7243 JavaScriptCore`JSC::call(exec=0x00000001182bf4b0, functionObject=JSValue at 0x00007fff5fbfd180, callType=CallTypeJS, callData=0x00007fff5fbfd418, thisValue=JSValue at 0x00007fff5fbfd178, args=0x00007fff5fbfd2e8, exception=0x00007fff5fbfd310) + 83 at CallData.cpp:44
    frame #27: 0x00000001055828eb WebCore`WebCore::JSMainThreadExecState::call(exec=0x00000001182bf4b0, functionObject=JSValue at 0x00007fff5fbfd200, callType=CallTypeJS, callData=0x00007fff5fbfd418, thisValue=JSValue at 0x00007fff5fbfd1f8, args=0x00007fff5fbfd2e8, exception=0x00007fff5fbfd310) + 107 at JSMainThreadExecState.h:56
    frame #28: 0x00000001056fdfbe WebCore`WebCore::JSEventListener::handleEvent(this=0x0000000117ff0548, scriptExecutionContext=0x0000000116043620, event=0x0000000117f8b500) + 1278 at JSEventListener.cpp:127
    frame #29: 0x0000000104efd9a4 WebCore`WebCore::EventTarget::fireEventListeners(this=0x00000001177ef180, event=0x0000000117f8b500, d=0x00000001177ef188, entry=0x0000000117f91c40) + 1444 at EventTarget.cpp:255
    frame #30: 0x0000000104efd1de WebCore`WebCore::EventTarget::fireEventListeners(this=0x00000001177ef180, event=0x0000000117f8b500) + 334 at EventTarget.cpp:207
    frame #31: 0x0000000104e27e3b WebCore`WebCore::DOMWindow::dispatchEvent(this=0x00000001177ef180, prpEvent=PassRefPtr&lt;WebCore::Event&gt; at 0x00007fff5fbfd8a0, prpTarget=(m_ptr = 0x0000000000000000)) + 539 at DOMWindow.cpp:1897
    frame #32: 0x0000000104e2f795 WebCore`WebCore::DOMWindow::dispatchLoadEvent(this=0x00000001177ef180) + 293 at DOMWindow.cpp:1855
    frame #33: 0x0000000104d0550d WebCore`WebCore::Document::dispatchWindowLoadEvent(this=0x0000000116043580) + 141 at Document.cpp:3833
    frame #34: 0x0000000104d0285d WebCore`WebCore::Document::implicitClose(this=0x0000000116043580) + 557 at Document.cpp:2477
    frame #35: 0x000000010505be1b WebCore`WebCore::FrameLoader::checkCallImplicitClose(this=0x00000001177f20a0) + 155 at FrameLoader.cpp:900
    frame #36: 0x000000010505baee WebCore`WebCore::FrameLoader::checkCompleted(this=0x00000001177f20a0) + 270 at FrameLoader.cpp:846
    frame #37: 0x000000010505bc65 WebCore`WebCore::FrameLoader::loadDone(this=0x00000001177f20a0) + 21 at FrameLoader.cpp:779
    frame #38: 0x00000001049c3ec9 WebCore`WebCore::CachedResourceLoader::loadDone(this=0x00000001177ee6c0, resource=0x00000001177df000, shouldPerformPostLoadActions=true) + 121 at CachedResourceLoader.cpp:841
    frame #39: 0x00000001064d5045 WebCore`WebCore::SubresourceLoader::notifyDone(this=0x0000000116016000) + 293 at SubresourceLoader.cpp:445
    frame #40: 0x00000001064d4c66 WebCore`WebCore::SubresourceLoader::didFinishLoading(this=0x0000000116016000, finishTime=0) + 662 at SubresourceLoader.cpp:371
    frame #41: 0x00000001061c5415 WebCore`WebCore::ResourceLoader::didFinishLoading(this=0x0000000116016000, (null)=0x0000000117fb70f0, finishTime=0) + 53 at ResourceLoader.cpp:542
    frame #42: 0x0000000106775faa WebCore`-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:](self=0x000000010c628b80, _cmd=0x00007fff8c2ad992, connection=0x000000010c6290a0) + 186 at WebCoreResourceHandleAsDelegate.mm:260
    frame #43: 0x00007fff9055620d CFNetwork`__65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke + 69
    frame #44: 0x00007fff905561b1 CFNetwork`-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 232
    frame #45: 0x00007fff90556317 CFNetwork`-[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 48
    frame #46: 0x00007fff90426b54 CFNetwork`___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 104
    frame #47: 0x00007fff904f0283 CFNetwork`___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 94
    frame #48: 0x00007fff9041233c CFNetwork`RunloopBlockContext::_invoke_block(void const*, void*) + 72
    frame #49: 0x00007fff8f3ab274 CoreFoundation`CFArrayApplyFunction + 68
    frame #50: 0x00007fff904121fd CFNetwork`RunloopBlockContext::perform() + 133
    frame #51: 0x00007fff9041209e CFNetwork`MultiplexerSource::perform() + 282
    frame #52: 0x00007fff90411ec0 CFNetwork`MultiplexerSource::_perform(void*) + 72
    frame #53: 0x00007fff8f3df681 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #54: 0x00007fff8f3d180d CoreFoundation`__CFRunLoopDoSources0 + 269
    frame #55: 0x00007fff8f3d0e3f CoreFoundation`__CFRunLoopRun + 927
    frame #56: 0x00007fff8f3d0858 CoreFoundation`CFRunLoopRunSpecific + 296
    frame #57: 0x000000010001de9d DumpRenderTree`runTest(inputLine=0x00007fff5fbff790) + 5389 at DumpRenderTree.mm:1886
    frame #58: 0x000000010001c172 DumpRenderTree`dumpRenderTree(argc=2, argv=0x00007fff5fbff898) + 690 at DumpRenderTree.mm:1182
    frame #59: 0x000000010001e756 DumpRenderTree`DumpRenderTreeMain(argc=2, argv=0x00007fff5fbff898) + 102 at DumpRenderTree.mm:1295
    frame #60: 0x000000010006e412 DumpRenderTree`main(argc=2, argv=0x00007fff5fbff898) + 34 at DumpRenderTreeMain.mm:30

I think this means we&apos;ll do a second style recalc + layout after the first one. This may double the number of layouts on pages using viewport units.

And, anyway, they are *viewport* units. Why are we triggering style recalc when the document size changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069759</commentid>
    <comment_count>1</comment_count>
      <attachid>246725</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-16 21:45:01 -0800</bug_when>
    <thetext>Created attachment 246725
proto patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071989</commentid>
    <comment_count>2</comment_count>
      <attachid>247317</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-24 23:31:21 -0800</bug_when>
    <thetext>Created attachment 247317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072057</commentid>
    <comment_count>3</comment_count>
      <attachid>247317</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-02-25 07:15:56 -0800</bug_when>
    <thetext>Comment on attachment 247317
Patch

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

&gt; Source/WebCore/platform/ScrollView.cpp:371
&gt; +
&gt; +    if (platformWidget())
&gt; +        return;

There&apos;s no other way to signal content size changed from Wk1? Checking against platformWidget() looks hackish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072067</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-25 09:19:22 -0800</bug_when>
    <thetext>Note to self: make sure this doesn&apos;t break iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073141</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-28 20:37:27 -0800</bug_when>
    <thetext>https://trac.webkit.org/r180848</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246725</attachid>
            <date>2015-02-16 21:45:01 -0800</date>
            <delta_ts>2015-02-24 23:31:13 -0800</delta_ts>
            <desc>proto patch</desc>
            <filename>kinda patch.txt</filename>
            <type>text/plain</type>
            <size>7617</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzdkZmIzMzI2ZmNkZTdiNDU0MGYwMzlmMGYyNTlhNDBm
MTBiYTQyZi4uZjBhYzEzMjllZWNiYmJhZmQ0YTFjMTNiZDNlMDYwYmM4YWRiMmJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTE1MjIsNiArMTUyMiw3IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZp
ZXcxNHNldE5lZWRzTGF5b3V0RXYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxNHNldFRyYW5zcGFy
ZW50RWIKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxNXNldEZvb3RlckhlaWdodEVpCiBfX1pON1dl
YkNvcmU5RnJhbWVWaWV3MTVzZXRIZWFkZXJIZWlnaHRFaQorX19aTjdXZWJDb3JlOUZyYW1lVmll
dzE2ZnJhbWVTaXplQ2hhbmdlZEV2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MTZzZXRQYWludEJl
aGF2aW9yRWoKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcxN2FkZFNjcm9sbGFibGVBcmVhRVBOU18x
NFNjcm9sbGFibGVBcmVhRQogX19aTjdXZWJDb3JlOUZyYW1lVmlldzE3cGFpbnRDb250cm9sVGlu
dHNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDMwZGVjNWNiMzM2NjI2YTMzNmYw
M2MxYmY5MmQxNzA4YTExNDNlZGMuLjgyNmUyZmVkOWFjYTNmZTBjYzU5OTliZTA1NWFkMTk2ODkw
OTgyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTEyOTEsOSArMTI5MSw2IEBA
IHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBib2R5UmVuZGVyZXItPnNldENoaWxkTmVlZHNMYXlvdXQoKTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZSBpZiAocm9vdFJlbmRlcmVyICYmIHJvb3RSZW5kZXJlci0+c3RyZXRj
aGVzVG9WaWV3cG9ydCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5z
ZXRDaGlsZE5lZWRzTGF5b3V0KCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRo
aXMgc2VlbXMgbGlrZSB0aGUgd3JvbmcgcGxhY2UgdG8gZG8gdGhpczogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTY4MgotICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC51cGRhdGVWaWV3cG9ydFVuaXRzT25SZXNpemUoKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKQEAgLTIzMDYsNiArMjMwMywxOCBAQCBib29sIEZyYW1lVmlldzo6cmVu
ZGVyZWRDaGFyYWN0ZXJzRXhjZWVkKHVuc2lnbmVkIHRocmVzaG9sZCkKIHZvaWQgRnJhbWVWaWV3
Ojpjb250ZW50c1Jlc2l6ZWQoKQogewogICAgIFNjcm9sbFZpZXc6OmNvbnRlbnRzUmVzaXplZCgp
OworICAgIC8vIEZJWE1FOiBUaGUgRnJhbWVWaWV3IGNvbnRlbnRzIHNob3VsZCByZXNpemUgYXMg
YSByZXN1bHQgb2YgbGF5b3V0LCBzbyB0aGlzIHNlZW1zIGNpcmN1bGFyLgorICAgIC8vIGZyYW1l
U2l6ZUNoYW5nZWQoKSBzZWVtcyBwcmVmZXJhYmxlLgorICAgIHNldE5lZWRzTGF5b3V0KCk7Cit9
CisKK3ZvaWQgRnJhbWVWaWV3OjpmcmFtZVNpemVDaGFuZ2VkKCkKK3sKKyAgICBTY3JvbGxWaWV3
OjpmcmFtZVNpemVDaGFuZ2VkKCk7CisKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+dXBkYXRlVmlld3BvcnRVbml0c09u
UmVzaXplKCk7CisKICAgICBzZXROZWVkc0xheW91dCgpOwogfQogCkBAIC0yMzE1LDYgKzIzMjQs
OCBAQCB2b2lkIEZyYW1lVmlldzo6Zml4ZWRMYXlvdXRTaXplQ2hhbmdlZCgpCiAgICAgLy8gQW4g
QVNTRVJUIGlzIHRyaWdnZXJlZCB3aGVuIGEgdmlldyBzY2hlZHVsZXMgYSBsYXlvdXQgYmVmb3Jl
IGJlaW5nIGF0dGFjaGVkIHRvIGEgZnJhbWUuCiAgICAgaWYgKCFmcmFtZSgpLnZpZXcoKSkKICAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1FOiBzaG91bGQgZml4ZWQgbGF5b3V0IHNp
emUgYWZmZWN0IHZpZXdwb3J0IHVuaXRzPwogICAgIFNjcm9sbFZpZXc6OmZpeGVkTGF5b3V0U2l6
ZUNoYW5nZWQoKTsKIH0KIApAQCAtMjM0NCw4ICsyMzU1LDExIEBAIHZvaWQgRnJhbWVWaWV3Ojp2
aXNpYmxlQ29udGVudHNSZXNpemVkKCkKICAgICB9CiAjZW5kaWYKIAotICAgIGlmIChzaG91bGRM
YXlvdXRBZnRlckNvbnRlbnRzUmVzaXplZCgpICYmIG5lZWRzTGF5b3V0KCkpCi0gICAgICAgIGxh
eW91dCgpOworICAgIGlmIChzaG91bGRMYXlvdXRBZnRlckNvbnRlbnRzUmVzaXplZCgpKSB7Cisg
ICAgICAgIGZyYW1lKCkuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgICAg
ICBpZiAobmVlZHNMYXlvdXQoKSkKKyAgICAgICAgICAgIGxheW91dCgpOworICAgIH0KIAogICAg
IGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7CiAgICAg
ICAgIGlmIChyZW5kZXJWaWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCmluZGV4IDI3YmY0MGMyMWFmOWVhMmY0ZTRjNmU3ODQ4Njg5ZDU4MTU2MWVlMWEuLjhhZjQx
ZmQ2N2VmNjZhZjkxN2I4ZWRhZTBjOTk3NTdhZDBlMGMwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaApAQCAtNDgzLDYgKzQ4Myw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0
dWFsIGZsb2F0IHRvcENvbnRlbnRJbnNldChUb3BDb250ZW50SW5zZXRUeXBlID0gVG9wQ29udGVu
dEluc2V0VHlwZTo6V2ViQ29yZUNvbnRlbnRJbnNldCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCB0b3BDb250ZW50SW5zZXREaWRDaGFuZ2UoZmxvYXQgbmV3VG9wQ29udGVudEluc2V0KTsKIAor
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBmcmFtZVNpemVDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbFN0YXJ0TGl2ZVJlc2l6
ZSgpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2
ZVJlc2l6ZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CmluZGV4IDdlYjk0YzNhMDcyMmVlMWI1ZThmYWU4NzFhNWMzYTAwNmNjNDE1OGYuLjQyZTk0Y2Jk
NTM0ZjY3NDFlODZjZmI0YzgzMGEzNWQ4MWNjNmE5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwCkBAIC0xMDUxLDkgKzEwNTEsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogICAgIGZyYW1lUmVjdHNDaGFuZ2Vk
KCk7CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKHNjcm9sbE9mZnNldCgpKTsKLQotICAgIGlmICgh
bV91c2VGaXhlZExheW91dCAmJiBvbGRSZWN0LnNpemUoKSAhPSBuZXdSZWN0LnNpemUoKSkKLSAg
ICAgICAgY29udGVudHNSZXNpemVkKCk7CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6ZnJhbWVSZWN0
c0NoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCAxMzhjYWRmYzNhNWFhNWVj
NDdiMjE5MjA0OTY0Yjg5YThlMTUzYmZhLi5mZDAyYjBiZTIzY2I5YmZmYzMzZTQzZDE3M2Q5Mzkw
ZTI0MTY1ZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtMTY3LDYgKzE2Nyw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBJbnRQb2ludCBjb252ZXJ0VG9Db250YWluaW5n
V2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgSW50UG9pbnQgY29udmVydEZyb21D
b250YWluaW5nV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZnJhbWVTaXplQ2hhbmdlZCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmcmFtZVJlY3RzQ2hh
bmdlZCgpIHsgfQogCiAgICAgLy8gTm90aWZpZXMgdGhpcyB3aWRnZXQgdGhhdCBpdHMgY2xpcCBy
ZWN0IGNoYW5nZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lk
Z2V0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQppbmRl
eCAxYTk4MjcxM2U4MWQ0OTk3OGNlZWQ2YzYwMWZmMThjMjE3NzMxYTNiLi41ZjMzYTFjYWQzNTVk
NTY5YmE1MmMwMmRiMjNjZThmZDA1YjU1MTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XaWRnZXRNYWMubW0KQEAgLTE1MCw4ICsxNTAsMTIgQEAgSW50UmVjdCBXaWRnZXQ6OmZyYW1l
UmVjdCgpIGNvbnN0CiAKIHZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKKyAgICBJbnRSZWN0IG9sZEZyYW1lID0gbV9mcmFtZTsKICAgICBtX2ZyYW1lID0g
cmVjdDsKIAorICAgIGlmIChvbGRGcmFtZS5zaXplKCkgIT0gbV9mcmFtZS5zaXplKCkpCisgICAg
ICAgIGZyYW1lU2l6ZUNoYW5nZWQoKTsKKwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKIAogICAgIE5TVmlldyAqb3V0ZXJWaWV3ID0gZ2V0T3V0ZXJWaWV3KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggOTFkMmU3NjIzZmUxYzcwYTkxNzFmNjg1
MzU4YmEyYWE3ZGFiMGI2NC4uMThjNTU0NDZjMTg2ZmExMzA4OTY2NDA3MzRkMTU0MzRhODdhOTk0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMTQ0OCw3ICsx
NDQ4LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpzZXRUcmVlU3RhdGUoUmVuZGVyVHJlZVN0YXRlIHN0
YXRlKQogICAgICAgICBBU1NFUlQobV90cmVlU3RhdGUgPT0gUmVuZGVyVHJlZVN0YXRlOjpJbml0
aWFsIHx8IG1fdHJlZVN0YXRlID09IFJlbmRlclRyZWVTdGF0ZTo6UGVuZGluZ0xheW91dCB8fCBt
X3RyZWVTdGF0ZSA9PSBSZW5kZXJUcmVlU3RhdGU6OkxhaWRPdXQgfHwgbV90cmVlU3RhdGUgPT0g
UmVuZGVyVHJlZVN0YXRlOjpQZW5kaW5nU3R5bGVSZWNhbGMpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJlbmRlclRyZWVTdGF0ZTo6U3R5bGVSZWNhbGM6Ci0gICAgICAgIEFTU0VSVChtX3Ry
ZWVTdGF0ZSA9PSBSZW5kZXJUcmVlU3RhdGU6OlBlbmRpbmdTdHlsZVJlY2FsYyk7CisvLyAgICAg
ICAgQVNTRVJUKG1fdHJlZVN0YXRlID09IFJlbmRlclRyZWVTdGF0ZTo6UGVuZGluZ1N0eWxlUmVj
YWxjKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZW5kZXJUcmVlU3RhdGU6OlBlbmRpbmdM
YXlvdXQ6CiAgICAgICAgIGlmIChtX3RyZWVTdGF0ZSA9PSBSZW5kZXJUcmVlU3RhdGU6OlBlbmRp
bmdTdHlsZVJlY2FsYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
aW5kZXggMmU2Mjg3N2MxODY3YTU4MzM2YWVlNDhmZDAwZGQyMzU5MTdjY2ZlNi4uZmMwNjhhNTVj
NDI2MDQzNDhiOGE5MGFjNzIzY2NmNTZiMzVkMTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIFJlbmRlcldpZGdl
dDo6dXBkYXRlV2lkZ2V0UG9zaXRpb24oKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWFrUHRy
PFJlbmRlcldpZGdldD4gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgYm9vbCB3aWRn
ZXRTaXplQ2hhbmdlZCA9IHVwZGF0ZVdpZGdldEdlb21ldHJ5KCk7CisgICAgdXBkYXRlV2lkZ2V0
R2VvbWV0cnkoKTsKICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICByZXR1cm47CiAKQEAgLTMx
Nyw3ICszMTcsNyBAQCB2b2lkIFJlbmRlcldpZGdldDo6dXBkYXRlV2lkZ2V0UG9zaXRpb24oKQog
ICAgIGlmIChpczxGcmFtZVZpZXc+KCptX3dpZGdldCkpIHsKICAgICAgICAgRnJhbWVWaWV3JiBm
cmFtZVZpZXcgPSBkb3duY2FzdDxGcmFtZVZpZXc+KCptX3dpZGdldCk7CiAgICAgICAgIC8vIENo
ZWNrIHRoZSBmcmFtZSdzIHBhZ2UgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGZyYW1lIGlzbid0IGlu
IHRoZSBwcm9jZXNzIG9mIGJlaW5nIGRlc3Ryb3llZC4KLSAgICAgICAgaWYgKCh3aWRnZXRTaXpl
Q2hhbmdlZCB8fCBmcmFtZVZpZXcubmVlZHNMYXlvdXQoKSkgJiYgZnJhbWVWaWV3LmZyYW1lKCku
cGFnZSgpKQorICAgICAgICBpZiAoZnJhbWVWaWV3Lm5lZWRzTGF5b3V0KCkgJiYgZnJhbWVWaWV3
LmZyYW1lKCkucGFnZSgpKQogICAgICAgICAgICAgZnJhbWVWaWV3LmxheW91dCgpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KaW5kZXggYTUxZDNl
ODNlNmI5NWI4YTE0Y2JhMjdjMTkwYmQ3NTFlN2Q0NmM5YS4uYzEzMTllN2NlYmJlZjZlODk4YjUy
ZGE1YzExYTU0OTVlMDJlOWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVZpZXcubW0KQEAgLTM1MSw3ICszNTEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNG
cm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAg
ICAgICBbW3NlbGYgX3Njcm9sbFZpZXddIHNldERyYXdzQmFja2dyb3VuZDpZRVNdOwogICAgIGlm
IChGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV0pIHsKICAgICAgICAgaWYgKEZy
YW1lVmlldyogY29yZUZyYW1lVmlldyA9IGNvcmVGcmFtZS0+dmlldygpKQotICAgICAgICAgICAg
Y29yZUZyYW1lVmlldy0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNvcmVGcmFtZVZp
ZXctPmZyYW1lU2l6ZUNoYW5nZWQoKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247317</attachid>
            <date>2015-02-24 23:31:21 -0800</date>
            <delta_ts>2015-02-25 07:15:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141682-20150224233108.patch</filename>
            <type>text/plain</type>
            <size>6140</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTYzYzUxNDc0YTc2Njc0
MWM5YTkyNmRmYTc4NGMwZjNiN2M1MjYxNC4uYzFjN2IxNGJkMWI3ZjA2ZmUzMGE3NTMxMjQwNWY4
ZmJmYTEyMzJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE1LTAyLTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFZpZXdwb3J0IHVu
aXRzIHNob3VsZCBub3QgZGlydHkgc3R5bGUganVzdCBiZWZvcmUgd2UgZG8gbGF5b3V0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE2ODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEluIGRv
Y3VtZW50cyB1c2luZyB2aWV3cG9ydCB1bml0cywgd2UgZGlydGllZCBzdHlsZSBldmVyeSB0aW1l
IGxheW91dCBjaGFuZ2VkCisgICAgICAgIHRoZSBzaXplIG9mIHRoZSBkb2N1bWVudC4gVGhpcyBp
cyBub25zZW5zaWNhbCwgYmVjYXVzZSB2aWV3cG9ydCB1bml0cyBkZXBlbmQgb24gdGhlCisgICAg
ICAgIHZpZXdwb3J0IHNpemUsIG5vdCB0aGUgZG9jdW1lbnQgc2l6ZS4KKyAgICAgICAgCisgICAg
ICAgIE1vdmUgdGhlIHN0eWxlIGRpcnR5aW5nIGZyb20gbGF5b3V0KCkgaW50byBhdmFpbGFibGVD
b250ZW50U2l6ZUNoYW5nZWQoKS4gSG9vaworICAgICAgICB0aGlzIHVwIGZvciBXZWJLaXQxIGJ5
IGNhbGxpbmcgZnJvbSAtW1dlYkZyYW1lVmlldyBfZnJhbWVTaXplQ2hhbmdlZF0sIGFuZCwKKyAg
ICAgICAgc2luY2UgdGhhdCBjYXVzZXMgYXZhaWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKCkgdG8g
YmUgY2FsbGVkIGZvciBXSzEgZm9yIHRoZSBmaXJzdAorICAgICAgICB0aW1lLCBwcm90ZWN0IHRo
ZSBjYWxsIHRvIHVwZGF0ZVNjcm9sbGJhcnMoKSB3aXRoIGEgIXBsYXRmb3JtV2lkZ2V0IGNoZWNr
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rpbmcgdmlld3BvcnQgdW5pdCB0ZXN0cy4KKwor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YXZhaWxhYmxlQ29udGVu
dFNpemVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlld3BvcnRTaXpl
Rm9yQ1NTVmlld3BvcnRVbml0cyk6IEFkZCBhIEZJWE1FIGNvbW1lbnQuIFdoZXRoZXIKKyAgICAg
ICAgc2Nyb2xsYmFycyBhcmUgaWdub3JlZCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiB0aGUgb3Zl
cmZsb3cgcHJvcGVydHkgb24gdGhlIHJvb3QgZWxlbWVudC4KKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6YXZhaWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKToKKworMjAxNS0w
Mi0yNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBD
bGFyaWZ5IHNvbWUgcmVzaXppbmcgdGVybWlub2xvZ3kgaW4gU2Nyb2xsVmlldy9GcmFtZVZpZXcK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTk5Ngog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggYzZiNDk2MjgwMDE5NTE1NjFjNzhhYjhjNDBlMTVmMTIwOTBj
M2EyNS4uYmU5M2MwMDJjZTE2NGZjYTJjNWFmODQxZGEwMDk1Y2UwMmExYjA2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAyLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFZpZXdwb3J0IHVuaXRzIHNob3VsZCBub3Qg
ZGlydHkgc3R5bGUganVzdCBiZWZvcmUgd2UgZG8gbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE2ODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2ZyYW1lU2l6ZUNoYW5nZWRdKToKKwogMjAxNS0wMi0y
NCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MDU5OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA0MzMzOTI1YzJlNDA1MTAzZDgxYjJkNDJlNjZjYjE0YWVkNDE3YzcwLi43OTdkMTQzM2Uw
ZGNkYTg5M2ZmYzhjNDc2YjY5ZGFjY2JkOWY5NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC0xMjg4LDggKzEyODgsNiBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxs
b3dTdWJ0cmVlKQogICAgICAgICAgICAgICAgICAgICAgICAgYm9keVJlbmRlcmVyLT5zZXRDaGls
ZE5lZWRzTGF5b3V0KCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJvb3RSZW5kZXJl
ciAmJiByb290UmVuZGVyZXItPnN0cmV0Y2hlc1RvVmlld3BvcnQoKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIHJvb3RSZW5kZXJlci0+c2V0Q2hpbGROZWVkc0xheW91dCgpOwotCi0gICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnVwZGF0ZVZpZXdwb3J0VW5pdHNPblJlc2l6ZSgpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApAQCAtMjI5MSw2ICsyMjg5LDkgQEAgYm9v
bCBGcmFtZVZpZXc6OnJlbmRlcmVkQ2hhcmFjdGVyc0V4Y2VlZCh1bnNpZ25lZCB0aHJlc2hvbGQp
CiAKIHZvaWQgRnJhbWVWaWV3OjphdmFpbGFibGVDb250ZW50U2l6ZUNoYW5nZWQoQXZhaWxhYmxl
U2l6ZUNoYW5nZVJlYXNvbiByZWFzb24pCiB7CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9
IGZyYW1lKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZVZpZXdwb3J0VW5p
dHNPblJlc2l6ZSgpOworCiAgICAgc2V0TmVlZHNMYXlvdXQoKTsKICAgICBTY3JvbGxWaWV3Ojph
dmFpbGFibGVDb250ZW50U2l6ZUNoYW5nZWQocmVhc29uKTsKIH0KQEAgLTQ3MzQsNiArNDczNSw4
IEBAIEludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkg
Y29uc3QKICAgICBpZiAobV9oYXNPdmVycmlkZVZpZXdwb3J0U2l6ZSkKICAgICAgICAgcmV0dXJu
IG1fb3ZlcnJpZGVWaWV3cG9ydFNpemU7CiAgICAgCisgICAgLy8gRklYTUU6IHRoZSB2YWx1ZSBy
ZXR1cm5lZCBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgdGhlIHZhbHVlIG9mIHRoZSBvdmVyZmxv
dworICAgIC8vIHByb3BlcnR5IG9uIHRoZSByb290IGVsZW1lbnQuCiAgICAgcmV0dXJuIHZpc2li
bGVDb250ZW50UmVjdEluY2x1ZGluZ1Njcm9sbGJhcnMoKS5zaXplKCk7CiB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAppbmRleCA5NjljMDA5ZTMzODVmNzZkY2Q0Nzg5M2U4NTk3OTRkNmYy
MjQ4MWIxLi4zY2QyMTllYWUwM2VmMzIwNDc0MGNhMDdkYTYzMzM3Zjk4NDlhOThkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQ4OCw2ICs0ODgsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxTdGFydExpdmVSZXNpemUoKSBvdmVycmlkZTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUoKSBvdmVycmlk
ZTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBhdmFpbGFibGVDb250ZW50U2l6
ZUNoYW5nZWQoQXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbikgb3ZlcnJpZGU7CisKICAgICB2b2lk
IGFkZFBhaW50UGVuZGluZ01pbGVzdG9uZXMoTGF5b3V0TWlsZXN0b25lcyk7CiAgICAgdm9pZCBm
aXJlUGFpbnRSZWxhdGVkTWlsZXN0b25lc0lmTmVlZGVkKCk7CiAgICAgdm9pZCBmaXJlTGF5b3V0
UmVsYXRlZE1pbGVzdG9uZXNJZk5lZWRlZCgpOwpAQCAtNTgxLDcgKzU4Myw2IEBAIHByaXZhdGU6
CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVj
dCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50c1NpemUoKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgYXZhaWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKEF2YWls
YWJsZVNpemVDaGFuZ2VSZWFzb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhZGRlZE9y
UmVtb3ZlZFNjcm9sbGJhcigpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRl
c1Njcm9sbGluZ0RpZENoYW5nZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAppbmRleCA3ZmNkMTJiODg2YTEyNWVmNjBiOGVkMGVhMjVjNTU5NWY2MzY2MjZm
Li42YmRjOTBlNzNmNWU3Y2RlYzNkM2JiNmIzYzBkODk5ZjI5ZGFkYTYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtMzY2LDYgKzM2NiwxMCBAQCB2b2lkIFNjcm9s
bFZpZXc6OnNldFVzZUZpeGVkTGF5b3V0KGJvb2wgZW5hYmxlKQogdm9pZCBTY3JvbGxWaWV3Ojph
dmFpbGFibGVDb250ZW50U2l6ZUNoYW5nZWQoQXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbiByZWFz
b24pCiB7CiAgICAgU2Nyb2xsYWJsZUFyZWE6OmF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdlZChy
ZWFzb24pOworCisgICAgaWYgKHBsYXRmb3JtV2lkZ2V0KCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGlmIChyZWFzb24gIT0gQXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbjo6U2Nyb2xsYmFyc0No
YW5nZWQpCiAgICAgICAgIHVwZGF0ZVNjcm9sbGJhcnMoc2Nyb2xsT2Zmc2V0KCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCBhNTFkM2U4M2U2Yjk1
YjhhMTRjYmEyN2MxOTBiZDc1MWU3ZDQ2YzlhLi5kMDZhZWMzNTUwN2UwM2FiNjVhNWJhNDY4MzU4
OTgyMDllNDBmNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5t
bQpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFz
cyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgIFtb
c2VsZiBfc2Nyb2xsVmlld10gc2V0RHJhd3NCYWNrZ3JvdW5kOllFU107CiAgICAgaWYgKEZyYW1l
KiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXSkgewogICAgICAgICBpZiAoRnJhbWVWaWV3
KiBjb3JlRnJhbWVWaWV3ID0gY29yZUZyYW1lLT52aWV3KCkpCi0gICAgICAgICAgICBjb3JlRnJh
bWVWaWV3LT5zZXROZWVkc0xheW91dCgpOworICAgICAgICAgICAgY29yZUZyYW1lVmlldy0+YXZh
aWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKFNjcm9sbGFibGVBcmVhOjpBdmFpbGFibGVTaXplQ2hh
bmdlUmVhc29uOjpBcmVhU2l6ZUNoYW5nZWQpOwogICAgIH0KIH0KIAo=
</data>
<flag name="review"
          id="272252"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>