Commit 15b814cc authored by Peter Van der Beken's avatar Peter Van der Beken
Browse files

Bug 1749935 - Create nsParser directly instead of with a CID. r=hsivonen

parent 6c6f7200
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -561,6 +561,7 @@ LOCAL_INCLUDES += [
    "/layout/xul",
    "/netwerk/base",
    "/netwerk/url-classifier",
    "/parser/htmlparser",
    "/security/manager/ssl",
    "/widget",
    "/xpcom/ds",
+3 −6
Original line number Diff line number Diff line
@@ -299,7 +299,6 @@
#include "nsIObjectLoadingContent.h"
#include "nsIObserver.h"
#include "nsIObserverService.h"
#include "nsIParser.h"
#include "nsIParserUtils.h"
#include "nsIPermissionManager.h"
#include "nsIPluginTag.h"
@@ -346,7 +345,7 @@
#include "nsNodeInfoManager.h"
#include "nsPIDOMWindow.h"
#include "nsPIDOMWindowInlines.h"
#include "nsParserCIID.h"
#include "nsParser.h"
#include "nsParserConstants.h"
#include "nsPluginHost.h"
#include "nsPoint.h"
@@ -452,7 +451,7 @@ nsContentUtils::UserInteractionObserver*
    nsContentUtils::sUserInteractionObserver = nullptr;

nsHtml5StringParser* nsContentUtils::sHTMLFragmentParser = nullptr;
nsIParser* nsContentUtils::sXMLFragmentParser = nullptr;
nsParser* nsContentUtils::sXMLFragmentParser = nullptr;
nsIFragmentContentSink* nsContentUtils::sXMLFragmentSink = nullptr;
bool nsContentUtils::sFragmentParsingActive = false;

@@ -591,8 +590,6 @@ static const nsAttrValue::EnumTable kAutocompleteContactFieldHintTable[] = {

namespace {

static NS_DEFINE_CID(kCParserCID, NS_PARSER_CID);

static PLDHashTable* sEventListenerManagersHash;

// A global hashtable to for keeping the arena alive for cross docGroup node
@@ -5177,7 +5174,7 @@ nsresult nsContentUtils::ParseFragmentXML(const nsAString& aSourceBuffer,
  mozilla::AutoRestore<bool> guard(nsContentUtils::sFragmentParsingActive);
  nsContentUtils::sFragmentParsingActive = true;
  if (!sXMLFragmentParser) {
    nsCOMPtr<nsIParser> parser = do_CreateInstance(kCParserCID);
    RefPtr<nsParser> parser = new nsParser();
    parser.forget(&sXMLFragmentParser);
    // sXMLFragmentParser now owns the parser
  }
+2 −2
Original line number Diff line number Diff line
@@ -94,7 +94,6 @@ class nsIInterfaceRequestor;
class nsILoadGroup;
class nsILoadInfo;
class nsIObserver;
class nsIParser;
class nsIPluginTag;
class nsIPrincipal;
class nsIReferrerInfo;
@@ -112,6 +111,7 @@ class nsIURI;
class nsIWidget;
class nsIXPConnect;
class nsNodeInfoManager;
class nsParser;
class nsPIWindowRoot;
class nsPresContext;
class nsStringBuffer;
@@ -3404,7 +3404,7 @@ class nsContentUtils {
  static UserInteractionObserver* sUserInteractionObserver;

  static nsHtml5StringParser* sHTMLFragmentParser;
  static nsIParser* sXMLFragmentParser;
  static nsParser* sXMLFragmentParser;
  static nsIFragmentContentSink* sXMLFragmentSink;

  /**
+1 −0
Original line number Diff line number Diff line
@@ -250,6 +250,7 @@ LOCAL_INCLUDES += [
    "/layout/tables",
    "/layout/xul",
    "/netwerk/base",
    "/parser/htmlparser",
]

FINAL_LIBRARY = "xul"
+2 −5
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@
#include "nsAttrName.h"

#include "nsNetCID.h"
#include "nsParserCIID.h"
#include "mozilla/parser/PrototypeDocumentParser.h"
#include "mozilla/dom/PrototypeDocumentContentSink.h"
#include "nsNameSpaceManager.h"
@@ -73,6 +72,7 @@
#include "nsIRequest.h"
#include "nsHtml5TreeOpExecutor.h"
#include "nsHtml5Parser.h"
#include "nsParser.h"
#include "nsSandboxFlags.h"
#include "mozilla/dom/HTMLBodyElement.h"
#include "mozilla/dom/HTMLDocumentBinding.h"
@@ -95,8 +95,6 @@ using namespace mozilla::dom;

//#define DEBUG_charset

static NS_DEFINE_CID(kCParserCID, NS_PARSER_CID);

// ==================================================================
// =
// ==================================================================
@@ -385,8 +383,7 @@ nsresult nsHTMLDocument::StartDocumentLoad(
    aChannel->GetOriginalURI(getter_AddRefs(originalURI));
    mParser = new mozilla::parser::PrototypeDocumentParser(originalURI, this);
  } else {
    mParser = do_CreateInstance(kCParserCID, &rv);
    NS_ENSURE_SUCCESS(rv, rv);
    mParser = new nsParser();
  }

  // Look for the parent document.  Note that at this point we don't have our
Loading