Commit Graph

544 Commits

Author SHA1 Message Date
Andrew McCreight
179c12c3e5 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197
2020-02-27 04:43:48 +00:00
Kris Maglione
232ff37e9f Bug 1535617: Part 2 - Clear weak references for most cycle collected objects on unlink. r=mccr8
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
2020-02-25 19:44:39 +00:00
Olli Pettay
22d9931a00 Bug 1561488 - null check document in RecvUIResolutionChanged and RecvThemeChanged, r=bdahl
These were the worrisome missing null checks I noticed, and crash-stat shows that there areactually crashes in these two places

Differential Revision: https://phabricator.services.mozilla.com/D64162
2020-02-25 18:05:57 +00:00
Olli Pettay
15f773a169 Bug 1577432 - Null check document in BrowserChild::RecvSizeModeChanged, r=bdahl
Based on crash stats the crash is null+offset, and I think the issue can happen during closing down
BrowserChild if there is a pending RecvSizeModeChanged message.
The crash has been there for ages, I think since bug 1104916

Note, BrowserChild::RecvUpdateDimensions does have a null check for the document.

Differential Revision: https://phabricator.services.mozilla.com/D63963
2020-02-25 00:07:04 +00:00
Kartikaya Gupta
b0e5b55db7 Bug 1617565 - Convert additional compile-conditional logging bits to MOZ_LOG. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D63868
2020-02-24 16:31:04 +00:00
Emilio Cobos Álvarez
81f5747d96 Bug 1615609 - Rename nsRefreshDriver::IntersectionObservationAdded. r=hiro
The existing name is wrong since recently.

Differential Revision: https://phabricator.services.mozilla.com/D62922
2020-02-15 07:23:51 +00:00
Mihai Alexandru Michis
3e074d5ae0 Backed out changeset 93c88e36d8ea (bug 1615609) for causing bustages in DOMIntersectionObserver.cpp
CLOSED TREE
2020-02-15 03:17:43 +02:00
Emilio Cobos Álvarez
7ee6dc8ce3 Bug 1615609 - Rename nsRefreshDriver::IntersectionObservationAdded. r=hiro
The existing name is wrong since recently.

Differential Revision: https://phabricator.services.mozilla.com/D62922
2020-02-14 21:16:06 +00:00
Simon Giesecke
9bcfd47601 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-13 14:38:48 +00:00
shindli
6bb3487209 Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke
d45525793f Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-12 17:24:41 +00:00
Hiroyuki Ikezoe
85a0f91f86 Bug 1614573 - Don't use EffectsInfo.mVisibleRect in BrowserChild::GetTopLevelViewportVisibleRectInSelfCoords(). r=emilio
It's not clipped by scroll viewports at all.

Differential Revision: https://phabricator.services.mozilla.com/D62494
2020-02-11 22:04:01 +00:00
Ehsan Akhgari
b51beb62d1 Bug 1614353 - Remove the remaining usages of nsIPrincipal::GetURI() in AntiTrackingCommon.cpp; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D62334
2020-02-11 09:33:32 +00:00
Hiroyuki Ikezoe
b03d8571d6 Bug 1599795 - Make IntersectionObserver work in fission world. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D61938
2020-02-11 03:59:14 +00:00
Hiroyuki Ikezoe
999ddf21ce Bug 1599795 - Rename BrowserChild::GetRemoteDocumentRect to GetTopLevelViewportVisibleRectInBrowserCoords. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D62183
2020-02-11 03:35:56 +00:00
Hiroyuki Ikezoe
0970be94c1 Bug 1599795 - Trigger UpdateIntersectionObservation in response to APZ changes. r=emilio
In out-of-process iframes, the refresh driver for the iframe process doesn't
trigger the UpdateIntersectionObservation function in cases where ancestor
document's viewports change because there is no way to know it happens inside
the iframe process.  So instead, we trigger the function in
BrowserChild::RecvChildToParentMatrix which is called in response to APZ.

Differential Revision: https://phabricator.services.mozilla.com/D61937
2020-02-11 03:35:38 +00:00
Tetsuharu OHZEKI
dd72142270 Bug 1597449 - Remove mozilla::dom::BrowserChild::Send/RecvSetWindowName() to remove usages of nsIDocShellTreeItem. r=kmag
Instead we should set a name to BrowsingContext directly.

Differential Revision: https://phabricator.services.mozilla.com/D61342
2020-02-10 20:27:30 +00:00
Tetsuharu OHZEKI
0d52b6d772 Bug 1612483 - Remove mozilla::dom::TabContext::IsMozBrowser(). r=bzbarsky
Now, this method returns simply the result of of `IsMozBrowserElement()`.

In the old days, We used to have IsMozBrowserElement and IsMozBrowserOrApp,
where the latter was true if we had a mozapp or mozbrowser.
But with b2g removed, the app thing went away.

`IsMozBrowser()` is less used than `IsMozBrowserElement()`.

I think the former should be replaced by the later one.

Differential Revision: https://phabricator.services.mozilla.com/D61699
2020-02-05 16:27:49 +00:00
Kris Maglione
d7e4043bb8 Bug 1582832: Part 1 - Make FrameLoader owner rather than DocShell responsible for discarding a BC. r=nika
There are all sorts of lifecycle issues which arise from making DocShell
responsible for discarding BrowsingContexts. In this particular bug, we tend
to run into them in cases where we create a BrowsingContext for a FrameLoader,
and then never create a DocShell for it, leading to it never being destroyed.
But there are myriad other issues as well.

This patch moves the responsibility for BrowsingContext lifecycle management
to the FrameLoader/FrameLoaderOwner, rather than the DocShell, which makes
things more consistent, and more closely aligns with spec-defined behavior.

Differential Revision: https://phabricator.services.mozilla.com/D59008
2020-02-06 19:07:56 +00:00
Tetsuharu OHZEKI
007728b249 Bug 1597448 - Fix uses nsIDocShellTreeItem of mozilla::dom::BrowserChild::ApplyParentShowInfo(). r=kmag
This remove a code path for `<iframe mozbrowser>` from its function.

Differential Revision: https://phabricator.services.mozilla.com/D61343
2020-01-31 14:33:21 +00:00
Emilio Cobos Álvarez
778b011866 Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj
This was done by:

This was done by applying:

```
diff --git a/python/mozbuild/mozbuild/code-analysis/mach_commands.py b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
index 789affde7bbf..fe33c4c7d4d1 100644
--- a/python/mozbuild/mozbuild/code-analysis/mach_commands.py
+++ b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
@@ -2007,7 +2007,7 @@ class StaticAnalysis(MachCommandBase):
         from subprocess import Popen, PIPE, check_output, CalledProcessError

         diff_process = Popen(self._get_clang_format_diff_command(commit), stdout=PIPE)
-        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format]
+        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format, '-sort-includes']

         if not output_file:
             args.append("-i")
```

Then running `./mach clang-format -c <commit-hash>`

Then undoing that patch.

Then running check_spidermonkey_style.py --fixup

Then running `./mach clang-format`

I had to fix four things:

 * I needed to move <utility> back down in GuardObjects.h because I was hitting
   obscure problems with our system include wrappers like this:

