Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"type": "prerelease",
"comment": "add developer menu property",
"packageName": "react-native-windows",
"email": "kmelmon@microsoft.com",
"commit": "5d42737bfacccb3f90dcde8af3b4a104d26f840d",
"date": "2019-10-18T02:03:55.336Z",
"file": "D:\\rnw2\\change\\react-native-windows-2019-10-17-19-03-55-developermenu.json"
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ private void LoadReact()
settings.UseWebDebugger = true;
settings.UseLiveReload = true;
#endif
settings.EnableDeveloperMenu = false;
var instance = Instance.Create(JSFileName);

instance.Start(settings);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ public MainReactNativeHost()
this.InstanceSettings.UseWebDebugger = false; // Disabled temporarily because of issue #2877
this.InstanceSettings.UseLiveReload = true; // true by default in debug builds already
this.InstanceSettings.UseJsi = true;

#if DEBUG
this.InstanceSettings.EnableDeveloperMenu = true;
#else
this.InstanceSettings.EnableDeveloperMenu = false;
#endif

}

protected override string MainComponentName => "SampleApp";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ std::shared_ptr<react::uwp::IReactInstance> HostingPane::getInstance() {
react::uwp::ReactInstanceSettings settings;
settings.UseWebDebugger = x_UseWebDebuggerCheckBox->IsChecked->Value;
settings.UseLiveReload = x_UseLiveReloadCheckBox->IsChecked->Value;
settings.EnableDeveloperMenu = true;
settings.LoggingCallback = [](facebook::react::RCTLogLevel logLevel,
const char *message) {
OutputDebugStringA("In LoggingCallback");
Expand Down
3 changes: 2 additions & 1 deletion vnext/Microsoft.ReactNative/ReactInstanceCreator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ ReactInstanceCreator::getInstance() {
settings.ByteCodeFileUri = to_string(m_instanceSettings.ByteCodeFileUri());
settings.DebugBundlePath = to_string(m_instanceSettings.DebugBundlePath());
settings.DebugHost = to_string(m_instanceSettings.DebugHost());
settings.EnableByteCodeCacheing = m_instanceSettings.EnableByteCodeCaching();
settings.EnableByteCodeCaching = m_instanceSettings.EnableByteCodeCaching();
settings.EnableDeveloperMenu = m_instanceSettings.EnableDeveloperMenu();
settings.EnableJITCompilation = m_instanceSettings.EnableJITCompilation();
settings.UseDirectDebugger = m_instanceSettings.UseDirectDebugger();
settings.UseJsi = m_instanceSettings.UseJsi();
Expand Down
8 changes: 8 additions & 0 deletions vnext/Microsoft.ReactNative/ReactInstanceSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ struct ReactInstanceSettings : ReactInstanceSettingsT<ReactInstanceSettings> {
m_enableByteCodeCaching = value;
}

bool EnableDeveloperMenu() {
return m_enableDeveloperMenu;
}
void EnableDeveloperMenu(bool value) {
m_enableDeveloperMenu = value;
}

hstring ByteCodeFileUri() {
return m_byteCodeFileUri;
}
Expand Down Expand Up @@ -87,6 +94,7 @@ struct ReactInstanceSettings : ReactInstanceSettingsT<ReactInstanceSettings> {
bool m_useWebDebugger{FALSE};
bool m_useLiveReload{FALSE};
#endif
bool m_enableDeveloperMenu{FALSE};
bool m_useDirectDebugger{FALSE};
bool m_useJsi{TRUE};
bool m_enableJITCompilation{TRUE};
Expand Down
1 change: 1 addition & 0 deletions vnext/Microsoft.ReactNative/ReactInstanceSettings.idl
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace Microsoft.ReactNative
Boolean UseJsi { get; set; };
Boolean EnableJITCompilation { get; set; };
Boolean EnableByteCodeCaching { get; set; };
Boolean EnableDeveloperMenu { get; set; };

String ByteCodeFileUri { get; set; };
String DebugHost { get; set; };
Expand Down
2 changes: 2 additions & 0 deletions vnext/ReactUWP/ABI/Instance_rt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ std::shared_ptr<::react::uwp::IReactInstance> Instance::getInstance() {
::react::uwp::ReactInstanceSettings innerSettings;
innerSettings.UseLiveReload = m_settings.UseLiveReload;
innerSettings.UseWebDebugger = m_settings.UseWebDebugger;
innerSettings.EnableDeveloperMenu = m_settings.EnableDeveloperMenu;
m_instance->Start(m_instance, innerSettings);
m_instance->loadBundle(std::string(m_jsBundleName));
}
Expand Down Expand Up @@ -104,6 +105,7 @@ HRESULT Instance::Start(ABI::react::uwp::InstanceSettings settings) {

m_settings.UseLiveReload = settings.UseLiveReload;
m_settings.UseWebDebugger = settings.UseWebDebugger;
m_settings.EnableDeveloperMenu = settings.EnableDeveloperMenu;
getInstance();

return S_OK;
Expand Down
1 change: 1 addition & 0 deletions vnext/ReactUWP/ABI/idl/Instance.idl
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ namespace react{
{
boolean UseWebDebugger;
boolean UseLiveReload;
boolean EnableDeveloperMenu;
};

[version(VERSION)]
Expand Down
3 changes: 1 addition & 2 deletions vnext/ReactUWP/Base/UwpReactInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,8 +430,7 @@ void UwpReactInstance::Start(
std::move(scriptStore),
std::move(preparedScriptStore));
#else
if (settings.EnableByteCodeCacheing ||
!settings.ByteCodeFileUri.empty()) {
if (settings.EnableByteCodeCaching || !settings.ByteCodeFileUri.empty()) {
scriptStore = std::make_unique<UwpScriptStore>();
preparedScriptStore = std::make_unique<UwpPreparedScriptStore>(
winrt::to_hstring(settings.ByteCodeFileUri));
Expand Down
8 changes: 3 additions & 5 deletions vnext/ReactUWP/Views/ReactControl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,11 +223,9 @@ void ReactControl::AttachRoot() noexcept {
m_reactInstance->AttachMeasuredRootView(m_pParent, std::move(initialProps));
m_isAttached = true;

#ifdef DEBUG
// TODO: Enable this in retail builds via a new API
// https://github.com/microsoft/react-native-windows/issues/2870
InitializeDeveloperMenu();
#endif
if (m_reactInstance->GetReactInstanceSettings().EnableDeveloperMenu) {
InitializeDeveloperMenu();
}
}

void ReactControl::DetachRoot() noexcept {
Expand Down
3 changes: 2 additions & 1 deletion vnext/include/ReactUWP/IReactInstance.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ struct ReactInstanceSettings {
bool UseDirectDebugger{false};
bool UseJsi{true};
bool EnableJITCompilation{true};
bool EnableByteCodeCacheing{false};
bool EnableByteCodeCaching{false};
bool EnableDeveloperMenu{false};

std::string ByteCodeFileUri;
std::string DebugHost;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ namespace winrt::<%=ns%>::implementation
settings.UseWebDebugger = true;
#endif

#ifdef NDEBUG
settings.EnableDeveloperMenu = false;
#else
settings.EnableDeveloperMenu = true;
#endif

auto instance = Instance::Create(winrt::hstring(JSFILENAME));
instance.Start(settings);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ private void LoadReact()
settings.UseLiveReload = true;
#endif

#if NDEBUG
settings.EnableDeveloperMenu = false;
#else
settings.EnableDeveloperMenu = true;
#endif

var instance = Instance.Create(JSFILENAME);

//instantiate sample module for registering callbacks for live reload, JS error handling etc.,
Expand Down