| 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/exclusive_access/exclusive_access_bubble_type.h" | 5 #include "chrome/browser/ui/exclusive_access/exclusive_access_bubble_type.h" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "chrome/common/url_constants.h" | 8 #include "chrome/common/url_constants.h" |
| 9 #include "chrome/grit/generated_resources.h" | 9 #include "chrome/grit/generated_resources.h" |
| 10 #include "extensions/browser/extension_registry.h" | 10 #include "extensions/browser/extension_registry.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 if (extension) { | 26 if (extension) { |
| 27 host = base::UTF8ToUTF16(extension->name()); | 27 host = base::UTF8ToUTF16(extension->name()); |
| 28 } else if (url.SchemeIs(extensions::kExtensionScheme)) { | 28 } else if (url.SchemeIs(extensions::kExtensionScheme)) { |
| 29 // In this case, |host| is set to an extension ID. | 29 // In this case, |host| is set to an extension ID. |
| 30 // We are not going to show it because it's human-unreadable. | 30 // We are not going to show it because it's human-unreadable. |
| 31 host.clear(); | 31 host.clear(); |
| 32 } | 32 } |
| 33 } | 33 } |
| 34 if (host.empty()) { | 34 if (host.empty()) { |
| 35 switch (type) { | 35 switch (type) { |
| 36 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS: | |
| 37 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: | 36 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: |
| 38 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: | 37 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: |
| 39 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_ENTERED_FULLSCREEN); | 38 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_ENTERED_FULLSCREEN); |
| 40 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS: | |
| 41 return l10n_util::GetStringUTF16( | |
| 42 IDS_FULLSCREEN_REQUEST_FULLSCREEN_MOUSELOCK); | |
| 43 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS: | |
| 44 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_REQUEST_MOUSELOCK); | |
| 45 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: | 39 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: |
| 46 return l10n_util::GetStringUTF16( | 40 return l10n_util::GetStringUTF16( |
| 47 IDS_FULLSCREEN_ENTERED_FULLSCREEN_MOUSELOCK); | 41 IDS_FULLSCREEN_ENTERED_FULLSCREEN_MOUSELOCK); |
| 48 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: | 42 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: |
| 49 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_ENTERED_MOUSELOCK); | 43 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_ENTERED_MOUSELOCK); |
| 50 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: | 44 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: |
| 51 return l10n_util::GetStringUTF16( | 45 return l10n_util::GetStringUTF16( |
| 52 IDS_FULLSCREEN_USER_ENTERED_FULLSCREEN); | 46 IDS_FULLSCREEN_USER_ENTERED_FULLSCREEN); |
| 53 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: | 47 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: |
| 54 return l10n_util::GetStringUTF16( | 48 return l10n_util::GetStringUTF16( |
| 55 IDS_FULLSCREEN_UNKNOWN_EXTENSION_TRIGGERED_FULLSCREEN); | 49 IDS_FULLSCREEN_UNKNOWN_EXTENSION_TRIGGERED_FULLSCREEN); |
| 56 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: | 50 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: |
| 57 NOTREACHED(); | 51 NOTREACHED(); |
| 58 return base::string16(); | 52 return base::string16(); |
| 59 } | 53 } |
| 60 NOTREACHED(); | 54 NOTREACHED(); |
| 61 return base::string16(); | 55 return base::string16(); |
| 62 } | 56 } |
| 63 switch (type) { | 57 switch (type) { |
| 64 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS: | |
| 65 return l10n_util::GetStringFUTF16(IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN, | |
| 66 host); | |
| 67 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS: | |
| 68 return l10n_util::GetStringFUTF16( | |
| 69 IDS_FULLSCREEN_SITE_REQUEST_FULLSCREEN_MOUSELOCK, host); | |
| 70 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS: | |
| 71 return l10n_util::GetStringFUTF16(IDS_FULLSCREEN_SITE_REQUEST_MOUSELOCK, | |
| 72 host); | |
| 73 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: | 58 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: |
| 74 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: | 59 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: |
| 75 return l10n_util::GetStringFUTF16(IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN, | 60 return l10n_util::GetStringFUTF16(IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN, |
| 76 host); | 61 host); |
| 77 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: | 62 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: |
| 78 return l10n_util::GetStringFUTF16( | 63 return l10n_util::GetStringFUTF16( |
| 79 IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN_MOUSELOCK, host); | 64 IDS_FULLSCREEN_SITE_ENTERED_FULLSCREEN_MOUSELOCK, host); |
| 80 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: | 65 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: |
| 81 return l10n_util::GetStringFUTF16(IDS_FULLSCREEN_SITE_ENTERED_MOUSELOCK, | 66 return l10n_util::GetStringFUTF16(IDS_FULLSCREEN_SITE_ENTERED_MOUSELOCK, |
| 82 host); | 67 host); |
| 83 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: | 68 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: |
| 84 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_USER_ENTERED_FULLSCREEN); | 69 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_USER_ENTERED_FULLSCREEN); |
| 85 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: | 70 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: |
| 86 return l10n_util::GetStringFUTF16( | 71 return l10n_util::GetStringFUTF16( |
| 87 IDS_FULLSCREEN_EXTENSION_TRIGGERED_FULLSCREEN, host); | 72 IDS_FULLSCREEN_EXTENSION_TRIGGERED_FULLSCREEN, host); |
| 88 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: | 73 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: |
| 89 NOTREACHED(); | 74 NOTREACHED(); |
| 90 return base::string16(); | 75 return base::string16(); |
| 91 } | 76 } |
| 92 NOTREACHED(); | 77 NOTREACHED(); |
| 93 return base::string16(); | 78 return base::string16(); |
| 94 } | 79 } |
| 95 | 80 |
| 96 base::string16 GetDenyButtonTextForType(ExclusiveAccessBubbleType type) { | 81 base::string16 GetDenyButtonTextForType(ExclusiveAccessBubbleType type) { |
| 97 switch (type) { | 82 switch (type) { |
| 98 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS: | |
| 99 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_EXIT_FULLSCREEN); | |
| 100 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS: | |
| 101 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_EXIT); | |
| 102 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS: | |
| 103 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_DENY); | |
| 104 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: | 83 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: |
| 105 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: | 84 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: |
| 106 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: | 85 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: |
| 107 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: | 86 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: |
| 108 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: | 87 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: |
| 109 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: | 88 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: |
| 110 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: | 89 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: |
| 111 NOTREACHED(); // No button in this case. | 90 NOTREACHED(); // No button in this case. |
| 112 return base::string16(); | 91 return base::string16(); |
| 113 } | 92 } |
| 114 NOTREACHED(); | 93 NOTREACHED(); |
| 115 return base::string16(); | 94 return base::string16(); |
| 116 } | 95 } |
| 117 | 96 |
| 118 base::string16 GetAllowButtonTextForType(ExclusiveAccessBubbleType type, | 97 base::string16 GetAllowButtonTextForType(ExclusiveAccessBubbleType type, |
| 119 const GURL& url) { | 98 const GURL& url) { |
| 120 switch (type) { | 99 switch (type) { |
| 121 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS: | |
| 122 // Show a Dismiss button instead of Allow for file:// URLs; on | |
| 123 // file:// URLs, the preference is not saved for the origin, so | |
| 124 // the user is opting to just Dismiss the dialog rather than Allow | |
| 125 // future fullscreen attempts. | |
| 126 if (url.SchemeIsFile()) | |
| 127 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_DISMISS); | |
| 128 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_ALLOW); | |
| 129 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS: | |
| 130 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS: | |
| 131 return l10n_util::GetStringUTF16(IDS_FULLSCREEN_ALLOW); | |
| 132 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: | 100 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: |
| 133 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: | 101 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: |
| 134 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: | 102 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: |
| 135 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: | 103 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: |
| 136 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: | 104 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: |
| 137 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: | 105 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: |
| 138 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: | 106 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: |
| 139 NOTREACHED(); // No button in this case. | 107 NOTREACHED(); // No button in this case. |
| 140 return base::string16(); | 108 return base::string16(); |
| 141 } | 109 } |
| 142 NOTREACHED(); | 110 NOTREACHED(); |
| 143 return base::string16(); | 111 return base::string16(); |
| 144 } | 112 } |
| 145 | 113 |
| 146 base::string16 GetInstructionTextForType(ExclusiveAccessBubbleType type, | 114 base::string16 GetInstructionTextForType(ExclusiveAccessBubbleType type, |
| 147 const base::string16& accelerator) { | 115 const base::string16& accelerator) { |
| 148 switch (type) { | 116 switch (type) { |
| 149 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS: | |
| 150 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS: | |
| 151 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS: | |
| 152 NOTREACHED(); // No exit instruction if there are buttons. | |
| 153 return base::string16(); | |
| 154 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: | 117 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_EXIT_INSTRUCTION: |
| 155 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: | 118 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION: |
| 156 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: | 119 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION: |
| 157 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: | 120 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_EXTENSION_FULLSCREEN_EXIT_INSTRUCTION: |
| 158 // Both fullscreen and fullscreen + mouselock have the same message (the | 121 // Both fullscreen and fullscreen + mouselock have the same message (the |
| 159 // user does not care about mouse lock when in fullscreen mode). All ways | 122 // user does not care about mouse lock when in fullscreen mode). All ways |
| 160 // to trigger fullscreen result in the same message. | 123 // to trigger fullscreen result in the same message. |
| 161 return l10n_util::GetStringFUTF16( | 124 return l10n_util::GetStringFUTF16( |
| 162 IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_FULLSCREEN, accelerator); | 125 IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_FULLSCREEN, accelerator); |
| 163 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: | 126 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_KEYBOARD_LOCK_EXIT_INSTRUCTION: |
| 164 return l10n_util::GetStringFUTF16( | 127 return l10n_util::GetStringFUTF16( |
| 165 IDS_FULLSCREEN_HOLD_ESC_TO_EXIT_FULLSCREEN, accelerator); | 128 IDS_FULLSCREEN_HOLD_ESC_TO_EXIT_FULLSCREEN, accelerator); |
| 166 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: | 129 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION: |
| 167 return l10n_util::GetStringFUTF16( | 130 return l10n_util::GetStringFUTF16( |
| 168 IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_MOUSELOCK, accelerator); | 131 IDS_FULLSCREEN_PRESS_ESC_TO_EXIT_MOUSELOCK, accelerator); |
| 169 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: | 132 case EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE: |
| 170 NOTREACHED(); | 133 NOTREACHED(); |
| 171 return base::string16(); | 134 return base::string16(); |
| 172 } | 135 } |
| 173 NOTREACHED(); | 136 NOTREACHED(); |
| 174 return base::string16(); | 137 return base::string16(); |
| 175 } | 138 } |
| 176 | 139 |
| 177 bool ShowButtonsForType(ExclusiveAccessBubbleType type) { | |
| 178 return type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS || | |
| 179 type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS || | |
| 180 type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS; | |
| 181 } | |
| 182 | |
| 183 void PermissionRequestedByType(ExclusiveAccessBubbleType type, | |
| 184 bool* tab_fullscreen, | |
| 185 bool* mouse_lock) { | |
| 186 if (tab_fullscreen) { | |
| 187 *tab_fullscreen = | |
| 188 type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_BUTTONS || | |
| 189 type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS; | |
| 190 } | |
| 191 if (mouse_lock) { | |
| 192 *mouse_lock = | |
| 193 type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS || | |
| 194 type == EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS; | |
| 195 } | |
| 196 } | |
| 197 | |
| 198 } // namespace exclusive_access_bubble | 140 } // namespace exclusive_access_bubble |
| OLD | NEW |