public GeckoMarkupDocumentViewer GetMarkupDocumentViewer() { if (_MarkupDocumentViewer != null) return _MarkupDocumentViewer; if (WebNav == null) return null; nsIDocShell shell = Xpcom.QueryInterface<nsIDocShell>(WebNav); nsIContentViewer contentViewer; IntPtr contentViewerPtr = shell.GetContentViewerAttribute(); contentViewer = (nsIContentViewer)Marshal.GetObjectForIUnknown(contentViewerPtr); _MarkupDocumentViewer = new GeckoMarkupDocumentViewer((nsIMarkupDocumentViewer)contentViewer); return _MarkupDocumentViewer; }