| Index: sky/engine/core/view/View.cpp
 | 
| diff --git a/sky/engine/core/view/View.cpp b/sky/engine/core/view/View.cpp
 | 
| index b8851397954ab71daa5b369bf4138150d534ffb9..cc1a152f93faefa1ca6c3ad9d55bf132726a78f2 100644
 | 
| --- a/sky/engine/core/view/View.cpp
 | 
| +++ b/sky/engine/core/view/View.cpp
 | 
| @@ -7,13 +7,13 @@
 | 
|  
 | 
|  namespace blink {
 | 
|  
 | 
| -PassRefPtr<View> View::create(const base::Closure& schedulePaintCallback)
 | 
| +PassRefPtr<View> View::create(const base::Closure& scheduleFrameCallback)
 | 
|  {
 | 
| -    return adoptRef(new View(schedulePaintCallback));
 | 
| +    return adoptRef(new View(scheduleFrameCallback));
 | 
|  }
 | 
|  
 | 
| -View::View(const base::Closure& schedulePaintCallback)
 | 
| -    : m_schedulePaintCallback(schedulePaintCallback)
 | 
| +View::View(const base::Closure& scheduleFrameCallback)
 | 
| +    : m_scheduleFrameCallback(scheduleFrameCallback)
 | 
|  {
 | 
|  }
 | 
|  
 | 
| @@ -33,14 +33,19 @@ double View::height() const
 | 
|      return h / m_displayMetrics.device_pixel_ratio;
 | 
|  }
 | 
|  
 | 
| -void View::schedulePaint()
 | 
| +void View::setEventCallback(PassOwnPtr<EventCallback> callback)
 | 
|  {
 | 
| -    m_schedulePaintCallback.Run();
 | 
| +    m_eventCallback = callback;
 | 
|  }
 | 
|  
 | 
| -void View::setEventCallback(PassOwnPtr<EventCallback> callback)
 | 
| +void View::setBeginFrameCallback(PassOwnPtr<BeginFrameCallback> callback)
 | 
|  {
 | 
| -    m_eventCallback = callback;
 | 
| +    m_beginFrameCallback = callback;
 | 
| +}
 | 
| +
 | 
| +void View::scheduleFrame()
 | 
| +{
 | 
| +    m_scheduleFrameCallback.Run();
 | 
|  }
 | 
|  
 | 
|  void View::setDisplayMetrics(const SkyDisplayMetrics& metrics)
 | 
| @@ -53,4 +58,12 @@ bool View::handleInputEvent(PassRefPtr<Event> event)
 | 
|      return m_eventCallback && m_eventCallback->handleEvent(event.get());
 | 
|  }
 | 
|  
 | 
| +void View::beginFrame(base::TimeTicks frameTime)
 | 
| +{
 | 
| +    if (!m_beginFrameCallback)
 | 
| +        return;
 | 
| +    double frameTimeMS = (frameTime - base::TimeTicks()).InMillisecondsF();
 | 
| +    m_beginFrameCallback->handleEvent(frameTimeMS);
 | 
| +}
 | 
| +
 | 
|  } // namespace blink
 | 
| 
 |