Backed out changeset 365053e73efa for build bustage on this CLOSED TREE.

This commit is contained in:
Andrew McCreight 2013-08-27 09:54:01 -07:00
Родитель ab43ff245b
Коммит fb10bae2e6
17 изменённых файлов: 54 добавлений и 12 удалений

Просмотреть файл

@ -117,6 +117,7 @@
#include "nsWrapperCacheInlines.h"
#include "xpcpublic.h"
#include "nsIScriptError.h"
#include "nsLayoutStatics.h"
#include "mozilla/Telemetry.h"
#include "mozilla/CORSMode.h"

Просмотреть файл

@ -116,6 +116,7 @@
#include "nsCycleCollector.h"
#include "xpcpublic.h"
#include "nsIScriptError.h"
#include "nsLayoutStatics.h"
#include "mozilla/Telemetry.h"
#include "mozilla/CORSMode.h"
@ -1040,19 +1041,21 @@ class ContentUnbinder : public nsRunnable
public:
ContentUnbinder()
{
nsLayoutStatics::AddRef();
mLast = this;
}
~ContentUnbinder()
{
Run();
nsLayoutStatics::Release();
}
void UnbindSubtree(nsIContent* aNode)
{
if (aNode->NodeType() != nsIDOMNode::ELEMENT_NODE &&
aNode->NodeType() != nsIDOMNode::DOCUMENT_FRAGMENT_NODE) {
return;
return;
}
FragmentOrElement* container = static_cast<FragmentOrElement*>(aNode);
uint32_t childCount = container->mAttrsAndChildren.ChildCount();

Просмотреть файл

@ -29,6 +29,7 @@
#include "nsIPrompt.h"
#include "nsIStringBundle.h"
#include "nsIConsoleService.h"
#include "nsLayoutStatics.h"
#include "nsIDOMCloseEvent.h"
#include "nsICryptoHash.h"
#include "jsdbgapi.h"
@ -458,6 +459,7 @@ WebSocket::WebSocket()
mInnerWindowID(0)
{
NS_ABORT_IF_FALSE(NS_IsMainThread(), "Not running on main thread");
nsLayoutStatics::AddRef();
SetIsDOMBinding();
}
@ -470,6 +472,7 @@ WebSocket::~WebSocket()
if (!mDisconnected) {
Disconnect();
}
nsLayoutStatics::Release();
}
JSObject*

Просмотреть файл

@ -141,6 +141,7 @@
#include "nsIWordBreaker.h"
#include "nsIXPConnect.h"
#include "nsJSUtils.h"
#include "nsLayoutStatics.h"
#include "nsLWBrkCIID.h"
#include "nsMutationEvent.h"
#include "nsNetCID.h"
@ -5611,14 +5612,35 @@ nsContentUtils::WrapNative(JSContext *cx, JS::Handle<JSObject*> scope,
NS_ENSURE_TRUE(sXPConnect, NS_ERROR_UNEXPECTED);
if (!NS_IsMainThread()) {
MOZ_CRASH();
// Keep sXPConnect alive. If we're on the main
// thread then this can be done simply and cheaply by adding a reference to
// nsLayoutStatics. If we're not on the main thread then we need to add a
// more expensive reference sXPConnect directly. We have to use manual
// AddRef and Release calls so don't early-exit from this function after we've
// added the reference!
bool isMainThread = NS_IsMainThread();
if (isMainThread) {
nsLayoutStatics::AddRef();
}
else {
sXPConnect->AddRef();
}
nsresult rv = NS_OK;
AutoPushJSContext context(cx);
rv = sXPConnect->WrapNativeToJSVal(context, scope, native, cache, aIID,
aAllowWrapping, vp, aHolder);
{
AutoPushJSContext context(cx);
rv = sXPConnect->WrapNativeToJSVal(context, scope, native, cache, aIID,
aAllowWrapping, vp, aHolder);
}
if (isMainThread) {
nsLayoutStatics::Release();
}
else {
sXPConnect->Release();
}
return rv;
}

Просмотреть файл

@ -33,6 +33,7 @@
#include "nsCExternalHandlerService.h"
#include "nsIStreamConverterService.h"
#include "nsCycleCollectionParticipant.h"
#include "nsLayoutStatics.h"
#include "nsIScriptObjectPrincipal.h"
#include "nsHostObjectProtocolHandler.h"
#include "mozilla/Base64.h"
@ -104,6 +105,7 @@ nsDOMFileReader::nsDOMFileReader()
mDataLen(0), mDataFormat(FILE_AS_BINARY),
mResultArrayBuffer(nullptr)
{
nsLayoutStatics::AddRef();
SetDOMStringToNull(mResult);
SetIsDOMBinding();
}
@ -113,6 +115,7 @@ nsDOMFileReader::~nsDOMFileReader()
FreeFileData();
mResultArrayBuffer = nullptr;
NS_DROP_JS_OBJECTS(this, nsDOMFileReader);
nsLayoutStatics::Release();
}

Просмотреть файл

@ -76,6 +76,7 @@
#include "nsViewManager.h"
#include "nsIWebNavigation.h"
#include "nsIWidget.h"
#include "nsLayoutStatics.h"
#include "nsLayoutUtils.h"
#include "nsMutationEvent.h"
#include "nsNetUtil.h"

