 Chromium Code Reviews
 Chromium Code Reviews Issue 291483010:
  <webview>: Move name attribute to chrome  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@newwindow_refactor
    
  
    Issue 291483010:
  <webview>: Move name attribute to chrome  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@newwindow_refactor| Index: chrome/browser/guest_view/web_view/web_view_guest.cc | 
| diff --git a/chrome/browser/guest_view/web_view/web_view_guest.cc b/chrome/browser/guest_view/web_view/web_view_guest.cc | 
| index 465495e7a3c9cfd107f733072dbdaa9218b49dcd..5980b36d106906acb1905bb485946f862d7461bf 100644 | 
| --- a/chrome/browser/guest_view/web_view/web_view_guest.cc | 
| +++ b/chrome/browser/guest_view/web_view/web_view_guest.cc | 
| @@ -310,6 +310,12 @@ scoped_ptr<base::ListValue> WebViewGuest::MenuModelToValue( | 
| void WebViewGuest::Attach(WebContents* embedder_web_contents, | 
| const base::DictionaryValue& args) { | 
| + std::string name; | 
| + args.GetString(webview::kName, &name); | 
| + 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.
 | 
| + name_ = name; | 
| + ReportFrameNameChange(name_); | 
| + | 
| std::string user_agent_override; | 
| if (args.GetString(webview::kParameterUserAgentOverride, | 
| &user_agent_override)) { | 
| @@ -865,6 +871,18 @@ void WebViewGuest::UserAgentOverrideSet(const std::string& user_agent) { | 
| guest_web_contents()->GetController().Reload(false); | 
| } | 
| +void WebViewGuest::RenderViewReady() { | 
| + guest_web_contents()->SetMainFrameName(name_); | 
| +} | 
| + | 
| +void WebViewGuest::ReportFrameNameChange(const std::string& name) { | 
| + name_ = name; | 
| + scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 
| + args->SetString(webview::kName, name); | 
| + DispatchEvent( | 
| + new GuestViewBase::Event(webview::kEventFrameNameChanged, args.Pass())); | 
| +} | 
| + | 
| void WebViewGuest::LoadHandlerCalled() { | 
| scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 
| DispatchEvent( | 
| @@ -1205,6 +1223,13 @@ void WebViewGuest::ShowContextMenu(int request_id, | 
| menu_delegate->ShowMenu(pending_menu_.Pass()); | 
| } | 
| +void WebViewGuest::SetName(const std::string& name) { | 
| + if (name_ == name) | 
| + return; | 
| + name_ = name; | 
| + guest_web_contents()->SetMainFrameName(name); | 
| +} | 
| + | 
| void WebViewGuest::Destroy() { | 
| if (!attached() && GetOpener()) | 
| GetOpener()->pending_new_windows_.erase(this); | 
| @@ -1263,10 +1288,23 @@ void WebViewGuest::WebContentsCreated(WebContents* source_contents, | 
| CHECK(guest); | 
| guest->SetOpener(this); | 
| std::string guest_name = base::UTF16ToUTF8(frame_name); | 
| + guest->name_ = guest_name; | 
| pending_new_windows_.insert( | 
| std::make_pair(guest, NewWindowInfo(target_url, guest_name))); | 
| } | 
| +void WebViewGuest::FrameNameChanged(int render_frame_id, | 
| + bool is_top_level, | 
| + const std::string& name) { | 
| + if (!is_top_level) | 
| + return; | 
| + | 
| + if (name_ == name) | 
| + return; | 
| + | 
| + ReportFrameNameChange(name); | 
| +} | 
| + | 
| void WebViewGuest::LoadURLWithParams(const GURL& url, | 
| const content::Referrer& referrer, | 
| content::PageTransition transition_type, |