diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-03-08 13:07:32 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-03-08 13:40:10 +0000 |
commit | 818d9aed569afd192f6d4f6d9b28b72912df8b93 (patch) | |
tree | fa30cbdffa3e8fdc09dbbe37ffc0a721b40fced1 /chromium/chrome/browser/ui | |
parent | 66a2147d838e293f4a5db7711c8eba4e6faaaf0f (diff) | |
download | qtwebengine-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')
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); |