1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/parser/htmlparser/src/CNavDTD.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,91 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* vim: set sw=2 ts=2 et tw=78: */ 1.6 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.9 + 1.10 +#include "nsISupports.h" 1.11 +#include "nsISupportsImpl.h" 1.12 +#include "nsIParser.h" 1.13 +#include "CNavDTD.h" 1.14 +#include "nsIHTMLContentSink.h" 1.15 + 1.16 +NS_IMPL_ISUPPORTS(CNavDTD, nsIDTD); 1.17 + 1.18 +CNavDTD::CNavDTD() 1.19 +{ 1.20 +} 1.21 + 1.22 +CNavDTD::~CNavDTD() 1.23 +{ 1.24 +} 1.25 + 1.26 +NS_IMETHODIMP 1.27 +CNavDTD::WillBuildModel(const CParserContext& aParserContext, 1.28 + nsITokenizer* aTokenizer, 1.29 + nsIContentSink* aSink) 1.30 +{ 1.31 + return NS_OK; 1.32 +} 1.33 + 1.34 +NS_IMETHODIMP 1.35 +CNavDTD::BuildModel(nsITokenizer* aTokenizer, 1.36 + nsIContentSink* aSink) 1.37 +{ 1.38 + // NB: It is important to throw STOPPARSING if the sink is the wrong type in 1.39 + // order to make sure nsParser cleans up properly after itself. 1.40 + nsCOMPtr<nsIHTMLContentSink> sink = do_QueryInterface(aSink); 1.41 + if (!sink) { 1.42 + return NS_ERROR_HTMLPARSER_STOPPARSING; 1.43 + } 1.44 + 1.45 + nsresult rv = sink->OpenContainer(nsIHTMLContentSink::eHTML); 1.46 + NS_ENSURE_SUCCESS(rv, rv); 1.47 + rv = sink->OpenContainer(nsIHTMLContentSink::eBody); 1.48 + NS_ENSURE_SUCCESS(rv, rv); 1.49 + 1.50 + rv = sink->CloseContainer(nsIHTMLContentSink::eBody); 1.51 + MOZ_ASSERT(NS_SUCCEEDED(rv)); 1.52 + rv = sink->CloseContainer(nsIHTMLContentSink::eHTML); 1.53 + MOZ_ASSERT(NS_SUCCEEDED(rv)); 1.54 + 1.55 + return NS_OK; 1.56 +} 1.57 + 1.58 +NS_IMETHODIMP 1.59 +CNavDTD::DidBuildModel(nsresult anErrorCode) 1.60 +{ 1.61 + return NS_OK; 1.62 +} 1.63 + 1.64 +NS_IMETHODIMP_(void) 1.65 +CNavDTD::Terminate() 1.66 +{ 1.67 +} 1.68 + 1.69 + 1.70 +NS_IMETHODIMP_(int32_t) 1.71 +CNavDTD::GetType() 1.72 +{ 1.73 + return NS_IPARSER_FLAG_HTML; 1.74 +} 1.75 + 1.76 +NS_IMETHODIMP_(nsDTDMode) 1.77 +CNavDTD::GetMode() const 1.78 +{ 1.79 + return eDTDMode_quirks; 1.80 +} 1.81 + 1.82 +NS_IMETHODIMP_(bool) 1.83 +CNavDTD::CanContain(int32_t aParent,int32_t aChild) const 1.84 +{ 1.85 + MOZ_CRASH("nobody calls this"); 1.86 + return false; 1.87 +} 1.88 + 1.89 +NS_IMETHODIMP_(bool) 1.90 +CNavDTD::IsContainer(int32_t aTag) const 1.91 +{ 1.92 + MOZ_CRASH("nobody calls this"); 1.93 + return false; 1.94 +}