<?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>135168</bug_id>
          
          <creation_ts>2014-07-22 12:22:25 -0700</creation_ts>
          <short_desc>ASSERT in Document::unregisterCollection reloading apple.com</short_desc>
          <delta_ts>2019-02-06 09:04:13 -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>DOM</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024031</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-22 12:22:25 -0700</bug_when>
    <thetext>* SUMMARY
ASSERT reloading &lt;http://www.apple.com&gt;.

* STEPS TO REPRODUCE
1. Load http://www.apple.com
2. Reload
  =&gt; ASSERT

ASSERTION FAILED: m_inInvalidateNodeListAndCollectionCaches ? m_collectionsInvalidatedAtDocument.isEmpty() : m_collectionsInvalidatedAtDocument.contains(&amp;collection)

(lldb) bt
* thread #1: tid = 0x6a39bc, 0x00000001133be3aa JavaScriptCore`WTFCrash + 42 at Assertions.cpp:329, queue = &apos;com.apple.main-thread&apos;, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
  * frame #0: 0x00000001133be3aa JavaScriptCore`WTFCrash + 42 at Assertions.cpp:329
    frame #1: 0x0000000114bbb6c7 WebCore`WebCore::Document::unregisterCollection(this=0x00007fd55c8b4000, collection=0x00007fd55c386f10) + 279 at Document.cpp:3516
    frame #2: 0x0000000115037f1e WebCore`WebCore::HTMLCollection::~HTMLCollection(this=0x00007fd55c386f10) + 94 at HTMLCollection.cpp:156
    frame #3: 0x00000001150380c5 WebCore`WebCore::HTMLCollection::~HTMLCollection(this=0x00007fd55c386f10) + 21 at HTMLCollection.cpp:154
    frame #4: 0x00000001150380e9 WebCore`WebCore::HTMLCollection::~HTMLCollection(this=0x00007fd55c386f10) + 25 at HTMLCollection.cpp:154
    frame #5: 0x0000000114693123 WebCore`WTF::RefCounted&lt;WebCore::HTMLCollection&gt;::deref(this=0x00007fd55c386f20) + 83 at RefCounted.h:146
    frame #6: 0x00000001155eb039 WebCore`WebCore::JSHTMLCollection::releaseImplIfNotNull(this=0x000000011e048e10) + 57 at JSHTMLCollection.h:63
    frame #7: 0x00000001155ea615 WebCore`WebCore::JSHTMLCollection::~JSHTMLCollection(this=0x000000011e048e10) + 21 at JSHTMLCollection.cpp:172
    frame #8: 0x00000001155ea5f5 WebCore`WebCore::JSHTMLCollection::~JSHTMLCollection(this=0x000000011e048e10) + 21 at JSHTMLCollection.cpp:171
    frame #9: 0x00000001155e9b3d WebCore`WebCore::JSHTMLCollection::destroy(cell=0x000000011e048e10) + 29 at JSHTMLCollection.cpp:167
    frame #10: 0x00000001131ccf86 JavaScriptCore`void JSC::MarkedBlock::callDestructor&lt;(this=0x000000011e040000, cell=0x000000011e048e10)2&gt;(JSC::JSCell*) + 70 at MarkedBlock.cpp:65
    frame #11: 0x00000001131ccd38 JavaScriptCore`JSC::MarkedBlock::FreeList JSC::MarkedBlock::specializedSweep&lt;(this=0x000000011e040000)3, (JSC::MarkedBlock::SweepMode)1, (JSC::MarkedBlock::DestructorType)2&gt;() + 216 at MarkedBlock.cpp:89
    frame #12: 0x00000001131cbe9a JavaScriptCore`JSC::MarkedBlock::FreeList JSC::MarkedBlock::sweepHelper&lt;(this=0x000000011e040000, sweepMode=SweepToFreeList)2&gt;(JSC::MarkedBlock::SweepMode) + 282 at MarkedBlock.cpp:142
    frame #13: 0x00000001131cb689 JavaScriptCore`JSC::MarkedBlock::sweep(this=0x000000011e040000, sweepMode=SweepToFreeList) + 233 at MarkedBlock.cpp:121
    frame #14: 0x00000001131cab7e JavaScriptCore`JSC::MarkedAllocator::tryAllocateHelper(this=0x00007fd55f831990, bytes=32) + 270 at MarkedAllocator.cpp:80
    frame #15: 0x00000001131c9122 JavaScriptCore`JSC::MarkedAllocator::tryAllocate(this=0x00007fd55f831990, bytes=32) + 114 at MarkedAllocator.cpp:129
    frame #16: 0x00000001131c8a0e JavaScriptCore`JSC::MarkedAllocator::allocateSlowCase(this=0x00007fd55f831990, bytes=32) + 254 at MarkedAllocator.cpp:171
    frame #17: 0x0000000114771b41 WebCore`JSC::MarkedAllocator::allocate(this=0x00007fd55f831990, bytes=32) + 81 at MarkedAllocator.h:95
    frame #18: 0x00000001147f77f9 WebCore`JSC::MarkedSpace::allocateWithNormalDestructor(this=0x00007fd55f831928, bytes=32) + 41 at MarkedSpace.h:251
    frame #19: 0x00000001147f77c6 WebCore`JSC::Heap::allocateWithNormalDestructor(this=0x00007fd55f831618, bytes=32) + 118 at HeapInlines.h:187
    frame #20: 0x00000001155a0d37 WebCore`void* JSC::allocateCell&lt;WebCore::JSEvent&gt;(heap=0x00007fd55f831618, size=32) + 151 at JSCellInlines.h:122
    frame #21: 0x00000001155a0c8f WebCore`void* JSC::allocateCell&lt;WebCore::JSEvent&gt;(heap=0x00007fd55f831618) + 31 at JSCellInlines.h:136
    frame #22: 0x00000001155a0ade WebCore`WebCore::JSEvent::create(structure=0x0000000123852570, globalObject=0x000000011e02e870, impl=PassRefPtr&lt;WebCore::Event&gt; at 0x00007fff56892bb0) + 46 at JSEvent.h:36
    frame #23: 0x0000000115592a66 WebCore`WebCore::JSDOMWrapper* WebCore::createWrapper&lt;WebCore::JSEvent, WebCore::Event&gt;(globalObject=0x000000011e02e870, node=0x00007fd55c2bcf70) + 214 at JSDOMBinding.h:229
    frame #24: 0x0000000115591c87 WebCore`WebCore::toJS((null)=0x000000011e02e8b0, globalObject=0x000000011e02e870, event=0x00007fd55c2bcf70) + 455 at JSEventCustom.cpp:68
    frame #25: 0x00000001155a56d6 WebCore`WebCore::JSEventListener::handleEvent(this=0x00007fd55c3b9af0, scriptExecutionContext=0x00007fd55c8b40a0, event=0x00007fd55c2bcf70) + 774 at JSEventListener.cpp:114
    frame #26: 0x0000000114dac9cf WebCore`WebCore::EventTarget::fireEventListeners(this=0x00007fd55c0e61c0, event=0x00007fd55c2bcf70, d=0x00007fd55c0e61c8, entry=0x00007fd55c3cd980) + 1503 at EventTarget.cpp:246
    frame #27: 0x0000000114dac29e WebCore`WebCore::EventTarget::fireEventListeners(this=0x00007fd55c0e61c0, event=0x00007fd55c2bcf70) + 334 at EventTarget.cpp:197
    frame #28: 0x0000000114cd5c5b WebCore`WebCore::DOMWindow::dispatchEvent(this=0x00007fd55c0e61c0, prpEvent=&lt;unavailable&gt;, prpTarget=(m_ptr = WebCore::EventTarget * = 0x0000000000000000)) + 539 at DOMWindow.cpp:1897
    frame #29: 0x0000000114f11667 WebCore`WebCore::FrameLoader::stopLoading(this=0x00007fd55c02a0b0, unloadEventPolicy=UnloadEventPolicyUnloadAndPageHide) + 983 at FrameLoader.cpp:464
    frame #30: 0x0000000114f11c9f WebCore`WebCore::FrameLoader::closeURL(this=0x00007fd55c02a0b0) + 111 at FrameLoader.cpp:543
    frame #31: 0x0000000114f1a2a9 WebCore`WebCore::FrameLoader::transitionToCommitted(this=0x00007fd55c02a0b0, cachedPage=0x0000000000000000) + 345 at FrameLoader.cpp:1901
    frame #32: 0x0000000114f1993f WebCore`WebCore::FrameLoader::commitProvisionalLoad(this=0x00007fd55c02a0b0) + 2143 at FrameLoader.cpp:1798
    frame #33: 0x0000000114c051ec WebCore`WebCore::DocumentLoader::commitIfReady(this=0x00007fd55b829400) + 60 at DocumentLoader.cpp:355
    frame #34: 0x0000000114c0825c WebCore`WebCore::DocumentLoader::commitLoad(this=0x00007fd55b829400, data=0x00007fd55e18e000, length=10161) + 76 at DocumentLoader.cpp:763
    frame #35: 0x0000000114c08b7d WebCore`WebCore::DocumentLoader::dataReceived(this=0x00007fd55b829400, resource=0x00007fd565eba3f0, data=0x00007fd55e18e000, length=10161) + 1693 at DocumentLoader.cpp:888
    frame #36: 0x0000000114815031 WebCore`WebCore::CachedRawResource::notifyClientsDataWasReceived(this=0x00007fd565eba3f0, data=0x00007fd55e18e000, length=10161) + 161 at CachedRawResource.cpp:114
    frame #37: 0x0000000114814f17 WebCore`WebCore::CachedRawResource::addDataBuffer(this=0x00007fd565eba3f0, data=0x00007fd55c2e5c80) + 215 at CachedRawResource.cpp:70
    frame #38: 0x00000001162c07fe WebCore`WebCore::SubresourceLoader::didReceiveDataOrBuffer(this=0x00007fd565c9f8c0, data=0x00007fd55f916a50, length=10161, prpBuffer=PassRefPtr&lt;WebCore::SharedBuffer&gt; at 0x00007fff56893e60, encodedDataLength=-1, dataPayloadType=DataPayloadBytes) + 478 at SubresourceLoader.cpp:274
    frame #39: 0x00000001162c0606 WebCore`WebCore::SubresourceLoader::didReceiveData(this=0x00007fd565c9f8c0, data=0x00007fd55f916a50, length=10161, encodedDataLength=-1, dataPayloadType=DataPayloadBytes) + 102 at SubresourceLoader.cpp:250
    frame #40: 0x00000001109a77ff WebKit`WebKit::WebResourceLoader::didReceiveData(this=0x00007fd568644f50, data=0x00007fff56894020, encodedDataLength=-1) + 223 at WebResourceLoader.cpp:148
    frame #41: 0x00000001109ab175 WebKit`void IPC::callMemberFunctionImpl&lt;WebKit::WebResourceLoader, void (object=0x00007fd568644f50, function=0x00000001109a7720, args=0x00007fff56894020, (null)=index_sequence&lt;0, 1&gt; at 0x00007fff56893f38)(IPC::DataReference const&amp;, long long), std::__1::tuple&lt;IPC::DataReference, long long&gt;, 0ul, 1ul&gt;(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long), std::__1::tuple&lt;IPC::DataReference, long long&gt;&amp;&amp;, std::index_sequence&lt;0ul, 1ul&gt;) + 181 at HandleMessage.h:16
    frame #42: 0x00000001109ab018 WebKit`void IPC::callMemberFunction&lt;WebKit::WebResourceLoader, void (args=0x00007fff56894020, object=0x00007fd568644f50, function=0x00000001109a7720)(IPC::DataReference const&amp;, long long), std::__1::tuple&lt;IPC::DataReference, long long&gt;, std::make_index_sequence&lt;2ul&gt; &gt;(std::__1::tuple&lt;IPC::DataReference, long long&gt;&amp;&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long)) + 88 at HandleMessage.h:22
    frame #43: 0x00000001109aa1eb WebKit`void IPC::handleMessage&lt;Messages::WebResourceLoader::DidReceiveData, WebKit::WebResourceLoader, void (decoder=0x00007fd565f18d80, object=0x00007fd568644f50, function=0x00000001109a7720)(IPC::DataReference const&amp;, long long)&gt;(IPC::MessageDecoder&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::DataReference const&amp;, long long)) + 283 at HandleMessage.h:120
    frame #44: 0x00000001109a97fc WebKit`WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(this=0x00007fd568644f50, (null)=0x00007fd55c3170f0, decoder=0x00007fd565f18d80) + 636 at WebResourceLoaderMessageReceiver.cpp:68
    frame #45: 0x000000011046bf60 WebKit`WebKit::NetworkProcessConnection::didReceiveMessage(this=0x00007fd55c3090f0, connection=0x00007fd55c3170f0, decoder=0x00007fd565f18d80) + 160 at NetworkProcessConnection.cpp:61
    frame #46: 0x00000001102698c3 WebKit`IPC::Connection::dispatchMessage(this=0x00007fd55c3170f0, decoder=0x00007fd565f18d80) + 51 at Connection.cpp:809
    frame #47: 0x0000000110261ba0 WebKit`IPC::Connection::dispatchMessage(this=0x00007fd55c3170f0, message=unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt; at 0x00007fff568944a8) + 368 at Connection.cpp:828
    frame #48: 0x000000011026969f WebKit`IPC::Connection::dispatchOneMessage(this=0x00007fd55c3170f0) + 1439 at Connection.cpp:856
    frame #49: 0x000000011027a8f2 WebKit`WTF::FunctionWrapper&lt;void (this=0x00007fd55c5f5c30, c=0x00007fd55c3170f0)()&gt;::operator()(IPC::Connection*) + 114 at Functional.h:218
    frame #50: 0x000000011027a875 WebKit`WTF::BoundFunctionImpl&lt;WTF::FunctionWrapper&lt;void (this=0x00007fd55c5f5c20)()&gt;, void (IPC::Connection*)&gt;::operator()() + 53 at Functional.h:496
    frame #51: 0x0000000110280a62 WebKit`WTF::Function&lt;void (this=0x00007fd565f288d8)&gt;::operator()() const + 114 at Functional.h:704
    frame #52: 0x00000001102809dc WebKit`std::__1::__function::__func&lt;WTF::Function&lt;void ()&gt;, std::__1::allocator&lt;WTF::Function&lt;void ()&gt; &gt;, void ()&gt;::operator()() [inlined] decltype(this=0x00007fd565f288d8, __f=0x00007fd565f288d8)&gt;&amp;&gt;(fp)(std::__1::forward&lt;&gt;(fp0))) std::__1::__invoke&lt;WTF::Function&lt;void ()&gt;&amp;&gt;(WTF::Function&lt;void ()&gt;&amp;&amp;&amp;) + 60 at __functional_base:413
    frame #53: 0x00000001102809cb WebKit`std::__1::__function::__func&lt;WTF::Function&lt;void (this=0x00007fd565f288d0)&gt;, std::__1::allocator&lt;WTF::Function&lt;void ()&gt; &gt;, void ()&gt;::operator()() + 43 at functional:1370
    frame #54: 0x00000001133e747a JavaScriptCore`std::__1::function&lt;void (this=0x00007fff568949e0)&gt;::operator()() const + 26 at functional:1755
    frame #55: 0x00000001133f6e12 JavaScriptCore`WTF::RunLoop::performWork(this=0x00007fd55c30c460) + 306 at RunLoop.cpp:104
    frame #56: 0x00000001133f8304 JavaScriptCore`WTF::RunLoop::performWork(context=0x00007fd55c30c460) + 36 at RunLoopCF.cpp:38
    frame #57: 0x00007fff88c06111 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #58: 0x00007fff88bf7c8d CoreFoundation`__CFRunLoopDoSources0 + 269
    frame #59: 0x00007fff88bf72db CoreFoundation`__CFRunLoopRun + 923
    frame #60: 0x00007fff88bf6cf8 CoreFoundation`CFRunLoopRunSpecific + 296
    ...

(lldb) up
frame #1: 0x0000000114bbb6c7 WebCore`WebCore::Document::unregisterCollection(this=0x00007fd55c8b4000, collection=0x00007fd55c386f10) + 279 at Document.cpp:3516
   3513	    if (!collection.isRootedAtDocument())
   3514	        return;
   3515	
-&gt; 3516	    ASSERT(m_inInvalidateNodeListAndCollectionCaches
   3517	        ? m_collectionsInvalidatedAtDocument.isEmpty()
   3518	        : m_collectionsInvalidatedAtDocument.contains(&amp;collection));
   3519	    m_collectionsInvalidatedAtDocument.remove(&amp;collection);

(lldb) p m_inInvalidateNodeListAndCollectionCaches
(bool) $0 = false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024032</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-22 12:23:33 -0700</bug_when>
    <thetext>FWIW, the collection is empty:

(lldb) p m_collectionsInvalidatedAtDocument.isEmpty()
(bool) $6 = true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024072</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-07-22 14:41:09 -0700</bug_when>
    <thetext>The issue is not with the assertion itself, but with the HashSet being properly zeroed out in Document::invalidateNodeListAndCollectionCaches() after HashTable gained proper move constructor and assignment operator.

The problematic HTMLCollection is of the DocLinks type. After it is created, the first change in any class attribute on www.apple.com (like hovering on/off a menu) results in the following call chain:

#0  WebCore::HTMLCollection::invalidateCache (this=0x3936000, attrName=0x7ffe59fb0de8 &lt;WebCore::HTMLNames::classAttr&gt;) at ../../Source/WebCore/html/HTMLCollection.h:114
#1  0x00007ffe56d016b9 in WebCore::Document::invalidateNodeListAndCollectionCaches (this=0x2b80a40, attrName=0x7ffe59fb0de8 &lt;WebCore::HTMLNames::classAttr&gt;)
    at ../../Source/WebCore/dom/Node.cpp:722
#2  0x00007ffe56d017e5 in WebCore::Node::invalidateNodeListAndCollectionCachesInAncestors (this=0x2788210, attrName=0x7ffe59fb0de8 &lt;WebCore::HTMLNames::classAttr&gt;, 
    attributeOwnerElement=0x2788210) at ../../Source/WebCore/dom/Node.cpp:742
#3  0x00007ffe56caeb78 in WebCore::Element::attributeChanged (this=0x2788210, name=..., oldValue=..., newValue=...) at ../../Source/WebCore/dom/Element.cpp:1103
#4  0x00007ffe56d52218 in WebCore::StyledElement::attributeChanged (this=0x2788210, name=..., oldValue=..., newValue=..., reason=WebCore::Element::ModifiedDirectly)
    at ../../Source/WebCore/dom/StyledElement.cpp:162
#5  0x00007ffe56cb2826 in WebCore::Element::didAddAttribute (this=0x2788210, name=..., value=...) at ../../Source/WebCore/dom/Element.cpp:2771
#6  0x00007ffe56cb27bb in WebCore::Element::addAttributeInternal (this=0x2788210, name=..., value=..., 
    inSynchronizationOfLazyAttribute=WebCore::Element::NotInSynchronizationOfLazyAttribute) at ../../Source/WebCore/dom/Element.cpp:1842
#7  0x00007ffe56cb83fb in WebCore::Element::setAttributeInternal (this=0x2788210, index=4294967295, name=..., newValue=..., 
    inSynchronizationOfLazyAttribute=WebCore::Element::NotInSynchronizationOfLazyAttribute) at ../../Source/WebCore/dom/Element.cpp:1032
#8  0x00007ffe56cae80a in WebCore::Element::setAttributeWithoutSynchronization (this=0x2788210, name=..., value=...) at ../../Source/WebCore/dom/Element.cpp:1014
#9  0x00007ffe57e489ff in WebCore::setJSElementClassName (exec=0x7fff008e45a0, baseObject=0x7ffe000bfdd0, thisValue=140728898809168, encodedValue=140728901566416)
    at DerivedSources/WebCore/JSElement.cpp:2276
#10 0x00007ffe5ac3e7c2 in JSC::callCustomSetter (exec=0x7fff008e45a0, customGetterSetter=..., base=0x7ffe000bfdd0, thisValue=..., value=...)
    at ../../Source/JavaScriptCore/runtime/CustomGetterSetter.cpp:44
#11 0x00007ffe5acb475e in JSC::JSObject::put (cell=0x7ffe0005ed50, exec=0x7fff008e45a0, propertyName=..., value=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSObject.cpp:393
#12 0x00007ffe5a99c312 in JSC::JSValue::put (this=0x7fff008e4488, exec=0x7fff008e45a0, propertyName=..., value=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:729
#13 0x00007ffe5adbce45 in llint_slow_path_put_by_id (exec=0x7fff008e45a0, pc=0x3515a40) at ../../Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:637
#14 0x00007ffe5adc88a9 in llint_entry () from /home/zan/dvt/webkit/hackhack/WebKitBuild/Debug/lib/libjavascriptcoregtk-3.0.so.0
#15 0x00007ffe5adcbf2b in llint_entry () from /home/zan/dvt/webkit/hackhack/WebKitBuild/Debug/lib/libjavascriptcoregtk-3.0.so.0
#16 0x00007ffe5adc5706 in callToJavaScript () from /home/zan/dvt/webkit/hackhack/WebKitBuild/Debug/lib/libjavascriptcoregtk-3.0.so.0

HTMLCollection::invalidateCache() then does nothing since the collection won&apos;t be invalidated for any change to a class attribute (like it would be in case of a changed href attribute).

The Document::invalidateNodeListAndCollectionCaches() has already zeroed out the m_collectionsInvalidatedAtDocument HashSet so the assertion in Document::unregisterCollection() fails when it gets called during the HTMLCollection&apos;s destruction.

This wasn&apos;t a problem before the HashTable changes since the entries were simply copied, and the assertion wouldn&apos;t be hit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024832</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-07-25 08:48:53 -0700</bug_when>
    <thetext>I think that Document::invalidateNodeListAndCollectionCaches() should be considered as working as intended.

I&apos;d recommend relaxing the assertion in Document::unregisterCollection() instead. It should only check that the HashSet object is empty if the unregister action is coming from invalidateNodeListAndCollectionCaches().

Something like this:
    ASSERT(m_inInvalidateNodeListAndCollectionCaches &amp;&amp; !m_listsInvalidatedAtDocument.isEmpty()
        || !m_inInvalidateNodeListAndCollectionCaches);

Opinions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025515</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-07-29 10:56:38 -0700</bug_when>
    <thetext>Also: http://alistapart.com/blog/post/ten-css-one-liners-to-replace-native-apps/

&lt;rdar://problem/17778184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025557</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-07-29 14:32:01 -0700</bug_when>
    <thetext>I&apos;ll try relaxing the assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025611</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-29 17:09:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Opinions?

Concept sounds fine. I didn’t read your new assertion carefully to be sure I understood the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026454</commentid>
    <comment_count>7</comment_count>
      <attachid>235932</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-02 04:45:46 -0700</bug_when>
    <thetext>Created attachment 235932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026455</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-02 04:47:57 -0700</bug_when>
    <thetext>Attachment 235932 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026456</commentid>
    <comment_count>9</comment_count>
      <attachid>235933</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-02 05:06:33 -0700</bug_when>
    <thetext>Created attachment 235933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026465</commentid>
    <comment_count>10</comment_count>
      <attachid>235933</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-02 09:24:50 -0700</bug_when>
    <thetext>Comment on attachment 235933
Patch

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

I’m going to say review+, but I think removing the assertion entirely would be better.

