| 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 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 } | 178 } |
| 179 | 179 |
| 180 bool HasMatchingProcess(FrameTree* tree, int render_process_id) { | 180 bool HasMatchingProcess(FrameTree* tree, int render_process_id) { |
| 181 for (FrameTreeNode* node : tree->Nodes()) { | 181 for (FrameTreeNode* node : tree->Nodes()) { |
| 182 if (node->current_frame_host()->GetProcess()->GetID() == render_process_id) | 182 if (node->current_frame_host()->GetProcess()->GetID() == render_process_id) |
| 183 return true; | 183 return true; |
| 184 } | 184 } |
| 185 return false; | 185 return false; |
| 186 } | 186 } |
| 187 | 187 |
| 188 void SendToAllFramesInternal(int* number_of_messages, | |
| 189 IPC::Message* message, | |
| 190 RenderFrameHost* rfh) { | |
| 191 *number_of_messages = *number_of_messages + 1; | |
| 192 IPC::Message* message_copy = new IPC::Message(*message); | |
| 193 message_copy->set_routing_id(rfh->GetRoutingID()); | |
| 194 rfh->Send(message_copy); | |
| 195 } | |
| 196 | |
| 197 void AddRenderWidgetHostViewToSet(std::set<RenderWidgetHostView*>* set, | |
| 198 RenderFrameHost* rfh) { | |
| 199 RenderWidgetHostView* rwhv = static_cast<RenderFrameHostImpl*>(rfh) | |
| 200 ->frame_tree_node() | |
| 201 ->render_manager() | |
| 202 ->GetRenderWidgetHostView(); | |
| 203 set->insert(rwhv); | |
| 204 } | |
| 205 | |
| 206 void SetAccessibilityModeOnFrame(AccessibilityMode mode, | 188 void SetAccessibilityModeOnFrame(AccessibilityMode mode, |
| 207 RenderFrameHost* frame_host) { | 189 RenderFrameHost* frame_host) { |
| 208 static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode); | 190 static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode); |
| 209 } | 191 } |
| 210 | 192 |
| 211 void ResetAccessibility(RenderFrameHost* rfh) { | 193 void ResetAccessibility(RenderFrameHost* rfh) { |
| 212 static_cast<RenderFrameHostImpl*>(rfh)->AccessibilityReset(); | 194 static_cast<RenderFrameHostImpl*>(rfh)->AccessibilityReset(); |
| 213 } | 195 } |
| 214 | 196 |
| 215 } // namespace | 197 } // namespace |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 780 return frame ? frame->current_frame_host() : nullptr; | 762 return frame ? frame->current_frame_host() : nullptr; |
| 781 } | 763 } |
| 782 | 764 |
| 783 void WebContentsImpl::ForEachFrame( | 765 void WebContentsImpl::ForEachFrame( |
| 784 const base::Callback<void(RenderFrameHost*)>& on_frame) { | 766 const base::Callback<void(RenderFrameHost*)>& on_frame) { |
| 785 for (FrameTreeNode* node : frame_tree_.Nodes()) { | 767 for (FrameTreeNode* node : frame_tree_.Nodes()) { |
| 786 on_frame.Run(node->current_frame_host()); | 768 on_frame.Run(node->current_frame_host()); |
| 787 } | 769 } |
| 788 } | 770 } |
| 789 | 771 |
| 772 std::vector<RenderFrameHost*> WebContentsImpl::FrameHosts() { |
| 773 std::vector<RenderFrameHost*> frame_hosts; |
| 774 for (FrameTreeNode* node : frame_tree_.Nodes()) |
| 775 frame_hosts.push_back(node->current_frame_host()); |
| 776 return frame_hosts; |
| 777 } |
| 778 |
| 790 int WebContentsImpl::SendToAllFrames(IPC::Message* message) { | 779 int WebContentsImpl::SendToAllFrames(IPC::Message* message) { |
| 791 int number_of_messages = 0; | 780 int number_of_messages = 0; |
| 792 ForEachFrame( | 781 for (RenderFrameHost* rfh : FrameHosts()) { |
| 793 base::Bind(&SendToAllFramesInternal, &number_of_messages, message)); | 782 ++number_of_messages; |
| 783 IPC::Message* message_copy = new IPC::Message(*message); |
| 784 message_copy->set_routing_id(rfh->GetRoutingID()); |
| 785 rfh->Send(message_copy); |
| 786 } |
| 794 delete message; | 787 delete message; |
| 795 return number_of_messages; | 788 return number_of_messages; |
| 796 } | 789 } |
| 797 | 790 |
| 798 RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() const { | 791 RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() const { |
| 799 return GetRenderManager()->current_host(); | 792 return GetRenderManager()->current_host(); |
| 800 } | 793 } |
| 801 | 794 |
| 802 int WebContentsImpl::GetRoutingID() const { | 795 int WebContentsImpl::GetRoutingID() const { |
| 803 if (!GetRenderViewHost()) | 796 if (!GetRenderViewHost()) |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 | 899 |
| 907 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 900 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
| 908 UserAgentOverrideSet(override)); | 901 UserAgentOverrideSet(override)); |
| 909 } | 902 } |
| 910 | 903 |
| 911 const std::string& WebContentsImpl::GetUserAgentOverride() const { | 904 const std::string& WebContentsImpl::GetUserAgentOverride() const { |
| 912 return renderer_preferences_.user_agent_override; | 905 return renderer_preferences_.user_agent_override; |
| 913 } | 906 } |
| 914 | 907 |
| 915 void WebContentsImpl::EnableTreeOnlyAccessibilityMode() { | 908 void WebContentsImpl::EnableTreeOnlyAccessibilityMode() { |
| 916 if (GetAccessibilityMode() != AccessibilityModeOff) | 909 if (GetAccessibilityMode() != AccessibilityModeOff) { |
| 917 ForEachFrame(base::Bind(&ResetAccessibility)); | 910 for (RenderFrameHost* rfh : FrameHosts()) |
| 918 else | 911 ResetAccessibility(rfh); |
| 912 } else { |
| 919 AddAccessibilityMode(AccessibilityModeTreeOnly); | 913 AddAccessibilityMode(AccessibilityModeTreeOnly); |
| 914 } |
| 920 } | 915 } |
| 921 | 916 |
| 922 bool WebContentsImpl::IsTreeOnlyAccessibilityModeForTesting() const { | 917 bool WebContentsImpl::IsTreeOnlyAccessibilityModeForTesting() const { |
| 923 return accessibility_mode_ == AccessibilityModeTreeOnly; | 918 return accessibility_mode_ == AccessibilityModeTreeOnly; |
| 924 } | 919 } |
| 925 | 920 |
| 926 bool WebContentsImpl::IsFullAccessibilityModeForTesting() const { | 921 bool WebContentsImpl::IsFullAccessibilityModeForTesting() const { |
| 927 return accessibility_mode_ == AccessibilityModeComplete; | 922 return accessibility_mode_ == AccessibilityModeComplete; |
| 928 } | 923 } |
| 929 | 924 |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1498 void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) { | 1493 void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) { |
| 1499 observers_.RemoveObserver(observer); | 1494 observers_.RemoveObserver(observer); |
| 1500 } | 1495 } |
| 1501 | 1496 |
| 1502 std::set<RenderWidgetHostView*> | 1497 std::set<RenderWidgetHostView*> |
| 1503 WebContentsImpl::GetRenderWidgetHostViewsInTree() { | 1498 WebContentsImpl::GetRenderWidgetHostViewsInTree() { |
| 1504 std::set<RenderWidgetHostView*> set; | 1499 std::set<RenderWidgetHostView*> set; |
| 1505 if (ShowingInterstitialPage()) { | 1500 if (ShowingInterstitialPage()) { |
| 1506 set.insert(GetRenderWidgetHostView()); | 1501 set.insert(GetRenderWidgetHostView()); |
| 1507 } else { | 1502 } else { |
| 1508 ForEachFrame( | 1503 for (RenderFrameHost* rfh : FrameHosts()) { |
| 1509 base::Bind(&AddRenderWidgetHostViewToSet, base::Unretained(&set))); | 1504 RenderWidgetHostView* rwhv = static_cast<RenderFrameHostImpl*>(rfh) |
| 1505 ->frame_tree_node() |
| 1506 ->render_manager() |
| 1507 ->GetRenderWidgetHostView(); |
| 1508 set.insert(rwhv); |
| 1509 } |
| 1510 } | 1510 } |
| 1511 return set; | 1511 return set; |
| 1512 } | 1512 } |
| 1513 | 1513 |
| 1514 void WebContentsImpl::Activate() { | 1514 void WebContentsImpl::Activate() { |
| 1515 if (delegate_) | 1515 if (delegate_) |
| 1516 delegate_->ActivateContents(this); | 1516 delegate_->ActivateContents(this); |
| 1517 } | 1517 } |
| 1518 | 1518 |
| 1519 void WebContentsImpl::LostCapture(RenderWidgetHostImpl* render_widget_host) { | 1519 void WebContentsImpl::LostCapture(RenderWidgetHostImpl* render_widget_host) { |
| (...skipping 3231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4751 const WebContentsObserver::MediaPlayerId& id) { | 4751 const WebContentsObserver::MediaPlayerId& id) { |
| 4752 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id)); | 4752 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id)); |
| 4753 } | 4753 } |
| 4754 | 4754 |
| 4755 void WebContentsImpl::MediaStoppedPlaying( | 4755 void WebContentsImpl::MediaStoppedPlaying( |
| 4756 const WebContentsObserver::MediaPlayerId& id) { | 4756 const WebContentsObserver::MediaPlayerId& id) { |
| 4757 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id)); | 4757 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id)); |
| 4758 } | 4758 } |
| 4759 | 4759 |
| 4760 } // namespace content | 4760 } // namespace content |
| OLD | NEW |