Skip to content
  • barraclough@apple.com's avatar
    Fix back/forwards cache with JSC isolated worlds. · ace5339c
    barraclough@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=31310
    <rdar://problem/7328111> Cached back navigation doesn't restore global object in extension isolated world
    
    Patch by Gavin Barraclough <barraclough@apple.com> on 2009-11-10
    Reviewed by Geoff Garen.
    
    Store the global object for all worlds, not just the normal world.
    Also maintain bidirectional weak references between the ScriptCachedFrameData and the DOMWrapperWorld,
    so we can forget global objects if a world goes away.
    
    * bindings/js/JSDOMBinding.cpp:
    (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
    * bindings/js/JSDOMBinding.h:
    (WebCore::DOMWrapperWorld::rememberScriptCachedFrameData):
    (WebCore::DOMWrapperWorld::forgetScriptCachedFrameData):
    * bindings/js/ScriptCachedFrameData.cpp:
    (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
    (WebCore::ScriptCachedFrameData::forgetWorld):
    (WebCore::ScriptCachedFrameData::domWindow):
    (WebCore::ScriptCachedFrameData::restore):
    (WebCore::ScriptCachedFrameData::clear):
    * bindings/js/ScriptCachedFrameData.h:
    * bindings/js/ScriptController.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    ace5339c