0:03.94 /usr/include/stdlib.h:550:14: error: exception specification in declaration does not match previous declaration
0:03.94 extern void *realloc (void *__ptr, size_t __size)
0:03.94              ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/malloc_decls.h:53:1: note: previous declaration is here
0:03.94 MALLOC_DECL(realloc, void*, void*, size_t)
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozilla/mozalloc.h:22:32: note: expanded from macro 'MALLOC_DECL'
0:03.94     MOZ_MEMORY_API return_type name##_impl(__VA_ARGS__);
0:03.94                                ^
0:03.94 <scratch space>:178:1: note: expanded from here
0:03.94 realloc_impl
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozmemory_wrap.h:142:41: note: expanded from macro 'realloc_impl'
0:03.94 #define realloc_impl mozmem_malloc_impl(realloc)

   Which I really didn't feel like digging into.

 * I had to restore the order of TrustOverrideUtils.h and related files in nss
   because the .inc files depend on TrustOverrideUtils.h being included earlier.

 * I had to add a missing include to RollingNumber.h

 * Also had to partially restore include order in JsepSessionImpl.cpp to avoid
   some -WError issues due to some static inline functions being defined in a
   header but not used in the rest of the compilation unit.

Differential Revision: https://phabricator.services.mozilla.com/D60327
2020-01-20 16:19:48 +00:00
Emilio Cobos Álvarez
2efdea1ee5 Bug 1609996 - Remove mozilla/Move.h. r=froydnj
rg -l 'mozilla/Move.h' | xargs sed -i 's/#include "mozilla\/Move.h"/#include <utility>/g'

Further manual fixups and cleanups to the include order incoming.

Differential Revision: https://phabricator.services.mozilla.com/D60323
2020-01-20 16:18:20 +00:00
pbz
9ca53ea171 Bug 1432856 - Extended focus methods in Window.webidl, Client.webidl and Element.webidl to pass CallerType. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D55811
2020-01-16 14:38:40 +00:00
Dimi Lee
e770564392 Bug 1600896 - P3. Remove nsIRemoteTab::getContentBlockingLog r=timhuang,Ehsan
Depends on D55780

Differential Revision: https://phabricator.services.mozilla.com/D55781
2019-12-17 11:04:58 +00:00
Tim Huang
2c715cdbf0 Bug 1599043 - Part 8: Remove the unnecessary OnContentBlockingEvent event in PBrowser. r=dimi,Ehsan
The OnContentBlockingEvent is no longer needed once we make the
OnContentBlockingEvent parent only.

Differential Revision: https://phabricator.services.mozilla.com/D55788
2020-01-13 14:08:53 +00:00
Tim Huang
d66aef6a2f Bug 1599043 - Part 5: Add an IPC message to allow content process to notify the OnContentBlockingEvent in the parent. r=dimi,Ehsan
This patch adds an IPC message which allows content process to notify
the OnContentBlockingEvent in the parent process. This is needed because
there are some situations that the content blocking happens in content
processes, so we need to tell the parent process to notify it. Such as,
AntiTrackingCommon::AntiTrackingCommon::AddFirstPartyStorageAccessGrantedFor().

Differential Revision: https://phabricator.services.mozilla.com/D55648
2020-01-13 14:08:25 +00:00
Emilio Cobos Álvarez
8bf5fa27f4 Bug 1588791 - Make fission iframes honor and deal with the scrolling attribute. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D59630
2020-01-13 11:30:44 +00:00
Ciure Andrei
dcf9890bea Backed out 2 changesets (bug 1588791) for causing test_bug369370.html and test_transformed_scrolling_repaints_3.html to permafail
Backed out changeset 52e661ff161d (bug 1588791)
Backed out changeset d59e691bda9e (bug 1588791)
2020-01-13 04:49:16 +02:00
Emilio Cobos Álvarez
0ad1bec404 Bug 1588791 - Make fission iframes honor and deal with the scrolling attribute. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D59630
2020-01-12 22:22:29 +00:00
Emilio Cobos Álvarez
5eba0dc604 Bug 1606659 - Make Browser*::Show take two arguments, one from the parent process, one from the owner of the frame. r=mattwoodrow
This makes clear where the information comes from, and also that there are some
bits of information that we should pass down from the child that we don't, like
allowfullscreen and the frame name.

