This covers most cycle collected objects which support weak references, but
not the ones which inherit from a cycle collected class and don't do any cycle
collection on their own.
Differential Revision: https://phabricator.services.mozilla.com/D63962
The method is exposed only if the consumer has the same principal as the PDF
would have if it were not getting the PDF viewer treatment.
The method just calls the print() method in the PDF viewer window.
It's enough to expose this on nsOuterWindowProxy, not RemoteOuterWindowProxy,
because PDF documents end up in the process they would have been in based on
their pre-PDF-viewer principal, since we do process determination in the parent
process but only run the pdfjs stream converter in the content process, once we
have decided which one to use.
Differential Revision: https://phabricator.services.mozilla.com/D63711
The ghost window checker examines windows in all sorts of weird states,
apparently including when the docshell on the outer is null. Add some
fallible variants of the tab group methods on inner and outer windows
so it can call one of those instead.
Differential Revision: https://phabricator.services.mozilla.com/D61203
This patch does the followings:
1. Remove NotifyOnContentBlocking in WindowOuter and all the call sites.
This is because all the content blocking event handling is moved to the parent.
2. Replace UrlClassifierCommon::NotifyChannelBlocked with AntiTrackingCommon:::NotifyContentBlockingEventInParent.
This is because we don't need to pass the request to the child anymore, which was implemented in NotifyChannelBlocked previously.
3. Add NotifyContentBlockingEvent* utility functions to AntiTrackingCommon.cpp.
4. Update AntiTrackingCommon::NotifyBlockingDecision, when it is called in the parent,
do not send requests to the child, notify the parent directly
Depends on D56874
Differential Revision: https://phabricator.services.mozilla.com/D56875
At this point, there is no consumer that uses ContentBlockingLog stored
in the child. This patch removes the following code:
1. Removing nsGlobalWindowOuter::NotifyContentBlockingEvent
2. Removing nsDocLoader::OnContentBlockingEvent
3. Removing contentBlockingEvent in nsISecureBrowserUI.idl
4. Removing mContentBlockingLog from Document.cpp and APIs related to it.
Differential Revision: https://phabricator.services.mozilla.com/D56874
This patch does the followings:
1. Remove NotifyOnContentBlocking in WindowOuter and all the call sites.
This is because all the content blocking event handling is moved to the parent.
2. Replace UrlClassifierCommon::NotifyChannelBlocked with AntiTrackingCommon:::NotifyContentBlockingEventInParent.
This is because we don't need to pass the request to the child anymore, which was implemented in NotifyChannelBlocked previously.
3. Add NotifyContentBlockingEvent* utility functions to AntiTrackingCommon.cpp.
4. Update AntiTrackingCommon::NotifyBlockingDecision, when it is called in the parent,
do not send requests to the child, notify the parent directly
Depends on D56874
Differential Revision: https://phabricator.services.mozilla.com/D56875
At this point, there is no consumer that uses ContentBlockingLog stored
in the child. This patch removes the following code:
1. Removing nsGlobalWindowOuter::NotifyContentBlockingEvent
2. Removing nsDocLoader::OnContentBlockingEvent
3. Removing contentBlockingEvent in nsISecureBrowserUI.idl
4. Removing mContentBlockingLog from Document.cpp and APIs related to it.
Differential Revision: https://phabricator.services.mozilla.com/D56874
(And while at it, format the end of the other keyword tables so that
cleanup_ktables.py works).
It seems `Window.setCursor` is only used once in our code, maybe
we should remove it...
Differential Revision: https://phabricator.services.mozilla.com/D61090
1. Rename mCallerDocumentURI field of PostMessageEvent to mCallerURI as we
might not always have a document, e.g. when we have a sandbox.
2. When we neither have caller's inner window (and thus we have no caller's
window ID) nor caller's URI, use script location as a source name for the error
object when reporting errors to console.
3. When the caller of postMessage has its window in a different process, pass along
the caller's window ID so that the error can be reported correctly.
Differential Revision: https://phabricator.services.mozilla.com/D59526
This does not fix consumers of GetRealFrameElementOuter, which may still act
incorrectly, as the frame element will not be available in cross-process
situations, but removes a user of the docshell tree.
This has a small behaviour change, in that it causes 'window.realFrameElement'
to return 'null' when run within an <iframe mozbrowser>. A quick inspection of
use-sites suggested that this would not be an issue, and it appears to pass a
try run.
Differential Revision: https://phabricator.services.mozilla.com/D59398
This patch moves the propatation of the onContentBlockingEvent in the
content processes. After this, the
nsGlobalWindowOuter::NotifyContentBlockingEvent will only update the
ContentBlockingLog.
Differential Revision: https://phabricator.services.mozilla.com/D55646
Any number of outer windows may be attached to a BrowsingContext over its
lifetime. While the BrowsingContext is alive, it's easy to keep track of which
of these is active, and therefore which of its inner windows is active. After
it has been discarded, though, it discards its docShell reference, so all we
can tell about an inner window is whether it is active for its own outer
window, but not whether it should be considered active for its
BrowsingContext.
This patch updates the BrowsingContext detach logic to store a flag on the
current inner window recording that it was active when its BrowsingContext was
detached, and then later checks that flag to determine if it is the current
window for a detached BrowsingContext.
Differential Revision: https://phabricator.services.mozilla.com/D49032
This patch moves the propatation of the onContentBlockingEvent in the
content processes. After this, the
nsGlobalWindowOuter::NotifyContentBlockingEvent will only update the
ContentBlockingLog.
Differential Revision: https://phabricator.services.mozilla.com/D55646