Commit Graph

129 Commits

Author SHA1 Message Date
Patrick Laflamme
164050af5c Renamed ToString(EAnalyticsSessionShutdownType) as LexToString(EAnalyticsSessionShutdownType) and made it public.
#rb Wes.Hunt

[CL 16362504 by Patrick Laflamme in ue5-main branch]
2021-05-17 20:37:17 -04:00
Patrick Laflamme
ce3180e5e7 Fixed CIS for error reporter in AnalyticsPropertyStoreTests.cpp
#rb trivial

[CL 16347432 by Patrick Laflamme in ue5-main branch]
2021-05-17 08:13:58 -04:00
Ola Olsson
dd2eba8378 Fix invalid comment-outside-comment
#rb trivial
#fyi Patrick.Laflamme
#rnx

[CL 16327362 by Ola Olsson in ue5-main branch]
2021-05-14 03:49:50 -04:00
Patrick Laflamme
2e5316e1ca Generalized the Editor analytics summary session system to be usable/extendable by other apps.
Engine/Editor changes:

- Split the Editor summary session in two, one summary for the Engine properties and one for the Editor specific properties. Made it easy to extend the Engine summary to create other summaries.
- Made the summary sender as agnostics as possible of the keys it sends.
- Fixed the system wide lock contention between the process when persisting a session. (On problem caused by the lock is UE-114315).
- Fixed concurrent issue when saving the summary sessions on Linux/Mac
- Fixed performance issue when saving the summary session on Linux/Mac. This enable saving at higher frequency.
- Fixed cases where the same session summary is sent more than once.
- Fixed Windows registry key overflow that could happens if we accumulated too many sessions (in theory, this can happen)
- Made adding new properties to the summary easy and private to the implementation.
- Brought the Linux/Mac implementation closer to Windows implementation.
- Reduced memory allocation, especially when the session records a crash.
- Improved chances to send the summary non-delayed by allowing the Editor to send the reports if CRC died unexpectedly.
- Generalized the support to collect and aggregate analytics from helper processes. For example, CRC already collects analytics that is merged with the Editor summary as information supplement
- Reserved the disk space required to store the summary ahead of time to prevent failing later.
- Increased frequency at which the summary is persisted because saving the summary is more efficient. (About every 10 seconds rather than every minutes).
- Added unit tests

CrashReportClient changes:

- Created a 'session summary' from the CRC point of view to merge with the Editor summary.
- Moved analytics collection in a separated class to make the crash reporting code leaner and less noisy with all the analytics
- Merged the CRC diagnostic logger in the class collecting CRC analytics summary and make the diagnostic log a property in the summary.
- Collected analytics (on behalf of Editor) in a background thread because CRC main thread can be blocked collecting a crash, so it doesn't pay attention to other things
- Added MonitorBatteryLevel and MonitorOnACPower summary properties on Windows. Collected on CRC background thread (never blocked, so we reduce changes to miss the battery running out)
- Added MonitorSessionDuration summary property to track now long CRC ran.
- Added MonitorQuitSignalRecv summary property to detect when CRC is soft killed like: taskkill /PID 1234
- Added MonitorIsReportingCrash summary property to track when CRC dies reporting a crash.
- Added MonitorIsCollectingCrash summary property to track when CRC dies collecting a crash artifacts.
- Added IsProcessingCrash summary property to track when CRC dies processing a crash.
- Added MonitorCrashed summary property to track when CRC exception handler was triggered.
- Added MonitorWasShutdown summary property to track when CRC summary was shutdown
- Added MonitorLoggingOut summary property to track when CRC died because the user was logging out (or as result of shutting down or restarting the computer).
- More accurate value for DeathTimestamp summary property because this is now captured in CRC background thread (which cannot be busy handling a crash)
- Added crash processing timing to CRC diagnostic logs (how long it takes to collect/process a crash).

#rb Jamie.Dale, Wes.Hunt, Johan.Berg
#jira UETOOL-3500
#jira UE-114315

[CL 16324612 by Patrick Laflamme in ue5-main branch]
2021-05-13 21:58:20 -04:00
Josh Adams
b0e4357576 - UBT Code changes to remove 32-bit Windows support (C++ code for 32-bit still exists)
#rb marc.audy (concept, not each file)

