Bug 618919 - Non-mobile 'Bad cert' dialog is shown for XHR [r=dougt]
authorMark Finkle <mfinkle@mozilla.com>
Sun, 27 Feb 2011 14:39:49 -0500
changeset 67435 4cf826600f8a91d0b9fc3d8bb44bb0712c027df8
parent 67434 7134694f4edf1535335bc5faec68b5446b084807
child 67436 45a2233f8eee4c7847626d669e4de243fc2d4ed6
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdougt
bugs618919
Bug 618919 - Non-mobile 'Bad cert' dialog is shown for XHR [r=dougt]
mobile/build.mk
mobile/components/Makefile.in
mobile/components/build/Makefile.in
mobile/components/build/nsBrowserComponents.h
mobile/components/build/nsBrowserModule.cpp
mobile/components/build/nsIPhoneSupport.idl
mobile/components/build/nsPhoneSupport.cpp
mobile/components/build/nsPhoneSupport.h
mobile/components/build/nsSSLCertErrorDialog.cpp
mobile/components/build/nsSSLCertErrorDialog.h
mobile/components/phone/Makefile.in
mobile/components/phone/nsIPhoneSupport.idl
mobile/components/phone/nsPhoneSupport.cpp
mobile/confvars.sh
mobile/installer/package-manifest.in
--- a/mobile/build.mk
+++ b/mobile/build.mk
@@ -31,16 +31,19 @@
 # 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 *****
 
 ifndef LIBXUL_SDK
+# Needed for building our components as part of libxul
+APP_LIBXUL_DIRS += mobile/components/build
+
 include $(topsrcdir)/toolkit/toolkit-tiers.mk
 else
 ifdef ENABLE_TESTS
 tier_testharness_dirs += \
   testing/mochitest \
   $(NULL)
 endif
 endif
--- a/mobile/components/Makefile.in
+++ b/mobile/components/Makefile.in
@@ -76,14 +76,9 @@ EXTRA_COMPONENTS = \
         LoginManagerPrompter.js \
         BlocklistPrompt.js \
         $(NULL)
 
 ifdef MOZ_UPDATER
 EXTRA_COMPONENTS += UpdatePrompt.js
 endif
 
-ifneq (Android,$(OS_TARGET))
-DIRS =  phone \
-        $(NULL)
-endif
-
 include $(topsrcdir)/config/rules.mk
rename from mobile/components/phone/Makefile.in
rename to mobile/components/build/Makefile.in
--- a/mobile/components/phone/Makefile.in
+++ b/mobile/components/build/Makefile.in
@@ -38,32 +38,41 @@
 
 DEPTH		= ../../..
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-MODULE_NAME     = mozphone
-MODULE          = mozphone
-LIBRARY_NAME    = mozphone
+MODULE_NAME     = nsBrowserCompsModule
+MODULE          = browsercomps
+LIBRARY_NAME    = browsercomps
+LIBXUL_LIBRARY  = 1
 
 IS_COMPONENT	= 1
 EXPORT_LIBRARY  = 1
 
+EXPORTS = nsBrowserComponents.h
+
 REQUIRES	= \
 		  xpcom \
 		  string \
 		  pref \
 		  $(NULL)
 
-CPPSRCS   = nsPhoneSupport.cpp
+CPPSRCS = \
+	nsSSLCertErrorDialog.cpp \
+	nsBrowserModule.cpp \
+	$(NULL)
+
+ifndef ANDROID
+CPPSRCS += nsPhoneSupport.cpp
 XPIDLSRCS = nsIPhoneSupport.idl
-
+endif
 
 EXTRA_DSO_LDOPTS += \
 	$(XPCOM_GLUE_LDOPTS) \
 	$(NSPR_LIBS) \
 	$(NULL)
 
 
 ifeq ($(MOZ_PLATFORM_MAEMO),5)
