Added fallback to default browser if platform is Mac or XULRunner is not available
authorEugene Ostroukhov <eostroukhov@gmail.com>
Thu, 28 Jan 2010 10:18:04 -0800
changeset 55 bb6160d0b6f2
parent 54 5a2cfa9bc743
child 56 22f918ed49f7
Added fallback to default browser if platform is Mac or XULRunner is not available
org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/ChromeDebugUtils.java
org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/PreferenceInitializer.java
org.symbian.tools.wrttools.previewer/META-INF/MANIFEST.MF
org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/AbstractPreviewPage.java
org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/IPreviewPage.java
org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/MozillaPreviewPage.java
org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/PreviewPage.java
org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/PreviewView.java
org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/SwtBrowserPreviewPage.java
org.symbian.tools.wrttools.product/launch/WRT IDE (Product).launch
org.symbian.tools.wrttools.product/launch/WRT IDE Product (Mac OS X).launch
org.symbian.tools.wrttools.product/launch/WRT IDE Product (Windows).launch
org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/util/CoreUtil.java
--- a/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/ChromeDebugUtils.java	Wed Jan 27 17:54:14 2010 -0800
+++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/ChromeDebugUtils.java	Thu Jan 28 10:18:04 2010 -0800
@@ -20,9 +20,7 @@
 
 import java.io.File;
 
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Platform;
-import org.symbian.tools.wrttools.util.ProjectUtils;
+import org.symbian.tools.wrttools.util.CoreUtil;
 
 public final class ChromeDebugUtils {
 	public static String getExecutablePath(String folder) {
@@ -38,9 +36,9 @@
 
 	private static String getExecutable() {
 		// Add more ifs as we add support for new platforms
-		if (isMac()) {
+		if (CoreUtil.isMac()) {
 			return "Google Chrome.app/Contents/MacOS/Google Chrome";
-		}	if (isLinux()) {
+		} else if (CoreUtil.isLinux()) {
 			return "chrome";
 		} else {
 			return "chrome.exe";
@@ -55,15 +53,4 @@
 		return getExecutablePath(Activator.getDefault().getPreferenceStore().getString(IConstants.PREF_NAME_CHROME_LOCATION));
 	}
 
-	public static boolean isWindows() {
-		return "windows".equals(Platform.getOS());
-	}
-
-	public static boolean isMac() {
-		return "macosx".equals(Platform.getOS());
-	}
-
-	public static boolean isLinux() {
-		return "linux".equals(Platform.getOS());
-	}
 }
--- a/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/PreferenceInitializer.java	Wed Jan 27 17:54:14 2010 -0800
+++ b/org.symbian.tools.wrttools.debug.core/src/org/symbian/tools/wrttools/debug/internal/PreferenceInitializer.java	Thu Jan 28 10:18:04 2010 -0800
@@ -22,6 +22,7 @@
 
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.symbian.tools.wrttools.util.CoreUtil;
 
 public class PreferenceInitializer extends AbstractPreferenceInitializer {
 	private final static String DEFAULT_CHROME_LOCATION = "Local Settings/Application Data/Google/Chrome/Application";
@@ -37,9 +38,9 @@
 	}
 
 	private File getDefaultFolder() {
-		if (ChromeDebugUtils.isMac()) {
+		if (CoreUtil.isMac()) {
 			return new File("/Applications");
-		} else if (ChromeDebugUtils.isLinux()) {
+		} else if (CoreUtil.isLinux()) {
 			return new File("/opt/google/chrome");
 		}
 		String property = System.getProperty("user.home");
--- a/org.symbian.tools.wrttools.previewer/META-INF/MANIFEST.MF	Wed Jan 27 17:54:14 2010 -0800
+++ b/org.symbian.tools.wrttools.previewer/META-INF/MANIFEST.MF	Thu Jan 28 10:18:04 2010 -0800
@@ -8,11 +8,12 @@
  org.eclipse.core.runtime,
  org.eclipse.core.resources;bundle-version="3.5.0",
  org.eclipse.core.net;bundle-version="1.2.0",
- org.mozilla.xpcom;bundle-version="1.9.1",
+ org.mozilla.xpcom;bundle-version="1.9.1";resolution:=optional,
  org.eclipse.equinox.http.jetty;bundle-version="2.0.0",
  org.eclipse.wst.jsdt.core;bundle-version="1.0.201",
  org.eclipse.wst.jsdt.ui;bundle-version="1.0.200",
- org.symbian.tools.wrttools;bundle-version="1.0.0"
+ org.symbian.tools.wrttools;bundle-version="1.0.0",
+ org.mozilla.xulrunner;bundle-version="1.9.1";resolution:=optional
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.symbian.tools.wrttools.previewer,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/AbstractPreviewPage.java	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,178 @@
+package org.symbian.tools.wrttools.previewer.preview;
+
+import java.net.URI;
+import java.util.Collection;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.part.Page;
+import org.symbian.tools.wrttools.previewer.Images;
+import org.symbian.tools.wrttools.previewer.PreviewerPlugin;
+
+public abstract class AbstractPreviewPage extends Page implements IPreviewPage, ISelectionProvider {
+	private final IAction refreshAction = new Action("Refresh") {
+		public void run() {
+			refresh();
+		};
+	};
+	private final IAction toggleRefresh = new Action("Toggle Refresh", IAction.AS_RADIO_BUTTON) {
+		public void run() {
+			toggleRefresh();
+		};
+	};
+
+	private final IProject project;
+	private Browser browser;
+	private boolean toggleState = true;
+	private final PreviewView previewView;
+	private boolean needsRefresh = false;
+
+	public AbstractPreviewPage(IProject project, PreviewView previewView) {
+		this.project = project;
+		this.previewView = previewView;
+	}
+
+	protected void toggleRefresh() {
+		toggleState = !toggleState;
+		toggleRefresh.setChecked(toggleState);
+		previewView.setProjectAutorefresh(project, toggleState);
+		toggleRefresh.setToolTipText(getToggleActionTooltip());
+		if (toggleState && needsRefresh) {
+			refresh();
+		}
+	}
+
+	
+	@Override
+	public void createControl(Composite parent) {
+		browser = createBrowser(parent);
+		browser.setUrl(getURI().toASCIIString());
+	}
+
+	protected abstract Browser createBrowser(Composite parent);
+
+	private URI getURI() {
+		return PreviewerPlugin.getDefault().getHttpPreviewer().previewProject(project);
+	}
+
+	@Override
+	public Control getControl() {
+		return browser;
+	}
+
+	@Override
+	public void setFocus() {
+		browser.setFocus();
+	}
+	
+	private boolean refreshScheduled = false;
+
+	public synchronized void process(Collection<IFile> files) {
+		if (!refreshScheduled && needsRefresh(files)) {
+			asyncExec(new Runnable() {
+				@Override
+				public void run() {
+					if (toggleState) {
+						refresh();
+					} else {
+						needsRefresh = true;
+						refreshAction.setImageDescriptor(PreviewerPlugin.getImageDescriptor(Images.RED_SYNC));
+						refreshAction.setToolTipText("Refresh the preview browser (there are updated files)");
+					}
+				}
+			});
+			refreshScheduled = true;
+		}
+	}
+
+	private void asyncExec(Runnable runnable) {
+		getControl().getDisplay().asyncExec(runnable);
+	}
+
+	private boolean needsRefresh(Collection<IFile> files) {
+		for (IFile iFile : files) {
+			if (iFile.getProject().equals(project)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	protected synchronized void refresh() {
+		try {
+			final Control focusControl = browser.getDisplay().getFocusControl();
+			browser.refresh();
+			refreshAction.setImageDescriptor(PreviewerPlugin
+					.getImageDescriptor(Images.GREEN_SYNC));
+			if (focusControl != null) {
+				asyncExec(new Runnable() {
+					@Override
+					public void run() {
+						focusControl.setFocus();
+					}
+				});
+			}
+			refreshAction.setToolTipText("Refresh the preview browser");
+			needsRefresh = false;
+		} finally {
+			refreshScheduled = false;
+		}
+	}
+
+	@Override
+	public void init(IPageSite pageSite) {
+		super.init(pageSite);
+		IToolBarManager toolBar = pageSite.getActionBars().getToolBarManager();
+		refreshAction.setImageDescriptor(PreviewerPlugin.getImageDescriptor(Images.GREEN_SYNC));
+		refreshAction.setToolTipText("Refresh the preview browser");
+		toolBar.add(refreshAction);
+		
+		toggleState = previewView.getProjectAutorefresh(project);
+		
+		toggleRefresh.setImageDescriptor(PreviewerPlugin.getImageDescriptor(Images.YELLOW_SYNC));
+		toggleRefresh.setToolTipText(getToggleActionTooltip());
+		toggleRefresh.setChecked(toggleState);
+		toolBar.add(toggleRefresh);
+		
+		pageSite.getActionBars().setGlobalActionHandler(ActionFactory.REFRESH.getId(), refreshAction);
+		getSite().setSelectionProvider(this);
+	}
+
+	private String getToggleActionTooltip() {
+		return toggleState ? "Disable preview autorefresh" : "Enable preview autorefresh";
+	}
+
+	@Override
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		// Do nothing
+	}
+
+	@Override
+	public ISelection getSelection() {
+		return new StructuredSelection(project);
+	}
+
+	@Override
+	public void removeSelectionChangedListener(
+			ISelectionChangedListener listener) {
+		// Do nothing
+	}
+
+	@Override
+	public void setSelection(ISelection selection) {
+		// Do nothing
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/IPreviewPage.java	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,10 @@
+package org.symbian.tools.wrttools.previewer.preview;
+
+import java.util.Collection;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.ui.part.IPageBookViewPage;
+
+public interface IPreviewPage extends IPageBookViewPage {
+	void process(Collection<IFile> files);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/MozillaPreviewPage.java	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,148 @@
+package org.symbian.tools.wrttools.previewer.preview;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import org.eclipse.core.net.proxy.IProxyData;
+import org.eclipse.core.net.proxy.IProxyService;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.widgets.Composite;
+import org.mozilla.interfaces.nsIPrefBranch;
+import org.mozilla.interfaces.nsIServiceManager;
+import org.mozilla.xpcom.Mozilla;
+import org.osgi.framework.Bundle;
+import org.symbian.tools.wrttools.previewer.PreviewerPlugin;
+import org.symbian.tools.wrttools.previewer.http.WebAppInterface;
+import org.symbian.tools.wrttools.previewer.http.WebappManager;
+
+public class MozillaPreviewPage extends AbstractPreviewPage {
+	public static final String XUL_RUNNER_BUNDLE = "org.mozilla.xulrunner";
+	
+	private static final String XUL_RUNNER_PATH_PARAMETER = "org.eclipse.swt.browser.XULRunnerPath";
+	private nsIPrefBranch mozillaPrefs;
+
+	public MozillaPreviewPage(IProject project, PreviewView previewView) {
+		super(project, previewView);
+	}
+
+
+	private synchronized void initMozilla() {
+		if (System.getProperty(XUL_RUNNER_PATH_PARAMETER) == null) {
+			Bundle bundle = Platform.getBundle(XUL_RUNNER_BUNDLE); //$NON-NLS-1$
+			if (bundle != null) {
+				URL resourceUrl = bundle.getResource("xulrunner"); //$NON-NLS-1$
+				if (resourceUrl != null) {
+					try {
+						URL fileUrl = FileLocator.toFileURL(resourceUrl);
+						File file = new File(fileUrl.toURI());
+						System.setProperty(XUL_RUNNER_PATH_PARAMETER, file
+								.getAbsolutePath()); //$NON-NLS-1$
+					} catch (IOException e) {
+						// log the exception
+					} catch (URISyntaxException e) {
+						// log the exception
+					}
+				}
+			}
+		}
+	}
+
+	@Override
+	protected Browser createBrowser(Composite parent) {
+		initMozilla();
+		final Browser browser = new Browser(parent, SWT.MOZILLA);
+		bypassSameOriginPolicy();
+		applyProxySettings();
+		return browser;
+	}
+	
+	private void applyProxySettings() {
+		IProxyService px = PreviewerPlugin.getDefault().getProxyService();
+		if(px != null){			 
+			boolean proxyEnabled = px.isProxiesEnabled();
+
+			boolean systemProxy = px.isSystemProxiesEnabled();
+			if( proxyEnabled && !systemProxy){
+				IProxyData pd = px.getProxyData(IProxyData.HTTP_PROXY_TYPE);
+				if (pd !=null &&mozillaPrefs != null) {				
+					String host= pd.getHost();
+					int port = pd.getPort();
+					if(host !=null && port != -1){
+						mozillaPrefs.setIntPref("network.proxy.type", 1);
+						mozillaPrefs.setCharPref("network.proxy.http", host);
+						mozillaPrefs.setIntPref("network.proxy.http_port", port);
+					}
+				}
+			 }
+		}
+		else{
+			 Exception e= new Exception();
+			 PreviewerPlugin.log("Proxy service returned null", e);
+		 }
+	}
+	
+	private void bypassSameOriginPolicy() {
+		WebAppInterface.getInstance();
+		try{
+			nsIServiceManager servMgr = null;
+			try {
+				servMgr = Mozilla.getInstance().getServiceManager();
+				if (servMgr == null) return;
+			} catch (Exception x) {
+				// known to throw NullPointException on Mac OS when you're not using 
+				// Mozilla. We don't want to pollute the error log with this
+				return;
+			}
+			
+			mozillaPrefs = (nsIPrefBranch) servMgr.getServiceByContractID(
+											"@mozilla.org/preferences-service;1", 
+											nsIPrefBranch.NS_IPREFBRANCH_IID );		
+
+			mozillaPrefs.setBoolPref("signed.applets.codebase_principal_support", 1);
+
+			mozillaPrefs.setCharPref("capability.policy.default.XMLDocument.getElementsByTagName", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.CDATASection.nodeValue", "allAccess");
+
+			mozillaPrefs.setCharPref("capability.policy.default.HTMLCollection.length", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.HTMLCollection.item", "allAccess");
+
+			mozillaPrefs.setCharPref("capability.policy.default.*.nodeValue", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.nodeType", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.nodeName", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.nextSibling", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.previousSibling", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.attributes", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.childNodes", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.firstChild", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.getAttribute", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.getElementsByTagName", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.lastChild", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.parentNode", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.*.tagName", "allAccess");
+
+			mozillaPrefs.setCharPref("capability.policy.default.XMLDocument.documentElement", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLDocument.getElementsByTagName", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.channel", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.open", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.responseText", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.responseXML", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.send", "allAccess");
+			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.setRequestHeader", "allAccess");
+			/* to over-ride the internet security dialog when preview browser tries to access local hard drive */
+			mozillaPrefs.setCharPref("capability.principal.codebase.p0.granted", "UniversalXPConnect  UniversalBrowserRead");
+			String location = "http://127.0.0.1:" + WebappManager.getPort();
+			mozillaPrefs.setCharPref("capability.principal.codebase.p0.id", location);
+			mozillaPrefs.setBoolPref("security.fileuri.strict_origin_policy", 0);
+		} catch (Exception e) {
+			PreviewerPlugin.log("Error getting preferences", e);
+		}
+	}
+
+
+}
--- a/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/PreviewPage.java	Wed Jan 27 17:54:14 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-package org.symbian.tools.wrttools.previewer.preview;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Collection;
-
-import org.eclipse.core.net.proxy.IProxyData;
-import org.eclipse.core.net.proxy.IProxyService;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.Page;
-import org.mozilla.interfaces.nsIPrefBranch;
-import org.mozilla.interfaces.nsIServiceManager;
-import org.mozilla.xpcom.Mozilla;
-import org.osgi.framework.Bundle;
-import org.symbian.tools.wrttools.previewer.PreviewerPlugin;
-import org.symbian.tools.wrttools.previewer.Images;
-import org.symbian.tools.wrttools.previewer.http.WebAppInterface;
-import org.symbian.tools.wrttools.previewer.http.WebappManager;
-
-public class PreviewPage extends Page implements IPageBookViewPage, ISelectionProvider {
-	private static final String XUL_RUNNER_PATH_PARAMETER = "org.eclipse.swt.browser.XULRunnerPath";
-	private nsIPrefBranch mozillaPrefs;
-
-	private final IAction refreshAction = new Action("Refresh") {
-		public void run() {
-			refresh();
-		};
-	};
-	private final IAction toggleRefresh = new Action("Toggle Refresh", IAction.AS_RADIO_BUTTON) {
-		public void run() {
-			toggleRefresh();
-		};
-	};
-
-	private final IProject project;
-	private Browser browser;
-	private boolean toggleState = true;
-	private final PreviewView previewView;
-	private boolean needsRefresh = false;
-
-	public PreviewPage(IProject project, PreviewView previewView) {
-		this.project = project;
-		this.previewView = previewView;
-	}
-
-	protected void toggleRefresh() {
-		toggleState = !toggleState;
-		toggleRefresh.setChecked(toggleState);
-		previewView.setProjectAutorefresh(project, toggleState);
-		toggleRefresh.setToolTipText(getToggleActionTooltip());
-		if (toggleState && needsRefresh) {
-			refresh();
-		}
-	}
-
-	private synchronized void initMozilla() {
-		if (System.getProperty(XUL_RUNNER_PATH_PARAMETER) == null) {
-			Bundle bundle = Platform.getBundle("org.mozilla.xulrunner"); //$NON-NLS-1$
-			if (bundle != null) {
-				URL resourceUrl = bundle.getResource("xulrunner"); //$NON-NLS-1$
-				if (resourceUrl != null) {
-					try {
-						URL fileUrl = FileLocator.toFileURL(resourceUrl);
-						File file = new File(fileUrl.toURI());
-						System.setProperty(XUL_RUNNER_PATH_PARAMETER, file
-								.getAbsolutePath()); //$NON-NLS-1$
-					} catch (IOException e) {
-						// log the exception
-					} catch (URISyntaxException e) {
-						// log the exception
-					}
-				}
-			}
-		}
-	}
-
-	
-	@Override
-	public void createControl(Composite parent) {
-		initMozilla();
-		browser = new Browser(parent, SWT.MOZILLA);
-		bypassSameOriginPolicy();
-		applyProxySettings();
-		browser.setUrl(getURI().toASCIIString());
-	}
-
-	private URI getURI() {
-		return PreviewerPlugin.getDefault().getHttpPreviewer().previewProject(project);
-	}
-
-	@Override
-	public Control getControl() {
-		return browser;
-	}
-
-	@Override
-	public void setFocus() {
-		browser.setFocus();
-	}
-	
-	private boolean refreshScheduled = false;
-
-	public synchronized void process(Collection<IFile> files) {
-		if (!refreshScheduled && needsRefresh(files)) {
-			asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					if (toggleState) {
-						refresh();
-					} else {
-						needsRefresh = true;
-						refreshAction.setImageDescriptor(PreviewerPlugin.getImageDescriptor(Images.RED_SYNC));
-						refreshAction.setToolTipText("Refresh the preview browser (there are updated files)");
-					}
-				}
-			});
-			refreshScheduled = true;
-		}
-	}
-
-	private void asyncExec(Runnable runnable) {
-		getControl().getDisplay().asyncExec(runnable);
-	}
-
-	private boolean needsRefresh(Collection<IFile> files) {
-		for (IFile iFile : files) {
-			if (iFile.getProject().equals(project)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	protected synchronized void refresh() {
-		try {
-			final Control focusControl = browser.getDisplay().getFocusControl();
-			browser.refresh();
-			refreshAction.setImageDescriptor(PreviewerPlugin
-					.getImageDescriptor(Images.GREEN_SYNC));
-			if (focusControl != null) {
-				asyncExec(new Runnable() {
-					@Override
-					public void run() {
-						focusControl.setFocus();
-					}
-				});
-			}
-			refreshAction.setToolTipText("Refresh the preview browser");
-			needsRefresh = false;
-		} finally {
-			refreshScheduled = false;
-		}
-	}
-
-	@Override
-	public void init(IPageSite pageSite) {
-		super.init(pageSite);
-		IToolBarManager toolBar = pageSite.getActionBars().getToolBarManager();
-		refreshAction.setImageDescriptor(PreviewerPlugin.getImageDescriptor(Images.GREEN_SYNC));
-		refreshAction.setToolTipText("Refresh the preview browser");
-		toolBar.add(refreshAction);
-		
-		toggleState = previewView.getProjectAutorefresh(project);
-		
-		toggleRefresh.setImageDescriptor(PreviewerPlugin.getImageDescriptor(Images.YELLOW_SYNC));
-		toggleRefresh.setToolTipText(getToggleActionTooltip());
-		toggleRefresh.setChecked(toggleState);
-		toolBar.add(toggleRefresh);
-		
-		pageSite.getActionBars().setGlobalActionHandler(ActionFactory.REFRESH.getId(), refreshAction);
-		getSite().setSelectionProvider(this);
-	}
-
-	private String getToggleActionTooltip() {
-		return toggleState ? "Disable preview autorefresh" : "Enable preview autorefresh";
-	}
-
-	@Override
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		// Do nothing
-	}
-
-	@Override
-	public ISelection getSelection() {
-		return new StructuredSelection(project);
-	}
-
-	@Override
-	public void removeSelectionChangedListener(
-			ISelectionChangedListener listener) {
-		// Do nothing
-	}
-
-	@Override
-	public void setSelection(ISelection selection) {
-		// Do nothing
-	}
-	
-	private void applyProxySettings() {
-		IProxyService px = PreviewerPlugin.getDefault().getProxyService();
-		if(px != null){			 
-			boolean proxyEnabled = px.isProxiesEnabled();
-
-			boolean systemProxy = px.isSystemProxiesEnabled();
-			if( proxyEnabled && !systemProxy){
-				IProxyData pd = px.getProxyData(IProxyData.HTTP_PROXY_TYPE);
-				if (pd !=null &&mozillaPrefs != null) {				
-					String host= pd.getHost();
-					int port = pd.getPort();
-					if(host !=null && port != -1){
-						mozillaPrefs.setIntPref("network.proxy.type", 1);
-						mozillaPrefs.setCharPref("network.proxy.http", host);
-						mozillaPrefs.setIntPref("network.proxy.http_port", port);
-					}
-				}
-			 }
-		}
-		else{
-			 Exception e= new Exception();
-			 PreviewerPlugin.log("Proxy service returned null", e);
-		 }
-	}
-	
-	private void bypassSameOriginPolicy() {
-		WebAppInterface.getInstance();
-		try{
-			nsIServiceManager servMgr = null;
-			try {
-				servMgr = Mozilla.getInstance().getServiceManager();
-				if (servMgr == null) return;
-			} catch (Exception x) {
-				// known to throw NullPointException on Mac OS when you're not using 
-				// Mozilla. We don't want to pollute the error log with this
-				return;
-			}
-			
-			mozillaPrefs = (nsIPrefBranch) servMgr.getServiceByContractID(
-											"@mozilla.org/preferences-service;1", 
-											nsIPrefBranch.NS_IPREFBRANCH_IID );		
-
-			mozillaPrefs.setBoolPref("signed.applets.codebase_principal_support", 1);
-
-			mozillaPrefs.setCharPref("capability.policy.default.XMLDocument.getElementsByTagName", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.CDATASection.nodeValue", "allAccess");
-
-			mozillaPrefs.setCharPref("capability.policy.default.HTMLCollection.length", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.HTMLCollection.item", "allAccess");
-
-			mozillaPrefs.setCharPref("capability.policy.default.*.nodeValue", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.nodeType", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.nodeName", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.nextSibling", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.previousSibling", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.attributes", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.childNodes", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.firstChild", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.getAttribute", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.getElementsByTagName", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.lastChild", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.parentNode", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.*.tagName", "allAccess");
-
-			mozillaPrefs.setCharPref("capability.policy.default.XMLDocument.documentElement", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLDocument.getElementsByTagName", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.channel", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.open", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.responseText", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.responseXML", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.send", "allAccess");
-			mozillaPrefs.setCharPref("capability.policy.default.XMLHttpRequest.setRequestHeader", "allAccess");
-			/* to over-ride the internet security dialog when preview browser tries to access local hard drive */
-			mozillaPrefs.setCharPref("capability.principal.codebase.p0.granted", "UniversalXPConnect  UniversalBrowserRead");
-			String location = "http://127.0.0.1:" + WebappManager.getPort();
-			mozillaPrefs.setCharPref("capability.principal.codebase.p0.id", location);
-			mozillaPrefs.setBoolPref("security.fileuri.strict_origin_policy", 0);
-		} catch (Exception e) {
-			PreviewerPlugin.log("Error getting preferences", e);
-		}
-	}
-
-}
--- a/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/PreviewView.java	Wed Jan 27 17:54:14 2010 -0800
+++ b/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/PreviewView.java	Thu Jan 28 10:18:04 2010 -0800
@@ -24,6 +24,7 @@
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.MessageDialogWithToggle;
 import org.eclipse.jface.preference.IPreferenceStore;
@@ -36,6 +37,7 @@
 import org.eclipse.ui.part.PageBookView;
 import org.symbian.tools.wrttools.previewer.PreviewerPlugin;
 import org.symbian.tools.wrttools.previewer.IWrtEditingPreferences;
+import org.symbian.tools.wrttools.util.CoreUtil;
 import org.symbian.tools.wrttools.util.ProjectUtils;
 
 public class PreviewView extends PageBookView {
@@ -71,7 +73,7 @@
 		}
 	};
 
-	private Map<IProject, PreviewPage> projectToPage = new HashMap<IProject, PreviewPage>();
+	private Map<IProject, IPreviewPage> projectToPage = new HashMap<IProject, IPreviewPage>();
 	private boolean preferencesLoaded = false;
 	private final Map<IProject, Boolean> autorefresh = new HashMap<IProject, Boolean>();
 
@@ -105,10 +107,10 @@
 				.getAdapter(IResource.class);
 
 		IProject project = resource.getProject();
-		PreviewPage page = projectToPage.get(project);
+		IPreviewPage page = projectToPage.get(project);
 
 		if (page == null) {
-			page = new PreviewPage(project, this);
+			page = createPreviewPage(project);
 			initPage(page);
 			page.createControl(getPageBook());
 			projectToPage.put(project, page);
@@ -117,6 +119,14 @@
 		return new PageRec(part, page);
 	}
 
+	private IPreviewPage createPreviewPage(IProject project) {
+		if (!CoreUtil.isMac() && Platform.getBundle(MozillaPreviewPage.XUL_RUNNER_BUNDLE) != null) {
+			return new MozillaPreviewPage(project, this);
+		} else {
+			return new SwtBrowserPreviewPage(project, this);
+		}
+	}
+
 	@Override
 	protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
 		// We do not need to delete the page
@@ -221,8 +231,8 @@
 	}
 
 	protected void refreshPages(Collection<IFile> files) {
-		Collection<PreviewPage> values = projectToPage.values();
-		for (PreviewPage page : values) {
+		Collection<IPreviewPage> values = projectToPage.values();
+		for (IPreviewPage page : values) {
 			page.process(files);
 		}
 	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools.previewer/src/org/symbian/tools/wrttools/previewer/preview/SwtBrowserPreviewPage.java	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,20 @@
+package org.symbian.tools.wrttools.previewer.preview;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.widgets.Composite;
+
+public class SwtBrowserPreviewPage extends AbstractPreviewPage implements
+		IPreviewPage {
+
+	public SwtBrowserPreviewPage(IProject project, PreviewView previewView) {
+		super(project, previewView);
+	}
+
+	@Override
+	protected Browser createBrowser(Composite parent) {
+		return new Browser(parent, SWT.NONE);
+	}
+
+}
--- a/org.symbian.tools.wrttools.product/launch/WRT IDE (Product).launch	Wed Jan 27 17:54:14 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<booleanAttribute key="clearws" value="false"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/WRT IDE (Product)"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-wrt-ide.product"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms128m -Xmx768m -XX:MaxPermSize=192m"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.symbian.tools.wrttools.product.product"/>
-<stringAttribute key="productFile" value="\org.symbian.tools.wrttools.product\wrt-ide.product"/>
-<booleanAttribute key="restart" value="false"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.wst.command.env@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ui@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.update.core.linux@default:false,org.apache.commons.discovery@default:default,org.eclipse.jface@default:default,org.eclipse.wst.jsdt.web.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.wst.sse.core@default:default,org.mortbay.jetty.util@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.dstore.extra@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.ui.intro@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.ecf@default:default,javax.wsdl*1.5.1.v200806030408@default:default,org.eclipse.swt@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.mozilla.xulrunner.win32.win32.x86@default:false,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.jem@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.ui.ide@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.compare.core@default:default,org.apache.oro@default:default,org.eclipse.wst.command.env.infopop@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.epp.package.jee@default:default,javax.servlet@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.update.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.security@default:default,org.eclipse.wst.css.ui@default:default,javax.xml.bind*2.1.9.v200905050702@default:default,org.eclipse.wst.html.core@default:default,org.eclipse.core.expressions@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.core.filesystem.linux.x86@default:false,com.jcraft.jsch@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,javax.xml.soap@default:default,org.apache.axis@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.search@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.emf.edit@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.ui.forms@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.update.configurator@3:true,org.eclipse.equinox.ds@1:true,org.eclipse.osgi.services@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.apache.xml.serializer@default:default,org.eclipse.ui.views@default:default,org.apache.lucene.analysis@default:default,org.eclipse.help.ui@default:default,org.mozilla.xpcom@default:default,org.eclipse.ui.net@default:default,org.eclipse.help.base@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.ltk.core.refactoring@default:default,org.mozilla.xulrunner@default:default,org.eclipse.debug.ui@default:default,org.eclipse.equinox.common@2:true,javax.mail*1.4.0.v200905040518@default:default,org.eclipse.wtp.epp.package.jee.intro@default:default,org.apache.log4j@default:default,org.apache.commons.codec@default:default,org.eclipse.gef@default:default,com.ibm.icu@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.core.resources.compatibility@default:false,org.hamcrest.core@default:default,org.eclipse.wst.jsdt.web.ui@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.apache.velocity@default:default,org.eclipse.emf@default:default,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.wst.command.env.core@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.util@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.jobs@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.update.ui@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.wst.standard.schemas@default:default,javax.transaction@default:false,commonj.sdo@default:default,org.eclipse.ui.ide.application@default:default,org.apache.jasper@default:default,org.eclipse.wst.internet.monitor.ui@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.dstore.core@default:default,org.eclipse.emf.mapping.ui@default:default,javax.activation*1.1.0.v200906290531@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.wst.command.env.doc.user@default:default,org.eclipse.osgi@-1:true,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.core.commands@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.team.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.jsch.core@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.apache.xalan@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.sat4j.pb@default:default,org.eclipse.equinox.p2.engine@default:default,org.apache.lucene@default:default,org.eclipse.ecf.identity@default:default,java_cup.runtime@default:default,org.eclipse.wst.html.ui.infopop@default:default,org.eclipse.core.net@default:default,javax.wsdl*1.6.2.v200806030405@default:default,javax.servlet.jsp@default:default,org.apache.bcel@default:default,org.apache.commons.collections@default:default,javax.persistence@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.xml.ui@default:default,javax.xml.bind*2.0.0.v20080604-1500@default:default,org.eclipse.equinox.http.registry@default:default,org.apache.commons.lang*2.3.0.v200803061910@default:default,org.eclipse.help.appserver@default:default,org.eclipse.wst.doc.user@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.console@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.rcp@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.apache.commons.jxpath@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:false,org.apache.commons.el@default:default,javax.xml@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.core.databinding.beans@default:default,org.apache.commons.net@default:default,org.eclipse.help.webapp@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.core.net.linux.x86@default:false,org.eclipse.team.core@default:default,org.eclipse.emf.common@default:default,javax.xml.rpc@default:default,org.apache.xerces@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.wst.validation.ui@default:default,org.objectweb.asm@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.wst.jsdt.doc@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.mortbay.jetty.server@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.help@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.apache.commons.logging@default:default,javax.xml.stream@default:default,org.eclipse.core.databinding@default:default,org.eclipse.wst.jsdt.support.ie@default:default,org.eclipse.cvs@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.platform@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.jem.util@default:default,org.eclipse.text@default:default,net.sourceforge.lpg.lpgjavaruntime@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.ui.editors@default:default,org.sat4j.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.resources@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.wst.validation@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.draw2d@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.jsch.ui@default:default,org.apache.commons.httpclient@default:default,org.eclipse.jface.text@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.core.databinding.property@default:default,org.jdom@default:default,org.apache.xml.resolver@default:default,org.eclipse.team.cvs.ssh@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.p2.directorywatcher@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.chromium.debug.core@default:default,org.chromium.sdk@default:default,org.symbian.tools.wrttools.product@default:default,org.symbian.tools.wrttools.debug.core@default:default,org.symbian.tools.wrttools@default:default,org.symbian.tools.wrttools.previewer@default:default,org.chromium.debug.ui@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="usefeatures" value="false"/>
-</launchConfiguration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools.product/launch/WRT IDE Product (Mac OS X).launch	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/WRT IDE (Product) (1)"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-wrt-ide.product"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms128m -Xmx768m -XX:MaxPermSize=192m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.symbian.tools.wrttools.product.product"/>
+<stringAttribute key="productFile" value="\org.symbian.tools.wrttools.product\wrt-ide.product"/>
+<booleanAttribute key="restart" value="false"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.wst.validation.ui@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.mortbay.jetty.util@default:default,javax.xml.rpc@default:default,org.eclipse.help.base@default:default,org.eclipse.wst.jsdt.support.ie@default:default,javax.activation*1.1.0.v200906290531@default:default,org.eclipse.dstore.core@default:default,org.eclipse.core.databinding@default:default,org.sat4j.core@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.apache.commons.collections@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.rcp@default:default,javax.xml.stream@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.wst.jsdt.doc@default:default,org.objectweb.asm@default:default,org.apache.xml.resolver@default:default,org.eclipse.ui.editors@default:default,javax.xml.soap@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.wst.command.env.infopop@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.wst.html.ui.infopop@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.mozilla.xpcom@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.help.webapp@default:default,org.mortbay.jetty.server@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.jsch.core@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.equinox.p2.core@default:default,org.apache.commons.codec@default:default,org.eclipse.update.configurator@3:true,org.eclipse.help@default:default,org.eclipse.wst.jsdt.web.ui@default:default,javax.xml@default:default,org.eclipse.debug.core@default:default,org.eclipse.team.cvs.ssh@default:default,org.eclipse.core.commands@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.emf.common@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.jface@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.wst.command.env.core@default:default,javax.transaction@default:false,org.eclipse.ui.net@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.debug.ui@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.ide@default:default,org.eclipse.help.ui@default:default,org.apache.xml.serializer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.core.resources@default:default,org.eclipse.platform@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.update.ui@default:default,org.sat4j.pb@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.p2.updatesite@default:default,javax.persistence@default:default,org.eclipse.osgi.services@default:default,com.ibm.icu@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.wst.jsdt.web.core@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.apache.velocity@default:default,org.eclipse.core.runtime@default:true,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.apache.commons.httpclient@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.core.net@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.xml.xpath.ui@default:default,commonj.sdo@default:default,org.eclipse.jem.util@default:default,org.eclipse.help.appserver@default:default,org.eclipse.wst.common.environment@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,javax.wsdl@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.ecf@default:default,org.apache.bcel@default:default,org.eclipse.ui@default:default,org.eclipse.wst.doc.user@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.ui.intro@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.platform.doc.user@default:default,org.eclipse.osgi@-1:true,org.eclipse.equinox.p2.director@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.util@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.wst.command.env@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.epp.package.jee@default:default,org.eclipse.wst.common.ui@default:default,javax.servlet.jsp@default:default,org.eclipse.search@default:default,org.eclipse.core.variables@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.compare.core@default:default,org.apache.commons.jxpath@default:default,org.eclipse.emf@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.gef@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.expressions@default:default,org.eclipse.update.core@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.ui.console@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.text@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.team.core@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.wst.internet.monitor.ui@default:default,org.apache.jasper@default:default,org.eclipse.core.boot@default:default,org.apache.commons.lang*2.3.0.v200803061910@default:default,javax.servlet@default:default,org.eclipse.ui.forms@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.wst.common.core@default:default,org.apache.commons.net@default:default,org.hamcrest.core@default:default,org.eclipse.dstore.extra@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.apache.lucene.analysis@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.edit@default:default,org.apache.lucene@default:default,org.jdom@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.jem@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.mozilla.xulrunner@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.p2.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.wst.common.emf@default:default,net.sourceforge.lpg.lpgjavaruntime@default:default,org.eclipse.equinox.common@2:true,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.draw2d@default:default,org.eclipse.wst.xml.core@default:default,javax.mail*1.4.0.v200905040518@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.wst.sse.core@default:default,org.apache.commons.discovery@default:default,org.eclipse.swt@default:default,org.eclipse.ecf.ssl@default:false,java_cup.runtime@default:default,org.eclipse.wst.html.core@default:default,org.apache.commons.logging@default:default,org.apache.axis@default:default,org.eclipse.compare@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wtp.epp.package.jee.intro@default:default,org.apache.log4j@default:default,org.eclipse.jface.databinding@default:default,javax.xml.bind@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.team.cvs.core@default:default,org.apache.oro@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.core.jobs@default:default,org.apache.xalan@default:default,org.eclipse.cvs@default:default,org.eclipse.wst.command.env.doc.user@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.emf.ecore.xmi@default:default,org.apache.commons.el@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.apache.xerces@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.core.resources.compatibility@default:false,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.app@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.ui.views@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.jface.text@default:default,org.eclipse.core.databinding.property@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.chromium.sdk@default:default,org.symbian.tools.wrttools@default:default,org.symbian.tools.wrttools.debug.core@default:default,org.symbian.tools.wrttools.previewer@default:default,org.chromium.debug.ui@default:default,org.chromium.debug.core@default:default,org.symbian.tools.wrttools.product@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools.product/launch/WRT IDE Product (Windows).launch	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/WRT IDE Product (Windows)"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-wrt-ide.product"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms128m -Xmx768m -XX:MaxPermSize=192m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.symbian.tools.wrttools.product.product"/>
+<stringAttribute key="productFile" value="\org.symbian.tools.wrttools.product\wrt-ide.product"/>
+<booleanAttribute key="restart" value="false"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.wst.validation.ui@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.mortbay.jetty.util@default:default,javax.xml.rpc@default:default,org.eclipse.help.base@default:default,org.eclipse.wst.jsdt.support.ie@default:default,javax.activation*1.1.0.v200906290531@default:default,org.eclipse.dstore.core@default:default,org.eclipse.jdt.launching.macosx@default:default,org.eclipse.core.databinding@default:default,org.sat4j.core@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.apache.commons.collections@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.rcp@default:default,javax.xml.stream@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.wst.jsdt.doc@default:default,org.objectweb.asm@default:default,org.apache.xml.resolver@default:default,org.eclipse.ui.editors@default:default,javax.xml.soap@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.wst.command.env.infopop@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.wst.html.ui.infopop@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.mozilla.xpcom@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.help.webapp@default:default,org.mortbay.jetty.server@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.jsch.core@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.equinox.p2.core@default:default,org.apache.commons.codec@default:default,org.eclipse.update.configurator@3:true,org.eclipse.help@default:default,org.eclipse.wst.jsdt.web.ui@default:default,javax.xml@default:default,org.eclipse.debug.core@default:default,org.eclipse.team.cvs.ssh@default:default,org.eclipse.core.commands@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.emf.common@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.jface@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.launcher.cocoa.macosx.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.wst.command.env.core@default:default,javax.transaction@default:false,org.eclipse.ui.net@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.debug.ui@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.ide@default:default,org.eclipse.help.ui@default:default,org.apache.xml.serializer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.core.resources@default:default,org.eclipse.platform@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.update.ui@default:default,org.sat4j.pb@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.p2.updatesite@default:default,javax.persistence@default:default,org.eclipse.osgi.services@default:default,com.ibm.icu@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.swt.cocoa.macosx.x86_64@default:false,org.eclipse.equinox.security.macosx@default:false,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.wst.jsdt.web.core@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.apache.velocity@default:default,org.eclipse.core.runtime@default:true,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.apache.commons.httpclient@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.core.net@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.xml.xpath.ui@default:default,commonj.sdo@default:default,org.eclipse.jem.util@default:default,org.eclipse.help.appserver@default:default,org.eclipse.wst.common.environment@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,javax.wsdl@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.ecf@default:default,org.apache.bcel@default:default,org.eclipse.ui@default:default,org.eclipse.wst.doc.user@default:default,org.eclipse.wst.jsdt.support.firefox@default:default,org.eclipse.ui.intro@default:default,org.eclipse.jdt.launching.ui.macosx@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.platform.doc.user@default:default,org.eclipse.osgi@-1:true,org.eclipse.equinox.p2.director@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.util@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.wst.command.env@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.epp.package.jee@default:default,org.eclipse.wst.common.ui@default:default,javax.servlet.jsp@default:default,org.eclipse.search@default:default,org.eclipse.core.variables@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.compare.core@default:default,org.apache.commons.jxpath@default:default,org.eclipse.emf@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.gef@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.expressions@default:default,org.eclipse.update.core@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.wst.jsdt.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.ui.console@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.text@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.team.core@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.wst.internet.monitor.ui@default:default,org.apache.jasper@default:default,org.eclipse.core.boot@default:default,org.apache.commons.lang*2.3.0.v200803061910@default:default,javax.servlet@default:default,org.eclipse.ui.forms@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.wst.common.core@default:default,org.apache.commons.net@default:default,org.hamcrest.core@default:default,org.eclipse.dstore.extra@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.apache.lucene.analysis@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.edit@default:default,org.apache.lucene@default:default,org.jdom@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.jem@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.mozilla.xulrunner@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.p2.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.wst.common.emf@default:default,net.sourceforge.lpg.lpgjavaruntime@default:default,org.eclipse.equinox.common@2:true,org.eclipse.wst.jsdt.manipulation@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.draw2d@default:default,org.eclipse.wst.xml.core@default:default,javax.mail*1.4.0.v200905040518@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.jsdt.ui@default:default,org.eclipse.wst.sse.core@default:default,org.apache.commons.discovery@default:default,org.eclipse.swt@default:default,org.eclipse.ecf.ssl@default:false,java_cup.runtime@default:default,org.eclipse.wst.html.core@default:default,org.apache.commons.logging@default:default,org.apache.axis@default:default,org.eclipse.compare@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wtp.epp.package.jee.intro@default:default,org.apache.log4j@default:default,org.eclipse.jface.databinding@default:default,javax.xml.bind@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.team.cvs.core@default:default,org.apache.oro@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.core.jobs@default:default,org.apache.xalan@default:default,org.eclipse.cvs@default:default,org.eclipse.wst.command.env.doc.user@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.emf.ecore.xmi@default:default,org.apache.commons.el@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.apache.xerces@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.core.resources.compatibility@default:false,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.app@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.ui.views@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.jface.text@default:default,org.eclipse.core.databinding.property@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.chromium.sdk@default:default,org.symbian.tools.wrttools@default:default,org.symbian.tools.wrttools.debug.core@default:default,org.symbian.tools.wrttools.previewer@default:default,org.chromium.debug.ui@default:default,org.chromium.debug.core@default:default,org.symbian.tools.wrttools.product@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/util/CoreUtil.java	Thu Jan 28 10:18:04 2010 -0800
@@ -0,0 +1,18 @@
+package org.symbian.tools.wrttools.util;
+
+import org.eclipse.core.runtime.Platform;
+
+public class CoreUtil {
+
+	public static boolean isWindows() {
+		return "windows".equals(Platform.getOS());
+	}
+
+	public static boolean isMac() {
+		return "macosx".equals(Platform.getOS());
+	}
+
+	public static boolean isLinux() {
+		return "linux".equals(Platform.getOS());
+	}
+}