gecko-dev/docshell/shistory/ChildSHistory.cpp
Ryan Hunt d6509bb237 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

Differential Revision: https://phabricator.services.mozilla.com/D28135

--HG--
rename : dom/base/InProcessTabChildMessageManager.cpp => dom/base/InProcessBrowserChildMessageManager.cpp
rename : dom/base/InProcessTabChildMessageManager.h => dom/base/InProcessBrowserChildMessageManager.h
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabChild.h => dom/ipc/BrowserChild.h
extra : rebase_source : e7fcfb845a971a2760e73d517e24da18ce2551b5
extra : histedit_source : d1991334ccb107fe56e478865f22fd97b041a317
2019-04-09 17:39:01 -05:00

97 lines
2.7 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/. */
#include "mozilla/dom/ChildSHistory.h"
#include "mozilla/dom/ChildSHistoryBinding.h"
#include "mozilla/dom/ContentFrameMessageManager.h"
#include "nsIMessageManager.h"
#include "nsComponentManagerUtils.h"
#include "nsSHistory.h"
#include "nsDocShell.h"
#include "nsISHEntry.h"
#include "nsXULAppAPI.h"
namespace mozilla {
namespace dom {
ChildSHistory::ChildSHistory(nsDocShell* aDocShell)
: mDocShell(aDocShell), mHistory(new nsSHistory(aDocShell)) {}
ChildSHistory::~ChildSHistory() {}
int32_t ChildSHistory::Count() { return mHistory->GetCount(); }
int32_t ChildSHistory::Index() {
int32_t index;
mHistory->GetIndex(&index);
return index;
}
void ChildSHistory::Reload(uint32_t aReloadFlags, ErrorResult& aRv) {
aRv = mHistory->Reload(aReloadFlags);
}
bool ChildSHistory::CanGo(int32_t aOffset) {
CheckedInt<int32_t> index = Index();
index += aOffset;
if (!index.isValid()) {
return false;
}
return index.value() < Count() && index.value() >= 0;
}
void ChildSHistory::Go(int32_t aOffset, ErrorResult& aRv) {
CheckedInt<int32_t> index = Index();
index += aOffset;
if (!index.isValid()) {
aRv.Throw(NS_ERROR_FAILURE);
return;
}
aRv = mHistory->GotoIndex(index.value());
}
void ChildSHistory::EvictLocalContentViewers() {
mHistory->EvictAllContentViewers();
}
nsISHistory* ChildSHistory::LegacySHistory() { return mHistory; }
ParentSHistory* ChildSHistory::GetParentIfSameProcess() {
if (XRE_IsContentProcess()) {
return nullptr;
}
MOZ_CRASH("Unimplemented!");
}
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ChildSHistory)
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
NS_INTERFACE_MAP_ENTRY(nsISupports)
NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTING_ADDREF(ChildSHistory)
NS_IMPL_CYCLE_COLLECTING_RELEASE(ChildSHistory)
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(ChildSHistory, mDocShell, mHistory)
JSObject* ChildSHistory::WrapObject(JSContext* cx,
JS::Handle<JSObject*> aGivenProto) {
return ChildSHistory_Binding::Wrap(cx, this, aGivenProto);
}
nsISupports* ChildSHistory::GetParentObject() const {
// We want to get the BrowserChildMessageManager, which is the
// messageManager on mDocShell.
RefPtr<ContentFrameMessageManager> mm;
if (mDocShell) {
mm = mDocShell->GetMessageManager();
}
// else we must be unlinked... can that happen here?
return ToSupports(mm);
}
} // namespace dom
} // namespace mozilla