OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/browser_commands.h" | 5 #include "chrome/browser/ui/browser_commands.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 #include "content/public/browser/notification_service.h" | 73 #include "content/public/browser/notification_service.h" |
74 #include "content/public/browser/page_navigator.h" | 74 #include "content/public/browser/page_navigator.h" |
75 #include "content/public/browser/render_view_host.h" | 75 #include "content/public/browser/render_view_host.h" |
76 #include "content/public/browser/render_widget_host_view.h" | 76 #include "content/public/browser/render_widget_host_view.h" |
77 #include "content/public/browser/user_metrics.h" | 77 #include "content/public/browser/user_metrics.h" |
78 #include "content/public/browser/web_contents.h" | 78 #include "content/public/browser/web_contents.h" |
79 #include "content/public/common/renderer_preferences.h" | 79 #include "content/public/common/renderer_preferences.h" |
80 #include "content/public/common/url_constants.h" | 80 #include "content/public/common/url_constants.h" |
81 #include "content/public/common/url_utils.h" | 81 #include "content/public/common/url_utils.h" |
82 #include "content/public/common/user_agent.h" | 82 #include "content/public/common/user_agent.h" |
83 #include "extensions/browser/extension_registry.h" | |
84 #include "extensions/browser/extension_system.h" | |
85 #include "extensions/common/extension.h" | |
86 #include "extensions/common/extension_set.h" | |
87 #include "net/base/escape.h" | 83 #include "net/base/escape.h" |
88 #include "ui/events/keycodes/keyboard_codes.h" | 84 #include "ui/events/keycodes/keyboard_codes.h" |
89 | 85 |
90 #if defined(OS_WIN) | 86 #if defined(OS_WIN) |
91 #include "chrome/browser/ui/metro_pin_tab_helper_win.h" | 87 #include "chrome/browser/ui/metro_pin_tab_helper_win.h" |
92 #endif | 88 #endif |
93 | 89 |
| 90 #if defined(ENABLE_EXTENSIONS) |
| 91 #include "extensions/browser/extension_registry.h" |
| 92 #include "extensions/browser/extension_system.h" |
| 93 #include "extensions/common/extension.h" |
| 94 #include "extensions/common/extension_set.h" |
| 95 #endif |
| 96 |
94 #if defined(ENABLE_PRINTING) | 97 #if defined(ENABLE_PRINTING) |
95 #if defined(ENABLE_FULL_PRINTING) | 98 #if defined(ENABLE_FULL_PRINTING) |
96 #include "chrome/browser/printing/print_preview_dialog_controller.h" | 99 #include "chrome/browser/printing/print_preview_dialog_controller.h" |
97 #include "chrome/browser/printing/print_view_manager.h" | 100 #include "chrome/browser/printing/print_view_manager.h" |
98 #else | 101 #else |
99 #include "chrome/browser/printing/print_view_manager_basic.h" | 102 #include "chrome/browser/printing/print_view_manager_basic.h" |
100 #endif // defined(ENABLE_FULL_PRINTING) | 103 #endif // defined(ENABLE_FULL_PRINTING) |
101 #endif // defined(ENABLE_PRINTING) | 104 #endif // defined(ENABLE_PRINTING) |
102 | 105 |
103 namespace { | 106 namespace { |
(...skipping 21 matching lines...) Expand all Loading... |
125 model && model->loaded() && browser->is_type_tabbed() && | 128 model && model->loaded() && browser->is_type_tabbed() && |
126 (!check_remove_bookmark_ui || | 129 (!check_remove_bookmark_ui || |
127 !chrome::ShouldRemoveBookmarkThisPageUI(browser->profile())); | 130 !chrome::ShouldRemoveBookmarkThisPageUI(browser->profile())); |
128 } | 131 } |
129 | 132 |
130 bool GetBookmarkOverrideCommand( | 133 bool GetBookmarkOverrideCommand( |
131 Profile* profile, | 134 Profile* profile, |
132 const extensions::Extension** extension, | 135 const extensions::Extension** extension, |
133 extensions::Command* command, | 136 extensions::Command* command, |
134 extensions::CommandService::ExtensionCommandType* command_type) { | 137 extensions::CommandService::ExtensionCommandType* command_type) { |
| 138 #if defined(ENABLE_EXTENSIONS) |
135 DCHECK(extension); | 139 DCHECK(extension); |
136 DCHECK(command); | 140 DCHECK(command); |
137 DCHECK(command_type); | 141 DCHECK(command_type); |
138 | 142 |
139 ui::Accelerator bookmark_page_accelerator = | 143 ui::Accelerator bookmark_page_accelerator = |
140 chrome::GetPrimaryChromeAcceleratorForCommandId(IDC_BOOKMARK_PAGE); | 144 chrome::GetPrimaryChromeAcceleratorForCommandId(IDC_BOOKMARK_PAGE); |
141 if (bookmark_page_accelerator.key_code() == ui::VKEY_UNKNOWN) | 145 if (bookmark_page_accelerator.key_code() == ui::VKEY_UNKNOWN) |
142 return false; | 146 return false; |
143 | 147 |
144 extensions::CommandService* command_service = | 148 extensions::CommandService* command_service = |
145 extensions::CommandService::Get(profile); | 149 extensions::CommandService::Get(profile); |
146 const extensions::ExtensionSet& extension_set = | 150 const extensions::ExtensionSet& extension_set = |
147 extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); | 151 extensions::ExtensionRegistry::Get(profile)->enabled_extensions(); |
148 for (extensions::ExtensionSet::const_iterator i = extension_set.begin(); | 152 for (extensions::ExtensionSet::const_iterator i = extension_set.begin(); |
149 i != extension_set.end(); | 153 i != extension_set.end(); |
150 ++i) { | 154 ++i) { |
151 extensions::Command prospective_command; | 155 extensions::Command prospective_command; |
152 extensions::CommandService::ExtensionCommandType prospective_command_type; | 156 extensions::CommandService::ExtensionCommandType prospective_command_type; |
153 if (command_service->GetBoundExtensionCommand((*i)->id(), | 157 if (command_service->GetBoundExtensionCommand((*i)->id(), |
154 bookmark_page_accelerator, | 158 bookmark_page_accelerator, |
155 &prospective_command, | 159 &prospective_command, |
156 &prospective_command_type)) { | 160 &prospective_command_type)) { |
157 *extension = i->get(); | 161 *extension = i->get(); |
158 *command = prospective_command; | 162 *command = prospective_command; |
159 *command_type = prospective_command_type; | 163 *command_type = prospective_command_type; |
160 return true; | 164 return true; |
161 } | 165 } |
162 } | 166 } |
| 167 #endif |
163 | 168 |
164 return false; | 169 return false; |
165 } | 170 } |
166 | 171 |
167 void BookmarkCurrentPageInternal(Browser* browser) { | 172 void BookmarkCurrentPageInternal(Browser* browser) { |
168 content::RecordAction(UserMetricsAction("Star")); | 173 content::RecordAction(UserMetricsAction("Star")); |
169 | 174 |
170 BookmarkModel* model = | 175 BookmarkModel* model = |
171 BookmarkModelFactory::GetForProfile(browser->profile()); | 176 BookmarkModelFactory::GetForProfile(browser->profile()); |
172 if (!model || !model->loaded()) | 177 if (!model || !model->loaded()) |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 if (google_util::IsGoogleHomePageUrl( | 464 if (google_util::IsGoogleHomePageUrl( |
460 GURL(pref_service->GetString(prefs::kHomePage)))) { | 465 GURL(pref_service->GetString(prefs::kHomePage)))) { |
461 extra_headers = RLZTracker::GetAccessPointHttpHeader( | 466 extra_headers = RLZTracker::GetAccessPointHttpHeader( |
462 RLZTracker::ChromeHomePage()); | 467 RLZTracker::ChromeHomePage()); |
463 } | 468 } |
464 } | 469 } |
465 #endif // defined(ENABLE_RLZ) && !defined(OS_IOS) | 470 #endif // defined(ENABLE_RLZ) && !defined(OS_IOS) |
466 | 471 |
467 GURL url = browser->profile()->GetHomePage(); | 472 GURL url = browser->profile()->GetHomePage(); |
468 | 473 |
| 474 #if defined(ENABLE_EXTENSIONS) |
469 // Streamlined hosted apps should return to their launch page when the home | 475 // Streamlined hosted apps should return to their launch page when the home |
470 // button is pressed. | 476 // button is pressed. |
471 if (browser->is_app()) { | 477 if (browser->is_app()) { |
472 const extensions::Extension* extension = | 478 const extensions::Extension* extension = |
473 extensions::ExtensionRegistry::Get(browser->profile()) | 479 extensions::ExtensionRegistry::Get(browser->profile()) |
474 ->GetExtensionById( | 480 ->GetExtensionById( |
475 web_app::GetExtensionIdFromApplicationName(browser->app_name()), | 481 web_app::GetExtensionIdFromApplicationName(browser->app_name()), |
476 extensions::ExtensionRegistry::EVERYTHING); | 482 extensions::ExtensionRegistry::EVERYTHING); |
477 if (!extension) | 483 if (!extension) |
478 return; | 484 return; |
479 | 485 |
480 url = extensions::AppLaunchInfo::GetLaunchWebURL(extension); | 486 url = extensions::AppLaunchInfo::GetLaunchWebURL(extension); |
481 } | 487 } |
| 488 #endif |
482 | 489 |
483 OpenURLParams params( | 490 OpenURLParams params( |
484 url, Referrer(), disposition, | 491 url, Referrer(), disposition, |
485 content::PageTransitionFromInt( | 492 content::PageTransitionFromInt( |
486 content::PAGE_TRANSITION_AUTO_BOOKMARK | | 493 content::PAGE_TRANSITION_AUTO_BOOKMARK | |
487 content::PAGE_TRANSITION_HOME_PAGE), | 494 content::PAGE_TRANSITION_HOME_PAGE), |
488 false); | 495 false); |
489 params.extra_headers = extra_headers; | 496 params.extra_headers = extra_headers; |
490 browser->OpenURL(params); | 497 browser->OpenURL(params); |
491 } | 498 } |
(...skipping 27 matching lines...) Expand all Loading... |
519 NavigateParams params(browser, url, page_transition); | 526 NavigateParams params(browser, url, page_transition); |
520 params.disposition = open_disposition; | 527 params.disposition = open_disposition; |
521 // Use ADD_INHERIT_OPENER so that all pages opened by the omnibox at least | 528 // Use ADD_INHERIT_OPENER so that all pages opened by the omnibox at least |
522 // inherit the opener. In some cases the tabstrip will determine the group | 529 // inherit the opener. In some cases the tabstrip will determine the group |
523 // should be inherited, in which case the group is inherited instead of the | 530 // should be inherited, in which case the group is inherited instead of the |
524 // opener. | 531 // opener. |
525 params.tabstrip_add_types = | 532 params.tabstrip_add_types = |
526 TabStripModel::ADD_FORCE_INDEX | TabStripModel::ADD_INHERIT_OPENER; | 533 TabStripModel::ADD_FORCE_INDEX | TabStripModel::ADD_INHERIT_OPENER; |
527 Navigate(¶ms); | 534 Navigate(¶ms); |
528 | 535 |
| 536 #if defined(ENABLE_EXTENSIONS) |
529 DCHECK(extensions::ExtensionSystem::Get( | 537 DCHECK(extensions::ExtensionSystem::Get( |
530 browser->profile())->extension_service()); | 538 browser->profile())->extension_service()); |
531 const extensions::Extension* extension = | 539 const extensions::Extension* extension = |
532 extensions::ExtensionRegistry::Get(browser->profile()) | 540 extensions::ExtensionRegistry::Get(browser->profile()) |
533 ->enabled_extensions().GetAppByURL(url); | 541 ->enabled_extensions().GetAppByURL(url); |
534 if (extension) { | 542 if (extension) { |
535 CoreAppLauncherHandler::RecordAppLaunchType( | 543 CoreAppLauncherHandler::RecordAppLaunchType( |
536 extension_misc::APP_LAUNCH_OMNIBOX_LOCATION, | 544 extension_misc::APP_LAUNCH_OMNIBOX_LOCATION, |
537 extension->GetType()); | 545 extension->GetType()); |
538 } | 546 } |
| 547 #endif |
539 } | 548 } |
540 | 549 |
541 void Stop(Browser* browser) { | 550 void Stop(Browser* browser) { |
542 content::RecordAction(UserMetricsAction("Stop")); | 551 content::RecordAction(UserMetricsAction("Stop")); |
543 browser->tab_strip_model()->GetActiveWebContents()->Stop(); | 552 browser->tab_strip_model()->GetActiveWebContents()->Stop(); |
544 } | 553 } |
545 | 554 |
546 void NewWindow(Browser* browser) { | 555 void NewWindow(Browser* browser) { |
547 NewEmptyWindow(browser->profile()->GetOriginalProfile(), | 556 NewEmptyWindow(browser->profile()->GetOriginalProfile(), |
548 browser->host_desktop_type()); | 557 browser->host_desktop_type()); |
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1260 browser->profile(), | 1269 browser->profile(), |
1261 browser->host_desktop_type())); | 1270 browser->host_desktop_type())); |
1262 app_browser->tab_strip_model()->AppendWebContents(contents, true); | 1271 app_browser->tab_strip_model()->AppendWebContents(contents, true); |
1263 | 1272 |
1264 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; | 1273 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; |
1265 contents->GetRenderViewHost()->SyncRendererPrefs(); | 1274 contents->GetRenderViewHost()->SyncRendererPrefs(); |
1266 app_browser->window()->Show(); | 1275 app_browser->window()->Show(); |
1267 } | 1276 } |
1268 | 1277 |
1269 } // namespace chrome | 1278 } // namespace chrome |
OLD | NEW |