Changeset 166337 in webkit


Ignore:
Timestamp:
Mar 26, 2014 8:45:38 PM (10 years ago)
Author:
BJ Burg
Message:

Web Replay: disable page cache during capture/replay
https://bugs.webkit.org/show_bug.cgi?id=130672

Reviewed by Timothy Hatcher.

Save, set, and restore page cache settings at the correct times.

No new tests. If this code fails, then the tests for network replay will fail.

  • replay/ReplayController.cpp:

(WebCore::ReplayController::setForceDeterministicSettings): Added.
(WebCore::ReplayController::startCapturing):
(WebCore::ReplayController::stopCapturing):
(WebCore::ReplayController::cancelPlayback):
(WebCore::ReplayController::replayToPosition):

  • replay/ReplayController.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r166335 r166337  
     12014-03-26  Brian Burg  <bburg@apple.com>
     2
     3        Web Replay: disable page cache during capture/replay
     4        https://bugs.webkit.org/show_bug.cgi?id=130672
     5
     6        Reviewed by Timothy Hatcher.
     7
     8        Save, set, and restore page cache settings at the correct times.
     9
     10        No new tests. If this code fails, then the tests for network replay will fail.
     11
     12        * replay/ReplayController.cpp:
     13        (WebCore::ReplayController::setForceDeterministicSettings): Added.
     14        (WebCore::ReplayController::startCapturing):
     15        (WebCore::ReplayController::stopCapturing):
     16        (WebCore::ReplayController::cancelPlayback):
     17        (WebCore::ReplayController::replayToPosition):
     18        * replay/ReplayController.h:
     19
    1202014-03-26  Sam Weinig  <sam@webkit.org>
    221
  • trunk/Source/WebCore/replay/ReplayController.cpp

    r166088 r166337  
    4545#include "ReplayingInputCursor.h"
    4646#include "ScriptController.h"
     47#include "Settings.h"
    4748#include "UserInputBridge.h"
    4849#include "WebReplayInputs.h"
     
    6667}
    6768
     69void ReplayController::setForceDeterministicSettings(bool shouldForce)
     70{
     71    ASSERT(shouldForce ^ (m_sessionState == SessionState::Inactive));
     72
     73    if (shouldForce) {
     74        m_savedSettings.usesPageCache = m_page.settings().usesPageCache();
     75
     76        m_page.settings().setUsesPageCache(false);
     77    } else {
     78        m_page.settings().setUsesPageCache(m_savedSettings.usesPageCache);
     79    }
     80}
     81
    6882void ReplayController::setSessionState(SessionState state)
    6983{
     
    200214
    201215    setSessionState(SessionState::Capturing);
     216    setForceDeterministicSettings(true);
    202217
    203218    LOG(WebReplay, "%-20s Starting capture.\n", "ReplayController");
     
    217232
    218233    setSessionState(SessionState::Inactive);
     234    setForceDeterministicSettings(false);
    219235
    220236    LOG(WebReplay, "%-20s Stopping capture.\n", "ReplayController");
     
    264280    unloadSegment();
    265281    m_sessionState = SessionState::Inactive;
     282    setForceDeterministicSettings(false);
    266283    InspectorInstrumentation::playbackFinished(&m_page);
    267284}
     
    275292    m_dispatchSpeed = speed;
    276293
    277     if (m_sessionState != SessionState::Replaying)
     294    if (m_sessionState != SessionState::Replaying) {
    278295        setSessionState(SessionState::Replaying);
     296        setForceDeterministicSettings(true);
     297    }
    279298
    280299    if (m_segmentState == SegmentState::Unloaded)
  • trunk/Source/WebCore/replay/ReplayController.h

    r166006 r166337  
    152152
    153153    void setSessionState(SessionState);
     154    void setForceDeterministicSettings(bool);
     155
     156    struct SavedSettings {
     157        bool usesPageCache;
     158
     159        SavedSettings()
     160            : usesPageCache(false)
     161        { }
     162    };
    154163
    155164    Page& m_page;
     
    171180
    172181    DispatchSpeed m_dispatchSpeed;
     182    SavedSettings m_savedSettings;
    173183};
    174184
Note: See TracChangeset for help on using the changeset viewer.