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

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

Issue 291483010: <webview>: Move name attribute to chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@newwindow_refactor
Patch Set: Merge with ToT Created 6 years, 7 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/debug/stack_trace.h" 7 #include "base/debug/stack_trace.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 item_value->SetInteger(webview::kMenuItemCommandId, 303 item_value->SetInteger(webview::kMenuItemCommandId,
304 menu_model.GetCommandIdAt(i)); 304 menu_model.GetCommandIdAt(i));
305 item_value->SetString(webview::kMenuItemLabel, menu_model.GetLabelAt(i)); 305 item_value->SetString(webview::kMenuItemLabel, menu_model.GetLabelAt(i));
306 items->Append(item_value); 306 items->Append(item_value);
307 } 307 }
308 return items.Pass(); 308 return items.Pass();
309 } 309 }
310 310
311 void WebViewGuest::Attach(WebContents* embedder_web_contents, 311 void WebViewGuest::Attach(WebContents* embedder_web_contents,
312 const base::DictionaryValue& args) { 312 const base::DictionaryValue& args) {
313 std::string name;
314 args.GetString(webview::kName, &name);
315 if (name_.empty())
lazyboy 2014/05/21 16:27:05 I think we had a note/comment here about which nam
Fady Samuel 2014/05/21 16:56:49 Done.
316 name_ = name;
317 ReportFrameNameChange(name_);
318
313 std::string user_agent_override; 319 std::string user_agent_override;
314 if (args.GetString(webview::kParameterUserAgentOverride, 320 if (args.GetString(webview::kParameterUserAgentOverride,
315 &user_agent_override)) { 321 &user_agent_override)) {
316 SetUserAgentOverride(user_agent_override); 322 SetUserAgentOverride(user_agent_override);
317 } else { 323 } else {
318 SetUserAgentOverride(""); 324 SetUserAgentOverride("");
319 } 325 }
320 326
321 GuestViewBase::Attach(embedder_web_contents, args); 327 GuestViewBase::Attach(embedder_web_contents, args);
322 328
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 entry->SetIsOverridingUserAgent(!user_agent.empty()); 864 entry->SetIsOverridingUserAgent(!user_agent.empty());
859 if (!attached()) { 865 if (!attached()) {
860 // We cannot reload now because all resource loads are suspended until 866 // We cannot reload now because all resource loads are suspended until
861 // attachment. 867 // attachment.
862 pending_reload_on_attachment_ = true; 868 pending_reload_on_attachment_ = true;
863 return; 869 return;
864 } 870 }
865 guest_web_contents()->GetController().Reload(false); 871 guest_web_contents()->GetController().Reload(false);
866 } 872 }
867 873
874 void WebViewGuest::RenderViewReady() {
875 guest_web_contents()->SetMainFrameName(name_);
876 }
877
878 void WebViewGuest::ReportFrameNameChange(const std::string& name) {
879 name_ = name;
880 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
881 args->SetString(webview::kName, name);
882 DispatchEvent(
883 new GuestViewBase::Event(webview::kEventFrameNameChanged, args.Pass()));
884 }
885
868 void WebViewGuest::LoadHandlerCalled() { 886 void WebViewGuest::LoadHandlerCalled() {
869 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 887 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
870 DispatchEvent( 888 DispatchEvent(
871 new GuestViewBase::Event(webview::kEventContentLoad, args.Pass())); 889 new GuestViewBase::Event(webview::kEventContentLoad, args.Pass()));
872 } 890 }
873 891
874 void WebViewGuest::LoadRedirect(const GURL& old_url, 892 void WebViewGuest::LoadRedirect(const GURL& old_url,
875 const GURL& new_url, 893 const GURL& new_url,
876 bool is_top_level) { 894 bool is_top_level) {
877 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 895 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 return; 1216 return;
1199 1217
1200 // TODO(lazyboy): Implement. 1218 // TODO(lazyboy): Implement.
1201 DCHECK(!items); 1219 DCHECK(!items);
1202 1220
1203 ContextMenuDelegate* menu_delegate = 1221 ContextMenuDelegate* menu_delegate =
1204 ContextMenuDelegate::FromWebContents(guest_web_contents()); 1222 ContextMenuDelegate::FromWebContents(guest_web_contents());
1205 menu_delegate->ShowMenu(pending_menu_.Pass()); 1223 menu_delegate->ShowMenu(pending_menu_.Pass());
1206 } 1224 }
1207 1225
1226 void WebViewGuest::SetName(const std::string& name) {
1227 if (name_ == name)
1228 return;
1229 name_ = name;
1230 guest_web_contents()->SetMainFrameName(name);
1231 }
1232
1208 void WebViewGuest::Destroy() { 1233 void WebViewGuest::Destroy() {
1209 if (!attached() && GetOpener()) 1234 if (!attached() && GetOpener())
1210 GetOpener()->pending_new_windows_.erase(this); 1235 GetOpener()->pending_new_windows_.erase(this);
1211 DestroyUnattachedWindows(); 1236 DestroyUnattachedWindows();
1212 GuestViewBase::Destroy(); 1237 GuestViewBase::Destroy();
1213 } 1238 }
1214 1239
1215 void WebViewGuest::AddNewContents(content::WebContents* source, 1240 void WebViewGuest::AddNewContents(content::WebContents* source,
1216 content::WebContents* new_contents, 1241 content::WebContents* new_contents,
1217 WindowOpenDisposition disposition, 1242 WindowOpenDisposition disposition,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 1281
1257 void WebViewGuest::WebContentsCreated(WebContents* source_contents, 1282 void WebViewGuest::WebContentsCreated(WebContents* source_contents,
1258 int opener_render_frame_id, 1283 int opener_render_frame_id,
1259 const base::string16& frame_name, 1284 const base::string16& frame_name,
1260 const GURL& target_url, 1285 const GURL& target_url,
1261 content::WebContents* new_contents) { 1286 content::WebContents* new_contents) {
1262 WebViewGuest* guest = WebViewGuest::FromWebContents(new_contents); 1287 WebViewGuest* guest = WebViewGuest::FromWebContents(new_contents);
1263 CHECK(guest); 1288 CHECK(guest);
1264 guest->SetOpener(this); 1289 guest->SetOpener(this);
1265 std::string guest_name = base::UTF16ToUTF8(frame_name); 1290 std::string guest_name = base::UTF16ToUTF8(frame_name);
1291 guest->name_ = guest_name;
1266 pending_new_windows_.insert( 1292 pending_new_windows_.insert(
1267 std::make_pair(guest, NewWindowInfo(target_url, guest_name))); 1293 std::make_pair(guest, NewWindowInfo(target_url, guest_name)));
1268 } 1294 }
1269 1295
1296 void WebViewGuest::FrameNameChanged(int render_frame_id,
1297 bool is_top_level,
1298 const std::string& name) {
1299 if (!is_top_level)
1300 return;
1301
1302 if (name_ == name)
1303 return;
1304
1305 ReportFrameNameChange(name);
1306 }
1307
1270 void WebViewGuest::LoadURLWithParams(const GURL& url, 1308 void WebViewGuest::LoadURLWithParams(const GURL& url,
1271 const content::Referrer& referrer, 1309 const content::Referrer& referrer,
1272 content::PageTransition transition_type, 1310 content::PageTransition transition_type,
1273 content::WebContents* web_contents) { 1311 content::WebContents* web_contents) {
1274 content::NavigationController::LoadURLParams load_url_params(url); 1312 content::NavigationController::LoadURLParams load_url_params(url);
1275 load_url_params.referrer = referrer; 1313 load_url_params.referrer = referrer;
1276 load_url_params.transition_type = transition_type; 1314 load_url_params.transition_type = transition_type;
1277 load_url_params.extra_headers = std::string(); 1315 load_url_params.extra_headers = std::string();
1278 if (is_overriding_user_agent_) { 1316 if (is_overriding_user_agent_) {
1279 load_url_params.override_user_agent = 1317 load_url_params.override_user_agent =
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1350 bool allow, 1388 bool allow,
1351 const std::string& user_input) { 1389 const std::string& user_input) {
1352 WebViewGuest* guest = 1390 WebViewGuest* guest =
1353 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id); 1391 WebViewGuest::From(embedder_render_process_id(), new_window_instance_id);
1354 if (!guest) 1392 if (!guest)
1355 return; 1393 return;
1356 1394
1357 if (!allow) 1395 if (!allow)
1358 guest->Destroy(); 1396 guest->Destroy();
1359 } 1397 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698