[Webkit-unassigned] [Bug 48758] [Qt] DRT sideeffect revealed by r71004
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Nov 1 13:12:55 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=48758
--- Comment #3 from Robert Hogan <robert at webkit.org> 2010-11-01 13:12:55 PST ---
Yes, this is related to: https://bugs.webkit.org/show_bug.cgi?id=37725
Specifically the code that adds the LayoutTestController object:
void QWebFrame::addToJavaScriptWindowObject(const QString &name, QObject *object, QScriptEngine::ValueOwnership ownership)
{
if (!page()->settings()->testAttribute(QWebSettings::JavascriptEnabled))
return;
#if USE(JSC)
JSC::JSLock lock(JSC::SilenceAssertionsOnly);
JSDOMWindow* window = toJSDOMWindow(d->frame, mainThreadNormalWorld());
JSC::Bindings::RootObject* root;
if (ownership == QScriptEngine::QtOwnership)
root = d->frame->script()->cacheableBindingRootObject();
else
root = d->frame->script()->bindingRootObject();
At the moment LayoutTestController gets added as a cacheableBindingRootObject() so that it survives page navigations. This object will only get destroyed once the page has been destroyed.
If you change it so that LayoutTestController gets added as a bindingRootObject() instead it will get destroyed on the page navigation implicit in loading a new test and node-from-rect-basic.html passes when run as the following tests.
So there is something wrong with the state of the Qt root object after loading an initial page, then loading a new one. This problem does not arise with a 'fresh' root object.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list