Bug 264899 Replace context name with computable debug string
Contexts currently are required to have a name, but this string is only used for debugging purposes. We should instead store this "debug string" in the context itself, allowing clients to use a computed value to add additional debug information. We can make this name optional by supplying a default value, which simplifies life for clients that don't care about the name (much as toString() is optional and a default is provided for those who don't care to implement it).
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/WBPartFactory.java
public Object createWidget(MPart<?> part) {
		final Widget newWidget;
	
		if (part instanceof MWorkbenchWindow) {
			IEclipseContext parentContext = getContextForParent(part);
			Shell wbwShell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
			TrimmedLayout tl = new TrimmedLayout(wbwShell);
			wbwShell.setLayout(tl);
			if (((MWorkbenchWindow) part).getName() != null)
				wbwShell.setText(((MWorkbenchWindow) part).getName());
	
			newWidget = wbwShell;
			bindWidget(part, newWidget);
			final IHandlerService hs = new PartHandlerService(part);
			IEclipseContext localContext = EclipseContextFactory.create("MWorkbenchWindow", parentContext, UIContextScheduler.instance); 
			part.setContext(localContext);
			localContext.set(IHandlerService.class.getName(), hs);
			parentContext.set(IServiceConstants.ACTIVE_CHILD, localContext);
		} else {
			newWidget = null;
		}
	
		return newWidget;
	}
	@Override
	public <P extends MPart<?>> void processContents(MPart<P> me) {
		if (me instanceof MWorkbenchWindow) {
			MWorkbenchWindow wbwModel = (MWorkbenchWindow) me;
			Shell wbwShell = (Shell) wbwModel.getWidget();
			TrimmedLayout tl = (TrimmedLayout) wbwShell.getLayout();