diff options
-rw-r--r-- | chrome/app/generated_resources.grd | 3 | ||||
-rw-r--r-- | chrome/browser/views/first_run_customize_view.cc | 6 | ||||
-rw-r--r-- | chrome/browser/views/first_run_view.cc | 8 | ||||
-rw-r--r-- | chrome/browser/views/first_run_view_base.cc | 38 | ||||
-rw-r--r-- | chrome/browser/views/first_run_view_base.h | 2 | ||||
-rw-r--r-- | chrome/browser/views/options/general_page_view.cc | 15 | ||||
-rw-r--r-- | chrome/browser/views/options/general_page_view.h | 4 | ||||
-rw-r--r-- | chrome/browser/views/uninstall_view.cc | 5 |
8 files changed, 64 insertions, 17 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index cf86bce8..3d0f3ea 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -4991,6 +4991,9 @@ Keep your key file in a safe place. You will need it to create new versions of y <message name="IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN" desc="The text displayed when Chrome cannot determine or set the default browser"> <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> cannot determine or set the default browser. </message> + <message name="IDS_OPTIONS_DEFAULTBROWSER_SXS" desc="The text displayed when Chrome is installed in side-by-side mode, which does not support setting as the default browser."> + This is a secondary installation of <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>, and cannot be made your default browser. + </message> <message name="IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT" desc="The label of the 'Use Chrome as default' browser button"> Make <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> my default browser </message> diff --git a/chrome/browser/views/first_run_customize_view.cc b/chrome/browser/views/first_run_customize_view.cc index abc6f93..d2886ad 100644 --- a/chrome/browser/views/first_run_customize_view.cc +++ b/chrome/browser/views/first_run_customize_view.cc @@ -10,6 +10,7 @@ #include "chrome/browser/importer/importer.h" #include "chrome/browser/first_run.h" #include "chrome/browser/metrics/user_metrics.h" +#include "chrome/installer/util/browser_distribution.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "grit/locale_settings.h" @@ -45,7 +46,8 @@ FirstRunCustomizeView::FirstRunCustomizeView(Profile* profile, // the customize view, so that the user selection isn't lost when you uncheck // and then open the Customize dialog. Therefore, we propagate the selection // status of the default browser here. - default_browser_->SetChecked(default_browser_checked); + if (default_browser_) + default_browser_->SetChecked(default_browser_checked); } FirstRunCustomizeView::~FirstRunCustomizeView() { @@ -209,7 +211,7 @@ bool FirstRunCustomizeView::Accept() { importer_host_->GetSourceProfileInfoAt(browser_selected).browser_type, GetImportItems(), window()->GetNativeWindow()); } - if (default_browser_->checked()) + if (default_browser_ && default_browser_->checked()) SetDefaultBrowser(); if (customize_observer_) diff --git a/chrome/browser/views/first_run_view.cc b/chrome/browser/views/first_run_view.cc index 79c6fdd..8a0ffe9 100644 --- a/chrome/browser/views/first_run_view.cc +++ b/chrome/browser/views/first_run_view.cc @@ -11,6 +11,7 @@ #include "chrome/browser/first_run.h" #include "chrome/browser/metrics/user_metrics.h" #include "chrome/browser/views/first_run_customize_view.h" +#include "chrome/installer/util/browser_distribution.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "grit/locale_settings.h" @@ -55,7 +56,8 @@ void FirstRunView::SetupControls() { using views::Label; using views::Link; - default_browser_->SetChecked(true); + if (default_browser_) + default_browser_->SetChecked(true); welcome_label_ = new Label(l10n_util::GetString(IDS_FIRSTRUN_DLG_TEXT)); welcome_label_->SetColor(SK_ColorBLACK); @@ -156,7 +158,7 @@ void FirstRunView::OpenCustomizeDialog() { new FirstRunCustomizeView(profile_, importer_host_, this, - default_browser_->checked(), + default_browser_ && default_browser_->checked(), homepage_defined_, import_items_, dont_import_items_))->Show(); @@ -189,7 +191,7 @@ bool FirstRunView::Accept() { importer_host_->GetSourceProfileInfoAt(0).browser_type, GetImportItems(), window()->GetNativeWindow()); UserMetrics::RecordAction("FirstRunDef_Accept", profile_); - if (default_browser_->checked()) + if (default_browser_ && default_browser_->checked()) SetDefaultBrowser(); accepted_ = true; diff --git a/chrome/browser/views/first_run_view_base.cc b/chrome/browser/views/first_run_view_base.cc index 75aeb88..88e2b9d 100644 --- a/chrome/browser/views/first_run_view_base.cc +++ b/chrome/browser/views/first_run_view_base.cc @@ -17,6 +17,7 @@ #include "chrome/browser/shell_integration.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" +#include "chrome/installer/util/browser_distribution.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" @@ -36,6 +37,7 @@ FirstRunViewBase::FirstRunViewBase(Profile* profile, bool homepage_defined, background_image_(NULL), separator_1_(NULL), default_browser_(NULL), + non_default_browser_label_(NULL), separator_2_(NULL), importer_host_(NULL), profile_(profile), @@ -88,11 +90,21 @@ void FirstRunViewBase::SetupControls() { separator_1_ = new views::Separator; AddChildView(separator_1_); - // The "make us default browser" check box. - default_browser_ = new views::Checkbox( - l10n_util::GetString(IDS_FR_CUSTOMIZE_DEFAULT_BROWSER)); - default_browser_->SetMultiLine(true); - AddChildView(default_browser_); + if (BrowserDistribution::GetDistribution()->CanSetAsDefault()) { + // The "make us default browser" check box. + default_browser_ = new views::Checkbox( + l10n_util::GetString(IDS_FR_CUSTOMIZE_DEFAULT_BROWSER)); + default_browser_->SetMultiLine(true); + AddChildView(default_browser_); + } else { + non_default_browser_label_ = new Label( + l10n_util::GetStringF(IDS_OPTIONS_DEFAULTBROWSER_SXS, + l10n_util::GetString(IDS_PRODUCT_NAME))); + non_default_browser_label_->SetMultiLine(true); + non_default_browser_label_->SetHorizontalAlignment( + views::Label::ALIGN_LEFT); + AddChildView(non_default_browser_label_); + } // The second separator marks the start of buttons. separator_2_ = new views::Separator; @@ -134,9 +146,16 @@ void FirstRunViewBase::Layout() { next_v_space = separator_2_->y() + separator_2_->height() + kVertSpacing; int width = canvas.width() - 2 * kPanelHorizMargin; - int height = default_browser_->GetHeightForWidth(width); - default_browser_->SetBounds(kPanelHorizMargin, next_v_space, width, height); - AdjustDialogWidth(default_browser_); + if (default_browser_) { + int height = default_browser_->GetHeightForWidth(width); + default_browser_->SetBounds(kPanelHorizMargin, next_v_space, width, height); + AdjustDialogWidth(default_browser_); + } else { + int height = non_default_browser_label_->GetHeightForWidth(width); + non_default_browser_label_->SetBounds(kPanelHorizMargin, next_v_space, + width, height); + AdjustDialogWidth(non_default_browser_label_); + } } bool FirstRunViewBase::CanResize() const { @@ -186,7 +205,8 @@ void FirstRunViewBase::DisableButtons() { views::DialogClientView* dcv = GetDialogClientView(); dcv->ok_button()->SetEnabled(false); dcv->cancel_button()->SetEnabled(false); - default_browser_->SetEnabled(false); + if (default_browser_) + default_browser_->SetEnabled(false); } bool FirstRunViewBase::CreateDesktopShortcut() { diff --git a/chrome/browser/views/first_run_view_base.h b/chrome/browser/views/first_run_view_base.h index 5879cccb..b0d53d4 100644 --- a/chrome/browser/views/first_run_view_base.h +++ b/chrome/browser/views/first_run_view_base.h @@ -11,6 +11,7 @@ namespace views { class Checkbox; +class Label; class Window; class ImageView; class Separator; @@ -81,6 +82,7 @@ class FirstRunViewBase : public views::View, scoped_refptr<ImporterHost> importer_host_; Profile* profile_; views::Checkbox* default_browser_; + views::Label* non_default_browser_label_; protected: bool homepage_defined_; diff --git a/chrome/browser/views/options/general_page_view.cc b/chrome/browser/views/options/general_page_view.cc index 317f596..e9c9e01 100644 --- a/chrome/browser/views/options/general_page_view.cc +++ b/chrome/browser/views/options/general_page_view.cc @@ -28,6 +28,7 @@ #include "chrome/common/chrome_constants.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" +#include "chrome/installer/util/browser_distribution.h" #include "grit/app_resources.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" @@ -671,6 +672,15 @@ void GeneralPageView::SetDefaultBrowserUIState( } } +void GeneralPageView::SetDefaultBrowserUIStateForSxS() { + default_browser_use_as_default_button_->SetEnabled(false); + default_browser_status_label_->SetText( + l10n_util::GetStringF(IDS_OPTIONS_DEFAULTBROWSER_SXS, + l10n_util::GetString(IDS_PRODUCT_NAME))); + default_browser_status_label_->SetColor(kNotDefaultBrowserLabelColor); + Layout(); +} + void GeneralPageView::InitStartupGroup() { startup_homepage_radio_ = new views::RadioButton( l10n_util::GetString(IDS_OPTIONS_STARTUP_SHOW_DEFAULT_AND_NEWTAB), @@ -882,7 +892,10 @@ void GeneralPageView::InitDefaultBrowserGroup() { contents, l10n_util::GetString(IDS_OPTIONS_DEFAULTBROWSER_GROUP_NAME), std::wstring(), false); - default_browser_worker_->StartCheckDefaultBrowser(); + if (BrowserDistribution::GetDistribution()->CanSetAsDefault()) + default_browser_worker_->StartCheckDefaultBrowser(); + else + SetDefaultBrowserUIStateForSxS(); } void GeneralPageView::SaveStartupPref() { diff --git a/chrome/browser/views/options/general_page_view.h b/chrome/browser/views/options/general_page_view.h index dae9fa5..32372b4 100644 --- a/chrome/browser/views/options/general_page_view.h +++ b/chrome/browser/views/options/general_page_view.h @@ -71,6 +71,10 @@ class GeneralPageView : public OptionsPageView, virtual void SetDefaultBrowserUIState( ShellIntegration::DefaultBrowserUIState state); + // For Side by Side installs, this will disable the Default Browser setting + // and display an explanitory message. + void SetDefaultBrowserUIStateForSxS(); + // Init all the dialog controls void InitStartupGroup(); void InitHomepageGroup(); diff --git a/chrome/browser/views/uninstall_view.cc b/chrome/browser/views/uninstall_view.cc index 4b29766..2ecbc43 100644 --- a/chrome/browser/views/uninstall_view.cc +++ b/chrome/browser/views/uninstall_view.cc @@ -9,6 +9,7 @@ #include "base/process_util.h" #include "chrome/browser/shell_integration.h" #include "chrome/common/result_codes.h" +#include "chrome/installer/util/browser_distribution.h" #include "chrome/installer/util/shell_util.h" #include "views/controls/button/checkbox.h" #include "views/controls/label.h" @@ -62,7 +63,8 @@ void UninstallView::SetupControls() { layout->AddView(delete_profile_); // Set default browser combo box - if (ShellIntegration::IsDefaultBrowser()) { + if (BrowserDistribution::GetDistribution()->CanSetAsDefault() && + ShellIntegration::IsDefaultBrowser()) { browsers_.reset(new BrowsersMap()); ShellUtil::GetRegisteredBrowsers(browsers_.get()); if (!browsers_->empty()) { @@ -146,4 +148,3 @@ std::wstring UninstallView::GetItemAt(int index) { std::advance(it, index); return (*it).first; } - |