You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2013/03/05 01:10:05 UTC

[1/2] android commit: CB-2198: Removing option to use our broken URL stack as a history as per deprecation policy.

CB-2198: Removing option to use our broken URL stack as a history as per deprecation policy.


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/5d68d5a2
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/5d68d5a2
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/5d68d5a2

Branch: refs/heads/master
Commit: 5d68d5a24616d97b351d13e26e963cd707cfdd25
Parents: fb81f3e
Author: Joe Bowser <bo...@apache.org>
Authored: Mon Mar 4 16:09:37 2013 -0800
Committer: Joe Bowser <bo...@apache.org>
Committed: Mon Mar 4 16:09:37 2013 -0800

----------------------------------------------------------------------
 .../src/org/apache/cordova/CordovaWebView.java     |   78 +--------------
 .../org/apache/cordova/CordovaWebViewClient.java   |   29 +-----
 2 files changed, 6 insertions(+), 101 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/5d68d5a2/framework/src/org/apache/cordova/CordovaWebView.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java
index a1f423b..e61a215 100755
--- a/framework/src/org/apache/cordova/CordovaWebView.java
+++ b/framework/src/org/apache/cordova/CordovaWebView.java
@@ -75,12 +75,8 @@ public class CordovaWebView extends WebView {
     @SuppressWarnings("unused")
     private CordovaChromeClient chromeClient;
 
-    //This is for the polyfill history
     private String url;
     String baseUrl;
-    private Stack<String> urls = new Stack<String>();
-
-    boolean useBrowserHistory = true;
 
     // Flag to track that a loadUrl timeout occurred
     int loadUrlTimeout = 0;
@@ -370,7 +366,7 @@ public class CordovaWebView extends WebView {
             String initUrl = this.getProperty("url", null);
 
             // If first page of app, then set URL to load to be the one passed in
-            if (initUrl == null || (this.urls.size() > 0)) {
+            if (initUrl == null) {
                 this.loadUrlIntoView(url);
             }
             // Otherwise use the URL specified in the activity's extras bundle
@@ -391,7 +387,7 @@ public class CordovaWebView extends WebView {
         String initUrl = this.getProperty("url", null);
 
         // If first page of app, then set URL to load to be the one passed in
-        if (initUrl == null || (this.urls.size() > 0)) {
+        if (initUrl == null) {
             this.loadUrlIntoView(url, time);
         }
         // Otherwise use the URL specified in the activity's extras bundle
@@ -419,10 +415,6 @@ public class CordovaWebView extends WebView {
             }
 
             this.pluginManager.init();
-
-            if (!this.useBrowserHistory) {
-                this.urls.push(url);
-            }
         }
 
         // Create a timeout timer for loadUrl
@@ -494,7 +486,7 @@ public class CordovaWebView extends WebView {
 
         // If not first page of app, then load immediately
         // Add support for browser history if we use it.
-        if ((url.startsWith("javascript:")) || this.urls.size() > 0 || this.canGoBack()) {
+        if ((url.startsWith("javascript:")) || this.canGoBack()) {
         }
 
         // If first page, then show splashscreen
@@ -542,25 +534,6 @@ public class CordovaWebView extends WebView {
         }
     }
 
-    /**
-     * Returns the top url on the stack without removing it from
-     * the stack.
-     */
-    public String peekAtUrlStack() {
-        if (this.urls.size() > 0) {
-            return this.urls.peek();
-        }
-        return "";
-    }
-
-    /**
-     * Add a url to the stack
-     *
-     * @param url
-     */
-    public void pushUrl(String url) {
-        this.urls.push(url);
-    }
 
     /**
      * Go to previous page in history.  (We manage our own history)
@@ -571,37 +544,15 @@ public class CordovaWebView extends WebView {
 
         // Check webview first to see if there is a history
         // This is needed to support curPage#diffLink, since they are added to appView's history, but not our history url array (JQMobile behavior)
-        if (super.canGoBack() && this.useBrowserHistory) {
+        if (super.canGoBack()) {
             printBackForwardList();
             super.goBack();
             
             return true;
         }
-        // If our managed history has prev url
-        else if (this.urls.size() > 1 && !this.useBrowserHistory) {
-            this.urls.pop();                // Pop current url
-            String url = this.urls.pop();   // Pop prev url that we want to load, since it will be added back by loadUrl()
-            this.loadUrl(url);
-            return true;
-        }
-
         return false;
     }
 
-    /**
-     * Return true if there is a history item.
-     *
-     * @return
-     */
-    public boolean canGoBack() {
-        if (super.canGoBack() && this.useBrowserHistory) {
-            return true;
-        }
-        else if (this.urls.size() > 1) {
-            return true;
-        }
-        return false;
-    }
 
     /**
      * Load the specified URL in the Cordova webview or a new browser instance.
@@ -627,12 +578,6 @@ public class CordovaWebView extends WebView {
             // Make sure url is in whitelist
             if (url.startsWith("file://") || url.indexOf(this.baseUrl) == 0 || Config.isUrlWhiteListed(url)) {
                 // TODO: What about params?
-
-                // Clear out current url from history, since it will be replacing it
-                if (clearHistory) {
-                    this.urls.clear();
-                }
-
                 // Load new URL
                 this.loadUrl(url);
             }
@@ -669,13 +614,6 @@ public class CordovaWebView extends WebView {
      *      <log level="DEBUG" />
      */
     private void loadConfiguration() {
-        // Config has already been loaded, and it stores these preferences on the Intent.
-        if("false".equals(this.getProperty("useBrowserHistory", "true")))
-        {
-            //Switch back to the old browser history and state the six month policy
-            this.useBrowserHistory = false;
-            Log.w(TAG, "useBrowserHistory=false is deprecated as of Cordova 2.2.0 and will be removed six months after the 2.2.0 release.  Please use the browser history and use history.back().");
-        }
  
         if ("true".equals(this.getProperty("fullscreen", "false"))) {
             this.cordova.getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
@@ -729,13 +667,7 @@ public class CordovaWebView extends WebView {
         }
         else if(keyCode == KeyEvent.KEYCODE_BACK)
         {
-            //Because exit is fired on the keyDown and not the key up on Android 4.x
-            //we need to check for this.
-            //Also, I really wished "canGoBack" worked!
-            if(this.useBrowserHistory)
-                return !(this.startOfHistory()) || this.bound;
-            else
-                return this.urls.size() > 1 || this.bound;
+            return !(this.startOfHistory()) || this.bound;
         }
         else if(keyCode == KeyEvent.KEYCODE_MENU)
         {

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/5d68d5a2/framework/src/org/apache/cordova/CordovaWebViewClient.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CordovaWebViewClient.java b/framework/src/org/apache/cordova/CordovaWebViewClient.java
index 8b023eb..209dd79 100755
--- a/framework/src/org/apache/cordova/CordovaWebViewClient.java
+++ b/framework/src/org/apache/cordova/CordovaWebViewClient.java
@@ -193,11 +193,7 @@ public class CordovaWebViewClient extends WebViewClient {
             // If our app or file:, then load into a new Cordova webview container by starting a new instance of our activity.
             // Our app continues to run.  When BACK is pressed, our app is redisplayed.
             if (url.startsWith("file://") || url.startsWith("data:") || url.indexOf(this.appView.baseUrl) == 0 || Config.isUrlWhiteListed(url)) {
-                //This will fix iFrames
-                if (appView.useBrowserHistory || url.startsWith("data:"))
-                    return false;
-                else
-                    this.appView.loadUrl(url);
+                return false;
             }
 
             // If not our application, let default viewer handle
@@ -248,12 +244,6 @@ public class CordovaWebViewClient extends WebViewClient {
      */
     @Override
     public void onPageStarted(WebView view, String url, Bitmap favicon) {
-        // Clear history so history.back() doesn't do anything.
-        // So we can reinit() native side CallbackServer & PluginManager.
-        if (!this.appView.useBrowserHistory) {
-            view.clearHistory();
-            this.doClearHistory = true;
-        }
 
         // Flush stale messages.
         this.appView.jsMessageQueue.reset();
@@ -392,23 +382,6 @@ public class CordovaWebViewClient extends WebViewClient {
         }
     }
 
-    /**
-     * Notify the host application to update its visited links database.
-     * 
-     * @param view          The WebView that is initiating the callback.
-     * @param url           The url being visited.
-     * @param isReload      True if this url is being reloaded.
-     */
-    @Override
-    public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
-        /*
-         * If you do a document.location.href the url does not get pushed on the stack
-         * so we do a check here to see if the url should be pushed.
-         */
-        if (!this.appView.peekAtUrlStack().equals(url)) {
-            this.appView.pushUrl(url);
-        }
-    }
 
     /**
      * Sets the authentication token.