From cfeee87c302e52f40d8f9417923d6c6d5684a853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvador=20D=C3=ADaz=20Fau?= Date: Sat, 22 Aug 2020 14:56:24 +0200 Subject: [PATCH] Added 2 new TChromiumCore properties Added TChromium.JavascriptEnabled to enable/disable JS at runtime. Added TChromium.LoadImagesAutomatically to enable/disable image loading at runtime. --- source/uCEFChromiumCore.pas | 113 ++++++++++++++++++++++-------------- update_CEF4Delphi.json | 2 +- 2 files changed, 72 insertions(+), 43 deletions(-) diff --git a/source/uCEFChromiumCore.pas b/source/uCEFChromiumCore.pas index d759794e..91e9f2e5 100644 --- a/source/uCEFChromiumCore.pas +++ b/source/uCEFChromiumCore.pas @@ -141,6 +141,8 @@ type FDefaultWindowInfoExStyle : cardinal; FNetworkPredictions : TCefNetworkPredictionOptions; FQuicAllowed : boolean; + FJavascriptEnabled : boolean; + FLoadImagesAutomatically : boolean; {$IFDEF MSWINDOWS} FOldBrowserCompWndPrc : TFNWndProc; @@ -391,6 +393,8 @@ type procedure SetMultiBrowserMode(aValue : boolean); procedure SetNetworkPredictions(aValue : TCefNetworkPredictionOptions); procedure SetQuicAllowed(aValue : boolean); + procedure SetJavascriptEnabled(aValue : boolean); + procedure SetLoadImagesAutomatically(aValue : boolean); function CreateBrowserHost(aWindowInfo : PCefWindowInfo; const aURL : ustring; const aSettings : PCefBrowserSettings; const aExtraInfo : ICefDictionaryValue; const aContext : ICefRequestContext): boolean; function CreateBrowserHostSync(aWindowInfo : PCefWindowInfo; const aURL : ustring; const aSettings : PCefBrowserSettings; const aExtraInfo : ICefDictionaryValue; const aContext : ICefRequestContext): Boolean; @@ -880,6 +884,8 @@ type property Offline : boolean read FOffline write SetOffline; property NetworkPredictions : TCefNetworkPredictionOptions read FNetworkPredictions write SetNetworkPredictions; property QuicAllowed : boolean read FQuicAllowed write SetQuicAllowed; + property JavascriptEnabled : boolean read FJavascriptEnabled write SetJavascriptEnabled; + property LoadImagesAutomatically : boolean read FLoadImagesAutomatically write SetLoadImagesAutomatically; property WebRTCIPHandlingPolicy : TCefWebRTCHandlingPolicy read FWebRTCIPHandlingPolicy write SetWebRTCIPHandlingPolicy; property WebRTCMultipleRoutes : TCefState read FWebRTCMultipleRoutes write SetWebRTCMultipleRoutes; @@ -1146,50 +1152,52 @@ uses constructor TChromiumCore.Create(AOwner: TComponent); begin - FBrowsersCS := nil; - FBrowsers := nil; - FBrowserId := 0; - FMultiBrowserMode := False; + FBrowsersCS := nil; + FBrowsers := nil; + FBrowserId := 0; + FMultiBrowserMode := False; {$IFDEF MSWINDOWS} - FCompHandle := 0; + FCompHandle := 0; {$ENDIF} - FIsOSR := False; - FDefaultUrl := 'about:blank'; - FHandler := nil; - FReqContextHandler := nil; - FResourceRequestHandler := nil; - FMediaObserver := nil; - FMediaObserverReg := nil; - FDevToolsMsgObserver := nil; - FDevToolsMsgObserverReg := nil; - FExtensionHandler := nil; - FOptions := nil; - FFontOptions := nil; - FDefaultEncoding := ''; - FPDFPrintOptions := nil; - FUpdatePreferences := False; - FCustomHeaderName := ''; - FCustomHeaderValue := ''; - FPrefsFileName := ''; - FAddCustomHeader := False; - FDoNotTrack := True; - FSendReferrer := True; - FRunAllFlashInAllowMode := False; - FAllowOutdatedPlugins := False; - FAlwaysAuthorizePlugins := False; - FSpellChecking := True; - FSpellCheckerDicts := ''; - FZoomStep := ZOOM_STEP_DEF; - FZoomStepCS := nil; - FSafeSearch := False; - FYouTubeRestrict := YOUTUBE_RESTRICT_OFF; - FPrintingEnabled := True; - FAcceptLanguageList := ''; - FAcceptCookies := cpAllow; - FBlock3rdPartyCookies := False; - FOffline := False; - FNetworkPredictions := CEF_NETWORK_PREDICTION_WIFI_ONLY; - FQuicAllowed := True; + FIsOSR := False; + FDefaultUrl := 'about:blank'; + FHandler := nil; + FReqContextHandler := nil; + FResourceRequestHandler := nil; + FMediaObserver := nil; + FMediaObserverReg := nil; + FDevToolsMsgObserver := nil; + FDevToolsMsgObserverReg := nil; + FExtensionHandler := nil; + FOptions := nil; + FFontOptions := nil; + FDefaultEncoding := ''; + FPDFPrintOptions := nil; + FUpdatePreferences := False; + FCustomHeaderName := ''; + FCustomHeaderValue := ''; + FPrefsFileName := ''; + FAddCustomHeader := False; + FDoNotTrack := True; + FSendReferrer := True; + FRunAllFlashInAllowMode := False; + FAllowOutdatedPlugins := False; + FAlwaysAuthorizePlugins := False; + FSpellChecking := True; + FSpellCheckerDicts := ''; + FZoomStep := ZOOM_STEP_DEF; + FZoomStepCS := nil; + FSafeSearch := False; + FYouTubeRestrict := YOUTUBE_RESTRICT_OFF; + FPrintingEnabled := True; + FAcceptLanguageList := ''; + FAcceptCookies := cpAllow; + FBlock3rdPartyCookies := False; + FOffline := False; + FNetworkPredictions := CEF_NETWORK_PREDICTION_WIFI_ONLY; + FQuicAllowed := True; + FJavascriptEnabled := True; + FLoadImagesAutomatically := True; if (GlobalCEFApp <> nil) then FHyperlinkAuditing := GlobalCEFApp.HyperlinkAuditing @@ -2707,6 +2715,24 @@ begin end; end; +procedure TChromiumCore.SetJavascriptEnabled(aValue : boolean); +begin + if (FJavascriptEnabled <> aValue) then + begin + FJavascriptEnabled := aValue; + FUpdatePreferences := True; + end; +end; + +procedure TChromiumCore.SetLoadImagesAutomatically(aValue : boolean); +begin + if (FLoadImagesAutomatically <> aValue) then + begin + FLoadImagesAutomatically := aValue; + FUpdatePreferences := True; + end; +end; + procedure TChromiumCore.SetAudioMuted(aValue : boolean); begin if Initialized then @@ -3933,6 +3959,9 @@ begin UpdatePreference(aBrowser, 'net.network_prediction_options', integer(FNetworkPredictions)); UpdatePreference(aBrowser, 'net.quic_allowed', FQuicAllowed); + + UpdatePreference(aBrowser, 'webkit.webprefs.javascript_enabled', FJavascriptEnabled); + UpdatePreference(aBrowser, 'webkit.webprefs.loads_images_automatically', FLoadImagesAutomatically); end; procedure TChromiumCore.doUpdateOwnPreferences; diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index 9cd48e4c..b86b07cb 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -2,7 +2,7 @@ "UpdateLazPackages" : [ { "ForceNotify" : true, - "InternalVersion" : 177, + "InternalVersion" : 178, "Name" : "cef4delphi_lazarus.lpk", "Version" : "84.4.1.0" }