WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
79775
[GTK] Inconsistent state of WebKitWebView when replacing content in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=79775
Summary
[GTK] Inconsistent state of WebKitWebView when replacing content in WebKit2
Carlos Garcia Campos
Reported
2012-02-28 03:46:16 PST
We are currently using a boolean set to true in webkit_web_view_replace_content() in order to ignore load events while replacing content. But that's not enough, because after replace_content() is called there might be load events of a previous ongoin operation, at least finished. So we need to set the replacing content state when the load of the replaced content starts.
Attachments
Patch
(8.38 KB, patch)
2012-02-28 03:55 PST
,
Carlos Garcia Campos
mrobinson
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Carlos Garcia Campos
Comment 1
2012-02-28 03:55:30 PST
Created
attachment 129225
[details]
Patch
WebKit Review Bot
Comment 2
2012-02-28 03:58:23 PST
Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See
http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API
Martin Robinson
Comment 3
2012-02-28 10:03:08 PST
Comment on
attachment 129225
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=129225&action=review
Looks good. Please consider the minor cleanups below.
> Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:82 > + NoReplaceContent,
NotReplacingContent?
> Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:703 > - if (webView->priv->replacingContent) { > + if (webView->priv->replaceContentStatus == ReplacingContent) { > if (loadEvent == WEBKIT_LOAD_FINISHED) > - webView->priv->replacingContent = false; > + webView->priv->replaceContentStatus = DidReplaceContent; > return; > } > > + if (loadEvent == WEBKIT_LOAD_STARTED) { > + if (webView->priv->replaceContentStatus == WillReplaceContent) { > + webView->priv->replaceContentStatus = ReplacingContent; > + return; > + } > + webView->priv->replaceContentStatus = NoReplaceContent; > + }
Mind moving this to a helper called updateReplaceContentStatus?
> Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:148 > +void WebViewTest::waitUntilTitleChanged(const char* expectedTitle)
Probably better to call this waitUntilTitleChangedTo.
Carlos Garcia Campos
Comment 4
2012-02-28 10:06:18 PST
(In reply to
comment #3
)
> (From update of
attachment 129225
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=129225&action=review
> > Looks good. Please consider the minor cleanups below. > > > Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:82 > > + NoReplaceContent, > > NotReplacingContent?
Sounds good.
> > Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:703 > > - if (webView->priv->replacingContent) { > > + if (webView->priv->replaceContentStatus == ReplacingContent) { > > if (loadEvent == WEBKIT_LOAD_FINISHED) > > - webView->priv->replacingContent = false; > > + webView->priv->replaceContentStatus = DidReplaceContent; > > return; > > } > > > > + if (loadEvent == WEBKIT_LOAD_STARTED) { > > + if (webView->priv->replaceContentStatus == WillReplaceContent) { > > + webView->priv->replaceContentStatus = ReplacingContent; > > + return; > > + } > > + webView->priv->replaceContentStatus = NoReplaceContent; > > + } > > Mind moving this to a helper called updateReplaceContentStatus?
Sure
> > Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:148 > > +void WebViewTest::waitUntilTitleChanged(const char* expectedTitle) > > Probably better to call this waitUntilTitleChangedTo.
I didn't add the 'To' because you can pass NULL to wait until title is changed to whatever thing. maybe it's better to use a default value of NULL, though
Martin Robinson
Comment 5
2012-02-28 10:08:49 PST
Comment on
attachment 129225
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=129225&action=review
>>> Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:148 >>> +void WebViewTest::waitUntilTitleChanged(const char* expectedTitle) >> >> Probably better to call this waitUntilTitleChangedTo. > > I didn't add the 'To' because you can pass NULL to wait until title is changed to whatever thing. maybe it's better to use a default value of NULL, though
You could add another method called waitUntilTitleChanged that just calls waitUntilTitleChangedTo with a NULL parameter.
Carlos Garcia Campos
Comment 6
2012-02-28 10:25:05 PST
Committed
r109120
: <
http://trac.webkit.org/changeset/109120
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug