WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
217407
Reloading a view in its processTerminationHandler does not work reliably when using related views
https://bugs.webkit.org/show_bug.cgi?id=217407
Summary
Reloading a view in its processTerminationHandler does not work reliably when...
Chris Dumez
Reported
2020-10-06 15:13:09 PDT
Reloading a view in its processTerminationHandler does not work reliable when using related views.
Attachments
Patch
(8.03 KB, patch)
2020-10-06 15:20 PDT
,
Chris Dumez
no flags
Details
Formatted Diff
Diff
Patch
(8.02 KB, patch)
2020-10-06 15:32 PDT
,
Chris Dumez
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Chris Dumez
Comment 1
2020-10-06 15:20:40 PDT
Created
attachment 410702
[details]
Patch
Radar WebKit Bug Importer
Comment 2
2020-10-06 15:23:27 PDT
<
rdar://problem/70019867
>
Geoffrey Garen
Comment 3
2020-10-06 15:29:05 PDT
Comment on
attachment 410702
[details]
Patch r=me
Chris Dumez
Comment 4
2020-10-06 15:32:11 PDT
Created
attachment 410703
[details]
Patch
EWS
Comment 5
2020-10-06 17:21:07 PDT
Committed
r268097
: <
https://trac.webkit.org/changeset/268097
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 410703
[details]
.
Michael Catanzaro
Comment 6
2021-02-10 08:38:30 PST
This introduced a regression in Epiphany. Previously, our web-process-terminated signal handler checked the URI of the web view to decide which page to reload. The Reload button in our crash page is hooked up to some JS that sets window.location to this URI. But since this commit, the web view changes its URI to an empty string before it emits web-process-terminated. So now when users click the Reload button, nothing happens. It's very easy to work around in Epiphany: we could simply remember the last non-empty URL and use that when loading the crash page. That's a bit messy, but it seems better than going back to synchronous loading that doesn't work properly for related views. But I wouldn't be surprised if other WebKit clients might be broken in the same way.
Michael Catanzaro
Comment 7
2021-02-16 08:00:49 PST
Hm, even vanilla reload() cannot work anymore, because it would only reload an empty address and wind up with about:blank. So although we *can* work around this in the client, I'm not sure we should, because it seems like all clients would be affected. (Are you sure this didn't break Safari?)
Chris Dumez
Comment 8
2021-02-16 08:27:21 PST
(In reply to Michael Catanzaro from
comment #7
)
> Hm, even vanilla reload() cannot work anymore, because it would only reload > an empty address and wind up with about:blank. So although we *can* work > around this in the client, I'm not sure we should, because it seems like all > clients would be affected. (Are you sure this didn't break Safari?)
It did break Safari iirc and we fixed Safari.
Michael Catanzaro
Comment 9
2021-02-16 09:06:15 PST
OK, my proposed Epiphany fix is
https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/913
Chris Dumez
Comment 10
2021-02-16 09:07:53 PST
(In reply to Michael Catanzaro from
comment #9
)
> OK, my proposed Epiphany fix is >
https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/913
BTW, I would expect reload() to work. As a matter of fact, this is what WebKit's default crash handler does (when the client does not set a custom crash handler).
Michael Catanzaro
Comment 11
2021-02-16 09:14:19 PST
That doesn't work on its own because before we can reload(), we have to do webkit_web_view_load_alternate_html(), and then whatever URI we pass to that is what will get reloaded. So we need to track the previous nonempty URI regardless, or we'll just wind up reloading an empty string.
Chris Dumez
Comment 12
2021-02-16 17:14:46 PST
(In reply to Michael Catanzaro from
comment #11
)
> That doesn't work on its own because before we can reload(), we have to do > webkit_web_view_load_alternate_html(), and then whatever URI we pass to that > is what will get reloaded. So we need to track the previous nonempty URI > regardless, or we'll just wind up reloading an empty string.
I see. I agree this is risky. I will see if I can find a better way to fix this.
Chris Dumez
Comment 13
2021-02-16 17:37:27 PST
(In reply to Chris Dumez from
comment #12
)
> (In reply to Michael Catanzaro from
comment #11
) > > That doesn't work on its own because before we can reload(), we have to do > > webkit_web_view_load_alternate_html(), and then whatever URI we pass to that > > is what will get reloaded. So we need to track the previous nonempty URI > > regardless, or we'll just wind up reloading an empty string. > > I see. I agree this is risky. I will see if I can find a better way to fix > this.
Fixing via
Bug 222011
.
Michael Catanzaro
Comment 14
2021-02-17 06:35:52 PST
Ah cool, thanks.
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