diff options
author | boliu <boliu@chromium.org> | 2015-12-22 12:22:49 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-22 20:23:54 +0000 |
commit | 0e5acaac8e50041e2ed95350e153d8ed1f4bdb8b (patch) | |
tree | c7c26e635c6748c8e34c0d3c18ac5b9eca24ffa5 /android_webview/tools | |
parent | 4255f8330d187b1c7290d33d0830f66c47834281 (diff) | |
download | chromium_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')
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); |