Search code examples
c#angularjswpfchromium-embeddedcefsharp

CEFSharp input[color] not showing dialog


This title says it all. I'm running CEFSharp wrapped in a WPF form. One my page I have an input[color] and while everything works in Chrome, when I access this page with my CEF WPF form it won't load the color picker dialog.

If I bind to the click event on the input[color] that will execute, but if I attach the same code to the input, or change events they don't execute. I'm binding with an AngularJS directive, as follows: (Note: this has been stripped down, $timeout and local.scope will be used hence their presence)

    app.directive('myColorPicker', ['$timeout', function($timeout){
    return {
        restrict: "AE",
        replace: true,
        scope: {
            palette: '='
        },
        link: function(scope, elem) {
            elem.on('input', function(){
                var newColor = this.value;
                $(this).css({
                    "background-color":newColor,
                    "color":newColor
                });
            });
        }
    }
}])

Within WPF I'm setting the CEFSharp settings as follows:

var cefSettings = new CefSettings();
cefSettings.SetOffScreenRenderingBestPerformanceArgs();
cefSettings.CachePath = tempPath;
cefSettings.LogFile = tempPath + "chromium.log";
cefSettings.LogSeverity = LogSeverity.Default;
cefSettings.CefCommandLineArgs.Add("num-raster-threads", "4");
cefSettings.CefCommandLineArgs.Add("enable-experimental-canvas-features", "1");
Cef.Initialize(cefSettings, shutdownOnProcessExit: true, performDependencyCheck: true);

(Lemme know if you need more on this).

So my questions are: Is there a setting that will allow Chromium to load the color picker dialog that I'm unaware of?

Or is the fact that it's wrapped in WPF preventing it from making a call out to windows to load the dialog?

Or is it something else?


Solution

  • Upon further investigation this is an open issue in the Chromium Embedded Framework and as such it isn't possible to open the Color Picker dialog. I'll use a jquery plugin instead.

    Further details on the open issue here: https://bitbucket.org/chromiumembedded/cef/issues/899