mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
import changes from `dev' branch of rmottola/Arctic-Fox:
- pointer style (db52d9c32) - Bug 1158407 - Stop using this one weird allocation fallback for MCreateThisWithTemplate. (r=terrence) (5b489cd5d) - Bug 1170124 - Remove unnecessary type monitoring in jit::InvokeFunction. r=bhackett (1603ee063) - Bug 1141865 - Part 2: Plumb new.target on the stack and make it accessible to JSNatives. (r=jorendorff, r=jandem, r=shu) (25cfa92ec) - Bug 1129795 - Convert rest of docshell/ to Gecko style. r=mccr8 (20acc2d82) - Bug 1162309 - Part 1: Remove instances of #ifdef PR_LOGGING in uriloader. r=froydnj (8768f60c0) - Bug 1162309 - Part 2: Remove instances of #ifdef PR_LOGGING in docshell. r=froydnj (e9de046f3) - Bug 1096908 - forward network security messages to the content process; r=hurley (69b38e624) - Bug 1156493 - e10s: move .cacheKey to nsICacheInfoChannel so child channels can get/set it, r=jduell (507efbe2b) - Bug 1017758 - Use infallible getters for appId/isInBrowserElement/unknownAppId; r=bz (8021f0ae8)
This commit is contained in:
@@ -29,10 +29,11 @@ uint64_t gSHEntrySharedID = 0;
|
||||
|
||||
#define CONTENT_VIEWER_TIMEOUT_SECONDS "browser.sessionhistory.contentViewerTimeout"
|
||||
// Default this to time out unused content viewers after 30 minutes
|
||||
#define CONTENT_VIEWER_TIMEOUT_SECONDS_DEFAULT (30*60)
|
||||
#define CONTENT_VIEWER_TIMEOUT_SECONDS_DEFAULT (30 * 60)
|
||||
|
||||
typedef nsExpirationTracker<nsSHEntryShared, 3> HistoryTrackerBase;
|
||||
class HistoryTracker final : public HistoryTrackerBase {
|
||||
class HistoryTracker final : public HistoryTrackerBase
|
||||
{
|
||||
public:
|
||||
explicit HistoryTracker(uint32_t aTimeout)
|
||||
: HistoryTrackerBase(1000 * aTimeout / 2)
|
||||
@@ -40,13 +41,14 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual void NotifyExpired(nsSHEntryShared *aObj) {
|
||||
virtual void NotifyExpired(nsSHEntryShared* aObj)
|
||||
{
|
||||
RemoveObject(aObj);
|
||||
aObj->Expire();
|
||||
}
|
||||
};
|
||||
|
||||
static HistoryTracker *gHistoryTracker = nullptr;
|
||||
static HistoryTracker* gHistoryTracker = nullptr;
|
||||
|
||||
void
|
||||
nsSHEntryShared::EnsureHistoryTracker()
|
||||
@@ -88,10 +90,9 @@ nsSHEntryShared::~nsSHEntryShared()
|
||||
if (gHistoryTracker) {
|
||||
// Check that we're not still on track to expire. We shouldn't be, because
|
||||
// we just removed ourselves!
|
||||
nsExpirationTracker<nsSHEntryShared, 3>::Iterator
|
||||
iterator(gHistoryTracker);
|
||||
nsExpirationTracker<nsSHEntryShared, 3>::Iterator iterator(gHistoryTracker);
|
||||
|
||||
nsSHEntryShared *elem;
|
||||
nsSHEntryShared* elem;
|
||||
while ((elem = iterator.Next()) != nullptr) {
|
||||
NS_ASSERTION(elem != this, "Found dead entry still in the tracker!");
|
||||
}
|
||||
@@ -106,7 +107,7 @@ nsSHEntryShared::~nsSHEntryShared()
|
||||
NS_IMPL_ISUPPORTS(nsSHEntryShared, nsIBFCacheEntry, nsIMutationObserver)
|
||||
|
||||
already_AddRefed<nsSHEntryShared>
|
||||
nsSHEntryShared::Duplicate(nsSHEntryShared *aEntry)
|
||||
nsSHEntryShared::Duplicate(nsSHEntryShared* aEntry)
|
||||
{
|
||||
nsRefPtr<nsSHEntryShared> newEntry = new nsSHEntryShared();
|
||||
|
||||
@@ -124,7 +125,8 @@ nsSHEntryShared::Duplicate(nsSHEntryShared *aEntry)
|
||||
return newEntry.forget();
|
||||
}
|
||||
|
||||
void nsSHEntryShared::RemoveFromExpirationTracker()
|
||||
void
|
||||
nsSHEntryShared::RemoveFromExpirationTracker()
|
||||
{
|
||||
if (gHistoryTracker && GetExpirationState()->IsTracked()) {
|
||||
gHistoryTracker->RemoveObject(this);
|
||||
@@ -197,7 +199,7 @@ nsSHEntryShared::Expire()
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsSHEntryShared::SetContentViewer(nsIContentViewer *aViewer)
|
||||
nsSHEntryShared::SetContentViewer(nsIContentViewer* aViewer)
|
||||
{
|
||||
NS_PRECONDITION(!aViewer || !mContentViewer,
|
||||
"SHEntryShared already contains viewer");
|
||||
@@ -229,8 +231,7 @@ nsSHEntryShared::SetContentViewer(nsIContentViewer *aViewer)
|
||||
nsresult
|
||||
nsSHEntryShared::RemoveFromBFCacheSync()
|
||||
{
|
||||
NS_ASSERTION(mContentViewer && mDocument,
|
||||
"we're not in the bfcache!");
|
||||
NS_ASSERTION(mContentViewer && mDocument, "we're not in the bfcache!");
|
||||
|
||||
nsCOMPtr<nsIContentViewer> viewer = mContentViewer;
|
||||
DropPresentationState();
|
||||
@@ -249,9 +250,10 @@ class DestroyViewerEvent : public nsRunnable
|
||||
{
|
||||
public:
|
||||
DestroyViewerEvent(nsIContentViewer* aViewer, nsIDocument* aDocument)
|
||||
: mViewer(aViewer),
|
||||
mDocument(aDocument)
|
||||
{}
|
||||
: mViewer(aViewer)
|
||||
, mDocument(aDocument)
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMETHOD Run()
|
||||
{
|
||||
@@ -268,14 +270,12 @@ public:
|
||||
nsresult
|
||||
nsSHEntryShared::RemoveFromBFCacheAsync()
|
||||
{
|
||||
NS_ASSERTION(mContentViewer && mDocument,
|
||||
"we're not in the bfcache!");
|
||||
NS_ASSERTION(mContentViewer && mDocument, "we're not in the bfcache!");
|
||||
|
||||
// Release the reference to the contentviewer asynchronously so that the
|
||||
// document doesn't get nuked mid-mutation.
|
||||
|
||||
nsCOMPtr<nsIRunnable> evt =
|
||||
new DestroyViewerEvent(mContentViewer, mDocument);
|
||||
nsCOMPtr<nsIRunnable> evt = new DestroyViewerEvent(mContentViewer, mDocument);
|
||||
nsresult rv = NS_DispatchToCurrentThread(evt);
|
||||
if (NS_FAILED(rv)) {
|
||||
NS_WARNING("failed to dispatch DestroyViewerEvent");
|
||||
@@ -293,16 +293,12 @@ nsSHEntryShared::RemoveFromBFCacheAsync()
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsSHEntryShared::GetID(uint64_t *aID)
|
||||
nsSHEntryShared::GetID(uint64_t* aID)
|
||||
{
|
||||
*aID = mID;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
// nsSHEntryShared: nsIMutationObserver
|
||||
//*****************************************************************************
|
||||
|
||||
void
|
||||
nsSHEntryShared::NodeWillBeDestroyed(const nsINode* aNode)
|
||||
{
|
||||
@@ -372,6 +368,6 @@ nsSHEntryShared::ContentRemoved(nsIDocument* aDocument,
|
||||
}
|
||||
|
||||
void
|
||||
nsSHEntryShared::ParentChainChanged(nsIContent *aContent)
|
||||
nsSHEntryShared::ParentChainChanged(nsIContent* aContent)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user