@@ -841,30 +841,30 @@ public function useHeadlessBrowser($args = [])
841841 $ options ['track_request_args ' ] = !empty ($ args ['track_request_args ' ]) ? true : false ;
842842 $ merged_options = $ this ->headlessBrowser ->getMergedOptions ($ options );
843843
844+ //maybe issue request by user callback
844845 try {
845- $ this ->headlessBrowser ->getBrowserFactoryInstance ()->setOptions ($ merged_options );
846- $ browser = $ this ->headlessBrowser ->getBrowserInstance ();
847- $ page = $ this ->headlessBrowser ->getPage ();
846+ if (property_exists ($ this , 'onHeadlessBrowserOpenPage ' )){
847+ $ this ->headlessBrowser ->getBrowserFactoryInstance ()->setOptions ($ merged_options );
848+ $ browser = $ this ->headlessBrowser ->getBrowserInstance ();
849+ $ page = $ this ->headlessBrowser ->getPage ();
850+ $ returning = $ this ->triggerUserCallback ('onHeadlessBrowserOpenPage ' , $ this , $ browser , $ page , $ args ['url ' ]);
851+ if (false === $ returning ){
852+ $ page ->close ();
853+ return Tool::throwback ('-353 ' , $ this ->langConfig ['downloader_download_task_no ' ] . '(NaN) ' , $ extra );
854+ }elseif (is_string ($ returning )){
855+ $ page ->close ();
856+ $ extra = ['content ' => $ returning ];
857+ return Tool::throwback ('0 ' , $ this ->langConfig ['downloader_download_task_yes ' ], $ extra );
858+ }else {
859+ $ page ->close ();
860+ is_array ($ returning ) && $ merged_options = array_merge ($ merged_options , $ returning );
861+ }
862+ }
848863 }catch (\Throwable $ e ){
849864 $ msg = $ e ->getMessage ();
850865 return Tool::throwback ('-352 ' , $ this ->langConfig ['headless_browser_exception ' ] . " $ msg " , $ extra );
851866 }
852867
853- $ returning = $ this ->triggerUserCallback ('onHeadlessBrowserOpenPage ' , $ this , $ browser , $ page , $ args ['url ' ]);
854-
855- //maybe issue request by user callback
856- if (false === $ returning ){
857- $ page ->close ();
858- return Tool::throwback ('-353 ' , $ this ->langConfig ['downloader_download_task_no ' ] . '(NaN) ' , $ extra );
859- }elseif (is_string ($ returning )){
860- $ page ->close ();
861- $ extra = ['content ' => $ returning ];
862- return Tool::throwback ('0 ' , $ this ->langConfig ['downloader_download_task_yes ' ], $ extra );
863- }else {
864- $ page ->close ();
865- is_array ($ returning ) && $ merged_options = array_merge ($ merged_options , $ returning );
866- }
867-
868868 //maybe issue request by API directly
869869 try {
870870 $ content = $ this ->headlessBrowser ->request ($ args ['method ' ], $ args ['url ' ], $ merged_options );
0 commit comments