new file mode 100644
--- /dev/null
+++ b/mobile/components/build/nsBrowserComponents.h
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * ***** 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 Mobile Browser.
+ *
+ * The Initial Developer of the Original Code is
+ * the Mozilla Foundation <http://www.mozilla.org/>.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Mark Finkle <mfinkle@mozilla.com>
+ *
+ * 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 ***** */
+
+// Needed for building our components as part of libxul
+#define APP_COMPONENT_MODULES MODULE(nsBrowserCompsModule)
new file mode 100644
--- /dev/null
+++ b/mobile/components/build/nsBrowserModule.cpp
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * ***** 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 Mobile Browser.
+ *
+ * The Initial Developer of the Original Code is
+ * the Mozilla Foundation <http://www.mozilla.org/>.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Mark Finkle <mfinkle@mozilla.com>
+ *
+ * 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 ***** */
+
+#include "mozilla/ModuleUtils.h"
+
+#ifndef ANDROID
+#include "nsPhoneSupport.h"
+#endif
+
+#include "nsSSLCertErrorDialog.h"
+
+#ifndef ANDROID
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsPhoneSupport)
+NS_DEFINE_NAMED_CID(nsPhoneSupport_CID);
+#endif
+
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsSSLCertErrorDialog)
+NS_DEFINE_NAMED_CID(nsSSLCertErrorDialog_CID);
+
+static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
+#ifndef ANDROID
+  { &knsPhoneSupport_CID, false, NULL, nsPhoneSupportConstructor },
+#endif
+  { &knsSSLCertErrorDialog_CID, false, NULL, nsSSLCertErrorDialogConstructor },
+  { NULL }
+};
+
+static const mozilla::Module::ContractIDEntry kBrowserContracts[] = {
+#ifndef ANDROID
+  { nsPhoneSupport_ContractID, &knsPhoneSupport_CID },
+#endif
+  { nsSSLCertErrorDialog_ContractID, &knsSSLCertErrorDialog_CID },
+  { NULL }
+};
+
+static const mozilla::Module kBrowserModule = {
+  mozilla::Module::kVersion,
+  kBrowserCIDs,
+  kBrowserContracts
+};
+
+NSMODULE_DEFN(nsBrowserCompsModule) = &kBrowserModule;
rename from mobile/components/phone/nsIPhoneSupport.idl
rename to mobile/components/build/nsIPhoneSupport.idl
rename from mobile/components/phone/nsPhoneSupport.cpp
rename to mobile/components/build/nsPhoneSupport.cpp
--- a/mobile/components/phone/nsPhoneSupport.cpp
+++ b/mobile/components/build/nsPhoneSupport.cpp
@@ -48,31 +48,18 @@
 #include <dbus/dbus.h>
 #endif
 
 #ifdef MOZ_WIDGET_QT
 #include <QtGui/QApplication>
 #include <QtGui/QWidget>
 #endif
 
-#include "nsStringAPI.h"
-#include "nsIPhoneSupport.h"
-#include "mozilla/ModuleUtils.h"
-
-class nsPhoneSupport : public nsIPhoneSupport
-{
-public:
-
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSIPHONESUPPORT
-
-  nsPhoneSupport() {};
-  ~nsPhoneSupport(){};
-
-};
+#include "nsPhoneSupport.h"
+#include "nsString.h"
 
 NS_IMPL_ISUPPORTS1(nsPhoneSupport, nsIPhoneSupport)
 
 NS_IMETHODIMP
 nsPhoneSupport::MakeCall(const PRUnichar *telephoneNumber, const PRUnichar *telephoneDescription, PRBool aPrompt)
 {
   long result = -1;
 
@@ -424,39 +411,8 @@ nsPhoneSupport::RestoreDefaultBrowser()
   ::RegFlushKey(HKEY_CLASSES_ROOT);
   ::RegFlushKey(HKEY_LOCAL_MACHINE);
 
   return NS_OK;
 #else
   return NS_ERROR_NOT_IMPLEMENTED;
 #endif
 }
