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

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

Issue 10986092: Transparent apps support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 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/ui/views/extensions/native_app_window_views.cc
diff --git a/chrome/browser/ui/views/extensions/native_app_window_views.cc b/chrome/browser/ui/views/extensions/native_app_window_views.cc
index e84b7ac0321ffe19ba6e04e0eb563507d3576d9b..4a066f60ddd913d0c695dc34408558d3bd7eff6b 100644
--- a/chrome/browser/ui/views/extensions/native_app_window_views.cc
+++ b/chrome/browser/ui/views/extensions/native_app_window_views.cc
@@ -46,7 +46,9 @@ NativeAppWindowViews::NativeAppWindowViews(
web_view_(NULL),
window_(NULL),
is_fullscreen_(false),
- frameless_(create_params.frame == ShellWindow::FRAME_NONE) {
+ frameless_(create_params.frame == ShellWindow::FRAME_NONE),
+ transparent_background_(create_params.transparent_background) {
+ Observe(shell_window_->web_contents());
minimum_size_ = create_params.minimum_size;
maximum_size_ = create_params.maximum_size;
@@ -391,6 +393,23 @@ void NativeAppWindowViews::OnWidgetActivationChanged(views::Widget* widget,
shell_window_->OnNativeWindowChanged();
}
+// WebContentsObserver implementation.
+
+void NativeAppWindowViews::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);
+ }
+}
+
// views::View implementation.
void NativeAppWindowViews::Layout() {
« no previous file with comments | « chrome/browser/ui/views/extensions/native_app_window_views.h ('k') | chrome/common/extensions/api/app_window.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698