Bug 1370605 - Add GeckoView.exitFullScreen() r=esawin
MozReview-Commit-ID: 4vuAvDoQE0W
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java
@@ -602,16 +602,23 @@ public class GeckoView extends LayerView
getEventDispatcher().dispatch("GeckoView:ImportScript", data);
return;
}
throw new IllegalArgumentException("Must import script from 'resources://android/assets/' location.");
}
/**
+ * Exits fullscreen mode
+ */
+ public void exitFullScreen() {
+ mEventDispatcher.dispatch("GeckoViewContent:ExitFullScreen", null);
+ }
+
+ /**
* Set the content callback handler.
* This will replace the current handler.
* @param content An implementation of ContentListener.
*/
public void setContentListener(ContentListener content) {
mContentListener = content;
}
--- a/mobile/android/modules/geckoview/GeckoViewContent.jsm
+++ b/mobile/android/modules/geckoview/GeckoViewContent.jsm
@@ -23,18 +23,30 @@ class GeckoViewContent extends GeckoView
this.messageManager.addMessageListener("GeckoView:DOMFullscreenExit", this);
this.messageManager.addMessageListener("GeckoView:DOMFullscreenRequest", this);
this.messageManager.addMessageListener("GeckoView:DOMTitleChanged", this);
this.window.addEventListener("MozDOMFullscreen:Entered", this,
/* capture */ true, /* untrusted */ false);
this.window.addEventListener("MozDOMFullscreen:Exited", this,
/* capture */ true, /* untrusted */ false);
+
+ this.eventDispatcher.registerListener(this, ["GeckoViewContent:ExitFullScreen"]);
}
+ // Bundle event handler.
+ onEvent(aEvent, aData, aCallback) {
+ switch (aEvent) {
+ case "GeckoViewContent:ExitFullScreen":
+ this.browser.messageManager.sendAsyncMessage("GeckoView:DOMFullscreenExited");
+ break;
+ }
+ }
+
+ // DOM event handler
handleEvent(aEvent) {
debug("handleEvent: aEvent.type=" + aEvent.type);
switch (aEvent.type) {
case "MozDOMFullscreen:Entered":
if (this.browser == aEvent.target) {
// Remote browser; dispatch to content process.
this.browser.messageManager.sendAsyncMessage("GeckoView:DOMFullscreenEntered");