Bug 1290420 - Set the metaViewportOverride flag when viewing a device with touch event support in Responsive Design Mode. r=jryans
MozReview-Commit-ID: EJF1gtMlJXm
--- a/devtools/client/responsive.html/manager.js
+++ b/devtools/client/responsive.html/manager.js
@@ -565,18 +565,22 @@ ResponsiveUI.prototype = {
}),
updateTouchSimulation: Task.async(function* (enabled) {
let reloadNeeded;
if (enabled) {
reloadNeeded = yield this.emulationFront.setTouchEventsOverride(
Ci.nsIDocShell.TOUCHEVENTS_OVERRIDE_ENABLED
);
+ reloadNeeded |= yield this.emulationFront.setMetaViewportOverride(
+ Ci.nsIDocShell.META_VIEWPORT_OVERRIDE_ENABLED
+ );
} else {
reloadNeeded = yield this.emulationFront.clearTouchEventsOverride();
+ reloadNeeded |= yield this.emulationFront.clearMetaViewportOverride();
}
if (reloadNeeded) {
this.getViewportBrowser().reload();
}
}),
/**
* Helper for tests. Assumes a single viewport for now.
--- a/devtools/server/actors/emulation.js
+++ b/devtools/server/actors/emulation.js
@@ -201,16 +201,43 @@ let EmulationActor = protocol.ActorClass
clearTouchEventsOverride() {
if (this._previousTouchEventsOverride !== undefined) {
return this.setTouchEventsOverride(this._previousTouchEventsOverride);
}
return false;
},
+ /* Meta viewport override */
+
+ _previousMetaViewportOverride: undefined,
+
+ setMetaViewportOverride(flag) {
+ if (this.getMetaViewportOverride() == flag) {
+ return false;
+ }
+ if (this._previousMetaViewportOverride === undefined) {
+ this._previousMetaViewportOverride = this.getMetaViewportOverride();
+ }
+
+ this.docShell.metaViewportOverride = flag;
+ return true;
+ },
+
+ getMetaViewportOverride() {
+ return this.docShell.metaViewportOverride;
+ },
+
+ clearMetaViewportOverride() {
+ if (this._previousMetaViewportOverride !== undefined) {
+ return this.setMetaViewportOverride(this._previousMetaViewportOverride);
+ }
+ return false;
+ },
+
/* User agent override */
_previousUserAgentOverride: undefined,
setUserAgentOverride(userAgent) {
if (this.getUserAgentOverride() == userAgent) {
return false;
}
--- a/devtools/shared/specs/emulation.js
+++ b/devtools/shared/specs/emulation.js
@@ -73,16 +73,39 @@ const emulationSpec = generateActorSpec(
clearTouchEventsOverride: {
request: {},
response: {
valueChanged: RetVal("boolean")
}
},
+ setMetaViewportOverride: {
+ request: {
+ flag: Arg(0, "number")
+ },
+ response: {
+ valueChanged: RetVal("boolean")
+ }
+ },
+
+ getMetaViewportOverride: {
+ request: {},
+ response: {
+ flag: RetVal("number")
+ }
+ },
+
+ clearMetaViewportOverride: {
+ request: {},
+ response: {
+ valueChanged: RetVal("boolean")
+ }
+ },
+
setUserAgentOverride: {
request: {
flag: Arg(0, "string")
},
response: {
valueChanged: RetVal("boolean")
}
},