RESOLVED INVALID140713
[WK2] willDestroyGlobalObjectForDOMWindowExtension callback which registered in injectedBundle is not called while WebPage is being closed
https://bugs.webkit.org/show_bug.cgi?id=140713
Summary [WK2] willDestroyGlobalObjectForDOMWindowExtension callback which registered ...
Joonghun Park
Reported 2015-01-20 20:07:10 PST
When using WKBundleDOMWindowExtension in InjectedBundle, willDestroyGlobalObjectForDOMWindowExtension is not called because InjectedBundlePageLoaderClient's initialization in WebPage::close() is called too early, namely, before setting the frame's m_view to 0; So move initialize(0) calls to WebPage's m_*client group to the end of WebPage::close() function to correct such problems.
Attachments
Patch (2.45 KB, patch)
2015-01-20 20:32 PST, Joonghun Park
no flags
Patch (2.45 KB, patch)
2015-01-20 22:13 PST, Joonghun Park
no flags
Patch (2.35 KB, patch)
2015-01-23 14:16 PST, Joonghun Park
no flags
Patch (2.35 KB, patch)
2015-01-23 14:18 PST, Joonghun Park
beidson: review-
Joonghun Park
Comment 1 2015-01-20 20:32:52 PST
Gyuyoung Kim
Comment 2 2015-01-20 20:56:43 PST
Comment on attachment 245044 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=245044&action=review This patch should be reviewed by WK2 owner. > Source/WebKit2/ChangeLog:10 > + So move initialize(0) calls to WebPage's m_*client group to the end of WebPage::close() function typo: m_*client -> m_client
Joonghun Park
Comment 3 2015-01-20 22:13:04 PST
Anders Carlsson
Comment 4 2015-01-23 11:52:42 PST
Comment on attachment 245048 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=245048&action=review > Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1024 > + // The WebPage can be destroyed by this call. > + WebProcess::shared().removeWebPage(m_pageID); This can't be moved here - this call will destroy the WebPage object whose members are accessed later!
Joonghun Park
Comment 5 2015-01-23 14:16:11 PST
Joonghun Park
Comment 6 2015-01-23 14:18:31 PST
Joonghun Park
Comment 7 2015-02-28 00:03:59 PST
(In reply to comment #4) > Comment on attachment 245048 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=245048&action=review > > > Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1024 > > + // The WebPage can be destroyed by this call. > > + WebProcess::shared().removeWebPage(m_pageID); > > This can't be moved here - this call will destroy the WebPage object whose > members are accessed later! Could you please review the change which I revised?
Gyuyoung Kim
Comment 8 2015-10-13 22:19:38 PDT
Is this patch still valid ?
Darin Adler
Comment 9 2015-10-14 09:34:39 PDT
Hard to say, but: 1) We need a regression test for this, too, not just a bug fix. 2) There’s risk to reordering that destruction sequence, so we have to make sure we have done sufficient testing of what other effects the change has.
Brady Eidson
Comment 10 2017-04-24 19:04:57 PDT
Comment on attachment 245248 [details] Patch This patch has been pending review since 2015 with no recent activity. It seems unlikely that it would even still apply to trunk in its current form. (Also it hasn't been updated for Darin's feedback) Clearing from the review queue. Feel free to update and resubmit if the patch is still relevant.
Note You need to log in before you can comment on or make changes to this bug.