Revert "Fix dismissal of select popups on NotifyMoveOrResizeStarted (see issue #3294)"
This reverts commit 5f4bccd672
.
Reason for revert: This change causes a native parented browser to lose focus
on move (fixes issue #3426).
This commit is contained in:
parent
e65da8fab8
commit
b66c2d1bea
|
@ -261,12 +261,15 @@ void CefBrowserPlatformDelegateAlloy::SendCaptureLostEvent() {
|
||||||
|
|
||||||
#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC))
|
#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC))
|
||||||
void CefBrowserPlatformDelegateAlloy::NotifyMoveOrResizeStarted() {
|
void CefBrowserPlatformDelegateAlloy::NotifyMoveOrResizeStarted() {
|
||||||
if (!web_contents_) {
|
if (!browser_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dismiss any existing popups.
|
// Dismiss any existing popups.
|
||||||
web_contents_->ClearFocusedElement();
|
auto frame = browser_->GetMainFrame();
|
||||||
|
if (frame && frame->IsValid()) {
|
||||||
|
static_cast<CefFrameHostImpl*>(frame.get())->NotifyMoveOrResizeStarted();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -304,6 +304,13 @@ void CefFrameHostImpl::RefreshAttributes() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CefFrameHostImpl::NotifyMoveOrResizeStarted() {
|
||||||
|
SendToRenderFrame(__FUNCTION__,
|
||||||
|
base::BindOnce([](const RenderFrameType& render_frame) {
|
||||||
|
render_frame->MoveOrResizeStarted();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
void CefFrameHostImpl::LoadRequest(cef::mojom::RequestParamsPtr params) {
|
void CefFrameHostImpl::LoadRequest(cef::mojom::RequestParamsPtr params) {
|
||||||
if (!url_util::FixupGURL(params->url)) {
|
if (!url_util::FixupGURL(params->url)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -82,6 +82,10 @@ class CefFrameHostImpl : public CefFrame, public cef::mojom::BrowserFrame {
|
||||||
void SetFocused(bool focused);
|
void SetFocused(bool focused);
|
||||||
void RefreshAttributes();
|
void RefreshAttributes();
|
||||||
|
|
||||||
|
// Notification that a move or resize of the renderer's containing window has
|
||||||
|
// started. Used on Windows and Linux with the Alloy runtime.
|
||||||
|
void NotifyMoveOrResizeStarted();
|
||||||
|
|
||||||
// Load the specified request.
|
// Load the specified request.
|
||||||
void LoadRequest(cef::mojom::RequestParamsPtr params);
|
void LoadRequest(cef::mojom::RequestParamsPtr params);
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,10 @@ interface RenderFrame {
|
||||||
|
|
||||||
// Loading has stopped.
|
// Loading has stopped.
|
||||||
DidStopLoading();
|
DidStopLoading();
|
||||||
|
|
||||||
|
// Move or resize of the renderer's containing window has started. Used on
|
||||||
|
// Windows and Linux with the Alloy runtime.
|
||||||
|
MoveOrResizeStarted();
|
||||||
};
|
};
|
||||||
|
|
||||||
// Interface for communicating with a frame in the browser process.
|
// Interface for communicating with a frame in the browser process.
|
||||||
|
|
|
@ -832,6 +832,14 @@ void CefFrameImpl::DidStopLoading() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CefFrameImpl::MoveOrResizeStarted() {
|
||||||
|
if (frame_) {
|
||||||
|
auto web_view = frame_->View();
|
||||||
|
if (web_view)
|
||||||
|
web_view->CancelPagePopup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CefFrameImpl::ContextLifecycleStateChanged(
|
void CefFrameImpl::ContextLifecycleStateChanged(
|
||||||
blink::mojom::blink::FrameLifecycleState state) {
|
blink::mojom::blink::FrameLifecycleState state) {
|
||||||
if (state == blink::mojom::FrameLifecycleState::kFrozen && IsMain() &&
|
if (state == blink::mojom::FrameLifecycleState::kFrozen && IsMain() &&
|
||||||
|
|
|
@ -162,6 +162,7 @@ class CefFrameImpl
|
||||||
int32_t startLine) override;
|
int32_t startLine) override;
|
||||||
void LoadRequest(cef::mojom::RequestParamsPtr params) override;
|
void LoadRequest(cef::mojom::RequestParamsPtr params) override;
|
||||||
void DidStopLoading() override;
|
void DidStopLoading() override;
|
||||||
|
void MoveOrResizeStarted() override;
|
||||||
|
|
||||||
// blink_glue::CefExecutionContextLifecycleStateObserver methods:
|
// blink_glue::CefExecutionContextLifecycleStateObserver methods:
|
||||||
void ContextLifecycleStateChanged(
|
void ContextLifecycleStateChanged(
|
||||||
|
|
Loading…
Reference in New Issue