We were returning a nullptr from AllocPRenderFrameParent in TabParent, which causes
a killhard abort in the child. We suspect this is occurring because the TabParent
is attempting to kick off drawing in a tab that's already closed (so there is no
frame loader, which means we can't create a PRenderFrameParent). So now, we return
a PRenderFrameParent* even if constructing it was unsuccessful, and the child
destroys it once it confirms that there is an invalid layer ID associated with
the RenderFrame.
--HG--
extra : commitid : K7IDcpprjxI
extra : rebase_source : 9994cbe9a9a2a6216d189ccfe99a440f4db7b871
We don't ever want to accept "private", "non-private", "remote" or "non-remote" from the
content process. We only let the parent decide when to open those types of windows.
--HG--
extra : commitid : 9MGeXNdb9US
extra : rebase_source : 41a4d9785bd667b84c255eda0ac7fedf44733736
extra : histedit_source : 698c707b68c60108e0631b775a98fb4e241c009b
The code that deals with the features is looking for char *, and we were going through
the hassle of converting that char * to a UTF16 string, and then back down to UTF8,
and then to char *. Really, we just need to send up a nsCString, which simplifies things.
--HG--
extra : commitid : HgzV7FFsQCv
extra : rebase_source : feabba83d86d732fbac5d1d26c6bf362928c0b9f
extra : histedit_source : 5a0cdbbbbd05632d2071de2ecc7771ed71abcbe2
The bulk of this commit was generated by running:
run-clang-tidy.py \
-checks='-*,llvm-namespace-comment' \
-header-filter=^/.../mozilla-central/.* \
-fix
We were returning false from TabParent::RecvCreateWindow whenever anything went wrong.
Returning false in response to an IPC message results in the content process being
killed, which is a terrible user experience. With this patch, instead of returning
false, we more often return the nsresult of operations occurring within TabParent.
--HG--
extra : commitid : FVk1R6eSp5M
extra : rebase_source : 1f86739a7159205cb3467316d87e51cb113d9085
extra : amend_source : 151568149d4c59d67bb26facab6f54b90a2d3965
nsContentUtils::CallOnAllRemoteChildren calls a callback on all tabs
connected to a given window but it has only worked in Firefox e10s tabs.
This patch adds a list of (weak) references to each top-level document's
WindowRoot so that e.g. the nsPresContext can access them instead of
using nsContentUtils. This provides a solution to the problem of finding remote PBrowsers generally.
When connecting a lowdpi external monitor on hidpi mac, TabChild gets an
UpdateDimensions call, followed by a UIResolutionChanged call. After
the UpdateDimensions call, the content process is in an incorrect state
where it has the dimensions of the new display and scale of the old one.
After the UIResolutionChanged message, the values are again consistent.
In the interim, reflow resizes layers based on the incorrect (old) scale
and subsequently uses those incorrect values when the new scale comes
in. This patch normalizes the message parameters by dividing by scale
(the result is what OS X calls point coordinates) so that this doesn't happen.
nsContentUtils::CallOnAllRemoteChildren calls a callback on all tabs
connected to a given window but it has only worked in Firefox e10s tabs.
This patch adds a list of (weak) references to each top-level document's
WindowRoot so that e.g. the nsPresContext can access them instead of
using nsContentUtils. This provides a solution to the problem of finding remote PBrowsers generally.
When connecting a lowdpi external monitor on hidpi mac, TabChild gets an
UpdateDimensions call, followed by a UIResolutionChanged call. After
the UpdateDimensions call, the content process is in an incorrect state
where it has the dimensions of the new display and scale of the old one.
After the UIResolutionChanged message, the values are again consistent.
In the interim, reflow resizes layers based on the incorrect (old) scale
and subsequently uses those incorrect values when the new scale comes
in. This patch normalizes the message parameters by dividing by scale
(the result is what OS X calls point coordinates) so that this doesn't happen.