Commit graph

80 commits

Author SHA1 Message Date
Adrian Wielgosik
c501e3beb0 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle

--HG--
extra : rebase_source : a48b7c72a0f7ede38c91149a04d5de53987736f1
2018-05-11 19:46:15 +02:00
Chris Peterson
71422dcaa9 Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L

--HG--
extra : source : c14655ab3df2c9b1465dd8102b9d25683359a37b
2018-04-28 12:50:58 -07:00
Boris Zbarsky
35d4bc91ec Bug 1444143 part 13. Remove nsIFrameLoader. r=mystor
MozReview-Commit-ID: 4LG8nIePsMH
2018-03-21 22:43:17 -04:00
Boris Zbarsky
e15f8f10ff Bug 1444143 part 12. Remove use of nsIFrameLoader from XPIDL files. r=mystor
MozReview-Commit-ID: 8pZ655SgrZ0
2018-03-21 22:43:17 -04:00
Boris Zbarsky
6011abc74a Bug 1444143 part 11. Remove unused nsIFrameLoaderOwner::GetFrameLoaderXPCOM. r=mystor
There are no JS implementations of nsIFrameLoaderOwner, so we can mark it builtinclass.

MozReview-Commit-ID: 5z2f6fUrqaS
2018-03-21 22:43:17 -04:00
Boris Zbarsky
ebf5282891 Bug 1444143 part 8. Remove nsIFrameLoader::LoadFrame. r=mystor
MozReview-Commit-ID: Ackil1mtVy0
2018-03-21 22:43:16 -04:00
Boris Zbarsky
909a57edd7 Bug 1444143 part 4. Remove nsIFrameLoader::GetDepthTooGreat. r=mystor
MozReview-Commit-ID: GIdz853oVd3
2018-03-21 22:43:16 -04:00
Boris Zbarsky
9cb6df0dac Bug 1444143 part 2. Remove nsIFrameLoader::GetDocShell. r=mystor
The change from "docShell" to "mDocShell" for the SetName call in the
OwnerIsMozBrowserFrame case in nsFrameLoader::MaybeCreateDocShell is a
drive-by correctness fix for a bug the rename of "docShell" to "parentDocShell"
caught: setting the name of our _parent_ docshell based on the name attr of our
owner makes no sense.

MozReview-Commit-ID: DwnWt8jTokV
2018-03-21 22:43:15 -04:00
Adrian Wielgosik
9dae626b64 Bug 659610 - Remove nsGenericHTMLElement::SetAttrHelper and related helper macros. r=qdot
The only remaining instance of NS_IMPL_BOOL_ATTR macro was expanded by hand.

MozReview-Commit-ID: DQ8fGGNTl3y

--HG--
extra : rebase_source : 9ab13bd3e0702b518f8ec8418f2a7a9861ad5062
2018-02-24 20:20:23 +01:00
Nika Layzell
a0d1f16079 Bug 1383876 - Part 1: Remove GroupedSHistory and Prerendering logic from C++ code, r=freesamael, r=smaug
MozReview-Commit-ID: 2aHA6NcQPGk
2018-01-12 17:52:52 -05:00
Andrew Swan
63c732760f Bug 1396399 - Clarify rules for applying activeTab permission to content scripts. r=kmag, r=bz
MozReview-Commit-ID: 9xPDX8Qk2iR
2017-11-04 21:06:20 -07:00
Nika Layzell
f1ac9bf744 Bug 1419597 - Part 18: Remove IsInnerWindow and IsOuterWindow methods, r=smaug
MozReview-Commit-ID: DAAm6tLubhJ
2017-11-23 13:12:13 -05:00
Kris Maglione
154e5011a0 Bug 1406278: Part 4 - Use subject principal as triggering principal in <iframe>/<frame> "src" attribute r=bz
MozReview-Commit-ID: AgxZmfRvfTR

--HG--
extra : rebase_source : 5663f54ae3d03870d38107e1703902df5ade4b10
2017-10-04 22:59:44 -07:00
Kris Maglione
4275cd1039 Bug 1406278: Part 1 - Pass subject principal to SetAttribute and friends. r=bz
In order to tailor certain security checks to the caller that is attempting to
load a particular piece of content, we need to be able to attach an
appropriate triggering principal to the corresponding requests. Since most
HTML content is loaded based on attribute values, that means capturing the
subject principal of the caller who sets those attributes, which means making
it available to AfterSetAttr hooks.

MozReview-Commit-ID: BMDL2Uepg0X

--HG--
extra : rebase_source : 25e438c243700a9368c393e40e3a6002d968d6c8
2017-10-09 14:33:38 -07:00
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Olli Pettay
c80e124562 Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap
--HG--
extra : rebase_source : 2bb600ed1ffd35c195617a7eb70d0ba847a46898
2017-09-25 18:09:26 +03:00
Andrew McCreight
7f7f149167 Bug 1395636 - Convert code to use NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED. r=peterv
MozReview-Commit-ID: DivJPerL5SF

--HG--
extra : rebase_source : 890df75914906a5d34e8af67f9fc3a4be239d2d6
2017-08-31 16:29:22 -07:00
Sebastian Hengst
2f7f455fa1 Backed out changeset 9306866e8df0 (bug 1395636) for build bustage. r=backout on a CLOSED TREE
--HG--
extra : amend_source : 20d028d6b971cf6a221dc2f1553687d6c074bdcb
2017-09-06 19:18:06 +02:00
Andrew McCreight
4d6e76dfcf Bug 1395636 - Convert code to use NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED. r=peterv
MozReview-Commit-ID: DivJPerL5SF

--HG--
extra : rebase_source : cb952cfc5600a163a5580438e5b0177595689dab
2017-08-31 16:29:22 -07:00
Nicholas Nethercote
58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00
Kirk Steuber
99a80af5db Bug 1365092 - Move side effects of SetAttr, UnsetAttr, and ParseAttribute functions to BeforeSetAttr and AfterSetAttr r=bz
This is necessary to facilitate the transition to cloning attributes instead of reparsing them.

MozReview-Commit-ID: Gyd1tD6ldly

--HG--
extra : rebase_source : 777cfed750c95c448f953a6ec98026481997e227
2017-06-07 10:28:20 -07:00
btian
a3d3d85da1 Bug 1299390 - part 1: Remove BrowserElementAudioChannel. r=alwu,baku
MozReview-Commit-ID: BdRE9biPn5r

--HG--
extra : rebase_source : 53dd4eecac1512a235b340e181d2a5ecb4d88540
2017-05-18 09:31:00 +08:00
Kirk Steuber
e74f1cd513 Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr r=bz
In order to facilitate the movement of code with side-effects called by Element::SetAttr to Element::BeforeSetAttr and Element::AfterSetAttr, Element::AfterSetAttr should have access to the old value of the attribute. This includes information about whether there was previously a value set or not.

Accomplishing this involved passing an additional argument through functions that find and change the old attribute value in order to ensure that we can differentiate between an empty old value and an absent old value (attribute was not set).

Note that while I tried to ensure that accurate values (and their absence) are reported to Element::AfterSetAttr, I largely ignored SVG. While the old value reported for SVG values should be however accurate the value already being reported to SetAttrAndNotify was, SVG elements do not currently report unset values properly because they will never pass a null pointer to SetAttrAndNotify.

MozReview-Commit-ID: K1mha8CNFZP

--HG--
extra : rebase_source : 42776eb01451d371e4aebcc17fe3dd112c8d268b
2017-05-18 14:09:01 -07:00
Kirk Steuber
7fdb378650 Bug 1359556 - Optimize cloneNode by preinitializing attribute and child arrays r=bz
Currently, attribute and child arrays (implemented in dom/base/nsAttrAndChildArray.h) start out empty. When cloning, the array ends up being resized multiple times in order to add the attributes and children that are being cloned from the original node. This would be quicker if the array was initialized to the correct size in the first place so that resizes are not necessary.

However, preallocating space for children is only necessary when performing a deep clone. Therefore, an additional parameter is being added to the Clone, CopyInnerTo, and CloneDocHelper methods to indicate whether preallocation of children should happen. Attributes are copied either way, so that part of the array is preallocated in both cases.

MozReview-Commit-ID: 3iVezeAKXnI

--HG--
extra : rebase_source : 9c3deec6d7aafd6411044d623d4863637b45fd58
2017-04-20 12:57:48 -07:00
Bobby Holley
ebddba2ae4 Bug 1340333 - Eagerly compute whether a frame is really a browser. r=smaug
MozReview-Commit-ID: Gm0oYaSKpUY
2017-02-16 21:57:50 -08:00
Bobby Holley
0f1312abd1 Bug 1335303 - Explicitly set up the bool var cache for BrowserFramesEnabled. r=smaug 2017-02-08 17:04:47 -08:00
Ehsan Akhgari
eac76d9772 Bug 1310845 - Remove support for mozapp iframes; r=fabrice,jryans,baku,mcmanus
This patch removes support for mozapp iframes, leaving support for
mozbrowser iframes intact.  Some of the code has been rewritten in order
to phrase things in terms of mozbrowser only, as opposed to mozbrowser
or app.  In some places, code that was only useful with apps has been
completely removed, so that the APIs consumed can also be removed.  In
some places where the notion of appId was bleeding out of this API, now
we use NO_APP_ID.  Other notions of appId which were restricted to this
API have been removed.
2016-11-16 09:13:38 -05:00
Carsten "Tomcat" Book
3eacc680db Backed out changeset 7d1f7dd996f7 (bug 1310845) 2016-11-16 14:50:44 +01:00
Ehsan Akhgari
cb369370b3 Bug 1310845 - Remove support for mozapp iframes; r=fabrice,jryans,baku,mcmanus
This patch removes support for mozapp iframes, leaving support for
mozbrowser iframes intact.  Some of the code has been rewritten in order
to phrase things in terms of mozbrowser only, as opposed to mozbrowser
or app.  In some places, code that was only useful with apps has been
completely removed, so that the APIs consumed can also be removed.  In
some places where the notion of appId was bleeding out of this API, now
we use NO_APP_ID.  Other notions of appId which were restricted to this
API have been removed.
2016-11-15 18:31:46 -05:00
Michael Layzell
a553fdd757 Bug 1303196 - Part 4: Merge mFrameLoader and mOpener into mFrameLoaderOrOpener, r=smaug
MozReview-Commit-ID: DuJRM5KsGhb
2016-10-27 15:53:35 -04:00
Michael Layzell
f9eea2d135 Bug 1303196 - Part 2: Connect the DocGroup and TabGroup objects to nsGlobalWindow and nsDocument, ensuring that Opener is set early enough that it is correct, r=smaug
MozReview-Commit-ID: 3rZfLw3dXkF
2016-10-27 15:53:35 -04:00
Ehsan Akhgari
4a51ebacfa Bug 1310378 - Remove support for mozwidget; r=baku 2016-10-17 13:15:36 -04:00
Boris Zbarsky
3f10f5ed57 Bug 1308287 part 1. Change [NeedsSubjectPrincipal] to only do the Maybe thing for interfaces that can be exposed to workers. r=baku
The idea is to not make consumers think about whether the principal exists or
not when the caller knows for sure that it does.

The substantive changes are in dom/bindings, nsHTMLDocument::SetDesignMode, and
around the CanUseStorage bits.  Everything else is pretty mechanical.
2016-10-10 21:07:48 -04:00
Andrea Marchesini
0d3521f59a Bug 1306241 - Use NeedsSubjectPrincipal in dom/html/* - part 1, r=ehsan 2016-10-03 10:34:14 +02:00
J. Ryan Stinnett
b7ca8b1d80 Bug 1301514 - Destroy browser API frame scripts during swap. r=kanru
When swapping content from <iframe mozbrowser> to <xul:browser>, we now stop the
frame scripts that implement the content side of the browser API since they are
no longer needed and can cause issues if they remain active.

MozReview-Commit-ID: JrecxA4MI93

--HG--
extra : rebase_source : cc68b975c7d82035410a647ff66eab130055ed04
2016-09-08 16:00:12 -05:00
Nicholas Nethercote
ca40b738e4 Bug 1294620 - Use infallible XPIDL attribute getters more. r=erahm.
This makes a lot of code more compact, and also avoids some redundant nsresult
checks.

The patch also removes a handful of redundant checks on infallible setters.

--HG--
extra : rebase_source : f82426e7584d0d5cddf7c2524356f0f318fbea7d
2016-08-12 15:19:29 +10:00
Michael Layzell
aa89e8fd55 Bug 1293001 - Part 1: Change the BinaryName of nsIFrameLoaderOwner::frameLoader (which overloaded another virtual method) to FrameLoaderXPCOM, r=froydnj
MozReview-Commit-ID: Db3z2DP5qba
2016-08-11 15:49:39 -04:00
Fabrice Desré
f855149768 Bug 1284455 - Remove the System Messages API, Gecko part r=me
MozReview-Commit-ID: 1mhzddSLkuu

--HG--
extra : rebase_source : f230538d50f7c944825e1833c97ee0f56ecb86f8
2016-04-20 19:04:13 +02:00
Trevor Saunders
72bac46477 bug 1271436 - use nsIDocShellTreeItem::GetWindow() more r=smaug 2016-05-17 18:16:07 -04:00
J. Ryan Stinnett
013ba36705 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
J. Ryan Stinnett
a6d2c487b5 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
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Andrea Marchesini
52e65f89d8 Bug 1214148 - patch 1 - propagation from the nested iframe back to the toplevel iframe, r=alwu 2015-12-11 11:17:33 -05:00
Carsten "Tomcat" Book
cccfedda81 Backed out changeset afe3d65b74b6 (bug 1214148) on developers request for causing regressions 2015-12-15 14:45:06 +01:00
Andrea Marchesini
7271d1d622 Bug 1214148 - patch 1 - propagation from the nested iframe back to the toplevel iframe, r=alwu 2015-12-11 11:17:33 -05:00
Phil Ringnalda
631f58c4f9 Back out 3 changesets (bug 1214148) for b2g test_browserElement_inproc_AudioPlayback.html, test_browserElement_oop_AudioChannel.html, etc. failures
CLOSED TREE

Backed out changeset e716d9ac93d7 (bug 1214148)
Backed out changeset 5f693237c8c1 (bug 1214148)
Backed out changeset 3a4865d79416 (bug 1214148)
2015-12-09 18:19:33 -08:00
Andrea Marchesini
f342b66a2e Bug 1214148 - patch 1 - propagation from the nested iframe back to the toplevel iframe, r=alwu 2015-12-09 16:46:25 -05:00
Nathan Froyd
01583602a9 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

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Boris Zbarsky
78a7f7fb69 Bug 1183491. Null-check the document we get from our contentWindow in the contentDocument getter, because apparently it can end up null. r=bkelly 2015-07-30 13:55:16 -04:00
Birunthan Mohanathas
a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00