Index: chrome/browser/chromeos/login/webui_login_view.cc |
diff --git a/chrome/browser/chromeos/login/webui_login_view.cc b/chrome/browser/chromeos/login/webui_login_view.cc |
index cdff0ea83d3acc507251ecafdac05b4c96d70a2f..3480c7f8113e4780daaabdbf0a6b83c99bf5f730 100644 |
--- a/chrome/browser/chromeos/login/webui_login_view.cc |
+++ b/chrome/browser/chromeos/login/webui_login_view.cc |
@@ -8,11 +8,13 @@ |
#include "ash/system/tray/system_tray.h" |
#include "base/bind.h" |
#include "base/callback.h" |
+#include "base/command_line.h" |
#include "base/i18n/rtl.h" |
#include "base/utf_string_conversions.h" |
#include "base/values.h" |
#include "chrome/browser/chromeos/accessibility/accessibility_util.h" |
#include "chrome/browser/chromeos/cros/cros_library.h" |
+#include "chrome/browser/chromeos/login/base_login_display_host.h" |
#include "chrome/browser/chromeos/login/proxy_settings_dialog.h" |
#include "chrome/browser/chromeos/login/webui_login_display.h" |
#include "chrome/browser/profiles/profile_manager.h" |
@@ -21,11 +23,14 @@ |
#include "chrome/browser/ui/views/ash/chrome_shell_delegate.h" |
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
#include "chrome/common/chrome_notification_types.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/common/render_messages.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/session_manager_client.h" |
#include "content/public/browser/notification_service.h" |
+#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/render_view_host_observer.h" |
+#include "content/public/browser/render_widget_host_view.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_ui.h" |
#include "ui/gfx/rect.h" |
@@ -203,6 +208,22 @@ void WebUILoginView::UpdateWindowType() { |
void WebUILoginView::LoadURL(const GURL & url) { |
webui_login_->LoadInitialURL(url); |
webui_login_->RequestFocus(); |
+ |
+ CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ // Only enable transparency on sign in screen, not on lock screen. |
+ if (BaseLoginDisplayHost::default_host() && |
+ command_line->HasSwitch(switches::kEnableNewOobe)) { |
+ // TODO(nkostylev): Use WebContentsObserver::RenderViewCreated to track |
+ // when RenderView is created. |
+ // Use a background with transparency to trigger transparency in Webkit. |
+ SkBitmap background; |
+ background.setConfig(SkBitmap::kARGB_8888_Config, 1, 1); |
+ background.allocPixels(); |
+ background.eraseARGB(0x00, 0x00, 0x00, 0x00); |
+ content::RenderViewHost* host = |
+ wrapper_->web_contents()->GetRenderViewHost(); |
+ host->GetView()->SetBackground(background); |
+ } |
} |
content::WebUI* WebUILoginView::GetWebUI() { |