diff options
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 2b1615d0..d2f0b15 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -60,6 +60,7 @@ #include "chrome/renderer/extensions/extension_renderer_info.h" #include "chrome/renderer/extensions/renderer_extension_bindings.h" #include "chrome/renderer/external_host_bindings.h" +#include "chrome/renderer/external_popup_menu.h" #include "chrome/renderer/geolocation_dispatcher_old.h" #include "chrome/renderer/ggl/ggl.h" #include "chrome/renderer/localized_error.h" @@ -200,6 +201,8 @@ using WebKit::WebDragData; using WebKit::WebDragOperation; using WebKit::WebDragOperationsMask; using WebKit::WebEditingAction; +using WebKit::WebExternalPopupMenu; +using WebKit::WebExternalPopupMenuClient; using WebKit::WebFileChooserCompletion; using WebKit::WebFileSystem; using WebKit::WebFileSystemCallbacks; @@ -844,6 +847,9 @@ void RenderView::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_AccessibilityNotifications_ACK, OnAccessibilityNotificationsAck) IPC_MESSAGE_HANDLER(ViewMsg_AsyncOpenFile_ACK, OnAsyncFileOpened) +#if defined(OS_MACOSX) + IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItem, OnSelectPopupMenuItem) +#endif IPC_MESSAGE_HANDLER(ViewMsg_PrintPreview, OnPrintPreview) // Have the super handle all other messages. @@ -1832,6 +1838,15 @@ WebWidget* RenderView::createPopupMenu(const WebPopupMenuInfo& info) { return widget->webwidget(); } +WebExternalPopupMenu* RenderView::createExternalPopupMenu( + const WebPopupMenuInfo& popup_menu_info, + WebExternalPopupMenuClient* popup_menu_client) { + DCHECK(!external_popup_menu_.get()); + external_popup_menu_.reset( + new ExternalPopupMenu(this, popup_menu_info, popup_menu_client)); + return external_popup_menu_.get(); +} + WebWidget* RenderView::createFullscreenWindow(WebKit::WebPopupType popup_type) { RenderWidget* widget = RenderWidgetFullscreen::Create(routing_id_, render_thread_, @@ -6078,3 +6093,10 @@ void RenderView::OnAsyncFileOpened(base::PlatformFileError error_code, IPC::PlatformFileForTransitToPlatformFile(file_for_transit), message_id); } + +#if defined(OS_MACOSX) +void RenderView::OnSelectPopupMenuItem(int selected_index) { + external_popup_menu_->DidSelectItem(selected_index); + external_popup_menu_.reset(); +} +#endif |