new file mode 100644--- /dev/null+++ b/browser/components/privatebrowsing/src/nsPrivateBrowsingServiceObsolete.js@@ -0,0 +1,21 @@+/* 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/. */++Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");++const Ci = Components.interfaces;++// This dummy object just emulates the old nsIPrivateBrowsingService, and is+// non-functional in every aspect. It is only used to make Jetpack work+// again.++function PrivateBrowsingService() {+}++PrivateBrowsingService.prototype = {+ classID: Components.ID("{ba0e4d3d-7be2-41a0-b723-a7c16b22ebe9}"),+ QueryInterface: XPCOMUtils.generateQI([Ci.nsIPrivateBrowsingService])+};++this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PrivateBrowsingService]);

new file mode 100644--- /dev/null+++ b/browser/components/privatebrowsing/src/nsPrivateBrowsingServiceObsolete.manifest@@ -0,0 +1,15 @@+# WebappRT doesn't need these instructions, and they don't necessarily work+# with it, but it does use a GRE directory that the GRE shares with Firefox,+# so in order to prevent the instructions from being processed for WebappRT,+# we need to restrict them to the applications that depend on them, i.e.:+#+# b2g: {3c2e2abc-06d4-11e1-ac3b-374f68613e61}+# browser: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}+# mobile/android: {aa3c5121-dab2-40e2-81ca-7ea25febc110}+# mobile/xul: {a23983c0-fd0e-11dc-95ff-0800200c9a66}+#+# In theory we should do this for all these instructions, but in practice it is+# sufficient to do it for the app-startup one, and the file is simpler that way.++component {ba0e4d3d-7be2-41a0-b723-a7c16b22ebe9} nsPrivateBrowsingServiceObsolete.js+contract @mozilla.org/privatebrowsing;1 {ba0e4d3d-7be2-41a0-b723-a7c16b22ebe9}

--- a/config/msvc-stl-wrapper.template.h+++ b/config/msvc-stl-wrapper.template.h@@ -55,18 +55,20 @@ // // FIXME/bug 551254: because we're not wrapping all the STL headers we // use, undefining this here can cause some headers to be built with // iterator checking and others not. Turning this off until we have a // better plan. //# undef _SECURE_SCL #endif-// We know that code won't be able to catch exceptions, but that's OK-// because we're not throwing them.+// C4275: When _HAS_EXCEPTIONS is set to 0, system STL header+// will generate the warning which we can't modify.+// C4530: We know that code won't be able to catch exceptions,+// but that's OK because we're not throwing them. #pragma warning( push )-#pragma warning( disable : 4530 )+#pragma warning( disable : 4275 4530 ) #include <${HEADER_PATH}> #pragma warning( pop ) #endif // if mozilla_${HEADER}_h

