Bug 37333 - REGRESSION (r57292): :visited tests are asserting on debug Windows and GTK builds
Summary: REGRESSION (r57292): :visited tests are asserting on debug Windows and GTK bu...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows XP
: P2 Normal
Assignee: Adam Roben (:aroben)
URL:
Keywords: LayoutTestFailure, PlatformOnly
Depends on:
Blocks: 37284
  Show dependency treegraph
 
Reported: 2010-04-09 08:36 PDT by Adam Roben (:aroben)
Modified: 2010-04-18 09:31 PDT (History)
1 user (show)

See Also:


Attachments
Make :visited tests added in r57292 not assert on Windows and GTK builds (6.14 KB, patch)
2010-04-09 08:52 PDT, Adam Roben (:aroben)
andersca: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Roben (:aroben) 2010-04-09 08:36:12 PDT
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++
Comment 1 Adam Roben (:aroben) 2010-04-09 08:37:13 PDT
The problem is that LayoutTestController::computedStyleIncludingVisitedInfo is returning 0 as a JSValueRef, which is an illegal use of the JSC API.
Comment 2 Adam Roben (:aroben) 2010-04-09 08:46:28 PDT
Let's use this bug to track the assertions.
Comment 3 Adam Roben (:aroben) 2010-04-09 08:49:04 PDT
Bug 37336 will track actually making these tests pass.
Comment 4 Adam Roben (:aroben) 2010-04-09 08:50:13 PDT
...and bug 37337.
Comment 5 Adam Roben (:aroben) 2010-04-09 08:52:32 PDT
Created attachment 52956 [details]
Make :visited tests added in r57292 not assert on Windows and GTK builds
Comment 6 Anders Carlsson 2010-04-09 08:53:47 PDT
Comment on attachment 52956 [details]
Make :visited tests added in r57292 not assert on Windows and GTK builds

r=me!
Comment 7 Adam Roben (:aroben) 2010-04-09 08:56:49 PDT
Committed r57339: <http://trac.webkit.org/changeset/57339>