summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/generated_resources.grd3
-rw-r--r--chrome/browser/views/first_run_customize_view.cc6
-rw-r--r--chrome/browser/views/first_run_view.cc8
-rw-r--r--chrome/browser/views/first_run_view_base.cc38
-rw-r--r--chrome/browser/views/first_run_view_base.h2
-rw-r--r--chrome/browser/views/options/general_page_view.cc15
-rw-r--r--chrome/browser/views/options/general_page_view.h4
-rw-r--r--chrome/browser/views/uninstall_view.cc5
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;
}
-