-
Notifications
You must be signed in to change notification settings - Fork 121
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
[Accepted with Revisions] SDL 0273 - WebEngine Projection mode #912
Comments
|
Hi @JackLivio. Thanks for you review.
|
I know you meant only for web engine apps but I just wanted to point out how someone might find it ambiguous.
Also the HMI implementation could choose to respond with failures for show requests for webengine apps. I don't think its a necessary requirement for Core.
FYI I believe there are specific rules/exception related to the hmi state & level for when the app is a PROJECTION application, similar to how NAVIGATION apps have special rules. Do we want those same rules to apply to webengine apps?
|
You're right. NAVIGATION is a special HMI type and there are special rules in the scenario of multiple nav apps. This proposal only describes PROJECTION. Another proposal for WebEngine based nav apps is in the backlog and dependent of this proposal.
|
I apologize for my late comment here. I really wanted to get a good understanding and make meaningful comments. 6.
I do believe OEMs should be able to use all the features of SDL, like this proposal, as they wish when it comes to their own apps. What they do for their own apps does not affect other OEMs implementations of SDL (in most cases). What I do worry about is the effect a proposal like this will have on the ecosystem for third party apps. While there's an argument that this is operating in the same way the SDL-0031 works, I believe that is not completely accurate. With this being for locally stored applications, there is not as much of an adverse effect to circumvent the SDLC app certification and could therefore be implemented before the SDLC agrees upon the guidelines for these types of apps. This would put any OEM who is following our path to a disadvantage compared to the OEM(s) who have chosen to ignore it. We simply do not have a way to effectively monitor and enforce this. Maybe the SDLC members do not feel this is a concern though. I can imagine Ford doesn't, but would like to hear from other members specifically. 7.
I think there could be a big impact to the screen managers that will be created for the JavaScript Suite. Regardless of whether this proposal is accepted or not, the screen manager will need to be implemented to support templated implementations so how that manager works when there is no main window will have to be addressed. 8.
I think there are some other items that could enhance the SDL experience without adding this feature:
These would help create a better SDL experience for applications from all platforms instead of just one, which is more competitive in its own right. These actions help SDL fall more in line with what competitors are doing, but SDL could do better. 9. I would like to see how this changes the previously supplied flows for web engine apps that simply start a new window but returns to the SDL HMI. This would instead keep the opened web engine instance in focus, so the flow would change. I'm assuming just using the HMI type of |
The Steering Committee voted to keep this proposal in review, to allow the author time to respond to the comments, and for the Project Maintainer and SDLC members to continue their review and discussion on the review issue. It was urged that all SDLC members, especially OEMs, review this proposal and understand how it will impact their current and planned future implementations of SDL. |
|
7. At the time this is true, and I was hoping the author could help provide their insight on how it work work even still. However, I suppose another piece of this is that the entire multiple window system and widgets manager update proposals have never been submitted. So maybe that should be a priority which will include such changes. Was this something the author or another person from their company could handle? 8. The reason I bring it up is you stated there is no alternative that supports the level of advantages as this feature. This is the piece I disagree with and why I brought up those points. The reasoning behind this type of UI is to provide a better UX and simpler SDL integration, but as stated this could be improved in other ways that are not as brute force of a change and all SDK platforms would benefit from. I do not see the author agreeing with me on this, so the point is more for the SDLC; no further discussion is necessary here. 9. I can understand what triggers the behavior, but I would like to know how it affects the previously supplied flows for web engines applications. Can you please provide such flows that are updated to reflect such an application? |
I think the second point of Jack's comment is closely related to this point as he describes the scenario if an app can be PROJECTION but also have a template main window (some sort of hybrid mode). If we are more specific, this hybrid mode would require modifications to the definition of the predefined default main window. I think the easiest approach would be to introduce a new projection window type and a predefined main projection window which will be added to the window capabilities array if the app is a projection app (including mobile navigation apps). Still, the default main window may be empty when not supporting text, buttons and graphics if the HMI isn't including a templated main window. Alternatively it could be omitted from the window list but I'm afraid the libraries could crash as the expect the default main window to always exist. I realize that the below statement from the proposal isn't really valid as it's in the scope of the HMI. Core should not overrule the decision of the HMI.
I hope my insight was helpful. If you have any further questions or feedback to the suggested window capability change please don't hesitate to send me your feedback. I'm more than happy to help.
I agree to the comment from the project maintainers that the SDL templates can be improved in different ways allowing app developers to create great applications with an awesome graphical user interface. Ideas that I would add to the list of the project maintainers are
Please don't forget that these are my personal ideas I have in mind that could be an awesome enhancement to the UI component of SDL. But I know all these enhancements are really difficult to realize for many different reasons. Still I would love to see enhancements to the templates become reality. The mobile projection mode was proposed for more advanced applications. I'm not sure how far I can speak about use cases before I get into trouble but we are looking for the ability of showing complex controls like sensor meters (g-force etc.) that are going beyond text, image and buttons. This is really difficult to solve in a template approach. Other use cases are to show videos e.g. from cameras. Also customized map solutions are considered (though this is more NAVIGATION related). We are looking for the ability to implement OEM specific or non-consumer features with the new in-vehicle application platform. The web presentation allows us to move forward with delivering the demand in a realistic period of time. I want to let everyone know that I believe that the template improvements can benefit from the web based presentation mode as a tool for any kind of application independent from where they are running (mobile, cloud, in-vehicle). Creating templates for the HMI and make them robust is a difficult task and transfer the complexity would be a gate with many opportunities for template improvements. This vision of an SDL user interface can only be reached step by step. Starting with the projection mode in a constrained environment is a start and I believe it will be inspiring and educational for improving the design and layout of SDL templates.
|
Hi @kshala-ford - please find collective comments from the PM below. Thanks! 1. 2. We already provide the display capabilities for an app in the RAI response. If the head unit does not support show requests for a webengine app, the display capabilities will let the app know. It is not necessary to say webengine apps cannot send shows, when that information can be propagated to the app by the head unit's declaration that those fields are not supported for the main window or the selected template. 3. If we keep PROJECTION as the app hmi type for webengine apps, then in Core there must be a new application API named something like webengine_projection_enabled(). This will return true if the app hmi type is PROJECTION and some secondary form of identification that it is a webengine app. We don't believe that the lack of a secondary transport is enough of a reason for determining if a PROJECTION app is a webengine app or not. There could be non webengine apps that use the websocket transport in the future. There needs to be an additional identifier of the app type or we should use a different app hmi type. Also the existing Core application api mobile_projection_enabled() needs to be extended to consider if the app is webengine or not. This method is called in too many cases to list here. Currently it only checks if the app hmi type is PROJECTION. Our suggestion is to create a new app hmi type for webengine projection apps. 4/5. 6. 7. 8. 9. 10. |
The Steering Committee voted to keep this proposal in review, to allow the author time to respond to the comments provided, and to provide additional time for other SDLC Members to review and provide feedback. |
2, I think the PM is misunderstanding my point. but this item can be closed as it becomes invalid considering the solution regarding 10. 3, I need more time to look into this item regarding the ability to identify a webengine app. This proposal is not in a hurry and I would rather try to avoid adding a very webengine specific HMI type and reuse what's already available.
I may be wrong but I don't believe a locally running WebEngine app should capture the DOM and stream it through SDL as a video back to the HMI to be projected. I don't even believe web applications can do video streaming without the need of browser extensions. 6, I did recognize the PM comment and do understand your concern but they are not valid. I don't understand why the PM is bringing up these concerns but silently accept the original projection mode proposal. 7, I appreciate looking into my comments and providing valid feedback. I think I can speak for all members of my organization that we always support resolving issues even across proposals currently in review. I want to note that not doing so became common practice in the past and that's what I was referring to while still providing feedback that the managers should respect window capabilities independently of this proposal. If you agree I would like to skip (and potentially invalidate) this item and invite you to have a look at 10. I think the template variant invalidates a lot of my previous expectations and your concerns. 10, You're bringing up a very good point here and I spend some time understanding how PROJECTION and NAVIGATION apps work at the moment. Please bear with me if I still misunderstand some items but I would like to stay close to the existing implementation and suggest a proposal revision to use a projection template name instead. When activating WebEngine apps with HMI type (Still 10.) think above suggestion makes item 2 and 7 invalid as the template approach matches existing window capabilities mechanism and Show RPCs are still allowed for the main window. EDIT: (still 10 ^^) The new template should only be allowed for the default main window. |
A quorum was not present at the 2020-02-04 Steering Committee meeting, so a vote on this proposal could not take place. This proposal will remain in review until our next meeting on 2020-02-11. |
Hi @kshala-ford - please find collective comments from the PM below. Thanks! 3. 6. 9. 10. In the effort to maintain official templates across OEM platforms, we should design a high level wireframe of what components this new WebEngine projection template will include (this is not a UI design doc; it is basic requirements for implementers of the template). We think some important components to include in the wireframe are: the "return to app list" button – this should not be app defined, the add command menu button (or a requirement for the app to implement ShowAppMenu or otherwise implement CloseApplication), and app/template title. |
The Steering Committee voted to keep this proposal in review to allow additional discussion on the review issue. It was again requested that all SDLC Members review and provide their feedback on this proposal. |
I'm sorry for my late reply. Due to other activities it's not easy to reply properly to every item in your comment. The App HMI type defines app features. Not the technology (streaming video vs. rendering html). We shouldn't imply the underlying technology from the HMI type. SDL Core can easily distinguish web apps from any other app and therefore behave accordingly to the expected technology to be used. Core shouldn't expect a video and audio stream for local web applications in an SDL manner. Adding a new HMI type is not necessary and causes impact across many different SDL areas including policy. I encourage the PM to also consider implementation effort when suggesting changes. If the PM doesn't agree I would like to have the steering committee to vote. If the vote is to add an HMI type I want consensus on who will be working on the impacted platforms. If I understand it correctly if Joey's concerns couldn't be brought up in the original mobile projection proposal he or the PM are generally against any sort of app projection (except navigation). If this is the case then please consider revisiting the original proposal and suggest to revote rejecting the proposal. WebEngine projection mode is no different to mobile projection except the technology in use is different. This is the only purpose of this very proposal to use web rendering instead of video streaming but the feature stays the same. If you bring up concerns to the feature then they also apply to mobile projection as well. The connection to Core should stay open. This is independent of the app HMI type and also applies to default web applications. I think we can agree on the template based approach though I don't agree to the naming. The name should be applicable to mobile projection as well and should be called |
During the 2020-02-18 meeting, the Steering Committee voted to keep this proposal in review, to allow for further discussion on this review issue. |
Adding 11. to the notes about what should be part of the template:
I think this is very HMI dependent. I can say that Ford HMI is not showing such button or any other button on top of the app's viewport. However a dominant "Apps" button exist that guides the user to the app list. I think we agree here as long as the HMI designer makes sure that access to the app list is possible.
I do agree. For 3rd party this should be a requirement but in the scope of this proposal addressing 1st party I am hesitant in accepting boundaries as I can see any business case to keep the app open like a fleet app being more important than follow these requirements. Think of car rental apps or OEM apps that want to be present permanently.
This is again very HMI. But I agree to that HMI designers should consider the template title being shown outside of the app viewport, may be above the app. |
Hi @kshala-ford - please find collective comments from the PM regarding most comments below. We'll need more time to review and respond to 11. Thanks! 3. 6.
I think the feedback provided does not address the real concern. There is no way to enforce only OEM apps to use this feature. These types of apps can be deployed directly to OEMs' head units and circumvent the SDLC entirely; this makes it possible for OEMs to create one off integrations with app partners. Therefore it is plausible that the app partners will require this type of integration (HTML rendering) for OEMs to get access to their application. This puts the ecosystem in jeopardy if it does not align with the OEMs strategy. We would really like to get other members' feedback on this and make sure their plans align to including this feature. 9. To reference cloud applications, the HMI has a method to disconnect cloud apps in the event the app is using too much of the users data (ApplicationExitReason::CLOSE_CLOUD_CONNECTION). We would like to suggest adding a new HMI ApplicationExitReason and a new Mobile AppInterfaceUnregisteredReason that can be used by the hmi to disconnect webengine applications. 10. |
3. The only reason why HMI type is being used is because the app's initial template should be the app's webpage. Any other solution is greatly appreciated. Possibly a new param could support the same feature and would help for other platforms. The param could be called 6.
Same applies for mobile projection apps. These types of apps can be deployed on Apple AppStore and Google PlayStore and circumvent the SDLC as well. But no one is considering as it would be completely against any consortium agreement.
I'm not sure if I'm understanding. Are the PM saying that app partners would require permission to render HTML instead of using templates? Again this is not in our interest to allow 3rd party applications. Our first goal is to support OEM and commercial applications and then work on addressing template issues before we start with 3rd party. There are plenty of ways to improve templates if you look at the list I already provided. But we have to proceed on this proposal in the proposed context. 9. If the IVI is 1. running out of RAM or 2. the application uses too much CPU or 3. caused excessive data traffic the application should be closed. The IVI would decide on exiting an application due to hardware constraints. I am thinking of adding reasons per resource issue. If I'm not mistaken the exit reason should be tracked in the policy statistics. When reviewing the statistics it would be helpful to better understand the exit reason of an application. Any suggestions? 10. |
The Steering Committee voted to return this proposal for the following revisions:
The following items will need to be discussed when the revised proposal is back in review: Comments 6 and 11 |
To reiterate on parts of @AByzhynar comment:
This part is all correct to my understanding of how HMI should implement the Show rpc. This existing behavior is why WEB_VIEW should be able to receive show requests even without text fields, and be able to update previously created duplicate widgets. Even if the managers wont let this case happen, thats fine, we just wanted to preserve existing behavior for Show. The goal to keep things simple was to try and not change widgets behavior at all for this proposal. The one exception in this proposal for widgets is that WEB_VIEW should not be able to create a duplicate widget from the main window. |
Hi @AByzhynar, I've summarized the status of comments below, with feedback from the PM on the open items: Open Items 19. Given https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0273-webengine-projection-mode.md#1-template-web_view, please remove "Widgets are not affected by this proposal." from https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0273-webengine-projection-mode.md#13-what-about-widgets. Author to Update 18. Author to update following line:
21. Author to remove the following:
22. Author to add bullets to
23. In
to
Closed/No Action Required |
@theresalech |
@AByzhynar 16. It is the menu button you describe. I think that the statement should continue to include it in order to have the full list of required buttons in one place. It's fine to then expand upon the menu button in the App Deactivation section you mentioned. |
@joeljfischer Thank you. Now it is clear. I just would like to propose to name it “MENU” button (or “App Menu” ), but the same name should be used everywhere in the proposal to avoid confusion. |
@AByzhynar I think that sounds like a good change. Maybe you should define it in parenthesis the first time it’s used? It should be obvious, I just want to avoid confusion between that button and one the developer makes themselves using the WEB_VIEW. Something like “MENU (the button that shows the list of |
The Steering Committee voted to keep this proposal in review, to allow the PM and author to resolve the remaining open items in discussion (16 and 19). |
@AByzhynar and I came up with a conclusion to 16 and 19. Both are very closely related to 15 and 18 which is why we decided to use a title instead. We're OK with new numbers (24, 25) if further discussion is needed but we try to provide a complete statement to both (actually all four) items: 16. & 18. App Menu We want to make everyone aware of the accepted proposal SDL-0116 Open Menu which added a new RPC called
and
Apps which show content using WEB_VIEW have the same responsibilities than projection apps therefore the same requirement applies to WebEngine apps. We suggest to add the following items to the proposal in favor of showing a menu button on the HMI:
15. & 19. Related to widgets and duplicate content With regards to widgets we think that the statement that's currently in the proposal The section Our suggestion is not to change the behavior of how SDL Core is duplicating content. The section |
@theresalech The enabling of 3rd party apps is a long term goal which we hope to enable
|
@theresalech We consider that
is not accurate enough and should be changed to :
|
@theresalech The changes proposed in 16. & 18 here: #912 (comment) will also require to remove application deactivation section |
Hi @AByzhynar and @kshala-ford, thanks for your feedback. We are okay with your suggestions for 24 and 25. I've included an updated status of comments below, with feedback from the PM on the open items: Open Items 26. We'd recommend
Author to Update 22. Author to add bullets to
23. In
to
24 (formerly 16 and 18). Author to add the following items to the proposal in favor of showing a menu button on the HMI:
The application deactivation section will also be removed. 25 (formerly 15 and 19). Author to remove Closed/No Action Required |
We agree to remove it but our long term goal is still valid for the future proposals. |
Hi @AByzhynar, can you please advise if you are okay with our suggestion for Item 26? |
@theresalech All the changes proposed by you in #912 (comment), including item 26, are included in the new revision. |
In preparation for today's Steering Committee meeting, I have summarized the revisions the PM and author have agreed upon below. Unless there are any other comments from members, we'll ask the Steering Committee to vote to accept the proposal with the revisions below: 17. Author to use backticks throughout proposal to mark all RPC names, e.g. AddCommand. 21. Author to remove the following
22. Author to add bullets to
23. In
to
24 (formerly 16 and 18). Author to add the following items to the proposal in favor of showing a menu button on the HMI:
The application deactivation section will also be removed. 25 (formerly 15 and 19). Author to remove 26. Author to update
to
|
The Steering Committee voted to accept this proposal with the revisions outlined in this comment. |
Author has updated proposal to reflect agreed upon revisions, and implementation issues have been entered: |
Hello SDL community,
The review of the revised "SDL 0273 - WebEngine Projection mode" proposal begins now and runs through May 19, 2020. Previous reviews of this proposal occurred January 15 - February 25, 2020, and March 24 - April 28, 2020. The proposal is available here:
https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0273-webengine-projection-mode.md
Reviews are an important part of the SDL evolution process. All reviews should be sent to the associated Github issue at:
#912
What goes into a review?
The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of SDL. When writing your review, here are some questions you might want to answer in your review:
Please state explicitly whether you believe that the proposal should be accepted into SDL.
More information about the SDL evolution process is available at
https://github.com/smartdevicelink/sdl_evolution/blob/master/process.md
Thank you,
Theresa Lech
Program Manager - Livio
theresa@livio.io
The text was updated successfully, but these errors were encountered: