Commit Graph

327 Commits

Author SHA1 Message Date
Andrew McCreight
660384a33d Bug 1263235, part 1 - Move PBrowser::AsyncMessage's data argument last. r=smaug
This will reduce internal memory fragmentation for the IPC::Message used to make this call.
2016-04-09 06:50:59 -07:00
Nicolas Silva
5b818be1b7 Bug 1215265 - Shut PCompositorBridge down properly. r=sotaro 2015-11-24 14:50:51 +13:00
J. Ryan Stinnett
5e7b672687 Bug 1242644 - HTML swapFrameLoaders. r=bz
Adds swapFrameLoaders for HTML frames.  It is also possible to swap frame
loaders between XUL and HTML frames.

MozReview-Commit-ID: 43JeiBuMcOL
2016-03-31 19:47:44 -05:00
David Anderson
7b7cd394cc Rename PCompositor to PCompositorBridge. (bug 1258479 part 2, r=mattwoodrow) 2016-03-22 14:08:38 -04:00
Yoshi Huang
49dc6879e4 Bug 1252811 - remove mIsInIsolatedMozBrowser from nsDocShell. r=smaug 2016-03-07 12:21:49 +08:00
Yoshi Huang
dfd3654fa4 Bug 1227861 - Add OriginAttributes getter/setter into nsIDocShell. r=smaug, sicking 2016-02-16 15:04:14 +08:00
J. Ryan Stinnett
0a5be07579 Bug 1238160 - Add assertions in non-desktop code paths. r=bz,fabrice
Several code paths try to ask the principal if it's in a browser element, but
the principal now only knows about *isolated* browser elements.  All such code
paths are currently unused on desktop.  The frame loader now asserts that
isolation remains enabled for cases where apps are used.

MozReview-Commit-ID: 775DZecc35t
2016-03-02 10:35:56 -06:00
J. Ryan Stinnett
2024f04e83 Bug 1238160 - Set frame type on TabContext. r=billm,mayhemer
This change renames TabContext::IsBrowserElement to IsIsolatedMozBrowserElement.
Other methods that pass these values around also have name changes.

Adds TabContext::IsMozBrowserElement which is set by the frame loader for all
browser frames.  This is in contrast to its previous implementation, which has
since been renamed IsIsolatedMozBrowserElement, since it checks isolated state
in OriginAttributes.

TabContext methods related to browser elements (and their callers) are updated
to use IsIsolatedMozBrowserElement when check isolation / origins and
IsMozBrowserElement when checking frame types.

MozReview-Commit-ID: DDMZTkSn5yd
2016-03-02 10:35:56 -06:00
J. Ryan Stinnett
d0e4c235aa Bug 1238160 - Set docshell isolation mode. r=smaug
Renames nsDocShell isBrowser* attributes to add a "Moz" prefix for clarity.

Adds nsDocShell::GetIsIsolatedMozBrowserElement, which parallels
GetIsInIsolatedMozBrowserElement, but only checks the immediate docshell.

Adds nsDocShell::SetIsInIsolatedMozBrowserElement for the frame loader and tab
child to set the isolation state.

nsDocShell methods related to mozbrowser elements (and their callers) are
updated to use GetIs(In)?IsolatedMozBrowserElement when checking isolation /
origins and GetIsMozBrowserElement when checking frame types.

MozReview-Commit-ID: 6pGD5fF47ZN
2016-03-02 10:35:56 -06:00
J. Ryan Stinnett
1203389da5 Bug 1238160 - Set tab context's isolation from frame attr. r=smaug
Renames existing nsFrameLoader::OwnerIsBrowser* methods to add "Moz" prefix for
clarity.

Adds nsFrameLoader::OwnerIsIsolatedMozBrowserFrame which checks the noisolation
attribute of mozbrowser frames, if present.

This is used to set isolation in nsFrameLoader::GetNewTabContext only when true.

MozReview-Commit-ID: Dz02xBoKh1P
2016-03-02 10:35:56 -06:00
J. Ryan Stinnett
f6d23d0dde Bug 1238160 - Rename OriginAttributes.mInBrowser and associated methods. r=bz,mayhemer
This change renames OriginAttributes.mInBrowser to mInIsolatedMozBrowser and
nsIPrincipal::GetIsInBrowserElement to GetIsInIsolatedMozBrowserElement.  Other
methods that pass these values around also have name changes.

