| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 | 324 |
| 325 // User and app agree that we want a new window; let the app override the | 325 // User and app agree that we want a new window; let the app override the |
| 326 // decorations. | 326 // decorations. |
| 327 if (userPolicy == NavigationPolicyNewWindow && | 327 if (userPolicy == NavigationPolicyNewWindow && |
| 328 *policy == NavigationPolicyNewPopup) | 328 *policy == NavigationPolicyNewPopup) |
| 329 return; | 329 return; |
| 330 *policy = userPolicy; | 330 *policy = userPolicy; |
| 331 } | 331 } |
| 332 | 332 |
| 333 WebNavigationPolicy getNavigationPolicy(const WindowFeatures& features) { | 333 WebNavigationPolicy getNavigationPolicy(const WindowFeatures& features) { |
| 334 // If our default configuration was modified by a script or wasn't | 334 // If the window features didn't enable the toolbar, or this window wasn't |
| 335 // created by a user gesture, then show as a popup. Else, let this | 335 // created by a user gesture, show as a popup instead of a new tab. |
| 336 // new window be opened as a toplevel window. | 336 // |
| 337 bool asPopup = !features.toolBarVisible || !features.statusBarVisible || | 337 // Note: this previously also checked that menubar, resizable, scrollbar, and |
| 338 !features.scrollbarsVisible || !features.menuBarVisible || | 338 // statusbar are enabled too. When no feature string is specified, these |
| 339 !features.resizable; | 339 // features default to enabled (and the window opens as a new tab). However, |
| 340 // when a feature string is specified, any *unspecified* features default to |
| 341 // disabled, often causing the window to open as a popup instead. |
| 342 // |
| 343 // As specifying menubar, resizable, scrollbar, and statusbar have no effect |
| 344 // on the UI, just ignore them and only consider whether or not the toolbar is |
| 345 // enabled, which matches Firefox's behavior. |
| 346 bool asPopup = !features.toolBarVisible; |
| 340 | 347 |
| 341 NavigationPolicy policy = NavigationPolicyNewForegroundTab; | 348 NavigationPolicy policy = NavigationPolicyNewForegroundTab; |
| 342 if (asPopup) | 349 if (asPopup) |
| 343 policy = NavigationPolicyNewPopup; | 350 policy = NavigationPolicyNewPopup; |
| 344 updatePolicyForEvent(WebViewImpl::currentInputEvent(), &policy); | 351 updatePolicyForEvent(WebViewImpl::currentInputEvent(), &policy); |
| 345 | 352 |
| 346 return static_cast<WebNavigationPolicy>(policy); | 353 return static_cast<WebNavigationPolicy>(policy); |
| 347 } | 354 } |
| 348 | 355 |
| 349 WebNavigationPolicy effectiveNavigationPolicy(NavigationPolicy navigationPolicy, | 356 WebNavigationPolicy effectiveNavigationPolicy(NavigationPolicy navigationPolicy, |
| (...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1223 PresentationController::provideTo(frame, client->presentationClient()); | 1230 PresentationController::provideTo(frame, client->presentationClient()); |
| 1224 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) { | 1231 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) { |
| 1225 provideAudioOutputDeviceClientTo(frame, | 1232 provideAudioOutputDeviceClientTo(frame, |
| 1226 new AudioOutputDeviceClientImpl(frame)); | 1233 new AudioOutputDeviceClientImpl(frame)); |
| 1227 } | 1234 } |
| 1228 if (RuntimeEnabledFeatures::installedAppEnabled()) | 1235 if (RuntimeEnabledFeatures::installedAppEnabled()) |
| 1229 InstalledAppController::provideTo(frame, client->relatedAppsFetcher()); | 1236 InstalledAppController::provideTo(frame, client->relatedAppsFetcher()); |
| 1230 } | 1237 } |
| 1231 | 1238 |
| 1232 } // namespace blink | 1239 } // namespace blink |
| OLD | NEW |