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 |