Bug 482326 - Plugins embedded in an iframe need a title
Summary: Plugins embedded in an iframe need a title
Status: RESOLVED FIXED
Alias: None
Product: Orion (Archived)
Classification: ECD
Component: Client (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 11.0   Edit
Assignee: Carolyn MacLeod CLA
QA Contact:
URL:
Whiteboard:
Keywords: accessibility
Depends on:
Blocks:
 
Reported: 2015-11-16 23:34 EST by Carolyn MacLeod CLA
Modified: 2016-01-28 13:54 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carolyn MacLeod CLA 2015-11-16 23:34:00 EST
Orion plugins that are embedded html in an iframe need to have a title.
Many (most?) of them already have a <title> in the Plugin.html, but there are some that don't.

It is possible that a third party plugin may not have one.

We should add a <title> element if there isn't one already.
Comment 1 Carolyn MacLeod CLA 2015-11-16 23:39:33 EST
The "name" field that is passed in to the PluginProvider constructor is (usually) the same as the plugin title.

So the attached patch simply uses the "name" as the title text if there isn't one already.
Comment 2 Eclipse Genie CLA 2015-11-17 10:16:33 EST
New Gerrit change created: https://git.eclipse.org/r/60619
Comment 3 Carolyn MacLeod CLA 2015-11-17 10:27:19 EST
Looking at this bug brought up a few questions:
1) Is the "name" supposed to be the same as the title? (It is usually the same, but some plugins have slightly different values for name and title).
2) If the name and title are supposed to be the same, then why the duplication? Perhaps plugins should just supply the name (if they have both .js and .html)?
3) Note that most (but not all) of the plugin names (and all of the titles) are not NLS'ed... shouldn't they be? (This is another argument for only supplying a name, because it can be NLS'ed more easily).
4) Same with "description" - most descriptions are not NLS'ed... shouldn't they be?
Comment 4 Carolyn MacLeod CLA 2015-11-17 10:37:19 EST
For reference, here's a list of all the plugins in orion.client and their title; name, version, and description:

cFDeployPlugin.html
cFDeployPlugin.js
name: "Cloud Foundry Deploy",
version: "1.0",
description: "This plug-in integrates with Cloud Foundry."

cFPlugin.html
cFPlugin.js
name: "Cloud Foundry",
version: "1.0",
description: messages["thisPluginIntegratesWithCloud"]

genericDeploymentWizardPlugin.html

gitPlugin.html
gitPlugin.js
name: "Orion Git Support",
version: "1.0",
description: "This plug-in provides Git Support to the Orion File Service.",

helpPlugin.html
<title>Help Plugin</title>
helpPlugin.js
name: "Help Plugin", //$NON-NLS-0$
version: "1.0", //$NON-NLS-0$
description: "Help plugin that contributes Orion's Help content" //$NON-NLS-0$

javascriptPlugin.html
<title>Orion JavaScript Support</title>
javascriptPlugin.js
name: javascriptMessages['pluginName'], //$NON-NLS-1$
version: "1.0", //$NON-NLS-1$
description: javascriptMessages['pluginDescription'] //$NON-NLS-1$

imageViewerPlugin.html
<title>Image Viewer</title>
imageViewerPlugin.js
name: "Orion Image Viewer Plugin",
version: "1.0", //$NON-NLS-0$
description: "This plug-in provides a viewer for image files."

jsonEditorPlugin.html
<title>JSON Editor</title>
jsonEditorPlugin.js
name: "Orion JSON Editor Plugin",
version: "1.0", //$NON-NLS-0$
description: "This plug-in provides an editor for JSON files."

webEditingPlugin.html
<title>Web Editing Plugin</title>
webEditingPlugin.js
name: "Orion Web Editing Plugin",
version: "1.0",
description: "This plugin provides editor link support for the navigator."

embeddedToolingPlugin.html
<title>Orion JavaScript Support</title>

javascriptPlugin.html
<title>Orion JavaScript Support</title>

webToolsPlugin.html
<title>Orion web tools Support</title>

asyncUpperPlugin.html

authenticationPlugin.html
authenticationPlugin.js
name: "Orion User Authentication",
version: "1.0",
description: "This plugin provides a user authentication service to support user verification and logout."

commentPlugin.html

delimiterPlugin.html
delimiterPlugin.js
name: "Orion Line Delimiter Converter",
version: "1.0",
description: "This plugin provides a editor commands to convert line delimiters to DOS or UNIX."

embeddedToolingPlugin.html
embeddedToolingPlugin.js
name: "Pluggable editor tooling support",
version: "1.0",
description: "This plugin provides the core language tooling support for the Orion pluggable editor."

fileClientPlugin.html
fileClientPlugin.js
name: "Orion File Service",
version: "1.0",
description: "This plugin provides file access to a user's workspace.",

GerritFilePlugin.html
GerritFilePlugin.js
name: "Gerrit File Plugin",
version: "1.0",
description: "Gerrit File Plugin"

