Migrate pp::Rect to gfx::Rect in DocumentLayout
Update DocumentLayout to use gfx::Rect instead of pp::Rect. Update callers to expect gfx::Rect as return value instead of pp::Rect. Bug: 1101101 Change-Id: I6835b99e1355b14b1d27511ba9e8a8bb3910d46a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2371083 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: K. Moon <kmoon@chromium.org> Cr-Commit-Position: refs/heads/master@{#802000}
This commit is contained in:

committed by
Commit Bot

parent
feae489c72
commit
0079869d46
@ -8,8 +8,6 @@
|
||||
|
||||
#include "base/check_op.h"
|
||||
#include "base/values.h"
|
||||
#include "pdf/ppapi_migration/geometry_conversions.h"
|
||||
#include "ppapi/cpp/rect.h"
|
||||
#include "ppapi/cpp/var.h"
|
||||
#include "ppapi/cpp/var_dictionary.h"
|
||||
#include "ui/gfx/geometry/point.h"
|
||||
@ -32,11 +30,12 @@ int GetWidestPageWidth(const std::vector<gfx::Size>& page_sizes) {
|
||||
return widest_page_width;
|
||||
}
|
||||
|
||||
pp::Rect InsetRect(pp::Rect rect,
|
||||
const draw_utils::PageInsetSizes& inset_sizes) {
|
||||
rect.Inset(inset_sizes.left, inset_sizes.top, inset_sizes.right,
|
||||
inset_sizes.bottom);
|
||||
return rect;
|
||||
gfx::Rect InsetRect(const gfx::Rect& rect,
|
||||
const draw_utils::PageInsetSizes& inset_sizes) {
|
||||
gfx::Rect inset_rect(rect);
|
||||
inset_rect.Inset(inset_sizes.left, inset_sizes.top, inset_sizes.right,
|
||||
inset_sizes.bottom);
|
||||
return inset_rect;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@ -118,11 +117,11 @@ void DocumentLayout::ComputeSingleViewLayout(
|
||||
}
|
||||
|
||||
const gfx::Size& page_size = page_sizes[i];
|
||||
pp::Rect page_rect = PPRectFromRect(
|
||||
draw_utils::GetRectForSingleView(page_size, document_size));
|
||||
CopyRectIfModified(page_rect, &page_layouts_[i].outer_rect);
|
||||
gfx::Rect page_rect =
|
||||
draw_utils::GetRectForSingleView(page_size, document_size);
|
||||
CopyRectIfModified(page_rect, page_layouts_[i].outer_rect);
|
||||
CopyRectIfModified(InsetRect(page_rect, kSingleViewInsets),
|
||||
&page_layouts_[i].inner_rect);
|
||||
page_layouts_[i].inner_rect);
|
||||
|
||||
draw_utils::ExpandDocumentSize(page_size, &document_size);
|
||||
}
|
||||
@ -149,19 +148,19 @@ void DocumentLayout::ComputeTwoUpViewLayout(
|
||||
i, page_sizes.size(), kSingleViewInsets, kHorizontalSeparator);
|
||||
const gfx::Size& page_size = page_sizes[i];
|
||||
|
||||
pp::Rect page_rect;
|
||||
gfx::Rect page_rect;
|
||||
if (i % 2 == 0) {
|
||||
page_rect = PPRectFromRect(draw_utils::GetLeftRectForTwoUpView(
|
||||
page_size, {document_size.width(), document_size.height()}));
|
||||
page_rect = draw_utils::GetLeftRectForTwoUpView(
|
||||
page_size, {document_size.width(), document_size.height()});
|
||||
} else {
|
||||
page_rect = PPRectFromRect(draw_utils::GetRightRectForTwoUpView(
|
||||
page_size, {document_size.width(), document_size.height()}));
|
||||
page_rect = draw_utils::GetRightRectForTwoUpView(
|
||||
page_size, {document_size.width(), document_size.height()});
|
||||
document_size.Enlarge(
|
||||
0, std::max(page_size.height(), page_sizes[i - 1].height()));
|
||||
}
|
||||
CopyRectIfModified(page_rect, &page_layouts_[i].outer_rect);
|
||||
CopyRectIfModified(page_rect, page_layouts_[i].outer_rect);
|
||||
CopyRectIfModified(InsetRect(page_rect, page_insets),
|
||||
&page_layouts_[i].inner_rect);
|
||||
page_layouts_[i].inner_rect);
|
||||
}
|
||||
|
||||
if (page_sizes.size() % 2 == 1) {
|
||||
@ -176,10 +175,10 @@ void DocumentLayout::ComputeTwoUpViewLayout(
|
||||
}
|
||||
}
|
||||
|
||||
void DocumentLayout::CopyRectIfModified(const pp::Rect& source_rect,
|
||||
pp::Rect* destination_rect) {
|
||||
if (*destination_rect != source_rect) {
|
||||
*destination_rect = source_rect;
|
||||
void DocumentLayout::CopyRectIfModified(const gfx::Rect& source_rect,
|
||||
gfx::Rect& destination_rect) {
|
||||
if (destination_rect != source_rect) {
|
||||
destination_rect = source_rect;
|
||||
dirty_ = true;
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "base/check_op.h"
|
||||
#include "pdf/draw_utils/coordinates.h"
|
||||
#include "pdf/page_orientation.h"
|
||||
#include "ppapi/cpp/rect.h"
|
||||
#include "ui/gfx/geometry/rect.h"
|
||||
#include "ui/gfx/geometry/size.h"
|
||||
|
||||
namespace base {
|
||||
@ -113,14 +113,14 @@ class DocumentLayout final {
|
||||
size_t page_count() const { return page_layouts_.size(); }
|
||||
|
||||
// Gets the layout rectangle for a page. Only valid after computing a layout.
|
||||
const pp::Rect& page_rect(size_t page_index) const {
|
||||
const gfx::Rect& page_rect(size_t page_index) const {
|
||||
DCHECK_LT(page_index, page_count());
|
||||
return page_layouts_[page_index].outer_rect;
|
||||
}
|
||||
|
||||
// Gets the layout rectangle for a page's bounds (which excludes additional
|
||||
// regions like page shadows). Only valid after computing a layout.
|
||||
const pp::Rect& page_bounds_rect(size_t page_index) const {
|
||||
const gfx::Rect& page_bounds_rect(size_t page_index) const {
|
||||
DCHECK_LT(page_index, page_count());
|
||||
return page_layouts_[page_index].inner_rect;
|
||||
}
|
||||
@ -139,16 +139,16 @@ class DocumentLayout final {
|
||||
// Layout of a single page.
|
||||
struct PageLayout {
|
||||
// Bounding rectangle for the page with decorations.
|
||||
pp::Rect outer_rect;
|
||||
gfx::Rect outer_rect;
|
||||
|
||||
// Bounding rectangle for the page without decorations.
|
||||
pp::Rect inner_rect;
|
||||
gfx::Rect inner_rect;
|
||||
};
|
||||
|
||||
// Copies |source_rect| to |destination_rect|, setting |dirty_| to true if
|
||||
// |destination_rect| is modified as a result.
|
||||
void CopyRectIfModified(const pp::Rect& source_rect,
|
||||
pp::Rect* destination_rect);
|
||||
void CopyRectIfModified(const gfx::Rect& source_rect,
|
||||
gfx::Rect& destination_rect);
|
||||
|
||||
Options options_;
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "pdf/document_layout.h"
|
||||
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/gfx/geometry/rect.h"
|
||||
#include "ui/gfx/geometry/size.h"
|
||||
|
||||
namespace chrome_pdf {
|
||||
@ -21,13 +22,6 @@ class DocumentLayoutTest : public testing::Test {
|
||||
DocumentLayout layout_;
|
||||
};
|
||||
|
||||
// TODO(kmoon): Need to use this with EXPECT_PRED2 instead of just using
|
||||
// EXPECT_EQ, due to ADL issues with pp::Rect's operator== (defined in global
|
||||
// namespace, instead of in "pp").
|
||||
inline bool PpRectEq(const pp::Rect& lhs, const pp::Rect& rhs) {
|
||||
return lhs == rhs;
|
||||
}
|
||||
|
||||
TEST_F(DocumentLayoutOptionsTest, DefaultConstructor) {
|
||||
EXPECT_EQ(options_.default_page_orientation(), PageOrientation::kOriginal);
|
||||
EXPECT_FALSE(options_.two_up_view_enabled());
|
||||
@ -194,38 +188,29 @@ TEST_F(DocumentLayoutTest, ComputeSingleViewLayout) {
|
||||
{300, 400}, {400, 500}, {300, 400}, {200, 300}};
|
||||
layout_.ComputeSingleViewLayout(page_sizes);
|
||||
ASSERT_EQ(4u, layout_.page_count());
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(50, 0, 300, 400), layout_.page_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(0, 404, 400, 500), layout_.page_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(50, 908, 300, 400), layout_.page_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(100, 1312, 200, 300), layout_.page_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(55, 3, 290, 390),
|
||||
layout_.page_bounds_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(5, 407, 390, 490),
|
||||
layout_.page_bounds_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(55, 911, 290, 390),
|
||||
layout_.page_bounds_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(105, 1315, 190, 290),
|
||||
layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(50, 0, 300, 400), layout_.page_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(0, 404, 400, 500), layout_.page_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(50, 908, 300, 400), layout_.page_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(100, 1312, 200, 300), layout_.page_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(55, 3, 290, 390), layout_.page_bounds_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(5, 407, 390, 490), layout_.page_bounds_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(55, 911, 290, 390), layout_.page_bounds_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(105, 1315, 190, 290), layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Size(400, 1612), layout_.size());
|
||||
|
||||
page_sizes = {{240, 300}, {320, 400}, {250, 360}, {300, 600}, {270, 555}};
|
||||
layout_.ComputeSingleViewLayout(page_sizes);
|
||||
ASSERT_EQ(5u, layout_.page_count());
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(40, 0, 240, 300), layout_.page_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(0, 304, 320, 400), layout_.page_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(35, 708, 250, 360), layout_.page_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(10, 1072, 300, 600), layout_.page_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(25, 1676, 270, 555), layout_.page_rect(4));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(45, 3, 230, 290),
|
||||
layout_.page_bounds_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(5, 307, 310, 390),
|
||||
layout_.page_bounds_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(40, 711, 240, 350),
|
||||
layout_.page_bounds_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(15, 1075, 290, 590),
|
||||
layout_.page_bounds_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(30, 1679, 260, 545),
|
||||
layout_.page_bounds_rect(4));
|
||||
EXPECT_EQ(gfx::Rect(40, 0, 240, 300), layout_.page_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(0, 304, 320, 400), layout_.page_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(35, 708, 250, 360), layout_.page_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(10, 1072, 300, 600), layout_.page_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(25, 1676, 270, 555), layout_.page_rect(4));
|
||||
EXPECT_EQ(gfx::Rect(45, 3, 230, 290), layout_.page_bounds_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(5, 307, 310, 390), layout_.page_bounds_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(40, 711, 240, 350), layout_.page_bounds_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(15, 1075, 290, 590), layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(30, 1679, 260, 545), layout_.page_bounds_rect(4));
|
||||
EXPECT_EQ(gfx::Size(320, 2231), layout_.size());
|
||||
}
|
||||
|
||||
@ -235,57 +220,44 @@ TEST_F(DocumentLayoutTest, ComputeTwoUpViewLayout) {
|
||||
{826, 1066}, {1066, 826}, {826, 1066}, {826, 900}};
|
||||
layout_.ComputeTwoUpViewLayout(page_sizes);
|
||||
ASSERT_EQ(4u, layout_.page_count());
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(240, 0, 826, 1066), layout_.page_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1066, 0, 1066, 826), layout_.page_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(240, 1066, 826, 1066), layout_.page_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1066, 1066, 826, 900), layout_.page_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(245, 3, 820, 1056),
|
||||
layout_.page_bounds_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1067, 3, 1060, 816),
|
||||
layout_.page_bounds_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(245, 1069, 820, 1056),
|
||||
layout_.page_bounds_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1067, 1069, 820, 890),
|
||||
layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(240, 0, 826, 1066), layout_.page_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(1066, 0, 1066, 826), layout_.page_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(240, 1066, 826, 1066), layout_.page_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(1066, 1066, 826, 900), layout_.page_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(245, 3, 820, 1056), layout_.page_bounds_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(1067, 3, 1060, 816), layout_.page_bounds_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(245, 1069, 820, 1056), layout_.page_bounds_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(1067, 1069, 820, 890), layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Size(2132, 2132), layout_.size());
|
||||
|
||||
// Test case where the widest page is on the left.
|
||||
page_sizes = {{1066, 826}, {820, 1056}, {820, 890}, {826, 1066}};
|
||||
layout_.ComputeTwoUpViewLayout(page_sizes);
|
||||
ASSERT_EQ(4u, layout_.page_count());
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(0, 0, 1066, 826), layout_.page_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1066, 0, 820, 1056), layout_.page_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(246, 1056, 820, 890), layout_.page_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1066, 1056, 826, 1066), layout_.page_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(5, 3, 1060, 816),
|
||||
layout_.page_bounds_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1067, 3, 814, 1046),
|
||||
layout_.page_bounds_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(251, 1059, 814, 880),
|
||||
layout_.page_bounds_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(1067, 1059, 820, 1056),
|
||||
layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(0, 0, 1066, 826), layout_.page_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(1066, 0, 820, 1056), layout_.page_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(246, 1056, 820, 890), layout_.page_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(1066, 1056, 826, 1066), layout_.page_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(5, 3, 1060, 816), layout_.page_bounds_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(1067, 3, 814, 1046), layout_.page_bounds_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(251, 1059, 814, 880), layout_.page_bounds_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(1067, 1059, 820, 1056), layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Size(2132, 2122), layout_.size());
|
||||
|
||||
// Test case where there's an odd # of pages.
|
||||
page_sizes = {{200, 300}, {400, 200}, {300, 600}, {250, 500}, {300, 400}};
|
||||
layout_.ComputeTwoUpViewLayout(page_sizes);
|
||||
ASSERT_EQ(5u, layout_.page_count());
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(200, 0, 200, 300), layout_.page_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(400, 0, 400, 200), layout_.page_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(100, 300, 300, 600), layout_.page_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(400, 300, 250, 500), layout_.page_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(100, 900, 300, 400), layout_.page_rect(4));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(205, 3, 194, 290),
|
||||
layout_.page_bounds_rect(0));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(401, 3, 394, 190),
|
||||
layout_.page_bounds_rect(1));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(105, 303, 294, 590),
|
||||
layout_.page_bounds_rect(2));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(401, 303, 244, 490),
|
||||
layout_.page_bounds_rect(3));
|
||||
EXPECT_PRED2(PpRectEq, pp::Rect(105, 903, 290, 390),
|
||||
layout_.page_bounds_rect(4));
|
||||
EXPECT_EQ(gfx::Rect(200, 0, 200, 300), layout_.page_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(400, 0, 400, 200), layout_.page_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(100, 300, 300, 600), layout_.page_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(400, 300, 250, 500), layout_.page_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(100, 900, 300, 400), layout_.page_rect(4));
|
||||
EXPECT_EQ(gfx::Rect(205, 3, 194, 290), layout_.page_bounds_rect(0));
|
||||
EXPECT_EQ(gfx::Rect(401, 3, 394, 190), layout_.page_bounds_rect(1));
|
||||
EXPECT_EQ(gfx::Rect(105, 303, 294, 590), layout_.page_bounds_rect(2));
|
||||
EXPECT_EQ(gfx::Rect(401, 303, 244, 490), layout_.page_bounds_rect(3));
|
||||
EXPECT_EQ(gfx::Rect(105, 903, 290, 390), layout_.page_bounds_rect(4));
|
||||
EXPECT_EQ(gfx::Size(800, 1300), layout_.size());
|
||||
}
|
||||
|
||||
|
@ -1159,7 +1159,7 @@ void OutOfProcessInstance::ProposeDocumentLayout(const DocumentLayout& layout) {
|
||||
dimensions.Set(kJSLayoutOptions, VarFromValue(layout.options().ToValue()));
|
||||
pp::VarArray page_dimensions_array;
|
||||
for (size_t i = 0; i < layout.page_count(); ++i) {
|
||||
const pp::Rect& page_rect = layout.page_rect(i);
|
||||
const gfx::Rect& page_rect = layout.page_rect(i);
|
||||
pp::VarDictionary page_dimensions;
|
||||
page_dimensions.Set(kJSPageX, pp::Var(page_rect.x()));
|
||||
page_dimensions.Set(kJSPageY, pp::Var(page_rect.y()));
|
||||
|
@ -2698,7 +2698,7 @@ void PDFiumEngine::RefreshCurrentDocumentLayout() {
|
||||
DCHECK_EQ(pages_.size(), layout_.page_count());
|
||||
for (size_t i = 0; i < layout_.page_count(); ++i) {
|
||||
// TODO(kmoon): This should be the only place that sets |PDFiumPage::rect_|.
|
||||
pages_[i]->set_rect(RectFromPPRect(layout_.page_bounds_rect(i)));
|
||||
pages_[i]->set_rect(layout_.page_bounds_rect(i));
|
||||
}
|
||||
|
||||
layout_.clear_dirty();
|
||||
|
Reference in New Issue
Block a user