[CL 15265424 by Josh Adams in ue5-main branch]
2021-01-31 15:09:58 -04:00
Marc Audy
ada7c144fa Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
wes hunt
76f71ec604 Added a ability for an IAnalyticsProviderET to check a user-supplied callback function before sending an event.
[at]john.nielson [at]todd.eckert
#tests PIE, client, server

#ROBOMERGE-SOURCE: CL 13062778 via CL 13062781 via CL 13062785
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)

[CL 13062792 by wes hunt in Main branch]
2020-04-28 23:28:11 -04:00
federico oro
431995c895 prevent crash in TJsonWriter by checking if WriteObjectStart can be executed
#rb Cory.Kolek

#ROBOMERGE-SOURCE: CL 12508127 via CL 12508133 via CL 12508137 via CL 12508141
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12508147 by federico oro in Main branch]
2020-04-01 12:51:29 -04:00
marc audy
6e1f018ea3 Add StartSession Overload with SessionID Parameter / Expose Analytics SessionID in KairosAnalytics Embedded Communication
To help us measure the spyjinx launch, we were requested to send the sessionID to the registration/login portal in PartyHub

This wasn't as easy as it sounds, PartyHub shows the portal before UObjects have been initialized, which is when the sessionID is created.

This change initializes a sessionID in the KairosAnalyticsModule and passes that to the AnalyticsProvider

Because the interface changed, we updated a lot of implementations

Preflight:
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142111?
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142481?
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142792?
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/10142855?

Tested along with this change: https://phabricator.ol.epicgames.net/D33275
Ran iOS app without being logged in, observed logs, saw sid=XXXXXXX in the url passed to the account portal


#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: austin.ellis
#ROBOMERGE-SOURCE: CL 12435532 via CL 12435540 via CL 12435543 via CL 12442086
#ROBOMERGE-BOT: (v671-12333473)

[CL 12444853 by marc audy in Release-Engine-Staging branch]
2020-03-26 07:59:05 -04:00
patrick laflamme
151e913fa6 #jira UE-88250 - Crash Report Client doesn't emits EditorSummaryEvent with proper AppId/AppVersion/SessionId/UserId
- Added AppId, AppVersion and UserId as FEditorAnalyticSession members and updated FEditorSessionSummaryWriter to write them.
  - Changed FEngineAnalytics::GetProvider() to return IAnalyticsProviderET rather than IAnalyticsProvider.
  - Updated FEditorSessionSummarySender to embed the AppId/AppVersion/UserId as attribute when sending the summary event and also configured the AnalyticsProvider to use the SessionID/AppID/AppVersion/UserID of the event rather than the current one.
  - Added a function to return the current IAnalyticProviderET configuration.

#rb Wes.Hunt

Edigrated 11445334 and 11459406.

#ROBOMERGE-SOURCE: CL 11512055 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11512070 by patrick laflamme in 4.25-Plus branch]
2020-02-18 15:12:51 -05:00
Marc Audy
9b14e17824 Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 11128285
#rb
#rnx

[CL 11130996 by Marc Audy in Dev-Framework branch]
2020-01-28 11:29:06 -05:00
Dan Oconnor
1c8e853762 Integrate from main @ 10895611
Merged manually:
//UE4/Dev-Framework/Engine/Source/Editor/BlueprintGraph/Classes/K2Node_GetClassDefaults.h
//UE4/Dev-Framework/Engine/Source/Editor/BlueprintGraph/Private/K2Node_GetClassDefaults.cpp
//UE4/Dev-Framework/Engine/Source/Programs/NotForLicensees/Solaris/uLangServer/uLangServer.Target.cs
//UE4/Dev-Framework/Engine/Source/Runtime/Analytics/QoSReporter/Private/NotForLicensees/QoSReporterConfiguration.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/Analytics/QoSReporter/Private/QoSReporter.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/Analytics/QoSReporter/Private/QoSReporterModule.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/Analytics/QoSReporter/Private/QoSReporterPrivate.h
//UE4/Dev-Framework/Engine/Source/Runtime/Analytics/QoSReporter/Public/QoSReporter.h
//UE4/Dev-Framework/Engine/Source/Runtime/Analytics/QoSReporter/QoSReporter.Build.cs

Merged manually accepted source:
//UE4/Dev-Framework/FortniteGame/Content/Animation/Marketing/Poses/Pose_Library/HolidayPJ/HolidayPJB_Female_H.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Buildings/5x5/HLOD/Apollo_5x5_LogPyramid_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_A6_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_B1_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_E1_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_F8_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_G1_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_G7_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_G8_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_H4_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_H5_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_H6_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Apollo/Maps/Streaming/HLOD/Apollo_Terrain_Sub_H8_0_HLOD.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Items/EnvironmentalItems/PinkOatmeal/PinkOatmeal_Sepia.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Items/Weapons/WID_Harvest_Pickaxe_GalileoFerry1H.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Playlists/ContextTutorial/Mutator/ContextualTutorial_NearChestMobile.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_Anchor_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_Heart_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_Jaws_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_Keg_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_Megalodon_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_Pizza_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/PickAxe_SkiBoot_Ready_Athena_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Athena/Sounds/Weapons/PickAxes/SharpDresser/PA_SharpDresser_Ready_Cue.uasset
//UE4/Dev-Framework/FortniteGame/Content/Characters/Player/Male/Medium/Bodies/M_MED_GuanYuDragon/Meshes/M_MED_Guan_Yu_Dragon_AnimBP.uasset
//UE4/Dev-Framework/FortniteGame/Content/Characters/Player/Male/Medium/Bodies/M_MED_Ornament_Soldier/Textures/T_M_MED_Ornament_Soldier_Body_N.uasset
//UE4/Dev-Framework/FortniteGame/Content/Creative/Materials/M_Creative_4Layers_Inst.uasset
//UE4/Dev-Framework/FortniteGame/Content/Heroes/Commando/CosmeticCharacterItemDefinitions/CID_Commando_034_ToyTInkerer.uasset
//UE4/Dev-Framework/FortniteGame/Content/UI/Login/SubGameSelect/SubgameSelectScreen.uasset
//UE4/Dev-Framework/FortniteGame/Documents/VO_Script/Hero VO Master.xlsx
//UE4/Dev-Framework/FortniteGame/Documents/VO_Script/STW Questline VO - MASTER SCRIPT.xlsx
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_059_wwiipilot_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.json
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_059_wwiipilot_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.png
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_081_scubamale_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.json
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_081_scubamale_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.png
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_223_orangecamo_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.json
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_223_orangecamo_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.png
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_330_astronautevilupgrade_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.json
//UE4/Dev-Framework/FortniteGame/Test/Screenshots/CosmeticTests/AthenaBackpack_bid_330_astronautevilupgrade_epic/Windows/D3D11_SM5/dc0f63bd65ec455ecd43795cf3f3059a.png
//UE4/Dev-Framework/Samples/Showcases/ArchVisRT/Content/Materials/TileMirrorAxis.uasset
//UE4/Dev-Framework/Samples/Showcases/ArchVisRT/Content/Materials/UVEdit.uasset
//UE4/Dev-Framework/Samples/Showcases/ArchVisRT/Content/Materials/wall3.uasset
//UE4/Dev-Framework/Samples/Showcases/ArchVisRT/Content/textures/carpet_ao_rough_metal.uasset
//UE4/Dev-Framework/Samples/Showcases/ArchVisRT/Content/textures/carpetdiff.uasset
//UE4/Dev-Framework/Samples/Showcases/ArchVisRT/Content/textures/carpetnorm.uasset

