未验证 提交 816baf28 编写于 作者: Z Zachary Anderson 提交者: GitHub

[Fuchsia] Reads a config file when running from source (#4669)

上级 99319a39
...@@ -50,6 +50,7 @@ constexpr char kKeyEventChannel[] = "flutter/keyevent"; ...@@ -50,6 +50,7 @@ constexpr char kKeyEventChannel[] = "flutter/keyevent";
constexpr char kTextInputChannel[] = "flutter/textinput"; constexpr char kTextInputChannel[] = "flutter/textinput";
constexpr char kFlutterPlatformChannel[] = "flutter/platform"; constexpr char kFlutterPlatformChannel[] = "flutter/platform";
constexpr char kFuchsiaPackageResourceDirectory[] = "pkg/data"; constexpr char kFuchsiaPackageResourceDirectory[] = "pkg/data";
constexpr char kDartPkgContentsKey[] = "dart-pkg/contents";
void SetThreadName(fxl::RefPtr<fxl::TaskRunner> runner, std::string name) { void SetThreadName(fxl::RefPtr<fxl::TaskRunner> runner, std::string name) {
runner->PostTask([name]() { runner->PostTask([name]() {
...@@ -290,11 +291,16 @@ void RuntimeHolder::CreateView( ...@@ -290,11 +291,16 @@ void RuntimeHolder::CreateView(
} else if (!kernel.empty()) { } else if (!kernel.empty()) {
runtime_->dart_controller()->RunFromKernel(std::move(kernel)); runtime_->dart_controller()->RunFromKernel(std::move(kernel));
} else if (maybe_running_from_source) { } else if (maybe_running_from_source) {
std::string basename = files::GetBaseName(script_uri); std::vector<uint8_t> data;
std::string main_dart = "pkg/data/" + basename + "/lib/main.dart"; if (!GetAssetAsBuffer(kDartPkgContentsKey, &data)) {
FXL_LOG(ERROR) << "Contents file not found for " << script_uri;
return;
}
std::string package_name(data.begin(), data.end());
std::string main_dart = "pkg/data/dart-pkg/" + package_name + "/lib/main.dart";
FXL_LOG(INFO) << "Running from source with entrypoint: '" << main_dart FXL_LOG(INFO) << "Running from source with entrypoint: '" << main_dart
<< "'"; << "'";
runtime_->dart_controller()->RunFromSource(main_dart, "pkg/data/.packages"); runtime_->dart_controller()->RunFromSource(main_dart, "pkg/data/dart-pkg/.packages");
} else { } else {
runtime_->dart_controller()->RunFromScriptSnapshot(snapshot.data(), runtime_->dart_controller()->RunFromScriptSnapshot(snapshot.data(),
snapshot.size()); snapshot.size());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册