Add support for snapshot loading to Sky
This CL adds the ability to load Dart snapshot files created by sky_packager in Sky. Using a snapshot lets us transmit all the code for an app in a single blob and should improve startup time. Later CLs will make this codepath easier to use and evaluate performance. R=eseidel@chromium.org Review URL: https://codereview.chromium.org/1197133004.
This commit is contained in:
parent
2c58c80af2
commit
69e7997ae9
@ -15,9 +15,6 @@
|
||||
|
||||
namespace {
|
||||
|
||||
static const char kSkyInternalsLibraryName[] = "dart:sky.internals";
|
||||
static const char kSkyInternalsURL[] = "package:sky/internals.dart";
|
||||
|
||||
std::string Fetch(const std::string& url) {
|
||||
base::FilePath path(url);
|
||||
std::string source;
|
||||
@ -122,14 +119,6 @@ Dart_Handle HandleLibraryTag(Dart_LibraryTag tag,
|
||||
return Dart_NewApiError("Unknown library tag.");
|
||||
}
|
||||
|
||||
void LoadSkyInternals() {
|
||||
DartApiScope api_scope;
|
||||
|
||||
Dart_Handle library_name = StringToDart(kSkyInternalsLibraryName);
|
||||
std::string url = GetLoader().CanonicalizePackageURL(kSkyInternalsURL);
|
||||
LogIfError(Dart_LoadLibrary(library_name, StringToDart(Fetch(url)), 0, 0));
|
||||
}
|
||||
|
||||
void LoadScript(const std::string& url) {
|
||||
LogIfError(
|
||||
Dart_LoadScript(StringToDart(url), StringToDart(Fetch(url)), 0, 0));
|
||||
|
@ -12,7 +12,6 @@
|
||||
Dart_Handle HandleLibraryTag(Dart_LibraryTag tag,
|
||||
Dart_Handle library,
|
||||
Dart_Handle url);
|
||||
void LoadSkyInternals();
|
||||
void LoadScript(const std::string& url);
|
||||
|
||||
#endif // SKY_TOOLS_PACKAGER_LOADER_H_
|
||||
|
@ -32,7 +32,6 @@ Dart_Isolate CreateDartIsolate() {
|
||||
|
||||
CHECK(isolate) << error;
|
||||
CHECK(!LogIfError(Dart_SetLibraryTagHandler(HandleLibraryTag)));
|
||||
LoadSkyInternals();
|
||||
|
||||
Dart_ExitIsolate();
|
||||
return isolate;
|
||||
|
Loading…
x
Reference in New Issue
Block a user