Title: [254857] trunk/Source/WebCore
- Revision
- 254857
- Author
- [email protected]
- Date
- 2020-01-21 09:52:52 -0800 (Tue, 21 Jan 2020)
Log Message
Unreviewed, rolling out r254753.
It turns out this is not dead code
Reverted changeset:
"Drop dead code related to local storage prewarming"
https://bugs.webkit.org/show_bug.cgi?id=206418
https://trac.webkit.org/changeset/254753
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (254856 => 254857)
--- trunk/Source/WebCore/ChangeLog 2020-01-21 17:51:45 UTC (rev 254856)
+++ trunk/Source/WebCore/ChangeLog 2020-01-21 17:52:52 UTC (rev 254857)
@@ -1,3 +1,15 @@
+2020-01-21 Chris Dumez <[email protected]>
+
+ Unreviewed, rolling out r254753.
+
+ It turns out this is not dead code
+
+ Reverted changeset:
+
+ "Drop dead code related to local storage prewarming"
+ https://bugs.webkit.org/show_bug.cgi?id=206418
+ https://trac.webkit.org/changeset/254753
+
2020-01-21 Sihui Liu <[email protected]>
Disable WebSQL everywhere by default except in tests
Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (254856 => 254857)
--- trunk/Source/WebCore/loader/DocumentLoader.cpp 2020-01-21 17:51:45 UTC (rev 254856)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp 2020-01-21 17:52:52 UTC (rev 254857)
@@ -1092,6 +1092,9 @@
if (!isLoading())
return;
+ if (auto* window = m_frame->document()->domWindow())
+ window->prewarmLocalStorageIfNecessary();
+
bool userChosen;
String encoding;
if (overrideEncoding().isNull()) {
Modified: trunk/Source/WebCore/page/DOMWindow.cpp (254856 => 254857)
--- trunk/Source/WebCore/page/DOMWindow.cpp 2020-01-21 17:51:45 UTC (rev 254856)
+++ trunk/Source/WebCore/page/DOMWindow.cpp 2020-01-21 17:52:52 UTC (rev 254857)
@@ -439,6 +439,28 @@
m_performance = nullptr;
}
+void DOMWindow::prewarmLocalStorageIfNecessary()
+{
+ auto* page = this->page();
+
+ // No need to prewarm for ephemeral sessions since the data is in memory only.
+ if (!page || page->usesEphemeralSession())
+ return;
+
+ if (!page->mainFrame().mayPrewarmLocalStorage())
+ return;
+
+ auto localStorageResult = this->localStorage();
+ if (localStorageResult.hasException())
+ return;
+
+ auto* localStorage = localStorageResult.returnValue();
+ if (!localStorage)
+ return;
+
+ page->mainFrame().didPrewarmLocalStorage();
+}
+
DOMWindow::~DOMWindow()
{
if (m_suspendedForDocumentSuspension)
Modified: trunk/Source/WebCore/page/DOMWindow.h (254856 => 254857)
--- trunk/Source/WebCore/page/DOMWindow.h 2020-01-21 17:51:45 UTC (rev 254856)
+++ trunk/Source/WebCore/page/DOMWindow.h 2020-01-21 17:52:52 UTC (rev 254857)
@@ -203,6 +203,8 @@
void showModalDialog(const String& urlString, const String& dialogFeaturesString, DOMWindow& activeWindow, DOMWindow& firstWindow, const WTF::Function<void(DOMWindow&)>& prepareDialogFunction);
+ void prewarmLocalStorageIfNecessary();
+
void alert(const String& message = emptyString());
bool confirmForBindings(const String& message);
String prompt(const String& message, const String& defaultValue);
Modified: trunk/Source/WebCore/page/Frame.cpp (254856 => 254857)
--- trunk/Source/WebCore/page/Frame.cpp 2020-01-21 17:51:45 UTC (rev 254856)
+++ trunk/Source/WebCore/page/Frame.cpp 2020-01-21 17:52:52 UTC (rev 254857)
@@ -117,6 +117,9 @@
DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, frameCounter, ("Frame"));
+// We prewarm local storage for at most 5 origins in a given page.
+static const unsigned maxlocalStoragePrewarmingCount { 5 };
+
static inline Frame* parentFromOwnerElement(HTMLFrameOwnerElement* ownerElement)
{
if (!ownerElement)
@@ -985,6 +988,19 @@
tree().removeChild(*child);
}
+void Frame::didPrewarmLocalStorage()
+{
+ ASSERT(isMainFrame());
+ ASSERT(m_localStoragePrewarmingCount < maxlocalStoragePrewarmingCount);
+ ++m_localStoragePrewarmingCount;
+}
+
+bool Frame::mayPrewarmLocalStorage() const
+{
+ ASSERT(isMainFrame());
+ return m_localStoragePrewarmingCount < maxlocalStoragePrewarmingCount;
+}
+
void Frame::selfOnlyRef()
{
ASSERT(isMainFrame());
Modified: trunk/Source/WebCore/page/Frame.h (254856 => 254857)
--- trunk/Source/WebCore/page/Frame.h 2020-01-21 17:51:45 UTC (rev 254856)
+++ trunk/Source/WebCore/page/Frame.h 2020-01-21 17:52:52 UTC (rev 254857)
@@ -291,6 +291,9 @@
WEBCORE_EXPORT bool isAlwaysOnLoggingAllowed() const;
+ void didPrewarmLocalStorage();
+ bool mayPrewarmLocalStorage() const;
+
// ========
void selfOnlyRef();
@@ -353,6 +356,7 @@
unsigned m_navigationDisableCount { 0 };
unsigned m_selfOnlyRefCount { 0 };
bool m_hasHadUserInteraction { false };
+ unsigned m_localStoragePrewarmingCount { 0 };
protected:
UniqueRef<EventHandler> m_eventHandler;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes