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); // not_yet_in_tabstrip |
| 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 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2593 if (source_render_frame_host && params.source_site_instance) { | 2606 if (source_render_frame_host && params.source_site_instance) { |
2594 CHECK_EQ(source_render_frame_host->GetSiteInstance(), | 2607 CHECK_EQ(source_render_frame_host->GetSiteInstance(), |
2595 params.source_site_instance.get()); | 2608 params.source_site_instance.get()); |
2596 } | 2609 } |
2597 | 2610 |
2598 if (new_contents && source_render_frame_host && new_contents != this) { | 2611 if (new_contents && source_render_frame_host && new_contents != this) { |
2599 for (auto& observer : observers_) { | 2612 for (auto& observer : observers_) { |
2600 observer.DidOpenRequestedURL(new_contents, source_render_frame_host, | 2613 observer.DidOpenRequestedURL(new_contents, source_render_frame_host, |
2601 params.url, params.referrer, | 2614 params.url, params.referrer, |
2602 params.disposition, params.transition, | 2615 params.disposition, params.transition, |
2603 params.started_from_context_menu); | 2616 params.started_from_context_menu, false); |
2604 } | 2617 } |
2605 } | 2618 } |
2606 | 2619 |
2607 return new_contents; | 2620 return new_contents; |
2608 } | 2621 } |
2609 | 2622 |
2610 bool WebContentsImpl::Send(IPC::Message* message) { | 2623 bool WebContentsImpl::Send(IPC::Message* message) { |
2611 if (!GetRenderViewHost()) { | 2624 if (!GetRenderViewHost()) { |
2612 delete message; | 2625 delete message; |
2613 return false; | 2626 return false; |
(...skipping 2825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5439 RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host); | 5452 RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host); |
5440 if (!render_view_host) | 5453 if (!render_view_host) |
5441 continue; | 5454 continue; |
5442 render_view_host_set.insert(render_view_host); | 5455 render_view_host_set.insert(render_view_host); |
5443 } | 5456 } |
5444 for (RenderViewHost* render_view_host : render_view_host_set) | 5457 for (RenderViewHost* render_view_host : render_view_host_set) |
5445 render_view_host->OnWebkitPreferencesChanged(); | 5458 render_view_host->OnWebkitPreferencesChanged(); |
5446 } | 5459 } |
5447 | 5460 |
5448 } // namespace content | 5461 } // namespace content |
OLD | NEW |