Bug 16623
Summary: | ASSERTION FAILED: Uncaught exception - lockFocus sent to a view whose window is deferred and does not yet have a corresponding platform window | ||
---|---|---|---|
Product: | WebKit | Reporter: | David Kilzer (:ddkilzer) <ddkilzer> |
Component: | Plug-ins | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | andersca, david.barto, kdecker, mrowe |
Priority: | P2 | Keywords: | InRadar, NeedsReduction |
Version: | 528+ (Nightly build) | ||
Hardware: | Mac | ||
OS: | OS X 10.4 | ||
URL: | http://www.fandango.com/ |
David Kilzer (:ddkilzer)
* SUMMARY
Either a specific Yahoo! Mail message or the Fandango web site is triggering an uncaught exception in WebKit. I haven't determined what's causing the issue; will investigate further.
* CONSOLE
2007-12-27 08:58:10.405 Safari[9564] *** Assertion failure in -[WebNetscapePluginDocumentView lockFocus], AppKit.subproj/NSView.m:3248
ASSERTION FAILED: Uncaught exception - lockFocus sent to a view whose window is deferred and does not yet have a corresponding platform window
0
(/path/to/WebKit/WebCore/platform/mac/BlockExceptions.mm:36 ReportBlockedObjCException)
* STACK
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0xbbadbeef
Thread 0 Crashed:
0 com.apple.WebCore 0x0102bc34 ReportBlockedObjCException(NSException*) + 88 (BlockExceptions.mm:36)
1 com.apple.WebCore 0x01576f40 WebCore::Widget::addToSuperview(NSView*) + 212 (WidgetMac.mm:262)
2 com.apple.WebCore 0x0151664c WebCore::ScrollView::addChild(WebCore::Widget*) + 452 (ScrollViewMac.mm:313)
3 com.apple.WebCore 0x0144beb0 WebCore::RenderWidget::setWidget(WebCore::Widget*) + 936 (RenderWidget.cpp:150)
4 com.apple.WebCore 0x013f2630 WebCore::RenderPart::setWidget(WebCore::Widget*) + 168 (RenderPart.cpp:68)
5 com.apple.WebCore 0x011a49c0 WebCore::FrameLoader::loadPlugin(WebCore::RenderPart*, WebCore::KURL const&, WebCore::String const&, WTF::Vector<WebCore::String, (unsigned long)0> const&, WTF::Vector<WebCore::String, (unsigned long)0> const&, bool) + 600 (FrameLoader.cpp:1628)
6 com.apple.WebCore 0x011b32a4 WebCore::FrameLoader::requestObject(WebCore::RenderPart*, WebCore::String const&, WebCore::AtomicString const&, WebCore::String const&, WTF::Vector<WebCore::String, (unsigned long)0> const&, WTF::Vector<WebCore::String, (unsigned long)0> const&) + 484 (FrameLoader.cpp:1581)
7 com.apple.WebCore 0x013f46e8 WebCore::RenderPartObject::updateWidget(bool) + 4276 (RenderPartObject.cpp:262)
8 com.apple.WebCore 0x011bc718 WebCore::FrameView::performPostLayoutTasks() + 308 (FrameView.cpp:876)
9 com.apple.WebCore 0x011bd6a4 WebCore::FrameView::layout(bool) + 3504 (FrameView.cpp:499)
10 com.apple.WebCore 0x01133b94 WebCore::Document::updateLayout() + 260 (Document.cpp:1146)
11 com.apple.WebCore 0x01141d64 WebCore::Document::updateLayoutIgnorePendingStylesheets() + 256 (Document.cpp:1178)
12 com.apple.WebCore 0x011e02e4 WebCore::HTMLEmbedElement::getInstance() const + 288 (HTMLEmbedElement.cpp:84)
13 com.apple.WebCore 0x015adeb4 WebCore::getRuntimeObject(KJS::ExecState*, WebCore::Node*) + 288 (kjs_dom.cpp:103)
14 com.apple.WebCore 0x015b1380 WebCore::runtimeObjectCustomGetOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&, WebCore::JSHTMLElement*, WebCore::HTMLElement*) + 64 (kjs_html.cpp:103)
15 com.apple.WebCore 0x012aa9bc WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) + 80 (JSHTMLEmbedElementCustom.cpp:39)
16 com.apple.WebCore 0x012aa130 WebCore::JSHTMLEmbedElement::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) + 144 (JSHTMLEmbedElement.cpp:147)
17 com.apple.JavaScriptCore 0x0061dcbc KJS::JSObject::getPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) + 88 (object.h:550)
18 com.apple.JavaScriptCore 0x0056f958 KJS::JSObject::get(KJS::ExecState*, KJS::Identifier const&) const + 52 (object.cpp:163)
19 com.apple.JavaScriptCore 0x0066f1fc KJS::DotAccessorNode::inlineEvaluate(KJS::ExecState*) + 184 (nodes.cpp:803)
20 com.apple.JavaScriptCore 0x005ad9fc KJS::DotAccessorNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:808)
21 com.apple.JavaScriptCore 0x005ac848 KJS::TypeOfValueNode::evaluate(KJS::ExecState*) + 84 (nodes.cpp:1705)
22 com.apple.JavaScriptCore 0x0066df70 KJS::NotEqualNode::inlineEvaluateToBoolean(KJS::ExecState*) + 84 (nodes.cpp:2804)
23 com.apple.JavaScriptCore 0x005aad38 KJS::NotEqualNode::evaluateToBoolean(KJS::ExecState*) + 40 (nodes.cpp:2819)
24 com.apple.JavaScriptCore 0x005aa458 KJS::LogicalAndNode::evaluateToBoolean(KJS::ExecState*) + 212 (nodes.cpp:3027)
25 com.apple.JavaScriptCore 0x005aa3d8 KJS::LogicalAndNode::evaluateToBoolean(KJS::ExecState*) + 84 (nodes.cpp:3025)
26 com.apple.JavaScriptCore 0x005aa3d8 KJS::LogicalAndNode::evaluateToBoolean(KJS::ExecState*) + 84 (nodes.cpp:3025)
27 com.apple.JavaScriptCore 0x005aa3d8 KJS::LogicalAndNode::evaluateToBoolean(KJS::ExecState*) + 84 (nodes.cpp:3025)
28 com.apple.JavaScriptCore 0x005a86b8 KJS::IfElseNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3667)
29 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
30 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
31 com.apple.JavaScriptCore 0x005a54f0 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 264 (nodes.cpp:4480)
32 com.apple.JavaScriptCore 0x005af524 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 200 (function.cpp:74)
33 com.apple.JavaScriptCore 0x00596f30 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 304 (object.cpp:96)
34 com.apple.JavaScriptCore 0x0066ff3c KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 944 (nodes.cpp:1212)
35 com.apple.JavaScriptCore 0x005bae54 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:1217)
36 com.apple.JavaScriptCore 0x005a89a8 KJS::ExprStatementNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3617)
37 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
38 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
39 com.apple.JavaScriptCore 0x005a886c KJS::IfNode::execute(KJS::ExecState*) + 208 (nodes.cpp:3654)
40 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
41 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
42 com.apple.JavaScriptCore 0x005a7cec KJS::ForInNode::execute(KJS::ExecState*) + 2036 (nodes.cpp:3909)
43 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
44 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
45 com.apple.JavaScriptCore 0x005a54f0 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 264 (nodes.cpp:4480)
46 com.apple.JavaScriptCore 0x005af524 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 200 (function.cpp:74)
47 com.apple.JavaScriptCore 0x00596f30 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 304 (object.cpp:96)
48 com.apple.JavaScriptCore 0x0066ff3c KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 944 (nodes.cpp:1212)
49 com.apple.JavaScriptCore 0x005bae54 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:1217)
50 com.apple.JavaScriptCore 0x005a89a8 KJS::ExprStatementNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3617)
51 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
52 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
53 com.apple.JavaScriptCore 0x005a886c KJS::IfNode::execute(KJS::ExecState*) + 208 (nodes.cpp:3654)
54 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
55 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
56 com.apple.JavaScriptCore 0x005a54f0 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 264 (nodes.cpp:4480)
57 com.apple.JavaScriptCore 0x005af524 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 200 (function.cpp:74)
58 com.apple.JavaScriptCore 0x00596f30 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 304 (object.cpp:96)
59 com.apple.JavaScriptCore 0x0066ff3c KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 944 (nodes.cpp:1212)
60 com.apple.JavaScriptCore 0x005bae54 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:1217)
61 com.apple.JavaScriptCore 0x005a89a8 KJS::ExprStatementNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3617)
62 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
63 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
64 com.apple.JavaScriptCore 0x005a5700 KJS::TryNode::execute(KJS::ExecState*) + 84 (nodes.cpp:4179)
65 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
66 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
67 com.apple.JavaScriptCore 0x005a54f0 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 264 (nodes.cpp:4480)
68 com.apple.JavaScriptCore 0x005af524 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 200 (function.cpp:74)
69 com.apple.JavaScriptCore 0x00596f30 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 304 (object.cpp:96)
70 com.apple.JavaScriptCore 0x0066ff3c KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 944 (nodes.cpp:1212)
71 com.apple.JavaScriptCore 0x005bae54 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:1217)
72 com.apple.JavaScriptCore 0x005a89a8 KJS::ExprStatementNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3617)
73 com.apple.JavaScriptCore 0x005a8734 KJS::IfElseNode::execute(KJS::ExecState*) + 208 (nodes.cpp:3671)
74 com.apple.JavaScriptCore 0x005a8778 KJS::IfElseNode::execute(KJS::ExecState*) + 276 (nodes.cpp:3673)
75 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
76 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
77 com.apple.JavaScriptCore 0x005a54f0 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 264 (nodes.cpp:4480)
78 com.apple.JavaScriptCore 0x005af524 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 200 (function.cpp:74)
79 com.apple.JavaScriptCore 0x00596f30 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 304 (object.cpp:96)
80 com.apple.JavaScriptCore 0x0066ff3c KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 944 (nodes.cpp:1212)
81 com.apple.JavaScriptCore 0x005bae54 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:1217)
82 com.apple.JavaScriptCore 0x005a89a8 KJS::ExprStatementNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3617)
83 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
84 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
85 com.apple.JavaScriptCore 0x005a7fb0 KJS::ForNode::execute(KJS::ExecState*) + 332 (nodes.cpp:3784)
86 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
87 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
88 com.apple.JavaScriptCore 0x005a54f0 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 264 (nodes.cpp:4480)
89 com.apple.JavaScriptCore 0x005af524 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 200 (function.cpp:74)
90 com.apple.JavaScriptCore 0x00596f30 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 304 (object.cpp:96)
91 com.apple.JavaScriptCore 0x0066ff3c KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 944 (nodes.cpp:1212)
92 com.apple.JavaScriptCore 0x005bae54 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 40 (nodes.cpp:1217)
93 com.apple.JavaScriptCore 0x005a89a8 KJS::ExprStatementNode::execute(KJS::ExecState*) + 84 (nodes.cpp:3617)
94 com.apple.JavaScriptCore 0x005a8734 KJS::IfElseNode::execute(KJS::ExecState*) + 208 (nodes.cpp:3671)
95 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
96 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
97 com.apple.JavaScriptCore 0x005a8778 KJS::IfElseNode::execute(KJS::ExecState*) + 276 (nodes.cpp:3673)
98 com.apple.JavaScriptCore 0x00581198 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, (unsigned long)0>&, KJS::ExecState*) + 128 (nodes.cpp:3570)
99 com.apple.JavaScriptCore 0x005812b0 KJS::BlockNode::execute(KJS::ExecState*) + 48 (nodes.cpp:3595)
100 com.apple.JavaScriptCore 0x005a5690 KJS::ProgramNode::execute(KJS::ExecState*) + 56 (nodes.cpp:4460)
101 com.apple.JavaScriptCore 0x005cb188 KJS::Interpreter::evaluate(KJS::ExecState*, KJS::UString const&, int, KJS::UChar const*, int, KJS::JSValue*) + 888 (interpreter.cpp:123)
102 com.apple.WebCore 0x015b46d4 WebCore::KJSProxy::evaluate(WebCore::String const&, int, WebCore::String const&) + 292 (kjs_proxy.cpp:90)
103 com.apple.WebCore 0x0121f72c WebCore::HTMLScriptElement::evaluateScript(WebCore::String const&, WebCore::String const&) + 176 (HTMLScriptElement.cpp:262)
104 com.apple.WebCore 0x0121f828 WebCore::HTMLScriptElement::notifyFinished(WebCore::CachedResource*) + 228 (HTMLScriptElement.cpp:167)
105 com.apple.WebCore 0x0107c98c WebCore::CachedScript::checkNotify() + 108 (CachedScript.cpp:97)
106 com.apple.WebCore 0x0107cb68 WebCore::CachedScript::data(WTF::PassRefPtr<WebCore::SharedBuffer>, bool) + 336 (CachedScript.cpp:89)
107 com.apple.WebCore 0x015bca74 WebCore::Loader::didFinishLoading(WebCore::SubresourceLoader*) + 376 (loader.cpp:116)
108 com.apple.WebCore 0x01537e48 WebCore::SubresourceLoader::didFinishLoading() + 204 (SubresourceLoader.cpp:195)
109 com.apple.WebCore 0x01456a30 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*) + 60 (ResourceLoader.cpp:363)
110 com.apple.WebCore 0x014544a8 -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] + 204 (ResourceHandleMac.mm:456)
111 com.apple.Foundation 0x92c1a7ec -[NSURLConnection(NSURLConnectionInternal) _sendDidFinishLoadingCallback] + 188
112 com.apple.Foundation 0x92c18a58 -[NSURLConnection(NSURLConnectionInternal) _sendCallbacks] + 556
113 com.apple.Foundation 0x92c187b0 _sendCallbacks + 156
114 com.apple.CoreFoundation 0x907df30c __CFRunLoopDoSources0 + 384
115 com.apple.CoreFoundation 0x907de83c __CFRunLoopRun + 452
116 com.apple.CoreFoundation 0x907de2bc CFRunLoopRunSpecific + 268
117 com.apple.HIToolbox 0x932a0b20 RunCurrentEventLoopInMode + 264
118 com.apple.HIToolbox 0x932a012c ReceiveNextEventCommon + 244
119 com.apple.HIToolbox 0x932a0020 BlockUntilNextEventMatchingListInMode + 96
120 com.apple.AppKit 0x937a6bc4 _DPSNextEvent + 384
121 com.apple.AppKit 0x937a6888 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 116
122 com.apple.Safari 0x000095e0 0x1000 + 34272
123 com.apple.AppKit 0x937a2dcc -[NSApplication run] + 472
124 com.apple.AppKit 0x93893974 NSApplicationMain + 452
125 com.apple.Safari 0x0009bad4 0x1000 + 633556
126 com.apple.Safari 0x000022fc 0x1000 + 4860
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
David Kilzer (:ddkilzer)
* STEPS TO REPRODUCE
1. Launch a DEBUG build of WebKit with Safari.
2. Go to URL: http://www.fandango.com/
* RESULTS
WebKit crashes with an assertion failure (see Comment #0).
* NOTES
Reproduced with a local debug build of WebKit r29000 with Safari 3.0.4 (523.12.2) on Mac OS X 10.4.11 (8S165).
David Kilzer (:ddkilzer)
<rdar://problem/5663902>
Mark Rowe (bdash)
Kevin Decker has a patch for this issue that he was working on before the holidays.
Mark Rowe (bdash)
*** Bug 16710 has been marked as a duplicate of this bug. ***
David Kilzer (:ddkilzer)
Fixed in r29126.
http://trac.webkit.org/projects/webkit/changeset/29126