Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / android_webview / native / aw_contents.cc
index 19ed04f..6be0974 100644 (file)
@@ -267,7 +267,7 @@ void AwContents::SetAwAutofillClient(jobject client) {
 }
 
 AwContents::~AwContents() {
-  DCHECK(AwContents::FromWebContents(web_contents_.get()) == this);
+  DCHECK_EQ(this, AwContents::FromWebContents(web_contents_.get()));
   DCHECK(!hardware_renderer_.get());
   web_contents_->RemoveUserData(kAwContentsUserDataKey);
   if (find_helper_.get())
@@ -300,6 +300,10 @@ void AwContents::Destroy(JNIEnv* env, jobject obj) {
   AwContentsClientBridgeBase::Disassociate(web_contents_.get());
   contents_client_bridge_.reset();
 
+  // Do not wait until the WebContents are deleted asynchronously to clear
+  // the delegate and stop sending callbacks.
+  web_contents_->SetDelegate(NULL);
+
   // We do not delete AwContents immediately. Some applications try to delete
   // Webview in ShouldOverrideUrlLoading callback, which is a sync IPC from
   // Webkit.
@@ -869,9 +873,6 @@ void AwContents::SetIsPaused(JNIEnv* env, jobject obj, bool paused) {
       ContentViewCore::FromWebContents(web_contents_.get());
   if (cvc) {
     cvc->PauseOrResumeGeolocation(paused);
-    if (paused) {
-      cvc->PauseVideo();
-    }
   }
 }