GitHubFilePlugin.html
GitHubFilePlugin.js
name: "GitHub File Plugin",
version: "1.0",
description: "GitHub File Plugin"

googleAnalyticsPlugin.html
googleAnalyticsPlugin.js
name: "Google Analytics Plugin",
version: "1.0",
description: "Google Analytics Plugin"

HTML5LocalFilePlugin.html

jslintPlugin.html
<title>JSLint plugin</title>
jslintPlugin.js
name: "Orion JSLint Service",
version: "1.0",
description: "This plugin provides JSLint functionality for validating JSON."

arduinoPlugin.html
<title>Orion Arduino Support</title>
arduinoPlugin.js
name: "Orion Arduino Tool Support",
version: "1.0",
description: "This plugin provides Arduino tools support for Orion."

cPlugin.html
<title>Orion C Support</title>
cPlugin.js
name: "Orion C Tool Support",
version: "1.0",
description: "This plugin provides C tools support for Orion."

cppPlugin.html
<title>Orion C++ Support</title>
cppPlugin.js
name: "Orion C++ Tool Support",
version: "1.0",
description: "This plugin provides C++ tools support for Orion."

csharpPlugin.html
<title>Orion C# Support</title>
csharpPlugin.js
name: "Orion C# Tool Support",
version: "1.0",
description: "This plugin provides C# tools support for Orion."

dockerPlugin.html
<title>Orion Editor Docker Support</title>
dockerPlugin.js
name: "Orion Editor Docker Tool Support",
version: "1.0",
description: "This plugin provides Docker tools support for the Orion editor."

erlangPlugin.html
<title>Orion Erlang Support</title>
erlangPlugin.js
name: "Orion Erlang Tool Support",
version: "1.0",
description: "This plugin provides Erlang tools support for Orion."

gitFilePlugin.html
<title>Orion Git File Support</title>
gitFilePlugin.js
name: "Orion Git File Support",
version: "1.0",
description: "This plugin provides Git file syntax highlighting for Orion."

goPlugin.html
<title>Orion Go Support</title>
goPlugin.js
name: "Orion Go Language Tool Support",
version: "1.0",
description: "This plugin provides Go language tools support for Orion."

hamlPlugin.html
<title>Orion Haml Support</title>
hamlPlugin.js
name: "Orion Haml Tool Support",
version: "1.0",
description: "This plugin provides Haml tools support for Orion."

jadePlugin.html
<title>Orion Jade Support</title>
jadePlugin.js
name: "Orion Jade Tool Support",
version: "1.0",
description: "This plugin provides Jade tools support for Orion."

javaPlugin.html
<title>Orion Java Support</title>
javaPlugin.js
name: "Orion Java Tool Support",
version: "1.0",
description: "This plugin provides Java tools support for Orion."

launchPlugin.html
<title>Orion Launch File Support</title>
launchPlugin.js
name: "Orion Launch File Tool Support",
version: "1.0",
description: "This plugin provides tools support for Orion Launch files."

luaPlugin.html
<title>Orion Lua Support</title>
luaPlugin.js
name: "Orion Lua Tool Support",
version: "1.0",
description: "This plugin provides Lua tools support for Orion."

markdownPlugin.html
<title>Orion Extended Markdown Support</title>
markdownPlugin.js
name: "Orion Extended Markdown Language Tool Support",
version: "1.0",
description: "This plugin provides extended Markdown language tools support for Orion."

objectiveCPlugin.html
<title>Orion Objective-C Support</title>
objectiveCPlugin.js
name: "Orion Objective-C Tool Support",
version: "1.0",
description: "This plugin provides Objective-C tools support for Orion."

phpPlugin.html
<title>Orion PHP Support</title>
phpPlugin.js
name: "Orion PHP Tool Support",
version: "1.0",
description: "This plugin provides PHP tools support for Orion."

pythonPlugin.html
<title>Orion Python Support</title>
pythonPlugin.js
name: "Orion Python Tool Support",
version: "1.0",
description: "This plugin provides Python tools support for Orion."

rubyPlugin.html
<title>Orion Ruby Support</title>
rubyPlugin.js
name: "Orion Ruby Tool Support",
version: "1.0",
description: "This plugin provides Ruby tools support for Orion."

smartyPlugin.html
<title>Orion Smarty Support</title>
smartyPlugin.js
name: "Orion Smarty Tool Support",
version: "1.0",
description: "This plugin provides Smarty tools support for Orion."

swiftPlugin.html
<title>Orion Swift Support</title>
swiftPlugin.js
name: "Orion Swift Tool Support",
version: "1.0",
description: "This plugin provides Swift tools support for Orion."

vbPlugin.html
<title>Orion VB.NET Support</title>
vbPlugin.js
name: "Orion VB.NET Tool Support",
version: "1.0",
description: "This plugin provides VB.NET tools support for Orion."

xmlPlugin.html
<title>Orion XML Support</title>
xmlPlugin.js
name: "Orion XML Tool Support",
version: "1.0",
description: "This plugin provides XML tools support for Orion."

