Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: chrome/browser/guest_view/web_view/web_view_guest.cc

Issue 306003002: Move guest lifetime management to chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/guest_view/web_view/web_view_guest.h" 5 #include "chrome/browser/guest_view/web_view/web_view_guest.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 } 170 }
171 171
172 } // namespace 172 } // namespace
173 173
174 WebViewGuest::WebViewGuest(int guest_instance_id, 174 WebViewGuest::WebViewGuest(int guest_instance_id,
175 WebContents* guest_web_contents, 175 WebContents* guest_web_contents,
176 const std::string& embedder_extension_id) 176 const std::string& embedder_extension_id)
177 : GuestView<WebViewGuest>(guest_instance_id, 177 : GuestView<WebViewGuest>(guest_instance_id,
178 guest_web_contents, 178 guest_web_contents,
179 embedder_extension_id), 179 embedder_extension_id),
180 WebContentsObserver(guest_web_contents),
181 script_executor_(new extensions::ScriptExecutor(guest_web_contents, 180 script_executor_(new extensions::ScriptExecutor(guest_web_contents,
182 &script_observers_)), 181 &script_observers_)),
183 pending_context_menu_request_id_(0), 182 pending_context_menu_request_id_(0),
184 next_permission_request_id_(0), 183 next_permission_request_id_(0),
185 is_overriding_user_agent_(false), 184 is_overriding_user_agent_(false),
186 pending_reload_on_attachment_(false), 185 pending_reload_on_attachment_(false),
187 main_frame_id_(0), 186 main_frame_id_(0),
188 chromevox_injected_(false), 187 chromevox_injected_(false),
189 find_helper_(this), 188 find_helper_(this),
190 javascript_dialog_helper_(this) { 189 javascript_dialog_helper_(this) {
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 } 875 }
877 876
878 void WebViewGuest::WebContentsDestroyed() { 877 void WebViewGuest::WebContentsDestroyed() {
879 // Clean up custom context menu items for this guest. 878 // Clean up custom context menu items for this guest.
880 extensions::MenuManager* menu_manager = extensions::MenuManager::Get( 879 extensions::MenuManager* menu_manager = extensions::MenuManager::Get(
881 Profile::FromBrowserContext(browser_context())); 880 Profile::FromBrowserContext(browser_context()));
882 menu_manager->RemoveAllContextItems(extensions::MenuItem::ExtensionKey( 881 menu_manager->RemoveAllContextItems(extensions::MenuItem::ExtensionKey(
883 embedder_extension_id(), view_instance_id())); 882 embedder_extension_id(), view_instance_id()));
884 883
885 RemoveWebViewFromExtensionRendererState(web_contents()); 884 RemoveWebViewFromExtensionRendererState(web_contents());
885 GuestViewBase::WebContentsDestroyed();
886 } 886 }
887 887
888 void WebViewGuest::UserAgentOverrideSet(const std::string& user_agent) { 888 void WebViewGuest::UserAgentOverrideSet(const std::string& user_agent) {
889 content::NavigationController& controller = 889 content::NavigationController& controller =
890 guest_web_contents()->GetController(); 890 guest_web_contents()->GetController();
891 content::NavigationEntry* entry = controller.GetVisibleEntry(); 891 content::NavigationEntry* entry = controller.GetVisibleEntry();
892 if (!entry) 892 if (!entry)
893 return; 893 return;
894 entry->SetIsOverridingUserAgent(!user_agent.empty()); 894 entry->SetIsOverridingUserAgent(!user_agent.empty());
895 if (!attached()) { 895 if (!attached()) {
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
1409 bool allow, 1409 bool allow,
1410 const std::string& user_input) { 1410 const std::string& user_input) {
1411 WebViewGuest* guest = 1411 WebViewGuest* guest =
1412 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); 1412 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id);
1413 if (!guest) 1413 if (!guest)
1414 return; 1414 return;
1415 1415
1416 if (!allow) 1416 if (!allow)
1417 guest->Destroy(); 1417 guest->Destroy();
1418 } 1418 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698