| Index: services/gfx/compositor/graph/snapshot.cc
 | 
| diff --git a/services/gfx/compositor/graph/snapshot.cc b/services/gfx/compositor/graph/snapshot.cc
 | 
| index 66f44e987422516606efa5d2465250f974517fa9..8371cf7a472999a87420bab68cdc8fdcda2bb15a 100644
 | 
| --- a/services/gfx/compositor/graph/snapshot.cc
 | 
| +++ b/services/gfx/compositor/graph/snapshot.cc
 | 
| @@ -5,9 +5,11 @@
 | 
|  #include "services/gfx/compositor/graph/snapshot.h"
 | 
|  
 | 
|  #include "base/logging.h"
 | 
| +#include "mojo/skia/type_converters.h"
 | 
|  #include "services/gfx/compositor/graph/scene_content.h"
 | 
|  #include "services/gfx/compositor/graph/scene_def.h"
 | 
|  #include "services/gfx/compositor/render/render_frame.h"
 | 
| +#include "third_party/skia/include/core/SkMatrix.h"
 | 
|  #include "third_party/skia/include/core/SkPictureRecorder.h"
 | 
|  #include "third_party/skia/include/core/SkRect.h"
 | 
|  
 | 
| @@ -25,21 +27,26 @@ std::shared_ptr<RenderFrame> Snapshot::CreateFrame(
 | 
|      const mojo::Rect& viewport,
 | 
|      const mojo::gfx::composition::FrameInfo& frame_info) const {
 | 
|    DCHECK(!is_blocked());
 | 
| +  DCHECK(root_scene_content_);
 | 
|  
 | 
| -  SkRect sk_viewport =
 | 
| -      SkRect::MakeXYWH(viewport.x, viewport.y, viewport.width, viewport.height);
 | 
| +  SkRect sk_viewport = viewport.To<SkRect>();
 | 
|    SkPictureRecorder recorder;
 | 
|    recorder.beginRecording(sk_viewport);
 | 
| -
 | 
| -  const NodeDef* root_node = root_scene_content_->GetRootNodeIfExists();
 | 
| -  DCHECK(root_node);  // otherwise would have failed to snapshot
 | 
| -  root_node->RecordPicture(root_scene_content_.get(), this,
 | 
| -                           recorder.getRecordingCanvas());
 | 
| -
 | 
| +  root_scene_content_->RecordPicture(this, recorder.getRecordingCanvas());
 | 
|    return RenderFrame::Create(skia::AdoptRef(recorder.endRecordingAsPicture()),
 | 
|                               sk_viewport, frame_info);
 | 
|  }
 | 
|  
 | 
| +void Snapshot::HitTest(const mojo::Point& point,
 | 
| +                       mojo::gfx::composition::HitTestResult* result) const {
 | 
| +  DCHECK(result);
 | 
| +  DCHECK(!is_blocked());
 | 
| +  DCHECK(root_scene_content_);
 | 
| +
 | 
| +  root_scene_content_->HitTest(this, point.To<SkPoint>(), SkMatrix::I(),
 | 
| +                               &result->root);
 | 
| +}
 | 
| +
 | 
|  bool Snapshot::IsNodeBlocked(const NodeDef* node) const {
 | 
|    DCHECK(!is_blocked());
 | 
|  
 | 
| 
 |