@@ -2649,15 +2649,12 @@ - (void)testFlutterClippingMaskViewPoolReuseViewsAfterRecycle {
26492649 [[[FlutterClippingMaskViewPool alloc ] initWithCapacity: 2 ] autorelease ];
26502650 FlutterClippingMaskView* view1 = [pool getMaskViewWithFrame: CGRectZero];
26512651 FlutterClippingMaskView* view2 = [pool getMaskViewWithFrame: CGRectZero];
2652- [pool insertViewToPoolIfNeeded: view1];
2653- [pool insertViewToPoolIfNeeded: view2];
2652+ [pool recycleMaskViews ];
26542653 CGRect newRect = CGRectMake (0 , 0 , 10 , 10 );
26552654 FlutterClippingMaskView* view3 = [pool getMaskViewWithFrame: newRect];
26562655 FlutterClippingMaskView* view4 = [pool getMaskViewWithFrame: newRect];
2657- // view3 and view4 should randomly get either of view1 and view2.
2658- NSSet * set1 = [NSSet setWithObjects: view1, view2, nil ];
2659- NSSet * set2 = [NSSet setWithObjects: view3, view4, nil ];
2660- XCTAssertEqualObjects (set1, set2);
2656+ XCTAssertEqual (view1, view3);
2657+ XCTAssertEqual (view2, view4);
26612658 XCTAssertTrue (CGRectEqualToRect (view3.frame , newRect));
26622659 XCTAssertTrue (CGRectEqualToRect (view4.frame , newRect));
26632660}
@@ -2730,17 +2727,17 @@ - (void)testClipMaskViewIsReused {
27302727 auto embeddedViewParams1 = std::make_unique<flutter::EmbeddedViewParams>(
27312728 screenScaleMatrix, SkSize::Make (10 , 10 ), stack1);
27322729
2730+ flutter::MutatorsStack stack2;
2731+ auto embeddedViewParams2 = std::make_unique<flutter::EmbeddedViewParams>(
2732+ screenScaleMatrix, SkSize::Make (10 , 10 ), stack2);
2733+
27332734 flutterPlatformViewsController->PrerollCompositeEmbeddedView (1 , std::move (embeddedViewParams1));
27342735 flutterPlatformViewsController->CompositeEmbeddedView (1 );
27352736 UIView* childClippingView1 = gMockPlatformView .superview .superview ;
27362737 UIView* maskView1 = childClippingView1.maskView ;
27372738 XCTAssertNotNil (maskView1);
27382739
27392740 // Composite a new frame.
2740- flutterPlatformViewsController->BeginFrame (SkISize::Make (100 , 100 ));
2741- flutter::MutatorsStack stack2;
2742- auto embeddedViewParams2 = std::make_unique<flutter::EmbeddedViewParams>(
2743- screenScaleMatrix, SkSize::Make (10 , 10 ), stack2);
27442741 auto embeddedViewParams3 = std::make_unique<flutter::EmbeddedViewParams>(
27452742 screenScaleMatrix, SkSize::Make (10 , 10 ), stack2);
27462743 flutterPlatformViewsController->PrerollCompositeEmbeddedView (1 , std::move (embeddedViewParams3));
@@ -2766,77 +2763,6 @@ - (void)testClipMaskViewIsReused {
27662763 XCTAssertNil (childClippingView1.maskView );
27672764}
27682765
2769- - (void )testDifferentClipMaskViewIsUsedForEachView {
2770- flutter::FlutterPlatformViewsTestMockPlatformViewDelegate mock_delegate;
2771- auto thread_task_runner = CreateNewThread (" FlutterPlatformViewsTest" );
2772- flutter::TaskRunners runners (/* label=*/ self.name .UTF8String ,
2773- /* platform=*/ thread_task_runner,
2774- /* raster=*/ thread_task_runner,
2775- /* ui=*/ thread_task_runner,
2776- /* io=*/ thread_task_runner);
2777- auto flutterPlatformViewsController = std::make_shared<flutter::FlutterPlatformViewsController>();
2778- auto platform_view = std::make_unique<flutter::PlatformViewIOS>(
2779- /* delegate=*/ mock_delegate,
2780- /* rendering_api=*/ flutter::IOSRenderingAPI::kSoftware ,
2781- /* platform_views_controller=*/ flutterPlatformViewsController,
2782- /* task_runners=*/ runners);
2783-
2784- FlutterPlatformViewsTestMockFlutterPlatformFactory* factory =
2785- [[FlutterPlatformViewsTestMockFlutterPlatformFactory new ] autorelease ];
2786- flutterPlatformViewsController->RegisterViewFactory (
2787- factory, @" MockFlutterPlatformView" ,
2788- FlutterPlatformViewGestureRecognizersBlockingPolicyEager);
2789- FlutterResult result = ^(id result) {
2790- };
2791-
2792- flutterPlatformViewsController->OnMethodCall (
2793- [FlutterMethodCall
2794- methodCallWithMethodName: @" create"
2795- arguments: @{@" id" : @1 , @" viewType" : @" MockFlutterPlatformView" }],
2796- result);
2797- UIView* view1 = gMockPlatformView ;
2798-
2799- // This overwrites `gMockPlatformView` to another view.
2800- flutterPlatformViewsController->OnMethodCall (
2801- [FlutterMethodCall
2802- methodCallWithMethodName: @" create"
2803- arguments: @{@" id" : @2 , @" viewType" : @" MockFlutterPlatformView" }],
2804- result);
2805- UIView* view2 = gMockPlatformView ;
2806-
2807- XCTAssertNotNil (gMockPlatformView );
2808- UIView* mockFlutterView = [[[UIView alloc ] initWithFrame: CGRectMake (0 , 0 , 10 , 10 )] autorelease ];
2809- flutterPlatformViewsController->SetFlutterView (mockFlutterView);
2810- // Create embedded view params
2811- flutter::MutatorsStack stack1;
2812- // Layer tree always pushes a screen scale factor to the stack
2813- SkMatrix screenScaleMatrix =
2814- SkMatrix::Scale ([UIScreen mainScreen ].scale , [UIScreen mainScreen ].scale );
2815- stack1.PushTransform (screenScaleMatrix);
2816- // Push a clip rect
2817- SkRect rect = SkRect::MakeXYWH (2 , 2 , 3 , 3 );
2818- stack1.PushClipRect (rect);
2819-
2820- auto embeddedViewParams1 = std::make_unique<flutter::EmbeddedViewParams>(
2821- screenScaleMatrix, SkSize::Make (10 , 10 ), stack1);
2822-
2823- flutter::MutatorsStack stack2;
2824- stack2.PushClipRect (rect);
2825- auto embeddedViewParams2 = std::make_unique<flutter::EmbeddedViewParams>(
2826- screenScaleMatrix, SkSize::Make (10 , 10 ), stack2);
2827-
2828- flutterPlatformViewsController->PrerollCompositeEmbeddedView (1 , std::move (embeddedViewParams1));
2829- flutterPlatformViewsController->CompositeEmbeddedView (1 );
2830- UIView* childClippingView1 = view1.superview .superview ;
2831-
2832- flutterPlatformViewsController->PrerollCompositeEmbeddedView (2 , std::move (embeddedViewParams2));
2833- flutterPlatformViewsController->CompositeEmbeddedView (2 );
2834- UIView* childClippingView2 = view2.superview .superview ;
2835- UIView* maskView1 = childClippingView1.maskView ;
2836- UIView* maskView2 = childClippingView2.maskView ;
2837- XCTAssertNotEqual (maskView1, maskView2);
2838- }
2839-
28402766// Return true if a correct visual effect view is found. It also implies all the validation in this
28412767// method passes.
28422768//
0 commit comments