Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: third_party/WebKit/Source/web/WebPagePopupImpl.cpp

Issue 1833843002: Popup loosing focus through keyboard events should update HTMLSelectElement display (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added check Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/web/WebViewImpl.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/web/WebPagePopupImpl.cpp
diff --git a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
index 74dce75d81f37924a8a8d4aa38c8674d1dddcc91..15b3ac57e9764782c8a9b6fc92ea892a3c952673 100644
--- a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
+++ b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp
@@ -491,12 +491,9 @@ void WebPagePopupImpl::close()
{
m_closing = true;
// In case closePopup() was not called.
- if (m_page) {
- destroyPage();
- m_popupClient->didClosePopup();
- m_webView->cleanupPagePopup();
- }
- m_widgetClient = 0;
+ if (m_page)
+ cancel();
+ m_widgetClient = nullptr;
deref();
}
@@ -511,17 +508,19 @@ void WebPagePopupImpl::closePopup()
toLocalFrame(m_page->mainFrame())->loader().stopAllLoaders();
PagePopupSupplement::uninstall(*toLocalFrame(m_page->mainFrame()));
}
+ bool closeAlreadyCalled = m_closing;
m_closing = true;
destroyPage();
// m_widgetClient might be 0 because this widget might be already closed.
- if (m_widgetClient) {
+ if (m_widgetClient && !closeAlreadyCalled) {
// closeWidgetSoon() will call this->close() later.
m_widgetClient->closeWidgetSoon();
}
m_popupClient->didClosePopup();
+ m_webView->cleanupPagePopup();
}
LocalDOMWindow* WebPagePopupImpl::window()
« no previous file with comments | « no previous file | third_party/WebKit/Source/web/WebViewImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698