summaryrefslogtreecommitdiffstats
path: root/android_webview/tools
diff options
context:
space:
mode:
authorboliu <boliu@chromium.org>2015-12-22 12:22:49 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-22 20:23:54 +0000
commit0e5acaac8e50041e2ed95350e153d8ed1f4bdb8b (patch)
treec7c26e635c6748c8e34c0d3c18ac5b9eca24ffa5 /android_webview/tools
parent4255f8330d187b1c7290d33d0830f66c47834281 (diff)
downloadchromium_src-0e5acaac8e50041e2ed95350e153d8ed1f4bdb8b.zip
chromium_src-0e5acaac8e50041e2ed95350e153d8ed1f4bdb8b.tar.gz
chromium_src-0e5acaac8e50041e2ed95350e153d8ed1f4bdb8b.tar.bz2
aw: Add a webview reset menu to webview shell
Menu items destroys and creates a new webview. This is for debugging crbug.com/539373 BUG=539373 Review URL: https://codereview.chromium.org/1538523005 Cr-Commit-Position: refs/heads/master@{#366637}
Diffstat (limited to 'android_webview/tools')
-rw-r--r--android_webview/tools/WebViewShell/res/layout/activity_webview_browser.xml4
-rw-r--r--android_webview/tools/WebViewShell/res/menu/main_menu.xml4
-rw-r--r--android_webview/tools/WebViewShell/res/values/strings.xml1
-rw-r--r--android_webview/tools/WebViewShell/src/org/chromium/webview_shell/WebViewBrowserActivity.java67
4 files changed, 49 insertions, 27 deletions
diff --git a/android_webview/tools/WebViewShell/res/layout/activity_webview_browser.xml b/android_webview/tools/WebViewShell/res/layout/activity_webview_browser.xml
index c7c3fc9..4e94e11 100644
--- a/android_webview/tools/WebViewShell/res/layout/activity_webview_browser.xml
+++ b/android_webview/tools/WebViewShell/res/layout/activity_webview_browser.xml
@@ -36,8 +36,4 @@
android:contentDescription="about webview"
android:onClick="showPopup" />
</LinearLayout>
- <WebView
- android:id="@+id/webview"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
</LinearLayout>
diff --git a/android_webview/tools/WebViewShell/res/menu/main_menu.xml b/android_webview/tools/WebViewShell/res/menu/main_menu.xml
index abddef3..a22610d 100644
--- a/android_webview/tools/WebViewShell/res/menu/main_menu.xml
+++ b/android_webview/tools/WebViewShell/res/menu/main_menu.xml
@@ -4,6 +4,8 @@
found in the LICENSE file. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/menu_reset_webview"
+ android:title="@string/menu_reset_webview"/>
<item android:id="@+id/menu_about"
android:title="@string/menu_about"/>
-</menu> \ No newline at end of file
+</menu>
diff --git a/android_webview/tools/WebViewShell/res/values/strings.xml b/android_webview/tools/WebViewShell/res/values/strings.xml
index 3c394e1..82ccaea 100644
--- a/android_webview/tools/WebViewShell/res/values/strings.xml
+++ b/android_webview/tools/WebViewShell/res/values/strings.xml
@@ -12,6 +12,7 @@
<string name="title_activity_browser">WebView Browser Tester</string>
<string name="title_activity_layout_test">WebView Layout Test</string>
<string name="title_activity_page_cycler">WebView Page Cycler Test</string>
+ <string name="menu_reset_webview">Destroy and create new WebView</string>
<string name="menu_about">About WebView</string>
<string name="load_url">Load URL</string>
</resources>
diff --git a/android_webview/tools/WebViewShell/src/org/chromium/webview_shell/WebViewBrowserActivity.java b/android_webview/tools/WebViewShell/src/org/chromium/webview_shell/WebViewBrowserActivity.java
index 103d35b..8ac9317 100644
--- a/android_webview/tools/WebViewShell/src/org/chromium/webview_shell/WebViewBrowserActivity.java
+++ b/android_webview/tools/WebViewShell/src/org/chromium/webview_shell/WebViewBrowserActivity.java
@@ -21,6 +21,8 @@ import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnKeyListener;
+import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
import android.view.inputmethod.InputMethodManager;
import android.webkit.GeolocationPermissions;
@@ -31,7 +33,6 @@ import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.PopupMenu;
import android.widget.TextView;
@@ -155,8 +156,34 @@ public class WebViewBrowserActivity extends Activity implements PopupMenu.OnMenu
WebView.setWebContentsDebuggingEnabled(true);
}
setContentView(R.layout.activity_webview_browser);
- mWebView = (WebView) findViewById(R.id.webview);
- WebSettings settings = mWebView.getSettings();
+ mUrlBar = (EditText) findViewById(R.id.url_field);
+ mUrlBar.setOnKeyListener(new OnKeyListener() {
+ public boolean onKey(View view, int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
+ loadUrlFromUrlBar(view);
+ return true;
+ }
+ return false;
+ }
+ });
+
+ createAndInitializeWebView();
+
+ String url = getUrlFromIntent(getIntent());
+ if (url != null) {
+ setUrlBarText(url);
+ setUrlFail(false);
+ loadUrlFromUrlBar(mUrlBar);
+ }
+ }
+
+ ViewGroup getContainer() {
+ return (ViewGroup) findViewById(R.id.container);
+ }
+
+ private void createAndInitializeWebView() {
+ WebView webview = new WebView(this);
+ WebSettings settings = webview.getSettings();
initializeSettings(settings);
Matcher matcher = WEBVIEW_VERSION_PATTERN.matcher(settings.getUserAgentString());
@@ -167,7 +194,7 @@ public class WebViewBrowserActivity extends Activity implements PopupMenu.OnMenu
}
setTitle(getResources().getString(R.string.title_activity_browser) + " " + mWebViewVersion);
- mWebView.setWebViewClient(new WebViewClient() {
+ webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
setUrlBarText(url);
@@ -190,7 +217,7 @@ public class WebViewBrowserActivity extends Activity implements PopupMenu.OnMenu
}
});
- mWebView.setWebChromeClient(new WebChromeClient() {
+ webview.setWebChromeClient(new WebChromeClient() {
@Override
public Bitmap getDefaultVideoPoster() {
return Bitmap.createBitmap(
@@ -209,23 +236,10 @@ public class WebViewBrowserActivity extends Activity implements PopupMenu.OnMenu
}
});
- mUrlBar = (EditText) findViewById(R.id.url_field);
- mUrlBar.setOnKeyListener(new OnKeyListener() {
- public boolean onKey(View view, int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
- loadUrlFromUrlBar(view);
- return true;
- }
- return false;
- }
- });
-
- String url = getUrlFromIntent(getIntent());
- if (url != null) {
- setUrlBarText(url);
- setUrlFail(false);
- loadUrlFromUrlBar(mUrlBar);
- }
+ mWebView = webview;
+ getContainer().addView(
+ webview, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+ setUrlBarText("");
}
// WebKit permissions which can be granted because either they have no associated Android
@@ -327,6 +341,15 @@ public class WebViewBrowserActivity extends Activity implements PopupMenu.OnMenu
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
+ case R.id.menu_reset_webview:
+ if (mWebView != null) {
+ ViewGroup container = getContainer();
+ container.removeView(mWebView);
+ mWebView.destroy();
+ mWebView = null;
+ }
+ createAndInitializeWebView();
+ return true;
case R.id.menu_about:
about();
hideKeyboard(mUrlBar);