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 "extensions/browser/app_window/app_window.h" | 5 #include "extensions/browser/app_window/app_window.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 native_app_window_.reset( | 278 native_app_window_.reset( |
279 app_window_client->CreateNativeAppWindow(this, new_params)); | 279 app_window_client->CreateNativeAppWindow(this, new_params)); |
280 | 280 |
281 helper_.reset(new AppWebContentsHelper( | 281 helper_.reset(new AppWebContentsHelper( |
282 browser_context_, extension_id_, web_contents, app_delegate_.get())); | 282 browser_context_, extension_id_, web_contents, app_delegate_.get())); |
283 | 283 |
284 popup_manager_.reset( | 284 popup_manager_.reset( |
285 new web_modal::PopupManager(GetWebContentsModalDialogHost())); | 285 new web_modal::PopupManager(GetWebContentsModalDialogHost())); |
286 popup_manager_->RegisterWith(web_contents); | 286 popup_manager_->RegisterWith(web_contents); |
287 | 287 |
288 // Prevent the browser process from shutting down while this window exists. | |
289 app_window_client->IncrementKeepAliveCount(); | |
290 UpdateExtensionAppIcon(); | 288 UpdateExtensionAppIcon(); |
291 AppWindowRegistry::Get(browser_context_)->AddAppWindow(this); | 289 AppWindowRegistry::Get(browser_context_)->AddAppWindow(this); |
292 | 290 |
293 if (new_params.hidden) { | 291 if (new_params.hidden) { |
294 // Although the window starts hidden by default, calling Hide() here | 292 // Although the window starts hidden by default, calling Hide() here |
295 // notifies observers of the window being hidden. | 293 // notifies observers of the window being hidden. |
296 Hide(); | 294 Hide(); |
297 } else { | 295 } else { |
298 // Panels are not activated by default. | 296 // Panels are not activated by default. |
299 Show(window_type_is_panel() || !new_params.focused ? SHOW_INACTIVE | 297 Show(window_type_is_panel() || !new_params.focused ? SHOW_INACTIVE |
(...skipping 24 matching lines...) Expand all Loading... |
324 // that to happen, we need to define a size for the content, otherwise the | 322 // that to happen, we need to define a size for the content, otherwise the |
325 // layout will happen in a 0x0 area. | 323 // layout will happen in a 0x0 area. |
326 gfx::Insets frame_insets = native_app_window_->GetFrameInsets(); | 324 gfx::Insets frame_insets = native_app_window_->GetFrameInsets(); |
327 gfx::Rect initial_bounds = new_params.GetInitialWindowBounds(frame_insets); | 325 gfx::Rect initial_bounds = new_params.GetInitialWindowBounds(frame_insets); |
328 initial_bounds.Inset(frame_insets); | 326 initial_bounds.Inset(frame_insets); |
329 app_delegate_->ResizeWebContents(web_contents, initial_bounds.size()); | 327 app_delegate_->ResizeWebContents(web_contents, initial_bounds.size()); |
330 } | 328 } |
331 } | 329 } |
332 | 330 |
333 AppWindow::~AppWindow() { | 331 AppWindow::~AppWindow() { |
334 // Unregister now to prevent getting notified if we're the last window open. | |
335 app_delegate_->SetTerminatingCallback(base::Closure()); | |
336 | |
337 ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); | 332 ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); |
338 | |
339 // Remove shutdown prevention. | |
340 AppWindowClient::Get()->DecrementKeepAliveCount(); | |
341 } | 333 } |
342 | 334 |
343 void AppWindow::RequestMediaAccessPermission( | 335 void AppWindow::RequestMediaAccessPermission( |
344 content::WebContents* web_contents, | 336 content::WebContents* web_contents, |
345 const content::MediaStreamRequest& request, | 337 const content::MediaStreamRequest& request, |
346 const content::MediaResponseCallback& callback) { | 338 const content::MediaResponseCallback& callback) { |
347 DCHECK_EQ(AppWindow::web_contents(), web_contents); | 339 DCHECK_EQ(AppWindow::web_contents(), web_contents); |
348 helper_->RequestMediaAccessPermission(request, callback); | 340 helper_->RequestMediaAccessPermission(request, callback); |
349 } | 341 } |
350 | 342 |
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 region.bounds.x(), | 1064 region.bounds.x(), |
1073 region.bounds.y(), | 1065 region.bounds.y(), |
1074 region.bounds.right(), | 1066 region.bounds.right(), |
1075 region.bounds.bottom(), | 1067 region.bounds.bottom(), |
1076 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); | 1068 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); |
1077 } | 1069 } |
1078 return sk_region; | 1070 return sk_region; |
1079 } | 1071 } |
1080 | 1072 |
1081 } // namespace extensions | 1073 } // namespace extensions |
OLD | NEW |