| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/cocoa/browser_window_cocoa.h" | 5 #include "chrome/browser/ui/cocoa/browser_window_cocoa.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #import "base/mac/sdk_forward_declarations.h" | 10 #import "base/mac/sdk_forward_declarations.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 51 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 52 #include "chrome/browser/web_applications/web_app.h" | 52 #include "chrome/browser/web_applications/web_app.h" |
| 53 #include "chrome/common/chrome_switches.h" | 53 #include "chrome/common/chrome_switches.h" |
| 54 #include "chrome/common/features.h" | 54 #include "chrome/common/features.h" |
| 55 #include "chrome/common/pref_names.h" | 55 #include "chrome/common/pref_names.h" |
| 56 #include "chrome/grit/generated_resources.h" | 56 #include "chrome/grit/generated_resources.h" |
| 57 #include "components/bookmarks/common/bookmark_pref_names.h" | 57 #include "components/bookmarks/common/bookmark_pref_names.h" |
| 58 #include "components/prefs/pref_service.h" | 58 #include "components/prefs/pref_service.h" |
| 59 #include "components/strings/grit/components_strings.h" | 59 #include "components/strings/grit/components_strings.h" |
| 60 #include "components/translate/core/browser/language_state.h" | 60 #include "components/translate/core/browser/language_state.h" |
| 61 #include "content/public/browser/keyboard_event_processing_result.h" |
| 61 #include "content/public/browser/native_web_keyboard_event.h" | 62 #include "content/public/browser/native_web_keyboard_event.h" |
| 62 #include "content/public/browser/notification_details.h" | 63 #include "content/public/browser/notification_details.h" |
| 63 #include "content/public/browser/notification_service.h" | 64 #include "content/public/browser/notification_service.h" |
| 64 #include "content/public/browser/notification_source.h" | 65 #include "content/public/browser/notification_source.h" |
| 65 #include "content/public/browser/web_contents.h" | 66 #include "content/public/browser/web_contents.h" |
| 66 #include "extensions/browser/extension_registry.h" | 67 #include "extensions/browser/extension_registry.h" |
| 67 #include "extensions/browser/extension_system.h" | 68 #include "extensions/browser/extension_system.h" |
| 68 #include "extensions/common/constants.h" | 69 #include "extensions/common/constants.h" |
| 69 #include "ui/base/l10n/l10n_util_mac.h" | 70 #include "ui/base/l10n/l10n_util_mac.h" |
| 70 #include "ui/base/material_design/material_design_controller.h" | 71 #include "ui/base/material_design/material_design_controller.h" |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 const GURL& virtual_url, | 688 const GURL& virtual_url, |
| 688 const security_state::SecurityInfo& security_info) { | 689 const security_state::SecurityInfo& security_info) { |
| 689 WebsiteSettingsUIBridge::Show(window(), profile, web_contents, virtual_url, | 690 WebsiteSettingsUIBridge::Show(window(), profile, web_contents, virtual_url, |
| 690 security_info); | 691 security_info); |
| 691 } | 692 } |
| 692 | 693 |
| 693 void BrowserWindowCocoa::ShowAppMenu() { | 694 void BrowserWindowCocoa::ShowAppMenu() { |
| 694 // No-op. Mac doesn't support showing the menus via alt keys. | 695 // No-op. Mac doesn't support showing the menus via alt keys. |
| 695 } | 696 } |
| 696 | 697 |
| 697 bool BrowserWindowCocoa::PreHandleKeyboardEvent( | 698 content::KeyboardEventProcessingResult |
| 698 const NativeWebKeyboardEvent& event, bool* is_keyboard_shortcut) { | 699 BrowserWindowCocoa::PreHandleKeyboardEvent( |
| 700 const NativeWebKeyboardEvent& event) { |
| 699 // Handle ESC to dismiss permission bubbles, but still forward it | 701 // Handle ESC to dismiss permission bubbles, but still forward it |
| 700 // to the window afterwards. | 702 // to the window afterwards. |
| 701 if (event.windowsKeyCode == ui::VKEY_ESCAPE) | 703 if (event.windowsKeyCode == ui::VKEY_ESCAPE) |
| 702 [controller_ dismissPermissionBubble]; | 704 [controller_ dismissPermissionBubble]; |
| 703 | 705 |
| 704 if (![BrowserWindowUtils shouldHandleKeyboardEvent:event]) | 706 if (![BrowserWindowUtils shouldHandleKeyboardEvent:event]) |
| 705 return false; | 707 return content::KeyboardEventProcessingResult::NOT_HANDLED; |
| 706 | 708 |
| 707 if (event.type() == blink::WebInputEvent::RawKeyDown && | 709 if (event.type() == blink::WebInputEvent::RawKeyDown && |
| 708 [controller_ | 710 [controller_ |
| 709 handledByExtensionCommand:event.os_event | 711 handledByExtensionCommand:event.os_event |
| 710 priority:ui::AcceleratorManager::kHighPriority]) | 712 priority:ui::AcceleratorManager::kHighPriority]) |
| 711 return true; | 713 return content::KeyboardEventProcessingResult::HANDLED; |
| 712 | 714 |
| 713 int id = [BrowserWindowUtils getCommandId:event]; | 715 int id = [BrowserWindowUtils getCommandId:event]; |
| 714 if (id == -1) | 716 if (id == -1) |
| 715 return false; | 717 return content::KeyboardEventProcessingResult::NOT_HANDLED; |
| 716 | 718 |
| 717 if (browser_->command_controller()->IsReservedCommandOrKey(id, event)) { | 719 if (browser_->command_controller()->IsReservedCommandOrKey(id, event)) { |
| 718 return [BrowserWindowUtils handleKeyboardEvent:event.os_event | 720 return [BrowserWindowUtils handleKeyboardEvent:event.os_event |
| 719 inWindow:window()]; | 721 inWindow:window()] |
| 722 ? content::KeyboardEventProcessingResult::HANDLED |
| 723 : content::KeyboardEventProcessingResult::NOT_HANDLED; |
| 720 } | 724 } |
| 721 | 725 |
| 722 DCHECK(is_keyboard_shortcut); | 726 return content::KeyboardEventProcessingResult::NOT_HANDLED_IS_SHORTCUT; |
| 723 *is_keyboard_shortcut = true; | |
| 724 return false; | |
| 725 } | 727 } |
| 726 | 728 |
| 727 void BrowserWindowCocoa::HandleKeyboardEvent( | 729 void BrowserWindowCocoa::HandleKeyboardEvent( |
| 728 const NativeWebKeyboardEvent& event) { | 730 const NativeWebKeyboardEvent& event) { |
| 729 if ([BrowserWindowUtils shouldHandleKeyboardEvent:event]) { | 731 if ([BrowserWindowUtils shouldHandleKeyboardEvent:event]) { |
| 730 if (![BrowserWindowUtils handleKeyboardEvent:event.os_event | 732 if (![BrowserWindowUtils handleKeyboardEvent:event.os_event |
| 731 inWindow:window()]) { | 733 inWindow:window()]) { |
| 732 | 734 |
| 733 // TODO(spqchan): This is a temporary fix for exit extension fullscreen. | 735 // TODO(spqchan): This is a temporary fix for exit extension fullscreen. |
| 734 // A priority system for exiting extension fullscreen when there is a | 736 // A priority system for exiting extension fullscreen when there is a |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 838 ExclusiveAccessContext* BrowserWindowCocoa::GetExclusiveAccessContext() { | 840 ExclusiveAccessContext* BrowserWindowCocoa::GetExclusiveAccessContext() { |
| 839 return [controller_ exclusiveAccessController]; | 841 return [controller_ exclusiveAccessController]; |
| 840 } | 842 } |
| 841 | 843 |
| 842 void BrowserWindowCocoa::ShowImeWarningBubble( | 844 void BrowserWindowCocoa::ShowImeWarningBubble( |
| 843 const extensions::Extension* extension, | 845 const extensions::Extension* extension, |
| 844 const base::Callback<void(ImeWarningBubblePermissionStatus status)>& | 846 const base::Callback<void(ImeWarningBubblePermissionStatus status)>& |
| 845 callback) { | 847 callback) { |
| 846 NOTREACHED() << "The IME warning bubble is unsupported on this platform."; | 848 NOTREACHED() << "The IME warning bubble is unsupported on this platform."; |
| 847 } | 849 } |
| OLD | NEW |