Changeset 218259 in webkit


Ignore:
Timestamp:
Jun 14, 2017 9:13:19 AM (7 years ago)
Author:
Carlos Garcia Campos
Message:

API clients should not be passed by value to the setters
https://bugs.webkit.org/show_bug.cgi?id=173266

Reviewed by Alex Christensen.

By using a rvalue reference we make it more explicit that the ownership is transferred and we avoid the
parameter construction.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::setClient):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/WebGeolocationManagerProxy.cpp:

(WebKit::WebGeolocationManagerProxy::setProvider):

  • UIProcess/WebGeolocationManagerProxy.h:
  • UIProcess/WebIconDatabase.cpp:

(WebKit::WebIconDatabase::setClient):

  • UIProcess/WebIconDatabase.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setHistoryClient):
(WebKit::WebPageProxy::setNavigationClient):
(WebKit::WebPageProxy::setLoaderClient):
(WebKit::WebPageProxy::setPolicyClient):
(WebKit::WebPageProxy::setFormClient):
(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::setIconLoadingClient):
(WebKit::WebPageProxy::setFindClient):
(WebKit::WebPageProxy::setFindMatchesClient):
(WebKit::WebPageProxy::setDiagnosticLoggingClient):
(WebKit::WebPageProxy::setContextMenuClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::setFullscreenClient):
(WebKit::WebPageProxy::getLoadDecisionForIcon):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setHistoryClient):
(WebKit::WebProcessPool::setDownloadClient):
(WebKit::WebProcessPool::setAutomationClient):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setInjectedBundleContextMenuClient):
(WebKit::WebPage::setInjectedBundleEditorClient):
(WebKit::WebPage::setInjectedBundleFormClient):
(WebKit::WebPage::setInjectedBundlePageLoaderClient):
(WebKit::WebPage::setInjectedBundleUIClient):

  • WebProcess/WebPage/WebPage.h:
