[Webkit-unassigned] [Bug 107954] EventSender isn't suspended when page load is deferred

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 28 10:36:13 PST 2013


https://bugs.webkit.org/show_bug.cgi?id=107954





--- Comment #3 from Yong Li <yoli at rim.com>  2013-01-28 10:38:11 PST ---
(In reply to comment #2)
> This needs an explanation. Why does deferring loading need to suspend EventSender? If that's actually the case, it needs to be renamed appropriately, because nothing in its name says that it's not just about loading.

Yes, it does sound a little bit confusing. However event it is just about loading, JS execution can definitely trigger some loading jobs.

>From what I understand, defersLoading() means suspending loading as well as DOM activities, JS executions and other scheduled jobs that could cause re-entrancy issues or isn't always safe in that situation. A typical case is JS modal dialogs. WebKit uses PageGroupLoadDeferrer to suspend all scheduled jobs that could trigger JS execution in the nested event loop. Another case is page cache. When a frame/document is pushed into page cache, all its scheduled jobs are suspended. And the jobs will be resumed when the document/frame is restored. Doing anything to a document which is in page cache is dangerous. I'm not sure if there is any isPageCached check being done when  EventSender<> dispatches events, but even there is, we still have a problem, the events will be lost.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list