mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 21:42:43 +00:00 
			
		
		
		
	 3110f5b328
			
		
	
	
		3110f5b328
		
	
	
	
	
		
			
			This patch replaces the bespoke rendering engine in Presenter with a simple pipeline that turns presentations into single-page HTML files. The HTML is then loaded into an OutOfProcessWebView. This achieves a number of things, most importantly: - Access to all the CSS features supported by LibWeb - Sandboxed, multi-process rendering The code could be simplified a lot further, but I wanted to get the new architecture in place without changing anything about the file format.
		
			
				
	
	
		
			31 lines
		
	
	
	
		
			838 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			838 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>
 | |
|  * Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "SlideObject.h"
 | |
| #include <AK/DeprecatedString.h>
 | |
| #include <AK/Forward.h>
 | |
| #include <AK/NonnullRefPtrVector.h>
 | |
| 
 | |
| // A single slide of a presentation.
 | |
| class Slide final {
 | |
| public:
 | |
|     static ErrorOr<Slide> parse_slide(JsonObject const& slide_json);
 | |
| 
 | |
|     // FIXME: shouldn't be hard-coded to 1.
 | |
|     unsigned frame_count() const { return 1; }
 | |
|     StringView title() const { return m_title; }
 | |
| 
 | |
|     ErrorOr<HTMLElement> render(Presentation const&) const;
 | |
| 
 | |
| private:
 | |
|     Slide(NonnullRefPtrVector<SlideObject> slide_objects, DeprecatedString title);
 | |
| 
 | |
|     NonnullRefPtrVector<SlideObject> m_slide_objects;
 | |
|     DeprecatedString m_title;
 | |
| };
 |