@@ -109,7 +109,7 @@ func (s *ApiService) ChromiumConfigure(ctx context.Context, request oapi.Chromiu
109109 case chromiumConfigureModeRestart :
110110 configureResp = s .chromiumConfigureRestart (ctx , st , spec , func () (string , error ) {
111111 return s .installExtensionZipItems (ctx , st .extItems )
112- })
112+ }, nil )
113113 case chromiumConfigureModePreferCDPExtensions :
114114 configureResp = s .chromiumConfigurePreferCDPExtensions (ctx , st , spec , preparedExtensions )
115115 default :
@@ -188,7 +188,12 @@ func (s *ApiService) chromiumConfigurePreferCDPExtensions(ctx context.Context, s
188188 return reqMsg , err
189189 }
190190 if prepared .requiresRestart {
191- return s .chromiumConfigureRestart (ctx , st , spec , commitExtensions )
191+ return s .chromiumConfigureRestart (ctx , st , spec , commitExtensions , func () oapi.ChromiumConfigureResponseObject {
192+ if err := s .verifyUnpackedExtensions (ctx , prepared .extensions ); err != nil {
193+ return cfg500ConfigureStep (chromiumConfigureStepExtensions , err .Error ())
194+ }
195+ return nil
196+ })
192197 }
193198
194199 // Configure keeps the default restart path's non-transactional install semantics.
@@ -209,18 +214,18 @@ func (s *ApiService) chromiumConfigurePreferCDPExtensions(ctx context.Context, s
209214
210215 // Extensions are already persisted. The fallback re-launches Chromium with
211216 // the merged flags and still applies any pending display change.
212- if resp := s .chromiumConfigureRestart (ctx , st , spec , nil ); resp != nil {
213- return resp
214- }
215- if err := s .verifyUnpackedExtensions (ctx , prepared .extensions ); err != nil {
216- return cfg500ConfigureStep (chromiumConfigureStepExtensions , errors .Join (loadErr , err ).Error ())
217- }
218- return nil
217+ return s .chromiumConfigureRestart (ctx , st , spec , nil , func () oapi.ChromiumConfigureResponseObject {
218+ if err := s .verifyUnpackedExtensions (ctx , prepared .extensions ); err != nil {
219+ return cfg500ConfigureStep (chromiumConfigureStepExtensions , errors .Join (loadErr , err ).Error ())
220+ }
221+ return nil
222+ })
219223}
220224
221225type chromiumConfigureExtensionInstaller func () (string , error )
226+ type chromiumConfigurePostRestartCheck func () oapi.ChromiumConfigureResponseObject
222227
223- func (s * ApiService ) chromiumConfigureRestart (ctx context.Context , st * chromiumConfigureState , spec startURLParsed , installExtensions chromiumConfigureExtensionInstaller ) (resp oapi.ChromiumConfigureResponseObject ) {
228+ func (s * ApiService ) chromiumConfigureRestart (ctx context.Context , st * chromiumConfigureState , spec startURLParsed , installExtensions chromiumConfigureExtensionInstaller , postRestartCheck chromiumConfigurePostRestartCheck ) (resp oapi.ChromiumConfigureResponseObject ) {
224229 var stoppedRecordings []stoppedRecordingInfo
225230 chromiumStopped := false
226231 restartAfterStop := func () error {
@@ -319,6 +324,11 @@ func (s *ApiService) chromiumConfigureRestart(ctx context.Context, st *chromiumC
319324 if err := restartAfterStop (); err != nil {
320325 return cfg500ConfigureStep (chromiumConfigureStepStart , err .Error ())
321326 }
327+ if postRestartCheck != nil {
328+ if resp := postRestartCheck (); resp != nil {
329+ return resp
330+ }
331+ }
322332 chromiumConfigureNavigate (ctx , s , spec )
323333 if len (stoppedRecordings ) > 0 {
324334 go s .startNewRecordingSegments (context .WithoutCancel (ctx ), stoppedRecordings )
0 commit comments