diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-06 12:48:11 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:33:43 +0000 |
commit | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (patch) | |
tree | fa14ba0ca8d2683ba2efdabd246dc9b18a1229c6 /chromium/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc | |
parent | 79b4f909db1049fca459c07cca55af56a9b54fe3 (diff) | |
download | qtwebengine-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.cc | 35 |
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; |