[rfc][icedtea-web] headless dialogues -tech preview

Andrew Azores aazores at redhat.com
Wed Jun 17 13:44:56 UTC 2015


On 17/06/15 08:47 AM, Jiri Vanek wrote:
> On 06/15/2015 06:01 PM, Andrew Azores wrote:
>> On 15/06/15 11:53 AM, Jiri Vanek wrote:
>>> On 06/15/2015 05:50 PM, Andrew Azores wrote:
>>>> On 15/06/15 11:48 AM, Jiri Vanek wrote:
>>>>> On 06/15/2015 05:36 PM, Andrew Azores wrote:
>>>>>> On 15/06/15 11:21 AM, Jiri Vanek wrote:
>>>>>>> On 06/15/2015 04:59 PM, Andrew Azores wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> On 14/06/15 02:04 PM, Jiri Vanek wrote:
>>>>>>>>> Hi!
>>>>> ...
>>>>>>> and - most important - headless ITW will not be run by average 
>>>>>>> user :)
>>>>>>
>>>>>> I really think it's worthwhile to take the "better message" 
>>>>>> approach rather than directly
>>>>>> presenting
>>>>>> the user with a stacktrace. If you wish then you can proceed how 
>>>>>> you are now and I will work on
>>>>>> improving this later.
>>>>>
>>>>> I do not promise I will improve it in some close future.But I 
>>>>> currently don't have simple solution
>>>>> for (definitely best) "help+suggested values, pass/better message"
>>>>>
>>>>> If you came up with anything, please  do! If I wil comep with 
>>>>> anything. I will definitively fix!
>>>>>>
>>>>>>>>
>>>>>>>>> Type 'exit' to terminate ITW one f below values:
>>>>>> ...
>>>>>>>> blocker for this patch.
>>>>>>>
>>>>>>> This is not bug, its an feature!-)
>>>>>>>
>>>>>>> You can see how this text is composed? Also do you realize 
>>>>>>> target audience of this patch?  Also
>>>>>>> have you seen big comment " //this is default SecurityDialog 
>>>>>>> "toString". All extending panels are
>>>>>>> recommanded to override " ?
>>>>>>>
>>>>>>> So this method is providing some *good* default text. (in v2 the 
>>>>>>> removal of html tags was much
>>>>>>> improved.
>>>>>>
>>>>>> Yes, the HTML tag removal does look much better now, although I'd 
>>>>>> still personally like to see it
>>>>>> cleaned up further. Still, this is better now. But I do think 
>>>>>> that duplicating everything is not
>>>>>> very nice. Sure the target audience is not the average end user 
>>>>>> but "YesYes\nNoNo" is going to
>>>>>> give
>>>>>> the more advanced user target audience the impression that this 
>>>>>> feature wasn't really polished
>>>>>> before release, no?
>>>>>
>>>>> Does it need to be? The headless dialogues have to be making 
>>>>> working again, or -headless have to
>>>>> be dropped. As I'm wring below. Feel free to override my stub 
>>>>> method below with proper texts. I'm
>>>>> not going to do so. The changeset is well prepared for making it 
>>>>> nicer.
>>>>>>
>>>>>>>
>>>>>>> The providing of texts for exactly those messages will be work 
>>>>>>> for another changesets. MAybe for
>>>>>>> another person...
>>>>>>>
>>>>>>> Well - the headless dialogues are now completly broken, so 
>>>>>>> *anything* is better then current
>>>>>>> state.
>>>>>>
>>>>>> True, but if something's worth doing then it's worth doing 
>>>>>> correctly, right?
>>>>>
>>>>> Form point of this patch (which adds logic) it is really small 
>>>>> nitpick to provide better texts.
>>>>> Feel free to add them on your own as another changeset...
>>>>>
>>>>> Or wait if somebody will help with it.
>>>>>
>>>>> Some of ITW's less used partsare in terrible shape. I need to make 
>>>>> tehm work, so they canbe
>>>>> maintained without confusions. Once those are done. I will be 
>>>>> finally free to quit.
>>>>>
>>>>> So I do not wont to provide cool headless dialogues. I wont to 
>>>>> remove duplicate code, and make ti
>>>>> work.
>>>>>>
>>>>>>>>
>>>>>>>> Also, here's another bug for you:
>>>>>>>>
>>>>>>>>> Type 'exit' to terminate ITW one f below values:
>>>>>>>>> [YES, NO]
>>>>>>>>> netx: Initialization Error: Could not initialize applet. (Your 
>>>>>>>>> Extended applets security is at
>>>>>>>
>>>>>>> yes I'm aware of it. I fixed it in v2. Bad typo on last second 
>>>>>>> before posting :(
>>>>>>
>>>>>> "Type exit to terminate ITW one of below values" still doesn't 
>>>>>> quite make sense.
>>>>>>
>>>>>> "Type exit to terminate ITW, or type one of the below values" 
>>>>>> would be a fixed-up version of the
>>>>>> same message you have now.
>>>>>
>>>>>
>>>>> Type "exit" to terminate ITW, or type one of the below values
>>>>>
>>>>> Sure! Thanx!
>>>>>
>>>>>>
>>>>>>>
>>>>>>>>> 'high' and this application is missing the 'permissions' 
>>>>>>>>> attribute in manifest. And you have
>>>>>>>>> refused to run it.)
>>>>>>>>> netx: Initialization Error: Could not initialize applet. (Your 
>>>>>>>>> Extended applets security is at
>>>>>>>>> 'high' and this application is missing the 'permissions' 
>>>>>>>>> attribute in manifest. And you have
>>>>>>>>> refused to run it.)
>>>>>>>>> net.sourceforge.jnlp.LaunchException: Fatal: Initialization 
>>>>>>>>> Error: Could not initialize applet.
>>>>>>>>> For more information click "more information button".
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:764)
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.Launcher.launchApplet(Launcher.java:653)
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:939)
>>>>>>>>> Caused by: net.sourceforge.jnlp.LaunchException: Your Extended 
>>>>>>>>> applets security is at 'high'
>>>>>>>>> and
>>>>>>>>> this application is missing the 'permissions' attribute in 
>>>>>>>>> manifest. And you have refused to
>>>>>>>>> run
>>>>>>>>> it.
>>>>>>>>>     at
>>>>>>>>> net.sourceforge.jnlp.runtime.ManifestAttributesChecker.checkPermissionsAttribute(ManifestAttributesChecker.java:279) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     at
>>>>>>>>> net.sourceforge.jnlp.runtime.ManifestAttributesChecker.checkAll(ManifestAttributesChecker.java:114) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     at
>>>>>>>>> net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:777) 
>>>>>>>>>
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:285)
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.runtime.JNLPClassLoader.createInstance(JNLPClassLoader.java:357)
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:429)
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:403)
>>>>>>>>>     at 
>>>>>>>>> net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:729)
>>>>>>>>>     ... 2 more
>>>>>>>>
>>>>>>>> I typed "Control-D"/EOF character for this. At this point it 
>>>>>>>> seems ITW is hanging.
>>>>>>>>
>>>>>>>
>>>>>>> Atatched v2 again.
>>>>>>
>>>>>> EOF char for input still hangs it.
>>>>>
>>>>> When? What? how? How may I reproduce it?
>>>>
>>>> Wait for the "type one of the below values" prompt and then press 
>>>> Control-D.
>>>
>>> Oh Yah!
>>>
>>> Nice catch:) The "if s == null" is missing.
>>>
>>> Do you agree on  return defaultNEgativeAnswer and unlock?
>>
>> Sounds about right. To me, Ctrl-D in a "shell" sort of program is 
>> synonymous with an exit command,
>> but using negative answer here sounds fine, too.
>>
>
> So there is version III. It still tech preview, because:
>  - it contains  trustAll/none hunkk from JNLPClaslaoder [1]
> and
>  - contains fix to that ctrl+d you spotted above [0]
>
> But it should have fixed all the issues (even the "help+suggested 
> values, pass/better message" and better default generated message!) 
> you brought up.
> I'm really happy that the patch is so small only 200 lines. Rest are 
> small refatroings.
> And in addition to v2 it have support for remebering. Both "jsut for 
> record" and "pernament". And it supports headless keystore password 
> too...
>
>
> [0]  All "Launcher" related hunks
> It appeared, that the EFO was handeld properly since 
> beginning,however, for some reason, JnlpBoot have been calling
> -            Launcher launcher = new Launcher(false);
> instead of
> +            Launcher launcher = new Launcher(true);
>
> According tojavadochere:
>    * @param exitOnFailure Exit if there is an error (usually default, 
> but false when being used from the plugin)
>
> After digging in code I have not found an reason why false should be 
> passed to constructor here...
> I changed it, tested and it seems ok.
> Also, it also fixed issue, when typying NO was not terminating 
> correctly, but it did not cleared out, why *clicking* on NO *did* 
> terminatd correctly...
>
> Strange....
>
>
> [1]
> diff -r 8430c4b53e40 
> netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Jun 
> 16 17:29:17 2015 +0200
> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Jun 
> 17 14:27:31 2015 +0200
> @@ -1059,16 +1059,6 @@
>       * @throws LaunchException if the user does not approve every 
> dialog prompt.
>       */
>      private void checkTrustWithUser() throws LaunchException {
> -        if (JNLPRuntime.isTrustNone()) {
> -            if (!securityDelegate.getRunInSandbox()) {
> -                setRunInSandbox();
> -            }
> -            return;
> -        }
> -        if (JNLPRuntime.isTrustAll() || 
> securityDelegate.getRunInSandbox()) {
> -            return;
> -        }
> -
>          if (getSigningState() == SigningState.FULL && 
> jcv.isFullySigned() && !jcv.getAlreadyTrustPublisher()) {
>              jcv.checkTrustWithUser(securityDelegate, file);
>          }
>
> Will go in as part of "[rfc][icedtea-web] mov repeated 
> trusAll/none/shouldPromt/isHeadless to one palce"

Was V3 supposed to be attached with this mail?

-- 
Thanks,

Andrew Azores



More information about the distro-pkg-dev mailing list