iframe support - #5545
Open
martinmr wants to merge 3 commits into
Open
Conversation
It appears that the code that is supposed to intercept clicks to external links in <a> elements is not working consistently. Move it further up the handleEvent function so that is executed regardless of the response of sending a serialized event. Also remove all the logic added in the rust side since it cannot handle both cases and this handling code already existed. Also removed the navigation handler that was recently introduced to attempt to fix the issue. In my local testing, both iframes and links work correctly. However, since others are seeing the same behavior in the same version of macOS, it needs further testing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains fixes needed to better support iframes in Dioxus.
The first issue is that iframes are currently disabled in v0.7 to fix an issue with links not navigating to a browser. It appears that the existing code that is supposed to intercept clicks to external links in elements is not working consistently. This PR moves it further up the handleEvent function so that is executed regardless of the response of sending a serialized event. It also remove all the logic added in the rust side since it cannot handle both cases and this handling code already existed. It also removes the navigation handler that was recently introduced to attempt to fix the issue, as it's not the right approach.
In my local testing, both iframes and links work correctly. However, since @jkelleyrtp was seeing different behavior in the same version of macOS, it needs further testing. If this works, it should fix #5331. I also have never been able to reproduce the original issue with links navigating instead of opening a browser. I added a new playwright test and it's working and failing on the code before the change.
The second fix is to add a new config option that exposes the webview's
with_initialization_script_for_main_onlyoption in Dioxus. This is helpful to inject scripts (such as extensions) into the webview, including iframes. I am using this to work with Youtube's iframe along with a custom extension that allows directly manipulating the video element inside the iframe.