Location:
trunk/Source/WebKit2
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r218251 r218259  
     12017-06-14  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        API clients should not be passed by value to the setters
     4        https://bugs.webkit.org/show_bug.cgi?id=173266
     5
     6        Reviewed by Alex Christensen.
     7
     8        By using a rvalue reference we make it more explicit that the ownership is transferred and we avoid the
     9        parameter construction.
     10
     11        * UIProcess/Automation/WebAutomationSession.cpp:
     12        (WebKit::WebAutomationSession::setClient):
     13        * UIProcess/Automation/WebAutomationSession.h:
     14        * UIProcess/WebGeolocationManagerProxy.cpp:
     15        (WebKit::WebGeolocationManagerProxy::setProvider):
     16        * UIProcess/WebGeolocationManagerProxy.h:
     17        * UIProcess/WebIconDatabase.cpp:
     18        (WebKit::WebIconDatabase::setClient):
     19        * UIProcess/WebIconDatabase.h:
     20        * UIProcess/WebPageProxy.cpp:
     21        (WebKit::WebPageProxy::WebPageProxy):
     22        (WebKit::WebPageProxy::setHistoryClient):
     23        (WebKit::WebPageProxy::setNavigationClient):
     24        (WebKit::WebPageProxy::setLoaderClient):
     25        (WebKit::WebPageProxy::setPolicyClient):
     26        (WebKit::WebPageProxy::setFormClient):
     27        (WebKit::WebPageProxy::setUIClient):
     28        (WebKit::WebPageProxy::setIconLoadingClient):
     29        (WebKit::WebPageProxy::setFindClient):
     30        (WebKit::WebPageProxy::setFindMatchesClient):
     31        (WebKit::WebPageProxy::setDiagnosticLoggingClient):
     32        (WebKit::WebPageProxy::setContextMenuClient):
     33        (WebKit::WebPageProxy::close):
     34        (WebKit::WebPageProxy::setFullscreenClient):
     35        (WebKit::WebPageProxy::getLoadDecisionForIcon):
     36        * UIProcess/WebPageProxy.h:
     37        * UIProcess/WebProcessPool.cpp:
     38        (WebKit::WebProcessPool::setHistoryClient):
     39        (WebKit::WebProcessPool::setDownloadClient):
     40        (WebKit::WebProcessPool::setAutomationClient):
     41        * UIProcess/WebProcessPool.h:
     42        * WebProcess/WebPage/WebPage.cpp:
     43        (WebKit::WebPage::setInjectedBundleContextMenuClient):
     44        (WebKit::WebPage::setInjectedBundleEditorClient):
     45        (WebKit::WebPage::setInjectedBundleFormClient):
     46        (WebKit::WebPage::setInjectedBundlePageLoaderClient):
     47        (WebKit::WebPage::setInjectedBundleUIClient):
     48        * WebProcess/WebPage/WebPage.h:
     49
    1502017-06-14  Carlos Garcia Campos  <cgarcia@igalia.com>
    251
  • trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp

    r217509 r218259  
    6464}
    6565
    66 void WebAutomationSession::setClient(std::unique_ptr<API::AutomationSessionClient> client)
     66void WebAutomationSession::setClient(std::unique_ptr<API::AutomationSessionClient>&& client)
    6767{
    6868    m_client = WTFMove(client);
  • trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.h

    r217509 r218259  
    7979    ~WebAutomationSession();
    8080
    81     void setClient(std::unique_ptr<API::AutomationSessionClient>);
     81    void setClient(std::unique_ptr<API::AutomationSessionClient>&&);
    8282
    8383    void setSessionIdentifier(const String& sessionIdentifier) { m_sessionIdentifier = sessionIdentifier; }
  • trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp

    r218165 r218259  
    5151}
    5252
    53 void WebGeolocationManagerProxy::setProvider(std::unique_ptr<API::GeolocationProvider> provider)
     53void WebGeolocationManagerProxy::setProvider(std::unique_ptr<API::GeolocationProvider>&& provider)
    5454{
    5555    if (!provider)
  • trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h

    r218165 r218259  
    4848    static Ref<WebGeolocationManagerProxy> create(WebProcessPool*);
    4949
    50     void setProvider(std::unique_ptr<API::GeolocationProvider>);
     50    void setProvider(std::unique_ptr<API::GeolocationProvider>&&);
    5151
    5252    void providerDidChangePosition(WebGeolocationPosition*);
  • trunk/Source/WebKit2/UIProcess/WebIconDatabase.cpp

    r218107 r218259  
    236236}
    237237
    238 void WebIconDatabase::setClient(std::unique_ptr<API::IconDatabaseClient> client)
     238void WebIconDatabase::setClient(std::unique_ptr<API::IconDatabaseClient>&& client)
    239239{
    240240    if (!client)
  • trunk/Source/WebKit2/UIProcess/WebIconDatabase.h

    r218107 r218259  
    8282    void close();
    8383
    84     void setClient(std::unique_ptr<API::IconDatabaseClient>);
     84    void setClient(std::unique_ptr<API::IconDatabaseClient>&&);
    8585
    8686    void setPrivateBrowsingEnabled(bool);
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r217971 r218259  
    327327    , m_loaderClient(std::make_unique<API::LoaderClient>())
    328328    , m_policyClient(std::make_unique<API::PolicyClient>())
     329    , m_iconLoadingClient(std::make_unique<API::IconLoadingClient>())
    329330    , m_formClient(std::make_unique<API::FormClient>())
    330331    , m_uiClient(std::make_unique<API::UIClient>())
     
    470471}
    471472   
    472 void WebPageProxy::setHistoryClient(std::unique_ptr<API::HistoryClient> historyClient)
     473void WebPageProxy::setHistoryClient(std::unique_ptr<API::HistoryClient>&& historyClient)
    473474{
    474475    m_historyClient = WTFMove(historyClient);
    475476}
    476477
    477 void WebPageProxy::setNavigationClient(std::unique_ptr<API::NavigationClient> navigationClient)
     478void WebPageProxy::setNavigationClient(std::unique_ptr<API::NavigationClient>&& navigationClient)
    478479{
    479480    m_navigationClient = WTFMove(navigationClient);
    480481}
    481482
    482 void WebPageProxy::setLoaderClient(std::unique_ptr<API::LoaderClient> loaderClient)
     483void WebPageProxy::setLoaderClient(std::unique_ptr<API::LoaderClient>&& loaderClient)
    483484{
    484485    if (!loaderClient) {
     
    490491}
    491492
    492 void WebPageProxy::setPolicyClient(std::unique_ptr<API::PolicyClient> policyClient)
     493void WebPageProxy::setPolicyClient(std::unique_ptr<API::PolicyClient>&& policyClient)
    493494{
    494495    if (!policyClient) {
     
    500501}
    501502
    502 void WebPageProxy::setFormClient(std::unique_ptr<API::FormClient> formClient)
     503void WebPageProxy::setFormClient(std::unique_ptr<API::FormClient>&& formClient)
    503504{
    504505    if (!formClient) {
     
    510511}
    511512
    512 void WebPageProxy::setUIClient(std::unique_ptr<API::UIClient> uiClient)
     513void WebPageProxy::setUIClient(std::unique_ptr<API::UIClient>&& uiClient)
    513514{
    514515    if (!uiClient) {
     
    526527}
    527528
    528 void WebPageProxy::setIconLoadingClient(std::unique_ptr<API::IconLoadingClient> iconLoadingClient)
     529void WebPageProxy::setIconLoadingClient(std::unique_ptr<API::IconLoadingClient>&& iconLoadingClient)
    529530{
    530531    bool hasClient = iconLoadingClient.get();
     
    540541}
    541542
    542 void WebPageProxy::setFindClient(std::unique_ptr<API::FindClient> findClient)
     543void WebPageProxy::setFindClient(std::unique_ptr<API::FindClient>&& findClient)
    543544{
    544545    if (!findClient) {
     
    550551}
    551552
    552 void WebPageProxy::setFindMatchesClient(std::unique_ptr<API::FindMatchesClient> findMatchesClient)
     553void WebPageProxy::setFindMatchesClient(std::unique_ptr<API::FindMatchesClient>&& findMatchesClient)
    553554{
    554555    if (!findMatchesClient) {
     
    560561}
    561562
    562 void WebPageProxy::setDiagnosticLoggingClient(std::unique_ptr<API::DiagnosticLoggingClient> diagnosticLoggingClient)
     563void WebPageProxy::setDiagnosticLoggingClient(std::unique_ptr<API::DiagnosticLoggingClient>&& diagnosticLoggingClient)
    563564{
    564565    if (!diagnosticLoggingClient) {
     
    571572
    572573#if ENABLE(CONTEXT_MENUS)
    573 void WebPageProxy::setContextMenuClient(std::unique_ptr<API::ContextMenuClient> contextMenuClient)
     574void WebPageProxy::setContextMenuClient(std::unique_ptr<API::ContextMenuClient>&& contextMenuClient)
    574575{
    575576    if (!contextMenuClient) {
     
    759760    m_navigationClient = nullptr;
    760761    m_policyClient = std::make_unique<API::PolicyClient>();
     762    m_iconLoadingClient = std::make_unique<API::IconLoadingClient>();
    761763    m_formClient = std::make_unique<API::FormClient>();
    762764    m_uiClient = std::make_unique<API::UIClient>();
     
    766768#if ENABLE(CONTEXT_MENUS)
    767769    m_contextMenuClient = std::make_unique<API::ContextMenuClient>();
     770#endif
     771#if ENABLE(FULLSCREEN_API)
     772    m_fullscreenClient = std::make_unique<API::FullscreenClient>();
    768773#endif
    769774
     
    42714276}
    42724277
    4273 void WebPageProxy::setFullscreenClient(std::unique_ptr<API::FullscreenClient> client)
    4274 {
     4278void WebPageProxy::setFullscreenClient(std::unique_ptr<API::FullscreenClient>&& client)
     4279{
     4280    if (!client) {
     4281        m_fullscreenClient = std::make_unique<API::FullscreenClient>();
     4282        return;
     4283    }
     4284
    42754285    m_fullscreenClient = WTFMove(client);
    42764286}
     
    67426752void WebPageProxy::getLoadDecisionForIcon(const WebCore::LinkIcon& icon, uint64_t loadIdentifier)
    67436753{
    6744     if (!m_iconLoadingClient)
    6745         return;
    6746 
    67476754    m_iconLoadingClient->getLoadDecisionForIcon(icon, [this, protectedThis = RefPtr<WebPageProxy>(this), loadIdentifier](std::function<void (API::Data*, CallbackBase::Error)> callbackFunction) {
    67486755        if (!isValid()) {
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r217971 r218259  
    335335
    336336    API::FullscreenClient& fullscreenClient() const { return *m_fullscreenClient; }
    337     void setFullscreenClient(std::unique_ptr<API::FullscreenClient>);
     337    void setFullscreenClient(std::unique_ptr<API::FullscreenClient>&&);
    338338#endif
    339339#if (PLATFORM(IOS) && HAVE(AVKIT)) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE))
     
    349349#if ENABLE(CONTEXT_MENUS)
    350350    API::ContextMenuClient& contextMenuClient() { return *m_contextMenuClient; }
    351     void setContextMenuClient(std::unique_ptr<API::ContextMenuClient>);
     351    void setContextMenuClient(std::unique_ptr<API::ContextMenuClient>&&);
    352352#endif
    353353    API::FindClient& findClient() { return *m_findClient; }
    354     void setFindClient(std::unique_ptr<API::FindClient>);
     354    void setFindClient(std::unique_ptr<API::FindClient>&&);
    355355    API::FindMatchesClient& findMatchesClient() { return *m_findMatchesClient; }
    356     void setFindMatchesClient(std::unique_ptr<API::FindMatchesClient>);
     356    void setFindMatchesClient(std::unique_ptr<API::FindMatchesClient>&&);
    357357    API::DiagnosticLoggingClient& diagnosticLoggingClient() { return *m_diagnosticLoggingClient; }
    358     void setDiagnosticLoggingClient(std::unique_ptr<API::DiagnosticLoggingClient>);
    359     void setFormClient(std::unique_ptr<API::FormClient>);
    360     void setNavigationClient(std::unique_ptr<API::NavigationClient>);
    361     void setHistoryClient(std::unique_ptr<API::HistoryClient>);
    362     void setLoaderClient(std::unique_ptr<API::LoaderClient>);
    363     void setPolicyClient(std::unique_ptr<API::PolicyClient>);
     358    void setDiagnosticLoggingClient(std::unique_ptr<API::DiagnosticLoggingClient>&&);
     359    void setFormClient(std::unique_ptr<API::FormClient>&&);
     360    void setNavigationClient(std::unique_ptr<API::NavigationClient>&&);
     361    void setHistoryClient(std::unique_ptr<API::HistoryClient>&&);
     362    void setLoaderClient(std::unique_ptr<API::LoaderClient>&&);
     363    void setPolicyClient(std::unique_ptr<API::PolicyClient>&&);
    364364    void setInjectedBundleClient(const WKPageInjectedBundleClientBase*);
    365365    WebPageInjectedBundleClient* injectedBundleClient() { return m_injectedBundleClient.get(); }
    366366
    367367    API::UIClient& uiClient() { return *m_uiClient; }
    368     void setUIClient(std::unique_ptr<API::UIClient>);
     368    void setUIClient(std::unique_ptr<API::UIClient>&&);
    369369
    370370    API::IconLoadingClient& iconLoadingClient() { return *m_iconLoadingClient; }
    371     void setIconLoadingClient(std::unique_ptr<API::IconLoadingClient>);
     371    void setIconLoadingClient(std::unique_ptr<API::IconLoadingClient>&&);
    372372
    373373    void initializeWebPage();
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp

    r218138 r218259  
    341341}
    342342
    343 void WebProcessPool::setHistoryClient(std::unique_ptr<API::LegacyContextHistoryClient> historyClient)
     343void WebProcessPool::setHistoryClient(std::unique_ptr<API::LegacyContextHistoryClient>&& historyClient)
    344344{
    345345    if (!historyClient)
     
    349349}
    350350
    351 void WebProcessPool::setDownloadClient(std::unique_ptr<API::DownloadClient> downloadClient)
     351void WebProcessPool::setDownloadClient(std::unique_ptr<API::DownloadClient>&& downloadClient)
    352352{
    353353    if (!downloadClient)
     
    357357}
    358358
    359 void WebProcessPool::setAutomationClient(std::unique_ptr<API::AutomationClient> automationClient)
     359void WebProcessPool::setAutomationClient(std::unique_ptr<API::AutomationClient>&& automationClient)
    360360{
    361361    if (!automationClient)
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.h

    r216794 r218259  
    143143    void initializeInjectedBundleClient(const WKContextInjectedBundleClientBase*);
    144144    void initializeConnectionClient(const WKContextConnectionClientBase*);
    145     void setHistoryClient(std::unique_ptr<API::LegacyContextHistoryClient>);
    146     void setDownloadClient(std::unique_ptr<API::DownloadClient>);
    147     void setAutomationClient(std::unique_ptr<API::AutomationClient>);
     145    void setHistoryClient(std::unique_ptr<API::LegacyContextHistoryClient>&&);
     146    void setDownloadClient(std::unique_ptr<API::DownloadClient>&&);
     147    void setAutomationClient(std::unique_ptr<API::AutomationClient>&&);
    148148    void setLegacyCustomProtocolManagerClient(std::unique_ptr<API::CustomProtocolManagerClient>&&);
    149149
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r218229 r218259  
    696696
    697697#if ENABLE(CONTEXT_MENUS)
    698 void WebPage::setInjectedBundleContextMenuClient(std::unique_ptr<API::InjectedBundle::PageContextMenuClient> contextMenuClient)
     698void WebPage::setInjectedBundleContextMenuClient(std::unique_ptr<API::InjectedBundle::PageContextMenuClient>&& contextMenuClient)
    699699{
    700700    if (!contextMenuClient) {
     
    707707#endif
    708708
    709 void WebPage::setInjectedBundleEditorClient(std::unique_ptr<API::InjectedBundle::EditorClient> editorClient)
     709void WebPage::setInjectedBundleEditorClient(std::unique_ptr<API::InjectedBundle::EditorClient>&& editorClient)
    710710{
    711711    if (!editorClient) {
     
    717717}
    718718
    719 void WebPage::setInjectedBundleFormClient(std::unique_ptr<API::InjectedBundle::FormClient> formClient)
     719void WebPage::setInjectedBundleFormClient(std::unique_ptr<API::InjectedBundle::FormClient>&& formClient)
    720720{
    721721    if (!formClient) {
     
    727727}
    728728
    729 void WebPage::setInjectedBundlePageLoaderClient(std::unique_ptr<API::InjectedBundle::PageLoaderClient> loaderClient)
     729void WebPage::setInjectedBundlePageLoaderClient(std::unique_ptr<API::InjectedBundle::PageLoaderClient>&& loaderClient)
    730730{
    731731    if (!loaderClient) {
     
    753753}
    754754
    755 void WebPage::setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient> uiClient)
     755void WebPage::setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient>&& uiClient)
    756756{
    757757    if (!uiClient) {
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r218164 r218259  
    327327    // -- InjectedBundle methods
    328328#if ENABLE(CONTEXT_MENUS)
    329     void setInjectedBundleContextMenuClient(std::unique_ptr<API::InjectedBundle::PageContextMenuClient>);
    330 #endif
    331     void setInjectedBundleEditorClient(std::unique_ptr<API::InjectedBundle::EditorClient>);
    332     void setInjectedBundleFormClient(std::unique_ptr<API::InjectedBundle::FormClient>);
    333     void setInjectedBundlePageLoaderClient(std::unique_ptr<API::InjectedBundle::PageLoaderClient>);
     329    void setInjectedBundleContextMenuClient(std::unique_ptr<API::InjectedBundle::PageContextMenuClient>&&);
     330#endif
     331    void setInjectedBundleEditorClient(std::unique_ptr<API::InjectedBundle::EditorClient>&&);
     332    void setInjectedBundleFormClient(std::unique_ptr<API::InjectedBundle::FormClient>&&);
     333    void setInjectedBundlePageLoaderClient(std::unique_ptr<API::InjectedBundle::PageLoaderClient>&&);
    334334    void initializeInjectedBundlePolicyClient(WKBundlePagePolicyClientBase*);
    335335    void initializeInjectedBundleResourceLoadClient(WKBundlePageResourceLoadClientBase*);
    336     void setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient>);
     336    void setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient>&&);
    337337#if ENABLE(FULLSCREEN_API)
    338338    void initializeInjectedBundleFullScreenClient(WKBundlePageFullScreenClientBase*);
Note: See TracChangeset for help on using the changeset viewer.