Summary: | REGRESSION (r57292): :visited tests are asserting on debug Windows and GTK builds | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Adam Roben (:aroben) <aroben> | ||||
Component: | Tools / Tests | Assignee: | Adam Roben (:aroben) <aroben> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | hyatt | ||||
Priority: | P2 | Keywords: | LayoutTestFailure, PlatformOnly | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 37284 | ||||||
Attachments: |
|
The problem is that LayoutTestController::computedStyleIncludingVisitedInfo is returning 0 as a JSValueRef, which is an illegal use of the JSC API. Let's use this bug to track the assertions. Bug 37336 will track actually making these tests pass. Created attachment 52956 [details] Make :visited tests added in r57292 not assert on Windows and GTK builds Comment on attachment 52956 [details] Make :visited tests added in r57292 not assert on Windows and GTK builds r=me! Committed r57339: <http://trac.webkit.org/changeset/57339> |
To reproduce: 1. run-webkit-tests fast/history The new :visited tests are asserting in Debug builds, and failing in Release builds. Here's the backtrace of the assertion: > JavaScriptCore.dll!toJS(JSC::ExecState * exec=0x05a70108, const OpaqueJSValue * v=0x00000000) Line 66 + 0x1f bytes C++ JavaScriptCore.dll!JSC::JSCallbackFunction::call(JSC::ExecState * exec=0x05a70108, JSC::JSObject * functionObject=0x05e83100, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 70 + 0x14 bytes C++ JavaScriptCore.dll!cti_op_call_NotJSFunction(void * * args=0x0012eb30) Line 1901 + 0x31 bytes C++ JavaScriptCore.dll!@cti_op_convert_this@4() + 0x10f bytes C++ JavaScriptCore.dll!JSC::JITCode::execute(JSC::RegisterFile * registerFile=0x040c0654, JSC::ExecState * callFrame=0x05a70050, JSC::JSGlobalData * globalData=0x040be988, JSC::JSValue * exception=0x040bf8c0) Line 77 + 0x24 bytes C++ JavaScriptCore.dll!JSC::Interpreter::execute(JSC::FunctionExecutable * functionExecutable=0x0410f940, JSC::ExecState * callFrame=0x0404a850, JSC::JSFunction * function=0x05e82f00, JSC::JSObject * thisObj=0x05e80000, const JSC::ArgList & args={...}, JSC::ScopeChainNode * scopeChain=0x0410df98, JSC::JSValue * exception=0x040bf8c0) Line 688 + 0x31 bytes C++ JavaScriptCore.dll!JSC::JSFunction::call(JSC::ExecState * exec=0x0404a850, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 122 + 0x4e bytes C++ JavaScriptCore.dll!JSC::call(JSC::ExecState * exec=0x0404a850, JSC::JSValue functionObject={...}, JSC::CallType callType=CallTypeJS, const JSC::CallData & callData={...}, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 39 + 0x2b bytes C++ WebKit.dll!WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext * scriptExecutionContext=, WebCore::Event * event=) Line 115 + 0xc7 bytes C++ WebKit.dll!WebCore::EventTarget::fireEventListeners(WebCore::Event * event=0x040baaf8, WebCore::EventTargetData * d=0x0406d53c, WTF::Vector<WebCore::RegisteredEventListener,1> & entry=[1]({listener=0x04109790 {m_functionName={} m_eventParameterName={} m_code={} ...} useCapture=false })) Line 315 + 0x35 bytes C++ WebKit.dll!WebCore::EventTarget::fireEventListeners(WebCore::Event * event=0x040baaf8) Line 281 C++ WebKit.dll!WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr<WebCore::Event> prpEvent={...}, WTF::PassRefPtr<WebCore::EventTarget> prpTarget={...}) Line 1445 + 0x11 bytes C++ WebKit.dll!WebCore::DOMWindow::dispatchLoadEvent() Line 1401 C++ WebKit.dll!WebCore::Document::dispatchWindowLoadEvent() Line 2999 C++ WebKit.dll!WebCore::Document::implicitClose() Line 1824 C++ WebKit.dll!WebCore::FrameLoader::checkCallImplicitClose() Line 1195 C++ WebKit.dll!WebCore::FrameLoader::checkCompleted() Line 1144 C++ WebKit.dll!WebCore::FrameLoader::completed() Line 1865 C++ WebKit.dll!WebCore::FrameLoader::checkCompleted() Line 1147 C++ WebKit.dll!WebCore::FrameLoader::finishedParsing() Line 1083 C++ WebKit.dll!WebCore::Document::finishedParsing() Line 4207 C++ WebKit.dll!WebCore::HTMLParser::finished() Line 1666 + 0x1a bytes C++ WebKit.dll!WebCore::HTMLTokenizer::end() Line 1871 C++ WebKit.dll!WebCore::HTMLTokenizer::finish() Line 1911 C++ WebKit.dll!WebCore::Document::finishParsing() Line 1971 + 0x20 bytes C++ WebKit.dll!WebCore::FrameLoader::endIfNotLoadingMainResource() Line 985 C++ WebKit.dll!WebCore::FrameLoader::end() Line 970 C++ WebKit.dll!WebCore::DocumentLoader::finishedLoading() Line 270 C++ WebKit.dll!WebCore::FrameLoader::finishedLoading() Line 2824 C++ WebKit.dll!WebCore::MainResourceLoader::didFinishLoading() Line 425 C++ WebKit.dll!WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle * __formal=0x0410e7d8) Line 443 + 0xf bytes C++ WebKit.dll!WebCore::didFinishLoading(_CFURLConnection * conn=0x0410fa78, const void * clientInfo=0x0410e7d8) Line 231 + 0x1e bytes C++