C# Class Bloom.Browser

Show file Open project: BloomBooks/BloomDesktop

Protected Properties

Property Type Description
_browser GeckoWebBrowser

Private Properties

Property Type Description
AddOpenPageInFFItem MenuItem
AddOtherMenuItemsForDebugging void
Browser_Resize void
CleanupAfterNavigation void
InitializeComponent void
IsThereACurrentTextSelection bool
LoadPageDomFromBrowser void
OnConsoleMessage void
OnJavascriptError void
OnOpenAboutCache void
OnOpenAboutConfig void
OnOpenAboutMemory void
OnUpdateDisplayTick void
Paste void
SaveCustomizedCssRules void
SetNewDependent void
UpdateDisplay void
_browser_DocumentCompleted void

Public Methods

Method Description
AddMessageEventListener ( string eventName, Action action ) : void

Only the first call per browser per event name takes effect. (Unless RemoveMessageEventListener is called explicitly for the event name.)

AddScriptContent ( string content ) : void
AddScriptSource ( string filename ) : void

add a jscript source file

Browser ( ) : System
Copy ( ) : void
GetPathToStylizer ( ) : string
HandleLinkClick ( GeckoAnchorElement anchor, DomEventArgs eventArgs, string workingDirectoryForFileLinks ) : void

When you receive a OnBrowserClick and have determined that nothing was clicked on that the c# needs to pay attention to, pass it on to this method. It will either let the browser handle it normally, or redirect it to the operating system so that it can open the file or external website itself.

NamesOfFontsThatBrowserCanRender ( ) : IEnumerable

See https://jira.sil.org/browse/BL-802 and https://bugzilla.mozilla.org/show_bug.cgi?id=1108866 Until that gets fixed, we're better off not listing those fonts that are just going to cause confusion

Navigate ( HtmlDom htmlDom, HtmlDom htmlEditDom = null, bool setAsCurrentPageForDebugging = false ) : void
Navigate ( string url, bool cleanupFileAfterNavigating ) : void
NavigateRawHtml ( string html ) : void
OnGetTroubleShootingInformation ( object sender, EventArgs e ) : void
OnOpenPageInStylizer ( object sender, EventArgs e ) : void
OnOpenPageInSystemBrowser ( object sender, EventArgs e ) : void
RaiseGeckoReady ( ) : void
ReadEditableAreasNow ( ) : void

This is needed if we want to save before getting a natural Validating event.

RemoveMessageEventListener ( string eventName ) : void

Remove a previously installed event handler.

RunJavaScript ( string script ) : string
SaveHTML ( string path ) : void
SetEditingCommands ( CutCommand cutCommand, CopyCommand copyCommand, PasteCommand pasteCommand, UndoCommand undoCommand ) : void
SetUpXulRunner ( ) : void
ShowHtml ( string html ) : void
UpdateEditButtons ( ) : void

Protected Methods

Method Description
Application_Idle ( object sender, EventArgs e ) : void
Dispose ( bool disposing ) : void

Clean up any resources being used.

OnBrowser_DomClick ( object sender, DomEventArgs e ) : void
OnDomKeyPress ( object sender, DomKeyEventArgs e ) : void

Prevent a CTRL+V pasting when we have the Paste button disabled, e.g. when pictures are on the clipboard. Also handle CTRL+N creating a new page on Linux/Mono.

OnLoad ( EventArgs e ) : void
OnShowContextMenu ( object sender, GeckoContextMenuEventArgs e ) : void
_browser_Navigating ( object sender, GeckoNavigatingEventArgs e ) : void

Private Methods

Method Description
AddOpenPageInFFItem ( GeckoContextMenuEventArgs e ) : MenuItem
AddOtherMenuItemsForDebugging ( GeckoContextMenuEventArgs e ) : void
Browser_Resize ( object sender, EventArgs e ) : void
CleanupAfterNavigation ( object sender, GeckoNavigatedEventArgs e ) : void
InitializeComponent ( ) : void

Required method for Designer support - do not modify the contents of this method with the code editor.

IsThereACurrentTextSelection ( ) : bool

Workaround suggested by Tom Hindle, since GeckoFx-45's CanXSelection properties aren't working.

LoadPageDomFromBrowser ( ) : void

What's going on here: the browser is just /editting displaying a copy of one page of the document. So we need to copy any changes back to the real DOM.

OnConsoleMessage ( object sender, ConsoleMessageEventArgs e ) : void
OnJavascriptError ( object sender, JavascriptErrorEventArgs e ) : void
OnOpenAboutCache ( object sender, EventArgs e ) : void
OnOpenAboutConfig ( object sender, EventArgs e ) : void
OnOpenAboutMemory ( object sender, EventArgs e ) : void
OnUpdateDisplayTick ( object sender, EventArgs e ) : void
Paste ( ) : void
SaveCustomizedCssRules ( GeckoStyleSheet userModifiedStyleSheet ) : void
SetNewDependent ( IDisposable dependent ) : void
UpdateDisplay ( ) : void
_browser_DocumentCompleted ( object sender, EventArgs e ) : void

