1d487c56b47c747d3e331ee1892e4c0473363afd2Chris Craik#define LOG_TAG "IFrameLayerAndroid"
2d487c56b47c747d3e331ee1892e4c0473363afd2Chris Craik#define LOG_NDEBUG 1
3d487c56b47c747d3e331ee1892e4c0473363afd2Chris Craik
447b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard#include "config.h"
547b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard#include "IFrameLayerAndroid.h"
647b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
747b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard#if USE(ACCELERATED_COMPOSITING)
847b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
9d487c56b47c747d3e331ee1892e4c0473363afd2Chris Craik#include "AndroidLog.h"
1047b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard#include "DumpLayer.h"
1147b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
1247b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roardnamespace WebCore {
1347b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
1447b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas RoardIFrameLayerAndroid* IFrameLayerAndroid::updatePosition(SkRect viewport,
1547b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard                                                       IFrameLayerAndroid* parentIframeLayer)
1647b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard{
1747b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    // As we are an iframe, accumulate the offset from the parent with
1847b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    // the current position, and change the parent pointer.
1947b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
2047b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    // If this is the top level, take the current position
2147b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    SkPoint parentOffset;
2247b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    parentOffset.set(0,0);
2347b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    if (parentIframeLayer)
2447b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard        parentOffset = parentIframeLayer->getPosition();
2547b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
2647b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    SkPoint offset = parentOffset + getPosition();
2747b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    m_iframeOffset = IntPoint(offset.fX, offset.fY);
2847b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
2947b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard    return this;
3047b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard}
3147b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
32cc6ffa0710f304fbcaa43953b0dc89e1d9b931a2John Reckvoid IFrameLayerAndroid::dumpLayer(LayerDumper* dumper) const
3347b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard{
34cc6ffa0710f304fbcaa43953b0dc89e1d9b931a2John Reck    LayerAndroid::dumpLayer(dumper);
35cc6ffa0710f304fbcaa43953b0dc89e1d9b931a2John Reck    dumper->writeIntPoint("m_iframeOffset", m_iframeOffset);
3647b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard}
3747b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
3847b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard} // namespace WebCore
3947b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard
4047b8a953ab1b71113b605fd84489f63938bd7dd7Nicolas Roard#endif // USE(ACCELERATED_COMPOSITING)
41