@@ -635,6 +635,8 @@ static GSourceFuncs _handlerIntervention =
635635 , Testing(false )
636636 , ServiceWorkerEnabled(false )
637637 , ICECandidateFilteringEnabled()
638+ , GstQuirks()
639+ , GstHolePunchQuirk()
638640 {
639641 Add (_T (" useragent" ), &UserAgent);
640642 Add (_T (" url" ), &URL);
@@ -704,6 +706,8 @@ static GSourceFuncs _handlerIntervention =
704706 Add (_T (" testing" ), &Testing);
705707 Add (_T (" serviceworker" ), &ServiceWorkerEnabled);
706708 Add (_T (" icecandidatefiltering" ), &ICECandidateFilteringEnabled);
709+ Add (_T (" gstquirks" ), &GstQuirks);
710+ Add (_T (" gstholepunchquirk" ), &GstHolePunchQuirk);
707711 }
708712 ~Config ()
709713 {
@@ -778,6 +782,8 @@ static GSourceFuncs _handlerIntervention =
778782 Core::JSON::Boolean Testing;
779783 Core::JSON::Boolean ServiceWorkerEnabled;
780784 Core::JSON::Boolean ICECandidateFilteringEnabled;
785+ Core::JSON::String GstQuirks;
786+ Core::JSON::String GstHolePunchQuirk;
781787 };
782788
783789 class HangDetector
@@ -2439,6 +2445,14 @@ static GSourceFuncs _handlerIntervention =
24392445 Core::SystemInfo::SetEnvironment (_T (" GST_VIRTUAL_DISP_HEIGHT" ), height, !environmentOverride);
24402446 }
24412447
2448+ if (_config.GstQuirks .IsSet () == true ) {
2449+ Core::SystemInfo::SetEnvironment (_T (" WEBKIT_GST_QUIRKS" ), _config.GstQuirks .Value (), !environmentOverride);
2450+ }
2451+
2452+ if (_config.GstHolePunchQuirk .IsSet () == true ) {
2453+ Core::SystemInfo::SetEnvironment (_T (" WEBKIT_GST_HOLE_PUNCH_QUIRK" ), _config.GstHolePunchQuirk .Value (), !environmentOverride);
2454+ }
2455+
24422456 for (auto environmentVariableIndex = 0 ; environmentVariableIndex < _config.EnvironmentVariables .Length (); environmentVariableIndex++) {
24432457 const auto & environmentVariable = _config.EnvironmentVariables [environmentVariableIndex];
24442458 Core::SystemInfo::SetEnvironment (environmentVariable.Name .Value (), environmentVariable.Value .Value ());
0 commit comments