diff options
Diffstat (limited to 'b2g/chrome/content/desktop.js')
-rw-r--r-- | b2g/chrome/content/desktop.js | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/b2g/chrome/content/desktop.js b/b2g/chrome/content/desktop.js deleted file mode 100644 index 5a1e7ff04..000000000 --- a/b2g/chrome/content/desktop.js +++ /dev/null @@ -1,179 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -var browserWindow = Services.wm.getMostRecentWindow("navigator:browser"); -var isMulet = "ResponsiveUI" in browserWindow; - -// Enable touch event shim on desktop that translates mouse events -// into touch ones -function enableTouch() { - let require = Cu.import('resource://devtools/shared/Loader.jsm', {}) - .devtools.require; - let { TouchEventSimulator } = require('devtools/shared/touch/simulator'); - let touchEventSimulator = new TouchEventSimulator(shell.contentBrowser); - touchEventSimulator.start(); -} - -// Some additional buttons are displayed on simulators to fake hardware buttons. -function setupButtons() { - let link = document.createElement('link'); - link.type = 'text/css'; - link.rel = 'stylesheet'; - link.href = 'chrome://b2g/content/desktop.css'; - document.head.appendChild(link); - - let footer = document.createElement('footer'); - footer.id = 'controls'; - document.body.appendChild(footer); - let homeButton = document.createElement('button'); - homeButton.id = 'home-button'; - footer.appendChild(homeButton); - let rotateButton = document.createElement('button'); - rotateButton.id = 'rotate-button'; - footer.appendChild(rotateButton); - - homeButton.addEventListener('mousedown', function() { - let window = shell.contentBrowser.contentWindow; - let e = new window.KeyboardEvent('keydown', {key: 'Home'}); - window.dispatchEvent(e); - homeButton.classList.add('active'); - }); - homeButton.addEventListener('mouseup', function() { - let window = shell.contentBrowser.contentWindow; - let e = new window.KeyboardEvent('keyup', {key: 'Home'}); - window.dispatchEvent(e); - homeButton.classList.remove('active'); - }); - - Cu.import("resource://gre/modules/GlobalSimulatorScreen.jsm"); - rotateButton.addEventListener('mousedown', function() { - rotateButton.classList.add('active'); - }); - rotateButton.addEventListener('mouseup', function() { - GlobalSimulatorScreen.flipScreen(); - rotateButton.classList.remove('active'); - }); -} - -function setupStorage() { - let directory = null; - - // Get the --storage-path argument from the command line. - try { - let service = Cc['@mozilla.org/commandlinehandler/general-startup;1?type=b2gcmds'].getService(Ci.nsISupports); - let args = service.wrappedJSObject.cmdLine; - if (args) { - let path = args.handleFlagWithParam('storage-path', false); - directory = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); - directory.initWithPath(path); - } - } catch(e) { - directory = null; - } - - // Otherwise, default to 'storage' folder within current profile. - if (!directory) { - directory = Services.dirsvc.get('ProfD', Ci.nsIFile); - directory.append('storage'); - if (!directory.exists()) { - directory.create(Ci.nsIFile.DIRECTORY_TYPE, parseInt("755", 8)); - } - } - dump("Set storage path to: " + directory.path + "\n"); - - // This is the magic, where we override the default location for the storages. - Services.prefs.setCharPref('device.storage.overrideRootDir', directory.path); -} - -function checkDebuggerPort() { - // XXX: To be removed once bug 942756 lands. - // We are hacking 'unix-domain-socket' pref by setting a tcp port (number). - // SocketListener.open detects that it isn't a file path (string), and starts - // listening on the tcp port given here as command line argument. - - // Get the command line arguments that were passed to the b2g client - let args; - try { - let service = Cc["@mozilla.org/commandlinehandler/general-startup;1?type=b2gcmds"].getService(Ci.nsISupports); - args = service.wrappedJSObject.cmdLine; - } catch(e) {} - - if (!args) { - return; - } - - let dbgport; - try { - dbgport = args.handleFlagWithParam('start-debugger-server', false); - } catch(e) {} - - if (dbgport) { - dump('Opening debugger server on ' + dbgport + '\n'); - Services.prefs.setCharPref('devtools.debugger.unix-domain-socket', dbgport); - navigator.mozSettings.createLock().set( - {'debugger.remote-mode': 'adb-devtools'}); - } -} - - -function initResponsiveDesign() { - Cu.import('resource://devtools/client/responsivedesign/responsivedesign.jsm'); - ResponsiveUIManager.on('on', function(event, {tab:tab}) { - let responsive = ResponsiveUIManager.getResponsiveUIForTab(tab); - let document = tab.ownerDocument; - - // Only tweak reponsive mode for shell.html tabs. - if (tab.linkedBrowser.contentWindow != window) { - return; - } - - // Disable transition as they mess up with screen size handler - responsive.transitionsEnabled = false; - - responsive.buildPhoneUI(); - - responsive.rotatebutton.addEventListener('command', function (evt) { - GlobalSimulatorScreen.flipScreen(); - evt.stopImmediatePropagation(); - evt.preventDefault(); - }, true); - - // Enable touch events - responsive.enableTouch(); - }); - - - let mgr = browserWindow.ResponsiveUI.ResponsiveUIManager; - mgr.toggle(browserWindow, browserWindow.gBrowser.selectedTab); - -} - -function openDevtools() { - // Open devtool panel while maximizing its size according to screen size - Services.prefs.setIntPref('devtools.toolbox.sidebar.width', - browserWindow.outerWidth - 550); - Services.prefs.setCharPref('devtools.toolbox.host', 'side'); - let {gDevTools} = Cu.import('resource://devtools/client/framework/gDevTools.jsm', {}); - let {devtools} = Cu.import("resource://devtools/shared/Loader.jsm", {}); - let target = devtools.TargetFactory.forTab(browserWindow.gBrowser.selectedTab); - gDevTools.showToolbox(target); -} - -window.addEventListener('ContentStart', function() { - // On Firefox Mulet, touch events are enabled within the responsive mode - if (!isMulet) { - enableTouch(); - } - if (Services.prefs.getBoolPref('b2g.software-buttons')) { - setupButtons(); - } - checkDebuggerPort(); - setupStorage(); - // On Firefox mulet, we automagically enable the responsive mode - // and show the devtools - if (isMulet) { - initResponsiveDesign(browserWindow); - openDevtools(); - } -}); |