Bug 57551

Summary: [GTK] Expose the shadow DOM to DumpRenderTree JS tests.
Product: WebKit Reporter: Dominic Cooney <dominicc>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, mrobinson
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Bug Depends on: 57687    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch none

Description Dominic Cooney 2011-03-31 08:40:17 PDT
GTK DRT should implement layoutTestController.shadowRoot like Chromium DRT (bug 56573) and Mac DRT (bug 57415).
Comment 1 Dominic Cooney 2011-03-31 09:58:09 PDT
Created attachment 87752 [details]
Patch
Comment 2 Martin Robinson 2011-04-01 09:20:53 PDT
Comment on attachment 87752 [details]
Patch

Great! Thanks for looking after our DRT.
Comment 3 WebKit Commit Bot 2011-04-01 14:33:46 PDT
The commit-queue encountered the following flaky tests while processing attachment 87752 [details]:

java/lc3/JSObject/ToObject-001.html bug 53091 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.
Comment 4 WebKit Commit Bot 2011-04-01 14:36:36 PDT
Comment on attachment 87752 [details]
Patch

Clearing flags on attachment: 87752

Committed r82721: <http://trac.webkit.org/changeset/82721>
Comment 5 WebKit Commit Bot 2011-04-01 14:36:41 PDT
All reviewed patches have been landed.  Closing bug.
Comment 6 Martin Robinson 2011-04-01 18:20:05 PDT
This caused an assertion failure on the debug bots so I rolled it out. I think that you just need to add a 

JSLock lock(SilenceAssertionsOnly);

at the beginning of the DRTSupportGtk method. Sorry that I did not notice this in my review!

#0  0x00002b40c08cca85 in JSC::Heap::allocate (this=0x2b40d0019140, bytes=48) at ../../Source/JavaScriptCore/runtime/JSCell.h:415
415	        ASSERT(JSLock::lockCount() > 0);

