[RFC][icedtea-web] Plugin does not make JNLP's <information> available when using jnlp_href
Danesh Dadachanji
ddadacha at redhat.com
Tue Jan 24 12:56:39 PST 2012
On 24/01/12 03:13 PM, Deepak Bhole wrote:
> * Danesh Dadachanji<ddadacha at redhat.com> [2012-01-24 14:49]:
>> Updating patch, realized there were some tabs throwing off indentation.
>>
>> Any comments on this?
>>
>
> Assuming you have tested it, OK for 1.2 and HEAD.
>
Yep, just tested 1.2, tested HEAD before posting review. Here are the
changesets:
http://icedtea.classpath.org/hg/icedtea-web/rev/21183f821dd4
http://icedtea.classpath.org/hg/release/icedtea-web-1.2/rev/21183f821dd4
Thanks for reviewing!
Danesh
> Deepak
>
>> Cheers,
>> Danesh
>>
>> On 06/01/12 02:52 PM, Danesh Dadachanji wrote:
>>> Aaand here's the patch.
>>>
>>>
>>> On 06/01/12 02:46 PM, Danesh Dadachanji wrote:
>>>> Hi,
>>>>
>>>> The JNLP file's information elements are not available for use when
>>>> using the plugin through the browser and jnlp_href. For example when
>>>> access dialogs pop up, they try to use PluginBridge.getInformation().
>>>> This is set to return a new (and so, empty) ArrayList rather than the
>>>> contents of the information tag. To test this, use this applet[1] and
>>>> click Open.
>>>>
>>>> I've setup the info instance var in the PluginBridge constructor to
>>>> either be the JNLP file's info or to be a new ArrayList if jnlp_href is
>>>> not being used.
>>>>
>>>> PluginBridge.getInformation() is no longer needed because the
>>>> superclass's method does what we want so I've removed it. There was the
>>>> following comment in the method:
>>>>
>>>> "Should we populate this list with applet attribute tags?"
>>>>
>>>> I left this as is for now because JNLPFile.getInformation's javadoc
>>>> states it only returns the<information> tag's elements. It might cause
>>>> some confusion/inconsistency with the javadoc if we were to store the
>>>> applet's attribute here. If we were to add a
>>>> PluginBridge.getInformation, it would be identical in implementation.
>>>> Apart from this, I don't see the harm in adding the attributes to the
>>>> info - they are visible to the public anyway through ^U! The "name"
>>>> attribute could also be used if there is no<title> so it might be
>>>> useful to do so.
>>>>
>>>> I've also added "(unverified)" to the ends of the Publisher label of
>>>> access dialogs because this can easily be spoofed.
>>>>
>>>> ChangeLog
>>>> +2012-01-06 Danesh Dadachanji<ddadacha at redhat.com>
>>>> +
>>>> + Use the JNLP file's information section for the Name and
>>>> + Publisher labels of access dialogs, if available.
>>>> + * netx/net/sourceforge/jnlp/PluginBridge.java:
>>>> + (PluginBridge): Assigned info variable to JNLP file's information
>>>> + section (if one is used), otherwise to a new, empty ArrayList.
>>>> + (getInformation): Removed method, superclass method
>>>> + should be used instead.
>>>> + * netx/net/sourceforge/jnlp/resources/Messages.properties:
>>>> + Adding SUnverified.
>>>> + * a/netx/net/sourceforge/jnlp/security/AccessWarningPane.java:
>>>> + (addComponents): Append unverified note to the publisher label.
>>>> +
>>>>
>>>> Thoughts/comments? If this is alright, I'd like to push it to HEAD.
>>>>
>>>> Regards,
>>>> Danesh
>>>>
>>>> [1]
>>>> http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/examples/dist/applet_JNLP_API/AppletPage.html
>>>>
>>>>
>
>> diff --git a/netx/net/sourceforge/jnlp/PluginBridge.java b/netx/net/sourceforge/jnlp/PluginBridge.java
>> --- a/netx/net/sourceforge/jnlp/PluginBridge.java
>> +++ b/netx/net/sourceforge/jnlp/PluginBridge.java
>> @@ -60,6 +60,7 @@ public class PluginBridge extends JNLPFi
>> URL jnlp = new URL(codeBase.toExternalForm() + atts.get("jnlp_href"));
>> JNLPFile jnlpFile = new JNLPFile(jnlp, null, false, JNLPRuntime.getDefaultUpdatePolicy(), this.codeBase);
>> Map<String, String> jnlpParams = jnlpFile.getApplet().getParameters();
>> + info = jnlpFile.info;
>>
>> // Change the parameter name to lowercase to follow conventions.
>> for (Map.Entry<String, String> entry : jnlpParams.entrySet()) {
>> @@ -76,6 +77,9 @@ public class PluginBridge extends JNLPFi
>> System.err.println("Unable to get JNLP file at: " + codeBase.toExternalForm()
>> + atts.get("jnlp_href"));
>> }
>> + } else {
>> + // Should we populate this list with applet attribute tags?
>> + info = new ArrayList<InformationDesc>();
>> }
>>
>> // also, see if cache_archive is specified
>> @@ -180,15 +184,6 @@ public class PluginBridge extends JNLPFi
>> return name;
>> }
>>
>> - public InformationDesc getInformation(final Locale locale) {
>> - return new InformationDesc(this, new Locale[] { locale }) {
>> - protected List<Object> getItems(Object key) {
>> - // Should we populate this list with applet attribute tags?
>> - return new ArrayList<Object>();
>> - }
>> - };
>> - }
>> -
>> public ResourcesDesc getResources(final Locale locale, final String os,
>> final String arch) {
>> return new ResourcesDesc(this, new Locale[] { locale }, new String[] { os },
>> diff --git a/netx/net/sourceforge/jnlp/resources/Messages.properties b/netx/net/sourceforge/jnlp/resources/Messages.properties
>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties
>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties
>> @@ -205,6 +205,7 @@ SClipboardWriteAccess=The application ha
>> SPrinterAccess=The application has requested printer access. Do you want to allow this action?
>> SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action?
>> SNoAssociatedCertificate=<no associated certificate>
>> +SUnverified=(unverified)
>> SAlwaysTrustPublisher=Always trust content from this publisher
>> SHttpsUnverified=The website's certificate cannot be verified.
>> SNotAllSignedSummary=Only parts of this application code are signed.
>> diff --git a/netx/net/sourceforge/jnlp/security/AccessWarningPane.java b/netx/net/sourceforge/jnlp/security/AccessWarningPane.java
>> --- a/netx/net/sourceforge/jnlp/security/AccessWarningPane.java
>> +++ b/netx/net/sourceforge/jnlp/security/AccessWarningPane.java
>> @@ -104,7 +104,9 @@ public class AccessWarningPane extends S
>> }
>>
>> try {
>> - publisher = file.getInformation().getVendor() != null ? file.getInformation().getVendor() : R("SNoAssociatedCertificate");
>> + publisher = file.getInformation().getVendor() != null ?
>> + file.getInformation().getVendor() + " " + R("SUnverified") :
>> + R("SNoAssociatedCertificate");
>> } catch (Exception e) {
>> }
>>
>
More information about the distro-pkg-dev
mailing list