Browse Source

* Patch from Martin Friebe to add browser log messages

michael 4 years ago
parent
commit
b8c0b0d885
2 changed files with 36 additions and 2 deletions
  1. 16 2
      demo/webwidget/nativedesign/frmmain.lfm
  2. 20 0
      demo/webwidget/nativedesign/frmmain.pp

+ 16 - 2
demo/webwidget/nativedesign/frmmain.lfm

@@ -95,6 +95,7 @@ object MainForm: TMainForm
         Width = 688
         Align = alClient
         TabOrder = 0
+        Chromium.OnConsoleMessage = ChromiumConsoleMessage
         Chromium.OnBeforePopup = cwOnBeforePopup
         OnBrowserCreated = BrowserWindow1BrowserCreated
         OnBrowserClosed = BrowserWindow1BrowserClosed
@@ -106,9 +107,9 @@ object MainForm: TMainForm
       ClientWidth = 688
       object MLog: TMemo
         Left = 0
-        Height = 430
+        Height = 433
         Top = 0
-        Width = 688
+        Width = 690
         Align = alClient
         Lines.Strings = (
           'MLog'
@@ -117,6 +118,19 @@ object MainForm: TMainForm
         TabOrder = 0
       end
     end
+    object BrowserLog: TTabSheet
+      Caption = 'BrowserLog'
+      ClientHeight = 433
+      ClientWidth = 690
+      object BLog: TMemo
+        Left = 0
+        Height = 433
+        Top = 0
+        Width = 690
+        Align = alClient
+        TabOrder = 0
+      end
+    end
     object TSInspector: TTabSheet
       Caption = 'Inspector'
     end

+ 20 - 0
demo/webwidget/nativedesign/frmmain.pp

@@ -25,10 +25,12 @@ type
     BrowserWindow1: TBrowserWindow;
     FEProject: TFileNameEdit;
     ILWidgets: TImageList;
+    BLog: TMemo;
     MLog: TMemo;
     PCDesigner: TPageControl;
     Project: TLabel;
     PBottom: TPanel;
+    BrowserLog: TTabSheet;
     TBExternalGo: TToolButton;
     TSInspector: TTabSheet;
     TSBrowser: TTabSheet;
@@ -41,6 +43,9 @@ type
     procedure AGoUpdate(Sender: TObject);
     procedure BrowserWindow1BrowserClosed(Sender: TObject);
     procedure BrowserWindow1BrowserCreated(Sender: TObject);
+    procedure ChromiumConsoleMessage(Sender: TObject;
+      const browser: ICefBrowser; level: TCefLogSeverity; const message,
+      source: ustring; line: Integer; out Result: Boolean);
     procedure cwOnBeforePopup(Sender: TObject;
       const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
       targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
@@ -54,6 +59,7 @@ type
     procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
     procedure FormCreate(Sender: TObject);
   private
+    FChromiumLogMsg: String;
     FClientID : Int64; // Just one for now
     FDesignCaption : String;
     FWebIDEIntf : TIDEServer;
@@ -66,6 +72,7 @@ type
     procedure WMEnterMenuLoop(var aMessage: TMessage); message WM_ENTERMENULOOP;
     procedure WMExitMenuLoop(var aMessage: TMessage); message WM_EXITMENULOOP;
 {$ENDIF}
+    procedure DoChromiumLogMessage;
     function GetProjectURL: String;
     procedure DoAddWidget(Sender: TObject);
     procedure DoAction(Sender: TObject; aExchange: TIDEExchange);
@@ -147,6 +154,19 @@ begin
   FAllowGo:=True;
 end;
 
+procedure TMainForm.DoChromiumLogMessage;
+begin
+  BLog.Append(FChromiumLogMsg);
+end;
+
+procedure TMainForm.ChromiumConsoleMessage(Sender: TObject;
+  const browser: ICefBrowser; level: TCefLogSeverity; const message,
+  source: ustring; line: Integer; out Result: Boolean);
+begin
+  FChromiumLogMsg := Format('%s [%s %d]', [message, source, line]);
+  TThread.Synchronize(nil, @DoChromiumLogMessage);
+end;
+
 procedure TMainForm.FormCreate(Sender: TObject);
 begin
   FAllowGo:=False;