| Index: media/video/capture/screen/screen_capturer_helper.cc
 | 
| diff --git a/media/video/capture/screen/screen_capturer_helper.cc b/media/video/capture/screen/screen_capturer_helper.cc
 | 
| index 2f4534260c9cb0190481a9a3115988b4f6dce087..e85cf3b7ddb5bd7ad78005ff167a1c3a3fa145fd 100644
 | 
| --- a/media/video/capture/screen/screen_capturer_helper.cc
 | 
| +++ b/media/video/capture/screen/screen_capturer_helper.cc
 | 
| @@ -12,7 +12,6 @@
 | 
|  namespace media {
 | 
|  
 | 
|  ScreenCapturerHelper::ScreenCapturerHelper() :
 | 
| -    size_most_recent_(SkISize::Make(0, 0)),
 | 
|      log_grid_size_(0) {
 | 
|  }
 | 
|  
 | 
| @@ -25,33 +24,43 @@ void ScreenCapturerHelper::ClearInvalidRegion() {
 | 
|  }
 | 
|  
 | 
|  void ScreenCapturerHelper::InvalidateRegion(
 | 
| -    const SkRegion& invalid_region) {
 | 
| +    const webrtc::DesktopRegion& invalid_region) {
 | 
|    base::AutoLock auto_invalid_region_lock(invalid_region_lock_);
 | 
| -  invalid_region_.op(invalid_region, SkRegion::kUnion_Op);
 | 
| +  for (webrtc::DesktopRegion::Iterator it(invalid_region);
 | 
| +       !it.IsAtEnd(); it.Advance()) {
 | 
| +    invalid_region_.op(SkIRect::MakeLTRB(it.rect().left(), it.rect().top(),
 | 
| +                                         it.rect().right(), it.rect().bottom()),
 | 
| +                       SkRegion::kUnion_Op);
 | 
| +  }
 | 
|  }
 | 
|  
 | 
| -void ScreenCapturerHelper::InvalidateScreen(const SkISize& size) {
 | 
| +void ScreenCapturerHelper::InvalidateScreen(const webrtc::DesktopSize& size) {
 | 
|    base::AutoLock auto_invalid_region_lock(invalid_region_lock_);
 | 
|    invalid_region_.op(SkIRect::MakeWH(size.width(), size.height()),
 | 
|                       SkRegion::kUnion_Op);
 | 
|  }
 | 
|  
 | 
| -void ScreenCapturerHelper::InvalidateFullScreen() {
 | 
| -  if (!size_most_recent_.isZero())
 | 
| -    InvalidateScreen(size_most_recent_);
 | 
| -}
 | 
| -
 | 
| -void ScreenCapturerHelper::SwapInvalidRegion(SkRegion* invalid_region) {
 | 
| +void ScreenCapturerHelper::TakeInvalidRegion(
 | 
| +    webrtc::DesktopRegion* invalid_region) {
 | 
| +  SkRegion sk_invalid_region;
 | 
|    {
 | 
|      base::AutoLock auto_invalid_region_lock(invalid_region_lock_);
 | 
| -    invalid_region->swap(invalid_region_);
 | 
| +    sk_invalid_region.swap(invalid_region_);
 | 
|    }
 | 
| +
 | 
|    if (log_grid_size_ > 0) {
 | 
|      scoped_ptr<SkRegion> expanded_region(
 | 
| -        ExpandToGrid(*invalid_region, log_grid_size_));
 | 
| -    invalid_region->swap(*expanded_region);
 | 
| -    invalid_region->op(SkRegion(SkIRect::MakeSize(size_most_recent_)),
 | 
| -                       SkRegion::kIntersect_Op);
 | 
| +        ExpandToGrid(sk_invalid_region, log_grid_size_));
 | 
| +    sk_invalid_region.swap(*expanded_region);
 | 
| +    sk_invalid_region.op(SkIRect::MakeWH(size_most_recent_.width(),
 | 
| +                                         size_most_recent_.height()),
 | 
| +                         SkRegion::kIntersect_Op);
 | 
| +  }
 | 
| +  invalid_region->Clear();
 | 
| +  for (SkRegion::Iterator it(sk_invalid_region); !it.done(); it.next()) {
 | 
| +    invalid_region->AddRect(webrtc::DesktopRect::MakeLTRB(
 | 
| +        it.rect().left(), it.rect().top(),
 | 
| +        it.rect().right(), it.rect().bottom()));
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -59,11 +68,12 @@ void ScreenCapturerHelper::SetLogGridSize(int log_grid_size) {
 | 
|    log_grid_size_ = log_grid_size;
 | 
|  }
 | 
|  
 | 
| -const SkISize& ScreenCapturerHelper::size_most_recent() const {
 | 
| +const webrtc::DesktopSize& ScreenCapturerHelper::size_most_recent() const {
 | 
|    return size_most_recent_;
 | 
|  }
 | 
|  
 | 
| -void ScreenCapturerHelper::set_size_most_recent(const SkISize& size) {
 | 
| +void ScreenCapturerHelper::set_size_most_recent(
 | 
| +    const webrtc::DesktopSize& size) {
 | 
|    size_most_recent_ = size;
 | 
|  }
 | 
|  
 | 
| 
 |