summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
index 959eb79dfe..811a7e8884 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
@@ -33,6 +33,7 @@ import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.http.client.URL;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
@@ -54,6 +55,7 @@ import com.google.gwtexpui.user.client.ViewSite;
import com.google.gwtjsonrpc.client.JsonDefTarget;
import com.google.gwtjsonrpc.client.JsonUtil;
import com.google.gwtjsonrpc.client.XsrfManager;
+import com.google.gwtorm.client.KeyUtil;
import java.util.ArrayList;
@@ -194,6 +196,21 @@ public class Gerrit implements EntryPoint {
public void onModuleLoad() {
UserAgent.assertNotInIFrame();
+ KeyUtil.setEncoderImpl(new KeyUtil.Encoder() {
+ @Override
+ public String encode(final String e) {
+ return fixPathImpl(URL.encodeComponent(e));
+ }
+
+ @Override
+ public String decode(final String e) {
+ return URL.decodeComponent(e);
+ }
+
+ private native String fixPathImpl(String path)
+ /*-{ return path.replace(/%2F/g, "/"); }-*/;
+ });
+
RESOURCES.gwt_override().ensureInjected();
RESOURCES.css().ensureInjected();