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

Unified Diff: chrome/browser/ui/views/extensions/shell_window_views.cc

Issue 10986092: Transparent apps support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix author email Created 8 years, 3 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/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 02199e94fabc0bbf46634c90493fd009ce41036c..970d99705a66cc8426f26e435c5eb9940f8a8e1b 100644
--- a/chrome/browser/ui/views/extensions/shell_window_views.cc
+++ b/chrome/browser/ui/views/extensions/shell_window_views.cc
@@ -319,7 +319,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;
@@ -605,6 +607,21 @@ bool ShellWindowViews::ShouldShowWindowTitle() const {
return false;
}
+void ShellWindowViews::RenderViewCreated(
+ content::RenderViewHost* render_view_host) {
+ if (transparent_background_) {
sky 2012/09/28 22:29:13 Does this result in flicker? Might it be possible
Bernie 2012/10/10 21:05:01 The window opens with a white background, then it
reveman 2012/10/11 17:25:58 We'll need to fix this. But I think it's OK to add
+ // 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());

Powered by Google App Engine
This is Rietveld 408576698