Bug 178893

Summary: Revisit WebKit api pattern where Page owns the client.
Product: WebKit Reporter: Jeremy Jones <jeremyj-wk>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal    
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Jeremy Jones
Reported 2017-10-26 16:26:07 PDT
> This API seems a bit weird. Normally you don't pass ownership of a client to > the thing that it's a client of. You hold ownership, and the client > relationship is weak. Search for '_page->set[a-zA-Z]*Client\(' shows this pattern in lots of places: _page->setFindClient(std::make_unique<WebKit::FindClient>(self)); _page->setDiagnosticLoggingClient(std::make_unique<WebKit::DiagnosticLoggingClient>(self)); _page->setNavigationClient(_navigationState->createNavigationClient()); _page->setContextMenuClient(_uiDelegate->createContextMenuClient()); _page->setUIClient(_uiDelegate->createUIClient()); _page->setIconLoadingClient(_iconLoadingDelegate->createIconLoadingClient()); _page->setHistoryClient(_navigationState->createHistoryClient()); _page->setFormClient(std::make_unique<FormClient>(self)); m_page->setFullscreenClient(std::make_unique<WebKit::FullscreenClient>(view)); _page->setFindMatchesClient(std::make_unique<TextFinderFindClient>(self)); Maybe this should be revisited
Attachments
Jeremy Jones
Comment 1 2017-10-26 16:26:25 PDT
Note You need to log in before you can comment on or make changes to this bug.