-
Notifications
You must be signed in to change notification settings - Fork 279
Chromely cannot be downloaded on linux-arm (Raspberry Pi) #281
Comments
@redplane |
Hi @mattkol , I have cloned your repository to my computer and start debugging the application. When I paste the above line into my browser address, the server returns 404. My guess is: the version already deprecated and the developers already removed and replace version 86 with version 87. I also found the file version.g.cs. It seems that the download link is being generated by reading I have few options below:
I put a breakpoint there and read the value, the value Chromely downloaded was a raw page, the content seems to be rendered by the below function (which means we can't find any version in the downloaded string - it was client side rendering)
Actually, there is a json file which lists every available CEF version, and it is: https://cef-builds.spotifycdn.com/index.json (by turning on developer console, we can see this) I think we can use https://cef-builds.spotifycdn.com/index.json (by turning on developer console, we can see this) to get the available version instead of analyzing Cef spotify web content.
|
This is an open source project. Everyone is encouraged to contribute. |
I am not sure if the proposal will help. CefGlue specifies version.
So it looks like linux-arm build for v86 is deprecated or removed. So trying to change anything in the code may not help much. What is needed is to upgrade CefGlue. But if you can make it work for the project you are working on, I think you should go ahead. It can help others too. When CefGlue is updated, I believe the error you are seeing will go away. Alternatively you can also upgrade to CefGlue, v87. |
@mattkol , I have notice that, on Windows PC (I haven't test with another OS on PC), when you download the page, it returns enough information that Chromely can understand & find the version by using regex. But when I tried on Raspberry PI 4, perhaps, due to its low memory, the render process runs slow, the content was not rendered by Javascript, that's why even I change the version in Btw, can you tell me where I can find information of (on internet)
|
To change those, you may need to get that from CefGlue Version search. There is a chance that what you are doing will work, but I have tried making such a change in the past and it just lead to more headaches. My conclusion is if there is not a major code change in the new version, then it will likely work, otherwise you may need an entire source change - this is the guide - here. |
@redplane Due to the missing version 86.0.21 on spotify - i see no simple solution here :-( I dont't like to restart the self-build apporach. What do you mean? |
I think it will be better if
|
Is this still related to CefGlue? The way CefGlue is structured, I do not know what benefit that brings. It is a fixed version. May be as a fallback url, incase it fails like in issue #257. But that is a very very rare occurrence.
What is cef_sharp tar file? |
I did an application with Chromely before, everything was fine, but after one or 2 months, i built my application again, Chromely cannot download the Cef binary anymore because they removed the old binary version (version 74 arm). I think it will be better to have a fallback url or any kind of mechanism that developer can specify where to download Cef binary file, he/she can copy Cef file to his/her cdn and point the download link there |
@redplane i think, with "cef_sharp tar file" you mean the cef_binary archive containing the CEF runtime. @mattkol maybe we can "copy" that files for all available platforms and host them on our site or make them available any other way to avoid them missing on spotify if removed there? Also i think an alternative download link should be possible as options parameter, but that has to be the direct file link (platfor specific). |
About the tar file I mentioned before, actually I didn't say Chromely have to include the tar file in its bundle.
For now, I notice Chromely heavily depends on CefSharp cdn hosting, that's why after 2 months I built the project, I got error 404. That requires me to update Chromely, it is very time consuming. |
For now, I'm fixing the issue of missing version 86 on linux-arm for my project to run first. Here what I have changed in version.g.cs
Am I missing anything ? |
Remember what I wrote earlier:?
The easier way I know is to follow the guide I shared earlier - https://github.com/chromelyapps/Chromely/blob/master/src/Chromely/CefGlue/Notes_On_Upgrade.txt Just note that, if you have to debug anything in CefGlue itself, you are doing something wrong. That is my experience. |
Phew, I have found the CefGlue and copy the latest one to the Chromely project.
Still, I hope there will be a fallback url & copy of binary file on Github release to help developer manage their download more easily and don't depend on CEF cdn (even when they delete their distribution) |
Good question. Answer is simple, CefGlue does not publish nuget packages. Originally it was a separate dll, but since it was a dll created and maintained by us, there was no need creating a dependency. The nuget package are still created for those who still want to use it - https://github.com/chromelyapps/CefGlue.NetStandard |
You can also help create a nuget package for v87 and add it to https://github.com/chromelyapps/CefGlue.NetStandard |
@mattkol , I tried to update to version 87 and it worked fine. ` /// Set whether mouse cursor change is disabled. /// public void SetMouseCursorChangeDisabled(bool disabled) { //cef_browser_host_t.set_mouse_cursor_change_disabled(_self, disabled ? 1 : 0); }
` Is it related to my issue ? |
Sorry, I really cannot help here. As I stated earlier, my experience is, if you have to debug CefGlue itself, you are doing something wrong. Also I am not familiar with Raspberry Pi. @FrankPfattheicher may have more input on this. |
@redplane |
@mattkol , I already deleted it because the application failed to compile. |
I don't think this issue should be closed. |
If we are going to do that, it is going to be an enhancement. So it is not an issue per se. @FrankPfattheicher and I know what needs to be done if we are going to pursue it. Personally, I have not seen the viability of that. Last time I checked, I do not think Github will allow you transfer a file of libcef.dll file size (even if compressed) - https://docs.github.com/en/github/managing-large-files/conditions-for-large-files Also we then need to host all CEF binaries for all platforms and all cpu - so we are looking at 8 at least. But I am not ruling anything out. |
@mattkol , @FrankPfattheicher , if you don't want to host every CEF binaries, I think there is no problem. As I mentioned before:
I already gave a solution for this:
I don't think this issue should be closed now because the problem is not resolved yet. |
This is an open source project. There are limitations. If we cannot host CEF binaries on Github then it would require using an external server and service. That has its costs - financial, maintenance and human time dedications. The way to solve such a problem, is not to rely entirely on auto download. If you release a version ensure either the CEF binaries are packaged with it or you download the CEF binaries and keep or you add a functionality that saves the CEF binaries on the user machine. I am afraid, I do not see how this can be helped, but I will let @FrankPfattheicher chime in to see if has some ideas.
This is already available, but has not been updated for a while - https://github.com/chromelyapps/Chromely/blob/master/Documents/cef_binaries_download.md
The interceptor is a good idea. On using an alternate url, I will let @FrankPfattheicher chime in on that. |
Hi,
I'm using chromely for my application, the below are my system information:
Raspberry Pi 4
Raspbian.
Net 5
Chromely 5.1.86
I have built application with
linux-arm
run time.Everything seems to be fine, but when I start the application, browser was opened with message:
CEF binaries download completed with error.
Error message: The remote server returned an error: (404) Not Found.
Please close.
I have tried the url you mentioned here, the url can be downloaded on my Raspberry.
What's wrong am I doing ?
The text was updated successfully, but these errors were encountered: