Bug 421822 - RAP: SVG field disappears when handling a hyperlink event

https://bugs.eclipse.org/bugs/show_bug.cgi?id=421822

Returns old browser content after function call.

Change-Id: I6d6d100d9c072d4ba87c7a70f44181c536df4dfe
Reviewed-on: https://git.eclipse.org/r/19254
Tested-by: Hudson CI
Reviewed-by: Ken Lee <kle@bsiag.com>
IP-Clean: Ken Lee <kle@bsiag.com>
diff --git a/org.eclipse.scout.rt.ui.rap/.classpath b/org.eclipse.scout.rt.ui.rap/.classpath
index 0b72219..a885c94 100644
--- a/org.eclipse.scout.rt.ui.rap/.classpath
+++ b/org.eclipse.scout.rt.ui.rap/.classpath
@@ -7,6 +7,7 @@
 			<accessrule kind="accessible" pattern="org/eclipse/rap/rwt/internal/service/UrlParameters"/>
 			<accessrule kind="accessible" pattern="org/eclipse/rap/rwt/internal/service/ContextProvider"/>
 			<accessrule kind="accessible" pattern="org/eclipse/rap/rwt/internal/service/UISessionImpl"/>
+			<accessrule kind="accessible" pattern="org/eclipse/swt/internal/widgets/IBrowserAdapter"/>
 		</accessrules>
 	</classpathentry>
 	<classpathentry kind="src" path="src"/>
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java
index c88cab0..ffecd7e 100644
--- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java
@@ -24,6 +24,7 @@
 import org.eclipse.scout.commons.logger.ScoutLogManager;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.browser.BrowserFunction;
+import org.eclipse.swt.internal.widgets.IBrowserAdapter;
 
 /**
  * <h3>BrowserSupport</h3> adding hyperlink callback support as in normal swt to the rwt browser
@@ -63,18 +64,19 @@
       @Override
       public Object function(Object[] arguments) {
         String localUrl = m_hyperlinkMap.get(arguments[0]);
+        final String browserText = m_browser.getAdapter(IBrowserAdapter.class).getText();
         if (localUrl == null) {
           LOG.error("Hyperlink could not be activated. No url specified.");
-          return null;
+          return browserText;
         }
         if (m_hyperlinkCallback == null) {
           LOG.error("Hyperlink could not be activated. Please specify the runnable to be executed.");
-          return null;
+          return browserText;
         }
 
         m_hyperlinkCallback.execute(localUrl);
 
-        return null;
+        return browserText;
       }
     };
   }