Environment: Windows 10, WinForm (.Net 4.7.2) x64 only, CefSharp 71.0.2.0
We need support for playing MP4 in our product (we have a license) and we are attempting to recompile CEF with proprietary codecs enabled.
We're using the instructions from:
https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md#markdown-header-windows-setup
Our create.bat file looks like:
set CEF_USE_GN=1
set GN_DEFINES=is_win_fastlink=true proprietary_codecs=true ffmpeg_branding=Chrome
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
call cef_create_projects.bat
Our update.bat file looks like
set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=C:\code\chromium_git --depot-tools-dir=C:\code\depot_tools --no-distrib --no-build --branch=3578
We are trying to specifically target build 3578 to match the build that comes with CEFSharp. We also enabled proprietary codec using the flag: proprietary_codecs=true
After about 2 hours and no errors the build completes successfully. When we run our page using cefclient.exe from the output build everything works as expected, the video plays correctly.
We copy the following files from the output build folder to our .Net application replacing the files packaged with CEFSharp:
cef.pak
cef_100_percent.pak
cef_200_percent.pak
cef_extensions.pak
chrome_elf.dll
d3dcompiler_47.dll
devtools_resources.pak
icudtl.dat
libcef.dll
libEGL.dll
libGLESv2.dll
natives_blob.bin
snapshot_blob.bin
v8_context_snapshot.bin
\locales\*.*
\swiftshader\libEGL.dll
\swiftshader\libGLESv2.dll
When running our app, the app terminates immediately and this is written to the debug.log file:
[0326/094610.429:FATAL:cookie_manager_impl.cc(620)] Check failed: false. context not valid
Backtrace:
cef_string_utf16_to_upper [0x00007FFD2B53E1E5+1713061]
cef_string_utf16_to_upper [0x00007FFD2B53D44D+1709581]
cef_string_utf16_to_upper [0x00007FFD2B5765D5+1943445]
cef_zip_reader_create [0x00007FFD2B3107B8+159661640]
cef_cookie_manager_get_global_manager [0x00007FFD219B0436+54]
CefCookieManager::GetGlobalManager [0x00007FFD7322879E+94]
(No symbol) [0x00007FFD4E1C07DE]
[0326/094721.035:FATAL:cookie_manager_impl.cc(620)] Check failed: false. context not valid
I was able to see that 71.0.2.0 uses CEF 3.3578.1870.gc974488 / Chromium 71.0.3578.98 from:
https://github.com/cefsharp/CefSharp/commit/7d24861e7af79fc4721eb498bb8417b5aa6cad97
When we run cefclient.exe from our build and navigate to chrome://about it displays:
CEF 3.3578.1870.gc974488
Chromium 71.0.3578.98
Which matches the CEFSharp release notes page.
Any suggestions would be greatly appreciated!
Related
My desktop file is:
[Desktop Entry]
Name=Heimer
GenericName=Mind map application
Comment=Mind map application
Exec=heimer
Icon=heimer
Type=Application
Categories=Education;
StartupNotify=true
My snapcraft.yaml is:
name: heimer
version: '1.1.0'
summary: Heimer is a simple cross-platform mind map tool.
description: |
Heimer is a simple cross-platform mind map creation tool.
Emphasis on easy diagram creation, simplicity, and speed.
grade: stable
confinement: strict
icon: ../../../data/icons/heimer.png
apps:
heimer:
command: desktop-launch heimer
desktop: usr/share/applications/heimer.desktop
plugs: [home, x11, wayland]
parts:
gnu-heimer:
source: ../../../
plugin: cmake
configflags:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=/usr
build-packages:
- qtbase5-dev
- qttools5-dev
- qttools5-dev-tools
stage-packages:
- libqt5xml5
after: [desktop-qt5]
CMake installs the application icon to:
# Install icons
install(FILES data/icons/heimer.png DESTINATION share/pixmaps)
install(FILES data/icons/heimer.png DESTINATION share/icons/hicolor/64x64/apps)
Desktop file is installed to:
# Install .desktop files
install(FILES ${CMAKE_BINARY_DIR}/heimer.desktop DESTINATION share/applications)
I don't understand what the problem is. After installing the snap my application always shows the default system icon in the launcher (Ubuntu 18.04). No warning or anything when creating the package or when running it.
Note: This same setup works for Debian packaging. My Debian package uses exactly the same install locations and the icon works just fine in that case.
Currently, Snapcraft does no processing regarding the desktop entries' icons (thus the system can't find the icons as the icons specified in the desktop entries aren't in the icon search directories) and the packager have to manually patch the Icon value to $SNAP/path/to/the/icon.{png,svg} to the .desktop files specified by the apps._app_name_.desktop keys.
Here’s the
GNU Sed script I've been using for this purpose: https://github.com/Lin-Buo-Ren/snapcrafters-template-plus/blob/5bb7778/snap/utilities/patch-desktop-entries.sed
Utility script for patching: https://github.com/Lin-Buo-Ren/snapcrafters-template-plus/blob/5bb7778/snap/utilities/patch-desktop-entries.bash
Location in-recipe that calls the utility script: https://github.com/Lin-Buo-Ren/snapcrafters-template-plus/blob/5bb7778/snap/snapcraft.yaml#L137-L144
I've filed a proposal to improve this situation at: Proposal: The apps.<app-name>.icon Key - snapcraft - snapcraft.io
Following these steps the icon appears in the desktop (Snap apps)
Go to var/lib/snapd/desktop/application
Copy the .desktop (vlc_vlc.desktop)
Paste it in Desktop
right click and chose allow lunching
I'm trying to create snap package of a Qt/QML application, the application is packaged well, when I try to run it I get /snap/swipe-app/x2/bin/qt5-launch: 74: exec: application: not found error.
here's my snapcraft.yaml file
name: swipe-app # you probably want to 'snapcraft register <name>'
version: '0.1' # just for humans, typically '1.2+git' or '1.3.2'
summary: Single-line elevator pitch for your amazing snap # 79 char long summary
description: description
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
apps:
swipe-app:
command: qt5-launch application
plugs:
- unity7
- home
parts:
application:
# See 'snapcraft plugins'
plugin: qmake
project-files: ["snap.pro"]
source: .
build-packages:
- qtbase5-dev
stage-packages:
# Here for the plugins-- they're not linked in automatically.
- libqt5gui5
after: [qt5conf] # A wiki part
As you have told the launch script that your program is called application then it will try to execute application from the current working directory when you run your snap. There are two things to note here:
The working directory is preserved from the terminal outside the snap context. For example if you are in your home directory /home/your-user then the working directory for swipe-app will also be /home/your-user.
As the working directory above is your home directory then commands without any anchor, such as application, will try to execute in your home directory. So in your example the launch script will attempt to run the command equivalent of /home/your-user/application.
You can fix this by either ensuring that the launch script executes a cd to change the working directory, e.g. cd $SNAP; or anchor your command by adding an achor, e.g. command: qt5-launch $SNAP/application.
Another thing you might need to check is that your qmake build actually outputs a binary called application. If you have not set TARGET= in your snap.pro project file then the binary will default to being called snap, not application. The line should read TARGET=application to make a binary called application: (ref: https://doc.qt.io/qt-5/qmake-variable-reference.html#target).
I have created a desktop app using brackets-shell version sprint-38. I have done the following changes.
config.h -changed APP_NAME from 'Brackets' to 'MyBrackets'.
appshell_config.gypi - changed appname from 'Brackets' to 'MyBrackets'.
Gruntfile - changed build.name from 'Brackets' to 'MyBrackets'.
After building brackets-shell with these changes i used to get 'MyBrackets.exe'
inside brackets-shell/release folder.
while executing the exe one file chooser popup comes, and node & MyBrackets.exe processes will start in the background.
his works fine with Sprint38,But after migrating to brackets-shell tag version release-1.3 or master, this dose not work. The file chooser is not coming as well as no node process starts.
Is any thing i am missing with the latest release ?
Bingo!!!
I got the problem. actually xcopy command is not generating properly in MyBrackets.vscsproj file. and this is well know problem i think so. To fix this problem one fix-msvc.sh file has written.
Since brackets.vscsproj name is hardcoded here so changes is not reflecting in my MyBrackets.vscsproj
I've got my flex, php & zend project working fine on localhost but when I try to move it to production I get the following error:
Class "testService" does not exist: Plugin by name 'testService' was not found in the registry; used
paths:
: /home/myNewFolder/services/
#0 /home/ZendFramework/library/Zend/Amf/Server.php(550): Zend_Amf_Server->_dispatch('paged', Array,
'testService')
#1 /home/ZendFramework/library/Zend/Amf/Server.php(626): Zend_Amf_Server-
>_handle(Object(Zend_Amf_Request_Http))
#2 /home/myNewFolder/gateway.php(69): Zend_Amf_Server->handle()
#3 {main}
I've got my amf_config file as follows:
[zend]
webroot =/home/myNewFolder
zend_path =/home/ZendFramework/library
[zendamf]
amf.production = false
amf.directories[]=services
my .swf & services folder are located in "myNewFolder", which is located under the root of my directory.
I am using Zend version 1.9.4, Flex SDK 4.1. My localhost is windows & production host is Linux
two potential problems, the home on the server is not the path you think. Print home to screen to see what is there. Second, always, always use small letters. Too many problems arise when you write myApp, MyApp or Myapp. just write myapp, and do not worry again
Edit: wait a second, your services path is wrong. I assume it is under New Folder. Your amf directories should change to amf.directories[]=./services
Remember that Unix is case sensitive, and Windows doesn't so check the case, your file should be named testService.php, or TestService.php.
I use Flex for a short time, use a bit pushed to my client for a solution-oriented monitoring.
Background:
Platform:
Windows XP
Eclipse 3.4 Ganymede
Flex Builder 3.0.2 Licenced
JDK 1.6_20
Firefox 3.6
Flash Player 9 (Debug version)
Server: OSGI (Eclipse equinox) an
instance of jetty service allows HTTP
requests
Requirements:
Make debugger in ActionScript by putting "BreakPoint" to assess the contents of variables.
Problem:
The code does not stop at breakpoint, worse, if a breakpoint is enabled, the module flex does not start.
Actions:
Reinstall all the dev environment (Eclipse, Flex Builder, Flash Player): KO
Removing repo maven modules and complete rebuilds: KO
Restarting Windows: °) KO
Logs:
this is what the log contains just after launching the platform (modules) in debug mode.
java.lang.NullPointerException
Has com.adobe.flexbuilder.debug.breakpoints.FlexLineBreakpoint.findSourceFiles (FlexLineBreakpoint.java: 388)
Has com.adobe.flexbuilder.debug.breakpoints.FlexLineBreakpoint.instantiate (FlexLineBreakpoint.java: 442)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget.breakpointAdded (FlexDebugTarget.java: 981)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget $ FdbThread.installDeferredBreakpoints (FlexDebugTarget.java: 631)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget $ FdbThread.advanceStateMachine (FlexDebugTarget.java: 662)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget FdbThread.access $ $ 6 (FlexDebugTarget.java: 636)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget $ 1.run (FlexDebugTarget.java: 738)
Has org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java: 37)
Has org.eclipse.core.runtime.Platform.run (Platform.java: 880)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget $ FdbThread.eventLoop (FlexDebugTarget.java: 718)
Has com.adobe.flexbuilder.debug.model.FlexDebugTarget $ FdbThread.run (FlexDebugTarget.java: 779)
at java.lang.Thread.run (Thread.java: 619)
The cause described in the comment by the author of this question (user361222) is correct.
I have 2 additional tips:
after you change the container swf to debug version, you should clear IE caches. I meet problem after I change container swf to debug version, I still cannot debug, but after I clear browser cache, it works.
You don't have to use "nemo440" to see it the swf is debug version. You can right click the flash GUI of your container swf(should before the child swf loading), if the debug menu in the context menu is enabled, the swf is debug version.
If before the child swf load the "debug" menu is disable, but after the child swf load the debug menu is enable, then you must have the issue.
You could try updating your debug player to see if that has an affect.
http://www.adobe.com/support/flashplayer/downloads.html
Where does that log come from? Is it an eclipse log? Or something you see on the server? Is Eclipse crashing?
When you use the 'term' Module are you referring to Flex Modules ( http://livedocs.adobe.com/flex/3/langref/mx/modules/Module.html ) or are you using the term more generically?
If using Modules; have you tried to test the module separate from the rest of the application? Create an application that is the Module instead of using the ModuleLoader. Does that have an affect?
Which version of the Flex SDK are you using? Can you upgrade to 3.5 or 4.0 ?
A work around is to do following :
Export preferences and exit Eclipse
Delete .metadata folder
Launch Eclipse and recreate the workspace
Import preferences.
It works all the time.
Be sure to use the 32bits version of Firefox...
Got the same issue and i resolved it by installing win32 version of Firefox...