| 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_widget.h" | 5 #include "content/renderer/render_widget.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 1960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1971 webwidget_->selectionTextDirection(params.focus_dir, params.anchor_dir); | 1971 webwidget_->selectionTextDirection(params.focus_dir, params.anchor_dir); |
| 1972 params.is_anchor_first = webwidget_->isSelectionAnchorFirst(); | 1972 params.is_anchor_first = webwidget_->isSelectionAnchorFirst(); |
| 1973 Send(new ViewHostMsg_SelectionBoundsChanged(routing_id_, params)); | 1973 Send(new ViewHostMsg_SelectionBoundsChanged(routing_id_, params)); |
| 1974 } | 1974 } |
| 1975 } | 1975 } |
| 1976 | 1976 |
| 1977 UpdateCompositionInfo(false); | 1977 UpdateCompositionInfo(false); |
| 1978 } | 1978 } |
| 1979 | 1979 |
| 1980 // Check blink::WebTextInputType and ui::TextInputType is kept in sync. | 1980 // Check blink::WebTextInputType and ui::TextInputType is kept in sync. |
| 1981 COMPILE_ASSERT(int(blink::WebTextInputTypeNone) == \ | 1981 #define STATIC_ASSERT_WTIT_ENUM_MATCH(a, b) \ |
| 1982 int(ui::TEXT_INPUT_TYPE_NONE), mismatching_enums); | 1982 static_assert(int(blink::WebTextInputType##a) \ |
| 1983 COMPILE_ASSERT(int(blink::WebTextInputTypeText) == \ | 1983 == int(ui::TEXT_INPUT_TYPE_##b), \ |
| 1984 int(ui::TEXT_INPUT_TYPE_TEXT), mismatching_enums); | 1984 "mismatching enums: " #a) |
| 1985 COMPILE_ASSERT(int(blink::WebTextInputTypePassword) == \ | 1985 |
| 1986 int(ui::TEXT_INPUT_TYPE_PASSWORD), mismatching_enums); | 1986 STATIC_ASSERT_WTIT_ENUM_MATCH(None, NONE); |
| 1987 COMPILE_ASSERT(int(blink::WebTextInputTypeSearch) == \ | 1987 STATIC_ASSERT_WTIT_ENUM_MATCH(Text, TEXT); |
| 1988 int(ui::TEXT_INPUT_TYPE_SEARCH), mismatching_enums); | 1988 STATIC_ASSERT_WTIT_ENUM_MATCH(Password, PASSWORD); |
| 1989 COMPILE_ASSERT(int(blink::WebTextInputTypeEmail) == \ | 1989 STATIC_ASSERT_WTIT_ENUM_MATCH(Search, SEARCH); |
| 1990 int(ui::TEXT_INPUT_TYPE_EMAIL), mismatching_enums); | 1990 STATIC_ASSERT_WTIT_ENUM_MATCH(Email, EMAIL); |
| 1991 COMPILE_ASSERT(int(blink::WebTextInputTypeNumber) == \ | 1991 STATIC_ASSERT_WTIT_ENUM_MATCH(Number, NUMBER); |
| 1992 int(ui::TEXT_INPUT_TYPE_NUMBER), mismatching_enums); | 1992 STATIC_ASSERT_WTIT_ENUM_MATCH(Telephone, TELEPHONE); |
| 1993 COMPILE_ASSERT(int(blink::WebTextInputTypeTelephone) == \ | 1993 STATIC_ASSERT_WTIT_ENUM_MATCH(URL, URL); |
| 1994 int(ui::TEXT_INPUT_TYPE_TELEPHONE), mismatching_enums); | 1994 STATIC_ASSERT_WTIT_ENUM_MATCH(Date, DATE); |
| 1995 COMPILE_ASSERT(int(blink::WebTextInputTypeURL) == \ | 1995 STATIC_ASSERT_WTIT_ENUM_MATCH(DateTime, DATE_TIME); |
| 1996 int(ui::TEXT_INPUT_TYPE_URL), mismatching_enums); | 1996 STATIC_ASSERT_WTIT_ENUM_MATCH(DateTimeLocal, DATE_TIME_LOCAL); |
| 1997 COMPILE_ASSERT(int(blink::WebTextInputTypeDate) == \ | 1997 STATIC_ASSERT_WTIT_ENUM_MATCH(Month, MONTH); |
| 1998 int(ui::TEXT_INPUT_TYPE_DATE), mismatching_enum); | 1998 STATIC_ASSERT_WTIT_ENUM_MATCH(Time, TIME); |
| 1999 COMPILE_ASSERT(int(blink::WebTextInputTypeDateTime) == \ | 1999 STATIC_ASSERT_WTIT_ENUM_MATCH(Week, WEEK); |
| 2000 int(ui::TEXT_INPUT_TYPE_DATE_TIME), mismatching_enum); | 2000 STATIC_ASSERT_WTIT_ENUM_MATCH(TextArea, TEXT_AREA); |
| 2001 COMPILE_ASSERT(int(blink::WebTextInputTypeDateTimeLocal) == \ | 2001 STATIC_ASSERT_WTIT_ENUM_MATCH(ContentEditable, CONTENT_EDITABLE); |
| 2002 int(ui::TEXT_INPUT_TYPE_DATE_TIME_LOCAL), mismatching_enum); | 2002 STATIC_ASSERT_WTIT_ENUM_MATCH(DateTimeField, DATE_TIME_FIELD); |
| 2003 COMPILE_ASSERT(int(blink::WebTextInputTypeMonth) == \ | |
| 2004 int(ui::TEXT_INPUT_TYPE_MONTH), mismatching_enum); | |
| 2005 COMPILE_ASSERT(int(blink::WebTextInputTypeTime) == \ | |
| 2006 int(ui::TEXT_INPUT_TYPE_TIME), mismatching_enum); | |
| 2007 COMPILE_ASSERT(int(blink::WebTextInputTypeWeek) == \ | |
| 2008 int(ui::TEXT_INPUT_TYPE_WEEK), mismatching_enum); | |
| 2009 COMPILE_ASSERT(int(blink::WebTextInputTypeTextArea) == \ | |
| 2010 int(ui::TEXT_INPUT_TYPE_TEXT_AREA), mismatching_enums); | |
| 2011 COMPILE_ASSERT(int(blink::WebTextInputTypeContentEditable) == \ | |
| 2012 int(ui::TEXT_INPUT_TYPE_CONTENT_EDITABLE), mismatching_enums); | |
| 2013 COMPILE_ASSERT(int(blink::WebTextInputTypeDateTimeField) == \ | |
| 2014 int(ui::TEXT_INPUT_TYPE_DATE_TIME_FIELD), mismatching_enums); | |
| 2015 | 2003 |
| 2016 ui::TextInputType RenderWidget::WebKitToUiTextInputType( | 2004 ui::TextInputType RenderWidget::WebKitToUiTextInputType( |
| 2017 blink::WebTextInputType type) { | 2005 blink::WebTextInputType type) { |
| 2018 // Check the type is in the range representable by ui::TextInputType. | 2006 // Check the type is in the range representable by ui::TextInputType. |
| 2019 DCHECK_LE(type, static_cast<int>(ui::TEXT_INPUT_TYPE_MAX)) << | 2007 DCHECK_LE(type, static_cast<int>(ui::TEXT_INPUT_TYPE_MAX)) << |
| 2020 "blink::WebTextInputType and ui::TextInputType not synchronized"; | 2008 "blink::WebTextInputType and ui::TextInputType not synchronized"; |
| 2021 return static_cast<ui::TextInputType>(type); | 2009 return static_cast<ui::TextInputType>(type); |
| 2022 } | 2010 } |
| 2023 | 2011 |
| 2024 ui::TextInputType RenderWidget::GetTextInputType() { | 2012 ui::TextInputType RenderWidget::GetTextInputType() { |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2236 if (input_handler_manager) { | 2224 if (input_handler_manager) { |
| 2237 input_handler_manager->ObserveWheelEventAndResultOnMainThread( | 2225 input_handler_manager->ObserveWheelEventAndResultOnMainThread( |
| 2238 routing_id_, wheel_event, scroll_result); | 2226 routing_id_, wheel_event, scroll_result); |
| 2239 } | 2227 } |
| 2240 } | 2228 } |
| 2241 | 2229 |
| 2242 void RenderWidget::hasTouchEventHandlers(bool has_handlers) { | 2230 void RenderWidget::hasTouchEventHandlers(bool has_handlers) { |
| 2243 Send(new ViewHostMsg_HasTouchEventHandlers(routing_id_, has_handlers)); | 2231 Send(new ViewHostMsg_HasTouchEventHandlers(routing_id_, has_handlers)); |
| 2244 } | 2232 } |
| 2245 | 2233 |
| 2234 // Check blink::WebTouchAction and blink::WebTouchActionAuto is kept in sync |
| 2235 #define STATIC_ASSERT_WTI_ENUM_MATCH(a, b)
\ |
| 2236 static_assert(int(blink::WebTouchAction##a) == int(TOUCH_ACTION_##b), \ |
| 2237 "mismatching enums: " #a) |
| 2238 |
| 2246 void RenderWidget::setTouchAction( | 2239 void RenderWidget::setTouchAction( |
| 2247 blink::WebTouchAction web_touch_action) { | 2240 blink::WebTouchAction web_touch_action) { |
| 2248 | 2241 |
| 2249 // Ignore setTouchAction calls that result from synthetic touch events (eg. | 2242 // Ignore setTouchAction calls that result from synthetic touch events (eg. |
| 2250 // when blink is emulating touch with mouse). | 2243 // when blink is emulating touch with mouse). |
| 2251 if (handling_event_type_ != WebInputEvent::TouchStart) | 2244 if (handling_event_type_ != WebInputEvent::TouchStart) |
| 2252 return; | 2245 return; |
| 2253 | 2246 |
| 2254 // Verify the same values are used by the types so we can cast between them. | 2247 // Verify the same values are used by the types so we can cast between them. |
| 2255 COMPILE_ASSERT(static_cast<blink::WebTouchAction>(TOUCH_ACTION_AUTO) == | 2248 STATIC_ASSERT_WTI_ENUM_MATCH(Auto, AUTO); |
| 2256 blink::WebTouchActionAuto, | 2249 STATIC_ASSERT_WTI_ENUM_MATCH(None, NONE); |
| 2257 enum_values_must_match_for_touch_action); | 2250 STATIC_ASSERT_WTI_ENUM_MATCH(PanX, PAN_X); |
| 2258 COMPILE_ASSERT(static_cast<blink::WebTouchAction>(TOUCH_ACTION_NONE) == | 2251 STATIC_ASSERT_WTI_ENUM_MATCH(PanY, PAN_Y); |
| 2259 blink::WebTouchActionNone, | 2252 STATIC_ASSERT_WTI_ENUM_MATCH(PinchZoom, PINCH_ZOOM); |
| 2260 enum_values_must_match_for_touch_action); | |
| 2261 COMPILE_ASSERT(static_cast<blink::WebTouchAction>(TOUCH_ACTION_PAN_X) == | |
| 2262 blink::WebTouchActionPanX, | |
| 2263 enum_values_must_match_for_touch_action); | |
| 2264 COMPILE_ASSERT(static_cast<blink::WebTouchAction>(TOUCH_ACTION_PAN_Y) == | |
| 2265 blink::WebTouchActionPanY, | |
| 2266 enum_values_must_match_for_touch_action); | |
| 2267 COMPILE_ASSERT( | |
| 2268 static_cast<blink::WebTouchAction>(TOUCH_ACTION_PINCH_ZOOM) == | |
| 2269 blink::WebTouchActionPinchZoom, | |
| 2270 enum_values_must_match_for_touch_action); | |
| 2271 | 2253 |
| 2272 content::TouchAction content_touch_action = | 2254 content::TouchAction content_touch_action = |
| 2273 static_cast<content::TouchAction>(web_touch_action); | 2255 static_cast<content::TouchAction>(web_touch_action); |
| 2274 Send(new InputHostMsg_SetTouchAction(routing_id_, content_touch_action)); | 2256 Send(new InputHostMsg_SetTouchAction(routing_id_, content_touch_action)); |
| 2275 } | 2257 } |
| 2276 | 2258 |
| 2277 void RenderWidget::didUpdateTextOfFocusedElementByNonUserInput() { | 2259 void RenderWidget::didUpdateTextOfFocusedElementByNonUserInput() { |
| 2278 #if defined(OS_ANDROID) | 2260 #if defined(OS_ANDROID) |
| 2279 text_field_is_dirty_ = true; | 2261 text_field_is_dirty_ = true; |
| 2280 #endif | 2262 #endif |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2372 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2354 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
| 2373 video_hole_frames_.AddObserver(frame); | 2355 video_hole_frames_.AddObserver(frame); |
| 2374 } | 2356 } |
| 2375 | 2357 |
| 2376 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2358 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
| 2377 video_hole_frames_.RemoveObserver(frame); | 2359 video_hole_frames_.RemoveObserver(frame); |
| 2378 } | 2360 } |
| 2379 #endif // defined(VIDEO_HOLE) | 2361 #endif // defined(VIDEO_HOLE) |
| 2380 | 2362 |
| 2381 } // namespace content | 2363 } // namespace content |
| OLD | NEW |