Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Silverlight et le mode fullscreen

[new:10/10/2010]Le mode FullScreen de Silverlight est bien pratique mais possède quelques limitations qui peuvent agacer comme la perte du plein écran si l’utilisateur clique sur une autre application. Or Silverlight n’est pas si restrictif, encore faut-il le programmer correctement.

Silverlight et la Sécurité

J’ai mis un “S” majuscule à Sécurité car dans Silverlight, la Sécurité ce n’est pas rien ! Microsoft a vraiment eu une frousse terrible que SL puisse être utilisé pour créer un malware, ce qui aurait ruiner son lancement. De fait, et de façon un peu paranoïaque il faut l’avouer, de nombreuses choses sont interdites sous Silverlight. Je ne vous en dresserai pas la liste, elle est parfois déprimante, tant de puissance bridée, tant d’idées de softs géniaux tuées dans l’œuf lorsqu’on s’aperçoit que tel ou tel petit “détail” n’est pas réalisable.

Silverlight en est a sa version 4 et effectivement aucun malware n’a été écrit. C’est une réussite totale pour les gars qui ont bouclé la sécurité du plugin, rien à dire, mais je reste convaincu que beaucoup de ces limites vont finir par peser si elles ne sont pas assouplies. Une aide à un bon lancement, mais un frein à l’expansion, le dosage devrait être revu au risque de tomber dans le piège de cette alternative…

Bref, parmi les choses évidentes qui pourtant ne passent pas, il y a le mode plein écran (full screen). C’est bête, mais c’est utile le plein écran.

Or, Silverlight propose bien un mode full screen. Mais hélas la saisie y est interdite (encore une raison de Sécurité, justifiée mais bon, à la fin ça agace un peu il faut l’avouer. Toujours cette impression de puissance bridée qui créée la frustration).

Pire, lorsque l’application est en plein écran, malheur à l’utilisateur qui ose cliquer sur une autre application (vérifier un mail qui vient d’arriver par exemple) : Booom ! le bel affichage plein écran se transforme en un petit cadre enchâssé dans le browser. Même l’utilisateur ça l’agace, et pourtant c’est “pour son bien” !

Un compromis qu’on aimerait voir plus souvent…

Ok, il faut faire attention à la sécurité. Mais quand cela coupe les ailes d’un produit fantastique comme Silverlight on ne peut en rester là. Il faut faire des compromis. A ce jour Microsoft en a fait très peu, noyant un peu le poisson avec le mode Out Of Browser (OOB) qui lui permet plus de choses, mais qui, hélas, est vu comme une simple application desktop très bridée par les clients qui, quand ils veulent du Web, ne veulent pas entendre parler de soft à installer… Ca, personne ne semble l’avoir compris dans l’équipe (par ailleurs excellente) de Silverlight. C’est dommage.

Du coup, on se retrouve avec quelques issues de secours mais uniquement valables dans un mode que les clients ne veulent pas… On est bien avancé !

Heureusement, il y a des exceptions : Le fameux mode fullscreen.

Il est en effet possible d’empêcher que le carrosse ne se transforme en citrouille dès que l’utilisateur va cliquer en dehors de l’application.

Comme il s’agit de “Sécurité”, cela va être un ménage à trois : d’un côté Silverlight et son conseil supérieur de la sécurité qui nous offre du bout du clavier un paramètre à modifier, de l’autre le développeur qui devra utiliser ce paramètre, et enfin, le troisième oreiller dans ce lit déjà trop petit : l’utilisateur qui devra valider un dialogue ! Mais au bout du compte on y arrive.

Le code

Je parlerai plus d’astuce que de code, puisqu’il s’agit juste de basculer un paramètre :

   1: Application.Current.Host.Content.FullScreenOptions = 
   2:     System.Windows.Interop.FullScreenOptions.StaysFullScreenWhenUnfocused;

Il va falloir maintenant basculer en mode plein écran (attention “Sécurité” oblige, cela ne peut pas être fait automatiquement, uniquement dans le traitement d’un clic initié par l’utilisateur, certains avaient prévu que l’empreinte génétique de l’utilisateur soit aussi comparée à la liste des utilisateurs autorisés à s’autoriser ce genre de chose, heureusement la technologie ne le permet pas encore ! :-) Ouf !).

Enfin, l’utilisateur voit l’application en plein écran… Quelle lutte déjà. Et en plus cet idiot va cliquer sur sa boite mail pour voir le dernier message qui vient d’arriver…

Que n’a-t-il pas fait là ! Sans notre petite ruse, c’est cuit, fini, l’application Silverlight se rétracte dans son trou comme un escargot effrayé par une feuille de batavia à l’air patibulaire (mais presque)…

Mais heureusement, grâce à la feinte exposée plus haut, l’utilisateur qui voulait juste voir un mail sera arrêté dans son élan par un dialogue aussi moche qu’inquiétant :

Il aura le droit à la version française quand même (normalement)  …

S’il clique sur oui (Yes) il pourra enfin lire son mail sans que Silverlight ne rétrécisse.

arrrghhh, gaspp ! Malheureux ! Il a oublier de cocher la case “se rappeler de ma réponse” (remember my answer). Le prochain coup qu’il voudra cliquer ailleurs il se reprendra à la face le même dialogue.

Les plus courageux qui auront lu le message et qui auront coché la case en question seront enfin tranquilles ! Ils savoureront une application Silverlight plein écran qui ne se transforme pas citrouille si on clique ailleurs (mais qui ne peut pas servir à saisir la moindre chose, Sé-Cu-Ri-Té !).

Ah ah !! Tranquilles ? Qu’ils croient ! car … “Sécurité” oblige, ce choix n’est valable que pour une seule application. Si demain Silverlight était un franc et vrai succès, c’est donc des dizaines de fois que l’utilisateur devra répondre à la même question, pour chaque application (au lieu d’un réglage global par défaut, éventuellement affiné site par site ensuite)…

Soit, pour paraphraser (à l’envers) ce célèbre motto de la Nasa, “Success is not an option” et les gars qui s’occupent de Silverlight sont des paranos doublés de pessimistes, soit ils croient en ce succès mais on zappé les inconvénients que cela posera. Dommage.

Mais certains se coucheront l’âme sereine chez Microsoft : aucun malware n’aura été écrit sous Silverlight. Quitte à ce que le produit n’atteigne jamais les sommets qu’il mérite largement pourtant…

Entre temps, nous avons trouvé un moyen d’éviter que la belle application ne redevienne un petit rectangle perdu dans le web browser. C’est peu, mais c’est énorme, tellement le chemin Sécuritaire pour y arriver aura été pénible.

On a les gloires qu’on se donne, isn’t it ?!

Et malgré l’agacement et les frustrations causées par ces limitations paranoïaques, malgré des choix sécuritaires trop envahissants, Silverlight est l’une des plus belle technologies de l’instant, c’est ça qui énerve justement, et malgré tout, on relève le défit, et on …

Stay Tuned !

 

blog comments powered by Disqus