Merged automatically:
//UE4/Dev-Framework/Engine/Plugins/NotForLicensees/CommonUI/Source/CommonUI/Public/CommonNumericTextBlock.h
//UE4/Dev-Framework/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/AbilitySystemComponent.cpp
//UE4/Dev-Framework/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/AbilitySystemComponent_Abilities.cpp
//UE4/Dev-Framework/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/GameplayEffectTypes.cpp
//UE4/Dev-Framework/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Public/AbilitySystemComponent.h
//UE4/Dev-Framework/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Public/GameplayAbilitySpec.h
//UE4/Dev-Framework/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Public/GameplayEffectTypes.h
//UE4/Dev-Framework/Engine/Source/Developer/BlueprintNativeCodeGen/Private/NativeCodeGenerationTool.cpp
//UE4/Dev-Framework/Engine/Source/Editor/Kismet/Private/BlueprintEditor.cpp
//UE4/Dev-Framework/Engine/Source/Editor/Kismet/Private/WorkflowOrientedApp/WorkflowTabManager.cpp
//UE4/Dev-Framework/Engine/Source/Editor/Kismet/Public/WorkflowOrientedApp/WorkflowTabManager.h
//UE4/Dev-Framework/Engine/Source/Editor/UnrealEd/Private/PlayLevel.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Classes/BehaviorTree/Decorators/BTDecorator_BlueprintBase.h
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Classes/BehaviorTree/Services/BTService_BlueprintBase.h
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Classes/BehaviorTree/Tasks/BTTask_BlueprintBase.h
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Classes/Blueprint/AIBlueprintHelperLibrary.h
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Classes/EnvironmentQuery/EnvQueryInstanceBlueprintWrapper.h
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Private/BehaviorTree/Decorators/BTDecorator_BlueprintBase.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Private/BehaviorTree/Services/BTService_BlueprintBase.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Private/BehaviorTree/Tasks/BTTask_BlueprintBase.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Private/Blueprint/AIBlueprintHelperLibrary.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/AIModule/Private/Navigation/PathFollowingComponent.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/CoreUObject/Public/UObject/ObjectMacros.h
//UE4/Dev-Framework/Engine/Source/Runtime/Engine/Private/AI/Navigation/NavigationTypes.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/Engine/Private/KismetSystemLibrary.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/NavigationSystem/Private/NavFilters/NavigationQueryFilter.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/NavigationSystem/Private/NavMesh/NavMeshRenderingComponent.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/NavigationSystem/Private/NavMesh/RecastNavMesh.cpp
//UE4/Dev-Framework/Engine/Source/Runtime/Slate/Private/Framework/MultiBox/MultiBoxBuilder.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteEditor/Private/FortBuildingInstructionsCommandlet.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortAIController.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortAthenaAIBotController.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortBT/FortBTDecorator_IsTakerAirborne.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortEQS/FortQueryGenerator_InfluenceMapPoints.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortEQS/FortQueryGenerator_PointsFromNavGraph.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortEnemySpawn.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortNavSystem.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortPathFollowingComponent.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/FortPathFollowingComponentBase.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/HotSpots/FortAIHotSpotSlotGenerator_OnBoundingBox.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/HotSpots/FortAIHotSpot_Building.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/MissionBots/FortBotStructureBuilder.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/NavUtils/NavGraphCellUtils.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/NavUtils/NavLinkProcessor.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/AI/Tasks/FortAITask_Move.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Abilities/FortGameplayAbility_AIPortal.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Analytics/FortAnalytics.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Analytics/FortBlueprintAnalytics.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Athena/FortAthenaZipline.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Athena/FortClientBotManagerAthena.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Athena/FortGameModeAthena.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Athena/FortPlayerControllerAthena.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/AthenaLayoutRequirementData.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingActor.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingAutoNav.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingContainer.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingCorner.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingDeco.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingFloor.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingFoundation.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingPlayerPrimitivePreview.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingProp.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingRift.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingRoof.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingSMActor.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingStairs.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingTrap.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/BuildingWall.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/DeployableBasePlot.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/DynamicBuildings/FortDynamicBuilder.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/EditMode/BuildingEditModeSupport.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/FortVolume.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Building/StructuralSupport/BuildingStructuralSupportSystem.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/ClientPilot/FortClientPilot_GameplayBase.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Components/FortControllerComponent_Interaction.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Curie/Managers/FortCurieFirePropagationManager.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Curie/Managers/FortCurieSpatialManager.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Environment/FortProceduralFoliageComponent.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/FortClientBotManager.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/FortGameMode.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/FortGameStateZone.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Input/FortPlayerInput.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/LevelRecordSpawner.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/LevelSaveRecord.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Modifiers/FortGameplayMutator_DestroyMapActors.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/NoRedist/ML/FortDetectionML_BuildingMacro.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Objectives/FortPlacementActor.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Pawns/FortAIPawn.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Pawns/FortPawn_Taker.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Player/FortPlayerController.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Replay/Automation/Pegasus/PegasusGameEventCollector.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/STW/FortConstructorBASE.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Track/FortTrack.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/UI/FortUIZone.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Weapons/FortDecoTool.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Weapons/FortProjectileDecoHelper.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Weapons/FortWeap_BuildingTool.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Private/Weapons/FortWeap_BuildingToolBase.cpp
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Building/BuildingActor.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Building/BuildingAutoNav.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Building/BuildingPlayerPrimitivePreview.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Building/BuildingProp.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Building/BuildingTrap.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Building/BuildingWall.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/FortAssets.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Player/FortPlayerController.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/STW/FortConstructorBASE.h
//UE4/Dev-Framework/FortniteGame/Source/FortniteGame/Public/Track/FortTrack.h

All other files merged 'safely'

#rb none

[CL 10934998 by Dan Oconnor in Dev-Framework branch]
2020-01-09 19:00:27 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Wes Hunt
bf10181111 Remove FQoSReporter, which is no longer used by anything.
#jira UE-85556
#fyi marc.audy

[CL 10620295 by Wes Hunt in Dev-Framework branch]
2019-12-09 16:17:26 -05:00
marc audy
dbcf07a558 Use new inline versions of substring functions
Fix up nearby cases where ESearchCase::CaseSensitive should have been used
#jira
#rnx
#rb

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10309793 via CL 10309818
#ROBOMERGE-BOT: (v593-10286020)

[CL 10309932 by marc audy in Main branch]
2019-11-19 13:27:07 -05:00
Leigh Swift
3b246bc3db Copying //UE4/Portal-Staging to //UE4/Main (Source: //Portal/Main/Engine @ 8661229)
Change 8553543 by Wes.Fudala

	We now set a fixed value of 24 to CEF screenInfo colorDepth when off screen rendering is enabled.

Change 8235770 by Wes.Fudala

	Fix for CEFJsScripting memory stomp and memory alignment errors called out by the stomp memory allocator when running with -stompmalloc on the commandline.

Change 8065597 by Leigh.Swift

	BuildPatchServices: Improving ChunkBuildDirectory behaviour when dealing with empty build or builds only containing empty files.
	This is now fully supported as part of the generation flow rather than an early detected edge case.

Change 7641628 by Leigh.Swift

	BuildPatchServices: Tweaks to serialisation safety.
	BuildPatchServices: DiskChunkStore fix for crash when chunkdump serialisation fails due to disk space.

Change 7436869 by Leigh.Swift

	BuildPatchServices: Fix regression in BPT package chunks for cloud save improvements now require message pumping.

Change 7326553 by Wes.Fudala

	BuildPatchServices: Attempt to restore functionality of the -SkipBuildPatchPrereq commandline.  This stopped functioning in CL# 6655502 with the BPS DLC related refactors.
	The issue was reported by a number of users that were relying on this commandline as a last resort workaround for prereq install issues.

Change 7323945 by Leigh.Swift

	BuildPatchServices: BuildPatchTool: Install time coefficient values exposed by DiffManifests.
	This gives an indicative install duration.
	The time is not necessarily accurate, but the simulation is a constant and so the value is highly comparable between different builds.

Change 7310352 by Antony.Carter

	BuildPatchServices: Adding support for overriding http path for chunk requests. This allows the ability to support signed urls when downloading patch data.

Change 7095282 by Leigh.Swift

	BuildPatchServices: Fix regression with manifests that have no core files.

Change 7092198 by leigh.swift

	BuildPatchServices: Reuse existing code from FBuildPatchAppManifest::GetChunkShaHash in FBuildPatchManifestSet::GetChunkShaHash.
	This fixes an issue where older manifest files that did not ship with chunk sha values in them, can skip sha validation of chunks like pre-DLC launcher did.

Change 6959115 by Wes.Fudala

	Added functionality that will optionally expose embedded browser console logs to the client.

Change 6835841 by Leigh.Swift

	BuildPatchServices: Rearranging manifest save logic to avoid unnecessary seeking forwards, which avoids an assert when undetected write failures occur.

Change 6684994 by Leigh.Swift

	BuildPatchServices: Don't clean empty directories if staging only.

Change 6655502 by Mike.Erickson, Leigh.Swift, Wes.Fudala

	BuildPatchServices: Restructuring how installers are configured and make use of manifest files in order to combine multiple actions on an installation directory into one installer.
	This resembles a feature set for a better DLC installation experience.

Change 6404031 by Richard.Fawcett

	BuildPatchTool: Only append ".manifest" to output filename if output filename has been specified on the command line.
	This was causing a manifest file called literally ".manifest" to be output to the clouddir if -OutputFilename was not specified.

Change 6077240 by Wes.Fudala

	Execution of browser resource load complete delegate now happens on the main thread.

Change 6076171 by Leigh.Swift

	BuildPatchTool: PatchGeneration: ChunkDeltaOptimise: PackageChunks: Improved corrupt output protection against ill timed taskkill, by serialising to temp filename, and then rename on success.
	BuildPatchTool: PatchGeneration: Manifest file extension added if not provided, fixing an oversight and inconsistency with other mode behaviours.
	BuildPatchTool: Compactify: Only warn when failing to get a file size, if the file still exists. Otherwise log instead.

Change 6049003 by Leigh.Swift

	BuildPatchServices: Adding ProcessRequiredDiskSpace to Launcher.Install.Stats which represents how much disk space the install/update process needed to complete.
	BuildPatchServices: Adding ProcessAvailableDiskSpace to Launcher.Install.Stats which represents how much disk space was available at the time of checking required disk space.

Change 5915157 by Leigh.Swift

	BuildPatchTool: Adding a statistic to diffmanifests for temporary disk space requirement to apply the patch.

Change 5934838 by Leigh.Swift

	BuildPatchTool: PackageChunks: Adding support to provide a tagset for the previous build manifest when producing chunkdbs. This allows expanding the chunks saved out to cover tagsets not installed in the previous build.

Change 5838666 by wes.fudala

	Browser can now bubble up the state of completed web resource loads.

Change 5689493 by Leigh.Swift

	Adding new x86 and x64 MS VC141 CRT redist, version 14.16.27012

Change 5689462 by Leigh.Swift

	Fixing process handle leaks on windows.
	Core was leaking for getting an application name.

Change 5500917 by Leigh.Swift

	BuildPatchTool: Adding new arg DiffAbortThreshold to ChunkDeltaOptimise mode which allows skipping of the operation if the original delta is so large that it would take too long to process, and likely have little benefit.
	BuildPatchTool: Switching some Log output to use Display so that it will appear in EC and CMD windows.

Change 5337482 by Leigh.Swift

	BuildPatchTool: Fix for DiffManifests mode not accurately representing delta size for tagged install sets.

Change 5261246 by Leigh.Swift

	BuildPatchServices: Fix for file download needing to mock response codes for higher layer statistics code which tracks data sizes and speeds.
	This is a regression from previous change to correct download failure vs corruption statistics.

Change 5224725 by Leigh.Swift

	BuildPatchServices: Fix for delta download of more than 0 bytes when no update is necessary.
	BuildPatchServices: Skip requesting delta metafile if no file changes are actually required for a patch.
	BuildPatchTool: Reduce unnecessary data produced by BPT ChunkDeltaOptimise mode.

Change 5010941 by Mike.Erickson

	BuildPatchServices: Add download scaling based on average speed per request, maximum count, and download health.

Change 5010845 by Wes.Fudala

	BuildPatchServices: IDownload refactored to have specific request and response success functions, to make it clearer that a successful request does not mean the response was also good.
	BuildPatchServices: Fixed issues with download failures reporting as corruptions.

Change 5000643 by Wes.Hunt

	Remove HttpServiceTracker from UE4.

Change 4884381 by Leigh.Swift

	BuildPatchTool: Fix for Package Chunks mode hanging when no chunks were required.

Change 4848675 by Justin.Sargent, Leigh.Swift

	Speculative fixes for graphics device lost related crash, by adding additional d3d api result checks.
	Improved logging for graphics device lost handling.
	Improved logging for tracking down common font loading failure resulting in an ensure.

Change 4831134 by Leigh.Swift

	BuildPatchTool: Fix for crash in patchgeneration when fast-forward path replays no match.

Change 4801714 by Wes.Fudala

	Fix for CEF issue encountered when building using Mac Mojave + XCode10.

Change 4719149 by Leigh.Swift

	BuildPatchTool: PatchGeneration mode cyclic data optimisation, reduces SHA calculation requirement counts for cyclic data.
	BuildPatchTool: PatchGeneration mode fix for a bug causing non-optimal match insertion idx searching when there are 10k+ matches per scanner.

Change 4680963 by Leigh.Swift

	BuildPatchTool: ChunkDeltaOptimise mode is now FeatureLevel upgrade / downgrade aware.

Change 4680947 by Leigh.Swift

	BuildPatchTool: Compactify speed improvements for massive network cloud directories.

Change 4656991 by Leigh.Swift

	BuildPatchServices: Make sure chunk writer robustly discovers if a chunk fails to save out.

