summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/browser/Controller.java6
-rw-r--r--src/com/android/browser/PhoneUi.java13
-rw-r--r--src/com/android/browser/SnapshotByteArrayOutputStream.java5
-rw-r--r--src/com/android/browser/SnapshotTab.java11
4 files changed, 24 insertions, 11 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 686cfcda0..0fc9b8a0d 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2394,7 +2394,11 @@ public class Controller
*/
@Override
public void closeTab(Tab tab) {
- removeTab(tab);
+ if (tab == mTabControl.getCurrentTab()) {
+ closeCurrentTab();
+ } else {
+ removeTab(tab);
+ }
}
// Called when loading from context menu or LOAD_URL message
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index d39909e0a..b0f3d7412 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -196,8 +196,11 @@ public class PhoneUi extends BaseUi {
public void updateMenuState(Tab tab, Menu menu) {
MenuItem bm = menu.findItem(R.id.bookmarks_menu_id);
if (bm != null) {
- String url = tab.getUrl();
- boolean isDataUrl = DataUri.isDataUri(url);
+ boolean isDataUrl = false;
+ if (tab != null) {
+ String url = tab.getUrl();
+ isDataUrl = DataUri.isDataUri(url);
+ }
bm.setVisible(!showingNavScreen() && !isDataUrl);
}
MenuItem nt = menu.findItem(R.id.new_tab_menu_id);
@@ -322,11 +325,17 @@ public class PhoneUi extends BaseUi {
mActiveTab.capture();
if (mAnimScreen == null) {
mAnimScreen = new AnimScreen(mActivity);
+ } else {
+ mAnimScreen.mMain.setAlpha(1f);
+ mAnimScreen.mTitle.setAlpha(1f);
+ mAnimScreen.setScaleFactor(1f);
}
mAnimScreen.set(getTitleBar(), getWebView());
mCustomViewContainer.addView(mAnimScreen.mMain, COVER_SCREEN_PARAMS);
mCustomViewContainer.setVisibility(View.VISIBLE);
mCustomViewContainer.bringToFront();
+ mAnimScreen.mMain.layout(0, 0, mContentView.getWidth(),
+ mContentView.getHeight());
int fromLeft = 0;
int fromTop = getTitleBar().getHeight();
int fromRight = mContentView.getWidth();
diff --git a/src/com/android/browser/SnapshotByteArrayOutputStream.java b/src/com/android/browser/SnapshotByteArrayOutputStream.java
index bfd1a76a9..127eee802 100644
--- a/src/com/android/browser/SnapshotByteArrayOutputStream.java
+++ b/src/com/android/browser/SnapshotByteArrayOutputStream.java
@@ -21,8 +21,9 @@ import java.io.OutputStream;
public class SnapshotByteArrayOutputStream extends OutputStream {
- // Maximum size, just below CursorWindow's 2mb row limit
- private static final int MAX_SIZE = 2000000;
+ // Maximum size, this needs to be small enough such that an entire row
+ // can fit in CursorWindow's 2MB limit
+ private static final int MAX_SIZE = 1700000;
private ByteArrayOutputStream mStream;
public SnapshotByteArrayOutputStream() {
diff --git a/src/com/android/browser/SnapshotTab.java b/src/com/android/browser/SnapshotTab.java
index cc6eeb772..d9c71f03f 100644
--- a/src/com/android/browser/SnapshotTab.java
+++ b/src/com/android/browser/SnapshotTab.java
@@ -189,17 +189,16 @@ public class SnapshotTab extends Tab {
if (web != null) {
byte[] data = result.getBlob(4);
ByteArrayInputStream bis = new ByteArrayInputStream(data);
- try {
- GZIPInputStream stream = new GZIPInputStream(bis);
- web.loadViewState(stream);
- } catch (Exception e) {
- Log.w(LOGTAG, "Failed to load view state", e);
- }
+ GZIPInputStream stream = new GZIPInputStream(bis);
+ web.loadViewState(stream);
}
mTab.mBackgroundColor = result.getInt(5);
mTab.mDateCreated = result.getLong(6);
mTab.mWebViewController.onPageFinished(mTab);
}
+ } catch (Exception e) {
+ Log.w(LOGTAG, "Failed to load view state, closing tab", e);
+ mTab.mWebViewController.closeTab(mTab);
} finally {
if (result != null) {
result.close();