1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-04-17 06:57:13 +02:00

Added 2 browser performance properties.

Added TChromiumCore,BatterySaverModeState
Added TChromiumCore,HighEfficiencyMode
This commit is contained in:
salvadordf 2023-01-25 18:06:32 +01:00
parent 9c186829be
commit 24e310e8ae
3 changed files with 43 additions and 1 deletions

View File

@ -143,6 +143,8 @@ type
FQuicAllowed : boolean; FQuicAllowed : boolean;
FJavascriptEnabled : boolean; FJavascriptEnabled : boolean;
FLoadImagesAutomatically : boolean; FLoadImagesAutomatically : boolean;
FBatterySaverModeState : TCefBatterySaverModeState;
FHighEfficiencyMode : TCefState;
{$IFDEF LINUX} {$IFDEF LINUX}
FXDisplay : PXDisplay; FXDisplay : PXDisplay;
@ -430,6 +432,8 @@ type
procedure SetQuicAllowed(aValue : boolean); procedure SetQuicAllowed(aValue : boolean);
procedure SetJavascriptEnabled(aValue : boolean); procedure SetJavascriptEnabled(aValue : boolean);
procedure SetLoadImagesAutomatically(aValue : boolean); procedure SetLoadImagesAutomatically(aValue : boolean);
procedure SetBatterySaverModeState(aValue : TCefBatterySaverModeState);
procedure SetHighEfficiencyMode(aValue : TCefState);
procedure SetDefaultUrl(const aValue : ustring); procedure SetDefaultUrl(const aValue : ustring);
function CreateBrowserHost(aWindowInfo : PCefWindowInfo; const aURL : ustring; const aSettings : PCefBrowserSettings; const aExtraInfo : ICefDictionaryValue; const aContext : ICefRequestContext): boolean; function CreateBrowserHost(aWindowInfo : PCefWindowInfo; const aURL : ustring; const aSettings : PCefBrowserSettings; const aExtraInfo : ICefDictionaryValue; const aContext : ICefRequestContext): boolean;
@ -965,6 +969,8 @@ type
property QuicAllowed : boolean read FQuicAllowed write SetQuicAllowed; property QuicAllowed : boolean read FQuicAllowed write SetQuicAllowed;
property JavascriptEnabled : boolean read FJavascriptEnabled write SetJavascriptEnabled; property JavascriptEnabled : boolean read FJavascriptEnabled write SetJavascriptEnabled;
property LoadImagesAutomatically : boolean read FLoadImagesAutomatically write SetLoadImagesAutomatically; property LoadImagesAutomatically : boolean read FLoadImagesAutomatically write SetLoadImagesAutomatically;
property BatterySaverModeState : TCefBatterySaverModeState read FBatterySaverModeState write SetBatterySaverModeState;
property HighEfficiencyMode : TCefState read FHighEfficiencyMode write SetHighEfficiencyMode;
{$IFDEF LINUX} {$IFDEF LINUX}
property XDisplay : PXDisplay read GetXDisplay; property XDisplay : PXDisplay read GetXDisplay;
{$ENDIF} {$ENDIF}
@ -1322,6 +1328,8 @@ begin
FQuicAllowed := True; FQuicAllowed := True;
FJavascriptEnabled := True; FJavascriptEnabled := True;
FLoadImagesAutomatically := True; FLoadImagesAutomatically := True;
FBatterySaverModeState := bsmsDefault;
FHighEfficiencyMode := STATE_DEFAULT;
{$IFDEF LINUX} {$IFDEF LINUX}
FXDisplay := nil; FXDisplay := nil;
{$ENDIF} {$ENDIF}
@ -2891,6 +2899,24 @@ begin
end; end;
end; end;
procedure TChromiumCore.SetBatterySaverModeState(aValue : TCefBatterySaverModeState);
begin
if (FBatterySaverModeState <> aValue) then
begin
FBatterySaverModeState := aValue;
FUpdatePreferences := True;
end;
end;
procedure TChromiumCore.SetHighEfficiencyMode(aValue : TCefState);
begin
if (FHighEfficiencyMode <> aValue) then
begin
FHighEfficiencyMode := aValue;
FUpdatePreferences := True;
end;
end;
procedure TChromiumCore.SetDefaultUrl(const aValue : ustring); procedure TChromiumCore.SetDefaultUrl(const aValue : ustring);
begin begin
FDefaultUrl := trim(aValue); FDefaultUrl := trim(aValue);
@ -4119,6 +4145,12 @@ begin
UpdatePreference(aBrowser, 'webkit.webprefs.javascript_enabled', FJavascriptEnabled); UpdatePreference(aBrowser, 'webkit.webprefs.javascript_enabled', FJavascriptEnabled);
UpdatePreference(aBrowser, 'webkit.webprefs.loads_images_automatically', FLoadImagesAutomatically); UpdatePreference(aBrowser, 'webkit.webprefs.loads_images_automatically', FLoadImagesAutomatically);
if (FHighEfficiencyMode <> STATE_DEFAULT) then
UpdatePreference(aBrowser, 'performance_tuning.high_efficiency_mode.enabled', (FHighEfficiencyMode = STATE_ENABLED));
if (FBatterySaverModeState <> bsmsDefault) then
UpdatePreference(aBrowser, 'performance_tuning.battery_saver_mode.state', integer(FBatterySaverModeState));
if assigned(FOnPrefsUpdated) then if assigned(FOnPrefsUpdated) then
FOnPrefsUpdated(self); FOnPrefsUpdated(self);
end; end;

View File

@ -514,6 +514,16 @@ type
nlcmEverything nlcmEverything
); );
// Values used by the battery saver mode state preference
// https://source.chromium.org/chromium/chromium/src/+/main:components/performance_manager/public/user_tuning/prefs.h
TCefBatterySaverModeState = (
bsmsDisabled = 0,
bsmsEnabledBelowThreshold = 1,
bsmsEnabledOnBattery = 2,
bsmsEnabled = 3,
bsmsDefault = 4 // Custom value used to update the preferences only when there's a non-default value
);
// Used by TCEFFileDialogInfo // Used by TCEFFileDialogInfo
TCEFDialogType = (dtOpen, dtOpenMultiple, dtOpenFolder, dtSave); TCEFDialogType = (dtOpen, dtOpenMultiple, dtOpenFolder, dtSave);

View File

@ -2,7 +2,7 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 457, "InternalVersion" : 458,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "109.1.16" "Version" : "109.1.16"
} }