OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 PageVisibilityState pageVisibilityState() const override; | 317 PageVisibilityState pageVisibilityState() const override; |
318 String autoplayExperimentMode() const override; | 318 String autoplayExperimentMode() const override; |
319 | 319 |
320 // Frame | 320 // Frame |
321 bool isCrossOrigin() const override | 321 bool isCrossOrigin() const override |
322 { | 322 { |
323 const Frame* frame = m_element->document().frame(); | 323 const Frame* frame = m_element->document().frame(); |
324 return frame && frame->isCrossOrigin(); | 324 return frame && frame->isCrossOrigin(); |
325 } | 325 } |
326 | 326 |
| 327 bool isAutoplayAllowedPerSettings() const override; |
| 328 |
327 // LayoutObject | 329 // LayoutObject |
328 void setRequestPositionUpdates(bool) override; | 330 void setRequestPositionUpdates(bool) override; |
329 IntRect absoluteBoundingBoxRect() const override; | 331 IntRect absoluteBoundingBoxRect() const override; |
330 | 332 |
331 DEFINE_INLINE_VIRTUAL_TRACE() | 333 DEFINE_INLINE_VIRTUAL_TRACE() |
332 { | 334 { |
333 visitor->trace(m_element); | 335 visitor->trace(m_element); |
334 Client::trace(visitor); | 336 Client::trace(visitor); |
335 } | 337 } |
336 | 338 |
(...skipping 3496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3833 | 3835 |
3834 String HTMLMediaElement::AutoplayHelperClientImpl::autoplayExperimentMode() cons
t | 3836 String HTMLMediaElement::AutoplayHelperClientImpl::autoplayExperimentMode() cons
t |
3835 { | 3837 { |
3836 String mode; | 3838 String mode; |
3837 if (m_element->document().settings()) | 3839 if (m_element->document().settings()) |
3838 mode = m_element->document().settings()->autoplayExperimentMode(); | 3840 mode = m_element->document().settings()->autoplayExperimentMode(); |
3839 | 3841 |
3840 return mode; | 3842 return mode; |
3841 } | 3843 } |
3842 | 3844 |
| 3845 bool HTMLMediaElement::AutoplayHelperClientImpl::isAutoplayAllowedPerSettings()
const |
| 3846 { |
| 3847 LocalFrame* frame = m_element->document().frame(); |
| 3848 if (!frame) |
| 3849 return false; |
| 3850 FrameLoaderClient* frameLoaderClient = frame->loader().client(); |
| 3851 return frameLoaderClient && frameLoaderClient->allowAutoplay(false); |
| 3852 } |
| 3853 |
3843 void HTMLMediaElement::AutoplayHelperClientImpl::setRequestPositionUpdates(bool
request) | 3854 void HTMLMediaElement::AutoplayHelperClientImpl::setRequestPositionUpdates(bool
request) |
3844 { | 3855 { |
3845 if (LayoutObject* layoutObject = m_element->layoutObject()) { | 3856 if (LayoutObject* layoutObject = m_element->layoutObject()) { |
3846 LayoutMediaItem layoutMediaItem = LayoutMediaItem(toLayoutMedia(layoutOb
ject)); | 3857 LayoutMediaItem layoutMediaItem = LayoutMediaItem(toLayoutMedia(layoutOb
ject)); |
3847 layoutMediaItem.setRequestPositionUpdates(request); | 3858 layoutMediaItem.setRequestPositionUpdates(request); |
3848 } | 3859 } |
3849 } | 3860 } |
3850 | 3861 |
3851 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() co
nst | 3862 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() co
nst |
3852 { | 3863 { |
3853 IntRect result; | 3864 IntRect result; |
3854 if (LayoutObject* object = m_element->layoutObject()) | 3865 if (LayoutObject* object = m_element->layoutObject()) |
3855 result = object->absoluteBoundingBoxRect(); | 3866 result = object->absoluteBoundingBoxRect(); |
3856 return result; | 3867 return result; |
3857 } | 3868 } |
3858 | 3869 |
3859 } // namespace blink | 3870 } // namespace blink |
OLD | NEW |