Bug 105973 - Revert auto-start plugins to snapshotted plugins after a period of inactivity
Summary: Revert auto-start plugins to snapshotted plugins after a period of inactivity
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.8
: P2 Normal
Assignee: Jon Lee
URL:
Keywords: InRadar
Depends on: 106042 106049
Blocks:
  Show dependency treegraph
 
Reported: 2013-01-02 17:03 PST by Jon Lee
Modified: 2013-01-03 15:22 PST (History)
8 users (show)

See Also:


Attachments
Patch (67.33 KB, patch)
2013-01-02 21:51 PST, Jon Lee
no flags Details | Formatted Diff | Diff
Patch (28.47 KB, patch)
2013-01-02 21:55 PST, Jon Lee
beidson: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jon Lee 2013-01-02 17:03:28 PST
Keep track of when the user interacts with a plugin, and keep those plugins auto-starting.
Comment 1 Radar WebKit Bug Importer 2013-01-02 17:03:43 PST
<rdar://problem/12947865>
Comment 2 Jon Lee 2013-01-02 21:51:18 PST
Created attachment 181147 [details]
Patch
Comment 3 Jon Lee 2013-01-02 21:55:32 PST
Created attachment 181148 [details]
Patch
Comment 4 Jon Lee 2013-01-03 13:01:59 PST
Committed r138729: <http://trac.webkit.org/changeset/138729>
Comment 5 Ryosuke Niwa 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