From 6218b00e15e9ed163dde03c33f5e91b7f0d56dec Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Mon, 27 Jan 2020 07:20:53 -0800 Subject: [PATCH] Fix issue where file / link export accidentally included support request details Summary: When doing a Flipper trace export through the app menu (not the support form), the export still contained a support request details section, with the default data of a bug report. That doesn't make any sense and is confusing, so this change makes sure the report is only included if it is supported through the supportRequestForm Reviewed By: passy Differential Revision: D19499408 fbshipit-source-id: ff7a5333f2045f2465966dffa0c5fb03aaeaceb8 --- src/chrome/ShareSheetExportFile.tsx | 1 + src/chrome/ShareSheetExportUrl.tsx | 2 +- src/utils/exportData.tsx | 20 ++++++++++++-------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/chrome/ShareSheetExportFile.tsx b/src/chrome/ShareSheetExportFile.tsx index 517753d11..9ae847965 100644 --- a/src/chrome/ShareSheetExportFile.tsx +++ b/src/chrome/ShareSheetExportFile.tsx @@ -110,6 +110,7 @@ export default class ShareSheetExportFile extends Component { exportStoreToFile( this.props.file, this.store, + false, this.idler, (msg: string) => { if (this.state.runInBackground) { diff --git a/src/chrome/ShareSheetExportUrl.tsx b/src/chrome/ShareSheetExportUrl.tsx index afaa73853..435c0daf1 100644 --- a/src/chrome/ShareSheetExportUrl.tsx +++ b/src/chrome/ShareSheetExportUrl.tsx @@ -125,7 +125,7 @@ export default class ShareSheetExportUrl extends Component { } }; const {serializedString, errorArray} = await reportPlatformFailures( - exportStore(this.store, this.idler, statusUpdate), + exportStore(this.store, false, this.idler, statusUpdate), `${EXPORT_FLIPPER_TRACE_EVENT}:UI_LINK`, ); const uploadMarker = `${EXPORT_FLIPPER_TRACE_EVENT}:upload`; diff --git a/src/utils/exportData.tsx b/src/utils/exportData.tsx index ce3904c55..64970decd 100644 --- a/src/utils/exportData.tsx +++ b/src/utils/exportData.tsx @@ -580,6 +580,7 @@ export async function getStoreExport( export async function exportStore( store: MiddlewareAPI, + includeSupportDetails?: boolean, idler?: Idler, statusUpdate?: (msg: string) => void, ): Promise<{serializedString: string; errorArray: Array}> { @@ -593,13 +594,15 @@ export async function exportStore( idler, ); if (exportData != null) { - exportData.supportRequestDetails = { - ...state.supportForm?.supportFormV2, - appName: - state.connections.selectedApp == null - ? '' - : deconstructClientId(state.connections.selectedApp).app, - }; + if (includeSupportDetails) { + exportData.supportRequestDetails = { + ...state.supportForm?.supportFormV2, + appName: + state.connections.selectedApp == null + ? '' + : deconstructClientId(state.connections.selectedApp).app, + }; + } statusUpdate && statusUpdate('Serializing Flipper data...'); const serializedString = JSON.stringify(exportData); @@ -622,10 +625,11 @@ export async function exportStore( export const exportStoreToFile = ( exportFilePath: string, store: MiddlewareAPI, + includeSupportDetails: boolean, idler?: Idler, statusUpdate?: (msg: string) => void, ): Promise<{errorArray: Array}> => { - return exportStore(store, idler, statusUpdate).then( + return exportStore(store, includeSupportDetails, idler, statusUpdate).then( ({serializedString, errorArray}) => { return promisify(fs.writeFile)(exportFilePath, serializedString).then( () => {