Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
flutter::testing::WindowsConfigBuilder Class Reference

#include <windows_test_config_builder.h>

Public Member Functions

 WindowsConfigBuilder (WindowsTestContext &context)
 
 ~WindowsConfigBuilder ()
 
FlutterDesktopEngineProperties GetEngineProperties () const
 
void SetDartEntrypoint (std::string_view entrypoint)
 
void SetUIThreadPolicy (FlutterDesktopUIThreadPolicy policy)
 
void AddDartEntrypointArgument (std::string_view arg)
 
void SetGpuPreference (FlutterDesktopGpuPreference gpu_preference)
 
void SetAccessibilityMode (FlutterDesktopAccessibilityMode accessibility_mode)
 
EnginePtr InitializeEngine () const
 
EnginePtr RunHeadless () const
 
ViewControllerPtr Run () const
 

Detailed Description

Definition at line 47 of file windows_test_config_builder.h.

Constructor & Destructor Documentation

◆ WindowsConfigBuilder()

flutter::testing::WindowsConfigBuilder::WindowsConfigBuilder ( WindowsTestContext context)
explicit

Definition at line 21 of file windows_test_config_builder.cc.

22 : context_(context) {}

◆ ~WindowsConfigBuilder()

flutter::testing::WindowsConfigBuilder::~WindowsConfigBuilder ( )
default

Member Function Documentation

◆ AddDartEntrypointArgument()

void flutter::testing::WindowsConfigBuilder::AddDartEntrypointArgument ( std::string_view  arg)

Definition at line 38 of file windows_test_config_builder.cc.

38 {
39 if (arg.empty()) {
40 return;
41 }
42
43 dart_entrypoint_arguments_.emplace_back(std::move(arg));
44}

◆ GetEngineProperties()

FlutterDesktopEngineProperties flutter::testing::WindowsConfigBuilder::GetEngineProperties ( ) const

Definition at line 56 of file windows_test_config_builder.cc.

57 {
58 FlutterDesktopEngineProperties engine_properties = {};
59 engine_properties.assets_path = context_.GetAssetsPath().c_str();
60 engine_properties.icu_data_path = context_.GetIcuDataPath().c_str();
61
62 // Set Dart entrypoint.
63 engine_properties.dart_entrypoint = dart_entrypoint_.c_str();
64
65 // Set Dart entrypoint argc, argv.
66 std::vector<const char*> dart_args;
67 dart_args.reserve(dart_entrypoint_arguments_.size());
68 for (const auto& arg : dart_entrypoint_arguments_) {
69 dart_args.push_back(arg.c_str());
70 }
71 if (!dart_args.empty()) {
72 engine_properties.dart_entrypoint_argv = dart_args.data();
73 engine_properties.dart_entrypoint_argc = dart_args.size();
74 } else {
75 // Clear this out in case this is not the first engine launch from the
76 // embedder config builder.
77 engine_properties.dart_entrypoint_argv = nullptr;
78 engine_properties.dart_entrypoint_argc = 0;
79 }
80
81 engine_properties.gpu_preference = gpu_preference_;
82 engine_properties.ui_thread_policy = ui_thread_policy_;
83 engine_properties.accessibility_mode = accessibility_mode_;
84
85 return engine_properties;
86}
const std::wstring & GetIcuDataPath() const
const std::wstring & GetAssetsPath() const
FlutterDesktopAccessibilityMode accessibility_mode
FlutterDesktopUIThreadPolicy ui_thread_policy
FlutterDesktopGpuPreference gpu_preference

References FlutterDesktopEngineProperties::accessibility_mode, FlutterDesktopEngineProperties::assets_path, FlutterDesktopEngineProperties::dart_entrypoint, FlutterDesktopEngineProperties::dart_entrypoint_argc, FlutterDesktopEngineProperties::dart_entrypoint_argv, flutter::testing::WindowsTestContext::GetAssetsPath(), flutter::testing::WindowsTestContext::GetIcuDataPath(), FlutterDesktopEngineProperties::gpu_preference, FlutterDesktopEngineProperties::icu_data_path, and FlutterDesktopEngineProperties::ui_thread_policy.

