LibWeb: Update media elements' page mute state via a for_each method

This commit is contained in:
Zaggy1024 2025-10-22 13:34:03 -05:00 committed by Jelle Raaijmakers
parent 5e645929a7
commit 0f9fa47352
2 changed files with 13 additions and 6 deletions

View File

@ -574,12 +574,9 @@ void Page::toggle_page_mute_state()
{
m_mute_state = HTML::invert_mute_state(m_mute_state);
for (auto media_id : m_media_elements) {
if (auto* node = DOM::Node::from_unique_id(media_id)) {
auto& media_element = as<HTML::HTMLMediaElement>(*node);
media_element.page_mute_state_changed({});
}
}
for_each_media_element([&](auto& media_element) {
media_element.page_mute_state_changed({});
});
}
GC::Ptr<HTML::HTMLMediaElement> Page::media_context_menu_element()

View File

@ -31,6 +31,7 @@
#include <LibWeb/HTML/AudioPlayState.h>
#include <LibWeb/HTML/ColorPickerUpdateState.h>
#include <LibWeb/HTML/FileFilter.h>
#include <LibWeb/HTML/HTMLMediaElement.h>
#include <LibWeb/HTML/SelectItem.h>
#include <LibWeb/HTML/TokenizedFeatures.h>
#include <LibWeb/HTML/WebViewHints.h>
@ -233,6 +234,15 @@ private:
GC::Ptr<HTML::HTMLMediaElement> media_context_menu_element();
template<typename Callback>
void for_each_media_element(Callback&& callback)
{
for (auto media_id : m_media_elements) {
if (auto* node = DOM::Node::from_unique_id(media_id))
callback(as<HTML::HTMLMediaElement>(*node));
}
}
Vector<GC::Root<DOM::Document>> documents_in_active_window() const;
enum class SearchDirection {