| 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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 #include "chrome/browser/ui/webui/ntp/core_app_launcher_handler.h" | 89 #include "chrome/browser/ui/webui/ntp/core_app_launcher_handler.h" |
| 90 #include "chrome/browser/web_applications/web_app.h" | 90 #include "chrome/browser/web_applications/web_app.h" |
| 91 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 91 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
| 92 #include "extensions/browser/extension_registry.h" | 92 #include "extensions/browser/extension_registry.h" |
| 93 #include "extensions/browser/extension_system.h" | 93 #include "extensions/browser/extension_system.h" |
| 94 #include "extensions/common/extension.h" | 94 #include "extensions/common/extension.h" |
| 95 #include "extensions/common/extension_set.h" | 95 #include "extensions/common/extension_set.h" |
| 96 #endif | 96 #endif |
| 97 | 97 |
| 98 #if defined(ENABLE_PRINTING) | 98 #if defined(ENABLE_PRINTING) |
| 99 #if defined(ENABLE_FULL_PRINTING) | 99 #if defined(ENABLE_PRINT_PREVIEW) |
| 100 #include "chrome/browser/printing/print_preview_dialog_controller.h" | 100 #include "chrome/browser/printing/print_preview_dialog_controller.h" |
| 101 #include "chrome/browser/printing/print_view_manager.h" | 101 #include "chrome/browser/printing/print_view_manager.h" |
| 102 #else | 102 #else |
| 103 #include "chrome/browser/printing/print_view_manager_basic.h" | 103 #include "chrome/browser/printing/print_view_manager_basic.h" |
| 104 #endif // defined(ENABLE_FULL_PRINTING) | 104 #endif // defined(ENABLE_PRINT_PREVIEW) |
| 105 #endif // defined(ENABLE_PRINTING) | 105 #endif // defined(ENABLE_PRINTING) |
| 106 | 106 |
| 107 namespace { | 107 namespace { |
| 108 const char kOsOverrideForTabletSite[] = "Linux; Android 4.0.3"; | 108 const char kOsOverrideForTabletSite[] = "Linux; Android 4.0.3"; |
| 109 } | 109 } |
| 110 | 110 |
| 111 using base::UserMetricsAction; | 111 using base::UserMetricsAction; |
| 112 using content::NavigationController; | 112 using content::NavigationController; |
| 113 using content::NavigationEntry; | 113 using content::NavigationEntry; |
| 114 using content::OpenURLParams; | 114 using content::OpenURLParams; |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 return false; | 262 return false; |
| 263 | 263 |
| 264 // TODO(gbillock): This is currently called in production by the CanPrint | 264 // TODO(gbillock): This is currently called in production by the CanPrint |
| 265 // method, and may be too restrictive if we allow print preview to overlap. | 265 // method, and may be too restrictive if we allow print preview to overlap. |
| 266 // Re-assess how to queue print preview after we know more about popup | 266 // Re-assess how to queue print preview after we know more about popup |
| 267 // management policy. | 267 // management policy. |
| 268 return browser->popup_manager()->IsWebModalDialogActive(web_contents); | 268 return browser->popup_manager()->IsWebModalDialogActive(web_contents); |
| 269 } | 269 } |
| 270 | 270 |
| 271 bool PrintPreviewShowing(const Browser* browser) { | 271 bool PrintPreviewShowing(const Browser* browser) { |
| 272 #if defined(ENABLE_FULL_PRINTING) | 272 #if defined(ENABLE_PRINT_PREVIEW) |
| 273 WebContents* contents = browser->tab_strip_model()->GetActiveWebContents(); | 273 WebContents* contents = browser->tab_strip_model()->GetActiveWebContents(); |
| 274 printing::PrintPreviewDialogController* controller = | 274 printing::PrintPreviewDialogController* controller = |
| 275 printing::PrintPreviewDialogController::GetInstance(); | 275 printing::PrintPreviewDialogController::GetInstance(); |
| 276 return controller && (controller->GetPrintPreviewForContents(contents) || | 276 return controller && (controller->GetPrintPreviewForContents(contents) || |
| 277 controller->is_creating_print_preview_dialog()); | 277 controller->is_creating_print_preview_dialog()); |
| 278 #else | 278 #else |
| 279 return false; | 279 return false; |
| 280 #endif | 280 #endif |
| 281 } | 281 } |
| 282 | 282 |
| (...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 const SSLStatus& ssl) { | 852 const SSLStatus& ssl) { |
| 853 browser->window()->ShowWebsiteSettings( | 853 browser->window()->ShowWebsiteSettings( |
| 854 Profile::FromBrowserContext(web_contents->GetBrowserContext()), | 854 Profile::FromBrowserContext(web_contents->GetBrowserContext()), |
| 855 web_contents, url, ssl); | 855 web_contents, url, ssl); |
| 856 } | 856 } |
| 857 | 857 |
| 858 void Print(Browser* browser) { | 858 void Print(Browser* browser) { |
| 859 #if defined(ENABLE_PRINTING) | 859 #if defined(ENABLE_PRINTING) |
| 860 WebContents* contents = browser->tab_strip_model()->GetActiveWebContents(); | 860 WebContents* contents = browser->tab_strip_model()->GetActiveWebContents(); |
| 861 | 861 |
| 862 #if defined(ENABLE_FULL_PRINTING) | 862 #if defined(ENABLE_PRINT_PREVIEW) |
| 863 printing::PrintViewManager* print_view_manager = | 863 printing::PrintViewManager* print_view_manager = |
| 864 printing::PrintViewManager::FromWebContents(contents); | 864 printing::PrintViewManager::FromWebContents(contents); |
| 865 if (!browser->profile()->GetPrefs()->GetBoolean( | 865 if (!browser->profile()->GetPrefs()->GetBoolean( |
| 866 prefs::kPrintPreviewDisabled)) { | 866 prefs::kPrintPreviewDisabled)) { |
| 867 print_view_manager->PrintPreviewNow(false); | 867 print_view_manager->PrintPreviewNow(false); |
| 868 return; | 868 return; |
| 869 } | 869 } |
| 870 #else // ENABLE_FULL_PRINTING | 870 #else // ENABLE_PRINT_PREVIEW |
| 871 printing::PrintViewManagerBasic* print_view_manager = | 871 printing::PrintViewManagerBasic* print_view_manager = |
| 872 printing::PrintViewManagerBasic::FromWebContents(contents); | 872 printing::PrintViewManagerBasic::FromWebContents(contents); |
| 873 #endif // ENABLE_FULL_PRINTING | 873 #endif // ENABLE_PRINT_PREVIEW |
| 874 | 874 |
| 875 #if !defined(DISABLE_BASIC_PRINTING) | 875 #if defined(ENABLE_BASIC_PRINTING) |
| 876 print_view_manager->PrintNow(); | 876 print_view_manager->PrintNow(); |
| 877 #endif // DISABLE_BASIC_PRINTING | 877 #endif // ENABLE_BASIC_PRINTING |
| 878 | 878 |
| 879 #endif // defined(ENABLE_PRINTING) | 879 #endif // defined(ENABLE_PRINTING) |
| 880 } | 880 } |
| 881 | 881 |
| 882 bool CanPrint(Browser* browser) { | 882 bool CanPrint(Browser* browser) { |
| 883 // Do not print when printing is disabled via pref or policy. | 883 // Do not print when printing is disabled via pref or policy. |
| 884 // Do not print when a constrained window is showing. It's confusing. | 884 // Do not print when a constrained window is showing. It's confusing. |
| 885 // TODO(gbillock): Need to re-assess the call to | 885 // TODO(gbillock): Need to re-assess the call to |
| 886 // IsShowingWebContentsModalDialog after a popup management policy is | 886 // IsShowingWebContentsModalDialog after a popup management policy is |
| 887 // refined -- we will probably want to just queue the print request, not | 887 // refined -- we will probably want to just queue the print request, not |
| 888 // block it. | 888 // block it. |
| 889 return browser->profile()->GetPrefs()->GetBoolean(prefs::kPrintingEnabled) && | 889 return browser->profile()->GetPrefs()->GetBoolean(prefs::kPrintingEnabled) && |
| 890 !(IsShowingWebContentsModalDialog(browser) || | 890 !(IsShowingWebContentsModalDialog(browser) || |
| 891 GetContentRestrictions(browser) & CONTENT_RESTRICTION_PRINT); | 891 GetContentRestrictions(browser) & CONTENT_RESTRICTION_PRINT); |
| 892 } | 892 } |
| 893 | 893 |
| 894 #if !defined(DISABLE_BASIC_PRINTING) | 894 #if defined(ENABLE_BASIC_PRINTING) |
| 895 void BasicPrint(Browser* browser) { | 895 void BasicPrint(Browser* browser) { |
| 896 #if defined(ENABLE_FULL_PRINTING) | 896 #if defined(ENABLE_PRINT_PREVIEW) |
| 897 printing::PrintViewManager* print_view_manager = | 897 printing::PrintViewManager* print_view_manager = |
| 898 printing::PrintViewManager::FromWebContents( | 898 printing::PrintViewManager::FromWebContents( |
| 899 browser->tab_strip_model()->GetActiveWebContents()); | 899 browser->tab_strip_model()->GetActiveWebContents()); |
| 900 print_view_manager->BasicPrint(); | 900 print_view_manager->BasicPrint(); |
| 901 #endif | 901 #endif |
| 902 } | 902 } |
| 903 | 903 |
| 904 bool CanBasicPrint(Browser* browser) { | 904 bool CanBasicPrint(Browser* browser) { |
| 905 // If printing is not disabled via pref or policy, it is always possible to | 905 // If printing is not disabled via pref or policy, it is always possible to |
| 906 // advanced print when the print preview is visible. The exception to this | 906 // advanced print when the print preview is visible. The exception to this |
| 907 // is under Win8 ash, since showing the advanced print dialog will open it | 907 // is under Win8 ash, since showing the advanced print dialog will open it |
| 908 // modally on the Desktop and hang the browser. | 908 // modally on the Desktop and hang the browser. |
| 909 #if defined(OS_WIN) | 909 #if defined(OS_WIN) |
| 910 if (chrome::GetActiveDesktop() == chrome::HOST_DESKTOP_TYPE_ASH) | 910 if (chrome::GetActiveDesktop() == chrome::HOST_DESKTOP_TYPE_ASH) |
| 911 return false; | 911 return false; |
| 912 #endif | 912 #endif |
| 913 | 913 |
| 914 return browser->profile()->GetPrefs()->GetBoolean(prefs::kPrintingEnabled) && | 914 return browser->profile()->GetPrefs()->GetBoolean(prefs::kPrintingEnabled) && |
| 915 (PrintPreviewShowing(browser) || CanPrint(browser)); | 915 (PrintPreviewShowing(browser) || CanPrint(browser)); |
| 916 } | 916 } |
| 917 #endif // !DISABLE_BASIC_PRINTING | 917 #endif // ENABLE_BASIC_PRINTING |
| 918 | 918 |
| 919 void EmailPageLocation(Browser* browser) { | 919 void EmailPageLocation(Browser* browser) { |
| 920 content::RecordAction(UserMetricsAction("EmailPageLocation")); | 920 content::RecordAction(UserMetricsAction("EmailPageLocation")); |
| 921 WebContents* wc = browser->tab_strip_model()->GetActiveWebContents(); | 921 WebContents* wc = browser->tab_strip_model()->GetActiveWebContents(); |
| 922 DCHECK(wc); | 922 DCHECK(wc); |
| 923 | 923 |
| 924 std::string title = net::EscapeQueryParamValue( | 924 std::string title = net::EscapeQueryParamValue( |
| 925 base::UTF16ToUTF8(wc->GetTitle()), false); | 925 base::UTF16ToUTF8(wc->GetTitle()), false); |
| 926 std::string page_url = net::EscapeQueryParamValue(wc->GetURL().spec(), false); | 926 std::string page_url = net::EscapeQueryParamValue(wc->GetURL().spec(), false); |
| 927 std::string mailto = std::string("mailto:?subject=Fwd:%20") + | 927 std::string mailto = std::string("mailto:?subject=Fwd:%20") + |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1288 browser->host_desktop_type())); | 1288 browser->host_desktop_type())); |
| 1289 app_browser->tab_strip_model()->AppendWebContents(contents, true); | 1289 app_browser->tab_strip_model()->AppendWebContents(contents, true); |
| 1290 | 1290 |
| 1291 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; | 1291 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; |
| 1292 contents->GetRenderViewHost()->SyncRendererPrefs(); | 1292 contents->GetRenderViewHost()->SyncRendererPrefs(); |
| 1293 app_browser->window()->Show(); | 1293 app_browser->window()->Show(); |
| 1294 } | 1294 } |
| 1295 #endif // defined(ENABLE_EXTENSIONS) | 1295 #endif // defined(ENABLE_EXTENSIONS) |
| 1296 | 1296 |
| 1297 } // namespace chrome | 1297 } // namespace chrome |
| OLD | NEW |