Merge "Fix a monkey crash when the new WebView is destroyed."
This commit is contained in:
@@ -785,11 +785,7 @@ class BrowserFrame extends Handler {
|
||||
* @return The BrowserFrame object stored in the new WebView.
|
||||
*/
|
||||
private BrowserFrame createWindow(boolean dialog, boolean userGesture) {
|
||||
WebView w = mCallbackProxy.createWindow(dialog, userGesture);
|
||||
if (w != null) {
|
||||
return w.getWebViewCore().getBrowserFrame();
|
||||
}
|
||||
return null;
|
||||
return mCallbackProxy.createWindow(dialog, userGesture);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1098,7 +1098,7 @@ class CallbackProxy extends Handler {
|
||||
}
|
||||
}
|
||||
|
||||
public WebView createWindow(boolean dialog, boolean userGesture) {
|
||||
public BrowserFrame createWindow(boolean dialog, boolean userGesture) {
|
||||
// Do an unsynchronized quick check to avoid posting if no callback has
|
||||
// been set.
|
||||
if (mWebChromeClient == null) {
|
||||
@@ -1122,9 +1122,15 @@ class CallbackProxy extends Handler {
|
||||
|
||||
WebView w = transport.getWebView();
|
||||
if (w != null) {
|
||||
w.getWebViewCore().initializeSubwindow();
|
||||
WebViewCore core = w.getWebViewCore();
|
||||
// If WebView.destroy() has been called, core may be null. Skip
|
||||
// initialization in that case and return null.
|
||||
if (core != null) {
|
||||
core.initializeSubwindow();
|
||||
return core.getBrowserFrame();
|
||||
}
|
||||
}
|
||||
return w;
|
||||
return null;
|
||||
}
|
||||
|
||||
public void onRequestFocus() {
|
||||
|
||||
Reference in New Issue
Block a user