mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-10-31 16:28:05 +02:00 
			
		
		
		
	 07efe4a953
			
		
	
	
		07efe4a953
		
	
	
	
	
		
			
			In modern C++, static constexpr member variables are automatically inline (aka weak) so the template trick is not needed. This also avoid duplication and reduces the amount of parsed code. No impact on generated binary (actually: smaller debuginfo, close to identical binary). Differential Revision: https://phabricator.services.mozilla.com/D247825
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| #ifndef nsIFragmentContentSink_h___
 | |
| #define nsIFragmentContentSink_h___
 | |
| 
 | |
| #include "nsISupports.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace dom {
 | |
| class Document;
 | |
| class DocumentFragment;
 | |
| }  // namespace dom
 | |
| }  // namespace mozilla
 | |
| 
 | |
| #define NS_I_FRAGMENT_CONTENT_SINK_IID \
 | |
|   {0x1a8ce30b, 0x63fc, 0x441a, {0xa3, 0xaa, 0xf7, 0x16, 0xc0, 0xfe, 0x96, 0x69}}
 | |
| 
 | |
| /**
 | |
|  * The fragment sink allows a client to parse a fragment of sink, possibly
 | |
|  * surrounded in context. Also see nsParser::ParseFragment().
 | |
|  * Note: once you've parsed a fragment, the fragment sink must be re-set on
 | |
|  * the parser in order to parse another fragment.
 | |
|  */
 | |
| class nsIFragmentContentSink : public nsISupports {
 | |
|  public:
 | |
|   NS_INLINE_DECL_STATIC_IID(NS_I_FRAGMENT_CONTENT_SINK_IID)
 | |
|   /**
 | |
|    * This method is used to obtain the fragment created by
 | |
|    * a fragment content sink and to release resources held by the parser.
 | |
|    *
 | |
|    * The sink drops its reference to the fragment.
 | |
|    */
 | |
|   NS_IMETHOD FinishFragmentParsing(mozilla::dom::DocumentFragment** aFragment) =
 | |
|       0;
 | |
| 
 | |
|   /**
 | |
|    * This method is used to set the target document for this fragment
 | |
|    * sink.  This document's nodeinfo manager will be used to create
 | |
|    * the content objects.  This MUST be called before the sink is used.
 | |
|    *
 | |
|    * @param aDocument the document the new nodes will belong to
 | |
|    * (should not be null)
 | |
|    */
 | |
|   NS_IMETHOD SetTargetDocument(mozilla::dom::Document*) = 0;
 | |
| 
 | |
|   /**
 | |
|    * This method is used to indicate to the sink that we're done building
 | |
|    * the context and should start paying attention to the incoming content
 | |
|    */
 | |
|   NS_IMETHOD WillBuildContent() = 0;
 | |
| 
 | |
|   /**
 | |
|    * This method is used to indicate to the sink that we're done building
 | |
|    * The real content. This is useful if you want to parse additional context
 | |
|    * (such as an end context).
 | |
|    */
 | |
|   NS_IMETHOD DidBuildContent() = 0;
 | |
| 
 | |
|   /**
 | |
|    * This method is a total hack to help with parsing fragments. It is called to
 | |
|    * tell the fragment sink that a container from the context will be delivered
 | |
|    * after the call to WillBuildContent(). This is only relevent for HTML
 | |
|    * fragments that use nsHTMLTokenizer/CNavDTD.
 | |
|    */
 | |
|   NS_IMETHOD IgnoreFirstContainer() = 0;
 | |
| 
 | |
|   /**
 | |
|    * Sets whether scripts elements are marked as unexecutable.
 | |
|    */
 | |
|   NS_IMETHOD SetPreventScriptExecution(bool aPreventScriptExecution) = 0;
 | |
| };
 | |
| 
 | |
| nsresult NS_NewXMLFragmentContentSink(
 | |
|     nsIFragmentContentSink** aInstancePtrResult);
 | |
| 
 | |
| #endif
 |