diff options
Diffstat (limited to 'chromium/content/shell/browser/shell_web_contents_view_delegate_mac.mm')
-rw-r--r-- | chromium/content/shell/browser/shell_web_contents_view_delegate_mac.mm | 277 |
1 files changed, 0 insertions, 277 deletions
diff --git a/chromium/content/shell/browser/shell_web_contents_view_delegate_mac.mm b/chromium/content/shell/browser/shell_web_contents_view_delegate_mac.mm deleted file mode 100644 index 1d01f907180..00000000000 --- a/chromium/content/shell/browser/shell_web_contents_view_delegate_mac.mm +++ /dev/null @@ -1,277 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/shell/browser/shell_web_contents_view_delegate.h" - -#import <Cocoa/Cocoa.h> - -#include "base/command_line.h" -#include "content/public/browser/render_process_host.h" -#include "content/public/browser/render_view_host.h" -#include "content/public/browser/render_widget_host_view.h" -#include "content/public/browser/web_contents.h" -#include "content/public/browser/web_contents_view.h" -#include "content/public/common/context_menu_params.h" -#include "content/shell/browser/shell.h" -#include "content/shell/browser/shell_browser_context.h" -#include "content/shell/browser/shell_browser_main_parts.h" -#include "content/shell/browser/shell_content_browser_client.h" -#include "content/shell/browser/shell_devtools_frontend.h" -#include "content/shell/browser/shell_web_contents_view_delegate_creator.h" -#include "content/shell/common/shell_switches.h" -#include "third_party/WebKit/public/web/WebContextMenuData.h" - -using blink::WebContextMenuData; - -enum { - ShellContextMenuItemCutTag = 0, - ShellContextMenuItemCopyTag, - ShellContextMenuItemPasteTag, - ShellContextMenuItemDeleteTag, - ShellContextMenuItemOpenLinkTag, - ShellContextMenuItemBackTag, - ShellContextMenuItemForwardTag, - ShellContextMenuItemReloadTag, - ShellContextMenuItemInspectTag -}; - -@interface ShellContextMenuDelegate : NSObject<NSMenuDelegate> { - @private - content::ShellWebContentsViewDelegate* delegate_; -} -@end - -@implementation ShellContextMenuDelegate -- (id)initWithDelegate:(content::ShellWebContentsViewDelegate*) delegate { - if ((self = [super init])) { - delegate_ = delegate; - } - return self; -} - -- (void)itemSelected:(id)sender { - NSInteger tag = [sender tag]; - delegate_->ActionPerformed(tag); -} -@end - -namespace { - -NSMenuItem* MakeContextMenuItem(NSString* title, - NSInteger tag, - NSMenu* menu, - BOOL enabled, - ShellContextMenuDelegate* delegate) { - NSMenuItem* menu_item = - [[NSMenuItem alloc] initWithTitle:title - action:@selector(itemSelected:) - keyEquivalent:@""]; - [menu_item setTarget:delegate]; - [menu_item setTag:tag]; - [menu_item setEnabled:enabled]; - [menu addItem:menu_item]; - - return menu_item; -} - -} // namespace - -namespace content { - -WebContentsViewDelegate* CreateShellWebContentsViewDelegate( - WebContents* web_contents) { - return new ShellWebContentsViewDelegate(web_contents); -} - -ShellWebContentsViewDelegate::ShellWebContentsViewDelegate( - WebContents* web_contents) - : web_contents_(web_contents) { -} - -ShellWebContentsViewDelegate::~ShellWebContentsViewDelegate() { -} - -void ShellWebContentsViewDelegate::ShowContextMenu( - const ContextMenuParams& params) { - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) - return; - - params_ = params; - bool has_link = !params_.unfiltered_link_url.is_empty(); - bool has_selection = ! params_.selection_text.empty(); - - NSMenu* menu = [[[NSMenu alloc] initWithTitle:@""] autorelease]; - ShellContextMenuDelegate* delegate = - [[ShellContextMenuDelegate alloc] initWithDelegate:this]; - [menu setDelegate:delegate]; - [menu setAutoenablesItems:NO]; - - if (params.media_type == WebContextMenuData::MediaTypeNone && - !has_link && - !has_selection && - !params_.is_editable) { - BOOL back_menu_enabled = - web_contents_->GetController().CanGoBack() ? YES : NO; - MakeContextMenuItem(@"Back", - ShellContextMenuItemBackTag, - menu, - back_menu_enabled, - delegate); - - BOOL forward_menu_enabled = - web_contents_->GetController().CanGoForward() ? YES : NO; - MakeContextMenuItem(@"Forward", - ShellContextMenuItemForwardTag, - menu, - forward_menu_enabled, - delegate); - - MakeContextMenuItem(@"Reload", - ShellContextMenuItemReloadTag, - menu, - YES, - delegate); - - NSMenuItem* separator = [NSMenuItem separatorItem]; - [menu addItem:separator]; - } - - if (has_link) { - MakeContextMenuItem(@"Open In New Window", - ShellContextMenuItemOpenLinkTag, - menu, - YES, - delegate); - - NSMenuItem* separator = [NSMenuItem separatorItem]; - [menu addItem:separator]; - } - - if (params_.is_editable) { - BOOL cut_menu_enabled = - (params_.edit_flags & WebContextMenuData::CanCut) ? YES : NO; - MakeContextMenuItem(@"Cut", - ShellContextMenuItemCutTag, - menu, - cut_menu_enabled, - delegate); - - BOOL copy_menu_enabled = - (params_.edit_flags & WebContextMenuData::CanCopy) ? YES : NO; - MakeContextMenuItem(@"Copy", - ShellContextMenuItemCopyTag, - menu, - copy_menu_enabled, - delegate); - - BOOL paste_menu_enabled = - (params_.edit_flags & WebContextMenuData::CanPaste) ? YES : NO; - MakeContextMenuItem(@"Paste", - ShellContextMenuItemPasteTag, - menu, - paste_menu_enabled, - delegate); - - BOOL delete_menu_enabled = - (params_.edit_flags & WebContextMenuData::CanDelete) ? YES : NO; - MakeContextMenuItem(@"Delete", - ShellContextMenuItemDeleteTag, - menu, - delete_menu_enabled, - delegate); - - NSMenuItem* separator = [NSMenuItem separatorItem]; - [menu addItem:separator]; - } else if (has_selection) { - MakeContextMenuItem(@"Copy", - ShellContextMenuItemCopyTag, - menu, - YES, - delegate); - - NSMenuItem* separator = [NSMenuItem separatorItem]; - [menu addItem:separator]; - } - - MakeContextMenuItem(@"Inspect", - ShellContextMenuItemInspectTag, - menu, - YES, - delegate); - - NSView* parent_view = web_contents_->GetView()->GetContentNativeView(); - NSEvent* currentEvent = [NSApp currentEvent]; - NSWindow* window = [parent_view window]; - NSPoint position = [window mouseLocationOutsideOfEventStream]; - NSTimeInterval eventTime = [currentEvent timestamp]; - NSEvent* clickEvent = [NSEvent mouseEventWithType:NSRightMouseDown - location:position - modifierFlags:NSRightMouseDownMask - timestamp:eventTime - windowNumber:[window windowNumber] - context:nil - eventNumber:0 - clickCount:1 - pressure:1.0]; - - [NSMenu popUpContextMenu:menu - withEvent:clickEvent - forView:parent_view]; -} - -void ShellWebContentsViewDelegate::ActionPerformed(int tag) { - switch (tag) { - case ShellContextMenuItemCutTag: - web_contents_->GetRenderViewHost()->Cut(); - break; - case ShellContextMenuItemCopyTag: - web_contents_->GetRenderViewHost()->Copy(); - break; - case ShellContextMenuItemPasteTag: - web_contents_->GetRenderViewHost()->Paste(); - break; - case ShellContextMenuItemDeleteTag: - web_contents_->GetRenderViewHost()->Delete(); - break; - case ShellContextMenuItemOpenLinkTag: { - ShellBrowserContext* browser_context = - ShellContentBrowserClient::Get()->browser_context(); - Shell::CreateNewWindow(browser_context, - params_.link_url, - NULL, - MSG_ROUTING_NONE, - gfx::Size()); - break; - } - case ShellContextMenuItemBackTag: - web_contents_->GetController().GoToOffset(-1); - web_contents_->GetView()->Focus(); - break; - case ShellContextMenuItemForwardTag: - web_contents_->GetController().GoToOffset(1); - web_contents_->GetView()->Focus(); - break; - case ShellContextMenuItemReloadTag: { - web_contents_->GetController().Reload(false); - web_contents_->GetView()->Focus(); - break; - } - case ShellContextMenuItemInspectTag: { - ShellDevToolsFrontend::Show(web_contents_); - break; - } - } -} - -WebDragDestDelegate* ShellWebContentsViewDelegate::GetDragDestDelegate() { - return NULL; -} - -NSObject<RenderWidgetHostViewMacDelegate>* -ShellWebContentsViewDelegate::CreateRenderWidgetHostViewDelegate( - content::RenderWidgetHost* render_widget_host) { - return NULL; -} - -} // namespace content |