Differential Revision: https://phabricator.services.mozilla.com/D58535
2020-01-05 20:58:21 +00:00
Boris Zbarsky
65f6a7e2b6 Bug 1606672. Change nsIRunnablePriority values so increasing value indicates increased priority. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D58539
2020-01-02 20:07:40 +00:00
Oana Pop Rus
2fa2ebf69d Backed out 7 changesets (bug 1432856) for build bustages failures in nsWindow.h on a CLOSED TREE
Backed out changeset 3d08c3cce533 (bug 1432856)
Backed out changeset 49d03dd89b17 (bug 1432856)
Backed out changeset 62fc84c8ce99 (bug 1432856)
Backed out changeset a8a4fa63f5b2 (bug 1432856)
Backed out changeset c81f3d5b9bf3 (bug 1432856)
Backed out changeset 8351a8b1d96a (bug 1432856)
Backed out changeset a303b775a51b (bug 1432856)
2019-12-16 23:53:35 +02:00
pbz
29a2e0c4e4 Bug 1432856 - Extended focus methods in Window.webidl, Client.webidl and Element.webidl to pass CallerType. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D55811
2019-12-16 21:06:11 +00:00
Oana Pop Rus
f0de283f03 Backed out 10 changesets (bug 1599043) for build bustages in nsGlobalWindowOuter.cpp on a CLOSED TREE
Backed out changeset 463b815557e4 (bug 1599043)
Backed out changeset 7c3f0a58cc6c (bug 1599043)
Backed out changeset 1eadd9f5b50e (bug 1599043)
Backed out changeset e4ea0d47136b (bug 1599043)
Backed out changeset 6b97581c33b6 (bug 1599043)
Backed out changeset a68bd2acf5d6 (bug 1599043)
Backed out changeset c8ed9c52508c (bug 1599043)
Backed out changeset aaf83f7806b4 (bug 1599043)
Backed out changeset 0ad30634e416 (bug 1599043)
Backed out changeset 68219c132efc (bug 1599043)
2019-12-12 17:14:54 +02:00
Tim Huang
739c3f9cff Bug 1599043 - Part 8: Remove the unnecessary OnContentBlockingEvent event in PBrowser. r=dimi,Ehsan
The OnContentBlockingEvent is no longer needed once we make the
OnContentBlockingEvent parent only.

Differential Revision: https://phabricator.services.mozilla.com/D55788
2019-12-11 15:01:41 +00:00
Tim Huang
497e8be12e Bug 1599043 - Part 5: Add an IPC message to allow content process to notify the OnContentBlockingEvent in the parent. r=dimi,Ehsan
This patch adds an IPC message which allows content process to notify
the OnContentBlockingEvent in the parent process. This is needed because
there are some situations that the content blocking happens in content
processes, so we need to tell the parent process to notify it. Such as,
AntiTrackingCommon::AntiTrackingCommon::AddFirstPartyStorageAccessGrantedFor().

Differential Revision: https://phabricator.services.mozilla.com/D55648
2019-12-11 15:00:53 +00:00
Masayuki Nakano
436289274e Bug 1557587 - part 1: Make BrowserParent::RecvSetDimensions() adjust given value with current scale r=jfkthame
If `nsGlobalWindowOuter::ResizeTo()` etc is called before receiving
`BrowserChild::RecvUIResolutionChanged()`, the `aX`, `aY`, `aCx` and `aCy`
values are computed with old scale.

This patch makes `BrowserChild::SendSetDimensions()` set scale in the
remote process and `BrowserParent::RecvSetDimensions()` recompute each
value with current scale.

Differential Revision: https://phabricator.services.mozilla.com/D54150
2019-12-10 08:23:06 +00:00
Gabriele Svelto
eb403b8785 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-06 09:24:56 +00:00
Masatoshi Kimura
4bfa0ac097 Bug 1455716 - Followup to fix review comments. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D55881
2019-12-05 10:36:12 +00:00
Dorel Luca
67889e1013 Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
dc6fa2e86c Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-04 15:01:19 +00:00
Masatoshi Kimura
1c4a66ae16 Bug 1455716 - Simplify/rename nsIWebBrowserChrome;setStatus and setStatusWithContext. r=bzbarsky
* Removed the STATUS_LINK constant.
* Removed the statusType parameter from nsIWebBrowserChrome::setStatus.
* Removed the setStatusWithContext method. No one uses the information from
  statusContext.
