Index: extensions/browser/guest_view/web_view/web_view_guest.cc |
diff --git a/chrome/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc |
similarity index 95% |
rename from chrome/browser/guest_view/web_view/web_view_guest.cc |
rename to extensions/browser/guest_view/web_view/web_view_guest.cc |
index 98a606b615c2f775e9a2b6a0785677efe70ba07f..5c6cfe02aee4b8800243e77bb5d997816bc6fc9e 100644 |
--- a/chrome/browser/guest_view/web_view/web_view_guest.cc |
+++ b/extensions/browser/guest_view/web_view/web_view_guest.cc |
@@ -2,18 +2,13 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/guest_view/web_view/web_view_guest.h" |
+#include "extensions/browser/guest_view/web_view/web_view_guest.h" |
#include "base/message_loop/message_loop.h" |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
-#include "chrome/browser/extensions/api/web_request/web_request_api.h" |
#include "chrome/browser/extensions/api/web_view/web_view_internal_api.h" |
-#include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h" |
-#include "chrome/browser/guest_view/web_view/web_view_constants.h" |
-#include "chrome/browser/guest_view/web_view/web_view_permission_helper.h" |
-#include "chrome/browser/guest_view/web_view/web_view_permission_types.h" |
-#include "chrome/browser/guest_view/web_view/web_view_renderer_state.h" |
+#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/child_process_security_policy.h" |
#include "content/public/browser/native_web_keyboard_event.h" |
@@ -35,9 +30,14 @@ |
#include "content/public/common/result_codes.h" |
#include "content/public/common/stop_find_action.h" |
#include "content/public/common/url_constants.h" |
+#include "extensions/browser/api/extensions_api_client.h" |
#include "extensions/browser/extension_system.h" |
#include "extensions/browser/guest_view/guest_view_constants.h" |
#include "extensions/browser/guest_view/guest_view_manager.h" |
+#include "extensions/browser/guest_view/web_view/web_view_constants.h" |
+#include "extensions/browser/guest_view/web_view/web_view_permission_helper.h" |
+#include "extensions/browser/guest_view/web_view/web_view_permission_types.h" |
+#include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" |
#include "extensions/common/constants.h" |
#include "extensions/common/extension_messages.h" |
#include "ipc/ipc_message_macros.h" |
@@ -102,19 +102,6 @@ std::string GetStoragePartitionIdFromSiteURL(const GURL& site_url) { |
return (persist_storage ? webview::kPersistPrefix : "") + partition_id; |
} |
-void RemoveWebViewEventListenersOnIOThread( |
- void* profile, |
- const std::string& extension_id, |
- int embedder_process_id, |
- int view_instance_id) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
- ExtensionWebRequestEventRouter::GetInstance()->RemoveWebViewEventListeners( |
- profile, |
- extension_id, |
- embedder_process_id, |
- view_instance_id); |
-} |
- |
void ParsePartitionParam(const base::DictionaryValue& create_params, |
std::string* storage_partition_id, |
bool* persist_storage) { |
@@ -325,21 +312,9 @@ void WebViewGuest::DidStopLoading() { |
} |
void WebViewGuest::EmbedderDestroyed() { |
- // TODO(fsamuel): WebRequest event listeners for <webview> should survive |
- // reparenting of a <webview> within a single embedder. Right now, we keep |
- // around the browser state for the listener for the lifetime of the embedder. |
- // Ideally, the lifetime of the listeners should match the lifetime of the |
- // <webview> DOM node. Once http://crbug.com/156219 is resolved we can move |
- // the call to RemoveWebViewEventListenersOnIOThread back to |
- // WebViewGuest::WebContentsDestroyed. |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind( |
- &RemoveWebViewEventListenersOnIOThread, |
- browser_context(), embedder_extension_id(), |
- embedder_render_process_id(), |
- view_instance_id())); |
+ if (web_view_guest_delegate_) { |
Fady Samuel
2014/08/23 11:00:02
Remove block since it's a single line statement.
|
+ web_view_guest_delegate_->OnEmbedderDestroyed(); |
+ } |
} |
void WebViewGuest::GuestDestroyed() { |
@@ -636,7 +611,8 @@ WebViewGuest::WebViewGuest(content::BrowserContext* browser_context, |
is_overriding_user_agent_(false), |
find_helper_(this), |
javascript_dialog_helper_(this) { |
- web_view_guest_delegate_.reset(new ChromeWebViewGuestDelegate(this)); |
+ web_view_guest_delegate_.reset( |
+ ExtensionsAPIClient::Get()->CreateWebViewGuestDelegate(this)); |
} |
WebViewGuest::~WebViewGuest() { |