Bug 178893
Summary: | Revisit WebKit api pattern where Page owns the client. | ||
---|---|---|---|
Product: | WebKit | Reporter: | Jeremy Jones <jeremyj-wk> |
Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | ||
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Jeremy Jones
> 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 | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Jeremy Jones
From comments on https://bugs.webkit.org/show_bug.cgi?id=178089