зеркало из https://github.com/mozilla/gecko-dev.git
Fix bug 532730. r=jst sr=sicking
--HG-- extra : rebase_source : 0188a1388b4c82a55d29a54e08c91568b1ff817f
This commit is contained in:
Родитель
fa771f1b02
Коммит
750a8cd9a4
|
@ -53,6 +53,7 @@ nsIContentIterator.h \
|
|||
nsContentErrors.h \
|
||||
nsContentPolicyUtils.h \
|
||||
nsContentUtils.h \
|
||||
nsIContentUtils.h \
|
||||
nsIDocument.h \
|
||||
nsIDocumentObserver.h \
|
||||
nsIMutationObserver.h \
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Mozilla Foundation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2010
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#ifndef nsIContentUtils_h__
|
||||
#define nsIContentUtils_h__
|
||||
|
||||
// C4EA618E-A3D9-4524-8EEA-E92F26FC44DB
|
||||
#define NS_ICONTENTUTILS_IID \
|
||||
{ 0xC4EA618E, 0xA3D9, 0x4524, \
|
||||
{ 0x8E, 0xEA, 0xE9, 0x2F, 0x26, 0xFC, 0x44, 0xDB } }
|
||||
|
||||
class nsIContentUtils : public nsISupports
|
||||
{
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICONTENTUTILS_IID)
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
virtual PRBool IsSafeToRunScript();
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsIContentUtils, NS_ICONTENTUTILS_IID)
|
||||
|
||||
#endif /* nsIContentUtils_h__ */
|
|
@ -58,6 +58,7 @@
|
|||
#include "nsIDOMScriptObjectFactory.h"
|
||||
#include "nsDOMCID.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsIContentUtils.h"
|
||||
#include "nsIXPConnect.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsIDocument.h"
|
||||
|
@ -5424,7 +5425,7 @@ nsContentUtils::StripNullChars(const nsAString& aInStr, nsAString& aOutStr)
|
|||
|
||||
namespace {
|
||||
|
||||
const int kCloneStackFrameStackSize = 20;
|
||||
const size_t kCloneStackFrameStackSize = 20;
|
||||
|
||||
class CloneStackFrame
|
||||
{
|
||||
|
@ -6010,3 +6011,10 @@ void nsContentUtils::PlatformToDOMLineBreaks(nsString &aString)
|
|||
}
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsIContentUtils, nsIContentUtils)
|
||||
|
||||
PRBool
|
||||
nsIContentUtils::IsSafeToRunScript()
|
||||
{
|
||||
return nsContentUtils::IsSafeToRunScript();
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include "nsPromptService.h"
|
||||
#include "nsWWJSUtils.h"
|
||||
#include "plstr.h"
|
||||
#include "nsIContentUtils.h"
|
||||
|
||||
#include "nsIBaseWindow.h"
|
||||
#include "nsIDocShell.h"
|
||||
|
@ -517,6 +518,12 @@ nsWindowWatcher::OpenWindowJSInternal(nsIDOMWindow *aParent,
|
|||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = 0;
|
||||
|
||||
nsCOMPtr<nsIContentUtils> utils =
|
||||
do_GetService("@mozilla.org/content/contentutils;1");
|
||||
if (!utils->IsSafeToRunScript()) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
GetWindowTreeOwner(aParent, getter_AddRefs(parentTreeOwner));
|
||||
|
||||
if (aUrl) {
|
||||
|
|
|
@ -238,6 +238,10 @@
|
|||
#define NS_FOCUSMANAGER_CID \
|
||||
{ 0xcf7fd51f, 0xaba2, 0x44c1, { 0x9f, 0xf0, 0x11, 0xf7, 0x50, 0x8e, 0xfc, 0xd4 } }
|
||||
|
||||
// {762C4AE7-B923-422F-B97E-B9BFC1EF7BF0}
|
||||
#define NS_ICONTENTUTILS_CID \
|
||||
{ 0x762C4AE7, 0xB923, 0x422F, { 0xB9, 0x7E, 0xB9, 0xBF, 0xC1, 0xEF, 0x7B, 0xF0 } }
|
||||
|
||||
#ifdef MOZ_MEDIA
|
||||
#define NS_HTMLAUDIOELEMENT_CID \
|
||||
{ /* 1d40026b-4c44-4f6f-b158-26bb5e9c65e9 */ \
|
||||
|
|
|
@ -94,6 +94,7 @@
|
|||
#include "nsStyleSheetService.h"
|
||||
#include "nsXULPopupManager.h"
|
||||
#include "nsFocusManager.h"
|
||||
#include "nsIContentUtils.h"
|
||||
|
||||
#include "nsIEventListenerService.h"
|
||||
// Transformiix stuff
|
||||
|
@ -535,6 +536,8 @@ MAKE_CTOR(CreateVideoDocument, nsIDocument, NS_NewVid
|
|||
#endif
|
||||
MAKE_CTOR(CreateFocusManager, nsIFocusManager, NS_NewFocusManager)
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsIContentUtils)
|
||||
|
||||
MAKE_CTOR(CreateCanvasRenderingContext2D, nsIDOMCanvasRenderingContext2D, NS_NewCanvasRenderingContext2D)
|
||||
MAKE_CTOR(CreateCanvasRenderingContextWebGL, nsICanvasRenderingContextWebGL, NS_NewCanvasRenderingContextWebGL)
|
||||
|
||||
|
@ -1517,6 +1520,11 @@ static const nsModuleComponentInfo gComponents[] = {
|
|||
"@mozilla.org/focus-manager;1",
|
||||
CreateFocusManager },
|
||||
|
||||
{ "Content Utils",
|
||||
NS_ICONTENTUTILS_CID,
|
||||
"@mozilla.org/content/contentutils;1",
|
||||
nsIContentUtilsConstructor },
|
||||
|
||||
{ "Content Security Policy Service",
|
||||
CSPSERVICE_CID,
|
||||
CSPSERVICE_CONTRACTID,
|
||||
|
|
Загрузка…
Ссылка в новой задаче