| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/tabs/windows_event_router.h" | 5 #include "chrome/browser/extensions/api/tabs/windows_event_router.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 bool cant_cross_incognito = new_active_context && | 110 bool cant_cross_incognito = new_active_context && |
| 111 new_active_context != context && | 111 new_active_context != context && |
| 112 !util::CanCrossIncognito(extension, context); | 112 !util::CanCrossIncognito(extension, context); |
| 113 // If the window is not visible by the listener, we also need to | 113 // If the window is not visible by the listener, we also need to |
| 114 // clear out the window id from the event. | 114 // clear out the window id from the event. |
| 115 bool visible_to_listener = ControllerVisibleToListener( | 115 bool visible_to_listener = ControllerVisibleToListener( |
| 116 window_controller, extension, listener_filter); | 116 window_controller, extension, listener_filter); |
| 117 | 117 |
| 118 if (cant_cross_incognito || !visible_to_listener) { | 118 if (cant_cross_incognito || !visible_to_listener) { |
| 119 event->event_args->Clear(); | 119 event->event_args->Clear(); |
| 120 event->event_args->Append( | 120 event->event_args->AppendInteger(extension_misc::kUnknownWindowId); |
| 121 new base::FundamentalValue(extension_misc::kUnknownWindowId)); | |
| 122 } else { | 121 } else { |
| 123 event->event_args->Clear(); | 122 event->event_args->Clear(); |
| 124 event->event_args->Append(new base::FundamentalValue(window_id)); | 123 event->event_args->AppendInteger(window_id); |
| 125 } | 124 } |
| 126 return true; | 125 return true; |
| 127 } | 126 } |
| 128 | 127 |
| 129 } // namespace | 128 } // namespace |
| 130 | 129 |
| 131 WindowsEventRouter::WindowsEventRouter(Profile* profile) | 130 WindowsEventRouter::WindowsEventRouter(Profile* profile) |
| 132 : profile_(profile), | 131 : profile_(profile), |
| 133 focused_profile_(nullptr), | 132 focused_profile_(nullptr), |
| 134 focused_window_id_(extension_misc::kUnknownWindowId), | 133 focused_window_id_(extension_misc::kUnknownWindowId), |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 | 202 |
| 204 void WindowsEventRouter::OnWindowControllerRemoved( | 203 void WindowsEventRouter::OnWindowControllerRemoved( |
| 205 WindowController* window_controller) { | 204 WindowController* window_controller) { |
| 206 if (!HasEventListener(windows::OnRemoved::kEventName)) | 205 if (!HasEventListener(windows::OnRemoved::kEventName)) |
| 207 return; | 206 return; |
| 208 if (!profile_->IsSameProfile(window_controller->profile())) | 207 if (!profile_->IsSameProfile(window_controller->profile())) |
| 209 return; | 208 return; |
| 210 | 209 |
| 211 int window_id = window_controller->GetWindowId(); | 210 int window_id = window_controller->GetWindowId(); |
| 212 std::unique_ptr<base::ListValue> args(new base::ListValue()); | 211 std::unique_ptr<base::ListValue> args(new base::ListValue()); |
| 213 args->Append(new base::FundamentalValue(window_id)); | 212 args->AppendInteger(window_id); |
| 214 DispatchEvent(events::WINDOWS_ON_REMOVED, windows::OnRemoved::kEventName, | 213 DispatchEvent(events::WINDOWS_ON_REMOVED, windows::OnRemoved::kEventName, |
| 215 window_controller, std::move(args)); | 214 window_controller, std::move(args)); |
| 216 } | 215 } |
| 217 | 216 |
| 218 #if !defined(OS_MACOSX) | 217 #if !defined(OS_MACOSX) |
| 219 void WindowsEventRouter::OnNativeFocusChanged(gfx::NativeView focused_now) { | 218 void WindowsEventRouter::OnNativeFocusChanged(gfx::NativeView focused_now) { |
| 220 if (!focused_now) | 219 if (!focused_now) |
| 221 OnActiveWindowChanged(nullptr); | 220 OnActiveWindowChanged(nullptr); |
| 222 } | 221 } |
| 223 #endif | 222 #endif |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 return EventRouter::Get(profile_)->HasEventListener(event_name); | 278 return EventRouter::Get(profile_)->HasEventListener(event_name); |
| 280 } | 279 } |
| 281 | 280 |
| 282 void WindowsEventRouter::AddAppWindow(extensions::AppWindow* app_window) { | 281 void WindowsEventRouter::AddAppWindow(extensions::AppWindow* app_window) { |
| 283 std::unique_ptr<AppWindowController> controller(new AppWindowController( | 282 std::unique_ptr<AppWindowController> controller(new AppWindowController( |
| 284 app_window, base::WrapUnique(new AppBaseWindow(app_window)), profile_)); | 283 app_window, base::WrapUnique(new AppBaseWindow(app_window)), profile_)); |
| 285 app_windows_[app_window->session_id().id()] = std::move(controller); | 284 app_windows_[app_window->session_id().id()] = std::move(controller); |
| 286 } | 285 } |
| 287 | 286 |
| 288 } // namespace extensions | 287 } // namespace extensions |
| OLD | NEW |