--- a/content/base/public/nsIImageLoadingContent.idl+++ b/content/base/public/nsIImageLoadingContent.idl@@ -27,16 +27,19 @@ interface nsIFrame; * the currently loaded image will start a "pending" request which will * become current only when the image is loaded. It is the responsibility of * observers to check which request they are getting notifications for. * * Observers added in mid-load will not get any notifications they * missed. We should NOT freeze this interface without considering * this issue. (It could be that the image status on imgIRequest is * sufficient, when combined with the imageBlockingStatus information.)+ *+ * Please make sure to update the HTMLImageElement Web IDL interface to+ * mirror this interface when changing it. */ [scriptable, builtinclass, uuid(497bfb9b-d996-4d1e-a647-8137b0cfc876)] interface nsIImageLoadingContent : imgINotificationObserver { /** * Request types. Image loading content nodes attempt to do atomic * image changes when the image url is changed. This means that

--- a/dom/bindings/CallbackFunction.cpp+++ b/dom/bindings/CallbackFunction.cpp@@ -88,17 +88,17 @@ CallbackFunction::CallSetup::CallSetup(J // Make sure our JSContext is pushed on the stack. if (!mCxPusher.Push(cx, false)) { return; } // After this point we guarantee calling ScriptEvaluated() if we // have an nsIScriptContext. // XXXbz Why, if, say CheckFunctionAccess fails? I know that's how- // nsJSContext::CallEventHandler works, but is it required?+ // nsJSContext::CallEventHandler used to work, but is it required? // FIXME: Bug 807369. mCtx = ctx; // Check that it's ok to run this callback at all. // FIXME: Bug 807371: we want a less silly check here. // Make sure to unwrap aCallable before passing it in, because // getting principals from wrappers is silly. nsresult rv = nsContentUtils::GetSecurityManager()->

--- a/dom/bindings/Errors.msg+++ b/dom/bindings/Errors.msg@@ -25,13 +25,14 @@ MSG_DEF(MSG_NOT_OBJECT, 0, "Value not an MSG_DEF(MSG_NOT_CALLABLE, 0, "Value is not callable.") MSG_DEF(MSG_DOES_NOT_IMPLEMENT_INTERFACE, 1, "Value does not implement interface {0}.") MSG_DEF(MSG_NOT_IN_UNION, 1, "Value could not be converted to any of: {0}.") MSG_DEF(MSG_ILLEGAL_CONSTRUCTOR, 0, "Illegal constructor.") MSG_DEF(MSG_NO_PROPERTY_SETTER, 1, "{0} doesn't have an indexed property setter.") MSG_DEF(MSG_ENFORCE_RANGE_NON_FINITE, 1, "Non-finite value is out of range for {0}.") MSG_DEF(MSG_ENFORCE_RANGE_OUT_OF_RANGE, 1, "Value is out of range for {0}.") MSG_DEF(MSG_NOT_SEQUENCE, 0, "object can not be converted to a sequence")+MSG_DEF(MSG_NOT_DICTIONARY, 0, "value can not be converted to a dictionary") MSG_DEF(MSG_INVALID_ARG, 2, "argument {0} is not valid for any of the {1}-argument overloads") MSG_DEF(MSG_GLOBAL_NOT_NATIVE, 0, "global is not a native object") MSG_DEF(MSG_ENCODING_NOT_SUPPORTED, 1, "The given encoding '{0}' is not supported.") MSG_DEF(MSG_DOM_ENCODING_NOT_UTF, 0, "The encoding must be utf-8, utf-16, or utf-16be.") MSG_DEF(MSG_NOT_FINITE, 0, "Floating-point value is not finite.")

--- a/dom/plugins/base/nsPluginInstanceOwner.cpp+++ b/dom/plugins/base/nsPluginInstanceOwner.cpp@@ -722,17 +722,17 @@ NS_IMETHODIMP nsPluginInstanceOwner::Get // would otherwise cause coordinates to be offset incorrectly. (i.e. // if the enclosing window if offset from the document window) // // fixing both the caret and ability to interact issues for a windowless control in a non document aligned windw // does not seem to be possible without a change to the flash plugin nsIWidget* win = mObjectFrame->GetNearestWidget(); if (win) {- nsIView *view = nsIView::GetViewFor(win);+ nsView *view = nsView::GetViewFor(win); NS_ASSERTION(view, "No view for widget"); nsPoint offset = view->GetOffsetTo(nullptr); if (offset.x || offset.y) { // in the case the two windows are offset from eachother, we do go ahead and return the correct enclosing window // so that mouse co-ordinates are not messed up. *pvalue = (void*)win->GetNativeData(NS_NATIVE_WINDOW); if (*pvalue)

--- a/dom/sms/interfaces/nsIDOMSmsManager.idl+++ b/dom/sms/interfaces/nsIDOMSmsManager.idl@@ -2,21 +2,22 @@ * 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/. */ #include "nsIDOMEventTarget.idl" interface nsIDOMEventListener; interface nsIDOMMozSmsRequest; interface nsIDOMMozSmsFilter;+interface nsIDOMMozSmsSegmentInfo;-[scriptable, builtinclass, uuid(1b3b8a3e-7ee6-4192-ae8f-a627b2ece95b)]+[scriptable, builtinclass, uuid(2bdb02e7-ec3a-47a9-885c-0ab514566801)] interface nsIDOMMozSmsManager : nsIDOMEventTarget {- unsigned short getNumberOfMessagesForText(in DOMString text);+ nsIDOMMozSmsSegmentInfo getSegmentInfoForText(in DOMString text); // The first parameter can be either a DOMString (only one number) or an array // of DOMStrings. // The method returns a SmsRequest object if one number has been passed. // An array of SmsRequest objects otherwise. jsval send(in jsval number, in DOMString message); [binaryname(GetMessageMoz)]

new file mode 100644--- /dev/null+++ b/dom/sms/interfaces/nsIDOMSmsSegmentInfo.idl@@ -0,0 +1,16 @@+/* 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/. */++#include "nsISupports.idl"++[scriptable, builtinclass, uuid(57ac3989-531e-4928-998b-53fde81a05a6)]+interface nsIDOMMozSmsSegmentInfo : nsISupports+{+ /* The number of total segments for the input string. */+ readonly attribute long segments;+ /* The number of characters available per segment. */+ readonly attribute long charsPerSegment;+ /* The maximum number of available characters in the last segment. */+ readonly attribute long charsAvailableInLastSegment;+};