mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Merge pull request #2335 from devoncarew/start_paused
some work towards a --start-paused flag
This commit is contained in:
commit
7204fc0663
@ -93,6 +93,10 @@ static const char* kDartCheckedModeArgs[] = {
|
||||
"--error_on_bad_override",
|
||||
};
|
||||
|
||||
static const char* kDartStartPausedArgs[]{
|
||||
"--pause_isolates_on_start",
|
||||
};
|
||||
|
||||
void IsolateShutdownCallback(void* callback_data) {
|
||||
// TODO(dart)
|
||||
}
|
||||
@ -295,6 +299,9 @@ void InitDartVM() {
|
||||
if (enable_checked_mode)
|
||||
args.append(kDartCheckedModeArgs, arraysize(kDartCheckedModeArgs));
|
||||
|
||||
if (SkySettings::Get().start_paused)
|
||||
args.append(kDartStartPausedArgs, arraysize(kDartStartPausedArgs));
|
||||
|
||||
CHECK(Dart_SetVMFlags(args.size(), args.data()));
|
||||
|
||||
{
|
||||
|
||||
@ -9,6 +9,7 @@ namespace blink {
|
||||
|
||||
struct SkySettings {
|
||||
bool enable_observatory = false;
|
||||
bool start_paused = false;
|
||||
bool enable_dart_checked_mode = false;
|
||||
|
||||
static const SkySettings& Get();
|
||||
|
||||
@ -45,6 +45,9 @@ public class SkyActivity extends Activity {
|
||||
if (intent.getBooleanExtra("trace-startup", false)) {
|
||||
args.add("--trace-startup");
|
||||
}
|
||||
if (intent.getBooleanExtra("start-paused", false)) {
|
||||
args.add("--start-paused");
|
||||
}
|
||||
if (!args.isEmpty()) {
|
||||
String[] argsArray = new String[args.size()];
|
||||
return args.toArray(argsArray);
|
||||
|
||||
@ -83,6 +83,7 @@ void Shell::InitStandalone() {
|
||||
blink::SkySettings settings;
|
||||
settings.enable_observatory =
|
||||
!command_line.HasSwitch(switches::kNonInteractive);
|
||||
settings.start_paused = command_line.HasSwitch(switches::kStartPaused);
|
||||
settings.enable_dart_checked_mode =
|
||||
command_line.HasSwitch(switches::kEnableCheckedMode);
|
||||
blink::SkySettings::Set(settings);
|
||||
|
||||
@ -15,12 +15,14 @@ const char kFLX[] = "flx";
|
||||
const char kHelp[] = "help";
|
||||
const char kNonInteractive[] = "non-interactive";
|
||||
const char kPackageRoot[] = "package-root";
|
||||
const char kStartPaused[] = "start-paused";
|
||||
const char kTraceStartup[] = "trace-startup";
|
||||
|
||||
void PrintUsage(const std::string& executable_name) {
|
||||
std::cerr << "Usage: " << executable_name
|
||||
<< " --" << kEnableCheckedMode
|
||||
<< " --" << kNonInteractive
|
||||
<< " --" << kStartPaused
|
||||
<< " --" << kTraceStartup
|
||||
<< " --" << kFLX << "=FLX"
|
||||
<< " --" << kPackageRoot << "=PACKAGE_ROOT"
|
||||
|
||||
@ -16,6 +16,7 @@ extern const char kFLX[];
|
||||
extern const char kHelp[];
|
||||
extern const char kNonInteractive[];
|
||||
extern const char kPackageRoot[];
|
||||
extern const char kStartPaused[];
|
||||
extern const char kTraceStartup[];
|
||||
|
||||
void PrintUsage(const std::string& executable_name);
|
||||
|
||||
@ -32,7 +32,7 @@ static const char* ObservatoryInvoke(const char* method,
|
||||
intptr_t num_params,
|
||||
void* user_data) {
|
||||
if (user_data == nullptr) {
|
||||
// During the desctruction on the tracing controller, the user data is
|
||||
// During the destruction of the tracing controller, the user data is
|
||||
// cleared. Make sure that observatory requests to service calls are not
|
||||
// attempted after tracing controller destruction.
|
||||
return strdup(kObservatoryResultFail);
|
||||
@ -54,8 +54,7 @@ static const char* ObservatoryInvoke(const char* method,
|
||||
// Flushing the trace log requires an active message loop. However,
|
||||
// observatory callbacks are made on a dart worker thread. We setup a
|
||||
// message loop manually and tell the flush completion handler to
|
||||
// terminate
|
||||
// the loop when done
|
||||
// terminate the loop when done
|
||||
base::MessageLoop worker_thread_loop;
|
||||
|
||||
base::FilePath temp_dir;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user