Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All |
| 7 * rights reserved. | 7 * rights reserved. |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
| 10 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 return static_cast<Fullscreen*>( | 205 return static_cast<Fullscreen*>( |
| 206 Supplement<Document>::from(document, supplementName())); | 206 Supplement<Document>::from(document, supplementName())); |
| 207 } | 207 } |
| 208 | 208 |
| 209 Element* Fullscreen::fullscreenElementFrom(Document& document) { | 209 Element* Fullscreen::fullscreenElementFrom(Document& document) { |
| 210 if (Fullscreen* found = fromIfExists(document)) | 210 if (Fullscreen* found = fromIfExists(document)) |
| 211 return found->fullscreenElement(); | 211 return found->fullscreenElement(); |
| 212 return nullptr; | 212 return nullptr; |
| 213 } | 213 } |
| 214 | 214 |
| 215 Element* Fullscreen::fullscreenElementForBindingFrom(TreeScope& scope) { | |
| 216 Element* element = fullscreenElementFrom(scope.document()); | |
| 217 if (!element || !RuntimeEnabledFeatures::fullscreenUnprefixedEnabled()) | |
| 218 return element; | |
| 219 | |
| 220 // TODO(kochi): Once V0 code is removed, we can use the same logic for | |
| 221 // Document and ShadowRoot. | |
| 222 if (!scope.rootNode().isShadowRoot()) { | |
| 223 // For Shadow DOM V0 compatibility: We allow returning an element in V0 | |
| 224 // shadow tree, even though it leaks the Shadow DOM. | |
| 225 if (element->isInV0ShadowTree()) { | |
| 226 UseCounter::count(scope.document(), | |
| 227 UseCounter::DocumentFullscreenElementInV0Shadow); | |
| 228 return element; | |
| 229 } | |
| 230 } else { | |
|
hayato
2016/10/26 03:15:56
else if
kochi
2016/10/26 04:52:12
Done.
| |
| 231 if (!toShadowRoot(scope).isV1()) | |
|
hayato
2016/10/26 03:15:56
Could we avoid toShadowRoot(treeScope)?
I am not c
kochi
2016/10/26 04:52:12
Done.
| |
| 232 return nullptr; | |
| 233 } | |
| 234 return scope.adjustedElement(*element); | |
| 235 } | |
| 236 | |
| 215 Element* Fullscreen::currentFullScreenElementFrom(Document& document) { | 237 Element* Fullscreen::currentFullScreenElementFrom(Document& document) { |
| 216 if (Fullscreen* found = fromIfExists(document)) | 238 if (Fullscreen* found = fromIfExists(document)) |
| 217 return found->currentFullScreenElement(); | 239 return found->currentFullScreenElement(); |
| 218 return nullptr; | 240 return nullptr; |
| 219 } | 241 } |
| 220 | 242 |
| 243 Element* Fullscreen::currentFullScreenElementForBindingFrom( | |
| 244 Document& document) { | |
| 245 Element* element = currentFullScreenElementFrom(document); | |
| 246 if (!element || !RuntimeEnabledFeatures::fullscreenUnprefixedEnabled()) | |
| 247 return element; | |
| 248 | |
| 249 // For Shadow DOM V0 compatibility: We allow returning an element in V0 shadow | |
| 250 // tree, even though it leaks the Shadow DOM. | |
| 251 if (element->isInV0ShadowTree()) { | |
| 252 UseCounter::count(document, | |
| 253 UseCounter::DocumentFullscreenElementInV0Shadow); | |
| 254 return element; | |
| 255 } | |
| 256 return document.adjustedElement(*element); | |
| 257 } | |
| 258 | |
| 221 Fullscreen::Fullscreen(Document& document) | 259 Fullscreen::Fullscreen(Document& document) |
| 222 : ContextLifecycleObserver(&document), | 260 : ContextLifecycleObserver(&document), |
| 223 m_fullScreenLayoutObject(nullptr), | 261 m_fullScreenLayoutObject(nullptr), |
| 224 m_eventQueueTimer(this, &Fullscreen::eventQueueTimerFired), | 262 m_eventQueueTimer(this, &Fullscreen::eventQueueTimerFired), |
| 225 m_forCrossProcessDescendant(false) { | 263 m_forCrossProcessDescendant(false) { |
| 226 document.setHasFullscreenSupplement(); | 264 document.setHasFullscreenSupplement(); |
| 227 } | 265 } |
| 228 | 266 |
| 229 Fullscreen::~Fullscreen() {} | 267 Fullscreen::~Fullscreen() {} |
| 230 | 268 |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 727 | 765 |
| 728 DEFINE_TRACE(Fullscreen) { | 766 DEFINE_TRACE(Fullscreen) { |
| 729 visitor->trace(m_currentFullScreenElement); | 767 visitor->trace(m_currentFullScreenElement); |
| 730 visitor->trace(m_fullscreenElementStack); | 768 visitor->trace(m_fullscreenElementStack); |
| 731 visitor->trace(m_eventQueue); | 769 visitor->trace(m_eventQueue); |
| 732 Supplement<Document>::trace(visitor); | 770 Supplement<Document>::trace(visitor); |
| 733 ContextLifecycleObserver::trace(visitor); | 771 ContextLifecycleObserver::trace(visitor); |
| 734 } | 772 } |
| 735 | 773 |
| 736 } // namespace blink | 774 } // namespace blink |
| OLD | NEW |