mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-30 23:02:44 +00:00 
			
		
		
		
	LibWeb: Implement the :seeking pseudo-class
				
					
				
			This matches while a media element is seeking.
This commit is contained in:
		
							parent
							
								
									4df5e24926
								
							
						
					
					
						commit
						7b4ae43b91
					
				
					 7 changed files with 28 additions and 3 deletions
				
			
		|  | @ -212,6 +212,14 @@ WebIDL::ExceptionOr<Bindings::CanPlayTypeResult> HTMLMediaElement::can_play_type | |||
|     return Bindings::CanPlayTypeResult::Empty; | ||||
| } | ||||
| 
 | ||||
| void HTMLMediaElement::set_seeking(bool seeking) | ||||
| { | ||||
|     if (m_seeking == seeking) | ||||
|         return; | ||||
|     m_seeking = seeking; | ||||
|     set_needs_style_update(true); | ||||
| } | ||||
| 
 | ||||
| // https://html.spec.whatwg.org/multipage/media.html#dom-media-load
 | ||||
| WebIDL::ExceptionOr<void> HTMLMediaElement::load() | ||||
| { | ||||
|  | @ -505,7 +513,8 @@ WebIDL::ExceptionOr<void> HTMLMediaElement::load_element() | |||
|         } | ||||
| 
 | ||||
|         // 7. If seeking is true, set it to false.
 | ||||
|         m_seeking = false; | ||||
|         if (seeking()) | ||||
|             set_seeking(false); | ||||
| 
 | ||||
|         // 8. Set the current playback position to 0.
 | ||||
|         m_current_playback_position = 0; | ||||
|  | @ -1490,7 +1499,7 @@ void HTMLMediaElement::seek_element(double playback_position, MediaSeekMode seek | |||
|     } | ||||
| 
 | ||||
|     // 4. Set the seeking IDL attribute to true.
 | ||||
|     m_seeking = true; | ||||
|     set_seeking(true); | ||||
| 
 | ||||
|     // FIXME: 5. If the seek was in response to a DOM method call or setting of an IDL attribute, then continue the script. The
 | ||||
|     //           remainder of these steps must be run in parallel. With the exception of the steps marked with ⌛, they could be
 | ||||
|  | @ -1534,7 +1543,7 @@ void HTMLMediaElement::seek_element(double playback_position, MediaSeekMode seek | |||
|     //            synchronous section are marked with ⌛.)
 | ||||
| 
 | ||||
|     // 14. ⌛ Set the seeking IDL attribute to false.
 | ||||
|     m_seeking = false; | ||||
|     set_seeking(false); | ||||
| 
 | ||||
|     // 15. ⌛ Run the time marches on steps.
 | ||||
|     time_marches_on(TimeMarchesOnReason::Other); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sam Atkins
						Sam Atkins