5#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_RUNNER_H_
6#define FLUTTER_SHELL_PLATFORM_FUCHSIA_FLUTTER_RUNNER_H_
9#include <unordered_map>
11#include <fuchsia/component/runner/cpp/fidl.h>
12#include <lib/async-loop/cpp/loop.h>
13#include <lib/sys/cpp/component_context.h>
14#include <lib/trace-engine/instrumentation.h>
15#include <lib/trace/observer.h>
18#include "flutter/fml/macros.h"
21#include "lib/fidl/cpp/binding_set.h"
32 :
public fuchsia::component::runner::ComponentRunner {
45 fuchsia::component::runner::ComponentStartInfo start_info,
46 fidl::InterfaceRequest<fuchsia::component::runner::ComponentController>
51 void RegisterComponentV2(
52 fidl::InterfaceRequest<fuchsia::component::runner::ComponentRunner>
57 void OnComponentV2Terminate(
const ComponentV2* component);
61#if !defined(DART_PRODUCT)
62 void SetupTraceObserver();
66 static bool SetupICUInternal();
68 static bool SetupTZDataInternal();
69#if defined(FRIEND_TEST)
70 FRIEND_TEST(RunnerTZDataTest, LoadsWithTZDataPresent);
71 FRIEND_TEST(RunnerTZDataTest, LoadsWithoutTZDataPresent);
81 fidl::BindingSet<fuchsia::component::runner::ComponentRunner>
82 active_components_v2_bindings_;
85 std::unordered_map<const ComponentV2*, ActiveComponentV2>
86 active_components_v2_;
88#if !defined(DART_PRODUCT)
90 std::unique_ptr<dart_utils::VMServiceObject> vmservice_object_;
92 std::unique_ptr<trace::TraceObserver> trace_observer_;
93 trace_prolonged_context_t* prolonged_context_;
96 FML_DISALLOW_COPY_AND_ASSIGN(
Runner);
Runner(fml::RefPtr< fml::TaskRunner > task_runner, sys::ComponentContext *context)
sys::ComponentContext * ComponentContext()