| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 #include "extensions/browser/suggest_permission_util.h" | 46 #include "extensions/browser/suggest_permission_util.h" |
| 47 #include "extensions/browser/view_type_utils.h" | 47 #include "extensions/browser/view_type_utils.h" |
| 48 #include "extensions/common/draggable_region.h" | 48 #include "extensions/common/draggable_region.h" |
| 49 #include "extensions/common/extension.h" | 49 #include "extensions/common/extension.h" |
| 50 #include "extensions/common/manifest_handlers/icons_handler.h" | 50 #include "extensions/common/manifest_handlers/icons_handler.h" |
| 51 #include "extensions/common/permissions/permissions_data.h" | 51 #include "extensions/common/permissions/permissions_data.h" |
| 52 #include "extensions/common/switches.h" | 52 #include "extensions/common/switches.h" |
| 53 #include "extensions/grit/extensions_browser_resources.h" | 53 #include "extensions/grit/extensions_browser_resources.h" |
| 54 #include "third_party/skia/include/core/SkRegion.h" | 54 #include "third_party/skia/include/core/SkRegion.h" |
| 55 #include "ui/base/resource/resource_bundle.h" | 55 #include "ui/base/resource/resource_bundle.h" |
| 56 #include "ui/display/screen.h" |
| 56 #include "ui/events/keycodes/keyboard_codes.h" | 57 #include "ui/events/keycodes/keyboard_codes.h" |
| 57 #include "ui/gfx/screen.h" | |
| 58 | 58 |
| 59 #if !defined(OS_MACOSX) | 59 #if !defined(OS_MACOSX) |
| 60 #include "components/prefs/pref_service.h" | 60 #include "components/prefs/pref_service.h" |
| 61 #include "extensions/browser/pref_names.h" | 61 #include "extensions/browser/pref_names.h" |
| 62 #endif | 62 #endif |
| 63 | 63 |
| 64 using content::BrowserContext; | 64 using content::BrowserContext; |
| 65 using content::ConsoleMessageLevel; | 65 using content::ConsoleMessageLevel; |
| 66 using content::WebContents; | 66 using content::WebContents; |
| 67 using web_modal::WebContentsModalDialogHost; | 67 using web_modal::WebContentsModalDialogHost; |
| (...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 } | 850 } |
| 851 | 851 |
| 852 void AppWindow::SetNativeWindowFullscreen() { | 852 void AppWindow::SetNativeWindowFullscreen() { |
| 853 native_app_window_->SetFullscreen(fullscreen_types_); | 853 native_app_window_->SetFullscreen(fullscreen_types_); |
| 854 | 854 |
| 855 RestoreAlwaysOnTop(); | 855 RestoreAlwaysOnTop(); |
| 856 } | 856 } |
| 857 | 857 |
| 858 bool AppWindow::IntersectsWithTaskbar() const { | 858 bool AppWindow::IntersectsWithTaskbar() const { |
| 859 #if defined(OS_WIN) | 859 #if defined(OS_WIN) |
| 860 gfx::Screen* screen = gfx::Screen::GetScreen(); | 860 display::Screen* screen = display::Screen::GetScreen(); |
| 861 gfx::Rect window_bounds = native_app_window_->GetRestoredBounds(); | 861 gfx::Rect window_bounds = native_app_window_->GetRestoredBounds(); |
| 862 std::vector<gfx::Display> displays = screen->GetAllDisplays(); | 862 std::vector<display::Display> displays = screen->GetAllDisplays(); |
| 863 | 863 |
| 864 for (std::vector<gfx::Display>::const_iterator it = displays.begin(); | 864 for (std::vector<display::Display>::const_iterator it = displays.begin(); |
| 865 it != displays.end(); | 865 it != displays.end(); ++it) { |
| 866 ++it) { | |
| 867 gfx::Rect taskbar_bounds = it->bounds(); | 866 gfx::Rect taskbar_bounds = it->bounds(); |
| 868 taskbar_bounds.Subtract(it->work_area()); | 867 taskbar_bounds.Subtract(it->work_area()); |
| 869 if (taskbar_bounds.IsEmpty()) | 868 if (taskbar_bounds.IsEmpty()) |
| 870 continue; | 869 continue; |
| 871 | 870 |
| 872 if (window_bounds.Intersects(taskbar_bounds)) | 871 if (window_bounds.Intersects(taskbar_bounds)) |
| 873 return true; | 872 return true; |
| 874 } | 873 } |
| 875 #endif | 874 #endif |
| 876 | 875 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1011 void AppWindow::SaveWindowPosition() { | 1010 void AppWindow::SaveWindowPosition() { |
| 1012 DCHECK(native_app_window_); | 1011 DCHECK(native_app_window_); |
| 1013 if (window_key_.empty()) | 1012 if (window_key_.empty()) |
| 1014 return; | 1013 return; |
| 1015 | 1014 |
| 1016 AppWindowGeometryCache* cache = | 1015 AppWindowGeometryCache* cache = |
| 1017 AppWindowGeometryCache::Get(browser_context()); | 1016 AppWindowGeometryCache::Get(browser_context()); |
| 1018 | 1017 |
| 1019 gfx::Rect bounds = native_app_window_->GetRestoredBounds(); | 1018 gfx::Rect bounds = native_app_window_->GetRestoredBounds(); |
| 1020 gfx::Rect screen_bounds = | 1019 gfx::Rect screen_bounds = |
| 1021 gfx::Screen::GetScreen()->GetDisplayMatching(bounds).work_area(); | 1020 display::Screen::GetScreen()->GetDisplayMatching(bounds).work_area(); |
| 1022 ui::WindowShowState window_state = native_app_window_->GetRestoredState(); | 1021 ui::WindowShowState window_state = native_app_window_->GetRestoredState(); |
| 1023 cache->SaveGeometry( | 1022 cache->SaveGeometry( |
| 1024 extension_id(), window_key_, bounds, screen_bounds, window_state); | 1023 extension_id(), window_key_, bounds, screen_bounds, window_state); |
| 1025 } | 1024 } |
| 1026 | 1025 |
| 1027 void AppWindow::AdjustBoundsToBeVisibleOnScreen( | 1026 void AppWindow::AdjustBoundsToBeVisibleOnScreen( |
| 1028 const gfx::Rect& cached_bounds, | 1027 const gfx::Rect& cached_bounds, |
| 1029 const gfx::Rect& cached_screen_bounds, | 1028 const gfx::Rect& cached_screen_bounds, |
| 1030 const gfx::Rect& current_screen_bounds, | 1029 const gfx::Rect& current_screen_bounds, |
| 1031 const gfx::Size& minimum_size, | 1030 const gfx::Size& minimum_size, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 gfx::Rect cached_bounds; | 1076 gfx::Rect cached_bounds; |
| 1078 gfx::Rect cached_screen_bounds; | 1077 gfx::Rect cached_screen_bounds; |
| 1079 ui::WindowShowState cached_state = ui::SHOW_STATE_DEFAULT; | 1078 ui::WindowShowState cached_state = ui::SHOW_STATE_DEFAULT; |
| 1080 if (cache->GetGeometry(extension_id(), | 1079 if (cache->GetGeometry(extension_id(), |
| 1081 params.window_key, | 1080 params.window_key, |
| 1082 &cached_bounds, | 1081 &cached_bounds, |
| 1083 &cached_screen_bounds, | 1082 &cached_screen_bounds, |
| 1084 &cached_state)) { | 1083 &cached_state)) { |
| 1085 // App window has cached screen bounds, make sure it fits on screen in | 1084 // App window has cached screen bounds, make sure it fits on screen in |
| 1086 // case the screen resolution changed. | 1085 // case the screen resolution changed. |
| 1087 gfx::Screen* screen = gfx::Screen::GetScreen(); | 1086 display::Screen* screen = display::Screen::GetScreen(); |
| 1088 gfx::Display display = screen->GetDisplayMatching(cached_bounds); | 1087 display::Display display = screen->GetDisplayMatching(cached_bounds); |
| 1089 gfx::Rect current_screen_bounds = display.work_area(); | 1088 gfx::Rect current_screen_bounds = display.work_area(); |
| 1090 SizeConstraints constraints(params.GetWindowMinimumSize(gfx::Insets()), | 1089 SizeConstraints constraints(params.GetWindowMinimumSize(gfx::Insets()), |
| 1091 params.GetWindowMaximumSize(gfx::Insets())); | 1090 params.GetWindowMaximumSize(gfx::Insets())); |
| 1092 AdjustBoundsToBeVisibleOnScreen(cached_bounds, | 1091 AdjustBoundsToBeVisibleOnScreen(cached_bounds, |
| 1093 cached_screen_bounds, | 1092 cached_screen_bounds, |
| 1094 current_screen_bounds, | 1093 current_screen_bounds, |
| 1095 constraints.GetMinimumSize(), | 1094 constraints.GetMinimumSize(), |
| 1096 ¶ms.window_spec.bounds); | 1095 ¶ms.window_spec.bounds); |
| 1097 params.state = cached_state; | 1096 params.state = cached_state; |
| 1098 | 1097 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1117 region.bounds.x(), | 1116 region.bounds.x(), |
| 1118 region.bounds.y(), | 1117 region.bounds.y(), |
| 1119 region.bounds.right(), | 1118 region.bounds.right(), |
| 1120 region.bounds.bottom(), | 1119 region.bounds.bottom(), |
| 1121 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); | 1120 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); |
| 1122 } | 1121 } |
| 1123 return sk_region; | 1122 return sk_region; |
| 1124 } | 1123 } |
| 1125 | 1124 |
| 1126 } // namespace extensions | 1125 } // namespace extensions |
| OLD | NEW |