diff --git a/mobile/app/Makefile.in b/mobile/app/Makefile.in index ace34ad00830..69cc75f27a67 100644 --- a/mobile/app/Makefile.in +++ b/mobile/app/Makefile.in @@ -42,6 +42,8 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk +DIRS = profile/extensions + PREF_JS_EXPORTS = $(srcdir)/mobile.js DIST_FILES = application.ini diff --git a/mobile/app/profile/extensions/Makefile.in b/mobile/app/profile/extensions/Makefile.in new file mode 100644 index 000000000000..cfb83eeb08d0 --- /dev/null +++ b/mobile/app/profile/extensions/Makefile.in @@ -0,0 +1,59 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is Mozilla. +# +# The Initial Developer of the Original Code is +# the Mozilla Foundation . +# Portions created by the Initial Developer are Copyright (C) 2010 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Finkle +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +include $(topsrcdir)/config/rules.mk + +ifeq (beta,$(MOZ_UPDATE_CHANNEL)) +EXTENSIONS = \ + feedback@mobile.mozilla.org \ + $(NULL) + +define _INSTALL_EXTENSIONS +$(PYTHON) $(topsrcdir)/config/nsinstall.py $(wildcard $(srcdir)/$(dir)/*) $(DIST)/bin/extensions/$(dir) + +endef # do not remove the blank line! + +libs:: + $(foreach dir,$(EXTENSIONS),$(_INSTALL_EXTENSIONS)) +endif diff --git a/mobile/app/profile/extensions/feedback@mobile.mozilla.org/chrome.manifest b/mobile/app/profile/extensions/feedback@mobile.mozilla.org/chrome.manifest new file mode 100644 index 000000000000..49bb5554d98f --- /dev/null +++ b/mobile/app/profile/extensions/feedback@mobile.mozilla.org/chrome.manifest @@ -0,0 +1,5 @@ +content feedback content/ +skin feedback classic/1.0 skin/ +locale feedback en-US locale/en-US/ + +overlay chrome://browser/content/browser.xul chrome://feedback/content/overlay.xul diff --git a/mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.js b/mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.js new file mode 100644 index 000000000000..136e7157abc8 --- /dev/null +++ b/mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.js @@ -0,0 +1,84 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Feedback. + * + * The Initial Developer of the Original Code is + * Mozilla Corporation. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Mark Finkle + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +var Feedback = { + init: function(aEvent) { + let appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo); + document.getElementById("feedback-about").setAttribute("desc", appInfo.version); + }, + + openReadme: function() { + let formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].getService(Ci.nsIURLFormatter); + let url = formatter.formatURLPref("app.releaseNotesURL"); + BrowserUI.newTab(url); + }, + + updateRestart: function updateRestart() { + let msg = document.getElementById("feedback-messages"); + if (msg) { + let strings = Elements.browserBundle; + + let value = "restart-app"; + let notification = msg.getNotificationWithValue(value); + if (notification) + return; + + let restartCallback = function(aNotification, aDescription) { + // Notify all windows that an application quit has been requested + var cancelQuit = Cc["@mozilla.org/supports-PRBool;1"].createInstance(Ci.nsISupportsPRBool); + Services.obs.notifyObservers(cancelQuit, "quit-application-requested", "restart"); + + // If nothing aborted, quit the app + if (cancelQuit.data == false) { + let appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup); + appStartup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); + } + }; + + let buttons = [ { + label: strings.getString("notificationRestart.button"), + accessKey: "", + callback: restartCallback + } ]; + + let message = strings.getString("notificationRestart.normal"); + msg.appendNotification(message, value, "", msg.PRIORITY_WARNING_LOW, buttons); + } + } +}; + +window.addEventListener("load", Feedback.init, false); diff --git a/mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.xul b/mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.xul new file mode 100644 index 000000000000..76986120d9d1 --- /dev/null +++ b/mobile/app/profile/extensions/feedback@mobile.mozilla.org/content/overlay.xul @@ -0,0 +1,80 @@ + + + + + + + +%feedbackDTD; +]> + + +