summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/ui
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-03-08 13:07:32 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-03-08 13:40:10 +0000
commit818d9aed569afd192f6d4f6d9b28b72912df8b93 (patch)
treefa30cbdffa3e8fdc09dbbe37ffc0a721b40fced1 /chromium/chrome/browser/ui
parent66a2147d838e293f4a5db7711c8eba4e6faaaf0f (diff)
downloadqtwebengine-chromium-818d9aed569afd192f6d4f6d9b28b72912df8b93.tar.gz
BASELINE: Update Chromium to 65.0.3325.151
Change-Id: I3c71dd500483eb29491ac3eee4123714dda52da9 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/chrome/browser/ui')
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc17
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h10
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater.h4
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h4
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/printer_capabilities.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/about_handler.cc27
-rw-r--r--chromium/chrome/browser/ui/webui/settings/about_handler.h10
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc35
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h14
-rw-r--r--chromium/chrome/browser/ui/webui/welcome_win10_ui.cc8
11 files changed, 127 insertions, 15 deletions
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
index 82e6fe19c33..df9f8651a17 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
@@ -28,6 +28,7 @@
#include "chrome/browser/chromeos/tpm_firmware_update.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/ui/ash/ash_util.h"
+#include "chrome/browser/ui/ash/tablet_mode_client.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
#include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
#include "chrome/common/channel_info.h"
@@ -97,9 +98,14 @@ CoreOobeHandler::CoreOobeHandler(OobeUI* oobe_ui,
} else {
NOTIMPLEMENTED();
}
+
+ TabletModeClient* tablet_mode_client = TabletModeClient::Get();
+ tablet_mode_client->AddObserver(this);
}
-CoreOobeHandler::~CoreOobeHandler() {}
+CoreOobeHandler::~CoreOobeHandler() {
+ TabletModeClient::Get()->RemoveObserver(this);
+}
void CoreOobeHandler::DeclareLocalizedValues(
::login::LocalizedValuesBuilder* builder) {
@@ -152,6 +158,11 @@ void CoreOobeHandler::Initialize() {
UpdateClientAreaSize();
}
+void CoreOobeHandler::GetAdditionalParameters(base::DictionaryValue* dict) {
+ dict->SetKey("isInTabletMode",
+ base::Value(TabletModeClient::Get()->tablet_mode_enabled()));
+}
+
void CoreOobeHandler::RegisterMessages() {
AddCallback("screenStateInitialize", &CoreOobeHandler::HandleInitialized);
AddCallback("skipUpdateEnrollAfterEula",
@@ -497,6 +508,10 @@ void CoreOobeHandler::UpdateKeyboardState() {
}
}
+void CoreOobeHandler::OnTabletModeToggled(bool enabled) {
+ CallJSOrDefer("setTabletModeState", enabled);
+}
+
void CoreOobeHandler::UpdateClientAreaSize() {
const gfx::Size size =
display::Screen::GetScreen()->GetPrimaryDisplay().size();
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
index 33ec23663aa..2579735ea1f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
@@ -16,6 +16,7 @@
#include "chrome/browser/chromeos/login/demo_mode/demo_mode_detector.h"
#include "chrome/browser/chromeos/login/screens/core_oobe_view.h"
#include "chrome/browser/chromeos/login/version_info_updater.h"
+#include "chrome/browser/ui/ash/tablet_mode_client_observer.h"
#include "chrome/browser/ui/webui/chromeos/login/base_webui_handler.h"
#include "ui/events/event_source.h"
@@ -36,7 +37,8 @@ class OobeUI;
class CoreOobeHandler : public BaseWebUIHandler,
public VersionInfoUpdater::Delegate,
public CoreOobeView,
- public ui::EventSource {
+ public ui::EventSource,
+ public TabletModeClientObserver {
public:
explicit CoreOobeHandler(OobeUI* oobe_ui,
JSCallsContainer* js_calls_container);
@@ -47,6 +49,9 @@ class CoreOobeHandler : public BaseWebUIHandler,
::login::LocalizedValuesBuilder* builder) override;
void Initialize() override;
+ // BaseScreenHandler implementation:
+ void GetAdditionalParameters(base::DictionaryValue* dict) override;
+
// WebUIMessageHandler implementation.
void RegisterMessages() override;
@@ -103,6 +108,9 @@ class CoreOobeHandler : public BaseWebUIHandler,
void StopDemoModeDetection() override;
void UpdateKeyboardState() override;
+ // TabletModeClientObserver:
+ void OnTabletModeToggled(bool enabled) override;
+
// Handlers for JS WebUI messages.
void HandleEnableLargeCursor(bool enabled);
void HandleEnableHighContrast(bool enabled);
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater.h b/chromium/chrome/browser/ui/webui/help/version_updater.h
index bbf32c32a9f..2bfc0d51f94 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater.h
+++ b/chromium/chrome/browser/ui/webui/help/version_updater.h
@@ -48,7 +48,7 @@ class VersionUpdater {
// types.
#if defined(OS_CHROMEOS)
typedef base::Callback<void(const std::string&)> ChannelCallback;
- typedef base::Callback<void(update_engine::EndOfLifeStatus status)>
+ typedef base::OnceCallback<void(update_engine::EndOfLifeStatus status)>
EolStatusCallback;
#endif
@@ -91,7 +91,7 @@ class VersionUpdater {
bool is_powerwash_allowed) = 0;
virtual void GetChannel(bool get_current_channel,
const ChannelCallback& callback) = 0;
- virtual void GetEolStatus(const EolStatusCallback& callback) = 0;
+ virtual void GetEolStatus(EolStatusCallback callback) = 0;
// Sets a one time permission on a certain update in Update Engine.
// - update_version: the Chrome OS version we want to update to.
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc
index 6f1d85c8592..9a61c4f79d7 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc
@@ -243,19 +243,20 @@ void VersionUpdaterCros::OnGetChannel(const ChannelCallback& cb,
cb.Run(current_channel);
}
-void VersionUpdaterCros::GetEolStatus(const EolStatusCallback& cb) {
+void VersionUpdaterCros::GetEolStatus(EolStatusCallback cb) {
UpdateEngineClient* update_engine_client =
DBusThreadManager::Get()->GetUpdateEngineClient();
// Request the Eol Status. Bind to a weak_ptr bound method rather than passing
// |cb| directly so that |cb| does not outlive |this|.
- update_engine_client->GetEolStatus(base::Bind(
- &VersionUpdaterCros::OnGetEolStatus, weak_ptr_factory_.GetWeakPtr(), cb));
+ update_engine_client->GetEolStatus(
+ base::BindOnce(&VersionUpdaterCros::OnGetEolStatus,
+ weak_ptr_factory_.GetWeakPtr(), std::move(cb)));
}
-void VersionUpdaterCros::OnGetEolStatus(const EolStatusCallback& cb,
+void VersionUpdaterCros::OnGetEolStatus(EolStatusCallback cb,
update_engine::EndOfLifeStatus status) {
- cb.Run(status);
+ std::move(cb).Run(status);
}
VersionUpdaterCros::VersionUpdaterCros(content::WebContents* web_contents)
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h
index 7defbfa5492..ec6ea7da17e 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h
@@ -33,7 +33,7 @@ class VersionUpdaterCros : public VersionUpdater,
// Gets the last update status, without triggering a new check or download.
void GetUpdateStatus(const StatusCallback& callback);
- void GetEolStatus(const EolStatusCallback& callback) override;
+ void GetEolStatus(EolStatusCallback callback) override;
protected:
friend class VersionUpdater;
@@ -58,7 +58,7 @@ class VersionUpdaterCros : public VersionUpdater,
const std::string& current_channel);
// Callback from UpdateEngineClient::GetEolStatus().
- void OnGetEolStatus(const EolStatusCallback& cb,
+ void OnGetEolStatus(EolStatusCallback cb,
update_engine::EndOfLifeStatus status);
// BrowserContext in which the class was instantiated.
diff --git a/chromium/chrome/browser/ui/webui/print_preview/printer_capabilities.cc b/chromium/chrome/browser/ui/webui/print_preview/printer_capabilities.cc
index 6205ef5ca36..ffef1099d74 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/printer_capabilities.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/printer_capabilities.cc
@@ -309,7 +309,7 @@ void StartLocalPrint(const std::string& ticket_json,
dialog_controller ? dialog_controller->GetInitiator(preview_web_contents)
: nullptr;
PrintViewManager* print_view_manager =
- PrintViewManager::FromWebContents(initiator);
+ initiator ? PrintViewManager::FromWebContents(initiator) : nullptr;
if (!print_view_manager) {
std::move(callback).Run(base::Value("Initiator closed"));
return;
diff --git a/chromium/chrome/browser/ui/webui/settings/about_handler.cc b/chromium/chrome/browser/ui/webui/settings/about_handler.cc
index 1920f85c03a..11da4972a25 100644
--- a/chromium/chrome/browser/ui/webui/settings/about_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/about_handler.cc
@@ -335,6 +335,10 @@ AboutHandler* AboutHandler::Create(content::WebUIDataSource* html_source,
html_source->AddString("aboutUserAgent", GetUserAgent());
html_source->AddString("aboutJsEngineVersion", V8_VERSION_STRING);
html_source->AddString("aboutBlinkVersion", content::GetWebKitVersion());
+ html_source->AddString("endOfLifeMessage",
+ l10n_util::GetStringUTF16(IDS_EOL_NOTIFICATION_EOL));
+ html_source->AddString("endOfLifeLearnMoreURL",
+ base::ASCIIToUTF16(chrome::kEolNotificationURL));
#endif
return new AboutHandler();
@@ -378,6 +382,10 @@ void AboutHandler::RegisterMessages() {
"refreshTPMFirmwareUpdateStatus",
base::Bind(&AboutHandler::HandleRefreshTPMFirmwareUpdateStatus,
base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "getHasEndOfLife",
+ base::BindRepeating(&AboutHandler::HandleGetHasEndOfLife,
+ base::Unretained(this)));
#endif
#if defined(OS_MACOSX)
web_ui()->RegisterMessageCallback(
@@ -602,6 +610,25 @@ void AboutHandler::RefreshTPMFirmwareUpdateStatus(bool update_available) {
event->SetBoolean("updateAvailable", update_available);
FireWebUIListener("tpm-firmware-update-status-changed", *event);
}
+
+void AboutHandler::HandleGetHasEndOfLife(const base::ListValue* args) {
+ CHECK_EQ(1U, args->GetSize());
+ std::string callback_id;
+ CHECK(args->GetString(0, &callback_id));
+ version_updater_->GetEolStatus(
+ base::BindOnce(&AboutHandler::OnGetEndOfLifeStatus,
+ weak_factory_.GetWeakPtr(), callback_id));
+}
+
+void AboutHandler::OnGetEndOfLifeStatus(std::string callback_id,
+ update_engine::EndOfLifeStatus status) {
+ // Check for EndOfLifeStatus::kEol only because
+ // EndOfLifeStatus::kSecurityOnly state is no longer supported.
+ ResolveJavascriptCallback(
+ base::Value(callback_id),
+ base::Value(status == update_engine::EndOfLifeStatus::kEol));
+}
+
#endif // defined(OS_CHROMEOS)
void AboutHandler::RequestUpdate() {
diff --git a/chromium/chrome/browser/ui/webui/settings/about_handler.h b/chromium/chrome/browser/ui/webui/settings/about_handler.h
index 3127e9740f8..0e47e2580e1 100644
--- a/chromium/chrome/browser/ui/webui/settings/about_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/about_handler.h
@@ -147,6 +147,16 @@ class AboutHandler : public settings::SettingsPageUIHandler,
void OnRegulatoryLabelTextRead(std::string callback_id,
const base::FilePath& label_dir_path,
const std::string& text);
+
+ // Retrieves device end of life status.
+ // Will asynchronously resolve the provided callback with a boolean
+ // indicating whether the device has reached end-of-life status (will no
+ // longer receive updates).
+ void HandleGetHasEndOfLife(const base::ListValue* args);
+
+ // Callbacks for version_updater_->GetEolStatus calls.
+ void OnGetEndOfLifeStatus(std::string callback_id,
+ update_engine::EndOfLifeStatus status);
#endif
// Specialized instance of the VersionUpdater used to update the browser.
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
index 6b171c720f1..a1962a59807 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
@@ -376,10 +376,41 @@ void DiceTurnSyncOnHelper::SigninAndShowSyncConfirmationUI() {
signin_metrics::LogSigninReason(signin_reason_);
base::RecordAction(base::UserMetricsAction("Signin_Signin_Succeed"));
- // Show Sync confirmation.
browser_sync::ProfileSyncService* sync_service = GetProfileSyncService();
- if (sync_service)
+ if (sync_service) {
+ // Take a SyncSetupInProgressHandle, so that the UI code can use
+ // IsFirstSyncSetupInProgress() as a way to know if there is a signin in
+ // progress.
+ // TODO(https://crbug.com/811211): Remove this handle.
sync_blocker_ = sync_service->GetSetupInProgressHandle();
+ if (SyncStartupTracker::GetSyncServiceState(profile_) ==
+ SyncStartupTracker::SYNC_STARTUP_PENDING) {
+ // Wait until sync is initialized so that the confirmation UI can be
+ // aware of startup errors. This is needed to make sure that the sync
+ // confirmation dialog is shown only after the sync service had a chance
+ // to check whether sync was disabled by admin.
+ // See http://crbug.com/812546
+ sync_startup_tracker_.reset(new SyncStartupTracker(profile_, this));
+ return;
+ }
+ }
+
+ ShowSyncConfirmationUI();
+}
+
+void DiceTurnSyncOnHelper::SyncStartupCompleted() {
+ DCHECK(sync_startup_tracker_);
+ sync_startup_tracker_.reset();
+ ShowSyncConfirmationUI();
+}
+
+void DiceTurnSyncOnHelper::SyncStartupFailed() {
+ DCHECK(sync_startup_tracker_);
+ sync_startup_tracker_.reset();
+ ShowSyncConfirmationUI();
+}
+
+void DiceTurnSyncOnHelper::ShowSyncConfirmationUI() {
scoped_login_ui_service_observer_.Add(
LoginUIServiceFactory::GetForProfile(profile_));
browser_ = EnsureBrowser(browser_, profile_);
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
index d1ef87b93fe..85ef34e80f9 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
@@ -10,6 +10,7 @@
#include "base/memory/weak_ptr.h"
#include "base/scoped_observer.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/sync/sync_startup_tracker.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/sync/profile_signin_confirmation_helper.h"
#include "chrome/browser/ui/webui/signin/login_ui_service.h"
@@ -33,7 +34,8 @@ class SyncSetupInProgressHandle;
// Handles details of signing the user in with SigninManager and turning on
// sync for an account that is already present in the token service.
class DiceTurnSyncOnHelper : public BrowserListObserver,
- public LoginUIService::Observer {
+ public LoginUIService::Observer,
+ public SyncStartupTracker::Observer {
public:
// Behavior when the signin is aborted (by an error or cancelled by the user).
enum class SigninAbortedMode {
@@ -52,6 +54,10 @@ class DiceTurnSyncOnHelper : public BrowserListObserver,
const std::string& account_id,
SigninAbortedMode signin_aborted_mode);
+ // SyncStartupTracker::Observer:
+ void SyncStartupCompleted() override;
+ void SyncStartupFailed() override;
+
private:
enum class ProfileMode {
// Attempts to sign the user in |profile_|. Note that if the account to be
@@ -121,6 +127,11 @@ class DiceTurnSyncOnHelper : public BrowserListObserver,
// UI.
void SigninAndShowSyncConfirmationUI();
+ // Displays the Sync confirmation UI.
+ // Note: If sync fails to start (e.g. sync is disabled by admin), the sync
+ // confirmation dialog will be updated accordingly.
+ void ShowSyncConfirmationUI();
+
// LoginUIService::Observer override. Deletes this object.
void OnSyncConfirmationUIClosed(
LoginUIService::SyncConfirmationUIClosedResult result) override;
@@ -156,6 +167,7 @@ class DiceTurnSyncOnHelper : public BrowserListObserver,
scoped_browser_list_observer_;
ScopedObserver<LoginUIService, LoginUIService::Observer>
scoped_login_ui_service_observer_;
+ std::unique_ptr<SyncStartupTracker> sync_startup_tracker_;
base::WeakPtrFactory<DiceTurnSyncOnHelper> weak_pointer_factory_;
DISALLOW_COPY_AND_ASSIGN(DiceTurnSyncOnHelper);
diff --git a/chromium/chrome/browser/ui/webui/welcome_win10_ui.cc b/chromium/chrome/browser/ui/webui/welcome_win10_ui.cc
index c1a27b163b3..ff736d62084 100644
--- a/chromium/chrome/browser/ui/webui/welcome_win10_ui.cc
+++ b/chromium/chrome/browser/ui/webui/welcome_win10_ui.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/welcome_win10_handler.h"
+#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/browser_resources.h"
@@ -87,8 +88,15 @@ WelcomeWin10UI::WelcomeWin10UI(content::WebUI* web_ui, const GURL& url)
content::WebUIDataSource* html_source =
content::WebUIDataSource::Create(url.host());
+ html_source->SetJsonPath("strings.js");
+
AddLocalizedStrings(html_source, is_first_run);
+ // Controls the accelerated default browser flow experiment.
+ html_source->AddBoolean("accelerated_flow_enabled",
+ base::FeatureList::IsEnabled(
+ features::kWin10AcceleratedDefaultBrowserFlow));
+
html_source->AddResourcePath("welcome_win10.css", IDR_WELCOME_WIN10_CSS);
html_source->AddResourcePath("welcome_win10.js", IDR_WELCOME_WIN10_JS);
html_source->AddResourcePath("default.webp", IDR_WELCOME_WIN10_DEFAULT_WEBP);