提交 8a2d3374 编写于 作者: P P.Y. Laligand 提交者: GitHub

Improve the names of Flutter processes. (#3819)

上级 ca783610
......@@ -123,10 +123,10 @@ void App::StartApplication(
app::ApplicationPackagePtr application,
app::ApplicationStartupInfoPtr startup_info,
fidl::InterfaceRequest<app::ApplicationController> controller) {
// Name this process after the url of the application being launched.
std::string label =
"flutter:" + GetLabelFromURL(startup_info->launch_info->url);
mx::process::self().set_property(MX_PROP_NAME, label.c_str(), label.size());
if (controllers_.empty()) {
// Name this process after the url of the first application being launched.
base_label_ = "flutter:" + GetLabelFromURL(startup_info->launch_info->url);
}
std::unique_ptr<ApplicationControllerImpl> impl =
std::make_unique<ApplicationControllerImpl>(this, std::move(application),
......@@ -134,6 +134,8 @@ void App::StartApplication(
std::move(controller));
ApplicationControllerImpl* key = impl.get();
controllers_.emplace(key, std::move(impl));
UpdateProcessLabel();
}
void App::Destroy(ApplicationControllerImpl* controller) {
......@@ -141,6 +143,23 @@ void App::Destroy(ApplicationControllerImpl* controller) {
if (it == controllers_.end())
return;
controllers_.erase(it);
UpdateProcessLabel();
}
void App::UpdateProcessLabel() {
std::string label;
if (controllers_.size() < 2) {
label = base_label_;
} else {
std::string suffix = " (+" + std::to_string(controllers_.size() - 1) + ")";
if (base_label_.size() + suffix.size() <= MX_MAX_NAME_LEN - 1) {
label = base_label_ + suffix;
} else {
label = base_label_.substr(0, MX_MAX_NAME_LEN - 1 - suffix.size() - 3) +
"..." + suffix;
}
}
mx::process::self().set_property(MX_PROP_NAME, label.c_str(), label.size());
}
} // namespace flutter_runner
......@@ -45,6 +45,7 @@ class App : public app::ApplicationRunner {
void WaitForPlatformViewsIdsUIThread(
std::vector<PlatformViewInfo>* platform_view_ids,
ftl::AutoResetWaitableEvent* latch);
void UpdateProcessLabel();
std::unique_ptr<app::ApplicationContext> context_;
std::unique_ptr<Thread> gpu_thread_;
......@@ -53,6 +54,7 @@ class App : public app::ApplicationRunner {
std::unordered_map<ApplicationControllerImpl*,
std::unique_ptr<ApplicationControllerImpl>>
controllers_;
std::string base_label_;
FTL_DISALLOW_COPY_AND_ASSIGN(App);
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册