Thread 1 (Thread 4222):
#0  0x00002b40c08cca85 in JSC::Heap::allocate (this=0x2b40d0019140, bytes=48) at ../../Source/JavaScriptCore/runtime/JSCell.h:415
#1  0x00002b40c08ccbd5 in JSC::JSCell::operator new (size=48, exec=0x2b4114012088) at ../../Source/JavaScriptCore/runtime/JSCell.h:436
#2  0x00002b40c145d344 in WebCore::JSHTMLSelectElement::createPrototype (exec=0x2b4114012088, globalObject=0x2b4114420850) at DerivedSources/WebCore/JSHTMLSelectElement.cpp:179
#3  0x00002b40c141da7b in WebCore::getDOMStructure<WebCore::JSHTMLSelectElement> (exec=0x2b4114012088, globalObject=0x2b4114420850) at ../../Source/WebCore/bindings/js/JSDOMBinding.h:146
#4  0x00002b40c141a177 in WebCore::createDOMNodeWrapper<WebCore::JSHTMLSelectElement, WebCore::HTMLSelectElement> (exec=0x2b4114012088, globalObject=0x2b4114420850, node=0x2b40d097ddb0) at ../../Source/WebCore/bindings/js/JSDOMBinding.h:181
#5  0x00002b40c1411933 in WebCore::createHTMLSelectElementWrapper (exec=0x2b4114012088, globalObject=0x2b4114420850, element=...) at DerivedSources/WebCore/JSHTMLElementWrapperFactory.cpp:517
#6  0x00002b40c1413b30 in WebCore::createJSHTMLWrapper (exec=0x2b4114012088, globalObject=0x2b4114420850, element=...) at DerivedSources/WebCore/JSHTMLElementWrapperFactory.cpp:694
#7  0x00002b40c091d751 in WebCore::createWrapperInline (exec=0x2b4114012088, globalObject=0x2b4114420850, node=0x2b40d097ddb0) at ../../Source/WebCore/bindings/js/JSNodeCustom.cpp:173
#8  0x00002b40c091d984 in WebCore::createWrapper (exec=0x2b4114012088, globalObject=0x2b4114420850, node=0x2b40d097ddb0) at ../../Source/WebCore/bindings/js/JSNodeCustom.cpp:223
#9  0x00002b40c07b2807 in WebCore::toJS (exec=0x2b4114012088, globalObject=0x2b4114420850, node=0x2b40d097ddb0) at ../../Source/WebCore/bindings/js/JSNodeCustom.h:57
#10 0x00002b40c07b34cd in WebCore::toJS<WebCore::Node> (exec=0x2b4114012088, ptr=0x2b40d097ddb0) at ../../Source/WebCore/bindings/js/JSDOMBinding.h:252
#11 0x00002b40c07b0894 in DumpRenderTreeSupportGtk::shadowRoot (context=0x2b4114012088, value=0x2b411442ad80) at ../../Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:647
#12 0x0000000000427da3 in LayoutTestController::shadowRoot (this=0x2b40d08b4790, context=0x2b4114012088, element=0x2b411442ad80) at ../../Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:922
#13 0x0000000000414638 in shadowRootCallback (context=0x2b4114012088, function=0x2b411442af08, thisObject=0x2b411442a648, argumentCount=1, arguments=0x7fff448936b8, exception=0x7fff44893758) at ../../Tools/DumpRenderTree/LayoutTestController.cpp:1695
#14 0x00002b40c1613b60 in JSC::JSCallbackFunction::call (exec=0x2b4114012088) at ../../Source/JavaScriptCore/API/JSCallbackFunction.cpp:67
#15 0x00002b40c16bb2b8 in JSC::cti_op_call_NotJSFunction (args=0x7fff44893890) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:2096
#16 0x00002b40c16b630f in JSC::JITThunks::tryCacheGetByID (callFrame=0x2b4114012038, codeBlock=0x7fff44893890, returnAddress=..., baseValue=..., propertyName=..., slot=..., stubInfo=0x2b40d00178f0) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:871
#17 0x00002b40c16895fd in JSC::JITCode::execute (this=0x2b4114790d68, registerFile=0x2b40d001f668, callFrame=0x2b4114012038, globalData=0x2b40d00178f0) at ../../Source/JavaScriptCore/jit/JITCode.h:77
#18 0x00002b40c16860c6 in JSC::Interpreter::execute (this=0x2b40d001f650, program=0x2b4114790d50, callFrame=0x2b41144208d8, scopeChain=0x2b411442a300, thisObj=0x2b4114414150) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:773
#19 0x00002b40c171df7a in JSC::evaluate (exec=0x2b41144208d8, scopeChain=0x2b411442a300, source=..., thisValue=...) at ../../Source/JavaScriptCore/runtime/Completion.cpp:64
#20 0x00002b40c091211f in WebCore::JSMainThreadExecState::evaluate (exec=0x2b41144208d8, chain=0x2b411442a300, source=..., thisValue=...) at ../../Source/WebCore/bindings/js/JSMainThreadExecState.h:54
#21 0x00002b40c093ef36 in WebCore::ScriptController::evaluateInWorld (this=0x1ba40e8, sourceCode=..., world=0x2b40d001f870) at ../../Source/WebCore/bindings/js/ScriptController.cpp:142
#22 0x00002b40c093f0f6 in WebCore::ScriptController::evaluate (this=0x1ba40e8, sourceCode=...) at ../../Source/WebCore/bindings/js/ScriptController.cpp:165
#23 0x00002b40c0b50729 in WebCore::ScriptElement::executeScript (this=0x224bdc0, sourceCode=...) at ../../Source/WebCore/dom/ScriptElement.cpp:268
#24 0x00002b40c0b503fa in WebCore::ScriptElement::prepareScript (this=0x224bdc0, scriptStartPosition=..., supportLegacyTypes=WebCore::ScriptElement::DisallowLegacyTypeInTypeAttribute) at ../../Source/WebCore/dom/ScriptElement.cpp:228
#25 0x00002b40c0cdbb3e in WebCore::HTMLScriptRunner::runScript (this=0x2b40d08c7440, script=0x224bd40, scriptStartPosition=...) at ../../Source/WebCore/html/parser/HTMLScriptRunner.cpp:294
#26 0x00002b40c0cdb1c0 in WebCore::HTMLScriptRunner::execute (this=0x2b40d08c7440, scriptElement=..., scriptStartPosition=...) at ../../Source/WebCore/html/parser/HTMLScriptRunner.cpp:175
#27 0x00002b40c0ccee69 in WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder (this=0x2b40d095acc0) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:206
#28 0x00002b40c0ccef25 in WebCore::HTMLDocumentParser::canTakeNextToken (this=0x2b40d095acc0, mode=WebCore::HTMLDocumentParser::AllowYield, session=...) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:224
#29 0x00002b40c0ccf2c7 in WebCore::HTMLDocumentParser::pumpTokenizer (this=0x2b40d095acc0, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:262
#30 0x00002b40c0ccecbe in WebCore::HTMLDocumentParser::pumpTokenizerIfPossible (this=0x2b40d095acc0, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:176
#31 0x00002b40c0ccf70f in WebCore::HTMLDocumentParser::append (this=0x2b40d095acc0, source=...) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:358
#32 0x00002b40c0aa5db9 in WebCore::DecodedDataDocumentParser::appendBytes (this=0x2b40d095acc0, writer=0x2b40d094cd70, data=0x0, length=0, shouldFlush=true) at ../../Source/WebCore/dom/DecodedDataDocumentParser.cpp:54
#33 0x00002b40c0de844f in WebCore::DocumentWriter::addData (this=0x2b40d094cd70, str=0x0, len=0, flush=true) at ../../Source/WebCore/loader/DocumentWriter.cpp:201
#34 0x00002b40c0de8518 in WebCore::DocumentWriter::endIfNotLoadingMainResource (this=0x2b40d094cd70) at ../../Source/WebCore/loader/DocumentWriter.cpp:221
#35 0x00002b40c0de8485 in WebCore::DocumentWriter::end (this=0x2b40d094cd70) at ../../Source/WebCore/loader/DocumentWriter.cpp:207
#36 0x00002b40c0ddc657 in WebCore::DocumentLoader::finishedLoading (this=0x2b40d094cc70) at ../../Source/WebCore/loader/DocumentLoader.cpp:288
#37 0x00002b40c0df4d89 in WebCore::FrameLoader::finishedLoading (this=0x1ba3ca0) at ../../Source/WebCore/loader/FrameLoader.cpp:2230
#38 0x00002b40c0e26e36 in WebCore::MainResourceLoader::didFinishLoading (this=0x2b40d085bc90, finishTime=0) at ../../Source/WebCore/loader/MainResourceLoader.cpp:467
#39 0x00002b40c0e33019 in WebCore::ResourceLoader::didFinishLoading (this=0x2b40d085bc90, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:436
#40 0x00002b40c07837c8 in WebCore::readCallback (source=0x1bb7760, asyncResult=0x1b4a520, data=0x0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:784
#41 0x00002b40c4843f65 in async_ready_callback_wrapper (source_object=0x1bb7760, res=0x1b4a520, user_data=0x0) at /tmp/buildd/glib2.0-2.27.91/./gio/ginputstream.c:470
#42 0x00002b40c4855628 in complete_in_idle_cb_for_thread (_data=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./gio/gsimpleasyncresult.c:812
#43 0x00002b40c53bc362 in g_main_dispatch (context=0x1b26780) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:2440
#44 g_main_context_dispatch (context=0x1b26780) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3013
#45 0x00002b40c53c0a28 in g_main_context_iterate (context=0x1b26780, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3091
#46 0x00002b40c53c0f35 in g_main_loop_run (loop=0x2b40d098e240) at /tmp/buildd/glib2.0-2.27.91/./glib/gmain.c:3299
#47 0x00002b40c332f657 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#48 0x000000000041ff30 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:701
#49 0x000000000041f5cd in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:493
#50 0x000000000042185b in main (argc=2, argv=0x7fff448951a8) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1179
Comment 7 Martin Robinson 2011-04-01 18:21:02 PDT
Here's the rollout: https://bugs.webkit.org/show_bug.cgi?id=57687
Comment 8 Dominic Cooney 2011-04-01 19:09:08 PDT
Created attachment 87956 [details]
Patch
Comment 9 Dominic Cooney 2011-04-02 10:29:01 PDT
Reopening this.
Comment 10 Martin Robinson 2011-04-02 11:46:43 PDT
Comment on attachment 87956 [details]
Patch

Thanks for fixing this!
Comment 11 WebKit Commit Bot 2011-04-02 13:56:32 PDT
Comment on attachment 87956 [details]
Patch

Clearing flags on attachment: 87956

Committed r82774: <http://trac.webkit.org/changeset/82774>
Comment 12 WebKit Commit Bot 2011-04-02 13:56:38 PDT
All reviewed patches have been landed.  Closing bug.