2012-09-17 07:49:43 +04:00
|
|
|
/* -*- 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 nsMixedContentBlocker_h___
|
|
|
|
#define nsMixedContentBlocker_h___
|
|
|
|
|
|
|
|
#define NS_MIXEDCONTENTBLOCKER_CONTRACTID "@mozilla.org/mixedcontentblocker;1"
|
|
|
|
/* daf1461b-bf29-4f88-8d0e-4bcdf332c862 */
|
|
|
|
#define NS_MIXEDCONTENTBLOCKER_CID \
|
|
|
|
{ 0xdaf1461b, 0xbf29, 0x4f88, \
|
|
|
|
{ 0x8d, 0x0e, 0x4b, 0xcd, 0xf3, 0x32, 0xc8, 0x62 } }
|
|
|
|
|
2012-12-14 02:53:06 +04:00
|
|
|
// This enum defines type of content that is detected when an
|
|
|
|
// nsMixedContentEvent fires
|
|
|
|
enum MixedContentTypes {
|
2012-09-17 07:49:43 +04:00
|
|
|
// "Active" content, such as fonts, plugin content, JavaScript, stylesheets,
|
|
|
|
// iframes, WebSockets, and XHR
|
2012-12-14 02:53:06 +04:00
|
|
|
eMixedScript,
|
2012-09-17 07:49:43 +04:00
|
|
|
// "Display" content, such as images, audio, video, and <a ping>
|
2012-12-14 02:53:06 +04:00
|
|
|
eMixedDisplay
|
2012-09-17 07:49:43 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
#include "nsIContentPolicy.h"
|
2014-10-19 00:21:06 +04:00
|
|
|
#include "nsIChannel.h"
|
|
|
|
#include "nsIChannelEventSink.h"
|
2015-03-24 19:18:48 +03:00
|
|
|
#include "imgRequest.h"
|
2012-09-17 07:49:43 +04:00
|
|
|
|
2014-10-19 00:21:06 +04:00
|
|
|
class nsMixedContentBlocker : public nsIContentPolicy,
|
|
|
|
public nsIChannelEventSink
|
2012-09-17 07:49:43 +04:00
|
|
|
{
|
2015-03-24 19:18:48 +03:00
|
|
|
private:
|
2014-06-25 06:09:15 +04:00
|
|
|
virtual ~nsMixedContentBlocker();
|
|
|
|
|
2012-09-17 07:49:43 +04:00
|
|
|
public:
|
|
|
|
NS_DECL_ISUPPORTS
|
|
|
|
NS_DECL_NSICONTENTPOLICY
|
2014-10-19 00:21:06 +04:00
|
|
|
NS_DECL_NSICHANNELEVENTSINK
|
2012-09-17 07:49:43 +04:00
|
|
|
|
|
|
|
nsMixedContentBlocker();
|
2015-03-24 19:18:48 +03:00
|
|
|
|
|
|
|
/* Static version of ShouldLoad() that contains all the Mixed Content Blocker
|
|
|
|
* logic. Called from non-static ShouldLoad().
|
|
|
|
* Called directly from imageLib when an insecure redirect exists in a cached
|
|
|
|
* image load.
|
|
|
|
* @param aHadInsecureImageRedirect
|
|
|
|
* boolean flag indicating that an insecure redirect through http
|
|
|
|
* occured when this image was initially loaded and cached.
|
|
|
|
* Remaining parameters are from nsIContentPolicy::ShouldLoad().
|
|
|
|
*/
|
|
|
|
static nsresult ShouldLoad(bool aHadInsecureImageRedirect,
|
|
|
|
uint32_t aContentType,
|
|
|
|
nsIURI* aContentLocation,
|
|
|
|
nsIURI* aRequestingLocation,
|
|
|
|
nsISupports* aRequestingContext,
|
|
|
|
const nsACString& aMimeGuess,
|
|
|
|
nsISupports* aExtra,
|
|
|
|
nsIPrincipal* aRequestPrincipal,
|
|
|
|
int16_t* aDecision);
|
2012-09-17 07:49:43 +04:00
|
|
|
static bool sBlockMixedScript;
|
|
|
|
static bool sBlockMixedDisplay;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* nsMixedContentBlocker_h___ */
|