Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support multiple web views simultaneously #77

Closed
7 of 14 tasks
aperezdc opened this issue Jan 15, 2019 · 4 comments
Closed
7 of 14 tasks

Support multiple web views simultaneously #77

aperezdc opened this issue Jan 15, 2019 · 4 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@aperezdc
Copy link
Member

aperezdc commented Jan 15, 2019

Currently Cog supports only a single web view, and it would be interesting to provide support for more than one. In my mind, the minimum that needs to be done is:

  • Allow CogShell to contain more than a single web view, one of them considered to be the “active” one.
  • Augment the platform plug-in interface to:
    • Request from the platform plug-in more than one view backend.
    • Letting the platform plug-in know which view (and hence view backend) is active.
  • Add new API to CogShell to:
    • Enumerate web views.
    • Check which view is the active one.
    • Select which view is the active one.
  • Expose multiple web view support in CogLauncher.
  • Add commands to cogctl for managing multiple web views.
  • Port/add platform implementations to the new API:
    • FDO (Wayland)
    • DRM (Kernel Mode Setting + Direct Rendering Manager).
    • Simple (only one view supported, fallback for basic WPE backends like the RDK one).

The simplest implementation (on the platform plug-in side) would be to only display frames coming from the active view, and keeping around the most recent frame from the other views, so it can be used as the first frame shown when the active view is changed.

There is one problem: when using the fall-back WPE “default” view backend (that is: no platform plug-in is used), we cannot know what the WPE backend implementation will do, therefore in that case I think the safest approach would be disallow creating more than one web view.

@aperezdc aperezdc added the enhancement New feature or request label Jan 15, 2019
@aperezdc aperezdc self-assigned this Jan 15, 2019
@aperezdc
Copy link
Member Author

aperezdc commented Jan 23, 2020

This is being worked on in the branch devel/multiple-views. It still needs work, but it is already in an usable state.

Lots of thanks to @psaavedra and @csaavedra who have been contributing towards getting this done! 💪

@aperezdc
Copy link
Member Author

aperezdc commented Oct 7, 2020

The changes in the devel/multiple-views branch are too many for a single PR that would apply to master—I tried a few times to rebase but it is a Herculean task. I am going to try instead moving things slowly into master to make it slowly morph into shape, let's see how that goes.

aperezdc added a commit that referenced this issue Feb 2, 2021
Remove WebKitGTK-related code and references to the possibility of
building Cog using WebKitGTK instead of WPE WebKit.

The rationale for the removal is that the code path is not often used,
it increases maintenance effort slightly, the rework for multiple views
support (issue #77) will be more complicated if we need to maintain the
WebKitGTK support, and finally it is nowadays affordable to run and test
Cog with WPE directly on desktop than when the project was started (e.g.
using the X11 platform module, or in a nested Wayland compositor).
aperezdc added a commit that referenced this issue Feb 2, 2021
Remove WebKitGTK-related code and references to the possibility of
building Cog using WebKitGTK instead of WPE WebKit.

The rationale for the removal is that the code path is not often used,
it increases maintenance effort slightly, the rework for multiple views
support (issue #77) will be more complicated if we need to maintain the
WebKitGTK support, and finally it is nowadays affordable to run and test
Cog with WPE directly on desktop than when the project was started (e.g.
using the X11 platform module, or in a nested Wayland compositor).
@aperezdc aperezdc modified the milestones: Cog 0.10, Cog 0.12 Apr 1, 2021
@aperezdc aperezdc modified the milestones: Cog 0.12, Cog 0.14 Nov 3, 2021
@aperezdc
Copy link
Member Author

aperezdc commented Nov 3, 2021

While there has been some work to slowly move this code over to the main branch, it's not there yet, so I am changing the milestone to 0.14 🙃

EinarArnason pushed a commit to EinarArnason/cog that referenced this issue May 16, 2022
Remove WebKitGTK-related code and references to the possibility of
building Cog using WebKitGTK instead of WPE WebKit.

The rationale for the removal is that the code path is not often used,
it increases maintenance effort slightly, the rework for multiple views
support (issue Igalia#77) will be more complicated if we need to maintain the
WebKitGTK support, and finally it is nowadays affordable to run and test
Cog with WPE directly on desktop than when the project was started (e.g.
using the X11 platform module, or in a nested Wayland compositor).
@aperezdc aperezdc modified the milestones: Cog 0.14, Cog 0.16 Jun 29, 2022
@aperezdc aperezdc modified the milestones: Cog 0.16, Cog 0.18 Sep 29, 2022
@aperezdc aperezdc modified the milestones: Cog 0.18, Cog 0.20 Dec 13, 2023
@aperezdc
Copy link
Member Author

The infrastructure needed for this is now merged the master branch, so let's close this and for the remaining issues we can open new issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant