RESOLVED FIXED 57551
[GTK] Expose the shadow DOM to DumpRenderTree JS tests.
https://bugs.webkit.org/show_bug.cgi?id=57551
Summary [GTK] Expose the shadow DOM to DumpRenderTree JS tests.
Dominic Cooney
Reported 2011-03-31 08:40:17 PDT
GTK DRT should implement layoutTestController.shadowRoot like Chromium DRT (bug 56573) and Mac DRT (bug 57415).
Attachments
Patch (5.31 KB, patch)
2011-03-31 09:58 PDT, Dominic Cooney
no flags
Patch (5.30 KB, patch)
2011-04-01 19:09 PDT, Dominic Cooney
no flags
Dominic Cooney
Comment 1 2011-03-31 09:58:09 PDT
Martin Robinson
Comment 2 2011-04-01 09:20:53 PDT
Comment on attachment 87752 [details] Patch Great! Thanks for looking after our DRT.
WebKit Commit Bot
Comment 3 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.
WebKit Commit Bot
Comment 4 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>
WebKit Commit Bot
Comment 5 2011-04-01 14:36:41 PDT
All reviewed patches have been landed. Closing bug.
Martin Robinson
Comment 6 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
Martin Robinson
Comment 7 2011-04-01 18:21:02 PDT
Dominic Cooney
Comment 8 2011-04-01 19:09:08 PDT
Dominic Cooney
Comment 9 2011-04-02 10:29:01 PDT
Reopening this.
Martin Robinson
Comment 10 2011-04-02 11:46:43 PDT
Comment on attachment 87956 [details] Patch Thanks for fixing this!
WebKit Commit Bot
Comment 11 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>
WebKit Commit Bot
Comment 12 2011-04-02 13:56:38 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.