summaryrefslogtreecommitdiff
path: root/packages/fcl-web/src/webpage.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/fcl-web/src/webpage.pp')
-rw-r--r--packages/fcl-web/src/webpage.pp20
1 files changed, 18 insertions, 2 deletions
diff --git a/packages/fcl-web/src/webpage.pp b/packages/fcl-web/src/webpage.pp
index 18701106eb..1bf473d255 100644
--- a/packages/fcl-web/src/webpage.pp
+++ b/packages/fcl-web/src/webpage.pp
@@ -39,6 +39,7 @@ type
procedure AddScriptFileReference(AScriptFile: String); override;
function DefaultMessageBoxHandler(Sender: TObject; AText: String; Buttons: TWebButtons): string; override;
function CreateNewScript: TStringList; override;
+ procedure FreeScript(var AScript: TStringList); override;
end;
{ TWebPage }
@@ -84,6 +85,7 @@ type
procedure HandlePage(ARequest: TRequest; AResponse: TResponse; AWriter: THTMLwriter; AWebModule: TFPWebModule = nil); virtual;
procedure DoBeforeGenerateXML; virtual;
+ procedure CleanupAfterRequest; virtual;
property Designer: IWebPageDesigner read FDesigner write FDesigner;
property Request: TRequest read FRequest;
property ContentProducers[Index: integer]: THTMLContentProducer read GetContentProducer;
@@ -207,7 +209,7 @@ begin
AResponse.Content := ProduceContent;
end;
finally
- ForeachContentProducer(@DoCleanupAfterRequest, True);
+ CleanupAfterRequest;
end;
finally
SetRequest(nil);
@@ -220,9 +222,16 @@ begin
// Do Nothing
end;
+procedure TWebPage.CleanupAfterRequest;
+begin
+ ForeachContentProducer(@DoCleanupAfterRequest, True);
+ if HasWebController then
+ WebController.CleanupAfterRequest;
+end;
+
procedure TWebPage.DoCleanupAfterRequest(const AContentProducer: THTMLContentProducer);
begin
- AContentProducer.CleanupInstance;
+ AContentProducer.CleanupAfterRequest;
end;
procedure TWebPage.SetRequest(ARequest: TRequest);
@@ -339,6 +348,13 @@ begin
GetScripts.Add(result);
end;
+procedure TStandardWebController.FreeScript(var AScript: TStringList);
+begin
+ with GetScripts do
+ GetScripts.Delete(IndexOf(AScript));
+ AScript := nil;
+end;
+
function TStandardWebController.DefaultMessageBoxHandler(Sender: TObject;
AText: String; Buttons: TWebButtons): string;
var i : integer;