Method Details

AddMessageEventListener() public method

Only the first call per browser per event name takes effect. (Unless RemoveMessageEventListener is called explicitly for the event name.)
public AddMessageEventListener ( string eventName, Action action ) : void
eventName string
action Action
return void

AddScriptContent() public method

public AddScriptContent ( string content ) : void
content string
return void

AddScriptSource() public method

add a jscript source file
public AddScriptSource ( string filename ) : void
filename string
return void

Application_Idle() protected method

protected Application_Idle ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void

Browser() public method

public Browser ( ) : System
return System

Copy() public method

public Copy ( ) : void
return void

Dispose() protected method

Clean up any resources being used.
protected Dispose ( bool disposing ) : void
disposing bool true if managed resources should be disposed; otherwise, false.
return void

GetPathToStylizer() public static method

public static GetPathToStylizer ( ) : string
return string

HandleLinkClick() public method

When you receive a OnBrowserClick and have determined that nothing was clicked on that the c# needs to pay attention to, pass it on to this method. It will either let the browser handle it normally, or redirect it to the operating system so that it can open the file or external website itself.
public HandleLinkClick ( GeckoAnchorElement anchor, DomEventArgs eventArgs, string workingDirectoryForFileLinks ) : void
anchor GeckoAnchorElement
eventArgs DomEventArgs
workingDirectoryForFileLinks string
return void

NamesOfFontsThatBrowserCanRender() public static method

See https://jira.sil.org/browse/BL-802 and https://bugzilla.mozilla.org/show_bug.cgi?id=1108866 Until that gets fixed, we're better off not listing those fonts that are just going to cause confusion
public static NamesOfFontsThatBrowserCanRender ( ) : IEnumerable
return IEnumerable

Navigate() public method

public Navigate ( HtmlDom htmlDom, HtmlDom htmlEditDom = null, bool setAsCurrentPageForDebugging = false ) : void
htmlDom HtmlDom
htmlEditDom HtmlDom
setAsCurrentPageForDebugging bool
return void

Navigate() public method

public Navigate ( string url, bool cleanupFileAfterNavigating ) : void
url string
cleanupFileAfterNavigating bool
return void

NavigateRawHtml() public method

public NavigateRawHtml ( string html ) : void
html string
return void

OnBrowser_DomClick() protected method

protected OnBrowser_DomClick ( object sender, DomEventArgs e ) : void
sender object
e DomEventArgs
return void

OnDomKeyPress() protected method

Prevent a CTRL+V pasting when we have the Paste button disabled, e.g. when pictures are on the clipboard. Also handle CTRL+N creating a new page on Linux/Mono.
protected OnDomKeyPress ( object sender, DomKeyEventArgs e ) : void
sender object
e DomKeyEventArgs
return void

OnGetTroubleShootingInformation() public method

public OnGetTroubleShootingInformation ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void

OnLoad() protected method

protected OnLoad ( EventArgs e ) : void
e EventArgs
return void

OnOpenPageInStylizer() public method

public OnOpenPageInStylizer ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void

OnOpenPageInSystemBrowser() public method

public OnOpenPageInSystemBrowser ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void

OnShowContextMenu() protected method

protected OnShowContextMenu ( object sender, GeckoContextMenuEventArgs e ) : void
sender object
e GeckoContextMenuEventArgs
return void

RaiseGeckoReady() public method

public RaiseGeckoReady ( ) : void
return void

ReadEditableAreasNow() public method

This is needed if we want to save before getting a natural Validating event.
public ReadEditableAreasNow ( ) : void
return void

RemoveMessageEventListener() public method

Remove a previously installed event handler.
public RemoveMessageEventListener ( string eventName ) : void
eventName string
return void

RunJavaScript() public method

public RunJavaScript ( string script ) : string
script string
return string

SaveHTML() public method

public SaveHTML ( string path ) : void
path string
return void

SetEditingCommands() public method

public SetEditingCommands ( CutCommand cutCommand, CopyCommand copyCommand, PasteCommand pasteCommand, UndoCommand undoCommand ) : void
cutCommand CutCommand
copyCommand CopyCommand
pasteCommand PasteCommand
undoCommand UndoCommand
return void

SetUpXulRunner() public static method

public static SetUpXulRunner ( ) : void
return void

ShowHtml() public method

public ShowHtml ( string html ) : void
html string
return void

UpdateEditButtons() public method

public UpdateEditButtons ( ) : void
return void

_browser_Navigating() protected method

protected _browser_Navigating ( object sender, GeckoNavigatingEventArgs e ) : void
sender object
e GeckoNavigatingEventArgs
return void

Property Details

_browser protected property

protected GeckoWebBrowser _browser
return GeckoWebBrowser