OLD | NEW |
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 2120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2131 render_process_id, main_frame_widget_route_id)] = new_contents; | 2131 render_process_id, main_frame_widget_route_id)] = new_contents; |
2132 AddDestructionObserver(new_contents); | 2132 AddDestructionObserver(new_contents); |
2133 } | 2133 } |
2134 | 2134 |
2135 if (delegate_) { | 2135 if (delegate_) { |
2136 delegate_->WebContentsCreated( | 2136 delegate_->WebContentsCreated( |
2137 this, render_process_id, params.opener_render_frame_id, | 2137 this, render_process_id, params.opener_render_frame_id, |
2138 params.frame_name, params.target_url, new_contents); | 2138 params.frame_name, params.target_url, new_contents); |
2139 } | 2139 } |
2140 | 2140 |
| 2141 RenderFrameHost* source_render_frame_host = |
| 2142 RenderFrameHost::FromID(render_process_id, params.opener_render_frame_id); |
| 2143 |
| 2144 if (source_render_frame_host) { |
| 2145 for (auto& observer : observers_) { |
| 2146 observer.DidOpenRequestedURL(new_contents, source_render_frame_host, |
| 2147 params.target_url, params.referrer, |
| 2148 params.disposition, ui::PAGE_TRANSITION_LINK, |
| 2149 false, // started_from_context_menu |
| 2150 true); // renderer_initiated |
| 2151 } |
| 2152 } |
| 2153 |
2141 if (params.opener_suppressed) { | 2154 if (params.opener_suppressed) { |
2142 // When the opener is suppressed, the original renderer cannot access the | 2155 // When the opener is suppressed, the original renderer cannot access the |
2143 // new window. As a result, we need to show and navigate the window here. | 2156 // new window. As a result, we need to show and navigate the window here. |
2144 bool was_blocked = false; | 2157 bool was_blocked = false; |
2145 if (delegate_) { | 2158 if (delegate_) { |
2146 gfx::Rect initial_rect; | 2159 gfx::Rect initial_rect; |
2147 base::WeakPtr<WebContentsImpl> weak_new_contents = | 2160 base::WeakPtr<WebContentsImpl> weak_new_contents = |
2148 new_contents->weak_factory_.GetWeakPtr(); | 2161 new_contents->weak_factory_.GetWeakPtr(); |
2149 | 2162 |
2150 delegate_->AddNewContents( | 2163 delegate_->AddNewContents( |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2602 if (source_render_frame_host && params.source_site_instance) { | 2615 if (source_render_frame_host && params.source_site_instance) { |
2603 CHECK_EQ(source_render_frame_host->GetSiteInstance(), | 2616 CHECK_EQ(source_render_frame_host->GetSiteInstance(), |
2604 params.source_site_instance.get()); | 2617 params.source_site_instance.get()); |
2605 } | 2618 } |
2606 | 2619 |
2607 if (new_contents && source_render_frame_host && new_contents != this) { | 2620 if (new_contents && source_render_frame_host && new_contents != this) { |
2608 for (auto& observer : observers_) { | 2621 for (auto& observer : observers_) { |
2609 observer.DidOpenRequestedURL(new_contents, source_render_frame_host, | 2622 observer.DidOpenRequestedURL(new_contents, source_render_frame_host, |
2610 params.url, params.referrer, | 2623 params.url, params.referrer, |
2611 params.disposition, params.transition, | 2624 params.disposition, params.transition, |
2612 params.started_from_context_menu); | 2625 params.started_from_context_menu, false); |
2613 } | 2626 } |
2614 } | 2627 } |
2615 | 2628 |
2616 return new_contents; | 2629 return new_contents; |
2617 } | 2630 } |
2618 | 2631 |
2619 bool WebContentsImpl::Send(IPC::Message* message) { | 2632 bool WebContentsImpl::Send(IPC::Message* message) { |
2620 if (!GetRenderViewHost()) { | 2633 if (!GetRenderViewHost()) { |
2621 delete message; | 2634 delete message; |
2622 return false; | 2635 return false; |
(...skipping 2796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5419 RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host); | 5432 RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host); |
5420 if (!render_view_host) | 5433 if (!render_view_host) |
5421 continue; | 5434 continue; |
5422 render_view_host_set.insert(render_view_host); | 5435 render_view_host_set.insert(render_view_host); |
5423 } | 5436 } |
5424 for (RenderViewHost* render_view_host : render_view_host_set) | 5437 for (RenderViewHost* render_view_host : render_view_host_set) |
5425 render_view_host->OnWebkitPreferencesChanged(); | 5438 render_view_host->OnWebkitPreferencesChanged(); |
5426 } | 5439 } |
5427 | 5440 |
5428 } // namespace content | 5441 } // namespace content |
OLD | NEW |