Changeset 226323 in webkit
- Timestamp:
- Jan 2, 2018 9:17:19 AM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 1 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r226320 r226323 1 2018-01-02 Alex Christensen <achristensen@webkit.org> 2 3 Clean up context menu code 4 https://bugs.webkit.org/show_bug.cgi?id=181074 5 6 Reviewed by Brent Fulgham. 7 8 Use Ref instead of RefPtr where possible. 9 Use move semantics instead of copying from const references when possible. 10 Remove dead iOS code. Reduce allocations. Add stub for WPE. 11 12 * UIProcess/API/APIContextMenuClient.h: 13 (API::ContextMenuClient::getContextMenuFromProposedMenu): 14 (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): 15 (API::ContextMenuClient::showContextMenu): 16 * UIProcess/API/C/WKPage.cpp: 17 (WKPageSetPageContextMenuClient): 18 * UIProcess/API/gtk/PageClientImpl.cpp: 19 (WebKit::PageClientImpl::createContextMenuProxy): 20 * UIProcess/API/gtk/PageClientImpl.h: 21 * UIProcess/PageClient.h: 22 * UIProcess/WebContextMenuListenerProxy.cpp: 23 (WebKit::WebContextMenuListenerProxy::useContextMenuItems): 24 * UIProcess/WebContextMenuProxy.cpp: 25 (WebKit::WebContextMenuProxy::WebContextMenuProxy): 26 * UIProcess/WebContextMenuProxy.h: 27 * UIProcess/WebPageProxy.cpp: 28 (WebKit::WebPageProxy::showContextMenu): 29 (WebKit::WebPageProxy::internalShowContextMenu): Deleted. 30 * UIProcess/WebPageProxy.h: 31 * UIProcess/gtk/WebContextMenuProxyGtk.cpp: 32 (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): 33 (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): 34 * UIProcess/gtk/WebContextMenuProxyGtk.h: 35 (WebKit::WebContextMenuProxyGtk::create): 36 * UIProcess/ios/PageClientImplIOS.h: 37 * UIProcess/ios/PageClientImplIOS.mm: 38 (WebKit::PageClientImpl::createContextMenuProxy): Deleted. 39 * UIProcess/mac/PageClientImplMac.h: 40 * UIProcess/mac/PageClientImplMac.mm: 41 (WebKit::PageClientImpl::createContextMenuProxy): 42 * UIProcess/mac/WebContextMenuProxyMac.h: 43 (WebKit::WebContextMenuProxyMac::create): 44 * UIProcess/mac/WebContextMenuProxyMac.mm: 45 (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac): 46 (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): 47 (WebKit::WebContextMenuProxyMac::showContextMenu): 48 1 49 == Rolled over to ChangeLog-2018-01-01 == -
trunk/Source/WebKit/PlatformWPE.cmake
r226268 r226323 426 426 "${WEBKIT_DIR}/UIProcess/linux" 427 427 "${WEBKIT_DIR}/UIProcess/soup" 428 "${WEBKIT_DIR}/UIProcess/wpe" 428 429 "${WEBKIT_DIR}/WebProcess/InjectedBundle/API/glib" 429 430 "${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe" -
trunk/Source/WebKit/UIProcess/API/APIContextMenuClient.h
r222113 r226323 24 24 */ 25 25 26 #ifndef APIContextMenuClient_h 27 #define APIContextMenuClient_h 26 #pragma once 28 27 29 28 #if ENABLE(CONTEXT_MENUS) … … 53 52 virtual ~ContextMenuClient() { } 54 53 55 virtual bool getContextMenuFromProposedMenu(WebKit::WebPageProxy&, const Vector<Ref Ptr<WebKit::WebContextMenuItem>>& /* proposedMenu */, Vector<RefPtr<WebKit::WebContextMenuItem>>& /* customMenu */, const WebKit::WebHitTestResultData&, API::Object* /* userData */) { return false; }56 virtual bool getContextMenuFromProposedMenuAsync(WebKit::WebPageProxy&, const Vector<Ref Ptr<WebKit::WebContextMenuItem>>& /* proposedMenu */, WebKit::WebContextMenuListenerProxy*, const WebKit::WebHitTestResultData&, API::Object* /* userData */) { return false; }54 virtual bool getContextMenuFromProposedMenu(WebKit::WebPageProxy&, const Vector<Ref<WebKit::WebContextMenuItem>>& /* proposedMenu */, Vector<Ref<WebKit::WebContextMenuItem>>& /* customMenu */, const WebKit::WebHitTestResultData&, API::Object* /* userData */) { return false; } 55 virtual bool getContextMenuFromProposedMenuAsync(WebKit::WebPageProxy&, const Vector<Ref<WebKit::WebContextMenuItem>>& /* proposedMenu */, WebKit::WebContextMenuListenerProxy*, const WebKit::WebHitTestResultData&, API::Object* /* userData */) { return false; } 57 56 virtual void customContextMenuItemSelected(WebKit::WebPageProxy&, const WebKit::WebContextMenuItemData&) { } 58 virtual bool showContextMenu(WebKit::WebPageProxy&, const WebCore::IntPoint&, const Vector<Ref Ptr<WebKit::WebContextMenuItem>>&) { return false; }57 virtual bool showContextMenu(WebKit::WebPageProxy&, const WebCore::IntPoint&, const Vector<Ref<WebKit::WebContextMenuItem>>&) { return false; } 59 58 virtual bool hideContextMenu(WebKit::WebPageProxy&) { return false; } 60 59 … … 67 66 68 67 #endif // ENABLE(CONTEXT_MENUS) 69 #endif // APIContextMenuClient_h -
trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp
r225989 r226323 819 819 820 820 private: 821 bool getContextMenuFromProposedMenu(WebPageProxy& page, const Vector<Ref Ptr<WebKit::WebContextMenuItem>>& proposedMenuVector, Vector<RefPtr<WebKit::WebContextMenuItem>>& customMenu, const WebHitTestResultData& hitTestResultData, API::Object* userData) override821 bool getContextMenuFromProposedMenu(WebPageProxy& page, const Vector<Ref<WebKit::WebContextMenuItem>>& proposedMenuVector, Vector<Ref<WebKit::WebContextMenuItem>>& customMenu, const WebHitTestResultData& hitTestResultData, API::Object* userData) override 822 822 { 823 823 if (!m_client.getContextMenuFromProposedMenu && !m_client.getContextMenuFromProposedMenu_deprecatedForUseWithV0) … … 831 831 832 832 for (const auto& menuItem : proposedMenuVector) 833 proposedMenuItems.uncheckedAppend(menuItem );833 proposedMenuItems.uncheckedAppend(menuItem.ptr()); 834 834 835 835 WKArrayRef newMenu = nullptr; 836 836 if (m_client.base.version >= 2) { 837 RefPtr<API::HitTestResult>webHitTestResult = API::HitTestResult::create(hitTestResultData);838 m_client.getContextMenuFromProposedMenu(toAPI(&page), toAPI(API::Array::create(WTFMove(proposedMenuItems)).ptr()), &newMenu, toAPI(webHitTestResult. get()), toAPI(userData), m_client.base.clientInfo);837 auto webHitTestResult = API::HitTestResult::create(hitTestResultData); 838 m_client.getContextMenuFromProposedMenu(toAPI(&page), toAPI(API::Array::create(WTFMove(proposedMenuItems)).ptr()), &newMenu, toAPI(webHitTestResult.ptr()), toAPI(userData), m_client.base.clientInfo); 839 839 } else 840 840 m_client.getContextMenuFromProposedMenu_deprecatedForUseWithV0(toAPI(&page), toAPI(API::Array::create(WTFMove(proposedMenuItems)).ptr()), &newMenu, toAPI(userData), m_client.base.clientInfo); … … 852 852 } 853 853 854 customMenu.append( item);854 customMenu.append(*item); 855 855 } 856 856 … … 858 858 } 859 859 860 bool getContextMenuFromProposedMenuAsync(WebPageProxy& page, const Vector<Ref Ptr<WebKit::WebContextMenuItem>>& proposedMenuVector, WebKit::WebContextMenuListenerProxy* contextMenuListener, const WebHitTestResultData& hitTestResultData, API::Object* userData) override860 bool getContextMenuFromProposedMenuAsync(WebPageProxy& page, const Vector<Ref<WebKit::WebContextMenuItem>>& proposedMenuVector, WebKit::WebContextMenuListenerProxy* contextMenuListener, const WebHitTestResultData& hitTestResultData, API::Object* userData) override 861 861 { 862 862 if (m_client.base.version < 4 || !m_client.getContextMenuFromProposedMenuAsync) … … 867 867 868 868 for (const auto& menuItem : proposedMenuVector) 869 proposedMenuItems.uncheckedAppend(menuItem );869 proposedMenuItems.uncheckedAppend(menuItem.ptr()); 870 870 871 871 RefPtr<API::HitTestResult> webHitTestResult = API::HitTestResult::create(hitTestResultData); … … 883 883 } 884 884 885 bool showContextMenu(WebPageProxy& page, const WebCore::IntPoint& menuLocation, const Vector<Ref Ptr<WebContextMenuItem>>& menuItemsVector) override885 bool showContextMenu(WebPageProxy& page, const WebCore::IntPoint& menuLocation, const Vector<Ref<WebContextMenuItem>>& menuItemsVector) override 886 886 { 887 887 if (!m_client.showContextMenu) … … 892 892 893 893 for (const auto& menuItem : menuItemsVector) 894 menuItems.uncheckedAppend(menuItem );894 menuItems.uncheckedAppend(menuItem.ptr()); 895 895 896 896 m_client.showContextMenu(toAPI(&page), toAPI(menuLocation), toAPI(API::Array::create(WTFMove(menuItems)).ptr()), m_client.base.clientInfo); -
trunk/Source/WebKit/UIProcess/API/glib/WebKitContextMenuClient.cpp
r218487 r226323 35 35 36 36 private: 37 bool getContextMenuFromProposedMenu(WebPageProxy&, const Vector<Ref Ptr<WebContextMenuItem>>& proposedMenu, Vector<RefPtr<WebContextMenuItem>>&, const WebHitTestResultData& hitTestResultData, API::Object* userData) override37 bool getContextMenuFromProposedMenu(WebPageProxy&, const Vector<Ref<WebContextMenuItem>>& proposedMenu, Vector<Ref<WebContextMenuItem>>&, const WebHitTestResultData& hitTestResultData, API::Object* userData) override 38 38 { 39 39 GRefPtr<GVariant> variant; -
trunk/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
r222855 r226323 212 212 } 213 213 214 Ref Ptr<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)215 { 216 return WebContextMenuProxyGtk::create(m_viewWidget, page, context, userData);214 Ref<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy& page, ContextMenuContextData&& context, const UserData& userData) 215 { 216 return WebContextMenuProxyGtk::create(m_viewWidget, page, WTFMove(context), userData); 217 217 } 218 218 -
trunk/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
r221489 r226323 81 81 void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool wasEventHandled) override; 82 82 RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) override; 83 Ref Ptr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, const ContextMenuContextData&, const UserData&) override;83 Ref<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, ContextMenuContextData&&, const UserData&) override; 84 84 #if ENABLE(INPUT_TYPE_COLOR) 85 85 RefPtr<WebColorPicker> createColorPicker(WebPageProxy*, const WebCore::Color& intialColor, const WebCore::IntRect&) override; -
trunk/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
r218740 r226323 33 33 #include "WPEView.h" 34 34 #include "WebContextMenuProxy.h" 35 #include "WebContextMenuProxyWPE.h" 35 36 #include <WebCore/ActivityState.h> 36 37 #include <WebCore/NotImplemented.h> … … 231 232 232 233 #if ENABLE(CONTEXT_MENUS) 233 Ref Ptr<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy&, const ContextMenuContextData&, const UserData&)234 { 235 return nullptr;234 Ref<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy&, ContextMenuContextData&& context, const UserData& userData) 235 { 236 return WebContextMenuProxyWPE::create(WTFMove(context), userData); 236 237 } 237 238 #endif -
trunk/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
r222729 r226323 84 84 RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) override; 85 85 #if ENABLE(CONTEXT_MENUS) 86 Ref Ptr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, const ContextMenuContextData&, const UserData&) override;86 Ref<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, ContextMenuContextData&&, const UserData&) override; 87 87 #endif 88 88 -
trunk/Source/WebKit/UIProcess/PageClient.h
r226312 r226323 215 215 virtual RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) = 0; 216 216 #if ENABLE(CONTEXT_MENUS) 217 virtual Ref Ptr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, const ContextMenuContextData&, const UserData&) = 0;217 virtual Ref<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, ContextMenuContextData&&, const UserData&) = 0; 218 218 #endif 219 219 -
trunk/Source/WebKit/UIProcess/WebContextMenuListenerProxy.cpp
r217531 r226323 54 54 55 55 RefPtr<API::Array> array = toImpl(items); 56 size_t newSize = array ? array->size() : 0; 56 57 Vector<WebContextMenuItemData> dataItems; 57 58 size_t newSize = array ? array->size() : 0; 58 dataItems.reserveInitialCapacity(newSize); 59 59 for (size_t i = 0; i < newSize; ++i) { 60 60 WebContextMenuItem* item = array->at<WebContextMenuItem>(i); … … 62 62 continue; 63 63 64 dataItems. append(item->data());64 dataItems.uncheckedAppend(item->data()); 65 65 } 66 66 67 m_contextMenuMac->showContextMenuWithItems( dataItems);67 m_contextMenuMac->showContextMenuWithItems(WTFMove(dataItems)); 68 68 } 69 69 -
trunk/Source/WebKit/UIProcess/WebContextMenuProxy.cpp
r191146 r226323 31 31 namespace WebKit { 32 32 33 WebContextMenuProxy::WebContextMenuProxy( const ContextMenuContextData& context, const UserData& userData)34 : m_context( context)33 WebContextMenuProxy::WebContextMenuProxy(ContextMenuContextData&& context, const UserData& userData) 34 : m_context(WTFMove(context)) 35 35 , m_userData(userData) 36 36 { -
trunk/Source/WebKit/UIProcess/WebContextMenuProxy.h
r217552 r226323 42 42 virtual void show() = 0; 43 43 44 virtual void showContextMenuWithItems( const Vector<WebContextMenuItemData>& items) = 0;44 virtual void showContextMenuWithItems(Vector<WebContextMenuItemData>&&) = 0; 45 45 46 46 protected: 47 WebContextMenuProxy( const ContextMenuContextData&, const UserData&);47 WebContextMenuProxy(ContextMenuContextData&&, const UserData&); 48 48 49 49 const ContextMenuContextData m_context; -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r226235 r226323 4723 4723 4724 4724 #if ENABLE(CONTEXT_MENUS) 4725 void WebPageProxy::showContextMenu( const ContextMenuContextData& contextMenuContextData, const UserData& userData)4725 void WebPageProxy::showContextMenu(ContextMenuContextData&& contextMenuContextData, const UserData& userData) 4726 4726 { 4727 4727 // Showing a context menu runs a nested runloop, which can handle messages that cause |this| to get closed. 4728 4728 Ref<WebPageProxy> protect(*this); 4729 4729 4730 internalShowContextMenu(contextMenuContextData, userData);4731 4732 // No matter the result of internalShowContextMenu, always notify the WebProcess that the menu is hidden so it starts handling mouse events again.4733 m_process->send(Messages::WebPage::ContextMenuHidden(), m_pageID);4734 }4735 4736 void WebPageProxy::internalShowContextMenu(const ContextMenuContextData& contextMenuContextData, const UserData& userData)4737 {4738 4730 m_activeContextMenuContextData = contextMenuContextData; 4739 4731 4740 m_activeContextMenu = m_pageClient.createContextMenuProxy(*this, contextMenuContextData, userData); 4741 if (!m_activeContextMenu) 4742 return; 4732 m_activeContextMenu = m_pageClient.createContextMenuProxy(*this, WTFMove(contextMenuContextData), userData); 4743 4733 4744 4734 // Since showContextMenu() can spin a nested run loop we need to turn off the responsiveness timer. … … 4748 4738 Ref<WebContextMenuProxy> protector(*m_activeContextMenu); 4749 4739 m_activeContextMenu->show(); 4740 4741 // No matter the result of internalShowContextMenu, always notify the WebProcess that the menu is hidden so it starts handling mouse events again. 4742 m_process->send(Messages::WebPage::ContextMenuHidden(), m_pageID); 4750 4743 } 4751 4744 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r226312 r226323 1462 1462 1463 1463 #if ENABLE(CONTEXT_MENUS) 1464 void showContextMenu(const ContextMenuContextData&, const UserData&); 1465 void internalShowContextMenu(const ContextMenuContextData&, const UserData&); 1464 void showContextMenu(ContextMenuContextData&&, const UserData&); 1466 1465 #endif 1467 1466 -
trunk/Source/WebKit/UIProcess/gtk/WebContextMenuProxyGtk.cpp
r218798 r226323 125 125 } 126 126 127 void WebContextMenuProxyGtk::populate(const Vector<Ref Ptr<WebContextMenuItem>>& items)127 void WebContextMenuProxyGtk::populate(const Vector<Ref<WebContextMenuItem>>& items) 128 128 { 129 129 GRefPtr<GMenu> menu = adoptGRef(g_menu_new()); … … 144 144 void WebContextMenuProxyGtk::show() 145 145 { 146 Vector<Ref Ptr<WebContextMenuItem>> proposedAPIItems;146 Vector<Ref<WebContextMenuItem>> proposedAPIItems; 147 147 for (auto& item : m_context.menuItems()) { 148 148 if (item.action() != ContextMenuItemTagShareMenu) … … 150 150 } 151 151 152 Vector<Ref Ptr<WebContextMenuItem>> clientItems;152 Vector<Ref<WebContextMenuItem>> clientItems; 153 153 bool useProposedItems = true; 154 154 … … 156 156 useProposedItems = false; 157 157 158 const Vector<Ref Ptr<WebContextMenuItem>>& items = useProposedItems ? proposedAPIItems : clientItems;158 const Vector<Ref<WebContextMenuItem>>& items = useProposedItems ? proposedAPIItems : clientItems; 159 159 160 160 if (!items.isEmpty()) … … 176 176 } 177 177 178 void WebContextMenuProxyGtk::showContextMenuWithItems( const Vector<WebContextMenuItemData>& items)179 { 180 } 181 182 WebContextMenuProxyGtk::WebContextMenuProxyGtk(GtkWidget* webView, WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)183 : WebContextMenuProxy( context, userData)178 void WebContextMenuProxyGtk::showContextMenuWithItems(Vector<WebContextMenuItemData>&&) 179 { 180 } 181 182 WebContextMenuProxyGtk::WebContextMenuProxyGtk(GtkWidget* webView, WebPageProxy& page, ContextMenuContextData&& context, const UserData& userData) 183 : WebContextMenuProxy(WTFMove(context), userData) 184 184 , m_webView(webView) 185 185 , m_page(&page) -
trunk/Source/WebKit/UIProcess/gtk/WebContextMenuProxyGtk.h
r218445 r226323 24 24 */ 25 25 26 #ifndef WebContextMenuProxyGtk_h 27 #define WebContextMenuProxyGtk_h 26 #pragma once 28 27 29 28 #if ENABLE(CONTEXT_MENUS) … … 45 44 class WebContextMenuProxyGtk : public WebContextMenuProxy { 46 45 public: 47 static auto create(GtkWidget* widget, WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)46 static auto create(GtkWidget* widget, WebPageProxy& page, ContextMenuContextData&& context, const UserData& userData) 48 47 { 49 return adoptRef(*new WebContextMenuProxyGtk(widget, page, context, userData));48 return adoptRef(*new WebContextMenuProxyGtk(widget, page, WTFMove(context), userData)); 50 49 } 51 50 ~WebContextMenuProxyGtk(); … … 55 54 56 55 private: 57 WebContextMenuProxyGtk(GtkWidget*, WebPageProxy&, const ContextMenuContextData&, const UserData&);56 WebContextMenuProxyGtk(GtkWidget*, WebPageProxy&, ContextMenuContextData&&, const UserData&); 58 57 void show() override; 59 void showContextMenuWithItems( const Vector<WebContextMenuItemData>&) override;58 void showContextMenuWithItems(Vector<WebContextMenuItemData>&&) override; 60 59 void append(GMenu*, const WebContextMenuItemGlib&); 61 60 GRefPtr<GMenu> buildMenu(const Vector<WebContextMenuItemGlib>&); 62 void populate(const Vector<Ref Ptr<WebContextMenuItem>>&);61 void populate(const Vector<Ref<WebContextMenuItem>>&); 63 62 static void menuPositionFunction(GtkMenu*, gint*, gint*, gboolean*, WebContextMenuProxyGtk*); 64 63 … … 74 73 75 74 #endif // ENABLE(CONTEXT_MENUS) 76 #endif // WebContextMenuProxyGtk_h -
trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h
r224930 r226323 95 95 #endif 96 96 RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) override; 97 #if ENABLE(CONTEXT_MENUS)98 RefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, const ContextMenuContextData&, const UserData&) override;99 #endif100 97 Ref<WebCore::ValidationBubble> createValidationBubble(const String& message, const WebCore::ValidationBubble::Settings&) final; 101 98 -
trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
r225264 r226323 449 449 } 450 450 451 #if ENABLE(CONTEXT_MENUS)452 RefPtr<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy&, const UserData&)453 {454 return nullptr;455 }456 #endif457 458 451 void PageClientImpl::setTextIndicator(Ref<TextIndicator> textIndicator, TextIndicatorWindowLifetime) 459 452 { -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h
r226312 r226323 124 124 RefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy&) override; 125 125 #if ENABLE(CONTEXT_MENUS) 126 Ref Ptr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, const ContextMenuContextData&, const UserData&) override;126 Ref<WebContextMenuProxy> createContextMenuProxy(WebPageProxy&, ContextMenuContextData&&, const UserData&) override; 127 127 #endif 128 128 -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm
r226312 r226323 442 442 443 443 #if ENABLE(CONTEXT_MENUS) 444 Ref Ptr<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)445 { 446 return WebContextMenuProxyMac::create(m_view, page, context, userData);444 Ref<WebContextMenuProxy> PageClientImpl::createContextMenuProxy(WebPageProxy& page, ContextMenuContextData&& context, const UserData& userData) 445 { 446 return WebContextMenuProxyMac::create(m_view, page, WTFMove(context), userData); 447 447 } 448 448 #endif -
trunk/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h
r217552 r226323 48 48 class WebContextMenuProxyMac : public WebContextMenuProxy { 49 49 public: 50 static auto create(NSView* view, WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)50 static auto create(NSView* view, WebPageProxy& page, ContextMenuContextData&& context, const UserData& userData) 51 51 { 52 return adoptRef(*new WebContextMenuProxyMac(view, page, context, userData));52 return adoptRef(*new WebContextMenuProxyMac(view, page, WTFMove(context), userData)); 53 53 } 54 54 ~WebContextMenuProxyMac(); 55 55 56 56 void contextMenuItemSelected(const WebContextMenuItemData&); 57 void showContextMenuWithItems( const Vector<WebContextMenuItemData>&) override;57 void showContextMenuWithItems(Vector<WebContextMenuItemData>&&) override; 58 58 59 59 #if ENABLE(SERVICE_CONTROLS) … … 65 65 66 66 private: 67 WebContextMenuProxyMac(NSView*, WebPageProxy&, const ContextMenuContextData&, const UserData&);67 WebContextMenuProxyMac(NSView*, WebPageProxy&, ContextMenuContextData&&, const UserData&); 68 68 void show() override; 69 69 -
trunk/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm
r226277 r226323 153 153 namespace WebKit { 154 154 155 WebContextMenuProxyMac::WebContextMenuProxyMac(NSView* webView, WebPageProxy& page, const ContextMenuContextData& context, const UserData& userData)156 : WebContextMenuProxy( context, userData)155 WebContextMenuProxyMac::WebContextMenuProxyMac(NSView* webView, WebPageProxy& page, ContextMenuContextData&& context, const UserData& userData) 156 : WebContextMenuProxy(WTFMove(context), userData) 157 157 , m_webView(webView) 158 158 , m_page(page) … … 452 452 } 453 453 454 void WebContextMenuProxyMac::showContextMenuWithItems( const Vector<WebContextMenuItemData>& items)454 void WebContextMenuProxyMac::showContextMenuWithItems(Vector<WebContextMenuItemData>&& items) 455 455 { 456 456 auto menu = createContextMenuFromItems(items); … … 470 470 void WebContextMenuProxyMac::showContextMenu() 471 471 { 472 Vector<Ref Ptr<WebContextMenuItem>> proposedAPIItems;472 Vector<Ref<WebContextMenuItem>> proposedAPIItems; 473 473 for (auto& item : m_context.menuItems()) 474 474 proposedAPIItems.append(WebContextMenuItem::create(item)); 475 475 476 Vector<Ref Ptr<WebContextMenuItem>> clientItems;476 Vector<Ref<WebContextMenuItem>> clientItems; 477 477 bool useProposedItems = true; 478 478 … … 501 501 return; 502 502 503 showContextMenuWithItems( items);503 showContextMenuWithItems(WTFMove(items)); 504 504 } 505 505
Note: See TracChangeset
for help on using the changeset viewer.