| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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.h" | 5 #include "chrome/browser/ui/browser.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shellapi.h> | 9 #include <shellapi.h> |
| 10 #endif // OS_WIN | 10 #endif // OS_WIN |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 #include "chrome/browser/infobars/infobar_tab_helper.h" | 54 #include "chrome/browser/infobars/infobar_tab_helper.h" |
| 55 #include "chrome/browser/instant/instant_controller.h" | 55 #include "chrome/browser/instant/instant_controller.h" |
| 56 #include "chrome/browser/instant/instant_unload_handler.h" | 56 #include "chrome/browser/instant/instant_unload_handler.h" |
| 57 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h" | 57 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h" |
| 58 #include "chrome/browser/net/browser_url_util.h" | 58 #include "chrome/browser/net/browser_url_util.h" |
| 59 #include "chrome/browser/net/url_fixer_upper.h" | 59 #include "chrome/browser/net/url_fixer_upper.h" |
| 60 #include "chrome/browser/notifications/notification_ui_manager.h" | 60 #include "chrome/browser/notifications/notification_ui_manager.h" |
| 61 #include "chrome/browser/platform_util.h" | 61 #include "chrome/browser/platform_util.h" |
| 62 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 62 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 63 #include "chrome/browser/prefs/pref_service.h" | 63 #include "chrome/browser/prefs/pref_service.h" |
| 64 #include "chrome/browser/prerender/prerender_tab_helper.h" |
| 64 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" | 65 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" |
| 65 #include "chrome/browser/printing/print_preview_tab_controller.h" | 66 #include "chrome/browser/printing/print_preview_tab_controller.h" |
| 66 #include "chrome/browser/printing/print_view_manager.h" | 67 #include "chrome/browser/printing/print_view_manager.h" |
| 67 #include "chrome/browser/profiles/profile.h" | 68 #include "chrome/browser/profiles/profile.h" |
| 68 #include "chrome/browser/sessions/restore_tab_helper.h" | 69 #include "chrome/browser/sessions/restore_tab_helper.h" |
| 69 #include "chrome/browser/sessions/session_service.h" | 70 #include "chrome/browser/sessions/session_service.h" |
| 70 #include "chrome/browser/sessions/session_service_factory.h" | 71 #include "chrome/browser/sessions/session_service_factory.h" |
| 71 #include "chrome/browser/sessions/session_types.h" | 72 #include "chrome/browser/sessions/session_types.h" |
| 72 #include "chrome/browser/sessions/tab_restore_service.h" | 73 #include "chrome/browser/sessions/tab_restore_service.h" |
| 73 #include "chrome/browser/sessions/tab_restore_service_factory.h" | 74 #include "chrome/browser/sessions/tab_restore_service_factory.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 #include "content/browser/user_metrics.h" | 135 #include "content/browser/user_metrics.h" |
| 135 #include "content/common/content_restriction.h" | 136 #include "content/common/content_restriction.h" |
| 136 #include "content/common/content_switches.h" | 137 #include "content/common/content_switches.h" |
| 137 #include "content/common/notification_service.h" | 138 #include "content/common/notification_service.h" |
| 138 #include "content/common/page_transition_types.h" | 139 #include "content/common/page_transition_types.h" |
| 139 #include "content/common/page_zoom.h" | 140 #include "content/common/page_zoom.h" |
| 140 #include "content/common/view_messages.h" | 141 #include "content/common/view_messages.h" |
| 141 #include "grit/chromium_strings.h" | 142 #include "grit/chromium_strings.h" |
| 142 #include "grit/generated_resources.h" | 143 #include "grit/generated_resources.h" |
| 143 #include "grit/locale_settings.h" | 144 #include "grit/locale_settings.h" |
| 145 #include "grit/theme_resources_standard.h" |
| 144 #include "net/base/cookie_monster.h" | 146 #include "net/base/cookie_monster.h" |
| 145 #include "net/base/net_util.h" | 147 #include "net/base/net_util.h" |
| 146 #include "net/base/registry_controlled_domain.h" | 148 #include "net/base/registry_controlled_domain.h" |
| 147 #include "net/url_request/url_request_context.h" | 149 #include "net/url_request/url_request_context.h" |
| 148 #include "ui/base/animation/animation.h" | 150 #include "ui/base/animation/animation.h" |
| 149 #include "ui/base/l10n/l10n_util.h" | 151 #include "ui/base/l10n/l10n_util.h" |
| 150 #include "ui/gfx/point.h" | 152 #include "ui/gfx/point.h" |
| 151 #include "webkit/glue/webkit_glue.h" | 153 #include "webkit/glue/webkit_glue.h" |
| 152 #include "webkit/glue/window_open_disposition.h" | 154 #include "webkit/glue/window_open_disposition.h" |
| 153 | 155 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 169 #include "chrome/browser/chromeos/boot_times_loader.h" | 171 #include "chrome/browser/chromeos/boot_times_loader.h" |
| 170 #include "chrome/browser/ui/webui/active_downloads_ui.h" | 172 #include "chrome/browser/ui/webui/active_downloads_ui.h" |
| 171 #else | 173 #else |
| 172 #include "chrome/browser/download/download_shelf.h" | 174 #include "chrome/browser/download/download_shelf.h" |
| 173 #endif | 175 #endif |
| 174 | 176 |
| 175 #if defined(FILE_MANAGER_EXTENSION) | 177 #if defined(FILE_MANAGER_EXTENSION) |
| 176 #include "chrome/browser/extensions/file_manager_util.h" | 178 #include "chrome/browser/extensions/file_manager_util.h" |
| 177 #endif | 179 #endif |
| 178 | 180 |
| 181 #include "webkit/plugins/npapi/plugin_list.h" |
| 182 |
| 179 using base::TimeDelta; | 183 using base::TimeDelta; |
| 180 | 184 |
| 181 /////////////////////////////////////////////////////////////////////////////// | 185 /////////////////////////////////////////////////////////////////////////////// |
| 182 | 186 |
| 183 namespace { | 187 namespace { |
| 184 | 188 |
| 185 // The URL to be loaded to display Help. | 189 // The URL to be loaded to display Help. |
| 186 const char kHelpContentUrl[] = | 190 const char kHelpContentUrl[] = |
| 187 #if defined(OS_CHROMEOS) | 191 #if defined(OS_CHROMEOS) |
| 188 #if defined(OFFICIAL_BUILD) | 192 #if defined(OFFICIAL_BUILD) |
| (...skipping 2352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2541 TabContentsWrapper* tcw = TabContentsWrapper::GetCurrentWrapperForContents( | 2545 TabContentsWrapper* tcw = TabContentsWrapper::GetCurrentWrapperForContents( |
| 2542 tab); | 2546 tab); |
| 2543 if (!tcw || !tcw->find_tab_helper()) | 2547 if (!tcw || !tcw->find_tab_helper()) |
| 2544 return; | 2548 return; |
| 2545 | 2549 |
| 2546 tcw->find_tab_helper()->HandleFindReply(request_id, number_of_matches, | 2550 tcw->find_tab_helper()->HandleFindReply(request_id, number_of_matches, |
| 2547 selection_rect, active_match_ordinal, | 2551 selection_rect, active_match_ordinal, |
| 2548 final_update); | 2552 final_update); |
| 2549 } | 2553 } |
| 2550 | 2554 |
| 2555 // static |
| 2556 void Browser::CrashedPluginHelper(TabContents* tab, |
| 2557 const FilePath& plugin_path) { |
| 2558 TabContentsWrapper* tcw = TabContentsWrapper::GetCurrentWrapperForContents( |
| 2559 tab); |
| 2560 if (!tcw) |
| 2561 return; |
| 2562 |
| 2563 DCHECK(!plugin_path.value().empty()); |
| 2564 |
| 2565 string16 plugin_name = plugin_path.LossyDisplayName(); |
| 2566 webkit::WebPluginInfo plugin_info; |
| 2567 if (webkit::npapi::PluginList::Singleton()->GetPluginInfoByPath( |
| 2568 plugin_path, &plugin_info) && |
| 2569 !plugin_info.name.empty()) { |
| 2570 plugin_name = plugin_info.name; |
| 2571 #if defined(OS_MACOSX) |
| 2572 // Many plugins on the Mac have .plugin in the actual name, which looks |
| 2573 // terrible, so look for that and strip it off if present. |
| 2574 const std::string kPluginExtension = ".plugin"; |
| 2575 if (EndsWith(plugin_name, ASCIIToUTF16(kPluginExtension), true)) |
| 2576 plugin_name.erase(plugin_name.length() - kPluginExtension.length()); |
| 2577 #endif // OS_MACOSX |
| 2578 } |
| 2579 gfx::Image* icon = &ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 2580 IDR_INFOBAR_PLUGIN_CRASHED); |
| 2581 tcw->infobar_tab_helper()->AddInfoBar( |
| 2582 new SimpleAlertInfoBarDelegate( |
| 2583 tab, |
| 2584 icon, |
| 2585 l10n_util::GetStringFUTF16(IDS_PLUGIN_CRASHED_PROMPT, plugin_name), |
| 2586 true)); |
| 2587 } |
| 2588 |
| 2589 // static |
| 2590 void Browser::UpdateTargetURLHelper(TabContents* tab, int32 page_id, |
| 2591 const GURL& url) { |
| 2592 TabContentsWrapper* tcw = TabContentsWrapper::GetCurrentWrapperForContents( |
| 2593 tab); |
| 2594 if (!tcw || !tcw->prerender_tab_helper()) |
| 2595 return; |
| 2596 tcw->prerender_tab_helper()->UpdateTargetURL(page_id, url); |
| 2597 } |
| 2598 |
| 2551 void Browser::ExecuteCommandWithDisposition( | 2599 void Browser::ExecuteCommandWithDisposition( |
| 2552 int id, WindowOpenDisposition disposition) { | 2600 int id, WindowOpenDisposition disposition) { |
| 2553 // No commands are enabled if there is not yet any selected tab. | 2601 // No commands are enabled if there is not yet any selected tab. |
| 2554 // TODO(pkasting): It seems like we should not need this, because either | 2602 // TODO(pkasting): It seems like we should not need this, because either |
| 2555 // most/all commands should not have been enabled yet anyway or the ones that | 2603 // most/all commands should not have been enabled yet anyway or the ones that |
| 2556 // are enabled should be global, or safe themselves against having no selected | 2604 // are enabled should be global, or safe themselves against having no selected |
| 2557 // tab. However, Ben says he tried removing this before and got lots of | 2605 // tab. However, Ben says he tried removing this before and got lots of |
| 2558 // crashes, e.g. from Windows sending WM_COMMANDs at random times during | 2606 // crashes, e.g. from Windows sending WM_COMMANDs at random times during |
| 2559 // window construction. This probably could use closer examination someday. | 2607 // window construction. This probably could use closer examination someday. |
| 2560 if (!GetSelectedTabContentsWrapper()) | 2608 if (!GetSelectedTabContentsWrapper()) |
| (...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3481 if (!GetStatusBubble()) | 3529 if (!GetStatusBubble()) |
| 3482 return; | 3530 return; |
| 3483 | 3531 |
| 3484 if (source == GetSelectedTabContents()) { | 3532 if (source == GetSelectedTabContents()) { |
| 3485 GetStatusBubble()->MouseMoved(location, !motion); | 3533 GetStatusBubble()->MouseMoved(location, !motion); |
| 3486 if (!motion) | 3534 if (!motion) |
| 3487 GetStatusBubble()->SetURL(GURL(), std::string()); | 3535 GetStatusBubble()->SetURL(GURL(), std::string()); |
| 3488 } | 3536 } |
| 3489 } | 3537 } |
| 3490 | 3538 |
| 3491 void Browser::UpdateTargetURL(TabContents* source, const GURL& url) { | 3539 void Browser::UpdateTargetURL(TabContents* source, int32 page_id, |
| 3540 const GURL& url) { |
| 3541 Browser::UpdateTargetURLHelper(source, page_id, url); |
| 3542 |
| 3492 if (!GetStatusBubble()) | 3543 if (!GetStatusBubble()) |
| 3493 return; | 3544 return; |
| 3494 | 3545 |
| 3495 if (source == GetSelectedTabContents()) { | 3546 if (source == GetSelectedTabContents()) { |
| 3496 PrefService* prefs = profile_->GetPrefs(); | 3547 PrefService* prefs = profile_->GetPrefs(); |
| 3497 GetStatusBubble()->SetURL(url, prefs->GetString(prefs::kAcceptLanguages)); | 3548 GetStatusBubble()->SetURL(url, prefs->GetString(prefs::kAcceptLanguages)); |
| 3498 } | 3549 } |
| 3499 } | 3550 } |
| 3500 | 3551 |
| 3501 void Browser::UpdateDownloadShelfVisibility(bool visible) { | 3552 void Browser::UpdateDownloadShelfVisibility(bool visible) { |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3812 void Browser::FindReply(TabContents* tab, | 3863 void Browser::FindReply(TabContents* tab, |
| 3813 int request_id, | 3864 int request_id, |
| 3814 int number_of_matches, | 3865 int number_of_matches, |
| 3815 const gfx::Rect& selection_rect, | 3866 const gfx::Rect& selection_rect, |
| 3816 int active_match_ordinal, | 3867 int active_match_ordinal, |
| 3817 bool final_update) { | 3868 bool final_update) { |
| 3818 FindReplyHelper(tab, request_id, number_of_matches, selection_rect, | 3869 FindReplyHelper(tab, request_id, number_of_matches, selection_rect, |
| 3819 active_match_ordinal, final_update); | 3870 active_match_ordinal, final_update); |
| 3820 } | 3871 } |
| 3821 | 3872 |
| 3873 void Browser::CrashedPlugin(TabContents* tab, const FilePath& plugin_path) { |
| 3874 CrashedPluginHelper(tab, plugin_path); |
| 3875 } |
| 3876 |
| 3822 void Browser::ExitTabbedFullscreenModeIfNecessary() { | 3877 void Browser::ExitTabbedFullscreenModeIfNecessary() { |
| 3823 if (tab_caused_fullscreen_) | 3878 if (tab_caused_fullscreen_) |
| 3824 ToggleFullscreenMode(); | 3879 ToggleFullscreenMode(); |
| 3825 else | 3880 else |
| 3826 NotifyTabOfFullscreenExitIfNecessary(); | 3881 NotifyTabOfFullscreenExitIfNecessary(); |
| 3827 } | 3882 } |
| 3828 | 3883 |
| 3829 /////////////////////////////////////////////////////////////////////////////// | 3884 /////////////////////////////////////////////////////////////////////////////// |
| 3830 // Browser, TabContentsWrapperDelegate implementation: | 3885 // Browser, TabContentsWrapperDelegate implementation: |
| 3831 | 3886 |
| (...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5188 profile()->GetOriginalProfile()->GetProfileSyncService(); | 5243 profile()->GetOriginalProfile()->GetProfileSyncService(); |
| 5189 if (service->HasSyncSetupCompleted()) | 5244 if (service->HasSyncSetupCompleted()) |
| 5190 ShowOptionsTab(chrome::kSyncSetupSubPage); | 5245 ShowOptionsTab(chrome::kSyncSetupSubPage); |
| 5191 else | 5246 else |
| 5192 service->ShowLoginDialog(); | 5247 service->ShowLoginDialog(); |
| 5193 } | 5248 } |
| 5194 | 5249 |
| 5195 void Browser::ToggleSpeechInput() { | 5250 void Browser::ToggleSpeechInput() { |
| 5196 GetSelectedTabContentsWrapper()->render_view_host()->ToggleSpeechInput(); | 5251 GetSelectedTabContentsWrapper()->render_view_host()->ToggleSpeechInput(); |
| 5197 } | 5252 } |
| OLD | NEW |