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/renderer/render_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 1890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1901 } | 1901 } |
1902 | 1902 |
1903 void RenderViewImpl::focusNext() { | 1903 void RenderViewImpl::focusNext() { |
1904 Send(new ViewHostMsg_TakeFocus(routing_id_, false)); | 1904 Send(new ViewHostMsg_TakeFocus(routing_id_, false)); |
1905 } | 1905 } |
1906 | 1906 |
1907 void RenderViewImpl::focusPrevious() { | 1907 void RenderViewImpl::focusPrevious() { |
1908 Send(new ViewHostMsg_TakeFocus(routing_id_, true)); | 1908 Send(new ViewHostMsg_TakeFocus(routing_id_, true)); |
1909 } | 1909 } |
1910 | 1910 |
1911 void RenderViewImpl::focusedNodeChanged(const WebNode& node) { | 1911 void RenderViewImpl::focusedNodeChanged(const WebNode& previouslyFocusedNode, |
1912 const WebNode& focusedNode) { | |
1912 has_scrolled_focused_editable_node_into_rect_ = false; | 1913 has_scrolled_focused_editable_node_into_rect_ = false; |
1913 | 1914 |
1914 gfx::Rect node_bounds; | 1915 gfx::Rect node_bounds; |
1915 if (!node.isNull() && node.isElementNode()) { | 1916 if (!focusedNode.isNull() && focusedNode.isElementNode()) { |
1916 WebNode web_node = const_cast<WebNode&>(node); | 1917 WebNode web_node = const_cast<WebNode&>(focusedNode); |
1917 node_bounds = gfx::Rect(web_node.to<WebElement>().boundsInViewportSpace()); | 1918 node_bounds = gfx::Rect(web_node.to<WebElement>().boundsInViewportSpace()); |
1918 } | 1919 } |
1919 Send(new ViewHostMsg_FocusedNodeChanged(routing_id_, IsEditableNode(node), | 1920 Send(new ViewHostMsg_FocusedNodeChanged( |
1920 node_bounds)); | 1921 routing_id_, IsEditableNode(focusedNode), node_bounds)); |
1921 | 1922 |
1922 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FocusedNodeChanged(node)); | 1923 // TODO(estade): remove. |
1924 FOR_EACH_OBSERVER(RenderViewObserver, observers_, | |
1925 FocusedNodeChanged(focusedNode)); | |
1923 | 1926 |
1924 // TODO(dmazzoni): this should be part of RenderFrameObserver. | 1927 RenderFrameImpl* previous_frame = nullptr; |
1925 GetMainRenderFrame()->FocusedNodeChanged(node); | 1928 if (!previouslyFocusedNode.isNull()) { |
1929 previous_frame = | |
1930 RenderFrameImpl::FromWebFrame(previouslyFocusedNode.document().frame()); | |
1931 } | |
1932 RenderFrameImpl* new_frame = nullptr; | |
1933 if (!focusedNode.isNull()) { | |
nasko
2015/01/20 05:09:51
nit: no need for {}
Evan Stade
2015/01/20 22:31:01
Done.
| |
1934 new_frame = RenderFrameImpl::FromWebFrame(focusedNode.document().frame()); | |
1935 } | |
1936 | |
1937 if (previous_frame && previous_frame != new_frame) | |
1938 previous_frame->FocusedNodeChanged(WebNode()); | |
1939 if (new_frame) | |
1940 new_frame->FocusedNodeChanged(focusedNode); | |
1941 | |
1942 // TODO(dmazzoni): remove once there's a separate a11y tree per frame. | |
1943 GetMainRenderFrame()->FocusedNodeChangedForAccessibility(focusedNode); | |
1926 } | 1944 } |
1927 | 1945 |
1928 void RenderViewImpl::didUpdateLayout() { | 1946 void RenderViewImpl::didUpdateLayout() { |
1929 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidUpdateLayout()); | 1947 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidUpdateLayout()); |
1930 | 1948 |
1931 // We don't always want to set up a timer, only if we've been put in that | 1949 // We don't always want to set up a timer, only if we've been put in that |
1932 // mode by getting a |ViewMsg_EnablePreferredSizeChangedMode| | 1950 // mode by getting a |ViewMsg_EnablePreferredSizeChangedMode| |
1933 // message. | 1951 // message. |
1934 if (!send_preferred_size_changes_ || !webview()) | 1952 if (!send_preferred_size_changes_ || !webview()) |
1935 return; | 1953 return; |
(...skipping 2164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4100 std::vector<gfx::Size> sizes; | 4118 std::vector<gfx::Size> sizes; |
4101 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); | 4119 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); |
4102 if (!url.isEmpty()) | 4120 if (!url.isEmpty()) |
4103 urls.push_back( | 4121 urls.push_back( |
4104 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); | 4122 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); |
4105 } | 4123 } |
4106 SendUpdateFaviconURL(urls); | 4124 SendUpdateFaviconURL(urls); |
4107 } | 4125 } |
4108 | 4126 |
4109 } // namespace content | 4127 } // namespace content |
OLD | NEW |