| Index: media/video/capture/screen/differ_unittest.cc
 | 
| diff --git a/media/video/capture/screen/differ_unittest.cc b/media/video/capture/screen/differ_unittest.cc
 | 
| index 0210123bcc5ae29e0d3ff2da8fab3a97737f7a55..5a443157a32d95e1894a53c3f0c6cb7be4671d44 100644
 | 
| --- a/media/video/capture/screen/differ_unittest.cc
 | 
| +++ b/media/video/capture/screen/differ_unittest.cc
 | 
| @@ -49,14 +49,15 @@ class DifferTest : public testing::Test {
 | 
|      differ_->MarkDirtyBlocks(prev_buffer, curr_buffer);
 | 
|    }
 | 
|  
 | 
| -  void MergeBlocks(SkRegion* dirty) {
 | 
| +  void MergeBlocks(webrtc::DesktopRegion* dirty) {
 | 
|      differ_->MergeBlocks(dirty);
 | 
|    }
 | 
|  
 | 
|    // Convenience method to count rectangles in a region.
 | 
| -  int RegionRectCount(const SkRegion& region) {
 | 
| +  int RegionRectCount(const webrtc::DesktopRegion& region) {
 | 
|      int count = 0;
 | 
| -    for(SkRegion::Iterator iter(region); !iter.done(); iter.next()) {
 | 
| +    for (webrtc::DesktopRegion::Iterator iter(region);
 | 
| +         !iter.IsAtEnd(); iter.Advance()) {
 | 
|        ++count;
 | 
|      }
 | 
|      return count;
 | 
| @@ -144,15 +145,17 @@ class DifferTest : public testing::Test {
 | 
|    // Verify that |region| contains a rectangle defined by |x|, |y|, |width| and
 | 
|    // |height|.
 | 
|    // |x|, |y|, |width| and |height| are specified in block (not pixel) units.
 | 
| -  bool CheckDirtyRegionContainsRect(const SkRegion& region, int x, int y,
 | 
| +  bool CheckDirtyRegionContainsRect(const webrtc::DesktopRegion& region,
 | 
| +                                    int x, int y,
 | 
|                                      int width, int height) {
 | 
| -    SkIRect r = SkIRect::MakeXYWH(x * kBlockSize, y * kBlockSize,
 | 
| -                                  width * kBlockSize, height * kBlockSize);
 | 
| -    bool found = false;
 | 
| -    for (SkRegion::Iterator i(region); !found && !i.done(); i.next()) {
 | 
| -      found = (i.rect() == r);
 | 
| +    webrtc::DesktopRect r =
 | 
| +      webrtc::DesktopRect::MakeXYWH(x * kBlockSize, y * kBlockSize,
 | 
| +                                    width * kBlockSize, height * kBlockSize);
 | 
| +    for (webrtc::DesktopRegion::Iterator i(region); !i.IsAtEnd(); i.Advance()) {
 | 
| +      if (i.rect().equals(r))
 | 
| +        return true;
 | 
|      }
 | 
| -    return found;
 | 
| +    return false;
 | 
|    }
 | 
|  
 | 
|    // Mark the range of blocks specified and then verify that they are
 | 
| @@ -163,15 +166,19 @@ class DifferTest : public testing::Test {
 | 
|      ClearDiffInfo();
 | 
|      MarkBlocks(x_origin, y_origin, width, height);
 | 
|  
 | 
| -    SkRegion dirty;
 | 
| +    webrtc::DesktopRegion dirty;
 | 
|      MergeBlocks(&dirty);
 | 
|  
 | 
| -    bool is_good = dirty.isRect();
 | 
| -    if (is_good) {
 | 
| -     is_good = CheckDirtyRegionContainsRect(dirty, x_origin, y_origin,
 | 
| -                                            width, height);
 | 
| -    }
 | 
| -    return is_good;
 | 
| +
 | 
| +    webrtc::DesktopRect expected_rect = webrtc::DesktopRect::MakeXYWH(
 | 
| +        x_origin * kBlockSize, y_origin * kBlockSize,
 | 
| +        width * kBlockSize, height * kBlockSize);
 | 
| +
 | 
| +    // Verify that the region contains expected_rect and it's the only
 | 
| +    // rectangle.
 | 
| +    webrtc::DesktopRegion::Iterator it(dirty);
 | 
| +    return !it.IsAtEnd() && expected_rect.equals(it.rect()) &&
 | 
| +        (it.Advance(), it.IsAtEnd());
 | 
|    }
 | 
|  
 | 
|    // The differ class we're testing.
 | 
| @@ -369,10 +376,10 @@ TEST_F(DifferTest, MergeBlocks_Empty) {
 | 
|    // +---+---+---+---+
 | 
|    ClearDiffInfo();
 | 
|  
 | 
| -  SkRegion dirty;
 | 
| +  webrtc::DesktopRegion dirty;
 | 
|    MergeBlocks(&dirty);
 | 
|  
 | 
| -  EXPECT_TRUE(dirty.isEmpty());
 | 
| +  EXPECT_TRUE(dirty.is_empty());
 | 
|  }
 | 
|  
 | 
|  TEST_F(DifferTest, MergeBlocks_SingleBlock) {
 | 
| @@ -525,7 +532,7 @@ TEST_F(DifferTest, MergeBlocks_BlockRect) {
 | 
|  // may need to be updated if we modify how we merge blocks.
 | 
|  TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|    InitDiffer(kScreenWidth, kScreenHeight);
 | 
| -  SkRegion dirty;
 | 
| +  webrtc::DesktopRegion dirty;
 | 
|  
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // |   | X |   | _ |      |   | 0 |   |
 | 
| @@ -541,7 +548,7 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|    MarkBlocks(0, 1, 1, 1);
 | 
|    MarkBlocks(2, 2, 1, 1);
 | 
|  
 | 
| -  dirty.setEmpty();
 | 
| +  dirty.Clear();
 | 
|    MergeBlocks(&dirty);
 | 
|  
 | 
|    ASSERT_EQ(3, RegionRectCount(dirty));
 | 
| @@ -551,10 +558,10 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|  
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // |   |   | X | _ |      |   |   | 0 |
 | 
| -  // +---+---+---+---+      +---+---+---+
 | 
| -  // | X | X | X | _ |      | 1   1   1 |
 | 
| -  // +---+---+---+---+  =>  +           +
 | 
| -  // | X | X | X | _ |      | 1   1   1 |
 | 
| +  // +---+---+---+---+      +---+---+   +
 | 
| +  // | X | X | X | _ |      | 1   1 | 0 |
 | 
| +  // +---+---+---+---+  =>  +       |   +
 | 
| +  // | X | X | X | _ |      | 1   1 | 0 |
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | _ | _ | _ | _ |
 | 
|    // +---+---+---+---+
 | 
| @@ -562,19 +569,19 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|    MarkBlocks(2, 0, 1, 1);
 | 
|    MarkBlocks(0, 1, 3, 2);
 | 
|  
 | 
| -  dirty.setEmpty();
 | 
| +  dirty.Clear();
 | 
|    MergeBlocks(&dirty);
 | 
|  
 | 
|    ASSERT_EQ(2, RegionRectCount(dirty));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 0, 1, 1));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 3, 2));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 0, 1, 3));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 2, 2));
 | 
|  
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // |   |   |   | _ |      |   |   |   |
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | X |   | X | _ |      | 0 |   | 1 |
 | 
|    // +---+---+---+---+  =>  +   +---+   +
 | 
| -  // | X | X | X | _ |      | 2 | 2 | 2 |
 | 
| +  // | X | X | X | _ |      | 0 | 2 | 1 |
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | _ | _ | _ | _ |
 | 
|    // +---+---+---+---+
 | 
| @@ -583,20 +590,20 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|    MarkBlocks(2, 1, 1, 1);
 | 
|    MarkBlocks(0, 2, 3, 1);
 | 
|  
 | 
| -  dirty.setEmpty();
 | 
| +  dirty.Clear();
 | 
|    MergeBlocks(&dirty);
 | 
|  
 | 
|    ASSERT_EQ(3, RegionRectCount(dirty));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 1));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 1));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 2, 3, 1));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 2));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 2));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 1, 2, 1, 1));
 | 
