text: // 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 SKY_VIEWER_CC_WEB_CONTENT_LAYER_IMPL_H_
  #define SKY_VIEWER_CC_WEB_CONTENT_LAYER_IMPL_H_
  
  #include "base/memory/scoped_ptr.h"
  #include "sky/viewer/cc/sky_viewer_cc_export.h"
  #include "sky/viewer/cc/web_layer_impl.h"
  #include "cc/layers/content_layer_client.h"
  #include "sky/engine/public/platform/WebContentLayer.h"
  
  namespace cc {
  class IntRect;
  class FloatRect;
  }
  
  namespace blink {
  class WebContentLayerClient;
  }
  
  namespace sky_viewer_cc {
  
  class WebContentLayerImpl : public blink::WebContentLayer,
                              public cc::ContentLayerClient {
   public:
    SKY_VIEWER_CC_EXPORT explicit WebContentLayerImpl(blink::WebContentLayerClient*);
  
    // WebContentLayer implementation.
    virtual blink::WebLayer* layer();
    virtual void setDoubleSided(bool double_sided);
    virtual void setDrawCheckerboardForMissingTiles(bool checkerboard);
  
   protected:
    virtual ~WebContentLayerImpl();
  
    // ContentLayerClient implementation.
    virtual void PaintContents(SkCanvas* canvas,
                               const gfx::Rect& clip,
                               ContentLayerClient::GraphicsContextStatus
                                   graphics_context_status) override;
    virtual bool FillsBoundsCompletely() const override;
  
    scoped_ptr<WebLayerImpl> layer_;
    blink::WebContentLayerClient* client_;
    bool draws_content_;
  
   private:
  
    DISALLOW_COPY_AND_ASSIGN(WebContentLayerImpl);
  };
  
  }  // namespace sky_viewer_cc
  
  #endif  // SKY_VIEWER_CC_WEB_CONTENT_LAYER_IMPL_H_
  