&gt; Source/WebCore/dom/Document.cpp:3527
&gt; -    ASSERT(m_inInvalidateNodeListAndCollectionCaches
&gt; -        ? m_collectionsInvalidatedAtDocument.isEmpty()
&gt; -        : m_collectionsInvalidatedAtDocument.contains(&amp;collection));
&gt; +    // This only ensures that Document::invalidateNodeListAndCollectionCaches() empties out
&gt; +    // the m_collectionsInvalidatedAtDocument HashSet but shouldn&apos;t assert that the collection
&gt; +    // is contianed in the HashSet otherwise. See https://webkit.org/b/135168.
&gt; +    ASSERT(m_inInvalidateNodeListAndCollectionCaches &amp;&amp; m_collectionsInvalidatedAtDocument.isEmpty()
&gt; +        || !m_inInvalidateNodeListAndCollectionCaches);

I don’t think we need an assertion at all. This asserts so little that it’s pretty much useless. Also, lets not land the misspelling contianed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026819</commentid>
    <comment_count>11</comment_count>
      <attachid>236017</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-05 01:01:07 -0700</bug_when>
    <thetext>Created attachment 236017
Patch

This patch removes the assertion altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027485</commentid>
    <comment_count>12</comment_count>
      <attachid>236017</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-07 07:11:55 -0700</bug_when>
    <thetext>Comment on attachment 236017
Patch

Clearing flags on attachment: 236017

Committed r172210: &lt;http://trac.webkit.org/changeset/172210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027486</commentid>
    <comment_count>13</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-07 07:12:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503127</commentid>
    <comment_count>14</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:04:13 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235932</attachid>
            <date>2014-08-02 04:45:46 -0700</date>
            <delta_ts>2014-08-02 05:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135168-20140802044532.patch</filename>
            <type>text/plain</type>
            <size>2244</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MTk2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA4LTAyICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBBU1NFUlQgaW4gRG9jdW1l
bnQ6OnVucmVnaXN0ZXJDb2xsZWN0aW9uIHJlbG9hZGluZyBhcHBsZS5jb20KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTE2OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEp
LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp1bnJlZ2lzdGVyQ29sbGVjdGlvbik6IEFkanVzdCB0aGUgYXNzZXJ0aW9uIHNvIGl0Cisg
ICAgICAgIG9ubHkgY2hlY2tzIHRoYXQgdGhlIG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9j
dW1lbnQgSGFzaFNldCBpcyBlbXB0eQorICAgICAgICBpZiBEb2N1bWVudDo6aW52YWxpZGF0ZU5v
ZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcygpIGlzIHVwIHRoZSBjYWxsIGNoYWluLgorICAgICAg
ICBQcmV2aW91cyBhc3NlcnRpb24gdHJpZWQgdG8gZW5zdXJlIHRoYXQgaW4gb3RoZXIgY2FzZXMg
dGhlIHBhc3NlZC1pbgorICAgICAgICBjb2xsZWN0aW9uIGlzIHByZXNlbnQgaW4gdGhlIEhhc2hT
ZXQsIGJ1dCB0aGF0J3Mgbm90IHRoZSBjYXNlIHdoZW4gYQorICAgICAgICBEb2N1bWVudCBhbHJl
YWR5IGhhZCBpdHMgbm9kZSBsaXN0IGFuZCBjb2xsZWN0aW9uIGNhY2hlcyBpbnZhbGlkYXRlZAor
ICAgICAgICBmb3IgYW4gYXR0cmlidXRlIHRoYXQgZGlkbid0IHRyaWdnZXIgdGhlIGludmFsaWRh
dGlvbiBmb3Igc29tZSBzcGVjaWZpYworICAgICAgICBIVE1MQ29sbGVjdGlvbi4gU3VjaCBvYmpl
Y3RzIHBlcmZvcm0gdGhlIHVuLXJlZ2lzdHJhdGlvbiBhdCBkZXN0cnVjdGlvbi4KKwogMjAxNC0w
OC0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3MTk1Ny4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAkocmV2aXNpb24gMTcxOTY1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzUyMCw5ICszNTIwLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnVu
cmVnaXN0ZXJDb2xsZWN0aW9uKEhUTUwKICAgICBpZiAoIWNvbGxlY3Rpb24uaXNSb290ZWRBdERv
Y3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX2luSW52YWxpZGF0ZU5v
ZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcwotICAgICAgICA/IG1fY29sbGVjdGlvbnNJbnZhbGlk
YXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpCi0gICAgICAgIDogbV9jb2xsZWN0aW9uc0ludmFsaWRh
dGVkQXREb2N1bWVudC5jb250YWlucygmY29sbGVjdGlvbikpOworICAgIC8vIFRoaXMgb25seSBl
bnN1cmVzIHRoYXQgRG9jdW1lbnQ6OmludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxlY3Rpb25DYWNo
ZXMoKSBlbXB0aWVzIG91dAorICAgIC8vIHRoZSBtX2NvbGxlY3Rpb25zSW52YWxpZGF0ZWRBdERv
Y3VtZW50IEhhc2hTZXQgYnV0IHNob3VsZG4ndCBhc3NlcnQgdGhhdCB0aGUgY29sbGVjdGlvbgor
ICAgIC8vIGlzIGNvbnRpYW5lZCBpbiB0aGUgSGFzaFNldCBvdGhlcndpc2UuIFNlZSBodHRwczov
L3dlYmtpdC5vcmcvYi8xMzUxNjguCisgICAgQVNTRVJUKG1faW5JbnZhbGlkYXRlTm9kZUxpc3RB
bmRDb2xsZWN0aW9uQ2FjaGVzICYmIG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQu
aXNFbXB0eSgpCisgICAgICAgIHx8ICFtX2luSW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlv
bkNhY2hlcyk7CisKICAgICBtX2NvbGxlY3Rpb25zSW52YWxpZGF0ZWRBdERvY3VtZW50LnJlbW92
ZSgmY29sbGVjdGlvbik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235933</attachid>
            <date>2014-08-02 05:06:33 -0700</date>
            <delta_ts>2014-08-05 01:00:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135168-20140802050619.patch</filename>
            <type>text/plain</type>
            <size>2211</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MTk2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA4LTAyICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBBU1NFUlQgaW4gRG9jdW1l
