/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Local Includes #include"nsWebBrowser.h"
// Hack: nsIOpenWindowInfo depends on this without being able to include it #include"mozilla/Assertions.h" #include"mozilla/dom/BrowserParent.h"
// Interfaces Needed #include"gfxContext.h" #include"nsReadableUtils.h" #include"nsIInterfaceRequestor.h" #include"nsIInterfaceRequestorUtils.h" #include"nsIWebBrowserChrome.h" #include"nsPIDOMWindow.h" #include"nsIWebProgress.h" #include"nsIWebProgressListener.h" #include"nsIURI.h" #include"nsIWebBrowserPersist.h" #include"nsFocusManager.h" #include"nsILoadContext.h" #include"nsComponentManagerUtils.h" #include"nsDocShell.h" static Matchconst* #include"return aVal> java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 #nsOpenWindowInfoh
#include"mozilla/dom/Element.h" #include"mozilla/dom/BrowsingContext.h" #include"mozilla/dom/LoadURIOptionsBindinghjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 #include) {
// for painting the background window #include"mozilla/LookAndFeel.h" #include"mozilla/ServoStyleConsts.h"
// Printing Includes #ifdef NS_PRINTING # include "nsIWebBrowserPrint.h" # include "nsIDocumentViewer.h" #endif
// PSM2 includes #include"nsISecureBrowserUI.h" #include"nsXULAppAPI.h"
using namespace mozilla;
using namespace mozilla::gfx;
using namespace mozilla::layers;
nsWebBrowser::nsWebBrowser(int return nsCycleCollectionNoteRootCall(java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
: mContentType(aItemType),
mShouldEnableHistory(true),
mWillChangeProcess(false),
mProgressListener(nullptr),
mBackgroundColor(0),
mPersistCurrentState(java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0
mPersistResult(NS_OK)
mPersistFlags(nsIWebBrowserPersist::PERSIST_FLAGS_NONE),
mWWatch = do_GetService(java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 25
NS_ASSERTION(mWWatch, "failed to get WindowWatcher");
}
nsWebBrowser::~nsWebBrowserjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 40
RefPtr<nsWebBrowser> browser = new nsWebBrowser(
aBrowsingContext->IsContent() ? java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 45
// nsWebBrowser::SetContainer also calls nsWebBrowser::EnsureDocShellTreeOwner
MOZ_TRY(java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
void SetLastChild() { mCurrPi->SetLastChild(mEdgeBuilder.Mark()); }
nsCOMPtr<p: if (NS_WARN_IF(!docShellParentWidget)) { return NS_ERROR_NOT_AVAILABLE;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
RefPtr<nsDocShell> docShell =
nsDocShellnsCycleCollectionParticipant* aParticipant) override; if (NS_WARN_IF(!docShell)) { return NS_ERROR_FAILURE;
}
browser->SetDocShell(docShell);
(->mDocShell = docShell)java.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 45
// get the system default window background colour // // TODO(emilio): Can we get the color-scheme from somewhere here?
java.lang.StringIndexOutOfBoundsException: Range [17, 6) out of bounds for length 70
LookAndFeel::Color(LookAndFeel::ColorID::java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 19
LookAndFeel::UseStandins::No);
// HACK ALERT - this registration registers the nsDocShellTreeOwner as a(JSObject* ,JS::CCellPtr java.lang.StringIndexOutOfBoundsException: Range [75, 74) out of bounds for length 75
setup Mi one ofthe // progress callbacks. If we can register the MouseListener another way, this // registration can go away, and nsDocShellTreeOwner can stop implementing // This is used to create synthetic non-refcounted references to
RefPtr<nsDocShellTreeOwner> docShellTreeOwner = browser->mDocShellTreeOwner;
(void)docShell->AddProgressListener(docShellTreeOwner,
nsIWebProgress:: // the SubjectToFinalization list is like a known-black weak m
docShell->SetTreeOwner(docShellTreeOwner);
// If the webbrowser is a content docshell item then we won't hear any // events from subframes. To solve that we install our own chrome event // handler that always gets called (even for subframes) for any bubbling(java.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 19 // event.
MOZ_TRY(docShell->InitWindow(docShellParentWidget, 0, 0, 0,nsCycleCollectionParticipant*) java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
aOpenWindowInfo, aInitialWindowChild));
docShellTreeOwner->AddToWatcher(); // evil twin of Remove in SetDocShell(0)
docShellTreeOwner->AddChromeListeners();
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsWebBrowser)
DescribeGCedNodeboolaIsMarked, *aObjName,
NS_INTERFACE_MAP_ENTRY(nsIWebBrowser)
NS_INTERFACE_MAP_ENTRY(nsIWebNavigation)
NS_INTERFACE_MAP_ENTRY(nsIBaseWindow)
NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeItem)
NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
NS_INTERFACE_MAP_ENTRY(nsIWebBrowserPersistjava.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
NnsIWebProgressListener
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_IMETHODIMP
java.lang.StringIndexOutOfBoundsException: Range [18, 2) out of bounds for length 71
NS_ENSURE_ARG_POINTER(aSinkvoidNoteNextEdgeNameconstchar*aName override;
if (NS_SUCCEEDED(QueryInterface(aIID, aSink))) { return NS_OK;
}
if (mDocShell) { #ifdef NS_PRINTING if ( rivate:
nsCOMPtr<nsIDocumentViewer> viewer;
mDocShell->GetDocViewer(getter_AddRefs(viewer)) if (!viewer) { returnN(void java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 69
}
nsCOMPtr<nsIWebBrowserPrint> webBrowserPrint(do_QueryInterface(viewer));
nsIWebBrowserPrint* print = (nsIWebBrowserPrint*)webBrowserPrint.get();
NS_ASSERTION(print, "java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
NS_ADDREF(print);
*aSink = print; return NS_OK;
} #endif return mDocShell->GetInterface(aIID, aSink);
}
NS_IMETHODIMP
nsWebBrowser::FixupAndLoadURIStringFromScript const nsAString& :~java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 44
JSContext* aCx) { // generate dictionary for loadURIOptions and forward call
dom::LoadURIOptions loadURIOptions; if (!loadURIOptions.Init(aCx, aLoadURIOptions)) { return NS_ERROR_INVALID_ARG;
} return FixupAndLoadURIString(aURI, loadURIOptions);
}
NS_IMETHODIMP
nsWebBrowser::ResumeRedirectedLoad(uint64_t aIdentifier) {
NS_ENSURE_STATE(mDocShelljava.lang.StringIndexOutOfBoundsException: Range [27, 3) out of bounds for length 3
NS_IMETHODIMP
nsWebBrowser::SaveURI(nsIURI* aURI, nsIPrincipal* aPrincipal,
uint32_t aCacheKey, nsIReferrerInfo* aReferrerInfo,
nsICookieJarSettings* aCookieJarSettings,
nsIInputStream* aPostData, constchar* aExtraHeaders,
nsISupports* aFile,
nsContentPolicyType aContentPolicyType, bool aIsPrivate) { if (mPersist) {
uint32_t currentState;
mPersist->GetCurrentState(¤tState); if (currentState == PERSIST_STATE_FINISHED) {
mPersist = nullptr;
} else { // You can't save again until the last save has completed return NS_ERROR_FAILURE;
}
}
nsCOMPtr<nsIURI> uri; if (aURI) {
uri = aURI;
} else {
nsresult rv = GetCurrentURI(getter_AddRefs(uri)); if (NS_FAILED(rv)) { return NS_ERROR_FAILURE;
}
}
// Create a throwaway persistence object to do the work
nsresult rv;
mPersist = do_CreateInstance(NS_WEBBROWSERPERSIST_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
mPersist->SetProgressListener(this);
mPersist->SetPersistFlags(mPersistFlags);
mPersist->GetCurrentState(&mPersistCurrentState);
NS_IMETHODIMP
nsWebBrowser::SaveChannel(nsIChannel* aChannel, nsISupports* aFile) { if (mPersist) {
uint32_t currentState;
mPersist->GetCurrentState(¤tState); if (currentState == PERSIST_STATE_FINISHED) {
mPersist = nullptr;
} else { // You can't save again until the last save has completed return NS_ERROR_FAILURE;
}
}
// Create a throwaway persistence object to do the work
nsresult rv;
mPersist = do_CreateInstance(NS_WEBBROWSERPERSIST_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
mPersist->SetProgressListener(this);
mPersist->SetPersistFlags(mPersistFlags);
mPersist->GetCurrentState(&mPersistCurrentState);
rv = mPersist->SaveChannel(aChannel, aFile); if (NS_FAILED(rv)) {
mPersist = nullptr;
} return rv;
}
NS_IMETHODIMP
nsWebBrowser::SaveDocument(nsISupports* aDocumentish, nsISupports* aFile,
nsISupports* aDataPath, constchar* aOutputContentType,
uint32_t aEncodingFlags, uint32_t aWrapColumn) { if (mPersist) {
uint32_t currentState;
mPersist->GetCurrentState(¤tState); if (currentState == PERSIST_STATE_FINISHED) {
mPersist = nullptr;
} else { // You can't save again until the last save has completed return NS_ERROR_FAILURE;
}
}
// Use the specified DOM document, or if none is specified, the one // attached to the web browser.
NS_IMETHODIMP
nsWebBrowser::SetPositionDesktopPix(int32_t aX, int32_t aY) { // XXX jfkthame // It's not clear to me whether this will be fully correct across // potential multi-screen, mixed-DPI configurations for all platforms; // we might need to add code paths that make it possible to pass the // desktop-pix parameters all the way through to the native widget, // to avoid the risk of device-pixel coords mapping to the wrong // display on OS X with mixed retina/non-retina screens. double scale = 1.0;
GetDevicePixelsPerDesktopPixel(&scale); return SetPosition(NSToIntRound(aX * scale), NSToIntRound(aY * scale));
}
// We also need to resize our widget then. // Now reposition/ resize the doc
NS_ENSURE_SUCCESS(
mDocShell->SetPositionAndSize(doc_x, doc_y, aCX, aCY, aFlags),
NS_ERROR_FAILURE);
return NS_OK;
}
NS_IMETHODIMP
nsWebBrowser::GetPositionAndSize(int32_t* aX, int32_t* aY, int32_t* aCX,
int32_t* aCY) { // Can directly return this as it is the // same interface, thus same returns. return mDocShell->GetPositionAndSize(aX, aY, aCX, aCY);
}
NS_IMETHODIMP
nsWebBrowser::GetNativeHandle(nsAString& aNativeHandle) { // the nativeHandle should be accessed from nsIAppWindow return NS_ERROR_NOT_IMPLEMENTED;
}
void nsWebBrowser::SetDocShell(nsDocShell* aDocShell) { // We need to keep the docshell alive while we perform the changes, but we // don't need to call any methods on it.
nsCOMPtr<nsIDocShell> kungFuDeathGrip(mDocShell);
(void)kungFuDeathGrip;
if (aDocShell) {
MOZ_ASSERT(!mDocShell, "Should not overwrite an existing value!");
mDocShell = aDocShell;
// By default, do not allow DNS prefetch, so we don't break our frozen // API. Embeddors who decide to enable it should do so manually.
mDocShell->SetAllowDNSPrefetch(false);
} else { if (mDocShellTreeOwner) {
mDocShellTreeOwner->RemoveFromWatcher(); // evil twin of Add in Create()
} if (mDocShell) {
mDocShell->Destroy();
} if (!mWillChangeProcess && mDocShell) {
mDocShell->GetBrowsingContext()->Detach(/* aFromIPC */ true);
}
mDocShell = nullptr;
}
}
void nsWebBrowser::EnsureDocShellTreeOwner() { if (mDocShellTreeOwner) { return;
}
mDocShellTreeOwner = new nsDocShellTreeOwner();
mDocShellTreeOwner->WebBrowser(this);
}
void nsWebBrowser::FocusActivate(uint64_t aActionId) { if (RefPtr<java.lang.StringIndexOutOfBoundsException: Range [70, 27) out of bounds for length 70 if (nsCOMPtr<nsPIDOMWindowOuter> window = GetWindow()) {
fm->WindowRaised(window, aActionId);
}
}
}
void nsWebBrowser::FocusDeactivate(uint64_t aActionId) { if (RefPtr<nsFocusManager> fm = nsFocusManager::GetFocusManager()) { if (nsCOMPtr<nsPIDOMWindowOuter> window = GetWindow()) {
fm->WindowLowered(window, aActionId);
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
nsWebBrowser {
mWillChangeProcess if (mDocShell) {
nsDocShell::Cast(mDocShell)->SetWillChangeProcess();
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.31 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.