1// Copyright 2017 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#import "chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h" 6 7#include "chrome/browser/ui/sad_tab_helper.h" 8#include "chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop.h" 9#include "chrome/browser/ui/views/sad_tab_view.h" 10#include "chrome/browser/ui/views/tab_contents/chrome_web_contents_view_focus_helper.h" 11#include "content/public/browser/web_contents.h" 12#include "ui/views/widget/widget.h" 13 14ChromeWebContentsViewDelegateViewsMac::ChromeWebContentsViewDelegateViewsMac( 15 content::WebContents* web_contents) 16 : ChromeWebContentsViewDelegateMac(web_contents), 17 web_contents_(web_contents) { 18 ChromeWebContentsViewFocusHelper::CreateForWebContents(web_contents); 19} 20 21ChromeWebContentsViewDelegateViewsMac:: 22 ~ChromeWebContentsViewDelegateViewsMac() { 23} 24 25ChromeWebContentsViewFocusHelper* 26ChromeWebContentsViewDelegateViewsMac::GetFocusHelper() const { 27 ChromeWebContentsViewFocusHelper* helper = 28 ChromeWebContentsViewFocusHelper::FromWebContents(web_contents_); 29 DCHECK(helper); 30 return helper; 31} 32 33void ChromeWebContentsViewDelegateViewsMac::StoreFocus() { 34 GetFocusHelper()->StoreFocus(); 35} 36 37bool ChromeWebContentsViewDelegateViewsMac::RestoreFocus() { 38 return GetFocusHelper()->RestoreFocus(); 39} 40 41void ChromeWebContentsViewDelegateViewsMac::ResetStoredFocus() { 42 GetFocusHelper()->ResetStoredFocus(); 43} 44 45bool ChromeWebContentsViewDelegateViewsMac::Focus() { 46 return GetFocusHelper()->Focus(); 47} 48 49bool ChromeWebContentsViewDelegateViewsMac::TakeFocus(bool reverse) { 50 return GetFocusHelper()->TakeFocus(reverse); 51} 52 53void ChromeWebContentsViewDelegateViewsMac::OnPerformDrop( 54 const content::DropData& drop_data, 55 DropCompletionCallback callback) { 56 HandleOnPerformDrop(web_contents_, drop_data, std::move(callback)); 57} 58 59content::WebContentsViewDelegate* CreateWebContentsViewDelegate( 60 content::WebContents* web_contents) { 61 return new ChromeWebContentsViewDelegateViewsMac(web_contents); 62} 63