-
-//------------------------------------------------------------------------------
-//  XPCOM REGISTRATION BELOW
-//------------------------------------------------------------------------------
-
-#define nsPhoneSupport_CID                          \
-{ 0x2a08c9e4, 0xf853, 0x4f02,                       \
-{0x88, 0xd8, 0xd6, 0x2f, 0x27, 0xca, 0x06, 0x85} }
-
-#define nsPhoneSupport_ContractID "@mozilla.org/phone/support;1"
-
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsPhoneSupport)
-NS_DEFINE_NAMED_CID(nsPhoneSupport_CID);
-
-static const mozilla::Module::CIDEntry kPhoneCIDs[] = {
-  { &knsPhoneSupport_CID, false, NULL, nsPhoneSupportConstructor },
-  { NULL }
-};
-
-static const mozilla::Module::ContractIDEntry kPhoneContracts[] = {
-  { nsPhoneSupport_ContractID, &knsPhoneSupport_CID },
-  { NULL }
-};
-
-static const mozilla::Module kPhoneModule = {
-  mozilla::Module::kVersion,
-  kPhoneCIDs,
-  kPhoneContracts
-};
-
-NSMODULE_DEFN(nsPhoneSupportModule) = &kPhoneModule;
new file mode 100644
--- /dev/null
+++ b/mobile/components/build/nsPhoneSupport.h
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * ***** 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 Minimo Tel Protocol Handler.
+ *
+ * The Initial Developer of the Original Code is
+ * the Mozilla Foundation <http://www.mozilla.org/>.
+ * Portions created by the Initial Developer are Copyright (C) 2008
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Doug Turner <dougt@meer.net>
+ *  Nino D'Aversa <ninodaversa@gmail.com>
+ *  Alex Pakhotin <alexp@mozilla.com>
+ *
+ * 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 ***** */
+
+#ifndef __NS_PHONESUPPORT_H__
+#define __NS_PHONESUPPORT_H__
+
+#include "nsIPhoneSupport.h"
+
+class nsPhoneSupport : public nsIPhoneSupport
+{
+public:
+
+  NS_DECL_ISUPPORTS
+  NS_DECL_NSIPHONESUPPORT
+
+  nsPhoneSupport() {};
+  ~nsPhoneSupport() {};
+
+};
+
+#define nsPhoneSupport_CID                          \
+{ 0x2a08c9e4, 0xf853, 0x4f02,                       \
+{0x88, 0xd8, 0xd6, 0x2f, 0x27, 0xca, 0x06, 0x85} }
+
+#define nsPhoneSupport_ContractID "@mozilla.org/phone/support;1"
+
+#endif
new file mode 100644
--- /dev/null
+++ b/mobile/components/build/nsSSLCertErrorDialog.cpp
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * ***** 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 Mobile Browser SSL Cert Dialog Override.
+ *
+ * The Initial Developer of the Original Code is
+ * the Mozilla Foundation <http://www.mozilla.org/>.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Mark Finkle <mfinkle@mozilla.com>
+ *
+ * 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 ***** */
+
+#include "nsSSLCertErrorDialog.h"
+
+NS_IMPL_THREADSAFE_ISUPPORTS1(nsSSLCertErrorDialog, nsISSLCertErrorDialog);
+
+NS_IMETHODIMP
+nsSSLCertErrorDialog::ShowCertError(nsIInterfaceRequestor *ctx, 
+                                    nsISSLStatus *status, 
+                                    nsIX509Cert *cert, 
+                                    const nsAString & textErrorMessage, 
+                                    const nsAString & htmlErrorMessage, 
+                                    const nsACString & hostName, 
+                                    PRUint32 portNumber)
+{
+  /* Returning NS_OK here does not mean that this connection will continue
+   * successfully.  The connection has been or will be aborted regardless of
+   * what we do here.
+   */
+  return NS_OK;
+}
new file mode 100644
--- /dev/null
+++ b/mobile/components/build/nsSSLCertErrorDialog.h
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * ***** 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 Mobile Browser SSL Cert Dialog Override.
+ *
+ * The Initial Developer of the Original Code is
+ * the Mozilla Foundation <http://www.mozilla.org/>.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Mark Finkle <mfinkle@mozilla.com>
+ *
+ * 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 ***** */
+
+#ifndef __NS_SSLCERTERRORDIALOG_H__
+#define __NS_SSLCERTERRORDIALOG_H__
+
+#include "nsISSLCertErrorDialog.h"
+
+class nsSSLCertErrorDialog : public nsISSLCertErrorDialog
+{
+public:
+
+  NS_DECL_ISUPPORTS
+  NS_DECL_NSISSLCERTERRORDIALOG
+
+  nsSSLCertErrorDialog() {};
+  ~nsSSLCertErrorDialog() {};
+
+};
+
+#define nsSSLCertErrorDialog_CID                    \
+{ 0xb13f1121, 0xfa10, 0x4a7d,                       \
+{0x82, 0xe5, 0x31, 0x59, 0x9b, 0x89, 0x60, 0xb8} }
+
+#define nsSSLCertErrorDialog_ContractID "@mozilla.org/nsSSLCertErrorDialog;1"
+
+#endif
--- a/mobile/confvars.sh
+++ b/mobile/confvars.sh
@@ -51,8 +51,12 @@ MOZ_DISABLE_DOMCRYPTO=1
 
 if test "$LIBXUL_SDK"; then
 MOZ_XULRUNNER=1
 else
 MOZ_XULRUNNER=
 MOZ_MORK=
 MOZ_PLACES=1
 fi
+
+# Needed for building our components as part of libxul
+MOZ_APP_COMPONENT_LIBS="browsercomps"
+MOZ_APP_COMPONENT_INCLUDE=nsBrowserComponents.h
--- a/mobile/installer/package-manifest.in
+++ b/mobile/installer/package-manifest.in
@@ -632,13 +632,10 @@ bin/components/@DLL_PREFIX@nkgnomevfs@DL
 @BINPATH@/components/MobileComponents.xpt
 @BINPATH@/components/PromptService.js
 @BINPATH@/components/SessionStore.js
 @BINPATH@/components/Sidebar.js
 #ifdef MOZ_UPDATER
 @BINPATH@/components/UpdatePrompt.js
 #endif
 @BINPATH@/components/XPIDialogService.js
-#ifndef ANDROID
-@BINPATH@/components/@DLL_PREFIX@mozphone@DLL_SUFFIX@
-@BINPATH@/components/mozphone.xpt
-#endif
+@BINPATH@/components/browsercomps.xpt
 @BINPATH@/extensions/feedback@mobile.mozilla.org.xpi