mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 11:45:37 +00:00
764b9f1ffa
This change renames TabContext::IsBrowserElement to IsIsolatedMozBrowserElement. Other methods that pass these values around also have name changes. Adds TabContext::IsMozBrowserElement which is set by the frame loader for all browser frames. This is in contrast to its previous implementation, which has since been renamed IsIsolatedMozBrowserElement, since it checks isolated state in OriginAttributes. TabContext methods related to browser elements (and their callers) are updated to use IsIsolatedMozBrowserElement when check isolation / origins and IsMozBrowserElement when checking frame types. MozReview-Commit-ID: DDMZTkSn5yd
91 lines
3.0 KiB
C++
91 lines
3.0 KiB
C++
/* -*- 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/. */
|
|
|
|
#ifndef mozilla_dom_TCPSocketParent_h
|
|
#define mozilla_dom_TCPSocketParent_h
|
|
|
|
#include "mozilla/dom/TCPSocketBinding.h"
|
|
#include "mozilla/net/PTCPSocketParent.h"
|
|
#include "nsCycleCollectionParticipant.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "js/TypeDecls.h"
|
|
#include "mozilla/net/OfflineObserver.h"
|
|
|
|
#define TCPSOCKETPARENT_CID \
|
|
{ 0x4e7246c6, 0xa8b3, 0x426d, { 0x9c, 0x17, 0x76, 0xda, 0xb1, 0xe1, 0xe1, 0x4a } }
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class TCPSocket;
|
|
|
|
class TCPSocketParentBase : public nsISupports
|
|
, public mozilla::net::DisconnectableParent
|
|
{
|
|
public:
|
|
NS_DECL_CYCLE_COLLECTION_CLASS(TCPSocketParentBase)
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
|
|
void AddIPDLReference();
|
|
void ReleaseIPDLReference();
|
|
|
|
protected:
|
|
TCPSocketParentBase();
|
|
virtual ~TCPSocketParentBase();
|
|
|
|
RefPtr<TCPSocket> mSocket;
|
|
RefPtr<mozilla::net::OfflineObserver> mObserver;
|
|
bool mIPCOpen;
|
|
};
|
|
|
|
class TCPSocketParent : public mozilla::net::PTCPSocketParent
|
|
, public TCPSocketParentBase
|
|
{
|
|
public:
|
|
NS_IMETHOD_(MozExternalRefCountType) Release() override;
|
|
|
|
TCPSocketParent() {}
|
|
|
|
virtual bool RecvOpen(const nsString& aHost, const uint16_t& aPort,
|
|
const bool& useSSL, const bool& aUseArrayBuffers) override;
|
|
|
|
virtual bool RecvOpenBind(const nsCString& aRemoteHost,
|
|
const uint16_t& aRemotePort,
|
|
const nsCString& aLocalAddr,
|
|
const uint16_t& aLocalPort,
|
|
const bool& aUseSSL,
|
|
const bool& aUseArrayBuffers) override;
|
|
|
|
virtual bool RecvStartTLS() override;
|
|
virtual bool RecvSuspend() override;
|
|
virtual bool RecvResume() override;
|
|
virtual bool RecvClose() override;
|
|
virtual bool RecvData(const SendableData& aData,
|
|
const uint32_t& aTrackingNumber) override;
|
|
virtual bool RecvRequestDelete() override;
|
|
virtual nsresult OfflineNotification(nsISupports *) override;
|
|
virtual uint32_t GetAppId() override;
|
|
bool GetInIsolatedMozBrowser();
|
|
|
|
void FireErrorEvent(const nsAString& aName, const nsAString& aType, TCPReadyState aReadyState);
|
|
void FireEvent(const nsAString& aType, TCPReadyState aReadyState);
|
|
void FireArrayBufferDataEvent(nsTArray<uint8_t>& aBuffer, TCPReadyState aReadyState);
|
|
void FireStringDataEvent(const nsACString& aData, TCPReadyState aReadyState);
|
|
|
|
void SetSocket(TCPSocket *socket);
|
|
nsresult GetHost(nsAString& aHost);
|
|
nsresult GetPort(uint16_t* aPort);
|
|
|
|
private:
|
|
virtual void ActorDestroy(ActorDestroyReason why) override;
|
|
void SendEvent(const nsAString& aType, CallbackData aData, TCPReadyState aReadyState);
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif
|