RESOLVED FIXED 105973
Revert auto-start plugins to snapshotted plugins after a period of inactivity
https://bugs.webkit.org/show_bug.cgi?id=105973
Summary Revert auto-start plugins to snapshotted plugins after a period of inactivity
Jon Lee
Reported 2013-01-02 17:03:28 PST
Keep track of when the user interacts with a plugin, and keep those plugins auto-starting.
Attachments
Patch (67.33 KB, patch)
2013-01-02 21:51 PST, Jon Lee
no flags
Patch (28.47 KB, patch)
2013-01-02 21:55 PST, Jon Lee
beidson: review+
Radar WebKit Bug Importer
Comment 1 2013-01-02 17:03:43 PST
Jon Lee
Comment 2 2013-01-02 21:51:18 PST
Jon Lee
Comment 3 2013-01-02 21:55:32 PST
Jon Lee
Comment 4 2013-01-03 13:01:59 PST
Ryosuke Niwa
Comment 5 2013-01-03 13:50:14 PST
It appears that this patch broke a bunch of plugins tests. e.g. http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK2%20(Tests)/r138729%20(4433)/results.html CRASHING TEST: fast/replaced/no-focus-ring-object.html Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.WebKit2 0x00000001090d27a1 WebKit::WebProcess::plugInDidReceiveUserInteraction(unsigned int) + 39 (WebProcess.cpp:824) 1 com.apple.WebKit2 0x000000010903186d WebKit::PluginView::handleEvent(WebCore::Event*) + 1193 (PluginView.cpp:840) 2 com.apple.WebCore 0x0000000109f20eaf WebCore::HTMLPlugInElement::defaultEventHandler(WebCore::Event*) + 143 (RefCounted.h:62) 3 com.apple.WebCore 0x0000000109de7013 WebCore::EventDispatcher::dispatchEventPostProcess(WTF::PassRefPtr<WebCore::Event>, void*) + 275 (PassRefPtr.h:77) 4 com.apple.WebCore 0x0000000109de6dff WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 1311 (PassRefPtr.h:68) 5 com.apple.WebCore 0x000000010a3e81f3 WebCore::MouseEventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const + 323 (PassRefPtr.h:68) 6 com.apple.WebCore 0x0000000109de53cc WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>) + 156 (EventDispatcher.cpp:135) 7 com.apple.WebCore 0x000000010a3fc591 WebCore::Node::dispatchMouseEvent(WebCore::PlatformMouseEvent const&, WTF::AtomicString const&, int, WebCore::Node*) + 129 (Node.cpp:2386) 8 com.apple.WebCore 0x0000000109dee40e WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&, bool) + 110 (EventHandler.cpp:2212) 9 com.apple.WebCore 0x0000000109dedfe0 WebCore::EventHandler::handleMousePressEvent(WebCore::PlatformMouseEvent const&) + 1344 (EventHandler.cpp:1515) 10 com.apple.WebKit2 0x0000000109089a5a WebKit::handleMouseEvent(WebKit::WebMouseEvent const&, WebKit::WebPage*, bool) + 157 (WebPage.cpp:1520) 11 com.apple.WebKit2 0x0000000109089c0e WebKit::WebPage::mouseEventSyncForTesting(WebKit::WebMouseEvent const&, bool&) + 104 (WebPage.cpp:1583) 12 com.apple.WebKit2 0x000000010909c666 void CoreIPC::handleMessage<Messages::WebPage::MouseEventSyncForTesting, WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&, bool&)>(CoreIPC::MessageDecoder&, CoreIPC::MessageEncoder&, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&, bool&)) + 91 (Arguments.h:62) 13 com.apple.WebKit2 0x000000010910cbc8 CoreIPC::MessageReceiverMap::dispatchSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&, WTF::OwnPtr<CoreIPC::MessageEncoder>&) + 150 (MessageReceiverMap.cpp:103) 14 com.apple.WebKit2 0x0000000108fe2b23 CoreIPC::Connection::dispatchSyncMessage(CoreIPC::MessageID, CoreIPC::MessageDecoder&) + 141 (OwnPtr.h:78) 15 com.apple.WebKit2 0x0000000108fe17a7 CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message<CoreIPC::MessageDecoder>&) + 103 (Connection.cpp:682) 16 com.apple.WebKit2 0x0000000108fe171b CoreIPC::Connection::SyncMessageState::dispatchMessages() + 139 (Connection.cpp:166) 17 com.apple.WebKit2 0x0000000108fe25a4 CoreIPC::Connection::waitForSyncReply(unsigned long long, double, unsigned int) + 184 (Locker.h:38) 18 com.apple.WebKit2 0x0000000108fe248e CoreIPC::Connection::sendSyncMessage(CoreIPC::MessageID, unsigned long long, WTF::PassOwnPtr<CoreIPC::MessageEncoder>, double, unsigned int) + 338 (PassOwnPtr.h:90) 19 com.apple.WebKit2 0x0000000108ff440d WebKit::InjectedBundle::postSynchronousMessage(WTF::String const&, WebKit::APIObject*, WTF::RefPtr<WebKit::APIObject>&) + 189 (PassOwnPtr.h:90) 20 com.apple.WebKit2 0x00000001090e75c3 WKBundlePostSynchronousMessage + 66 (RefPtr.h:56) 21 WebKitTestRunnerInjectedBundle 0x000000010d88343c WTR::EventSendingController::mouseDown(int, OpaqueJSValue const*) + 112 (EventSendingController.cpp:164) 22 WebKitTestRunnerInjectedBundle 0x000000010d8844bd WTR::JSEventSendingController::mouseDown(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 99 (JSEventSendingController.cpp:89) 23 com.apple.JavaScriptCore 0x00000001096f3e6f JSC::JSCallbackFunction::call(JSC::ExecState*) + 431 (JSCallbackFunction.cpp:72) 24 com.apple.JavaScriptCore 0x000000010980d62e JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 206 (LLIntSlowPaths.cpp:1362) 25 com.apple.JavaScriptCore 0x00000001098119fb llint_op_call + 169 26 com.apple.JavaScriptCore 0x00000001096a02b0 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 3840 (JSValueInlines.h:360) 27 com.apple.JavaScriptCore 0x00000001095ef720 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*) + 512 (Completion.cpp:75) 28 com.apple.WebCore 0x000000010a5e55c0 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld*) + 448 (JSMainThreadExecState.h:77) 29 com.apple.WebCore 0x000000010a5e5749 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) + 41 (ScriptController.cpp:158) 30 com.apple.WebCore 0x000000010a5ee773 WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) + 467 (ScriptValue.h:51) 31 com.apple.WebCore 0x0000000109f25418 WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&) + 216 (HTMLScriptRunner.cpp:140) 32 com.apple.WebCore 0x0000000109f25323 WebCore::HTMLScriptRunner::executeParsingBlockingScript() + 259 (HTMLScriptRunner.cpp:118) 33 com.apple.WebCore 0x0000000109f259e8 WebCore::HTMLScriptRunner::executeParsingBlockingScripts() + 24 (RefPtr.h:58) 34 com.apple.WebCore 0x0000000109ed2abf WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) + 63 (HTMLDocumentParser.cpp:515) 35 com.apple.WebCore 0x0000000109b78f7d WebCore::CachedResource::checkNotify() + 93 (CachedResource.cpp:336) 36 com.apple.WebCore 0x000000010a6bb3ff WebCore::SubresourceLoader::didFinishLoading(double) + 143 (PassRefPtr.h:68) 37 com.apple.Foundation 0x00007fff88440f58 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 28 38 com.apple.Foundation 0x00007fff88440e9c -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 227 39 com.apple.Foundation 0x00007fff88440d98 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 63 40 com.apple.CFNetwork 0x00007fff8d772fd1 ___delegate_didFinishLoading_block_invoke_0 + 40 41 com.apple.CFNetwork 0x00007fff8d765753 ___withDelegateAsync_block_invoke_0 + 90 42 com.apple.CFNetwork 0x00007fff8d7f42ca __block_global_1 + 28 43 com.apple.CoreFoundation 0x00007fff8d46d724 CFArrayApplyFunction + 68 44 com.apple.CFNetwork 0x00007fff8d756a6c RunloopBlockContext::perform() + 126
Note You need to log in before you can comment on or make changes to this bug.