summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-06 12:48:11 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:33:43 +0000
commit7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (patch)
treefa14ba0ca8d2683ba2efdabd246dc9b18a1229c6 /chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
parent79b4f909db1049fca459c07cca55af56a9b54fe3 (diff)
downloadqtwebengine-chromium-7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3.tar.gz
BASELINE: Update Chromium to 84.0.4147.141
Change-Id: Ib85eb4cfa1cbe2b2b81e5022c8cad5c493969535 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc35
1 files changed, 9 insertions, 26 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc b/chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
index 360545b4afe..411650375cf 100644
--- a/chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
+++ b/chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
@@ -9,6 +9,7 @@
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/css/css_font_selector.h"
+#include "third_party/blink/renderer/core/css/css_value_id_mappings.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/events/scoped_event_queue.h"
@@ -46,18 +47,7 @@ const char* FontStyleToString(FontSelectionValue slope) {
}
const char* TextTransformToString(ETextTransform transform) {
- switch (transform) {
- case ETextTransform::kCapitalize:
- return "capitalize";
- case ETextTransform::kUppercase:
- return "uppercase";
- case ETextTransform::kLowercase:
- return "lowercase";
- case ETextTransform::kNone:
- return "none";
- }
- NOTREACHED();
- return "";
+ return getValueName(PlatformEnumToCSSValueID(transform));
}
} // anonymous namespace
@@ -78,7 +68,7 @@ class PopupMenuCSSFontSelector : public CSSFontSelector,
void Trace(Visitor*) override;
private:
- void FontsNeedUpdate(FontSelector*) override;
+ void FontsNeedUpdate(FontSelector*, FontInvalidationReason) override;
Member<CSSFontSelector> owner_font_selector_;
};
@@ -98,8 +88,9 @@ scoped_refptr<FontData> PopupMenuCSSFontSelector::GetFontData(
return owner_font_selector_->GetFontData(description, name);
}
-void PopupMenuCSSFontSelector::FontsNeedUpdate(FontSelector* font_selector) {
- DispatchInvalidationCallbacks();
+void PopupMenuCSSFontSelector::FontsNeedUpdate(FontSelector* font_selector,
+ FontInvalidationReason reason) {
+ DispatchInvalidationCallbacks(reason);
}
void PopupMenuCSSFontSelector::Trace(Visitor* visitor) {
@@ -227,7 +218,7 @@ void InternalPopupMenu::WriteDocument(SharedBuffer* data) {
// When writing the document, we ensure the ComputedStyle of the select
// element's items (see AddElementStyle). This requires a style-clean tree.
// See Element::EnsureComputedStyle for further explanation.
- owner_element.GetDocument().UpdateStyleAndLayoutTree();
+ DCHECK(!owner_element.GetDocument().NeedsLayoutTreeUpdate());
IntRect anchor_rect_in_screen = chrome_client_->ViewportToScreen(
owner_element.VisibleBoundsInVisualViewport(),
owner_element.GetDocument().View());
@@ -508,20 +499,12 @@ void InternalPopupMenu::Hide() {
}
void InternalPopupMenu::UpdateFromElement(UpdateReason) {
- if (needs_update_)
- return;
needs_update_ = true;
- OwnerElement()
- .GetDocument()
- .GetTaskRunner(TaskType::kUserInteraction)
- ->PostTask(FROM_HERE,
- WTF::Bind(&InternalPopupMenu::Update, WrapPersistent(this)));
}
-void InternalPopupMenu::Update() {
- if (!popup_ || !owner_element_)
+void InternalPopupMenu::Update(bool force_update) {
+ if (!popup_ || !owner_element_ || (!needs_update_ && !force_update))
return;
- OwnerElement().GetDocument().UpdateStyleAndLayoutTree();
// disconnectClient() might have been called.
if (!owner_element_)
return;