summaryrefslogtreecommitdiff
path: root/chromium/content/browser/android
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/android')
-rw-r--r--chromium/content/browser/android/content_feature_list.cc3
-rw-r--r--chromium/content/browser/android/content_ui_event_handler.cc10
-rw-r--r--chromium/content/browser/android/dialog_overlay_impl.cc3
-rw-r--r--chromium/content/browser/android/gesture_listener_manager.cc28
-rw-r--r--chromium/content/browser/android/gesture_listener_manager.h6
-rw-r--r--chromium/content/browser/android/ime_adapter_android.cc27
-rw-r--r--chromium/content/browser/android/ime_adapter_android.h17
-rw-r--r--chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc15
-rw-r--r--chromium/content/browser/android/java/gin_java_bridge_message_filter.cc3
-rw-r--r--chromium/content/browser/android/nfc_host.cc4
-rw-r--r--chromium/content/browser/android/render_widget_host_connector.cc13
-rw-r--r--chromium/content/browser/android/scoped_surface_request_manager.cc5
-rw-r--r--chromium/content/browser/android/synchronous_compositor_host.cc69
-rw-r--r--chromium/content/browser/android/synchronous_compositor_host.h16
-rw-r--r--chromium/content/browser/android/synchronous_compositor_sync_call_bridge.cc14
-rw-r--r--chromium/content/browser/android/synchronous_compositor_sync_call_bridge.h6
-rw-r--r--chromium/content/browser/android/web_contents_observer_proxy.cc10
-rw-r--r--chromium/content/browser/android/web_contents_observer_proxy.h2
18 files changed, 140 insertions, 111 deletions
diff --git a/chromium/content/browser/android/content_feature_list.cc b/chromium/content/browser/android/content_feature_list.cc
index d5feae1e48b..a297f8db048 100644
--- a/chromium/content/browser/android/content_feature_list.cc
+++ b/chromium/content/browser/android/content_feature_list.cc
@@ -6,6 +6,7 @@
#include "base/android/jni_string.h"
#include "base/feature_list.h"
+#include "base/notreached.h"
#include "base/stl_util.h"
#include "content/public/android/content_jni_headers/ContentFeatureListImpl_jni.h"
#include "content/public/common/content_features.h"
@@ -23,8 +24,8 @@ namespace {
// in other locations in the code base (e.g. content_features.h).
const base::Feature* kFeaturesExposedToJava[] = {
&features::kBackgroundMediaRendererHasModerateBinding,
+ &features::kWebBluetoothNewPermissionsBackend,
&features::kWebNfc,
- &features::kWebXrPermissionsApi,
&kServiceGroupImportance,
};
diff --git a/chromium/content/browser/android/content_ui_event_handler.cc b/chromium/content/browser/android/content_ui_event_handler.cc
index 5b2621ef435..0a7042d033e 100644
--- a/chromium/content/browser/android/content_ui_event_handler.cc
+++ b/chromium/content/browser/android/content_ui_event_handler.cc
@@ -113,7 +113,7 @@ void ContentUiEventHandler::SendMouseWheelEvent(
ui::MotionEventAndroid event(
env, nullptr, 1.f / view->GetDipScale(), ticks_x, ticks_y,
pixels_per_tick, time_ms, 0 /* action */, 1 /* pointer_count */,
- 0 /* history_size */, 0 /* action_index */, 0, 0, 0,
+ 0 /* history_size */, 0 /* action_index */, 0, 0, 0, 0,
0 /* raw_offset_x_pixels */, 0 /* raw_offset_y_pixels */,
false /* for_touch_handle */, &pointer, nullptr);
event_handler->OnMouseWheelEvent(event);
@@ -147,10 +147,10 @@ void ContentUiEventHandler::SendMouseEvent(JNIEnv* env,
env, nullptr /* event */,
1.f / web_contents_->GetNativeView()->GetDipScale(), 0.f, 0.f, 0.f,
time_ms, android_action, 1 /* pointer_count */, 0 /* history_size */,
- 0 /* action_index */, android_action_button, android_button_state,
- android_meta_state, 0 /* raw_offset_x_pixels */,
- 0 /* raw_offset_y_pixels */, false /* for_touch_handle */, &pointer,
- nullptr);
+ 0 /* action_index */, android_action_button,
+ 0 /* gesture_classification */, android_button_state, android_meta_state,
+ 0 /* raw_offset_x_pixels */, 0 /* raw_offset_y_pixels */,
+ false /* for_touch_handle */, &pointer, nullptr);
event_handler->OnMouseEvent(event);
}
diff --git a/chromium/content/browser/android/dialog_overlay_impl.cc b/chromium/content/browser/android/dialog_overlay_impl.cc
index 4210aa23e05..4392c67e89e 100644
--- a/chromium/content/browser/android/dialog_overlay_impl.cc
+++ b/chromium/content/browser/android/dialog_overlay_impl.cc
@@ -4,7 +4,6 @@
#include "content/browser/android/dialog_overlay_impl.h"
-#include "base/task/post_task.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
#include "content/browser/renderer_host/render_widget_host_view_base.h"
#include "content/browser/web_contents/web_contents_impl.h"
@@ -136,7 +135,7 @@ void DialogOverlayImpl::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
UnregisterCallbacksIfNeeded();
// We delete soon since this might be part of an onDismissed callback.
- base::DeleteSoon(FROM_HERE, {BrowserThread::UI}, this);
+ GetUIThreadTaskRunner({})->DeleteSoon(FROM_HERE, this);
}
void DialogOverlayImpl::GetCompositorOffset(
diff --git a/chromium/content/browser/android/gesture_listener_manager.cc b/chromium/content/browser/android/gesture_listener_manager.cc
index 3a0e3d7b3b8..275713620c1 100644
--- a/chromium/content/browser/android/gesture_listener_manager.cc
+++ b/chromium/content/browser/android/gesture_listener_manager.cc
@@ -137,6 +137,16 @@ void GestureListenerManager::SetMultiTouchZoomSupportEnabled(
rwhva_->SetMultiTouchZoomSupportEnabled(enabled);
}
+void GestureListenerManager::SetHasListenersAttached(JNIEnv* env,
+ jboolean enabled) {
+ if (has_listeners_attached_ == enabled)
+ return;
+
+ has_listeners_attached_ = enabled;
+ if (rwhva_)
+ rwhva_->UpdateReportAllRootScrolls();
+}
+
void GestureListenerManager::GestureEventAck(
const blink::WebGestureEvent& event,
blink::mojom::InputEventResultState ack_result) {
@@ -219,14 +229,24 @@ void GestureListenerManager::UpdateOnTouchDown() {
Java_GestureListenerManagerImpl_updateOnTouchDown(env, obj);
}
+void GestureListenerManager::OnRootScrollOffsetChanged(
+ const gfx::Vector2dF& root_scroll_offset) {
+ JNIEnv* env = AttachCurrentThread();
+ ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
+ if (obj.is_null())
+ return;
+
+ Java_GestureListenerManagerImpl_onRootScrollOffsetChanged(
+ env, obj, root_scroll_offset.x(), root_scroll_offset.y());
+}
+
void GestureListenerManager::UpdateRenderProcessConnection(
RenderWidgetHostViewAndroid* old_rwhva,
RenderWidgetHostViewAndroid* new_rwhva) {
if (old_rwhva)
- old_rwhva->set_gesture_listener_manager(nullptr);
- if (new_rwhva) {
- new_rwhva->set_gesture_listener_manager(this);
- }
+ old_rwhva->SetGestureListenerManager(nullptr);
+ if (new_rwhva)
+ new_rwhva->SetGestureListenerManager(this);
rwhva_ = new_rwhva;
}
diff --git a/chromium/content/browser/android/gesture_listener_manager.h b/chromium/content/browser/android/gesture_listener_manager.h
index 12c831f4ed8..57923d96aa7 100644
--- a/chromium/content/browser/android/gesture_listener_manager.h
+++ b/chromium/content/browser/android/gesture_listener_manager.h
@@ -43,6 +43,8 @@ class CONTENT_EXPORT GestureListenerManager : public RenderWidgetHostConnector {
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean enabled);
+ bool has_listeners_attached() const { return has_listeners_attached_; }
+ void SetHasListenersAttached(JNIEnv* env, jboolean enabled);
void GestureEventAck(const blink::WebGestureEvent& event,
blink::mojom::InputEventResultState ack_result);
void DidStopFlinging();
@@ -60,6 +62,7 @@ class CONTENT_EXPORT GestureListenerManager : public RenderWidgetHostConnector {
const float top_shown_pix,
bool top_changed);
void UpdateOnTouchDown();
+ void OnRootScrollOffsetChanged(const gfx::Vector2dF& root_scroll_offset);
// RendetWidgetHostConnector implementation.
void UpdateRenderProcessConnection(
@@ -83,6 +86,9 @@ class CONTENT_EXPORT GestureListenerManager : public RenderWidgetHostConnector {
// A weak reference to the Java GestureListenerManager object.
JavaObjectWeakGlobalRef java_ref_;
+ // True if there is at least one listener attached.
+ bool has_listeners_attached_ = false;
+
DISALLOW_COPY_AND_ASSIGN(GestureListenerManager);
};
diff --git a/chromium/content/browser/android/ime_adapter_android.cc b/chromium/content/browser/android/ime_adapter_android.cc
index 0ba2b4dc7f0..32463e294fc 100644
--- a/chromium/content/browser/android/ime_adapter_android.cc
+++ b/chromium/content/browser/android/ime_adapter_android.cc
@@ -177,19 +177,21 @@ void ImeAdapterAndroid::UpdateRenderProcessConnection(
rwhva_ = new_rwhva;
}
-void ImeAdapterAndroid::UpdateState(const TextInputState& state) {
+void ImeAdapterAndroid::UpdateState(const ui::mojom::TextInputState& state) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj = java_ime_adapter_.get(env);
if (obj.is_null())
return;
ScopedJavaLocalRef<jstring> jstring_text =
- ConvertUTF16ToJavaString(env, state.value);
+ ConvertUTF16ToJavaString(env, state.value.value_or(base::string16()));
Java_ImeAdapterImpl_updateState(
env, obj, static_cast<int>(state.type), state.flags, state.mode,
static_cast<int>(state.action), state.show_ime_if_needed,
- state.always_hide_ime, jstring_text, state.selection_start,
- state.selection_end, state.composition_start, state.composition_end,
+ state.always_hide_ime, jstring_text, state.selection.start(),
+ state.selection.end(),
+ state.composition ? state.composition.value().start() : -1,
+ state.composition ? state.composition.value().end() : -1,
state.reply_to_request);
}
@@ -366,7 +368,7 @@ void ImeAdapterAndroid::SetEditableSelectionOffsets(
const JavaParamRef<jobject>&,
int start,
int end) {
- auto* input_handler = GetFocusedFrameInputHandler();
+ auto* input_handler = GetFocusedFrameWidgetInputHandler();
if (!input_handler)
return;
@@ -400,7 +402,7 @@ void ImeAdapterAndroid::SetComposingRegion(JNIEnv*,
const JavaParamRef<jobject>&,
int start,
int end) {
- auto* input_handler = GetFocusedFrameInputHandler();
+ auto* input_handler = GetFocusedFrameWidgetInputHandler();
if (!input_handler)
return;
@@ -418,7 +420,7 @@ void ImeAdapterAndroid::DeleteSurroundingText(JNIEnv*,
const JavaParamRef<jobject>&,
int before,
int after) {
- auto* input_handler = GetFocusedFrameInputHandler();
+ auto* input_handler = GetFocusedFrameWidgetInputHandler();
if (!input_handler)
return;
input_handler->DeleteSurroundingText(before, after);
@@ -429,7 +431,7 @@ void ImeAdapterAndroid::DeleteSurroundingTextInCodePoints(
const JavaParamRef<jobject>&,
int before,
int after) {
- auto* input_handler = GetFocusedFrameInputHandler();
+ auto* input_handler = GetFocusedFrameWidgetInputHandler();
if (!input_handler)
return;
input_handler->DeleteSurroundingTextInCodePoints(before, after);
@@ -480,11 +482,12 @@ RenderFrameHost* ImeAdapterAndroid::GetFocusedFrame() {
return nullptr;
}
-mojom::FrameInputHandler* ImeAdapterAndroid::GetFocusedFrameInputHandler() {
- auto* focused_frame = static_cast<RenderFrameHostImpl*>(GetFocusedFrame());
- if (!focused_frame)
+blink::mojom::FrameWidgetInputHandler*
+ImeAdapterAndroid::GetFocusedFrameWidgetInputHandler() {
+ RenderWidgetHostImpl* rwhi = GetFocusedWidget();
+ if (!rwhi)
return nullptr;
- return focused_frame->GetFrameInputHandler();
+ return rwhi->GetFrameWidgetInputHandler();
}
std::vector<ui::ImeTextSpan> ImeAdapterAndroid::GetImeTextSpansFromJava(
diff --git a/chromium/content/browser/android/ime_adapter_android.h b/chromium/content/browser/android/ime_adapter_android.h
index 9ef72bb7d99..f22506b6cf9 100644
--- a/chromium/content/browser/android/ime_adapter_android.h
+++ b/chromium/content/browser/android/ime_adapter_android.h
@@ -17,22 +17,27 @@
namespace ui {
+namespace mojom {
+class TextInputState;
+} // namespace mojom
+
struct ImeTextSpan;
} // namespace ui
-namespace content {
-
+namespace blink {
namespace mojom {
-class FrameInputHandler;
+class FrameWidgetInputHandler;
} // namespace mojom
+} // namespace blink
+
+namespace content {
class RenderFrameHost;
class RenderWidgetHostImpl;
class RenderWidgetHostViewAndroid;
-struct TextInputState;
// This class is in charge of dispatching key events from the java side
// and forward to renderer along with input method results via
@@ -112,7 +117,7 @@ class CONTENT_EXPORT ImeAdapterAndroid : public RenderWidgetHostConnector {
return java_ime_adapter_.get(env);
}
- void UpdateState(const TextInputState& state);
+ void UpdateState(const ui::mojom::TextInputState& state);
void UpdateOnTouchDown();
void AdvanceFocusInForm(JNIEnv*,
@@ -122,7 +127,7 @@ class CONTENT_EXPORT ImeAdapterAndroid : public RenderWidgetHostConnector {
private:
RenderWidgetHostImpl* GetFocusedWidget();
RenderFrameHost* GetFocusedFrame();
- mojom::FrameInputHandler* GetFocusedFrameInputHandler();
+ blink::mojom::FrameWidgetInputHandler* GetFocusedFrameWidgetInputHandler();
std::vector<ui::ImeTextSpan> GetImeTextSpansFromJava(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
diff --git a/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc b/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
index df359f8c122..e1e9597a09d 100644
--- a/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
+++ b/chromium/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
@@ -11,6 +11,7 @@
#include "content/browser/android/java/gin_java_bound_object_delegate.h"
#include "content/browser/android/java/gin_java_bridge_message_filter.h"
#include "content/browser/android/java/java_bridge_thread.h"
+#include "content/browser/web_contents/web_contents_impl.h"
#include "content/common/android/gin_java_bridge_value.h"
#include "content/common/android/hash_set.h"
#include "content/common/gin_java_bridge_messages.h"
@@ -208,7 +209,12 @@ void GinJavaBridgeDispatcherHost::AddNamedObject(
// notified the observers about new RenderFrame, it is necessary to ensure
// here that all render frame IDs are registered with the filter.
InstallFilterAndRegisterAllRoutingIds();
- web_contents()->SendToAllFrames(
+ // We should include pending RenderFrameHosts, otherwise they will miss the
+ // chance when calling add or remove methods when they are created but not
+ // committed. See: http://crbug.com/1087806
+ WebContentsImpl* web_contents_impl =
+ static_cast<WebContentsImpl*>(web_contents());
+ web_contents_impl->SendToAllFramesIncludingPending(
new GinJavaBridgeMsg_AddNamedObject(MSG_ROUTING_NONE, name, object_id));
}
@@ -234,7 +240,12 @@ void GinJavaBridgeDispatcherHost::RemoveNamedObject(
// hold it. All the transient objects and removed named objects will be purged
// during the cleansing caused by DocumentAvailableInMainFrame event.
- web_contents()->SendToAllFrames(
+ // We should include pending RenderFrameHosts, otherwise they will miss the
+ // chance when calling add or remove methods when they are created but not
+ // committed. See: http://crbug.com/1087806
+ WebContentsImpl* web_contents_impl =
+ static_cast<WebContentsImpl*>(web_contents());
+ web_contents_impl->SendToAllFramesIncludingPending(
new GinJavaBridgeMsg_RemoveNamedObject(MSG_ROUTING_NONE, copied_name));
}
diff --git a/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc b/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc
index 53dba1f9e84..f16d73b4ec7 100644
--- a/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc
+++ b/chromium/content/browser/android/java/gin_java_bridge_message_filter.cc
@@ -5,7 +5,6 @@
#include "content/browser/android/java/gin_java_bridge_message_filter.h"
#include "base/auto_reset.h"
-#include "base/task/post_task.h"
#include "build/build_config.h"
#include "content/browser/android/java/gin_java_bridge_dispatcher_host.h"
#include "content/browser/android/java/java_bridge_thread.h"
@@ -40,7 +39,7 @@ void GinJavaBridgeMessageFilter::OnDestruct() const {
if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
delete this;
} else {
- base::DeleteSoon(FROM_HERE, {BrowserThread::UI}, this);
+ GetUIThreadTaskRunner({})->DeleteSoon(FROM_HERE, this);
}
}
diff --git a/chromium/content/browser/android/nfc_host.cc b/chromium/content/browser/android/nfc_host.cc
index 86c84a299c4..30517f69b3d 100644
--- a/chromium/content/browser/android/nfc_host.cc
+++ b/chromium/content/browser/android/nfc_host.cc
@@ -44,8 +44,8 @@ void NFCHost::GetNFC(RenderFrameHost* render_frame_host,
}
GURL origin_url = render_frame_host->GetLastCommittedOrigin().GetURL();
- if (permission_controller_->GetPermissionStatus(PermissionType::NFC,
- origin_url, origin_url) !=
+ if (permission_controller_->GetPermissionStatusForFrame(
+ PermissionType::NFC, render_frame_host, origin_url) !=
blink::mojom::PermissionStatus::GRANTED) {
return;
}
diff --git a/chromium/content/browser/android/render_widget_host_connector.cc b/chromium/content/browser/android/render_widget_host_connector.cc
index 661519bf455..b18f43617bf 100644
--- a/chromium/content/browser/android/render_widget_host_connector.cc
+++ b/chromium/content/browser/android/render_widget_host_connector.cc
@@ -23,8 +23,6 @@ class RenderWidgetHostConnector::Observer
void RenderViewReady() override;
void RenderViewHostChanged(RenderViewHost* old_host,
RenderViewHost* new_host) override;
- void DidAttachInterstitialPage() override;
- void DidDetachInterstitialPage() override;
// WebContentsAndroid::DestructionObserver implementation.
void WebContentsAndroidDestroyed(
@@ -44,8 +42,7 @@ class RenderWidgetHostConnector::Observer
RenderWidgetHostConnector* const connector_;
- // Active RenderWidgetHostView connected to this instance. Can also point to
- // an interstitial while it is showing.
+ // Active RenderWidgetHostView connected to this instance.
RenderWidgetHostViewAndroid* active_rwhva_;
DISALLOW_COPY_AND_ASSIGN(Observer);
@@ -82,14 +79,6 @@ void RenderWidgetHostConnector::Observer::RenderViewHostChanged(
UpdateRenderWidgetHostView(new_view_android);
}
-void RenderWidgetHostConnector::Observer::DidAttachInterstitialPage() {
- UpdateRenderWidgetHostView(GetRenderWidgetHostViewAndroid());
-}
-
-void RenderWidgetHostConnector::Observer::DidDetachInterstitialPage() {
- UpdateRenderWidgetHostView(GetRenderWidgetHostViewAndroid());
-}
-
void RenderWidgetHostConnector::Observer::WebContentsAndroidDestroyed(
WebContentsAndroid* web_contents_android) {
DoDestroy(web_contents_android);
diff --git a/chromium/content/browser/android/scoped_surface_request_manager.cc b/chromium/content/browser/android/scoped_surface_request_manager.cc
index 9fe2f6b45d2..8ce3b1a4191 100644
--- a/chromium/content/browser/android/scoped_surface_request_manager.cc
+++ b/chromium/content/browser/android/scoped_surface_request_manager.cc
@@ -5,7 +5,6 @@
#include "content/browser/android/scoped_surface_request_manager.h"
#include "base/bind.h"
-#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "gpu/command_buffer/service/texture_owner.h"
@@ -69,8 +68,8 @@ void ScopedSurfaceRequestManager::FulfillScopedSurfaceRequest(
gl::ScopedJavaSurface surface) {
// base::Unretained is safe because the lifetime of this object is tied to
// the lifetime of the browser process.
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&ScopedSurfaceRequestManager::CompleteRequestOnUiThread,
base::Unretained(this), request_token,
std::move(surface)));
diff --git a/chromium/content/browser/android/synchronous_compositor_host.cc b/chromium/content/browser/android/synchronous_compositor_host.cc
index 9a61f070139..7afaf4ea786 100644
--- a/chromium/content/browser/android/synchronous_compositor_host.cc
+++ b/chromium/content/browser/android/synchronous_compositor_host.cc
@@ -12,7 +12,6 @@
#include "base/memory/ptr_util.h"
#include "base/memory/shared_memory_mapping.h"
#include "base/memory/writable_shared_memory_region.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_restrictions.h"
#include "base/trace_event/traced_value.h"
#include "content/browser/android/synchronous_compositor_sync_call_bridge.h"
@@ -66,7 +65,7 @@ void EstablishGpuChannelToEstablishVizConnection() {
// This class runs on the IO thread and is destroyed when the renderer
// side closes the mojo channel.
class SynchronousCompositorControlHost
- : public mojom::SynchronousCompositorControlHost {
+ : public blink::mojom::SynchronousCompositorControlHost {
public:
SynchronousCompositorControlHost(
scoped_refptr<SynchronousCompositorSyncCallBridge> bridge,
@@ -78,17 +77,19 @@ class SynchronousCompositorControlHost
}
static void Create(
- mojo::PendingReceiver<mojom::SynchronousCompositorControlHost> receiver,
+ mojo::PendingReceiver<blink::mojom::SynchronousCompositorControlHost>
+ receiver,
scoped_refptr<SynchronousCompositorSyncCallBridge> bridge,
int process_id) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- base::PostTask(FROM_HERE, {BrowserThread::IO},
- base::BindOnce(&CreateOnIOThread, std::move(receiver),
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&CreateOnIOThread, std::move(receiver),
std::move(bridge), process_id));
}
static void CreateOnIOThread(
- mojo::PendingReceiver<mojom::SynchronousCompositorControlHost> receiver,
+ mojo::PendingReceiver<blink::mojom::SynchronousCompositorControlHost>
+ receiver,
scoped_refptr<SynchronousCompositorSyncCallBridge> bridge,
int process_id) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -113,7 +114,7 @@ class SynchronousCompositorControlHost
}
void BeginFrameResponse(
- mojom::SyncCompositorCommonRendererParamsPtr params) override {
+ blink::mojom::SyncCompositorCommonRendererParamsPtr params) override {
if (!bridge_->BeginFrameResponseOnIOThread(std::move(params))) {
bad_message::ReceivedBadMessage(
process_id_, bad_message::SYNC_COMPOSITOR_NO_BEGIN_FRAME);
@@ -168,7 +169,8 @@ SynchronousCompositorHost::~SynchronousCompositorHost() {
}
void SynchronousCompositorHost::InitMojo() {
- mojo::PendingRemote<mojom::SynchronousCompositorControlHost> host_control;
+ mojo::PendingRemote<blink::mojom::SynchronousCompositorControlHost>
+ host_control;
SynchronousCompositorControlHost::Create(
host_control.InitWithNewPipeAndPassReceiver(), bridge_,
@@ -201,11 +203,11 @@ SynchronousCompositorHost::DemandDrawHwAsync(
return frame_future;
}
- mojom::SyncCompositorDemandDrawHwParamsPtr params =
- mojom::SyncCompositorDemandDrawHwParams::New(
+ blink::mojom::SyncCompositorDemandDrawHwParamsPtr params =
+ blink::mojom::SyncCompositorDemandDrawHwParams::New(
viewport_size, viewport_rect_for_tile_priority,
transform_for_tile_priority);
- mojom::SynchronousCompositor* compositor = GetSynchronousCompositor();
+ blink::mojom::SynchronousCompositor* compositor = GetSynchronousCompositor();
if (!bridge_->SetFrameFutureOnUIThread(frame_future)) {
frame_future->SetFrame(nullptr);
} else {
@@ -219,15 +221,15 @@ SynchronousCompositor::Frame SynchronousCompositorHost::DemandDrawHw(
const gfx::Size& viewport_size,
const gfx::Rect& viewport_rect_for_tile_priority,
const gfx::Transform& transform_for_tile_priority) {
- mojom::SyncCompositorDemandDrawHwParamsPtr params =
- mojom::SyncCompositorDemandDrawHwParams::New(
+ blink::mojom::SyncCompositorDemandDrawHwParamsPtr params =
+ blink::mojom::SyncCompositorDemandDrawHwParams::New(
viewport_size, viewport_rect_for_tile_priority,
transform_for_tile_priority);
uint32_t layer_tree_frame_sink_id;
uint32_t metadata_version = 0u;
base::Optional<viz::CompositorFrame> compositor_frame;
base::Optional<viz::HitTestRegionList> hit_test_region_list;
- mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
{
mojo::SyncCallRestrictions::ScopedAllowSyncCall allow_sync_call;
@@ -290,11 +292,11 @@ bool SynchronousCompositorHost::DemandDrawSwInProc(SkCanvas* canvas) {
mojo::SyncCallRestrictions::ScopedAllowSyncCall allow_sync_call;
base::ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
allow_base_sync_primitives;
- mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
base::Optional<viz::CompositorFrameMetadata> metadata;
ScopedSetSkCanvas set_sk_canvas(canvas);
- mojom::SyncCompositorDemandDrawSwParamsPtr params =
- mojom::SyncCompositorDemandDrawSwParams::New(); // Unused.
+ blink::mojom::SyncCompositorDemandDrawSwParamsPtr params =
+ blink::mojom::SyncCompositorDemandDrawSwParams::New(); // Unused.
uint32_t metadata_version = 0u;
invalidate_needs_draw_ = false;
if (!IsReadyForSynchronousCall() ||
@@ -336,8 +338,8 @@ bool SynchronousCompositorHost::DemandDrawSw(SkCanvas* canvas) {
if (use_in_process_zero_copy_software_draw_)
return DemandDrawSwInProc(canvas);
- mojom::SyncCompositorDemandDrawSwParamsPtr params =
- mojom::SyncCompositorDemandDrawSwParams::New();
+ blink::mojom::SyncCompositorDemandDrawSwParamsPtr params =
+ blink::mojom::SyncCompositorDemandDrawSwParams::New();
params->size = gfx::Size(canvas->getBaseLayerSize().width(),
canvas->getBaseLayerSize().height());
SkIRect canvas_clip = canvas->getDeviceClipBounds();
@@ -360,7 +362,7 @@ bool SynchronousCompositorHost::DemandDrawSw(SkCanvas* canvas) {
base::Optional<viz::CompositorFrameMetadata> metadata;
uint32_t metadata_version = 0u;
- mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
{
mojo::SyncCallRestrictions::ScopedAllowSyncCall allow_sync_call;
base::ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
@@ -418,7 +420,7 @@ void SynchronousCompositorHost::SetSoftwareDrawSharedMemoryIfNeeded(
}
bool success = false;
- mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
{
mojo::SyncCallRestrictions::ScopedAllowSyncCall allow_sync_call;
base::ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
@@ -436,7 +438,8 @@ void SynchronousCompositorHost::SetSoftwareDrawSharedMemoryIfNeeded(
void SynchronousCompositorHost::SendZeroMemory() {
// No need to check return value.
- if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor())
+ if (blink::mojom::SynchronousCompositor* compositor =
+ GetSynchronousCompositor())
compositor->ZeroSharedMemory();
}
@@ -444,7 +447,8 @@ void SynchronousCompositorHost::ReturnResources(
uint32_t layer_tree_frame_sink_id,
const std::vector<viz::ReturnedResource>& resources) {
DCHECK(!resources.empty());
- if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor())
+ if (blink::mojom::SynchronousCompositor* compositor =
+ GetSynchronousCompositor())
compositor->ReclaimResources(layer_tree_frame_sink_id, resources);
}
@@ -472,7 +476,8 @@ void SynchronousCompositorHost::SetMemoryPolicy(size_t bytes_limit) {
return;
bytes_limit_ = bytes_limit;
- if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor())
+ if (blink::mojom::SynchronousCompositor* compositor =
+ GetSynchronousCompositor())
compositor->SetMemoryPolicy(bytes_limit_);
}
@@ -481,13 +486,14 @@ void SynchronousCompositorHost::DidChangeRootLayerScrollOffset(
if (root_scroll_offset_ == root_offset)
return;
root_scroll_offset_ = root_offset;
- if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor())
+ if (blink::mojom::SynchronousCompositor* compositor =
+ GetSynchronousCompositor())
compositor->SetScroll(root_scroll_offset_);
}
void SynchronousCompositorHost::SynchronouslyZoomBy(float zoom_delta,
const gfx::Point& anchor) {
- mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr common_renderer_params;
{
mojo::SyncCallRestrictions::ScopedAllowSyncCall allow_sync_call;
base::ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
@@ -535,7 +541,7 @@ void SynchronousCompositorHost::LayerTreeFrameSinkCreated() {
// New LayerTreeFrameSink is not aware of state from Browser side. So need to
// re-send all browser side state here.
- mojom::SynchronousCompositor* compositor = GetSynchronousCompositor();
+ blink::mojom::SynchronousCompositor* compositor = GetSynchronousCompositor();
DCHECK(compositor);
compositor->SetMemoryPolicy(bytes_limit_);
@@ -544,7 +550,7 @@ void SynchronousCompositorHost::LayerTreeFrameSinkCreated() {
}
void SynchronousCompositorHost::UpdateState(
- mojom::SyncCompositorCommonRendererParamsPtr params) {
+ blink::mojom::SyncCompositorCommonRendererParamsPtr params) {
// Ignore if |renderer_param_version_| is newer than |params.version|. This
// comparison takes into account when the unsigned int wraps.
if ((renderer_param_version_ - params->version) < 0x80000000) {
@@ -597,7 +603,7 @@ RenderProcessHost* SynchronousCompositorHost::GetRenderProcessHost() {
return rwhva_->GetRenderWidgetHost()->GetProcess();
}
-mojom::SynchronousCompositor*
+blink::mojom::SynchronousCompositor*
SynchronousCompositorHost::GetSynchronousCompositor() {
if (!sync_compositor_)
return nullptr;
@@ -652,7 +658,8 @@ bool SynchronousCompositorHost::WantsAnimateOnlyBeginFrames() const {
}
void SynchronousCompositorHost::SendBeginFramePaused() {
- if (mojom::SynchronousCompositor* compositor = GetSynchronousCompositor())
+ if (blink::mojom::SynchronousCompositor* compositor =
+ GetSynchronousCompositor())
compositor->SetBeginFrameSourcePaused(begin_frame_paused_);
}
@@ -663,7 +670,7 @@ void SynchronousCompositorHost::SendBeginFrame(viz::BeginFrameArgs args) {
if (!bridge_->WaitAfterVSyncOnUIThread())
return;
- mojom::SynchronousCompositor* compositor = GetSynchronousCompositor();
+ blink::mojom::SynchronousCompositor* compositor = GetSynchronousCompositor();
DCHECK(compositor);
compositor->BeginFrame(args, timing_details_);
timing_details_.clear();
diff --git a/chromium/content/browser/android/synchronous_compositor_host.h b/chromium/content/browser/android/synchronous_compositor_host.h
index 10db0c6de51..e3b50b3d673 100644
--- a/chromium/content/browser/android/synchronous_compositor_host.h
+++ b/chromium/content/browser/android/synchronous_compositor_host.h
@@ -19,11 +19,11 @@
#include "components/viz/common/quads/compositor_frame.h"
#include "components/viz/common/surfaces/frame_sink_id.h"
#include "content/common/content_export.h"
-#include "content/common/input/synchronous_compositor.mojom.h"
#include "content/public/browser/android/synchronous_compositor.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
+#include "third_party/blink/public/mojom/input/synchronous_compositor.mojom.h"
#include "ui/android/view_android.h"
#include "ui/gfx/geometry/scroll_offset.h"
#include "ui/gfx/geometry/size_f.h"
@@ -41,7 +41,7 @@ class SynchronousCompositorSyncCallBridge;
class CONTENT_EXPORT SynchronousCompositorHost
: public SynchronousCompositor,
- public mojom::SynchronousCompositorHost,
+ public blink::mojom::SynchronousCompositorHost,
public viz::BeginFrameObserver {
public:
static std::unique_ptr<SynchronousCompositorHost> Create(
@@ -88,10 +88,10 @@ class CONTENT_EXPORT SynchronousCompositorHost
void AddBeginFrameCompletionCallback(base::OnceClosure callback);
- // mojom::SynchronousCompositorHost overrides.
+ // blink::mojom::SynchronousCompositorHost overrides.
void LayerTreeFrameSinkCreated() override;
void UpdateState(
- mojom::SyncCompositorCommonRendererParamsPtr params) override;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr params) override;
void SetNeedsBeginFrames(bool needs_begin_frames) override;
// viz::BeginFrameObserver implementation.
@@ -123,7 +123,7 @@ class CONTENT_EXPORT SynchronousCompositorHost
bool DemandDrawSwInProc(SkCanvas* canvas);
void SetSoftwareDrawSharedMemoryIfNeeded(size_t stride, size_t buffer_size);
void SendZeroMemory();
- mojom::SynchronousCompositor* GetSynchronousCompositor();
+ blink::mojom::SynchronousCompositor* GetSynchronousCompositor();
// Whether the synchronous compositor host is ready to
// handle blocking calls.
bool IsReadyForSynchronousCall();
@@ -139,9 +139,9 @@ class CONTENT_EXPORT SynchronousCompositorHost
SynchronousCompositorClient* const client_;
const viz::FrameSinkId frame_sink_id_;
const bool use_in_process_zero_copy_software_draw_;
- mojo::AssociatedRemote<mojom::SynchronousCompositor> sync_compositor_;
- mojo::AssociatedReceiver<mojom::SynchronousCompositorHost> host_receiver_{
- this};
+ mojo::AssociatedRemote<blink::mojom::SynchronousCompositor> sync_compositor_;
+ mojo::AssociatedReceiver<blink::mojom::SynchronousCompositorHost>
+ host_receiver_{this};
bool registered_with_filter_ = false;
diff --git a/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.cc b/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.cc
index 77afdc2b962..cd944695b05 100644
--- a/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.cc
+++ b/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.cc
@@ -5,7 +5,6 @@
#include "content/browser/android/synchronous_compositor_sync_call_bridge.h"
#include "base/bind.h"
-#include "base/task/post_task.h"
#include "content/browser/android/synchronous_compositor_host.h"
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/public/browser/browser_task_traits.h"
@@ -55,8 +54,8 @@ bool SynchronousCompositorSyncCallBridge::ReceiveFrameOnIOThread(
frame_futures_.pop_front();
if (compositor_frame) {
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(&SynchronousCompositorSyncCallBridge::
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&SynchronousCompositorSyncCallBridge::
ProcessFrameMetadataOnUIThread,
this, metadata_version,
compositor_frame->metadata.Clone()));
@@ -69,7 +68,7 @@ bool SynchronousCompositorSyncCallBridge::ReceiveFrameOnIOThread(
}
bool SynchronousCompositorSyncCallBridge::BeginFrameResponseOnIOThread(
- mojom::SyncCompositorCommonRendererParamsPtr render_params) {
+ blink::mojom::SyncCompositorCommonRendererParamsPtr render_params) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
base::AutoLock lock(lock_);
if (begin_frame_response_valid_)
@@ -125,7 +124,7 @@ bool SynchronousCompositorSyncCallBridge::IsRemoteReadyOnUIThread() {
void SynchronousCompositorSyncCallBridge::BeginFrameCompleteOnUIThread() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- mojom::SyncCompositorCommonRendererParamsPtr render_params;
+ blink::mojom::SyncCompositorCommonRendererParamsPtr render_params;
{
base::AutoLock lock(lock_);
if (remote_state_ != RemoteState::READY)
@@ -135,7 +134,10 @@ void SynchronousCompositorSyncCallBridge::BeginFrameCompleteOnUIThread() {
if (!begin_frame_response_valid_) {
base::ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
allow_base_sync_primitives;
- begin_frame_condition_.Wait();
+ while (!begin_frame_response_valid_ &&
+ remote_state_ == RemoteState::READY) {
+ begin_frame_condition_.Wait();
+ }
}
DCHECK(begin_frame_response_valid_ || remote_state_ != RemoteState::READY);
begin_frame_response_valid_ = false;
diff --git a/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.h b/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.h
index 977bcd9899f..262200f8ebf 100644
--- a/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.h
+++ b/chromium/content/browser/android/synchronous_compositor_sync_call_bridge.h
@@ -10,8 +10,8 @@
#include "base/memory/ref_counted.h"
#include "base/thread_annotations.h"
#include "components/viz/common/quads/compositor_frame.h"
-#include "content/common/input/synchronous_compositor.mojom.h"
#include "content/public/browser/android/synchronous_compositor.h"
+#include "third_party/blink/public/mojom/input/synchronous_compositor.mojom.h"
namespace content {
@@ -88,7 +88,7 @@ class SynchronousCompositorSyncCallBridge
// Receive a BeginFrameResponse. Returns true if handling the response was
// successful or not.
bool BeginFrameResponseOnIOThread(
- mojom::SyncCompositorCommonRendererParamsPtr render_params);
+ blink::mojom::SyncCompositorCommonRendererParamsPtr render_params);
// Schedule a callback for when vsync finishes and wait for the
// BeginFrameResponse callback.
@@ -133,7 +133,7 @@ class SynchronousCompositorSyncCallBridge
base::Lock lock_;
FrameFutureQueue frame_futures_ GUARDED_BY(lock_);
bool begin_frame_response_valid_ GUARDED_BY(lock_) = false;
- mojom::SyncCompositorCommonRendererParams last_render_params_
+ blink::mojom::SyncCompositorCommonRendererParams last_render_params_
GUARDED_BY(lock_);
base::ConditionVariable begin_frame_condition_ GUARDED_BY(lock_);
RemoteState remote_state_ GUARDED_BY(lock_) = RemoteState::INIT;
diff --git a/chromium/content/browser/android/web_contents_observer_proxy.cc b/chromium/content/browser/android/web_contents_observer_proxy.cc
index 8d19886333a..a25075d291d 100644
--- a/chromium/content/browser/android/web_contents_observer_proxy.cc
+++ b/chromium/content/browser/android/web_contents_observer_proxy.cc
@@ -197,16 +197,6 @@ void WebContentsObserverProxy::NavigationEntryChanged(
Java_WebContentsObserverProxy_navigationEntriesChanged(env, java_observer_);
}
-void WebContentsObserverProxy::DidAttachInterstitialPage() {
- JNIEnv* env = AttachCurrentThread();
- Java_WebContentsObserverProxy_didAttachInterstitialPage(env, java_observer_);
-}
-
-void WebContentsObserverProxy::DidDetachInterstitialPage() {
- JNIEnv* env = AttachCurrentThread();
- Java_WebContentsObserverProxy_didDetachInterstitialPage(env, java_observer_);
-}
-
void WebContentsObserverProxy::DidChangeThemeColor() {
JNIEnv* env = AttachCurrentThread();
Java_WebContentsObserverProxy_didChangeThemeColor(env, java_observer_);
diff --git a/chromium/content/browser/android/web_contents_observer_proxy.h b/chromium/content/browser/android/web_contents_observer_proxy.h
index ef7a133d57e..1b5271cb10a 100644
--- a/chromium/content/browser/android/web_contents_observer_proxy.h
+++ b/chromium/content/browser/android/web_contents_observer_proxy.h
@@ -58,8 +58,6 @@ class WebContentsObserverProxy : public WebContentsObserver {
void NavigationEntryChanged(
const EntryChangedDetails& change_details) override;
void WebContentsDestroyed() override;
- void DidAttachInterstitialPage() override;
- void DidDetachInterstitialPage() override;
void DidChangeThemeColor() override;
void MediaEffectivelyFullscreenChanged(bool is_fullscreen) override;
void SetToBaseURLForDataURLIfNeeded(std::string* url);