// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "flutter/shell/platform/common/engine_switches.h" #include #include #include #include namespace flutter { std::vector GetSwitchesFromEnvironment() { std::vector switches; // Read engine switches from the environment in debug/profile. If release mode // support is needed in the future, it should likely use a whitelist. #ifndef FLUTTER_RELEASE const char* switch_count_key = "FLUTTER_ENGINE_SWITCHES"; const int kMaxSwitchCount = 50; const char* switch_count_string = std::getenv(switch_count_key); if (!switch_count_string) { return switches; } int switch_count = std::min(kMaxSwitchCount, atoi(switch_count_string)); for (int i = 1; i <= switch_count; ++i) { std::ostringstream switch_key; switch_key << "FLUTTER_ENGINE_SWITCH_" << i; const char* switch_value = std::getenv(switch_key.str().c_str()); if (switch_value) { std::ostringstream switch_value_as_flag; switch_value_as_flag << "--" << switch_value; switches.push_back(switch_value_as_flag.str()); } else { std::cerr << switch_count << " keys expected from " << switch_count_key << ", but " << switch_key.str() << " is missing." << std::endl; } } #endif // !FLUTTER_RELEASE return switches; } } // namespace flutter