author Tanushree Podder <tpodder@tpodder-uphtdd.local>
Tue, 15 May 2018 16:03:24 -0400
changeset 475436 8adad3e36890e89989afaeccb09c0ca29b2f118a
parent 473898 d8c9882a3b3ca27904d6169567829e79c458e567
child 528703 b698ba8b6e2454bd18dbe5b03fb98f8f6ff47df6
permissions -rw-r--r--
Bug 1458711 - Allow pinch-zooming to be triggered by Mac trackpad gestures (behind a pref); r=botond,mstange Previously, a feature was added to trigger pinch-zooming on desktops using the mousewheel and a modifier key of the user's choosing (behind a pref). To make testing easier on Macs, we wanted to trigger pinch-zooming through Mac trackpad gestures. This patch enables pinch zooming through trackpad gestures when the prefs apz.allow-zooming and dom.meta-viewport.enabled are set to true. Currently, tests for this feature were performed manually. We will be using this feature only for internal testing. Later on when zooming on desktops is more well-behaved, we will create automated tests and ship it. MozReview-Commit-ID: HQ9OsPA1HPM

// You might think topsrcdir is '.', but that's not true when the Gradle build
// is launched from within IntelliJ.
def topsrcdir = rootProject.projectDir.absolutePath

def commandLine = ["${topsrcdir}/mach", "environment", "--format", "json", "--verbose"]
def proc = commandLine.execute(null, new File(topsrcdir))
def standardOutput = new ByteArrayOutputStream()
proc.consumeProcessOutput(standardOutput, standardOutput)

// Only show the output if something went wrong.
if (proc.exitValue() != 0) {
    throw new GradleException("Process '${commandLine}' finished with non-zero exit value ${proc.exitValue()}:\n\n${standardOutput.toString()}")

import groovy.json.JsonSlurper

def slurper = new JsonSlurper()
def json = slurper.parseText(standardOutput.toString())

if (json.substs.MOZ_BUILD_APP != 'mobile/android') {
    throw new GradleException("Building with Gradle is only supported for Fennec, i.e., MOZ_BUILD_APP == 'mobile/android'.")

// Set the Android SDK location.  This is the *least specific* mechanism, which
// is unfortunate: we'd prefer to use the *most specific* mechanism.  That is,
// (first 'sdk.dir', then 'android.dir') and then the
// environment variable ANDROID_HOME will override this.  That's unfortunate,
// but it's hard to automatically arrange better.
System.setProperty('android.home', json.substs.ANDROID_SDK_ROOT)

include ':annotations'
include ':app'
include ':geckoview'
include ':geckoview_example'
include ':omnijar'
include ':thirdparty'

project(':annotations').projectDir = new File("${json.topsrcdir}/mobile/android/annotations")
project(':app').projectDir = new File("${json.topsrcdir}/mobile/android/app")
project(':geckoview').projectDir = new File("${json.topsrcdir}/mobile/android/geckoview")
project(':geckoview_example').projectDir = new File("${json.topsrcdir}/mobile/android/geckoview_example")
project(':omnijar').projectDir = new File("${json.topsrcdir}/mobile/android/app/omnijar")
project(':thirdparty').projectDir = new File("${json.topsrcdir}/mobile/android/thirdparty")

// The Gradle instance is shared between settings.gradle and all the
// other build.gradle files (see
// We use this ext property to pass the per-object-directory mozconfig
// between scripts.  This lets us execute set-up code before we gradle
// tries to configure the project even once, and as a side benefit
// saves invoking |mach environment| multiple times.
gradle.ext.mozconfig = json