| Index: chrome/browser/ui/views/extensions/shell_window_views.cc
|
| diff --git a/chrome/browser/ui/views/extensions/shell_window_views.cc b/chrome/browser/ui/views/extensions/shell_window_views.cc
|
| index cadd16b9102eb652df7c30bb8d7e872938162c53..4ee7994b024112ed2727b5f3c3d2e7f5c066869a 100644
|
| --- a/chrome/browser/ui/views/extensions/shell_window_views.cc
|
| +++ b/chrome/browser/ui/views/extensions/shell_window_views.cc
|
| @@ -394,7 +394,9 @@ ShellWindowViews::ShellWindowViews(ShellWindow* shell_window,
|
| : shell_window_(shell_window),
|
| web_view_(NULL),
|
| is_fullscreen_(false),
|
| - frameless_(win_params.frame == ShellWindow::CreateParams::FRAME_NONE) {
|
| + frameless_(win_params.frame == ShellWindow::CreateParams::FRAME_NONE),
|
| + transparent_background_(win_params.transparent_background) {
|
| + Observe(shell_window_->web_contents());
|
| window_ = new views::Widget;
|
| views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
|
| params.delegate = this;
|
| @@ -690,6 +692,21 @@ void ShellWindowViews::OnWidgetMove() {
|
| shell_window_->SaveWindowPosition();
|
| }
|
|
|
| +void ShellWindowViews::RenderViewCreated(
|
| + content::RenderViewHost* render_view_host) {
|
| + if (transparent_background_) {
|
| + // 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::RenderWidgetHostView* view = render_view_host->GetView();
|
| + DCHECK(view);
|
| + view->SetBackground(background);
|
| + }
|
| +}
|
| +
|
| void ShellWindowViews::Layout() {
|
| DCHECK(web_view_);
|
| web_view_->SetBounds(0, 0, width(), height());
|
|
|