|  
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | X | X | X | _ |      | 0   0   0 |
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | X |   | X | _ |      | 1 |   | 2 |
 | 
|    // +---+---+---+---+  =>  +   +---+   +
 | 
| -  // | X | X | X | _ |      | 3 | 3 | 3 |
 | 
| +  // | X | X | X | _ |      | 1 | 3 | 2 |
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | _ | _ | _ | _ |
 | 
|    // +---+---+---+---+
 | 
| @@ -606,14 +613,14 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|    MarkBlocks(2, 1, 1, 1);
 | 
|    MarkBlocks(0, 2, 3, 1);
 | 
|  
 | 
| -  dirty.setEmpty();
 | 
| +  dirty.Clear();
 | 
|    MergeBlocks(&dirty);
 | 
|  
 | 
|    ASSERT_EQ(4, RegionRectCount(dirty));
 | 
|    ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 0, 3, 1));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 1));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 1));
 | 
| -  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 2, 3, 1));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 2));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 2));
 | 
| +  ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 1, 2, 1, 1));
 | 
|  
 | 
|    // +---+---+---+---+      +---+---+---+
 | 
|    // | X | X |   | _ |      | 0   0 |   |
 | 
| @@ -628,7 +635,7 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
 | 
|    MarkBlocks(0, 0, 2, 2);
 | 
|    MarkBlocks(1, 2, 1, 1);
 | 
|  
 | 
| -  dirty.setEmpty();
 | 
| +  dirty.Clear();
 | 
|    MergeBlocks(&dirty);
 | 
|  
 | 
|    ASSERT_EQ(2, RegionRectCount(dirty));
 | 
| 
 |