[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.18-1-697-g2f78b87
abarth at webkit.org
abarth at webkit.org
Wed Jan 20 22:16:10 UTC 2010
The following commit has been merged in the debian/unstable branch:
commit f5279ddeee6d4ab51590c9c11630ebd61a084e6a
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 7 20:00:38 2010 +0000
2010-01-07 Adam Barth <abarth at webkit.org>
No review, rolling out r52847.
http://trac.webkit.org/changeset/52847
https://bugs.webkit.org/show_bug.cgi?id=33232
Might have caused a perf regression. I'm rolling this out to see if it
heals the perf bot.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::updateSecurityOrigin):
(WebCore::ScriptController::evaluateInIsolatedWorld):
(WebCore::ScriptController::haveInterpreter):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::updateDocument):
* bindings/v8/ScriptController.h:
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::convertDocumentToV8Object):
(WebCore::V8DOMWrapper::convertNewNodeToV8Object):
* bindings/v8/V8IsolatedContext.cpp:
(WebCore::V8IsolatedContext::V8IsolatedContext):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::V8Proxy):
(WebCore::V8Proxy::~V8Proxy):
(WebCore::V8Proxy::handleOutOfMemory):
(WebCore::V8Proxy::evaluateInIsolatedWorld):
(WebCore::V8Proxy::setInjectedScriptContextDebugId):
(WebCore::V8Proxy::clearForClose):
(WebCore::V8Proxy::clearForNavigation):
(WebCore::V8Proxy::context):
(WebCore::V8Proxy::mainWorldContext):
(WebCore::V8Proxy::currentContext):
(WebCore::V8Proxy::setContextDebugId):
* bindings/v8/V8Proxy.h:
(WebCore::V8Proxy::windowShell):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::adjustedContext):
2010-01-07 Adam Barth <abarth at webkit.org>
No review, rolling out r52847.
http://trac.webkit.org/changeset/52847
https://bugs.webkit.org/show_bug.cgi?id=33232
Might have caused a perf regression.
* src/FrameLoaderClientImpl.cpp:
(WebKit::FrameLoaderClientImpl::detachedFromParent3):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52937 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 675cd91..5be25e5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,46 @@
+2010-01-07 Adam Barth <abarth at webkit.org>
+
+ No review, rolling out r52847.
+ http://trac.webkit.org/changeset/52847
+ https://bugs.webkit.org/show_bug.cgi?id=33232
+
+ Might have caused a perf regression. I'm rolling this out to see if it
+ heals the perf bot.
+
+ * bindings/v8/ScriptController.cpp:
+ (WebCore::ScriptController::ScriptController):
+ (WebCore::ScriptController::~ScriptController):
+ (WebCore::ScriptController::updateSecurityOrigin):
+ (WebCore::ScriptController::evaluateInIsolatedWorld):
+ (WebCore::ScriptController::haveInterpreter):
+ (WebCore::ScriptController::clearWindowShell):
+ (WebCore::ScriptController::updateDocument):
+ * bindings/v8/ScriptController.h:
+ * bindings/v8/V8DOMWindowShell.cpp:
+ * bindings/v8/V8DOMWindowShell.h:
+ * bindings/v8/V8DOMWrapper.cpp:
+ (WebCore::V8DOMWrapper::instantiateV8Object):
+ (WebCore::V8DOMWrapper::convertDocumentToV8Object):
+ (WebCore::V8DOMWrapper::convertNewNodeToV8Object):
+ * bindings/v8/V8IsolatedContext.cpp:
+ (WebCore::V8IsolatedContext::V8IsolatedContext):
+ * bindings/v8/V8Proxy.cpp:
+ (WebCore::V8Proxy::V8Proxy):
+ (WebCore::V8Proxy::~V8Proxy):
+ (WebCore::V8Proxy::handleOutOfMemory):
+ (WebCore::V8Proxy::evaluateInIsolatedWorld):
+ (WebCore::V8Proxy::setInjectedScriptContextDebugId):
+ (WebCore::V8Proxy::clearForClose):
+ (WebCore::V8Proxy::clearForNavigation):
+ (WebCore::V8Proxy::context):
+ (WebCore::V8Proxy::mainWorldContext):
+ (WebCore::V8Proxy::currentContext):
+ (WebCore::V8Proxy::setContextDebugId):
+ * bindings/v8/V8Proxy.h:
+ (WebCore::V8Proxy::windowShell):
+ * bindings/v8/WorldContextHandle.cpp:
+ (WebCore::WorldContextHandle::adjustedContext):
+
2010-01-07 Dan Bernstein <mitz at apple.com>
Build fix
diff --git a/WebCore/bindings/v8/ScriptController.cpp b/WebCore/bindings/v8/ScriptController.cpp
index 456a038..3298cad 100644
--- a/WebCore/bindings/v8/ScriptController.cpp
+++ b/WebCore/bindings/v8/ScriptController.cpp
@@ -106,7 +106,6 @@ ScriptController::ScriptController(Frame* frame)
, m_processingTimerCallback(false)
, m_paused(false)
, m_proxy(new V8Proxy(frame))
- , m_windowShell(V8DOMWindowShell::create(frame))
#if ENABLE(NETSCAPE_PLUGIN_API)
, m_windowScriptNPObject(0)
#endif
@@ -117,7 +116,6 @@ ScriptController::ScriptController(Frame* frame)
ScriptController::~ScriptController()
{
m_proxy->disconnectFrame();
- m_windowShell.clear();
}
void ScriptController::clearScriptObjects()
@@ -142,7 +140,7 @@ void ScriptController::clearScriptObjects()
void ScriptController::updateSecurityOrigin()
{
- m_windowShell->updateSecurityOrigin();
+ m_proxy->windowShell()->updateSecurityOrigin();
}
void ScriptController::updatePlatformScriptObjects()
@@ -207,8 +205,6 @@ bool ScriptController::anyPageIsProcessingUserGesture() const
void ScriptController::evaluateInIsolatedWorld(unsigned worldID, const Vector<ScriptSourceCode>& sources)
{
- // FIXME: This will need to get reorganized once we have a windowShell for the isolated world.
- m_windowShell->initContextIfNeeded();
m_proxy->evaluateInIsolatedWorld(worldID, sources, 0);
}
@@ -295,7 +291,7 @@ void ScriptController::lowMemoryNotification()
bool ScriptController::haveInterpreter() const
{
- return m_windowShell->isContextInitialized();
+ return m_proxy->windowShell()->isContextInitialized();
}
bool ScriptController::isEnabled() const
@@ -439,32 +435,15 @@ NPObject* ScriptController::createScriptObjectForPluginElement(HTMLPlugInElement
return npCreateV8ScriptObject(0, v8::Handle<v8::Object>::Cast(v8plugin), window);
}
-V8DOMWindowShell* ScriptController::mainWorldWindowShell() const
-{
- m_windowShell->initContextIfNeeded();
- return m_windowShell.get();
-}
void ScriptController::clearWindowShell()
{
m_mainWorldScriptState.clear();
- m_proxy->resetIsolatedWorlds();
// V8 binding expects ScriptController::clearWindowShell only be called
- // when a frame is loading a new page. V8DOMWindowShell::clearForNavigation
+ // when a frame is loading a new page. V8Proxy::clearForNavigation
// creates a new context for the new page.
- m_windowShell->clearForNavigation();
-}
-
-void ScriptController::clearForClose()
-{
- m_windowShell->clearForClose();
-}
-
-void ScriptController::destroyWindowShell()
-{
- m_windowShell->clearForClose();
- m_windowShell->destroyGlobal();
+ m_proxy->clearForNavigation();
}
void ScriptController::attachDebugger(void*)
@@ -474,7 +453,7 @@ void ScriptController::attachDebugger(void*)
void ScriptController::updateDocument()
{
- m_windowShell->updateDocument();
+ m_proxy->windowShell()->updateDocument();
}
} // namespace WebCore
diff --git a/WebCore/bindings/v8/ScriptController.h b/WebCore/bindings/v8/ScriptController.h
index 958ebfb..9ba7d38 100644
--- a/WebCore/bindings/v8/ScriptController.h
+++ b/WebCore/bindings/v8/ScriptController.h
@@ -63,8 +63,6 @@ public:
// or this accessor should be made JSProxy*
V8Proxy* proxy() { return m_proxy.get(); }
- V8DOMWindowShell* mainWorldWindowShell() const;
-
ScriptValue executeScript(const ScriptSourceCode&);
ScriptValue executeScript(const String& script, bool forceUserGesture = false);
@@ -155,11 +153,6 @@ public:
void clearWindowShell();
void updateDocument();
- void clearForClose();
-
- // This is very destructive (e.g., out of memory).
- void destroyWindowShell();
-
void updateSecurityOrigin();
void clearScriptObjects();
void updatePlatformScriptObjects();
@@ -189,12 +182,7 @@ private:
bool m_processingTimerCallback;
bool m_paused;
- // FIXME: V8Proxy should eventually be removed.
OwnPtr<V8Proxy> m_proxy;
-
- // For the moment, we have one of these. Soon we will have one per DOMWrapperWorld.
- RefPtr<V8DOMWindowShell> m_windowShell;
-
typedef HashMap<Widget*, NPObject*> PluginObjectMap;
// A mapping between Widgets and their corresponding script object.
diff --git a/WebCore/bindings/v8/V8DOMWindowShell.cpp b/WebCore/bindings/v8/V8DOMWindowShell.cpp
index 7e1491f..42f2c05 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.cpp
+++ b/WebCore/bindings/v8/V8DOMWindowShell.cpp
@@ -132,12 +132,6 @@ V8DOMWindowShell::V8DOMWindowShell(Frame* frame)
{
}
-V8DOMWindowShell::~V8DOMWindowShell()
-{
- clearForClose();
- destroyGlobal();
-}
-
bool V8DOMWindowShell::isContextInitialized()
{
// m_context, m_global, and m_wrapperBoilerplates should
diff --git a/WebCore/bindings/v8/V8DOMWindowShell.h b/WebCore/bindings/v8/V8DOMWindowShell.h
index d84b405..16f907a 100644
--- a/WebCore/bindings/v8/V8DOMWindowShell.h
+++ b/WebCore/bindings/v8/V8DOMWindowShell.h
@@ -46,13 +46,8 @@ class V8DOMWindowShell : public RefCounted<V8DOMWindowShell> {
public:
static PassRefPtr<V8DOMWindowShell> create(Frame*);
- virtual ~V8DOMWindowShell();
-
v8::Handle<v8::Context> context() const { return m_context; }
- // This method is slower than |context()|, but sometimes we need local handles.
- v8::Local<v8::Context> localHandleForContext() const { return v8::Local<v8::Context>::New(m_context); }
-
// Update document object of the frame.
void updateDocument();
@@ -70,6 +65,7 @@ public:
void clearForNavigation();
void clearForClose();
+
void destroyGlobal();
static v8::Handle<v8::Value> getHiddenObjectPrototype(v8::Handle<v8::Context>);
diff --git a/WebCore/bindings/v8/V8DOMWrapper.cpp b/WebCore/bindings/v8/V8DOMWrapper.cpp
index 86e3f11..c404f61 100644
--- a/WebCore/bindings/v8/V8DOMWrapper.cpp
+++ b/WebCore/bindings/v8/V8DOMWrapper.cpp
@@ -835,7 +835,7 @@ v8::Local<v8::Object> V8DOMWrapper::instantiateV8Object(V8Proxy* proxy, V8ClassI
v8::Local<v8::Object> instance;
if (proxy)
// FIXME: Fix this to work properly with isolated worlds (see above).
- instance = proxy->frame()->script()->mainWorldWindowShell()->createWrapperFromCache(descriptorType);
+ instance = proxy->windowShell()->createWrapperFromCache(descriptorType);
else {
v8::Local<v8::Function> function = getTemplate(descriptorType)->GetFunction();
instance = SafeAllocation::newInstance(function);
@@ -1237,15 +1237,8 @@ v8::Handle<v8::Value> V8DOMWrapper::convertDocumentToV8Object(Document* document
// instantiate a document wrapper. Therefore, we get the proxy before
// checking if the node already has a wrapper.
V8Proxy* proxy = V8Proxy::retrieve(document->frame());
- if (proxy) {
- // This code looks wacky:
- // 1) The test for |proxy| above is really a test whether JavaScript
- // is enabled in this frame. I have no idea if that's needed.
- // 2) Calling initContextIfNeeded here is redundant becase just
- // grabbing mainWorldWindowShell() already calls initContextIfNeeded.
- // FIXME: I bet we can clean this up a bit!
- proxy->frame()->script()->mainWorldWindowShell()->initContextIfNeeded();
- }
+ if (proxy)
+ proxy->windowShell()->initContextIfNeeded();
DOMWrapperMap<Node>& domNodeMap = getDOMNodeMap();
v8::Handle<v8::Object> wrapper = domNodeMap.get(document);
@@ -1334,10 +1327,8 @@ v8::Handle<v8::Value> V8DOMWrapper::convertNewNodeToV8Object(Node* node, V8Proxy
domNodeMap.set(node, v8::Persistent<v8::Object>::New(result));
if (isDocument) {
- if (proxy) {
- // FIXME: Don't we need to do this for every world?
- proxy->frame()->script()->mainWorldWindowShell()->updateDocumentWrapper(result);
- }
+ if (proxy)
+ proxy->windowShell()->updateDocumentWrapper(result);
if (type == V8ClassIndex::HTMLDOCUMENT) {
// Create marker object and insert it in two internal fields.
diff --git a/WebCore/bindings/v8/V8IsolatedContext.cpp b/WebCore/bindings/v8/V8IsolatedContext.cpp
index 663c6f2..e8a51cb 100644
--- a/WebCore/bindings/v8/V8IsolatedContext.cpp
+++ b/WebCore/bindings/v8/V8IsolatedContext.cpp
@@ -53,15 +53,9 @@ void V8IsolatedContext::contextWeakReferenceCallback(v8::Persistent<v8::Value> o
V8IsolatedContext::V8IsolatedContext(V8Proxy* proxy, int extensionGroup)
: m_world(IsolatedWorld::create())
{
- // FIXME: None of this code belongs here! Basically, ScriptController
- // should create a new DOMWrapperWorld and a new windowShell and then
- // evaluate the script.
-
- V8DOMWindowShell* mainWorldWindowShell = proxy->frame()->script()->mainWorldWindowShell();
-
v8::HandleScope scope;
// FIXME: We should be creating a new V8DOMWindowShell here instead of riping out the context.
- m_context = SharedPersistent<v8::Context>::create(mainWorldWindowShell->createNewContext(v8::Handle<v8::Object>(), extensionGroup));
+ m_context = SharedPersistent<v8::Context>::create(proxy->windowShell()->createNewContext(v8::Handle<v8::Object>(), extensionGroup));
if (m_context->get().IsEmpty())
return;
@@ -72,7 +66,7 @@ V8IsolatedContext::V8IsolatedContext(V8Proxy* proxy, int extensionGroup)
V8DOMWindowShell::installHiddenObjectPrototype(m_context->get());
// FIXME: This will go away once we have a windowShell for the isolated world.
- mainWorldWindowShell->installDOMWindow(m_context->get(), proxy->frame()->domWindow());
+ proxy->windowShell()->installDOMWindow(m_context->get(), proxy->frame()->domWindow());
// Using the default security token means that the canAccess is always
// called, which is slow.
diff --git a/WebCore/bindings/v8/V8Proxy.cpp b/WebCore/bindings/v8/V8Proxy.cpp
index c67e571..afd2231 100644
--- a/WebCore/bindings/v8/V8Proxy.cpp
+++ b/WebCore/bindings/v8/V8Proxy.cpp
@@ -213,6 +213,7 @@ static void handleFatalErrorInV8()
V8Proxy::V8Proxy(Frame* frame)
: m_frame(frame)
+ , m_windowShell(V8DOMWindowShell::create(frame))
, m_inlineCode(false)
, m_timerCallback(false)
, m_recursion(0)
@@ -221,7 +222,8 @@ V8Proxy::V8Proxy(Frame* frame)
V8Proxy::~V8Proxy()
{
- resetIsolatedWorlds();
+ clearForClose();
+ windowShell()->destroyGlobal();
}
v8::Handle<v8::Script> V8Proxy::compileScript(v8::Handle<v8::String> code, const String& fileName, int baseLine)
@@ -244,7 +246,13 @@ bool V8Proxy::handleOutOfMemory()
// Warning, error, disable JS for this frame?
Frame* frame = V8Proxy::retrieveFrame(context);
- frame->script()->destroyWindowShell();
+ V8Proxy* proxy = V8Proxy::retrieve(frame);
+ if (proxy) {
+ // Clean m_context, and event handlers.
+ proxy->clearForClose();
+
+ proxy->windowShell()->destroyGlobal();
+ }
ChromiumBridge::notifyJSOutOfMemory(frame);
@@ -258,6 +266,9 @@ bool V8Proxy::handleOutOfMemory()
void V8Proxy::evaluateInIsolatedWorld(int worldID, const Vector<ScriptSourceCode>& sources, int extensionGroup)
{
+ // FIXME: This will need to get reorganized once we have a windowShell for the isolated world.
+ windowShell()->initContextIfNeeded();
+
v8::HandleScope handleScope;
V8IsolatedContext* isolatedContext = 0;
@@ -303,7 +314,7 @@ bool V8Proxy::setInjectedScriptContextDebugId(v8::Handle<v8::Context> targetCont
{
// Setup context id for JS debugger.
v8::Context::Scope contextScope(targetContext);
- v8::Handle<v8::Context> context = m_frame->script()->mainWorldWindowShell()->localHandleForContext();
+ v8::Handle<v8::Context> context = windowShell()->context();
if (context.IsEmpty())
return false;
int debugId = contextDebugId(context);
@@ -573,6 +584,18 @@ void V8Proxy::resetIsolatedWorlds()
m_isolatedWorlds.clear();
}
+void V8Proxy::clearForClose()
+{
+ resetIsolatedWorlds();
+ windowShell()->clearForClose();
+}
+
+void V8Proxy::clearForNavigation()
+{
+ resetIsolatedWorlds();
+ windowShell()->clearForNavigation();
+}
+
void V8Proxy::setDOMException(int exceptionCode)
{
if (exceptionCode <= 0)
@@ -632,7 +655,6 @@ v8::Handle<v8::Value> V8Proxy::throwError(ErrorType type, const char* message)
v8::Local<v8::Context> V8Proxy::context(Frame* frame)
{
- // FIXME: Move this function to ScriptController.
v8::Local<v8::Context> context = V8Proxy::mainWorldContext(frame);
if (context.IsEmpty())
return v8::Local<v8::Context>();
@@ -648,28 +670,32 @@ v8::Local<v8::Context> V8Proxy::context(Frame* frame)
v8::Local<v8::Context> V8Proxy::context()
{
- // FIXME: Move this function to ScriptController.
if (V8IsolatedContext* isolatedContext = V8IsolatedContext::getEntered()) {
RefPtr<SharedPersistent<v8::Context> > context = isolatedContext->sharedContext();
if (m_frame != V8Proxy::retrieveFrame(context->get()))
return v8::Local<v8::Context>();
return v8::Local<v8::Context>::New(context->get());
}
- return m_frame->script()->mainWorldWindowShell()->localHandleForContext();
+ return mainWorldContext();
+}
+
+v8::Local<v8::Context> V8Proxy::mainWorldContext()
+{
+ windowShell()->initContextIfNeeded();
+ return v8::Local<v8::Context>::New(windowShell()->context());
}
v8::Local<v8::Context> V8Proxy::mainWorldContext(Frame* frame)
{
- // FIXME: Move this function to ScriptController.
- if (!frame->script()->isEnabled())
+ V8Proxy* proxy = retrieve(frame);
+ if (!proxy)
return v8::Local<v8::Context>();
- return frame->script()->mainWorldWindowShell()->localHandleForContext();
+ return proxy->mainWorldContext();
}
v8::Local<v8::Context> V8Proxy::currentContext()
{
- // FIXME: Why does this function exist?
return v8::Context::GetCurrent();
}
@@ -804,8 +830,12 @@ void V8Proxy::registerExtension(v8::Extension* extension, int extensionGroup)
bool V8Proxy::setContextDebugId(int debugId)
{
ASSERT(debugId > 0);
+<<<<<<< HEAD
v8::HandleScope scope;
v8::Local<v8::Context> context = m_frame->script()->mainWorldWindowShell()->localHandleForContext();
+=======
+ v8::Handle<v8::Context> context = windowShell()->context();
+>>>>>>> 99d3c27... 2010-01-05 Adam Barth <abarth at webkit.org>
if (context.IsEmpty())
return false;
if (!context->GetData()->IsUndefined())
diff --git a/WebCore/bindings/v8/V8Proxy.h b/WebCore/bindings/v8/V8Proxy.h
index d07bd0e..598340d 100644
--- a/WebCore/bindings/v8/V8Proxy.h
+++ b/WebCore/bindings/v8/V8Proxy.h
@@ -152,6 +152,9 @@ namespace WebCore {
Frame* frame() { return m_frame; }
+ void clearForNavigation();
+ void clearForClose();
+
// FIXME: Need comment. User Gesture related.
bool inlineCode() const { return m_inlineCode; }
void setInlineCode(bool value) { m_inlineCode = value; }
@@ -306,6 +309,10 @@ namespace WebCore {
static bool sourceName(String& result);
v8::Local<v8::Context> context();
+ v8::Local<v8::Context> mainWorldContext();
+
+ // FIXME: This should eventually take DOMWrapperWorld argument!
+ V8DOMWindowShell* windowShell() const { return m_windowShell.get(); }
bool setContextDebugId(int id);
static int contextDebugId(v8::Handle<v8::Context>);
@@ -328,14 +335,13 @@ namespace WebCore {
// Report an unsafe attempt to access the given frame on the console.
static void reportUnsafeAccessTo(Frame* target, DelayReporting delay);
- // FIXME: This should move to ScriptController.
- void resetIsolatedWorlds();
-
private:
// If m_recursionCount is 0, let LocalStorage know so we can release
// the storage mutex.
void releaseStorageMutex();
+ void resetIsolatedWorlds();
+
// Returns false when we're out of memory in V8.
bool setInjectedScriptContextDebugId(v8::Handle<v8::Context> targetContext);
@@ -364,6 +370,9 @@ namespace WebCore {
Frame* m_frame;
+ // For the moment, we have one of these. Soon we will have one per DOMWrapperWorld.
+ RefPtr<V8DOMWindowShell> m_windowShell;
+
// Utility context holding JavaScript functions used internally.
static v8::Persistent<v8::Context> m_utilityContext;
diff --git a/WebCore/bindings/v8/WorldContextHandle.cpp b/WebCore/bindings/v8/WorldContextHandle.cpp
index 04879b4..7ba76d3 100644
--- a/WebCore/bindings/v8/WorldContextHandle.cpp
+++ b/WebCore/bindings/v8/WorldContextHandle.cpp
@@ -31,7 +31,6 @@
#include "config.h"
#include "WorldContextHandle.h"
-#include "Frame.h"
#include "V8IsolatedContext.h"
namespace WebCore {
@@ -49,7 +48,7 @@ WorldContextHandle::WorldContextHandle(WorldToUse worldToUse)
v8::Local<v8::Context> WorldContextHandle::adjustedContext(V8Proxy* proxy) const
{
if (m_worldToUse == UseMainWorld)
- return proxy->frame()->script()->mainWorldWindowShell()->localHandleForContext();
+ return proxy->mainWorldContext();
if (!m_context || m_context->get().IsEmpty())
return proxy->context();
return v8::Local<v8::Context>::New(m_context->get());
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index e2ec0d8..db6e85b 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-07 Adam Barth <abarth at webkit.org>
+
+ No review, rolling out r52847.
+ http://trac.webkit.org/changeset/52847
+ https://bugs.webkit.org/show_bug.cgi?id=33232
+
+ Might have caused a perf regression.
+
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::detachedFromParent3):
+
2010-01-06 Mike Belshe <mike at belshe.com>
Add a flag to the ResourceResponse for tracking if a request was
diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
index cdc949d..cdeebed 100644
--- a/WebKit/chromium/src/FrameLoaderClientImpl.cpp
+++ b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
@@ -215,8 +215,8 @@ void FrameLoaderClientImpl::detachedFromParent3()
// will cause a crash. If you remove/modify this, just ensure that you can
// go to a page and then navigate to a new page without getting any asserts
// or crashes.
- m_webFrame->frame()->script()->clearForClose();
-
+ m_webFrame->frame()->script()->proxy()->clearForClose();
+
// Stop communicating with the WebFrameClient at this point since we are no
// longer associated with the Page.
m_webFrame->dropClient();
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list