OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
9 * rights reserved. | 9 * rights reserved. |
10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 (securityContext()->isSandboxed(SandboxPopups) || | 278 (securityContext()->isSandboxed(SandboxPopups) || |
279 targetFrame.client()->opener() != this)) { | 279 targetFrame.client()->opener() != this)) { |
280 reason = | 280 reason = |
281 "The frame attempting navigation is sandboxed and is trying " | 281 "The frame attempting navigation is sandboxed and is trying " |
282 "to navigate a popup, but is not the popup's opener and is not " | 282 "to navigate a popup, but is not the popup's opener and is not " |
283 "set to propagate sandboxing to popups."; | 283 "set to propagate sandboxing to popups."; |
284 return false; | 284 return false; |
285 } | 285 } |
286 | 286 |
287 // Top navigation is forbidden unless opted-in. allow-top-navigation or | 287 // Top navigation is forbidden unless opted-in. allow-top-navigation or |
288 // allow-top-navigation-with-user-activation will also skips origin checks. | 288 // allow-top-navigation-by-user-activation will also skips origin checks. |
289 if (targetFrame == tree().top()) { | 289 if (targetFrame == tree().top()) { |
290 if (securityContext()->isSandboxed(SandboxTopNavigation) && | 290 if (securityContext()->isSandboxed(SandboxTopNavigation) && |
291 securityContext()->isSandboxed( | 291 securityContext()->isSandboxed( |
292 SandboxTopNavigationWithUserActivation)) { | 292 SandboxTopNavigationByUserActivation)) { |
293 // TODO(binlu): To add "or 'allow-top-navigation-with-user-activation'" | 293 // TODO(binlu): To add "or 'allow-top-navigation-by-user-activation'" |
294 // to the reason below, once the new flag is shipped. | 294 // to the reason below, once the new flag is shipped. |
295 reason = | 295 reason = |
296 "The frame attempting navigation of the top-level window is " | 296 "The frame attempting navigation of the top-level window is " |
297 "sandboxed, but the 'allow-top-navigation' flag is not set."; | 297 "sandboxed, but the 'allow-top-navigation' flag is not set."; |
298 return false; | 298 return false; |
299 } | 299 } |
300 if (securityContext()->isSandboxed(SandboxTopNavigation) && | 300 if (securityContext()->isSandboxed(SandboxTopNavigation) && |
301 !securityContext()->isSandboxed( | 301 !securityContext()->isSandboxed( |
302 SandboxTopNavigationWithUserActivation) && | 302 SandboxTopNavigationByUserActivation) && |
303 !UserGestureIndicator::processingUserGesture()) { | 303 !UserGestureIndicator::processingUserGesture()) { |
304 // With only 'allow-top-navigation-with-user-activation' (but not | 304 // With only 'allow-top-navigation-by-user-activation' (but not |
305 // 'allow-top-navigation'), top navigation requires a user gesture. | 305 // 'allow-top-navigation'), top navigation requires a user gesture. |
306 reason = | 306 reason = |
307 "The frame attempting navigation of the top-level window is " | 307 "The frame attempting navigation of the top-level window is " |
308 "sandboxed with the 'allow-top-navigation-with-user-activation' " | 308 "sandboxed with the 'allow-top-navigation-by-user-activation' " |
309 "flag, but has no user activation (aka gesture). See " | 309 "flag, but has no user activation (aka gesture). See " |
310 "https://www.chromestatus.com/feature/5629582019395584."; | 310 "https://www.chromestatus.com/feature/5629582019395584."; |
311 return false; | 311 return false; |
312 } | 312 } |
313 return true; | 313 return true; |
314 } | 314 } |
315 } | 315 } |
316 | 316 |
317 ASSERT(securityContext()->getSecurityOrigin()); | 317 ASSERT(securityContext()->getSecurityOrigin()); |
318 SecurityOrigin& origin = *securityContext()->getSecurityOrigin(); | 318 SecurityOrigin& origin = *securityContext()->getSecurityOrigin(); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 | 415 |
416 ASSERT(page()); | 416 ASSERT(page()); |
417 | 417 |
418 if (m_owner) | 418 if (m_owner) |
419 m_owner->setContentFrame(*this); | 419 m_owner->setContentFrame(*this); |
420 else | 420 else |
421 page()->setMainFrame(this); | 421 page()->setMainFrame(this); |
422 } | 422 } |
423 | 423 |
424 } // namespace blink | 424 } // namespace blink |
OLD | NEW |