xqueryPlugin.html
<title>Orion XQuery Support</title>
xqueryPlugin.js
name: "Orion XQuery Tool Support",
version: "1.0",
description: "This plugin provides XQuery tools support for Orion."

yamlPlugin.html
<title>Orion YAML Support</title>
yamlPlugin.js
name: "Orion YAML Tool Support",
version: "1.0",
description: "This plugin provides YAML tools support for Orion."

languageToolsPlugin.html
<title>Orion Languages Tool Support</title>
languageToolsPlugin.js
name: "Orion Languages Tool Support",
version: "1.0",
description: "This plugin provides tooling for languages that are not included in other core Orion plugins."

lowerPlugin.html

orionPlugin.html
orionPlugin.js
name: "Orion Core Support",
version: "1.0",
description: "This plug-in provides the core Orion support.",

pageLinksPlugin.html
<title>Page Links Plugin</title>
pageLinksPlugin.js
name: "Orion Page Links",
version: "1.0",
description: "This plugin provides the top-level page links for Orion."

preferencesPlugin.html
preferencesPlugin.js
name: "Orion Preferences",
version: "1.0",
description: "This plugin provides access to user preferences.",

sampleCommandsPlugin.html

sampleFilePlugin.html

editorDelegatedPlugin.html

sitePlugin.html
sitePlugin.js
name: "Orion Site Service",
version: "1.0",
description: "This plugin provides virtual site support for hosting client web applications from your Orion workspace.",

taskPlugin.html
taskPlugin.js
name: "Orion Task Management Service",
version: "1.0",
description: "This plugin provides access to the tasks a user is currently running or ran recently, and provides management of those tasks.",

toRGBPlugin.html

upperPlugin.html

webdavFilePlugin.html

webEditingPlugin.html
<title>Web Editing Plugin</title>
webEditingPlugin.js
name: "Orion Web Editing Plugin",
version: "1.0",
description: "This plugin provides editor link support for the navigator."

xhrPlugin.html

shellLogProviderPlugin.html
<title>Shell Log Provider Plugin</title>
shellLogProviderPlugin.js
name: "Orion Log Provider Service",
version: "1.0",
description: "This plugin provides shell access to Orion log service."

shellPagePlugin.html
<title>Shell Page Plugin</title>
shellPagePlugin.js
name: "Orion Shell Page Service",
version: "1.0",
description: "This plugin integrates access to Orion's Shell page into other Orion pages."

shellPlugin.html

userservicePlugin.html
userservicePlugin.js
name: "Orion User Profile",
version: "1.0",
description: "This plugin supports access and modification of a user's profile information.",

webToolsPlugin.html
<title>Orion Web Tools Support</title>
webToolsPlugin.js
name: messages["pluginName"], //$NON-NLS-1$
version: "1.0", //$NON-NLS-1$
description: messages["pluginDescription"] //$NON-NLS-1$

consolePlugin.html
<title>Console Plugin</title>
consolePlugin.js
name: "Console Plugin", 
version: "0.1", 
description: "A plugin to add a link to the tty shell"
fileClientPlugin.js
name: "Orion Node File Service",
version: "1.0",
description: "This plugin provides file access to a user's workspace.",

nodePlugin.html
<title>Node.js plugin</title>
nodePlugin.js
name: "Node Support",
version: "1.0",
description: "Provides control for Node.js functionality."

pageLinksPlugin.html
<title>Page Links Plugin</title>
pageLinksPlugin.js
name: "Orion Page Links",
version: "1.0",
description: "This plugin provides the top-level page links for Orion."
Comment 5 Carolyn MacLeod CLA 2015-11-17 12:44:23 EST
Another question that came up when I was debugging this:
5) Why is the "Orion Core Support" plugin (plugins/orionPlugin.html) loaded twice on an editor page that's open on a file?
(i.e. after refresh page, I see "Orion Core Support" loaded, then "Orion JavaScript Tool Support", then "Orion Core Support" again).
Comment 6 Silenio Quarti CLA 2015-11-17 12:59:32 EST
(In reply to Carolyn MacLeod from comment #5)
> Another question that came up when I was debugging this:
> 5) Why is the "Orion Core Support" plugin (plugins/orionPlugin.html) loaded
> twice on an editor page that's open on a file?
> (i.e. after refresh page, I see "Orion Core Support" loaded, then "Orion
> JavaScript Tool Support", then "Orion Core Support" again).

JavaScript plugin loads the orion bootstrap which loads the orionPlugin again.  This was done so that the JS Plugin can access the file system.
Comment 7 Carolyn MacLeod CLA 2015-11-17 13:13:51 EST
(In reply to Silenio Quarti from comment #6)
> JavaScript plugin loads the orion bootstrap which loads the orionPlugin again.
> This was done so that the JS Plugin can access the file system.

Ah, ok. Thanks.
Comment 8 Carolyn MacLeod CLA 2016-01-28 13:54:09 EST
Abandoned the gerrit change and fixed with:
http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/commit/?id=f4e0c007315adf996d5b63238f4e7172206a58d7