| 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/renderer_host/render_widget_host_view_android.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_android.h" |
| 6 | 6 |
| 7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 1721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1732 | 1732 |
| 1733 if (input_event.GetType() == blink::WebInputEvent::kGestureTapDown || | 1733 if (input_event.GetType() == blink::WebInputEvent::kGestureTapDown || |
| 1734 input_event.GetType() == blink::WebInputEvent::kTouchStart) { | 1734 input_event.GetType() == blink::WebInputEvent::kTouchStart) { |
| 1735 GpuProcessHost::CallOnIO(GpuProcessHost::GPU_PROCESS_KIND_SANDBOXED, | 1735 GpuProcessHost::CallOnIO(GpuProcessHost::GPU_PROCESS_KIND_SANDBOXED, |
| 1736 false /* force_create */, base::Bind(&WakeUpGpu)); | 1736 false /* force_create */, base::Bind(&WakeUpGpu)); |
| 1737 } | 1737 } |
| 1738 | 1738 |
| 1739 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED; | 1739 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED; |
| 1740 } | 1740 } |
| 1741 | 1741 |
| 1742 void RenderWidgetHostViewAndroid::OnSetNeedsFlushInput() { | |
| 1743 TRACE_EVENT0("input", "RenderWidgetHostViewAndroid::OnSetNeedsFlushInput"); | |
| 1744 AddBeginFrameRequest(FLUSH_INPUT); | |
| 1745 } | |
| 1746 | |
| 1747 BrowserAccessibilityManager* | 1742 BrowserAccessibilityManager* |
| 1748 RenderWidgetHostViewAndroid::CreateBrowserAccessibilityManager( | 1743 RenderWidgetHostViewAndroid::CreateBrowserAccessibilityManager( |
| 1749 BrowserAccessibilityDelegate* delegate, bool for_root_frame) { | 1744 BrowserAccessibilityDelegate* delegate, bool for_root_frame) { |
| 1750 base::android::ScopedJavaLocalRef<jobject> content_view_core_obj; | 1745 base::android::ScopedJavaLocalRef<jobject> content_view_core_obj; |
| 1751 if (for_root_frame && host_ && content_view_core_) | 1746 if (for_root_frame && host_ && content_view_core_) |
| 1752 content_view_core_obj = content_view_core_->GetJavaObject(); | 1747 content_view_core_obj = content_view_core_->GetJavaObject(); |
| 1753 return new BrowserAccessibilityManagerAndroid( | 1748 return new BrowserAccessibilityManagerAndroid( |
| 1754 content_view_core_obj, | 1749 content_view_core_obj, |
| 1755 BrowserAccessibilityManagerAndroid::GetEmptyDocument(), | 1750 BrowserAccessibilityManagerAndroid::GetEmptyDocument(), |
| 1756 delegate); | 1751 delegate); |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2132 uint64_t confirmed = cc::BeginFrameArgs::kInvalidFrameNumber; | 2127 uint64_t confirmed = cc::BeginFrameArgs::kInvalidFrameNumber; |
| 2133 if (args.source_id == latest_confirmed_begin_frame_source_id_) | 2128 if (args.source_id == latest_confirmed_begin_frame_source_id_) |
| 2134 confirmed = latest_confirmed_begin_frame_sequence_number_; | 2129 confirmed = latest_confirmed_begin_frame_sequence_number_; |
| 2135 OnDidNotProduceFrame(cc::BeginFrameAck(args.source_id, args.sequence_number, | 2130 OnDidNotProduceFrame(cc::BeginFrameAck(args.source_id, args.sequence_number, |
| 2136 confirmed, false)); | 2131 confirmed, false)); |
| 2137 return; | 2132 return; |
| 2138 } | 2133 } |
| 2139 | 2134 |
| 2140 // Update |last_begin_frame_args_| before handling | 2135 // Update |last_begin_frame_args_| before handling |
| 2141 // |outstanding_begin_frame_requests_| to prevent the BeginFrameSource from | 2136 // |outstanding_begin_frame_requests_| to prevent the BeginFrameSource from |
| 2142 // sending the same MISSED args in infinite recursion. This may otherwise | 2137 // sending the same MISSED args in infinite recursion. |
| 2143 // happen if |host_->OnBeginFrame()| causes a synchronous | |
| 2144 // OnSetNeedsFlushInput() which can lead to | |
| 2145 // |begin_frame_source_->AddObserver()| and OnBeginFrame(). By setting | |
| 2146 // |last_begin_frame_args_|, we indicate to the source not to send the same | |
| 2147 // args during |AddObserver()| again. | |
| 2148 last_begin_frame_args_ = args; | 2138 last_begin_frame_args_ = args; |
| 2149 | 2139 |
| 2150 if (outstanding_begin_frame_requests_ & FLUSH_INPUT) { | |
| 2151 ClearBeginFrameRequest(FLUSH_INPUT); | |
| 2152 host_->OnBeginFrame(); | |
| 2153 } | |
| 2154 | |
| 2155 if ((outstanding_begin_frame_requests_ & BEGIN_FRAME) || | 2140 if ((outstanding_begin_frame_requests_ & BEGIN_FRAME) || |
| 2156 (outstanding_begin_frame_requests_ & PERSISTENT_BEGIN_FRAME)) { | 2141 (outstanding_begin_frame_requests_ & PERSISTENT_BEGIN_FRAME)) { |
| 2157 ClearBeginFrameRequest(BEGIN_FRAME); | 2142 ClearBeginFrameRequest(BEGIN_FRAME); |
| 2158 SendBeginFrame(args); | 2143 SendBeginFrame(args); |
| 2159 } else { | 2144 } else { |
| 2160 OnDidNotProduceFrame(cc::BeginFrameAck(args.source_id, args.sequence_number, | 2145 OnDidNotProduceFrame(cc::BeginFrameAck(args.source_id, args.sequence_number, |
| 2161 args.sequence_number, false)); | 2146 args.sequence_number, false)); |
| 2162 } | 2147 } |
| 2163 } | 2148 } |
| 2164 | 2149 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2282 | 2267 |
| 2283 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); | 2268 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); |
| 2284 if (!compositor) | 2269 if (!compositor) |
| 2285 return; | 2270 return; |
| 2286 | 2271 |
| 2287 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( | 2272 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( |
| 2288 overscroll_refresh_handler, compositor, view_.GetDipScale()); | 2273 overscroll_refresh_handler, compositor, view_.GetDipScale()); |
| 2289 } | 2274 } |
| 2290 | 2275 |
| 2291 } // namespace content | 2276 } // namespace content |
| OLD | NEW |