OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "apps/app_window.h" | 5 #include "apps/app_window.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "apps/app_window_geometry_cache.h" | 9 #include "apps/app_window_geometry_cache.h" |
10 #include "apps/app_window_registry.h" | 10 #include "apps/app_window_registry.h" |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 const CreateParams& params) { | 257 const CreateParams& params) { |
258 // Initialize the render interface and web contents | 258 // Initialize the render interface and web contents |
259 app_window_contents_.reset(app_window_contents); | 259 app_window_contents_.reset(app_window_contents); |
260 app_window_contents_->Initialize(browser_context(), url); | 260 app_window_contents_->Initialize(browser_context(), url); |
261 WebContents* web_contents = app_window_contents_->GetWebContents(); | 261 WebContents* web_contents = app_window_contents_->GetWebContents(); |
262 if (CommandLine::ForCurrentProcess()->HasSwitch( | 262 if (CommandLine::ForCurrentProcess()->HasSwitch( |
263 switches::kEnableAppsShowOnFirstPaint)) { | 263 switches::kEnableAppsShowOnFirstPaint)) { |
264 content::WebContentsObserver::Observe(web_contents); | 264 content::WebContentsObserver::Observe(web_contents); |
265 } | 265 } |
266 delegate_->InitWebContents(web_contents); | 266 delegate_->InitWebContents(web_contents); |
| 267 |
267 WebContentsModalDialogManager::CreateForWebContents(web_contents); | 268 WebContentsModalDialogManager::CreateForWebContents(web_contents); |
268 // TODO(jamescook): Delegate out this creation. | 269 // TODO(jamescook): Delegate out this creation. |
269 extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( | 270 extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( |
270 web_contents); | 271 web_contents); |
271 | 272 |
272 web_contents->SetDelegate(this); | 273 web_contents->SetDelegate(this); |
273 WebContentsModalDialogManager::FromWebContents(web_contents) | 274 WebContentsModalDialogManager::FromWebContents(web_contents) |
274 ->SetDelegate(this); | 275 ->SetDelegate(this); |
275 extensions::SetViewType(web_contents, extensions::VIEW_TYPE_APP_WINDOW); | 276 extensions::SetViewType(web_contents, extensions::VIEW_TYPE_APP_WINDOW); |
276 | 277 |
277 // Initialize the window | 278 // Initialize the window |
278 CreateParams new_params = LoadDefaults(params); | 279 CreateParams new_params = LoadDefaults(params); |
279 window_type_ = new_params.window_type; | 280 window_type_ = new_params.window_type; |
280 window_key_ = new_params.window_key; | 281 window_key_ = new_params.window_key; |
281 | 282 |
282 // Windows cannot be always-on-top in fullscreen mode for security reasons. | 283 // Windows cannot be always-on-top in fullscreen mode for security reasons. |
283 cached_always_on_top_ = new_params.always_on_top; | 284 cached_always_on_top_ = new_params.always_on_top; |
284 if (new_params.state == ui::SHOW_STATE_FULLSCREEN) | 285 if (new_params.state == ui::SHOW_STATE_FULLSCREEN) |
285 new_params.always_on_top = false; | 286 new_params.always_on_top = false; |
286 | 287 |
287 native_app_window_.reset(delegate_->CreateNativeAppWindow(this, new_params)); | 288 native_app_window_.reset(delegate_->CreateNativeAppWindow(this, new_params)); |
288 | 289 |
| 290 popup_manager_.reset( |
| 291 new web_modal::PopupManager(GetWebContentsModalDialogHost())); |
| 292 popup_manager_->RegisterWith(web_contents); |
| 293 |
289 // Prevent the browser process from shutting down while this window exists. | 294 // Prevent the browser process from shutting down while this window exists. |
290 AppsClient::Get()->IncrementKeepAliveCount(); | 295 AppsClient::Get()->IncrementKeepAliveCount(); |
291 UpdateExtensionAppIcon(); | 296 UpdateExtensionAppIcon(); |
292 AppWindowRegistry::Get(browser_context_)->AddAppWindow(this); | 297 AppWindowRegistry::Get(browser_context_)->AddAppWindow(this); |
293 | 298 |
294 if (new_params.hidden) { | 299 if (new_params.hidden) { |
295 // Although the window starts hidden by default, calling Hide() here | 300 // Although the window starts hidden by default, calling Hide() here |
296 // notifies observers of the window being hidden. | 301 // notifies observers of the window being hidden. |
297 Hide(); | 302 Hide(); |
298 } else { | 303 } else { |
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1142 region.bounds.x(), | 1147 region.bounds.x(), |
1143 region.bounds.y(), | 1148 region.bounds.y(), |
1144 region.bounds.right(), | 1149 region.bounds.right(), |
1145 region.bounds.bottom(), | 1150 region.bounds.bottom(), |
1146 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); | 1151 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); |
1147 } | 1152 } |
1148 return sk_region; | 1153 return sk_region; |
1149 } | 1154 } |
1150 | 1155 |
1151 } // namespace apps | 1156 } // namespace apps |
OLD | NEW |