Skip to content
  • Grisha Kruglov's avatar
    Closes #1552: Set HistoryTrackingDelegate instance directly on engine's defaultSettings · 8643e3e5
    Grisha Kruglov authored
    This patch simplifies how the history tracking delegate is set, and removes unnecessary
    complexity around the history tracking feature.
    
    It's important to set the delegate before the first engine session instance is created.
    There are multiple points in time when that might happen:
    - if we have a SessionSnapshot, we'll restore early on and create bunch of engine sessions
    - we'll may create a 'default' engine session via one of the multiple use cases which use
    SessionManager
    - we may create an engine session at any other point in time, as soon as we have an engine
    instance, by manually invoking 'createSession' method.
    
    In short, applications aren't constrained in how they create sessions, and various components
    may create sessions at different points in time, depending on their lifecycles, how things
    are configured to behave, etc.
    
    If we want to guarantee that our engine sessions always have a history tracking delegate instance
    set, simply setting it on the 'defaultSettings' object guarantees that in the most straightforward way.
    
    This also makes problems around lazy initialization of HistoryTrackingFeature irrelevant, since that
    feature is now gone.
    
    This patch removes the feature-storage, since the only thing it contained was a delegate implementation.
    8643e3e5