On 2022-10-09 04:40 PM, Petr Vaněk wrote:
> Hi,
>
> On Sun, Oct 09, 2022 at 06:12:56PM +0200, Chris Weber wrote:
>> Surf is my browser for 6 month (/wo any issue ) and last week the
>> above
>> issue arose.
>> When I navigate to any website (js heavy or html only) and begin to
>> interact with the website via keyboard, the website content renders
>> unresponsive from 5-20s. After rendering responsive again, it will
>> steadily happen again and again.
>> I assume it's an updated dependency which I installed unintentionally,
>> because I left the surf sources untouched.
>>
>> Do you have any tips for troubleshooting the above issue?
>> My first attempt was to debug with gdb, but I'm unshure where to put
>> the
>> breakpoints.
>> I think it should be easier to profile it first and spot the component
>> which freezes the rendering.
>> Or install different versions of webkit?
>
> I experience the same issue with webkit-gtk 2.36.8 and 2.38.0. I
> switched
> back to 2.36.7, which works fine. I didn't find any related bug report
> in upstream (one week ago).
>
> It would be probably nice to git-bisect between 2.36.7 and 2.36.8 to
> find the commit causing this issue.
>
> Best,
> Petr
If I had to guess, this is probably related to this problem in Webkit
https://github.com/WebKit/WebKit/pull/4868
Since the last Webkit update (commit 28a89facb8720 in Webkit), file
descriptors from the main process are no longer passed to child
processes, which results in surfs web-extension reading out data out of
a different file descriptor, that Webkit is using for its own
communication, which results in the whole program glitching out.
From what I understand, the change will be reverted in the next release
of Webkit. Until then, you would have to either downgrade Webkit to
2.36.7 or remove the web extension file located in /usr/local/lib/surf/
directory. I still think however, that this behavior of surf should be
changed, since it was made clear to me that there is no guarantee that
FDs will always be passed going forward.
One way of communication that I found and was also suggested to me by
Webkit contributors is using function
webkit_web_context_send_message_to_all_extensions which is part of
Webkit API, so it would not break as easily.
---
Andy Gozas.
Received on Sun Oct 09 2022 - 21:16:48 CEST