-
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
barraclough@apple.com authoredhttps://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
Loading