* Removed the nsIWebBrowserChrome2 interface as setStatusWithContext was the
  only method.

Differential Revision: https://phabricator.services.mozilla.com/D55195
2019-12-04 13:50:01 +00:00
Emilio Cobos Álvarez
f31677d590 Bug 1600454 - Fix build with --disable-accessibility. r=MarcoZ
The change to moz.build unveiled a couple unified build issues that I also had
to fix.

Depends on D55365

Differential Revision: https://phabricator.services.mozilla.com/D55366
2019-12-02 06:25:40 +00:00
Hiroyuki Ikezoe
210926ff11 Bug 1586986 - Deliver 'fixed-bottom' offset to the top of the pres context on the foreground tab. r=geckoview-reviewers,tnikkel,snorp
The dynamic toolbar transition doesn't affect on background tabs since to
switch tabs the dynamic toolbar should be restored to its original state (i.e.,
completely visible state).

Differential Revision: https://phabricator.services.mozilla.com/D52336
2019-11-21 21:15:46 +00:00
Botond Ballo
1ef49ee134 Bug 1589022 - Partial support for moving a tab between windows with different APZ enablement. r=nika,tnikkel
This involves two new IPC messages (both async) to propagate the change in
compositor options (of which APZ enablement is one) from the GPU process to
the parent process (via PCompositorBridge) and on to the content process
(via PBrowser).

The support is only partial, in that going from non-APZ to APZ is only
supported if APZ was enabled at the time the window was created.

Depends on D51467

Differential Revision: https://phabricator.services.mozilla.com/D51468
2019-11-18 23:13:55 +00:00
Micah Tigley
e8a16eb704 Bug 1593708 - Part 2: Get inRDMPane value from BrowsingContext instead of Document. r=smaug
Depends on D52214

Differential Revision: https://phabricator.services.mozilla.com/D52216
2019-11-14 20:32:02 +00:00
Hiroyuki Ikezoe
9f3c0a7aa9 Bug 1586144 - Introduce an API to set the dynamic toolbar maximum height in GeckoView. r=geckoview-reviewers,tnikkel,snorp
And deliver the value to the top content pres context, but it's not used in
this commit. The value will be used in the next commit.

One caveat is that areas covered by the dynamic toolbar will be outside
of the content area, which means implementers of GeckoView needs to call
setVerticalClipping with _negative_ values.

Depends on D50416

Differential Revision: https://phabricator.services.mozilla.com/D50417
2019-11-14 05:59:47 +00:00
Jim Porter
fc952ea9fa Bug 1592470 - Don't cancel content JS when "navigating" to javascript: URLs; r=smaug
Prior to this patch, users entering javascript: URLs in the location bar
(e.g. via a bookmark) would trigger the cancel content JS path for the page
they were on, potentially breaking the site. Since javascript: URLs
(generally) don't navigate to a new page, we should avoid canceling the
current page's JS.

Differential Revision: https://phabricator.services.mozilla.com/D51951
2019-11-08 02:43:00 +00:00
Edgar Chen
3dc70dd58e Bug 1587062 - Move SandboxFlags from DocShell to BrowsingContext; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D50663
2019-10-28 11:48:30 +00:00
Brad Werth
5518e9966a Bug 1561227 Part 2: Define and fire an internal event when BrowserChild has finished resizing. r=botond,emilio
This event is useful for tests that resize the RDM pane and need to
know when all resolution adjusting effects are complete.

Differential Revision: https://phabricator.services.mozilla.com/D47364
2019-10-25 21:05:48 +00:00