summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc77
1 files changed, 28 insertions, 49 deletions
diff --git a/chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc b/chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc
index 1b430137301..e4267ec821f 100644
--- a/chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ b/chromium/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -39,10 +39,10 @@
#include "build/build_config.h"
#include "cc/animation/animation_host.h"
#include "cc/layers/picture_layer.h"
+#include "third_party/blink/public/common/page/page_zoom.h"
#include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h"
#include "third_party/blink/public/platform/web_float_rect.h"
#include "third_party/blink/public/platform/web_rect.h"
-#include "third_party/blink/public/platform/web_text_autosizer_page_info.h"
#include "third_party/blink/public/platform/web_url_request.h"
#include "third_party/blink/public/web/blink.h"
#include "third_party/blink/public/web/web_autofill_client.h"
@@ -251,7 +251,7 @@ Page* ChromeClientImpl::CreateWindowDelegate(
const FrameLoadRequest& r,
const AtomicString& name,
const WebWindowFeatures& features,
- mojom::blink::WebSandboxFlags sandbox_flags,
+ network::mojom::blink::WebSandboxFlags sandbox_flags,
const FeaturePolicy::FeatureState& opener_feature_state,
const SessionStorageNamespaceId& session_storage_namespace_id) {
if (!web_view_->Client())
@@ -268,8 +268,7 @@ Page* ChromeClientImpl::CreateWindowDelegate(
WebLocalFrameImpl::FromFrame(frame),
WrappedResourceRequest(r.GetResourceRequest()), features, frame_name,
static_cast<WebNavigationPolicy>(r.GetNavigationPolicy()),
- static_cast<mojom::blink::WebSandboxFlags>(sandbox_flags),
- opener_feature_state, session_storage_namespace_id));
+ sandbox_flags, opener_feature_state, session_storage_namespace_id));
if (!new_view)
return nullptr;
return new_view->GetPage();
@@ -436,8 +435,17 @@ IntRect ChromeClientImpl::ViewportToScreen(
if (client) {
client->ConvertViewportToWindow(&screen_rect);
WebRect view_rect = client->ViewRect();
- screen_rect.x += view_rect.x;
- screen_rect.y += view_rect.y;
+
+ base::CheckedNumeric<int> screen_rect_x = screen_rect.x;
+ base::CheckedNumeric<int> screen_rect_y = screen_rect.y;
+
+ screen_rect_x += view_rect.x;
+ screen_rect_y += view_rect.y;
+
+ screen_rect.x =
+ screen_rect_x.ValueOrDefault(std::numeric_limits<int>::max());
+ screen_rect.y =
+ screen_rect_y.ValueOrDefault(std::numeric_limits<int>::max());
}
return screen_rect;
@@ -728,21 +736,24 @@ void ChromeClientImpl::SetCursorOverridden(bool overridden) {
void ChromeClientImpl::AutoscrollStart(const gfx::PointF& viewport_point,
LocalFrame* local_frame) {
// TODO(dcheng): Why is this null check necessary?
- if (FrameWidget* widget = local_frame->GetWidgetForLocalRoot())
- widget->Client()->AutoscrollStart(viewport_point);
+ if (WebFrameWidgetBase* widget =
+ WebLocalFrameImpl::FromFrame(local_frame)->LocalRootFrameWidget())
+ widget->AutoscrollStart(viewport_point);
}
void ChromeClientImpl::AutoscrollFling(const gfx::Vector2dF& velocity,
LocalFrame* local_frame) {
// TODO(dcheng): Why is this null check necessary?
- if (FrameWidget* widget = local_frame->GetWidgetForLocalRoot())
- widget->Client()->AutoscrollFling(velocity);
+ if (WebFrameWidgetBase* widget =
+ WebLocalFrameImpl::FromFrame(local_frame)->LocalRootFrameWidget())
+ widget->AutoscrollFling(velocity);
}
void ChromeClientImpl::AutoscrollEnd(LocalFrame* local_frame) {
// TODO(dcheng): Why is this null check necessary?
- if (FrameWidget* widget = local_frame->GetWidgetForLocalRoot())
- widget->Client()->AutoscrollEnd();
+ if (WebFrameWidgetBase* widget =
+ WebLocalFrameImpl::FromFrame(local_frame)->LocalRootFrameWidget())
+ widget->AutoscrollEnd();
}
String ChromeClientImpl::AcceptLanguages() {
@@ -906,27 +917,6 @@ void ChromeClientImpl::NotifySwapTime(LocalFrame& frame,
base::NullCallback(), ConvertToBaseOnceCallback(std::move(callback)));
}
-void ChromeClientImpl::FallbackCursorModeLockCursor(LocalFrame* frame,
- bool left,
- bool right,
- bool up,
- bool down) {
- FrameWidget* widget = frame->GetWidgetForLocalRoot();
- if (!widget)
- return;
- if (WebWidgetClient* client = widget->Client())
- client->FallbackCursorModeLockCursor(left, right, up, down);
-}
-
-void ChromeClientImpl::FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
- bool visible) {
- FrameWidget* widget = frame->GetWidgetForLocalRoot();
- if (!widget)
- return;
- if (WebWidgetClient* client = widget->Client())
- client->FallbackCursorModeSetCursorVisibility(visible);
-}
-
void ChromeClientImpl::RequestBeginMainFrameNotExpected(LocalFrame& frame,
bool request) {
frame.GetWidgetForLocalRoot()->RequestBeginMainFrameNotExpected(request);
@@ -966,21 +956,6 @@ void ChromeClientImpl::SetEventListenerProperties(
}
widget->SetEventListenerProperties(event_class, properties);
-
- WebWidgetClient* client = widget->Client();
- if (event_class == cc::EventListenerClass::kTouchStartOrMove ||
- event_class == cc::EventListenerClass::kTouchEndOrCancel) {
- client->SetHasTouchEventHandlers(
- widget->EventListenerProperties(
- cc::EventListenerClass::kTouchStartOrMove) !=
- cc::EventListenerProperties::kNone ||
- widget->EventListenerProperties(
- cc::EventListenerClass::kTouchEndOrCancel) !=
- cc::EventListenerProperties::kNone);
- } else if (event_class == cc::EventListenerClass::kPointerRawUpdate) {
- client->SetHasPointerRawUpdateEventHandlers(
- properties != cc::EventListenerProperties::kNone);
- }
}
cc::EventListenerProperties ChromeClientImpl::EventListenerProperties(
@@ -1244,7 +1219,7 @@ WebAutofillClient* ChromeClientImpl::AutofillClientFromFrame(
void ChromeClientImpl::DidUpdateTextAutosizerPageInfo(
const WebTextAutosizerPageInfo& page_info) {
- web_view_->Client()->DidUpdateTextAutosizerPageInfo(page_info);
+ web_view_->TextAutosizerPageInfoChanged(page_info);
}
void ChromeClientImpl::DocumentDetached(Document& document) {
@@ -1254,4 +1229,8 @@ void ChromeClientImpl::DocumentDetached(Document& document) {
}
}
+double ChromeClientImpl::UserZoomFactor() const {
+ return PageZoomLevelToZoomFactor(web_view_->ZoomLevel());
+}
+
} // namespace blink