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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 2383573002: [DO NOT COMMIT] Remove chrome::NOTIFICATION_RETARGETING
Patch Set: Rebase on ToT Created 4 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <utility> 10 #include <utility>
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 for (auto& observer : observers_) 568 for (auto& observer : observers_)
569 observer.ResetWebContents(); 569 observer.ResetWebContents();
570 570
571 SetDelegate(NULL); 571 SetDelegate(NULL);
572 } 572 }
573 573
574 WebContentsImpl* WebContentsImpl::CreateWithOpener( 574 WebContentsImpl* WebContentsImpl::CreateWithOpener(
575 const WebContents::CreateParams& params, 575 const WebContents::CreateParams& params,
576 FrameTreeNode* opener) { 576 FrameTreeNode* opener) {
577 TRACE_EVENT0("browser", "WebContentsImpl::CreateWithOpener"); 577 TRACE_EVENT0("browser", "WebContentsImpl::CreateWithOpener");
578 LOG(ERROR) << "WCI::CreateWithOpener: "
579 << " source_wc:" << params.source_web_contents
580 << " opener:" << opener
581 << " disposition:" << (int) params.disposition
582 << " context_menu:" << params.created_from_context_menu;
578 WebContentsImpl* new_contents = new WebContentsImpl(params.browser_context); 583 WebContentsImpl* new_contents = new WebContentsImpl(params.browser_context);
579 584
580 FrameTreeNode* new_root = new_contents->GetFrameTree()->root(); 585 FrameTreeNode* new_root = new_contents->GetFrameTree()->root();
581 586
582 if (!params.opener_suppressed && opener) { 587 if (!params.opener_suppressed && opener) {
583 new_root->SetOpener(opener); 588 new_root->SetOpener(opener);
584 new_contents->created_with_opener_ = true; 589 new_contents->created_with_opener_ = true;
585 } 590 }
586 591
587 // If the opener is sandboxed, a new popup must inherit the opener's sandbox 592 // If the opener is sandboxed, a new popup must inherit the opener's sandbox
(...skipping 18 matching lines...) Expand all
606 611
607 if (params.guest_delegate) { 612 if (params.guest_delegate) {
608 // This makes |new_contents| act as a guest. 613 // This makes |new_contents| act as a guest.
609 // For more info, see comment above class BrowserPluginGuest. 614 // For more info, see comment above class BrowserPluginGuest.
610 BrowserPluginGuest::Create(new_contents, params.guest_delegate); 615 BrowserPluginGuest::Create(new_contents, params.guest_delegate);
611 // We are instantiating a WebContents for browser plugin. Set its subframe 616 // We are instantiating a WebContents for browser plugin. Set its subframe
612 // bit to true. 617 // bit to true.
613 new_contents->is_subframe_ = true; 618 new_contents->is_subframe_ = true;
614 } 619 }
615 new_contents->Init(params); 620 new_contents->Init(params);
621
622 if (params.source_web_contents &&
623 (params.created_from_context_menu || opener)) {
624 LOG(ERROR) << "WCI::CreateWithOpener: "
625 << " dispatching notification";
626 WebContentsImpl* opener_contents =
627 static_cast<WebContentsImpl*>(params.source_web_contents);
628 RenderFrameHost* opener_rfh = RenderFrameHost::FromID(
629 params.opener_render_process_id, params.opener_render_frame_id);
630 for (auto& observer : opener_contents->observers_) {
631 observer.DidOpenRequestedURL(new_contents,
632 opener_rfh ? opener_rfh
633 : opener_contents->GetMainFrame(),
634 params.target_url,
635 params.referrer,
636 params.disposition, params.transition);
637 }
638 }
639
616 return new_contents; 640 return new_contents;
617 } 641 }
618 642
619 // static 643 // static
620 std::vector<WebContentsImpl*> WebContentsImpl::GetAllWebContents() { 644 std::vector<WebContentsImpl*> WebContentsImpl::GetAllWebContents() {
621 std::vector<WebContentsImpl*> result; 645 std::vector<WebContentsImpl*> result;
622 std::unique_ptr<RenderWidgetHostIterator> widgets( 646 std::unique_ptr<RenderWidgetHostIterator> widgets(
623 RenderWidgetHostImpl::GetRenderWidgetHosts()); 647 RenderWidgetHostImpl::GetRenderWidgetHosts());
624 while (RenderWidgetHost* rwh = widgets->GetNextHost()) { 648 while (RenderWidgetHost* rwh = widgets->GetNextHost()) {
625 RenderViewHost* rvh = RenderViewHost::From(rwh); 649 RenderViewHost* rvh = RenderViewHost::From(rwh);
(...skipping 1423 matching lines...) Expand 10 before | Expand all | Expand 10 after
2049 create_params.main_frame_widget_routing_id = main_frame_widget_route_id; 2073 create_params.main_frame_widget_routing_id = main_frame_widget_route_id;
2050 create_params.main_frame_name = params.frame_name; 2074 create_params.main_frame_name = params.frame_name;
2051 create_params.opener_render_process_id = render_process_id; 2075 create_params.opener_render_process_id = render_process_id;
2052 create_params.opener_render_frame_id = params.opener_render_frame_id; 2076 create_params.opener_render_frame_id = params.opener_render_frame_id;
2053 create_params.opener_suppressed = params.opener_suppressed; 2077 create_params.opener_suppressed = params.opener_suppressed;
2054 if (params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB) 2078 if (params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB)
2055 create_params.initially_hidden = true; 2079 create_params.initially_hidden = true;
2056 create_params.renderer_initiated_creation = 2080 create_params.renderer_initiated_creation =
2057 main_frame_route_id != MSG_ROUTING_NONE; 2081 main_frame_route_id != MSG_ROUTING_NONE;
2058 2082
2083 create_params.source_web_contents = this;
2084 create_params.target_url = params.target_url;
2085 create_params.disposition = params.disposition;
2086 create_params.referrer = params.referrer;
2087 // TODO(nasko): Check what page transition is needed.
2088 create_params.transition = ui::PAGE_TRANSITION_LINK;
2089
2059 WebContentsImpl* new_contents = NULL; 2090 WebContentsImpl* new_contents = NULL;
2060 if (!is_guest) { 2091 if (!is_guest) {
2061 create_params.context = view_->GetNativeView(); 2092 create_params.context = view_->GetNativeView();
2062 create_params.initial_size = GetContainerBounds().size(); 2093 create_params.initial_size = GetContainerBounds().size();
2063 new_contents = static_cast<WebContentsImpl*>( 2094 new_contents = static_cast<WebContentsImpl*>(
2064 WebContents::Create(create_params)); 2095 WebContents::Create(create_params));
2065 } else { 2096 } else {
2066 new_contents = GetBrowserPluginGuest()->CreateNewGuestWindow(create_params); 2097 new_contents = GetBrowserPluginGuest()->CreateNewGuestWindow(create_params);
2067 } 2098 }
2068 new_contents->GetController().SetSessionStorageNamespace( 2099 new_contents->GetController().SetSessionStorageNamespace(
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after
3288 3319
3289 void WebContentsImpl::DidStartNavigationToPendingEntry(const GURL& url, 3320 void WebContentsImpl::DidStartNavigationToPendingEntry(const GURL& url,
3290 ReloadType reload_type) { 3321 ReloadType reload_type) {
3291 // Notify observers about navigation. 3322 // Notify observers about navigation.
3292 for (auto& observer : observers_) 3323 for (auto& observer : observers_)
3293 observer.DidStartNavigationToPendingEntry(url, reload_type); 3324 observer.DidStartNavigationToPendingEntry(url, reload_type);
3294 } 3325 }
3295 3326
3296 void WebContentsImpl::RequestOpenURL(RenderFrameHostImpl* render_frame_host, 3327 void WebContentsImpl::RequestOpenURL(RenderFrameHostImpl* render_frame_host,
3297 const OpenURLParams& params) { 3328 const OpenURLParams& params) {
3298 // OpenURL can blow away the source RFH. Use the process/frame routing ID as a 3329 OpenURL(params);
3299 // weak pointer of sorts.
3300 const int32_t process_id = render_frame_host->GetProcess()->GetID();
3301 const int32_t frame_id = render_frame_host->GetRoutingID();
3302
3303 WebContents* new_contents = OpenURL(params);
3304
3305 if (new_contents && RenderFrameHost::FromID(process_id, frame_id)) {
3306 // Notify observers.
3307 for (auto& observer : observers_) {
3308 observer.DidOpenRequestedURL(new_contents, render_frame_host, params.url,
3309 params.referrer, params.disposition,
3310 params.transition);
3311 }
3312 }
3313 } 3330 }
3314 3331
3315 bool WebContentsImpl::ShouldTransferNavigation(bool is_main_frame_navigation) { 3332 bool WebContentsImpl::ShouldTransferNavigation(bool is_main_frame_navigation) {
3316 if (!delegate_) 3333 if (!delegate_)
3317 return true; 3334 return true;
3318 return delegate_->ShouldTransferNavigation(is_main_frame_navigation); 3335 return delegate_->ShouldTransferNavigation(is_main_frame_navigation);
3319 } 3336 }
3320 3337
3321 bool WebContentsImpl::ShouldPreserveAbortedURLs() { 3338 bool WebContentsImpl::ShouldPreserveAbortedURLs() {
3322 if (!delegate_) 3339 if (!delegate_)
(...skipping 1864 matching lines...) Expand 10 before | Expand all | Expand 10 after
5187 dialog_manager_ = dialog_manager; 5204 dialog_manager_ = dialog_manager;
5188 } 5205 }
5189 5206
5190 void WebContentsImpl::RemoveBindingSet(const std::string& interface_name) { 5207 void WebContentsImpl::RemoveBindingSet(const std::string& interface_name) {
5191 auto it = binding_sets_.find(interface_name); 5208 auto it = binding_sets_.find(interface_name);
5192 if (it != binding_sets_.end()) 5209 if (it != binding_sets_.end())
5193 binding_sets_.erase(it); 5210 binding_sets_.erase(it);
5194 } 5211 }
5195 5212
5196 } // namespace content 5213 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.cc ('k') | content/public/browser/web_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698