summaryrefslogtreecommitdiffstats
path: root/cc/blink/web_layer_impl.h
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-19 02:47:18 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-19 02:48:29 +0000
commit38564621b3363efe786f4f24000e663d832e4b9b (patch)
tree24e1efd151b4c718682a6cc3dc6a30cc829889cd /cc/blink/web_layer_impl.h
parent5d19fee72e4c6147fee799406b6b438002162b1f (diff)
downloadchromium_src-38564621b3363efe786f4f24000e663d832e4b9b.zip
chromium_src-38564621b3363efe786f4f24000e663d832e4b9b.tar.gz
chromium_src-38564621b3363efe786f4f24000e663d832e4b9b.tar.bz2
Move blink<->cc bindings to cc/blink
These files provide the implementations of the public Blink API that bind to the cc implementation. This moves them out of content/ into a subdirectory of cc/ so that we can reuse these files in mojo which can depend on cc/ and on blink but not on content/. To make sure we don't introduce dependencies from cc/ on blink proper, cc/DEPS forbids including cc/blink/ and cc/blink/DEPS allows using the blink headers. cc_blink is built as a separate component to avoid linking anything from blink into targets that don't care about the blink bindings (such as the browser compositor). R=darin@chromium.org Review URL: https://codereview.chromium.org/470983004 Cr-Commit-Position: refs/heads/master@{#290464} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290464 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/blink/web_layer_impl.h')
-rw-r--r--cc/blink/web_layer_impl.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/cc/blink/web_layer_impl.h b/cc/blink/web_layer_impl.h
new file mode 100644
index 0000000..3a8130e
--- /dev/null
+++ b/cc/blink/web_layer_impl.h
@@ -0,0 +1,152 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CC_BLINK_WEB_LAYER_IMPL_H_
+#define CC_BLINK_WEB_LAYER_IMPL_H_
+
+#include <string>
+
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "cc/blink/cc_blink_export.h"
+#include "cc/layers/layer_client.h"
+#include "third_party/WebKit/public/platform/WebCString.h"
+#include "third_party/WebKit/public/platform/WebColor.h"
+#include "third_party/WebKit/public/platform/WebCompositorAnimation.h"
+#include "third_party/WebKit/public/platform/WebFloatPoint.h"
+#include "third_party/WebKit/public/platform/WebLayer.h"
+#include "third_party/WebKit/public/platform/WebPoint.h"
+#include "third_party/WebKit/public/platform/WebRect.h"
+#include "third_party/WebKit/public/platform/WebSize.h"
+#include "third_party/WebKit/public/platform/WebString.h"
+#include "third_party/WebKit/public/platform/WebVector.h"
+#include "third_party/skia/include/utils/SkMatrix44.h"
+
+namespace blink {
+class WebFilterOperations;
+class WebLayerClient;
+struct WebFloatRect;
+}
+
+namespace base {
+namespace debug {
+class ConvertableToTraceFormat;
+}
+}
+
+namespace cc {
+class Layer;
+}
+
+namespace cc_blink {
+
+class WebToCCAnimationDelegateAdapter;
+
+class WebLayerImpl : public blink::WebLayer, public cc::LayerClient {
+ public:
+ CC_BLINK_EXPORT WebLayerImpl();
+ CC_BLINK_EXPORT explicit WebLayerImpl(scoped_refptr<cc::Layer>);
+ virtual ~WebLayerImpl();
+
+ static bool UsingPictureLayer();
+ CC_BLINK_EXPORT static void SetImplSidePaintingEnabled(bool enabled);
+
+ CC_BLINK_EXPORT cc::Layer* layer() const;
+
+ // WebLayer implementation.
+ virtual int id() const;
+ virtual void invalidateRect(const blink::WebFloatRect&);
+ virtual void invalidate();
+ virtual void addChild(blink::WebLayer* child);
+ virtual void insertChild(blink::WebLayer* child, size_t index);
+ virtual void replaceChild(blink::WebLayer* reference,
+ blink::WebLayer* new_layer);
+ virtual void removeFromParent();
+ virtual void removeAllChildren();
+ virtual void setBounds(const blink::WebSize& bounds);
+ virtual blink::WebSize bounds() const;
+ virtual void setMasksToBounds(bool masks_to_bounds);
+ virtual bool masksToBounds() const;
+ virtual void setMaskLayer(blink::WebLayer* mask);
+ virtual void setReplicaLayer(blink::WebLayer* replica);
+ virtual void setOpacity(float opacity);
+ virtual float opacity() const;
+ virtual void setBlendMode(blink::WebBlendMode blend_mode);
+ virtual blink::WebBlendMode blendMode() const;
+ virtual void setIsRootForIsolatedGroup(bool root);
+ virtual bool isRootForIsolatedGroup();
+ virtual void setOpaque(bool opaque);
+ virtual bool opaque() const;
+ virtual void setPosition(const blink::WebFloatPoint& position);
+ virtual blink::WebFloatPoint position() const;
+ virtual void setTransform(const SkMatrix44& transform);
+ virtual void setTransformOrigin(const blink::WebFloatPoint3D& point);
+ virtual blink::WebFloatPoint3D transformOrigin() const;
+ virtual SkMatrix44 transform() const;
+ virtual void setDrawsContent(bool draws_content);
+ virtual bool drawsContent() const;
+ virtual void setShouldFlattenTransform(bool flatten);
+ virtual void setRenderingContext(int context);
+ virtual void setUseParentBackfaceVisibility(bool visible);
+ virtual void setBackgroundColor(blink::WebColor color);
+ virtual blink::WebColor backgroundColor() const;
+ virtual void setFilters(const blink::WebFilterOperations& filters);
+ virtual void setBackgroundFilters(const blink::WebFilterOperations& filters);
+ virtual void setAnimationDelegate(
+ blink::WebCompositorAnimationDelegate* delegate);
+ virtual bool addAnimation(blink::WebCompositorAnimation* animation);
+ virtual void removeAnimation(int animation_id);
+ virtual void removeAnimation(int animation_id,
+ blink::WebCompositorAnimation::TargetProperty);
+ virtual void pauseAnimation(int animation_id, double time_offset);
+ virtual bool hasActiveAnimation();
+ virtual void setForceRenderSurface(bool force);
+ virtual void setScrollPosition(blink::WebPoint position);
+ virtual blink::WebPoint scrollPosition() const;
+ virtual void setScrollClipLayer(blink::WebLayer* clip_layer);
+ virtual bool scrollable() const;
+ virtual void setUserScrollable(bool horizontal, bool vertical);
+ virtual bool userScrollableHorizontal() const;
+ virtual bool userScrollableVertical() const;
+ virtual void setHaveWheelEventHandlers(bool have_wheel_event_handlers);
+ virtual bool haveWheelEventHandlers() const;
+ virtual void setHaveScrollEventHandlers(bool have_scroll_event_handlers);
+ virtual bool haveScrollEventHandlers() const;
+ virtual void setShouldScrollOnMainThread(bool scroll_on_main);
+ virtual bool shouldScrollOnMainThread() const;
+ virtual void setNonFastScrollableRegion(
+ const blink::WebVector<blink::WebRect>& region);
+ virtual blink::WebVector<blink::WebRect> nonFastScrollableRegion() const;
+ virtual void setTouchEventHandlerRegion(
+ const blink::WebVector<blink::WebRect>& region);
+ virtual blink::WebVector<blink::WebRect> touchEventHandlerRegion() const;
+ virtual void setIsContainerForFixedPositionLayers(bool is_container);
+ virtual bool isContainerForFixedPositionLayers() const;
+ virtual void setPositionConstraint(
+ const blink::WebLayerPositionConstraint& constraint);
+ virtual blink::WebLayerPositionConstraint positionConstraint() const;
+ virtual void setScrollClient(blink::WebLayerScrollClient* client);
+ virtual bool isOrphan() const;
+ virtual void setWebLayerClient(blink::WebLayerClient* client);
+
+ // LayerClient implementation.
+ virtual scoped_refptr<base::debug::ConvertableToTraceFormat> TakeDebugInfo()
+ OVERRIDE;
+
+ virtual void setScrollParent(blink::WebLayer* parent);
+ virtual void setClipParent(blink::WebLayer* parent);
+
+ protected:
+ scoped_refptr<cc::Layer> layer_;
+ blink::WebLayerClient* web_layer_client_;
+
+ private:
+ scoped_ptr<WebToCCAnimationDelegateAdapter> animation_delegate_adapter_;
+
+ DISALLOW_COPY_AND_ASSIGN(WebLayerImpl);
+};
+
+} // namespace cc_blink
+
+#endif // CC_BLINK_WEB_LAYER_IMPL_H_