Change 4647815 by Leigh.Swift

	Upping the minimum wait time for UdpMessageBeacon thread so that it will not always wait 0ms when network sends are failing, reducing disconnect CPU usage.
	Adding configurable tick rate logic to XmppConnectionJingle thread. It will now default to 100Hz max.

Change 4627355 by Michael.Trepka

	Fixed a problem with CEF being unable to find locale pak files on Mac for certain language/region combinations

Change 4620800 by Leigh.Swift

	Fix for CEF crash when disabling a web window that has not yet got a parent window. There's no need to worry about focus in this case.

Change 4590207 by Leigh.Swift

	BuildPatchTool: PackageChunks mode now supports FeatureLevel arg

Change 4590103 by leigh.swift

	BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction.
	BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data.
	BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting

Change 4590089 by Leigh.Swift

	BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction.
	BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data.
	BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting

Change 4341076 by Leigh.Swift

	BuildPatchServices: Making FBuildPatchAppManifest::GetRemovableFiles  more robust to handle directories with or without trailing slash.

Change 4331754 by Leigh.Swift

	BuildPatchTool: Added support for selecting ChunkWindowSize when generating patches.
	BuildPatchTool: Added support for providing the FeatureLevel command-line argument to indicate the data version that should be saved out by patch generation. This warns about defaulting to LatestJson if not provided.
	BuildPatchTool: Added support for generating patches with recognition for any chunks with any ChunkWindowSize found in the provided CloudDir.
	BuildPatchTool: Added command-line -IgnoreOtherWindowSizes param which if provided, the generation code will only accept chunk matches that are the same as ChunkWindowSize.

	BuildPatchServices: Fixes for supporting installations that use any ChunkWindowSize.
	BuildPatchServices: New manifest file format to reduce file size, this is now raw compressed binary data.

#lockdown Nick.Penwarden
#rb none

[CL 8675597 by Leigh Swift in Main branch]
2019-09-13 13:24:23 -04:00
JeanMichel Dignard
0f9ad96858 Copying //UE4/Dev-Enterprise @ cl 6890376 to Dev-Main (//UE4/Dev-Main)
#lockdown nick.penwarden
#rb none

[CL 6890764 by JeanMichel Dignard in Main branch]
2019-06-07 11:22:52 -04:00
wes hunt
fb78e48bdd Fix FAnalyticsProviderET::SetAppVersion to apply the %VERSION% replacement before it compares the new/old value
[at]paul.moore
#tests run a local server, wait for hotfix, verify that version replacement works and no version change is made.
#rnx


#ROBOMERGE-SOURCE: CL 6607969 via CL 6608412 via CL 6609654
#ROBOMERGE-BOT: (v358-6608238)

[CL 6609848 by wes hunt in Main branch]
2019-05-22 15:28:05 -04:00
paul moore
71f30d49ee - Add hotfix version to all server events.
- Replace format of app version sent in ET analytics to: Season.Minor.Hotfix - %VERSION%
[REVIEW]
[at]wes.hunt


#ROBOMERGE-SOURCE: CL 6518009 via CL 6518019 via CL 6518034 via CL 6523213

[CL 6523249 by paul moore in Main branch]
2019-05-15 17:49:07 -04:00
wes hunt
da803cacda Add copy ctors and assignment operators to FAnalyticsEventAttribute. That class has a hacky "immutable" state by using const members, which suppresses assignability, which was causing people to go to great contortions in various spots in the code to assign over the top of existing members. As a workaround, I implemented these operators that const_cast<> the members to let us assign over them, but still not mutate them directly.
[FYI] david.nikdel
#tests This is split from another larger change to keep the engine changes separate.


#ROBOMERGE-SOURCE: CL 6245913 via CL 6246221

[CL 6246235 by wes hunt in Main branch]
2019-05-02 00:13:08 -04:00
wes hunt
3aa3f678b9 AnalyticsConversion methods moved from a namespace to global namespace to avoid 2-phase template instantiation issues with CLANG compilers that cause include order sensitivity with AnalyticsEventAttribute.h.
Also add an overload for FStrings to allow us to avoid copies in that specific case, since we can't use a universal qualifier in the primary template, which caused unnecessary string copies to be made in almost all the code that added attributes.

[FYI] dan.hertzka, bob.tellez, matt.loesby, ben.marsh
#rnx


#ROBOMERGE-SOURCE: CL 6046823 via CL 6047228

[CL 6047267 by wes hunt in Main branch]
2019-04-23 01:04:05 -04:00