bnQ6OnVucmVnaXN0ZXJDb2xsZWN0aW9uIHJlbG9hZGluZyBhcHBsZS5jb20KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTE2OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bnJlZ2lzdGVyQ29sbGVjdGlvbik6IEFkanVz
dCB0aGUgYXNzZXJ0aW9uIHNvIGl0CisgICAgICAgIG9ubHkgY2hlY2tzIHRoYXQgdGhlIG1fY29s
bGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQgSGFzaFNldCBpcyBlbXB0eQorICAgICAgICBp
ZiBEb2N1bWVudDo6aW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcygpIGlzIHVw
IHRoZSBjYWxsIGNoYWluLgorICAgICAgICBQcmV2aW91cyBhc3NlcnRpb24gdHJpZWQgdG8gZW5z
dXJlIHRoYXQgaW4gb3RoZXIgY2FzZXMgdGhlIHBhc3NlZC1pbgorICAgICAgICBjb2xsZWN0aW9u
IGlzIHByZXNlbnQgaW4gdGhlIEhhc2hTZXQsIGJ1dCB0aGF0J3Mgbm90IHRoZSBjYXNlIHdoZW4g
YQorICAgICAgICBEb2N1bWVudCBhbHJlYWR5IGhhZCBpdHMgbm9kZSBsaXN0IGFuZCBjb2xsZWN0
aW9uIGNhY2hlcyBpbnZhbGlkYXRlZAorICAgICAgICBmb3IgYW4gYXR0cmlidXRlIHRoYXQgZGlk
bid0IHRyaWdnZXIgdGhlIGludmFsaWRhdGlvbiBmb3Igc29tZSBzcGVjaWZpYworICAgICAgICBI
VE1MQ29sbGVjdGlvbi4gU3VjaCBvYmplY3RzIHBlcmZvcm0gdGhlIHVuLXJlZ2lzdHJhdGlvbiBh
dCBkZXN0cnVjdGlvbi4KKwogMjAxNC0wOC0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3MTk1Ny4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTcxOTY1KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUyMCw5ICszNTIw
LDEyIEBAIHZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJDb2xsZWN0aW9uKEhUTUwKICAgICBpZiAo
IWNvbGxlY3Rpb24uaXNSb290ZWRBdERvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEFTU0VSVChtX2luSW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcwotICAgICAg
ICA/IG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpCi0gICAgICAg
IDogbV9jb2xsZWN0aW9uc0ludmFsaWRhdGVkQXREb2N1bWVudC5jb250YWlucygmY29sbGVjdGlv
bikpOworICAgIC8vIFRoaXMgb25seSBlbnN1cmVzIHRoYXQgRG9jdW1lbnQ6OmludmFsaWRhdGVO
b2RlTGlzdEFuZENvbGxlY3Rpb25DYWNoZXMoKSBlbXB0aWVzIG91dAorICAgIC8vIHRoZSBtX2Nv
bGxlY3Rpb25zSW52YWxpZGF0ZWRBdERvY3VtZW50IEhhc2hTZXQgYnV0IHNob3VsZG4ndCBhc3Nl
cnQgdGhhdCB0aGUgY29sbGVjdGlvbgorICAgIC8vIGlzIGNvbnRpYW5lZCBpbiB0aGUgSGFzaFNl
dCBvdGhlcndpc2UuIFNlZSBodHRwczovL3dlYmtpdC5vcmcvYi8xMzUxNjguCisgICAgQVNTRVJU
KG1faW5JbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2FjaGVzICYmIG1fY29sbGVjdGlv
bnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpCisgICAgICAgIHx8ICFtX2luSW52YWxp
ZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcyk7CisKICAgICBtX2NvbGxlY3Rpb25zSW52
YWxpZGF0ZWRBdERvY3VtZW50LnJlbW92ZSgmY29sbGVjdGlvbik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236017</attachid>
            <date>2014-08-05 01:01:07 -0700</date>
            <delta_ts>2014-08-07 07:11:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135168-20140805010054.patch</filename>
            <type>text/plain</type>
            <size>2005</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkxODc1YjU1ZTA1NzIy
