Bug 204260 - Make WebProcessProxy::WebProcessProxyMap contain WeakPtrs instead of raw pointers.
Summary: Make WebProcessProxy::WebProcessProxyMap contain WeakPtrs instead of raw poin...
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Jer Noble
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-11-15 16:10 PST by Jer Noble
Modified: 2020-03-11 16:07 PDT (History)
4 users (show)

See Also:


Attachments
Patch (9.34 KB, patch)
2019-11-15 16:12 PST, Jer Noble
cdumez: review-
ews-watchlist: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews214 for win-future (14.81 MB, application/zip)
2019-11-15 23:09 PST, EWS Watchlist
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jer Noble 2019-11-15 16:10:05 PST
Make WebProcessProxy::WebProcessProxyMap contain WeakPtrs instead of raw pointers.
Comment 1 Jer Noble 2019-11-15 16:11:18 PST
<rdar://problem/57233050>
Comment 2 Jer Noble 2019-11-15 16:12:07 PST
Created attachment 383661 [details]
Patch
Comment 3 EWS Watchlist 2019-11-15 23:09:37 PST
Comment on attachment 383661 [details]
Patch

Attachment 383661 [details] did not pass win-ews (win):
Output: https://webkit-queues.webkit.org/results/13260011

New failing tests:
fast/workers/worker-cloneport.html
css3/filters/blur-various-radii.html
Comment 4 EWS Watchlist 2019-11-15 23:09:40 PST
Created attachment 383691 [details]
Archive of layout-test-results from ews214 for win-future

The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews214  Port: win-future  Platform: CYGWIN_NT-10.0-17763-3.0.5-338.x86_64-x86_64-64bit
Comment 5 Chris Dumez 2019-11-17 17:10:56 PST
Comment on attachment 383661 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383661&action=review

> Source/WebKit/ChangeLog:4
> +        https://bugs.webkit.org/show_bug.cgi?id=204260

Looking at the radar, I think we could protect |this| in WebPageProxy::updatePlayingMediaDidChange(). We call some client delegates (e.g. m_uiClient->isPlayingMediaDidChange(*this)) and those may destroy the view and thus the WebPageProxy.
Comment 6 Chris Dumez 2019-11-17 17:21:26 PST
Comment on attachment 383661 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383661&action=review

> Source/WebKit/UIProcess/WebPageProxy.cpp:4959
> +            if (page && page->sessionID().isEphemeral())

I really do not think we should do this. It is crazy to null checks pages in the map. By definition, pages are only in the map if they are alive. This is not the right way to fix the bug.