Tokens such as "inBrowser" have previously been serialized into cache keys, used
as DB column names, stored in app registries, etc.  No changes are made to any
serialization formats.  Only runtime method and variable names are updated.

No behavior changes are made in this patch, so some renamed methods may have
nonsensical implementations.  These are corrected in subsequent patches
focused on behavior.

MozReview-Commit-ID: 66HfMlsXFLs
2016-03-02 10:35:56 -06:00
Mike de Boer
e4d25d121c Bug 1250871 - only send messages to child scripts when the docShell is still around. r=smaug 2016-02-29 12:25:48 +01:00
Olli Pettay
94fd41bd51 Bug 1249795 - Clear strong refs to message managers once we've destroyed nsFrameLoader, r=billm 2016-02-20 12:33:30 +02:00
Mike de Boer
4331d3aae3 Bug 1154277: Part 1 - allow to swap docShells on remote browsers that are not a child of a BrowserDOMWindow. r=smaug 2016-02-04 12:50:03 +01:00
Kyle Huey
e95edb30a9 Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
David Rajchenbach-Teller
e82056648c Bug 1224374 - Profiler labels for the 25 top chrome hangs;r=BenWa,MarcoZ
Experience shows that we do not have enough profiler labels to make
BHR hang reports meaningful. This patch adds enough labels to let us
exploit hang reports matching the 25 topmost chrome hangs.
2016-01-14 23:03:11 +01:00
Sebastian Hengst
2e241e7e5e Backed out 2 changesets (bug 1224374) for Windows bustage. r=bustage on a CLOSED TREE
Backed out changeset 5f458e6e4997 (bug 1224374)
Backed out changeset 0dc02cb0b604 (bug 1224374)
2016-01-19 21:30:41 +01:00
David Rajchenbach-Teller
b9014bc5d3 Bug 1224374 - Profiler labels for the 25 top chrome hangs;r=BenWa,MarcoZ
Experience shows that we do not have enough profiler labels to make
BHR hang reports meaningful. This patch adds enough labels to let us
exploit hang reports matching the 25 topmost chrome hangs.
2016-01-14 23:03:11 +01:00
Andrea Marchesini
61b2815a37 Bug 1237364 - nsFrameLoader.cpp can set the userContextId directly using nsIDocShell, r=smaug 2016-01-06 20:02:41 +00:00
Bogdan Postelnicu
c253836a13 Bug 1236900 - Remove useless null check since mOwnerContent cannot be null. r=jst 2016-01-06 00:56:00 -05:00
Bill McCloskey
05ed92a7f4 Bug 1211401 - Use global message manager as parent of <iframe mozbrowser> MM (r=smaug,ahal) 2015-12-23 12:29:39 -08:00
Kate McKinley
d390fa9409 Bug 1191460 Rebased patch and added userContextId to origin attributes. (r=tanvi,r=sicking) 2015-11-24 10:40:02 +09:00
Franziskus Kiefer
aacb932dec Bug 1187357 - rename referrer attribute to referrerpolicy. r=hsivonen 2015-11-30 16:13:03 -08:00
Yoshi Huang
47c69d1edb Bug 1209162 - Create OriginAttributes subtypes. IGNORE IDL r=sicking. 2015-11-03 09:50:54 +08:00
Birunthan Mohanathas
ac37dec517 Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Henry
bd1e6e4208 Bug 1180088 - Use origin-based permission check on parent side for signed packaged web app. r=kanru. 2015-10-22 05:44:00 +02:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Nathan Froyd
a38cb8ff82 Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
Carsten "Tomcat" Book
59fa4c99cd Merge m-c to mozilla-inbound 2015-10-14 12:47:31 +02:00
Kan-Ru Chen
5f0cad7a68 Bug 1191740 - Factor out nsFrameLoader::GetNewTabContext. r=bholley 2015-10-14 10:52:07 +08:00
Steven Englehardt
ef29e42cc0 Bug 1191740 - Add originAttributes in TabContext. r=bholley 2015-10-14 10:52:06 +08:00
David Rajchenbach-Teller
208afad125 Bug 1212244 - Same-process sendAsyncMessage can now throw instead of OOM. r=smaug 2015-10-07 12:42:43 +02:00
Olli Pettay
1161cbda9a Bug 1209621 - Add a way to get the TabParent for the content-primary tab, r=mconley 2015-10-01 20:06:51 +03:00
Kit Cambridge
cfcdba2314 Bug 1209361 - Add missing includes to dom/base. r=mccr8 2015-09-28 21:31:56 -07:00
Kan-Ru Chen
109c869902 Bug 1186843 - Don't recreate message manager. r=smaug 2015-09-21 17:51:08 +08:00
Michael Layzell
a093510d49 Bug 1201190 - Part 3: Mark every consumer of GUARD_OBJECT as MOZ_RAII, r=ehsan 2015-09-12 16:53:33 -04:00
Andrea Marchesini
8cbd09f629 Bug 1203426 - Rename StructuredCloneIPCHelper to StructuredCloneData, r=smaug 2015-09-10 21:50:58 +01:00
Kan-Ru Chen
fe1960d0a5 Bug 1170894 - Implement nsIFrameLoader::SwitchProcessAndLoadURI. r=smaug 2015-09-03 13:21:21 +08:00
Andrea Marchesini
a2c814e845 Bug 1198795 - ipc/StructuredCloneUtils should be merged with StructuredCloneHelper, r=smaug 2015-09-02 17:20:30 +01:00
chunminchang
eec9848f27 Bug 1114507 - Part 1: Add/release the appId's refcnt if frame is in main process. r=kanru 2015-08-20 23:38:00 -04:00
Carsten "Tomcat" Book
bda1ee5c8e Backed out changeset e4e12583c280 (bug 1170894) for various mochitest testfailures on a CLOSED TREE 2015-09-01 09:39:25 +02:00
Kan-Ru Chen
4fc880f7e0 Bug 1170894 - Implement nsIFrameLoader::SwitchProcessAndLoadURI. r=smaug 2015-09-01 12:54:36 +08:00
Mike Conley
31222be0ea Bug 1141337 - Update nsIWebBrowserPersistable to allow subframe targeting for Save Frame As. r=jld
This alters nsIWebBrowserPersistable so that startPersistence takes an
outerWindowID. This allows us to target a particular subframe from
beneath an nsFrameLoader, which is useful when attempting to Save
Frame As a remote browser.
2015-08-06 10:44:16 -04:00
Ehsan Akhgari
5a13262766 Bug 1192252 - Add a helper RAII class for managing the cleanup in nsFrameLoader::SwapWithOtherLoader; r=smaug 2015-08-07 12:36:57 -04:00
Ehsan Akhgari
9e1ae0a6f8 Bug 1191491 - Do not dispatch an audio-playback notification when swapping browsers; r=smaug
We send a pagehide event during swapping docshell frame loaders, and
before this patch we would not be able to differentiate this event with
the one that we send when navigating away from a page, so we would
incorrectly dispatch an audio-playback notification indicating that
audio playback has stopped.  This patch adds a flag to the root docshell
when the frame loader swapping is in progress and disables the above
behavior when that flag is set.
2015-08-07 12:18:24 -04:00
Jed Davis
e32b5dab07 Bug 1101100 - Multiprocess-enable nsWebBrowserPersist. r=billm
The high-level overview is that the parts of nsWebBrowserPersist which
access the DOM have been factored out (as WebBrowserPersistLocalDocument)
and abstracted (nsIWebBrowserPersistDocument) such that they can be
implemented in the cross-process case using IPC.
2015-08-05 14:25:39 -07:00
Kan-Ru Chen
a21eac9f36 Bug 1190245 - Make frame script loading and browser-api initialization easier to follow. r=smaug
Load frame script and initialize browser-api at the end of (1) DocShell
creation (2) RemoteBrowser creation (3) SetRemoteBrowser
2015-08-04 11:10:50 +08:00
Kan-Ru Chen
7bbf0c3a4a Bug 1190245 - Make the MaybeCreateDocShell using code path easier to follow. r=smaug
Don't rely on MaybeCreateDocShell to set mRemoteFrame so we don't have
to call MaybeCreateDocShell in weird places. Instead we set mRemoteFrame
early in the nsFrameLoader constructor. This should still allow us to
switch default remoteness dynamically.
2015-08-04 11:10:50 +08:00
Kan-Ru Chen
cc3aedb320 Bug 1190245 - Separate mMessageManager creation and FrameScript loading. r=smaug 2015-08-04 11:10:49 +08:00
Robert O'Callahan
5bde6d4aaa Bug 1184842. Pass aOldValue to all mutation observers. r=peterv 2015-07-25 18:01:19 +12:00