summaryrefslogtreecommitdiffstats
path: root/layout
diff options
context:
space:
mode:
Diffstat (limited to 'layout')
-rw-r--r--layout/base/RestyleTracker.cpp18
-rw-r--r--layout/base/RestyleTracker.h12
-rw-r--r--layout/base/nsDocumentViewer.cpp15
-rw-r--r--layout/base/nsPresContext.cpp13
-rw-r--r--layout/base/nsPresShell.cpp17
5 files changed, 23 insertions, 52 deletions
diff --git a/layout/base/RestyleTracker.cpp b/layout/base/RestyleTracker.cpp
index 7d68058d1..a954fda1a 100644
--- a/layout/base/RestyleTracker.cpp
+++ b/layout/base/RestyleTracker.cpp
@@ -61,9 +61,6 @@ RestyleTracker::Document() const {
struct RestyleEnumerateData : RestyleTracker::Hints {
RefPtr<dom::Element> mElement;
-#if defined(MOZ_ENABLE_PROFILER_SPS)
- UniquePtr<ProfilerBacktrace> mBacktrace;
-#endif
};
inline void
@@ -257,12 +254,6 @@ RestyleTracker::DoProcessRestyles()
data->mRestyleHint, MarkerTracingType::START)));
}
-#if defined(MOZ_ENABLE_PROFILER_SPS)
- Maybe<GeckoProfilerTracingRAII> profilerRAII;
- if (profiler_feature_active("restyle")) {
- profilerRAII.emplace("Paint", "Styles", Move(data->mBacktrace));
- }
-#endif
ProcessOneRestyle(element, data->mRestyleHint, data->mChangeHint,
data->mRestyleHintData);
AddRestyleRootsIfAwaitingRestyle(data->mDescendants);
@@ -337,9 +328,6 @@ RestyleTracker::DoProcessRestyles()
// We can move data since we'll be clearing mPendingRestyles after
// we finish enumerating it.
restyle->mRestyleHintData = Move(data->mRestyleHintData);
-#if defined(MOZ_ENABLE_PROFILER_SPS)
- restyle->mBacktrace = Move(data->mBacktrace);
-#endif
#ifdef RESTYLE_LOGGING
count++;
@@ -365,12 +353,6 @@ RestyleTracker::DoProcessRestyles()
index++, count);
LOG_RESTYLE_INDENT();
-#if defined(MOZ_ENABLE_PROFILER_SPS)
- Maybe<GeckoProfilerTracingRAII> profilerRAII;
- if (profiler_feature_active("restyle")) {
- profilerRAII.emplace("Paint", "Styles", Move(currentRestyle->mBacktrace));
- }
-#endif
if (isTimelineRecording) {
timelines->AddMarkerForDocShell(docShell, Move(
MakeUnique<RestyleTimelineMarker>(
diff --git a/layout/base/RestyleTracker.h b/layout/base/RestyleTracker.h
index 10a653cdb..5eb393e16 100644
--- a/layout/base/RestyleTracker.h
+++ b/layout/base/RestyleTracker.h
@@ -22,10 +22,6 @@
#include "GeckoProfiler.h"
#include "mozilla/Maybe.h"
-#if defined(MOZ_ENABLE_PROFILER_SPS)
-#include "ProfilerBacktrace.h"
-#endif
-
namespace mozilla {
class RestyleManager;
@@ -128,9 +124,6 @@ public:
// that we called AddPendingRestyle for and found the element this is
// the RestyleData for as its nearest restyle root.
nsTArray<RefPtr<Element>> mDescendants;
-#if defined(MOZ_ENABLE_PROFILER_SPS)
- UniquePtr<ProfilerBacktrace> mBacktrace;
-#endif
};
/**
@@ -265,11 +258,6 @@ RestyleTracker::AddPendingRestyleToTable(Element* aElement,
if (!existingData) {
RestyleData* rd =
new RestyleData(aRestyleHint, aMinChangeHint, aRestyleHintData);
-#if defined(MOZ_ENABLE_PROFILER_SPS)
- if (profiler_feature_active("restyle")) {
- rd->mBacktrace.reset(profiler_get_backtrace());
- }
-#endif
mPendingRestyles.Put(aElement, rd);
return false;
}
diff --git a/layout/base/nsDocumentViewer.cpp b/layout/base/nsDocumentViewer.cpp
index 137efb3cd..7b8734928 100644
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -1012,7 +1012,13 @@ nsDocumentViewer::LoadComplete(nsresult aStatus)
nsIDocShell *docShell = window->GetDocShell();
NS_ENSURE_TRUE(docShell, NS_ERROR_UNEXPECTED);
- docShell->GetRestoringDocument(&restoring);
+ // Unfortunately, docShell->GetRestoringDocument() might no longer be set
+ // correctly. In particular, it can be false by now if someone took it upon
+ // themselves to block onload from inside restoration and unblock it later.
+ // But we can detect the restoring case very simply: by whether our
+ // document's readyState is COMPLETE.
+ restoring = (mDocument->GetReadyStateEnum() ==
+ nsIDocument::READYSTATE_COMPLETE);
if (!restoring) {
NS_ASSERTION(mDocument->IsXULDocument() || // readyState for XUL is bogus
mDocument->GetReadyStateEnum() ==
@@ -1023,6 +1029,13 @@ nsDocumentViewer::LoadComplete(nsresult aStatus)
nsIDocument::READYSTATE_UNINITIALIZED &&
NS_IsAboutBlank(mDocument->GetDocumentURI())),
"Bad readystate");
+#ifdef DEBUG
+ bool docShellThinksWeAreRestoring;
+ docShell->GetRestoringDocument(&docShellThinksWeAreRestoring);
+ MOZ_ASSERT(!docShellThinksWeAreRestoring,
+ "How can docshell think we are restoring if we don't have a "
+ "READYSTATE_COMPLETE document?");
+#endif // DEBUG
nsCOMPtr<nsIDocument> d = mDocument;
mDocument->SetReadyStateInternal(nsIDocument::READYSTATE_COMPLETE);
diff --git a/layout/base/nsPresContext.cpp b/layout/base/nsPresContext.cpp
index 4a54a8432..3106ff386 100644
--- a/layout/base/nsPresContext.cpp
+++ b/layout/base/nsPresContext.cpp
@@ -1307,10 +1307,15 @@ nsPresContext::SetFullZoom(float aZoom)
void
nsPresContext::SetOverrideDPPX(float aDPPX)
{
- mOverrideDPPX = aDPPX;
-
- if (HasCachedStyleData()) {
- MediaFeatureValuesChanged(nsRestyleHint(0), nsChangeHint(0));
+ // SetOverrideDPPX is called during navigations, including history
+ // traversals. In that case, it's typically called with our current value,
+ // and we don't need to actually do anything.
+ if (aDPPX != mOverrideDPPX) {
+ mOverrideDPPX = aDPPX;
+
+ if (HasCachedStyleData()) {
+ MediaFeatureValuesChanged(nsRestyleHint(0), nsChangeHint(0));
+ }
}
}
diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp
index 0b88948c3..3e5320c22 100644
--- a/layout/base/nsPresShell.cpp
+++ b/layout/base/nsPresShell.cpp
@@ -4064,23 +4064,6 @@ PresShell::FlushPendingNotifications(mozilla::ChangesToFlush aFlush)
*/
mozFlushType flushType = aFlush.mFlushType;
-#ifdef MOZ_ENABLE_PROFILER_SPS
- static const char flushTypeNames[][20] = {
- "Content",
- "ContentAndNotify",
- "Style",
- "InterruptibleLayout",
- "Layout",
- "Display"
- };
-
- // Make sure that we don't miss things added to mozFlushType!
- MOZ_ASSERT(static_cast<uint32_t>(flushType) <= ArrayLength(flushTypeNames));
-
- PROFILER_LABEL_PRINTF("PresShell", "Flush",
- js::ProfileEntry::Category::GRAPHICS, "(Flush_%s)", flushTypeNames[flushType - 1]);
-#endif
-
#ifdef ACCESSIBILITY
#ifdef DEBUG
nsAccessibilityService* accService = GetAccService();