YmZkMGVkMTFiYzVhODM4ZWFkMWRmYTkwNC4uNzBmM2ZmYjZlNWVjY2E0YWQ1ZGMwZTYwOTFlMGEy
MjA1NGEwNmQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA4LTA1ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBBU1NFUlQgaW4gRG9j
dW1lbnQ6OnVucmVnaXN0ZXJDb2xsZWN0aW9uIHJlbG9hZGluZyBhcHBsZS5jb20KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTE2OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bnJlZ2lzdGVyQ29sbGVjdGlvbik6IFRo
aXMgYXNzZXJ0aW9uIHdhcyBmYWlsaW5nCisgICAgICAgIGJlY2F1c2UgdGhlIHBhc3NlZC1pbiBI
VE1MQ29sbGVjdGlvbiB3YXMgbm90IGludmFsaWRhdGVkIGZvciBhIG5vbi1yZWxhdGVkCisgICAg
ICAgIGF0dHJpYnV0ZSwgYnV0IHdhcyBpbnN0ZWFkIHVucmVnaXN0ZXJlZCBkdXJpbmcgZGVzdHJ1
Y3Rpb24sIGF0IHdoaWNoIHBvaW50CisgICAgICAgIHRoZSBtX2NvbGxlY3Rpb25zSW52YWxpZGF0
ZWRBdERvY3VtZW50IEhhc2hTZXQgd2FzIGVtcHR5LgorICAgICAgICBUaGUgYXNzZXJ0aW9uIGNv
dWxkIGJlIHRyaXZpYWxseSByZWR1Y2VkIGludG8gY2hlY2tpbmcgdGhhdCB0aGUgSGFzaFNldCBp
cworICAgICAgICBlbXB0eSB3aGVuIGl0IHdhcyBtb3ZlZCBvdXQgb2YgaW4gRG9jdW1lbnQ6Omlu
dmFsaWRhdGVOb2RlTGlzdEFuZENvbGxlY3Rpb25DYWNoZXMoKSwKKyAgICAgICAgYnV0IHRoYXQg
anVzdCBjaGVja3MgdGhhdCB0aGUgbW92ZSBzZW1hbnRpY3Mgb24gSGFzaFNldCB3b3JrIHByb3Bl
cmx5LiBSZW1vdmluZworICAgICAgICBhIG5vbi1leGlzdGVudCBlbGVtZW50IGZyb20gYSBIYXNo
U2V0IGlzIGhhcm1sZXNzLCBzbyB0aGUgYXNzZXJ0aW9uIGNhbiBiZSByZW1vdmVkCisgICAgICAg
IGNvbXBsZXRlbHkuCisKIDIwMTQtMDgtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KIAogICAgICAgICBBWDogU2VsZWN0IGFjdGl2aXR5IGJlaGF2aW9yIGRvZXMgbm90
IHdvcmsgd2hlbiBhbiBleGlzdGluZyByYW5nZSBpcyBhbHJlYWR5IHNlbGVjdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA5MjMwOTRkN2ZmYThmNDU4ODI0ZDU4ZGJkZGE0NjcyOTc4ODM3
NWYzLi45YTgyYmMxMDU1MWEwMWEzNGFmZWI5ZjNkYTFkNTkyMTU3ZTNiYTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTM1MjAsOSArMzUyMCw2IEBAIHZvaWQgRG9jdW1lbnQ6OnVucmVn
aXN0ZXJDb2xsZWN0aW9uKEhUTUxDb2xsZWN0aW9uJiBjb2xsZWN0aW9uKQogICAgIGlmICghY29s
bGVjdGlvbi5pc1Jvb3RlZEF0RG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKG1faW5JbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2FjaGVzCi0gICAgICAgID8g
bV9jb2xsZWN0aW9uc0ludmFsaWRhdGVkQXREb2N1bWVudC5pc0VtcHR5KCkKLSAgICAgICAgOiBt
X2NvbGxlY3Rpb25zSW52YWxpZGF0ZWRBdERvY3VtZW50LmNvbnRhaW5zKCZjb2xsZWN0aW9uKSk7
CiAgICAgbV9jb2xsZWN0aW9uc0ludmFsaWRhdGVkQXREb2N1bWVudC5yZW1vdmUoJmNvbGxlY3Rp
b24pOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>