summaryrefslogtreecommitdiffstats
path: root/dom/base/nsScriptElement.cpp
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-06-30 11:32:07 +0000
committerMoonchild <moonchild@palemoon.org>2020-07-10 18:28:50 +0000
commit0633844f46858135ee62d396829c6292492ca117 (patch)
tree051f8c4a50ab5c955f5d4e70e4de0ea50151758e /dom/base/nsScriptElement.cpp
parentd0126b96cd6527e6dc89530b333fb0c196aba30d (diff)
downloadUXP-0633844f46858135ee62d396829c6292492ca117.tar
UXP-0633844f46858135ee62d396829c6292492ca117.tar.gz
UXP-0633844f46858135ee62d396829c6292492ca117.tar.lz
UXP-0633844f46858135ee62d396829c6292492ca117.tar.xz
UXP-0633844f46858135ee62d396829c6292492ca117.zip
Issue #1603 - Part 1: Reorganize ScriptLoader/ScriptElement
- Moves scripting parts of DOM into 'dom/script' - Renames nsScript{Loader/Element} to Script{Loader/Element} - Adjusts all callers
Diffstat (limited to 'dom/base/nsScriptElement.cpp')
-rw-r--r--dom/base/nsScriptElement.cpp150
1 files changed, 0 insertions, 150 deletions
diff --git a/dom/base/nsScriptElement.cpp b/dom/base/nsScriptElement.cpp
deleted file mode 100644
index ebeb18f81..000000000
--- a/dom/base/nsScriptElement.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* 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/. */
-
-#include "nsScriptElement.h"
-#include "mozilla/BasicEvents.h"
-#include "mozilla/EventDispatcher.h"
-#include "mozilla/dom/Element.h"
-#include "nsContentUtils.h"
-#include "nsPresContext.h"
-#include "nsScriptLoader.h"
-#include "nsIParser.h"
-#include "nsGkAtoms.h"
-#include "nsContentSink.h"
-
-using namespace mozilla;
-using namespace mozilla::dom;
-
-NS_IMETHODIMP
-nsScriptElement::ScriptAvailable(nsresult aResult,
- nsIScriptElement *aElement,
- bool aIsInline,
- nsIURI *aURI,
- int32_t aLineNo)
-{
- if (!aIsInline && NS_FAILED(aResult)) {
- nsCOMPtr<nsIParser> parser = do_QueryReferent(mCreatorParser);
- if (parser) {
- parser->PushDefinedInsertionPoint();
- }
- nsresult rv = FireErrorEvent();
- if (parser) {
- parser->PopDefinedInsertionPoint();
- }
- return rv;
- }
- return NS_OK;
-}
-
-/* virtual */ nsresult
-nsScriptElement::FireErrorEvent()
-{
- nsCOMPtr<nsIContent> cont =
- do_QueryInterface((nsIScriptElement*) this);
-
- return nsContentUtils::DispatchTrustedEvent(cont->OwnerDoc(),
- cont,
- NS_LITERAL_STRING("error"),
- false /* bubbles */,
- false /* cancelable */);
-}
-
-NS_IMETHODIMP
-nsScriptElement::ScriptEvaluated(nsresult aResult,
- nsIScriptElement *aElement,
- bool aIsInline)
-{
- nsresult rv = NS_OK;
- if (!aIsInline) {
- nsCOMPtr<nsIContent> cont =
- do_QueryInterface((nsIScriptElement*) this);
-
- RefPtr<nsPresContext> presContext =
- nsContentUtils::GetContextForContent(cont);
-
- nsEventStatus status = nsEventStatus_eIgnore;
- EventMessage message = NS_SUCCEEDED(aResult) ? eLoad : eLoadError;
- WidgetEvent event(true, message);
- // Load event doesn't bubble.
- event.mFlags.mBubbles = (message != eLoad);
-
- EventDispatcher::Dispatch(cont, presContext, &event, nullptr, &status);
- }
-
- return rv;
-}
-
-void
-nsScriptElement::CharacterDataChanged(nsIDocument *aDocument,
- nsIContent* aContent,
- CharacterDataChangeInfo* aInfo)
-{
- MaybeProcessScript();
-}
-
-void
-nsScriptElement::AttributeChanged(nsIDocument* aDocument,
- Element* aElement,
- int32_t aNameSpaceID,
- nsIAtom* aAttribute,
- int32_t aModType,
- const nsAttrValue* aOldValue)
-{
- MaybeProcessScript();
-}
-
-void
-nsScriptElement::ContentAppended(nsIDocument* aDocument,
- nsIContent* aContainer,
- nsIContent* aFirstNewContent,
- int32_t aNewIndexInContainer)
-{
- MaybeProcessScript();
-}
-
-void
-nsScriptElement::ContentInserted(nsIDocument *aDocument,
- nsIContent* aContainer,
- nsIContent* aChild,
- int32_t aIndexInContainer)
-{
- MaybeProcessScript();
-}
-
-bool
-nsScriptElement::MaybeProcessScript()
-{
- nsCOMPtr<nsIContent> cont =
- do_QueryInterface((nsIScriptElement*) this);
-
- NS_ASSERTION(cont->DebugGetSlots()->mMutationObservers.Contains(this),
- "You forgot to add self as observer");
-
- if (mAlreadyStarted || !mDoneAddingChildren ||
- !cont->GetComposedDoc() || mMalformed || !HasScriptContent()) {
- return false;
- }
-
- FreezeUriAsyncDefer();
-
- mAlreadyStarted = true;
-
- nsIDocument* ownerDoc = cont->OwnerDoc();
- nsCOMPtr<nsIParser> parser = ((nsIScriptElement*) this)->GetCreatorParser();
- if (parser) {
- nsCOMPtr<nsIContentSink> sink = parser->GetContentSink();
- if (sink) {
- nsCOMPtr<nsIDocument> parserDoc = do_QueryInterface(sink->GetTarget());
- if (ownerDoc != parserDoc) {
- // Willful violation of HTML5 as of 2010-12-01
- return false;
- }
- }
- }
-
- RefPtr<nsScriptLoader> loader = ownerDoc->ScriptLoader();
- return loader->ProcessScriptElement(this);
-}