Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 825ca5a

Browse files
author
Chris Yang
committed
fix external_view_embedder_unittests
1 parent fb89d64 commit 825ca5a

File tree

2 files changed

+32
-17
lines changed

2 files changed

+32
-17
lines changed

shell/platform/android/external_view_embedder/external_view_embedder.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ SkRect AndroidExternalViewEmbedder::GetViewRect(int view_id) const {
6363
const EmbeddedViewParams& params = view_params_.at(view_id);
6464
// TODO(egarciad): The rect should be computed from the mutator stack.
6565
// https://github.com/flutter/flutter/issues/59821
66-
return SkRect::MakeXYWH(params.finalBoundingRect().x(), //
67-
params.finalBoundingRect().y(), //
66+
return SkRect::MakeXYWH(params.finalBoundingRect().x(), //
67+
params.finalBoundingRect().y(), //
6868
params.sizePoints().width() * device_pixel_ratio_, //
6969
params.sizePoints().height() * device_pixel_ratio_ //
7070
);

shell/platform/android/external_view_embedder/external_view_embedder_unittests.cc

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,11 @@ TEST(AndroidExternalViewEmbedder, PlatformViewRect) {
198198
embedder->BeginFrame(SkISize::Make(100, 100), nullptr, 1.5,
199199
raster_thread_merger);
200200

201-
auto view_params = std::make_unique<EmbeddedViewParams>();
202-
view_params->offsetPixels = SkPoint::Make(10, 20);
203-
view_params->sizePoints = SkSize::Make(30, 40);
201+
MutatorsStack stack;
202+
SkMatrix matrix = SkMatrix::MakeTrans(10, 20);
203+
stack.PushTransform(matrix);
204+
auto view_params =
205+
std::make_unique<EmbeddedViewParams>(matrix, SkSize::Make(30, 40), stack);
204206

205207
auto view_id = 0;
206208
embedder->PrerollCompositeEmbeddedView(view_id, std::move(view_params));
@@ -219,14 +221,21 @@ TEST(AndroidExternalViewEmbedder, PlatformViewRect__ChangedParams) {
219221
raster_thread_merger);
220222

221223
auto view_id = 0;
222-
auto view_params_1 = std::make_unique<EmbeddedViewParams>();
223-
view_params_1->offsetPixels = SkPoint::Make(10, 20);
224-
view_params_1->sizePoints = SkSize::Make(30, 40);
224+
225+
MutatorsStack stack1;
226+
SkMatrix matrix1 = SkMatrix::MakeTrans(10, 20);
227+
stack1.PushTransform(matrix1);
228+
auto view_params_1 = std::make_unique<EmbeddedViewParams>(
229+
matrix1, SkSize::Make(30, 40), stack1);
230+
225231
embedder->PrerollCompositeEmbeddedView(view_id, std::move(view_params_1));
226232

227-
auto view_params_2 = std::make_unique<EmbeddedViewParams>();
228-
view_params_2->offsetPixels = SkPoint::Make(50, 60);
229-
view_params_2->sizePoints = SkSize::Make(70, 80);
233+
MutatorsStack stack2;
234+
SkMatrix matrix2 = SkMatrix::MakeTrans(50, 60);
235+
stack2.PushTransform(matrix2);
236+
auto view_params_2 = std::make_unique<EmbeddedViewParams>(
237+
matrix2, SkSize::Make(70, 80), stack2);
238+
230239
embedder->PrerollCompositeEmbeddedView(view_id, std::move(view_params_2));
231240

232241
ASSERT_EQ(SkRect::MakeXYWH(50, 60, 105, 120), embedder->GetViewRect(view_id));
@@ -281,11 +290,14 @@ TEST(AndroidExternalViewEmbedder, SubmitFrame__RecycleSurfaces) {
281290
embedder->BeginFrame(frame_size, nullptr, 1.5, raster_thread_merger);
282291

283292
// Add an Android view.
284-
auto view_params_1 = std::make_unique<EmbeddedViewParams>();
285-
view_params_1->offsetPixels = SkPoint::Make(100, 100);
293+
MutatorsStack stack1;
294+
SkMatrix matrix1 = SkMatrix::MakeTrans(100, 100);
295+
stack1.PushTransform(matrix1);
286296
// TODO(egarciad): Investigate why Flow applies the device pixel ratio to
287297
// the offsetPixels, but not the sizePoints.
288-
view_params_1->sizePoints = SkSize::Make(200, 200);
298+
auto view_params_1 = std::make_unique<EmbeddedViewParams>(
299+
matrix1, SkSize::Make(200, 200), stack1);
300+
289301
embedder->PrerollCompositeEmbeddedView(0, std::move(view_params_1));
290302
// This is the recording canvas flow writes to.
291303
auto canvas_1 = embedder->CompositeEmbeddedView(0);
@@ -329,11 +341,14 @@ TEST(AndroidExternalViewEmbedder, SubmitFrame__RecycleSurfaces) {
329341
embedder->BeginFrame(frame_size, nullptr, 1.5, raster_thread_merger);
330342

331343
// Add an Android view.
332-
auto view_params_1 = std::make_unique<EmbeddedViewParams>();
333-
view_params_1->offsetPixels = SkPoint::Make(100, 100);
344+
MutatorsStack stack1;
345+
SkMatrix matrix1 = SkMatrix::MakeTrans(100, 100);
346+
stack1.PushTransform(matrix1);
334347
// TODO(egarciad): Investigate why Flow applies the device pixel ratio to
335348
// the offsetPixels, but not the sizePoints.
336-
view_params_1->sizePoints = SkSize::Make(200, 200);
349+
auto view_params_1 = std::make_unique<EmbeddedViewParams>(
350+
matrix1, SkSize::Make(200, 200), stack1);
351+
337352
embedder->PrerollCompositeEmbeddedView(0, std::move(view_params_1));
338353
// This is the recording canvas flow writes to.
339354
auto canvas_1 = embedder->CompositeEmbeddedView(0);

0 commit comments

Comments
 (0)