summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2011-06-04 20:00:23 -0700
committerJohn Reck <jreck@google.com>2011-06-04 20:00:23 -0700
commitf33b1637487af3786ee30f295f2c84db6db1e6b3 (patch)
tree2a3f069c67f2b40099c9b934021582be779b563e /src/com/android/browser
parent919bc4be3f1577c86608209ad43a9eef1b9fc434 (diff)
downloadpackages_apps_browser-f33b1637487af3786ee30f295f2c84db6db1e6b3.zip
packages_apps_browser-f33b1637487af3786ee30f295f2c84db6db1e6b3.tar.gz
packages_apps_browser-f33b1637487af3786ee30f295f2c84db6db1e6b3.tar.bz2
Add freeze tab menu option
Adds a freeze tab menu option hidden behind about:debug for now. Change-Id: I1b321de6a5dbcb13e87f6e658439f727970b0e4f
Diffstat (limited to 'src/com/android/browser')
-rw-r--r--src/com/android/browser/Controller.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 3974a9c..6a951c2 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -81,8 +81,10 @@ import com.android.browser.provider.BrowserProvider;
import com.android.browser.search.SearchEngine;
import com.android.common.Search;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.IOException;
import java.net.URLEncoder;
import java.util.Calendar;
import java.util.HashMap;
@@ -1494,6 +1496,7 @@ public class Controller
final MenuItem counter = menu.findItem(R.id.dump_counters_menu_id);
counter.setVisible(showDebugSettings);
counter.setEnabled(showDebugSettings);
+ menu.findItem(R.id.freeze_tab_menu_id).setVisible(showDebugSettings);
final MenuItem newtab = menu.findItem(R.id.new_tab_menu_id);
newtab.setEnabled(getTabControl().canCreateNewTab());
@@ -1600,6 +1603,26 @@ public class Controller
getCurrentTopWebView().showFindDialog(null, true);
break;
+ case R.id.freeze_tab_menu_id:
+ // TODO: Show error messages
+ WebView source = getCurrentTopWebView();
+ if (source == null) break;
+ Tab t = createNewTab(false, true, false);
+ if (t == null) break;
+ WebView pinned = t.getWebView();
+ if (pinned == null) break;
+ try {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ source.saveViewState(bos);
+ ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+ pinned.loadViewState(bis);
+ bis.close();
+ bos.close();
+ } catch (IOException e) {
+ closeTab(t);
+ }
+ break;
+
case R.id.save_webarchive_menu_id:
String state = Environment.getExternalStorageState();
if (!Environment.MEDIA_MOUNTED.equals(state)) {