| /* |
| * Copyright 2008 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.user.client.impl; |
| |
| /** |
| * Safari implementation of |
| * {@link com.google.gwt.user.client.impl.HistoryImplTimer}. |
| * |
| * This implementation works on both Safari 2 and 3, by detecting the version |
| * and reverting to a stub implementation for Safari 2. |
| */ |
| class HistoryImplSafari extends HistoryImplTimer { |
| |
| @Override |
| protected native void nativeUpdate(String historyToken) /*-{ |
| // Safari gets into a weird state (issue 2905) when setting the hash |
| // component of the url to an empty string, but works fine as long as you |
| // at least add a '#' to the end of the url. So we get around this by |
| // recreating the url, rather than just setting location.hash. |
| $wnd.location = $wnd.location.href.split('#')[0] + '#' + |
| this.@com.google.gwt.user.client.impl.HistoryImpl::encodeFragment(Ljava/lang/String;)(historyToken); |
| }-*/; |
| } |