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

Side by Side Diff: third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp

Issue 2854783003: Remove the last references from production code to WebViewImpl. (Closed)
Patch Set: Created 3 years, 7 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 /* 1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 WebLocalFrame* local_root) { 86 WebLocalFrame* local_root) {
87 DCHECK(client) << "A valid WebWidgetClient must be supplied."; 87 DCHECK(client) << "A valid WebWidgetClient must be supplied.";
88 // Pass the WebFrameWidget's self-reference to the caller. 88 // Pass the WebFrameWidget's self-reference to the caller.
89 return WebFrameWidgetImpl::Create(client, local_root); 89 return WebFrameWidgetImpl::Create(client, local_root);
90 } 90 }
91 91
92 WebFrameWidget* WebFrameWidget::Create(WebWidgetClient* client, 92 WebFrameWidget* WebFrameWidget::Create(WebWidgetClient* client,
93 WebView* web_view, 93 WebView* web_view,
94 WebLocalFrame* main_frame) { 94 WebLocalFrame* main_frame) {
95 DCHECK(client) << "A valid WebWidgetClient must be supplied."; 95 DCHECK(client) << "A valid WebWidgetClient must be supplied.";
96 return new WebViewFrameWidget(*client, ToWebViewImpl(*web_view), 96 return new WebViewFrameWidget(*client, static_cast<WebViewBase&>(*web_view),
slangley 2017/05/02 06:25:33 The only concrete type inherits WebViewBase, so a
97 ToWebLocalFrameImpl(*main_frame)); 97 ToWebLocalFrameImpl(*main_frame));
98 } 98 }
99 99
100 WebFrameWidgetImpl* WebFrameWidgetImpl::Create(WebWidgetClient* client, 100 WebFrameWidgetImpl* WebFrameWidgetImpl::Create(WebWidgetClient* client,
101 WebLocalFrame* local_root) { 101 WebLocalFrame* local_root) {
102 DCHECK(client) << "A valid WebWidgetClient must be supplied."; 102 DCHECK(client) << "A valid WebWidgetClient must be supplied.";
103 // Pass the WebFrameWidgetImpl's self-reference to the caller. 103 // Pass the WebFrameWidgetImpl's self-reference to the caller.
104 return new WebFrameWidgetImpl( 104 return new WebFrameWidgetImpl(
105 client, local_root); // SelfKeepAlive is set in constructor. 105 client, local_root); // SelfKeepAlive is set in constructor.
106 } 106 }
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 const WebMouseEvent& event) { 782 const WebMouseEvent& event) {
783 // FIXME: WebWidget doesn't have the method below. 783 // FIXME: WebWidget doesn't have the method below.
784 // m_client->setMouseOverURL(WebURL()); 784 // m_client->setMouseOverURL(WebURL());
785 PageWidgetEventHandler::HandleMouseLeave(main_frame, event); 785 PageWidgetEventHandler::HandleMouseLeave(main_frame, event);
786 } 786 }
787 787
788 void WebFrameWidgetImpl::HandleMouseDown(LocalFrame& main_frame, 788 void WebFrameWidgetImpl::HandleMouseDown(LocalFrame& main_frame,
789 const WebMouseEvent& event) { 789 const WebMouseEvent& event) {
790 // TODO(slangley): Remove this downcast to WebViewImpl once we lift this 790 // TODO(slangley): Remove this downcast to WebViewImpl once we lift this
791 // code into core. 791 // code into core.
792 WebViewImpl* view_impl = ToWebViewImpl(View()); 792 WebViewBase* view_impl = View();
793 // If there is a popup open, close it as the user is clicking on the page 793 // If there is a popup open, close it as the user is clicking on the page
794 // (outside of the popup). We also save it so we can prevent a click on an 794 // (outside of the popup). We also save it so we can prevent a click on an
795 // element from immediately reopening the same popup. 795 // element from immediately reopening the same popup.
796 RefPtr<WebPagePopupImpl> page_popup; 796 RefPtr<WebPagePopupImpl> page_popup;
797 if (event.button == WebMouseEvent::Button::kLeft) { 797 if (event.button == WebMouseEvent::Button::kLeft) {
798 page_popup = view_impl->GetPagePopup(); 798 page_popup = ToWebPagePopupImpl(view_impl->GetPagePopup());
799 view_impl->HidePopups(); 799 view_impl->HidePopups();
800 } 800 }
801 801
802 // Take capture on a mouse down on a plugin so we can send it mouse events. 802 // Take capture on a mouse down on a plugin so we can send it mouse events.
803 // If the hit node is a plugin but a scrollbar is over it don't start mouse 803 // If the hit node is a plugin but a scrollbar is over it don't start mouse
804 // capture because it will interfere with the scrollbar receiving events. 804 // capture because it will interfere with the scrollbar receiving events.
805 IntPoint point(event.PositionInWidget().x, event.PositionInWidget().y); 805 IntPoint point(event.PositionInWidget().x, event.PositionInWidget().y);
806 if (event.button == WebMouseEvent::Button::kLeft) { 806 if (event.button == WebMouseEvent::Button::kLeft) {
807 point = local_root_->GetFrameView()->RootFrameToContents(point); 807 point = local_root_->GetFrameView()->RootFrameToContents(point);
808 HitTestResult result( 808 HitTestResult result(
809 local_root_->GetFrame()->GetEventHandler().HitTestResultAtPoint(point)); 809 local_root_->GetFrame()->GetEventHandler().HitTestResultAtPoint(point));
810 result.SetToShadowHostIfInRestrictedShadowRoot(); 810 result.SetToShadowHostIfInRestrictedShadowRoot();
811 Node* hit_node = result.InnerNode(); 811 Node* hit_node = result.InnerNode();
812 812
813 if (!result.GetScrollbar() && hit_node && hit_node->GetLayoutObject() && 813 if (!result.GetScrollbar() && hit_node && hit_node->GetLayoutObject() &&
814 hit_node->GetLayoutObject()->IsEmbeddedObject()) { 814 hit_node->GetLayoutObject()->IsEmbeddedObject()) {
815 mouse_capture_node_ = hit_node; 815 mouse_capture_node_ = hit_node;
816 TRACE_EVENT_ASYNC_BEGIN0("input", "capturing mouse", this); 816 TRACE_EVENT_ASYNC_BEGIN0("input", "capturing mouse", this);
817 } 817 }
818 } 818 }
819 819
820 PageWidgetEventHandler::HandleMouseDown(main_frame, event); 820 PageWidgetEventHandler::HandleMouseDown(main_frame, event);
821 821
822 if (event.button == WebMouseEvent::Button::kLeft && mouse_capture_node_) 822 if (event.button == WebMouseEvent::Button::kLeft && mouse_capture_node_)
823 mouse_capture_gesture_token_ = 823 mouse_capture_gesture_token_ =
824 main_frame.GetEventHandler().TakeLastMouseDownGestureToken(); 824 main_frame.GetEventHandler().TakeLastMouseDownGestureToken();
825 825
826 if (view_impl->GetPagePopup() && page_popup && 826 if (view_impl->GetPagePopup() && page_popup &&
827 view_impl->GetPagePopup()->HasSamePopupClient(page_popup.Get())) { 827 ToWebPagePopupImpl(view_impl->GetPagePopup())
828 ->HasSamePopupClient(page_popup.Get())) {
828 // That click triggered a page popup that is the same as the one we just 829 // That click triggered a page popup that is the same as the one we just
829 // closed. It needs to be closed. 830 // closed. It needs to be closed.
830 view_impl->HidePopups(); 831 view_impl->HidePopups();
831 } 832 }
832 833
833 // Dispatch the contextmenu event regardless of if the click was swallowed. 834 // Dispatch the contextmenu event regardless of if the click was swallowed.
834 if (!GetPage()->GetSettings().GetShowContextMenuOnMouseUp()) { 835 if (!GetPage()->GetSettings().GetShowContextMenuOnMouseUp()) {
835 #if OS(MACOSX) 836 #if OS(MACOSX)
836 if (event.button == WebMouseEvent::Button::kRight || 837 if (event.button == WebMouseEvent::Button::kRight ||
837 (event.button == WebMouseEvent::Button::kLeft && 838 (event.button == WebMouseEvent::Button::kLeft &&
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 const WebMouseWheelEvent& event) { 896 const WebMouseWheelEvent& event) {
896 View()->HidePopups(); 897 View()->HidePopups();
897 return PageWidgetEventHandler::HandleMouseWheel(main_frame, event); 898 return PageWidgetEventHandler::HandleMouseWheel(main_frame, event);
898 } 899 }
899 900
900 WebInputEventResult WebFrameWidgetImpl::HandleGestureEvent( 901 WebInputEventResult WebFrameWidgetImpl::HandleGestureEvent(
901 const WebGestureEvent& event) { 902 const WebGestureEvent& event) {
902 DCHECK(client_); 903 DCHECK(client_);
903 WebInputEventResult event_result = WebInputEventResult::kNotHandled; 904 WebInputEventResult event_result = WebInputEventResult::kNotHandled;
904 bool event_cancelled = false; 905 bool event_cancelled = false;
905 // TODO(slangley): Remove this downcast to WebViewImpl once we lift this 906
906 // code into core. 907 WebViewBase* view_impl = View();
907 WebViewImpl* view_impl = ToWebViewImpl(View());
908 switch (event.GetType()) { 908 switch (event.GetType()) {
909 case WebInputEvent::kGestureScrollBegin: 909 case WebInputEvent::kGestureScrollBegin:
910 case WebInputEvent::kGestureScrollEnd: 910 case WebInputEvent::kGestureScrollEnd:
911 case WebInputEvent::kGestureScrollUpdate: 911 case WebInputEvent::kGestureScrollUpdate:
912 case WebInputEvent::kGestureTap: 912 case WebInputEvent::kGestureTap:
913 case WebInputEvent::kGestureTapUnconfirmed: 913 case WebInputEvent::kGestureTapUnconfirmed:
914 case WebInputEvent::kGestureTapDown: 914 case WebInputEvent::kGestureTapDown:
915 // Touch pinch zoom and scroll on the page (outside of a popup) must hide 915 // Touch pinch zoom and scroll on the page (outside of a popup) must hide
916 // the popup. In case of a touch scroll or pinch zoom, this function is 916 // the popup. In case of a touch scroll or pinch zoom, this function is
917 // called with GestureTapDown rather than a GSB/GSU/GSE or GPB/GPU/GPE. 917 // called with GestureTapDown rather than a GSB/GSU/GSE or GPB/GPU/GPE.
918 // When we close a popup because of a GestureTapDown, we also save it so 918 // When we close a popup because of a GestureTapDown, we also save it so
919 // we can prevent the following GestureTap from immediately reopening the 919 // we can prevent the following GestureTap from immediately reopening the
920 // same popup. 920 // same popup.
921 view_impl->SetLastHiddenPagePopup(view_impl->GetPagePopup()); 921 view_impl->SetLastHiddenPagePopup(
922 ToWebPagePopupImpl(view_impl->GetPagePopup()));
922 View()->HidePopups(); 923 View()->HidePopups();
923 case WebInputEvent::kGestureTapCancel: 924 case WebInputEvent::kGestureTapCancel:
924 View()->SetLastHiddenPagePopup(nullptr); 925 View()->SetLastHiddenPagePopup(nullptr);
925 case WebInputEvent::kGestureShowPress: 926 case WebInputEvent::kGestureShowPress:
926 case WebInputEvent::kGestureDoubleTap: 927 case WebInputEvent::kGestureDoubleTap:
927 case WebInputEvent::kGestureTwoFingerTap: 928 case WebInputEvent::kGestureTwoFingerTap:
928 case WebInputEvent::kGestureLongPress: 929 case WebInputEvent::kGestureLongPress:
929 case WebInputEvent::kGestureLongTap: 930 case WebInputEvent::kGestureLongTap:
930 break; 931 break;
931 case WebInputEvent::kGestureFlingStart: 932 case WebInputEvent::kGestureFlingStart:
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 return nullptr; 1220 return nullptr;
1220 } 1221 }
1221 1222
1222 LocalFrame* WebFrameWidgetImpl::FocusedLocalFrameAvailableForIme() const { 1223 LocalFrame* WebFrameWidgetImpl::FocusedLocalFrameAvailableForIme() const {
1223 if (!ime_accept_events_) 1224 if (!ime_accept_events_)
1224 return nullptr; 1225 return nullptr;
1225 return FocusedLocalFrameInWidget(); 1226 return FocusedLocalFrameInWidget();
1226 } 1227 }
1227 1228
1228 } // namespace blink 1229 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebFrameWidgetImpl.h ('k') | third_party/WebKit/Source/web/WebLocalFrameImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698