Changeset 254857 in webkit


Ignore:
Timestamp:
Jan 21, 2020 9:52:52 AM (4 years ago)
Author:
Chris Dumez
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

Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r254856 r254857  
     12020-01-21  Chris Dumez  <cdumez@apple.com>
     2
     3        Unreviewed, rolling out r254753.
     4
     5        It turns out this is not dead code
     6
     7        Reverted changeset:
     8
     9        "Drop dead code related to local storage prewarming"
     10        https://bugs.webkit.org/show_bug.cgi?id=206418
     11        https://trac.webkit.org/changeset/254753
     12
    1132020-01-21  Sihui Liu  <sihui_liu@apple.com>
    214
  • trunk/Source/WebCore/loader/DocumentLoader.cpp

    r254753 r254857  
    10931093            return;
    10941094
     1095        if (auto* window = m_frame->document()->domWindow())
     1096            window->prewarmLocalStorageIfNecessary();
     1097
    10951098        bool userChosen;
    10961099        String encoding;
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r254849 r254857  
    440440}
    441441
     442void DOMWindow::prewarmLocalStorageIfNecessary()
     443{
     444    auto* page = this->page();
     445
     446    // No need to prewarm for ephemeral sessions since the data is in memory only.
     447    if (!page || page->usesEphemeralSession())
     448        return;
     449
     450    if (!page->mainFrame().mayPrewarmLocalStorage())
     451        return;
     452
     453    auto localStorageResult = this->localStorage();
     454    if (localStorageResult.hasException())
     455        return;
     456
     457    auto* localStorage = localStorageResult.returnValue();
     458    if (!localStorage)
     459        return;
     460
     461    page->mainFrame().didPrewarmLocalStorage();
     462}
     463
    442464DOMWindow::~DOMWindow()
    443465{
  • trunk/Source/WebCore/page/DOMWindow.h

    r254753 r254857  
    204204    void showModalDialog(const String& urlString, const String& dialogFeaturesString, DOMWindow& activeWindow, DOMWindow& firstWindow, const WTF::Function<void(DOMWindow&)>& prepareDialogFunction);
    205205
     206    void prewarmLocalStorageIfNecessary();
     207
    206208    void alert(const String& message = emptyString());
    207209    bool confirmForBindings(const String& message);
  • trunk/Source/WebCore/page/Frame.cpp

    r254753 r254857  
    118118DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, frameCounter, ("Frame"));
    119119
     120// We prewarm local storage for at most 5 origins in a given page.
     121static const unsigned maxlocalStoragePrewarmingCount { 5 };
     122
    120123static inline Frame* parentFromOwnerElement(HTMLFrameOwnerElement* ownerElement)
    121124{
     
    986989}
    987990
     991void Frame::didPrewarmLocalStorage()
     992{
     993    ASSERT(isMainFrame());
     994    ASSERT(m_localStoragePrewarmingCount < maxlocalStoragePrewarmingCount);
     995    ++m_localStoragePrewarmingCount;
     996}
     997
     998bool Frame::mayPrewarmLocalStorage() const
     999{
     1000    ASSERT(isMainFrame());
     1001    return m_localStoragePrewarmingCount < maxlocalStoragePrewarmingCount;
     1002}
     1003
    9881004void Frame::selfOnlyRef()
    9891005{
  • trunk/Source/WebCore/page/Frame.h

    r254753 r254857  
    292292    WEBCORE_EXPORT bool isAlwaysOnLoggingAllowed() const;
    293293
     294    void didPrewarmLocalStorage();
     295    bool mayPrewarmLocalStorage() const;
     296
    294297// ========
    295298
     
    354357    unsigned m_selfOnlyRefCount { 0 };
    355358    bool m_hasHadUserInteraction { false };
     359    unsigned m_localStoragePrewarmingCount { 0 };
    356360
    357361protected:
Note: See TracChangeset for help on using the changeset viewer.