Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(922)

Unified Diff: chrome/browser/chromeos/login/ui/webui_login_view.cc

Issue 2610373002: cros: Only preload the lock screen; do not reuse it. (Closed)
Patch Set: Address comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/ui/webui_login_view.cc
diff --git a/chrome/browser/chromeos/login/ui/webui_login_view.cc b/chrome/browser/chromeos/login/ui/webui_login_view.cc
index 3cc07a5321bd0d417f86eee2aed56a3c4c6903ce..54ca8d97d32d29c5bc9f45dd6ad4612557fdcd6a 100644
--- a/chrome/browser/chromeos/login/ui/webui_login_view.cc
+++ b/chrome/browser/chromeos/login/ui/webui_login_view.cc
@@ -21,12 +21,11 @@
#include "chrome/browser/chromeos/accessibility/accessibility_util.h"
#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
#include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
+#include "chrome/browser/chromeos/login/ui/preloaded_web_view.h"
+#include "chrome/browser/chromeos/login/ui/preloaded_web_view_factory.h"
#include "chrome/browser/chromeos/login/ui/proxy_settings_dialog.h"
-#include "chrome/browser/chromeos/login/ui/shared_web_view.h"
-#include "chrome/browser/chromeos/login/ui/shared_web_view_factory.h"
#include "chrome/browser/chromeos/login/ui/web_contents_forced_title.h"
#include "chrome/browser/chromeos/login/ui/web_contents_set_background_color.h"
-#include "chrome/browser/chromeos/login/ui/web_view_handle.h"
#include "chrome/browser/chromeos/login/ui/webui_login_display.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
@@ -258,10 +257,6 @@ WebUILoginView::~WebUILoginView() {
NOTIMPLEMENTED();
}
- // If the WebView is going to be reused, make sure we call teardown.
- if (!webui_login_->HasOneRef())
- GetWebUI()->CallJavascriptFunctionUnsafe("cr.ui.Oobe.teardown");
-
// Clear any delegates we have set on the WebView.
WebContents* web_contents = web_view()->GetWebContents();
WebContentsModalDialogManager::FromWebContents(web_contents)
@@ -304,13 +299,18 @@ void WebUILoginView::InitializeWebView(views::WebView* web_view,
void WebUILoginView::Init() {
Profile* signin_profile = ProfileHelper::GetSigninProfile();
- if (!settings_.preloaded_url.is_empty()) {
- SharedWebView* shared_web_view =
- SharedWebViewFactory::GetForProfile(signin_profile);
- is_reusing_webview_ =
- shared_web_view->Get(settings_.preloaded_url, &webui_login_);
- } else {
- webui_login_ = new WebViewHandle(signin_profile);
+ if (settings_.check_for_preload) {
+ PreloadedWebView* preloaded_web_view =
+ PreloadedWebViewFactory::GetForProfile(signin_profile);
+ // webui_login_ may still be null after this call if there is no preloaded
+ // instance.
+ webui_login_ = preloaded_web_view->TryTake();
+ is_reusing_webview_ = true;
+ }
+
+ if (!webui_login_) {
+ webui_login_ = base::MakeUnique<views::WebView>(signin_profile);
+ webui_login_->set_owned_by_client();
is_reusing_webview_ = false;
}
@@ -392,12 +392,7 @@ gfx::NativeWindow WebUILoginView::GetNativeWindow() const {
}
void WebUILoginView::LoadURL(const GURL& url) {
- // If a preloaded_url is provided then |url| must match it.
- DCHECK(settings_.preloaded_url.is_empty() || url == settings_.preloaded_url);
-
- if (is_reusing_webview_ && !settings_.preloaded_url.is_empty())
- GetWebUI()->CallJavascriptFunctionUnsafe("cr.ui.Oobe.reload");
- else
+ if (!is_reusing_webview_)
web_view()->LoadInitialURL(url);
web_view()->RequestFocus();
@@ -526,7 +521,7 @@ void WebUILoginView::Observe(int type,
}
views::WebView* WebUILoginView::web_view() {
- return webui_login_->web_view();
+ return webui_login_.get();
}
// WebUILoginView private: -----------------------------------------------------

Powered by Google App Engine
This is Rietveld 408576698