Index: third_party/WebKit/Source/core/layout/LayoutVideo.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutVideo.cpp b/third_party/WebKit/Source/core/layout/LayoutVideo.cpp |
index 2a9483ee9b58da882a0e22df4f0b4b5e07d0c19c..d30914821ac69accefce3cd00151db7df0e37f04 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutVideo.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutVideo.cpp |
@@ -28,6 +28,8 @@ |
#include "core/HTMLNames.h" |
#include "core/dom/Document.h" |
#include "core/html/HTMLVideoElement.h" |
+#include "core/layout/LayoutBlockFlow.h" |
+#include "core/layout/LayoutFullScreen.h" |
#include "core/paint/VideoPainter.h" |
#include "public/platform/WebLayer.h" |
@@ -195,6 +197,47 @@ bool LayoutVideo::supportsAcceleratedRendering() const |
return !!mediaElement()->platformLayer(); |
} |
+static const LayoutBlock* layoutObjectPlaceholder(const LayoutObject* layoutObject) |
+{ |
+ LayoutObject* parent = layoutObject->parent(); |
+ if (!parent) |
+ return nullptr; |
+ |
+ LayoutFullScreen* fullScreen = parent->isLayoutFullScreen() ? toLayoutFullScreen(parent) : 0; |
+ if (!fullScreen) |
+ return nullptr; |
+ |
+ return fullScreen->placeholder(); |
+} |
+ |
+LayoutUnit LayoutVideo::offsetLeft(const Element* parent) const |
+{ |
+ if (const LayoutBlock* block = layoutObjectPlaceholder(this)) |
+ return block->offsetLeft(parent); |
+ return LayoutMedia::offsetLeft(parent); |
+} |
+ |
+LayoutUnit LayoutVideo::offsetTop(const Element* parent) const |
+{ |
+ if (const LayoutBlock* block = layoutObjectPlaceholder(this)) |
+ return block->offsetTop(parent); |
+ return LayoutMedia::offsetTop(parent); |
+} |
+ |
+LayoutUnit LayoutVideo::offsetWidth() const |
+{ |
+ if (const LayoutBlock* block = layoutObjectPlaceholder(this)) |
+ return block->offsetWidth(); |
+ return LayoutMedia::offsetWidth(); |
+} |
+ |
+LayoutUnit LayoutVideo::offsetHeight() const |
+{ |
+ if (const LayoutBlock* block = layoutObjectPlaceholder(this)) |
+ return block->offsetHeight(); |
+ return LayoutMedia::offsetHeight(); |
+} |
+ |
CompositingReasons LayoutVideo::additionalCompositingReasons() const |
{ |
HTMLMediaElement* element = toHTMLMediaElement(node()); |