Просмотреть файл

@ -42,6 +42,7 @@
#include "nsIContentPolicy.h"
#include "nsContentPolicyUtils.h"
#include "nsError.h"
#include "nsLayoutStatics.h"
#include "nsCrossSiteListenerProxy.h"
#include "nsIHTMLDocument.h"
#include "nsIStorageStream.h"
@ -301,6 +302,8 @@ nsXMLHttpRequest::nsXMLHttpRequest()
mResultArrayBuffer(nullptr),
mXPCOMifier(nullptr)
{
nsLayoutStatics::AddRef();
mAlreadySetHeaders.Init();
SetIsDOMBinding();
@ -324,6 +327,8 @@ nsXMLHttpRequest::~nsXMLHttpRequest()
mResultJSON = JSVAL_VOID;
mResultArrayBuffer = nullptr;
NS_DROP_JS_OBJECTS(this, nsXMLHttpRequest);
nsLayoutStatics::Release();
}
void

Просмотреть файл

@ -5,7 +5,7 @@
#include "mozilla/dom/EventTarget.h"
#include "nsEventListenerManager.h"
#include "nsThreadUtils.h"
namespace mozilla {
namespace dom {

Просмотреть файл

@ -13,7 +13,6 @@
#include "nsIScriptGlobalObject.h"
#include "nsEventListenerManager.h"
#include "nsIScriptContext.h"
#include "nsThreadUtils.h"
#include "mozilla/Attributes.h"
#include "mozilla/dom/EventTarget.h"

Просмотреть файл

@ -29,6 +29,7 @@
#include "nsWrapperCache.h"
#include "nsJSEnvironment.h"
#include "xpcpublic.h"
#include "nsLayoutStatics.h"
namespace mozilla {
namespace dom {

Просмотреть файл

@ -9,6 +9,8 @@
#include "ArchiveEvent.h"
#include "ArchiveZipEvent.h"
#include "nsLayoutStatics.h"
#include "nsIURI.h"
#include "nsNetUtil.h"
@ -50,11 +52,13 @@ ArchiveReader::ArchiveReader(nsIDOMBlob* aBlob, nsPIDOMWindow* aWindow,
MOZ_ASSERT(aBlob);
MOZ_ASSERT(aWindow);
nsLayoutStatics::AddRef();
SetIsDOMBinding();
}
ArchiveReader::~ArchiveReader()
{
nsLayoutStatics::Release();
}
/* virtual */ JSObject*

Просмотреть файл

@ -9,6 +9,7 @@
#include "mozilla/dom/ArchiveRequestBinding.h"
#include "nsContentUtils.h"
#include "nsCxPusher.h"
#include "nsLayoutStatics.h"
#include "nsEventDispatcher.h"
USING_FILE_NAMESPACE
@ -54,6 +55,7 @@ ArchiveRequest::ArchiveRequest(nsIDOMWindow* aWindow,
MOZ_ASSERT(aReader);
MOZ_COUNT_CTOR(ArchiveRequest);
nsLayoutStatics::AddRef();
/* An event to make this request asynchronous: */
nsRefPtr<ArchiveRequestEvent> event = new ArchiveRequestEvent(this);
@ -63,6 +65,7 @@ ArchiveRequest::ArchiveRequest(nsIDOMWindow* aWindow,
ArchiveRequest::~ArchiveRequest()
{
MOZ_COUNT_DTOR(ArchiveRequest);
nsLayoutStatics::Release();
}
nsresult

Просмотреть файл

@ -13,7 +13,6 @@
#include "mozilla/dom/IDBIndexBinding.h"
#include "mozilla/dom/IDBObjectStoreBinding.h"
#include "nsCycleCollectionParticipant.h"
#include "nsThreadUtils.h"
#include "mozilla/dom/indexedDB/IDBRequest.h"
#include "mozilla/dom/indexedDB/IDBTransaction.h"

Просмотреть файл

@ -13,7 +13,6 @@
#include "nsPIDOMWindow.h"
#include "WorkerPrivate.h"
#include "nsJSPrincipals.h"
#include "nsThreadUtils.h"
namespace mozilla {
namespace dom {

Просмотреть файл

@ -7,7 +7,6 @@
#include "mozilla/dom/PromiseResolver.h"
#include "mozilla/dom/PromiseBinding.h"
#include "mozilla/dom/Promise.h"
#include "nsThreadUtils.h"
#include "PromiseCallback.h"
namespace mozilla {

Просмотреть файл

@ -25,6 +25,7 @@
#include "mozilla/Telemetry.h"
#include "mozilla/Services.h"
#include "nsLayoutStatics.h"
#include "nsContentUtils.h"
#include "nsCxPusher.h"
#include "nsCCUncollectableMarker.h"

Просмотреть файл

@ -64,7 +64,6 @@
#include "nsCycleCollectionParticipant.h"
#include "nsCycleCollector.h"
#include "nsDOMJSUtils.h"
#include "nsThreadUtils.h"
#include "xpcpublic.h"
using namespace mozilla;