Referenced by InitializeEngine().

◆ InitializeEngine()

EnginePtr flutter::testing::WindowsConfigBuilder::InitializeEngine ( ) const

Definition at line 88 of file windows_test_config_builder.cc.

88 {
90 return EnginePtr{FlutterDesktopEngineCreate(&engine_properties)};
91}
FlutterDesktopEngineProperties GetEngineProperties() const
std::unique_ptr< FlutterDesktopEngine, EngineDeleter > EnginePtr
FlutterDesktopEngineRef FlutterDesktopEngineCreate(const FlutterDesktopEngineProperties *engine_properties)

References FlutterDesktopEngineCreate(), and GetEngineProperties().

Referenced by Run(), RunHeadless(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ Run()

ViewControllerPtr flutter::testing::WindowsConfigBuilder::Run ( ) const

Definition at line 114 of file windows_test_config_builder.cc.

114 {
115 InitializeCOM();
116
118 if (!engine) {
119 return {};
120 }
121
122 // Register native functions.
123 FlutterWindowsEngine* windows_engine =
124 reinterpret_cast<FlutterWindowsEngine*>(engine.get());
125 windows_engine->SetRootIsolateCreateCallback(
126 context_.GetRootIsolateCallback());
127
128 int width = 600;
129 int height = 400;
130
131 // Create a view controller that owns the engine.
132 ViewControllerPtr controller{
134 if (!controller) {
135 return {};
136 }
137
138 return controller;
139}
FlutterEngine engine
Definition main.cc:84
std::unique_ptr< FlutterDesktopViewController, ViewControllerDeleter > ViewControllerPtr
int32_t height
int32_t width
FlutterDesktopViewControllerRef FlutterDesktopViewControllerCreate(int width, int height, FlutterDesktopEngineRef engine)

References engine, FlutterDesktopViewControllerCreate(), flutter::testing::WindowsTestContext::GetRootIsolateCallback(), height, InitializeEngine(), flutter::FlutterWindowsEngine::SetRootIsolateCreateCallback(), and width.

Referenced by flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ RunHeadless()

EnginePtr flutter::testing::WindowsConfigBuilder::RunHeadless ( ) const

Definition at line 93 of file windows_test_config_builder.cc.

93 {
94 InitializeCOM();
95
97 if (!engine) {
98 return {};
99 }
100
101 // Register native functions.
102 FlutterWindowsEngine* windows_engine =
103 reinterpret_cast<FlutterWindowsEngine*>(engine.get());
104 windows_engine->SetRootIsolateCreateCallback(
105 context_.GetRootIsolateCallback());
106
107 if (!FlutterDesktopEngineRun(engine.get(), /* entry_point */ nullptr)) {
108 return {};
109 }
110
111 return engine;
112}
bool FlutterDesktopEngineRun(FlutterDesktopEngineRef engine, const char *entry_point)

References engine, FlutterDesktopEngineRun(), flutter::testing::WindowsTestContext::GetRootIsolateCallback(), InitializeEngine(), and flutter::FlutterWindowsEngine::SetRootIsolateCreateCallback().

Referenced by flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ SetAccessibilityMode()

void flutter::testing::WindowsConfigBuilder::SetAccessibilityMode ( FlutterDesktopAccessibilityMode  accessibility_mode)

Definition at line 51 of file windows_test_config_builder.cc.

52 {
53 accessibility_mode_ = accessibility_mode;
54}

Referenced by flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ SetDartEntrypoint()

◆ SetGpuPreference()

void flutter::testing::WindowsConfigBuilder::SetGpuPreference ( FlutterDesktopGpuPreference  gpu_preference)

Definition at line 46 of file windows_test_config_builder.cc.

47 {
48 gpu_preference_ = gpu_preference;
49}

Referenced by flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ SetUIThreadPolicy()

void flutter::testing::WindowsConfigBuilder::SetUIThreadPolicy ( FlutterDesktopUIThreadPolicy  policy)

Definition at line 33 of file windows_test_config_builder.cc.

34 {
35 ui_thread_policy_ = policy;
36}
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network policy

References flutter::policy.


The documentation for this class was generated from the following files: