Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Side by Side Diff: chrome/browser/extensions/extension_keybinding_apitest.cc

Issue 388313002: mac: Allow WebContents key handling to supplant extension overrides of the bookmark shortcut. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment from wittman. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "chrome/browser/extensions/active_tab_permission_granter.h" 6 #include "chrome/browser/extensions/active_tab_permission_granter.h"
7 #include "chrome/browser/extensions/api/commands/command_service.h" 7 #include "chrome/browser/extensions/api/commands/command_service.h"
8 #include "chrome/browser/extensions/browser_action_test_util.h" 8 #include "chrome/browser/extensions/browser_action_test_util.h"
9 #include "chrome/browser/extensions/extension_action.h" 9 #include "chrome/browser/extensions/extension_action.h"
10 #include "chrome/browser/extensions/extension_action_manager.h" 10 #include "chrome/browser/extensions/extension_action_manager.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 bool result = false; 275 bool result = false;
276 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 276 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
277 tab, 277 tab,
278 "setInterval(function() {" 278 "setInterval(function() {"
279 " if (document.body.bgColor == 'green') {" 279 " if (document.body.bgColor == 'green') {"
280 " window.domAutomationController.send(true)}}, 100)", 280 " window.domAutomationController.send(true)}}, 100)",
281 &result)); 281 &result));
282 ASSERT_TRUE(result); 282 ASSERT_TRUE(result);
283 } 283 }
284 284
285 // Behavior to be implemented on Mac. See http://crbug.com/389340.
286 #if defined(OS_MACOSX)
287 #define MAYBE_OverwriteBookmarkShortcutDoesNotOverrideWebKeybinding DISABLED_Ove rwriteBookmarkShortcutDoesNotOverrideWebKeybinding
288 #else
289 #define MAYBE_OverwriteBookmarkShortcutDoesNotOverrideWebKeybinding OverwriteBoo kmarkShortcutDoesNotOverrideWebKeybinding
290 #endif
291 // This test validates that an extension override of the Chrome bookmark 285 // This test validates that an extension override of the Chrome bookmark
292 // shortcut does not supersede the same keybinding by web pages. 286 // shortcut does not supersede the same keybinding by web pages.
293 IN_PROC_BROWSER_TEST_F( 287 IN_PROC_BROWSER_TEST_F(CommandsApiTest,
294 CommandsApiTest, 288 OverwriteBookmarkShortcutDoesNotOverrideWebKeybinding) {
295 MAYBE_OverwriteBookmarkShortcutDoesNotOverrideWebKeybinding) {
296 ASSERT_TRUE(test_server()->Start()); 289 ASSERT_TRUE(test_server()->Start());
297 290
298 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 291 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
299 292
300 // This functionality requires a feature flag. 293 // This functionality requires a feature flag.
301 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 294 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
302 "--enable-override-bookmarks-ui", 295 "--enable-override-bookmarks-ui",
303 "1"); 296 "1");
304 297
305 ASSERT_TRUE(RunExtensionTest("keybinding/overwrite_bookmark_shortcut")) 298 ASSERT_TRUE(RunExtensionTest("keybinding/overwrite_bookmark_shortcut"))
(...skipping 19 matching lines...) Expand all
325 bool result = false; 318 bool result = false;
326 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 319 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
327 tab, 320 tab,
328 "setInterval(function() {" 321 "setInterval(function() {"
329 " if (document.body.bgColor == 'magenta') {" 322 " if (document.body.bgColor == 'magenta') {"
330 " window.domAutomationController.send(true)}}, 100)", 323 " window.domAutomationController.send(true)}}, 100)",
331 &result)); 324 &result));
332 ASSERT_TRUE(result); 325 ASSERT_TRUE(result);
333 } 326 }
334 327
335 // Behavior to be implemented on Mac. See http://crbug.com/389340.
336 #if defined(OS_MACOSX)
337 #define MAYBE_OverwriteBookmarkShortcutByUserOverridesWebKeybinding DISABLED_Ove rwriteBookmarkShortcutByUserOverridesWebKeybinding
338 #else
339 #define MAYBE_OverwriteBookmarkShortcutByUserOverridesWebKeybinding OverwriteBoo kmarkShortcutByUserOverridesWebKeybinding
340 #endif
341 // This test validates that user-set override of the Chrome bookmark shortcut in 328 // This test validates that user-set override of the Chrome bookmark shortcut in
342 // an extension that does not request it does supersede the same keybinding by 329 // an extension that does not request it does supersede the same keybinding by
343 // web pages. 330 // web pages.
344 IN_PROC_BROWSER_TEST_F( 331 IN_PROC_BROWSER_TEST_F(CommandsApiTest,
345 CommandsApiTest, 332 OverwriteBookmarkShortcutByUserOverridesWebKeybinding) {
346 MAYBE_OverwriteBookmarkShortcutByUserOverridesWebKeybinding) {
347 ASSERT_TRUE(test_server()->Start()); 333 ASSERT_TRUE(test_server()->Start());
348 334
349 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 335 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
350 336
351 // This functionality requires a feature flag. 337 // This functionality requires a feature flag.
352 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 338 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
353 "--enable-override-bookmarks-ui", 339 "--enable-override-bookmarks-ui",
354 "1"); 340 "1");
355 341
356 ASSERT_TRUE(RunExtensionTest("keybinding/basics")) 342 ASSERT_TRUE(RunExtensionTest("keybinding/basics"))
357 << message_; 343 << message_;
358 344
359 CommandService* command_service = CommandService::Get(browser()->profile()); 345 CommandService* command_service = CommandService::Get(browser()->profile());
360 346
361 const Extension* extension = GetSingleLoadedExtension(); 347 const Extension* extension = GetSingleLoadedExtension();
362 // Simulate the user setting the keybinding to Ctrl+D. 348 // Simulate the user setting the keybinding to Ctrl+D.
349 #if defined(OS_MACOSX)
350 command_service->UpdateKeybindingPrefs(
351 extension->id(),
352 manifest_values::kBrowserActionCommandEvent,
353 "Command+D");
354 #else
363 command_service->UpdateKeybindingPrefs( 355 command_service->UpdateKeybindingPrefs(
364 extension->id(), manifest_values::kBrowserActionCommandEvent, "Ctrl+D"); 356 extension->id(), manifest_values::kBrowserActionCommandEvent, "Ctrl+D");
357 #endif // defined(OS_MACOSX)
Scott Hess - ex-Googler 2014/07/15 19:20:59 AFAICT, these only differ on "Command+D" vs "Ctrl+
Yoyo Zhou 2014/07/15 19:46:37 Agreed.
erikchen 2014/07/15 20:48:40 Done.
365 358
366 ui_test_utils::NavigateToURL(browser(), 359 ui_test_utils::NavigateToURL(browser(),
367 test_server()->GetURL( 360 test_server()->GetURL(
368 "files/extensions/test_file_with_ctrl-d_keybinding.html")); 361 "files/extensions/test_file_with_ctrl-d_keybinding.html"));
369 362
370 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); 363 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
371 ASSERT_TRUE(tab); 364 ASSERT_TRUE(tab);
372 365
373 // Activate the shortcut (Ctrl+D) which should be handled by the extension and 366 // Activate the shortcut (Ctrl+D) which should be handled by the extension and
374 // make the background color red. 367 // make the background color red.
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 // Verify the keybinding is still set. 697 // Verify the keybinding is still set.
705 accelerator = command_service->FindCommandByName( 698 accelerator = command_service->FindCommandByName(
706 kId, manifest_values::kBrowserActionCommandEvent).accelerator(); 699 kId, manifest_values::kBrowserActionCommandEvent).accelerator();
707 EXPECT_EQ(ui::VKEY_G, accelerator.key_code()); 700 EXPECT_EQ(ui::VKEY_G, accelerator.key_code());
708 EXPECT_FALSE(accelerator.IsCtrlDown()); 701 EXPECT_FALSE(accelerator.IsCtrlDown());
709 EXPECT_TRUE(accelerator.IsShiftDown()); 702 EXPECT_TRUE(accelerator.IsShiftDown());
710 EXPECT_TRUE(accelerator.IsAltDown()); 703 EXPECT_TRUE(accelerator.IsAltDown());
711 } 704 }
712 705
713 } // namespace extensions 706 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698