Commit Graph

59 Commits

Author SHA1 Message Date
Masayuki Nakano
dbcabe5901 Bug 1540990 - Get rid of unnecessary nsIPresShell.h inclusions r=emilio
A lot of files include `nsIPresShell.h` even though currently they don't
need it.  This patch removes the unnecessary inclusions.

Differential Revision: https://phabricator.services.mozilla.com/D25744
2019-04-04 00:19:48 +00:00
Razvan Maries
5e691f8a46 Backed out changeset 3b94c20ba873 (bug 1540990) for build bustages. CLOSED TREE 2019-04-04 02:44:00 +03:00
Masayuki Nakano
0fd36d1719 Bug 1540990 - Get rid of unnecessary nsIPresShell.h inclusions r=emilio
A lot of files include `nsIPresShell.h` even though currently they don't
need it.  This patch removes the unnecessary inclusions.

Differential Revision: https://phabricator.services.mozilla.com/D25744
2019-04-03 23:29:38 +00:00
Masayuki Nakano
5b1ecc8b12 Bug 1540015 - part 1: Make Document.h stop including nsIPresShell.h r=smaug
If `Document::GetShell()` returns `PresShell*` rather than `nsIPresShell`, it's
a good step to deCOMTaminate `PresShell`.

This patch makes `Document.h` stop including `nsIPresShell.h` since
`nsIPresShell.h` includes `Document.h` indirectly and that causes bustage
when we make `Document::GetShell()` return `PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25332
2019-03-29 15:11:04 +00:00
Dorel Luca
6cd4166b18 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano
12b497174b Bug 1540015 - part 1: Make Document.h stop including nsIPresShell.h r=smaug
If `Document::GetShell()` returns `PresShell*` rather than `nsIPresShell`, it's
a good step to deCOMTaminate `PresShell`.

This patch makes `Document.h` stop including `nsIPresShell.h` since
`nsIPresShell.h` includes `Document.h` indirectly and that causes bustage
when we make `Document::GetShell()` return `PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25332
2019-03-29 12:12:20 +00:00
Christoph Kerschbaumer
5c9ea002ed Bug 1529893: Set correct CSP within nsWindowWatcher. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D25260
2019-03-28 19:20:00 +00:00
meandave
000f482925 Bug 1522848 - Add Lock Aspect Ratio feature. r=mconley,jmathies.
***
Bug 1522848 - Smoothing out Lock Aspect Ratio feature r?mconley.

Differential Revision: https://phabricator.services.mozilla.com/D20713
2019-03-18 20:07:31 +00:00
Christoph Kerschbaumer
bd82a2ed63 Bug 1518454: Part 1, backend changes, add CSP to loadURIOptions dictionary and pass CSP explicitly from frontend to docshell. r=bz 2019-02-21 16:00:32 +01:00
Thomas Nguyen
d13c22ef47 Bug 1517703 - Part 1 - Implement ReferrerInfo class r=smaug
The class contains original full referrer and referrer policy will be
applied to the referrer.

Differential Revision: https://phabricator.services.mozilla.com/D17923
2019-02-12 19:35:32 +00:00
Mike Conley
0d5139a916 Bug 1519893 - Add alwaysOnTop chrome-only window feature for Windows. r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D16486
2019-01-15 22:29:59 +00:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Kyle Machulis
8e9467964d Bug 1497995 - Make URI a constructor argument of nsDocShellLoadState; r=bzbarsky
We'll always need a URI for DocShellLoadState, and it should only
change is special circumstances. Construct the object with it, and
then follow up in Bug 1515433 for more cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D13490
2018-12-21 20:17:43 +00:00
Andrea Marchesini
ab2f923d5e Bug 1513895 - Unify PopupBlocker algorithm in 1 single file, r=smaug 2018-12-16 10:21:16 +01:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Jonathan Kingston
1ec5d5b19b Bug 1490257 - Add in asserts for missing triggeringPrincipal. r=ckerschb
Depends on D10884

Differential Revision: https://phabricator.services.mozilla.com/D10885
2018-11-05 14:03:28 +00:00
Jonathan Kingston
03611d5588 Bug 1490257 - Add triggeringPrincipal to missing cpp loads. r=ckerschb
Depends on D10883

Differential Revision: https://phabricator.services.mozilla.com/D10884
2018-11-05 14:03:47 +00:00
Gurzau Raul
fb23268fea Backed out changeset 523ff2753dea (bug 1490257) for causing Bug 1503757 a=backout 2018-11-01 15:27:30 +02:00
Jonathan Kingston
b25eb46164 Bug 1490257 - Add asserts into loadURI where we imply SystemPrincipal. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D10221
2018-10-31 18:00:40 +00:00
Kyle Machulis
05a190dd1a Bug 1492648 - Move from nsDocShellLoadInfo to nsDocShellLoadState; r=bz, nika
Creates the nsDocShellLoadState object, which is basically
nsDocShellLoadInfo plus a few extra fields to make it usable as a
single argument to nsDocShell::LoadURI (and eventually
nsDocShell::InternalLoad).

Subframe history handling is a huge logic block in
nsDocShell::LoadURI, which is only used on history loads. This patch
also extracts the logic out into its own function to make the body of
LoadURI clearer.
2018-10-29 17:13:29 -07:00
Kyle Machulis
e37f01f866 Backed out changeset fa8487b94a38 due to a=BUSTAGE on comm-central 2018-10-29 12:28:02 -07:00
Kyle Machulis
8416fded30 Bug 1492648 - Move from nsDocShellLoadInfo to nsDocShellLoadState r=bzbarsky,nika
Creates the nsDocShellLoadState object, which is basically
nsDocShellLoadInfo plus a few extra fields to make it usable as a
single argument to nsDocShell::LoadURI (and eventually
nsDocShell::InternalLoad).

Subframe history handling is a huge logic block in
nsDocShell::LoadURI, which is only used on history loads. This patch
also extracts the logic out into its own function to make the body of
LoadURI clearer.

Differential Revision: https://phabricator.services.mozilla.com/D6944
2018-10-26 03:50:37 +00:00
Narcis Beleuzu
28f99c035d Backed out changeset 8dd09fad1f35 (bug 1492648) for bc failures on browser_auto_close_window.js 2018-10-19 10:11:33 +03:00
Kyle Machulis
dc2a795ff8 Bug 1492648 - Move from nsDocShellLoadInfo to nsDocShellLoadState r=bzbarsky,nika
Creates the nsDocShellLoadState object, which is basically
nsDocShellLoadInfo plus a few extra fields to make it usable as a
single argument to nsDocShell::LoadURI (and eventually
nsDocShell::InternalLoad).

Subframe history handling is a huge logic block in
nsDocShell::LoadURI, which is only used on history loads. This patch
also extracts the logic out into its own function to make the body of
LoadURI clearer.

Differential Revision: https://phabricator.services.mozilla.com/D6944
2018-10-18 22:14:54 +00:00
Dorel Luca
a5b6424b63 Backed out changeset 8d7987ea4fb1 (bug 1490257) for causing android failures. CLOSED TREE 2018-10-15 14:39:00 +03:00
Jonathan Kingston
8ccca3858d Bug 1490257 - Add asserts and remove implied system triggering principal code r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D8368
2018-10-15 06:29:45 +00:00
Andrew McCreight
4e2416b46f Bug 1493276 - Statically prevent CallQueryInterface to a base class r=froydnj
If a class A is derived from a class B, then an instance of A can be
converted to an instance of class B via a static cast, so QI is not
needed. QIs are slower than static casts.

TestCallTemplates seems to be testing that CallQueryInterface compiles
even if the first argument's class is only ambiguously castable to
nsISupports, so I changed the second argument to be a class unrelated
to the concrete class.

I also removed some useless null checks on the return value of new.

Differential Revision: https://phabricator.services.mozilla.com/D6838
2018-09-27 14:59:55 +00:00
Boris Zbarsky
432623645c Bug 1486932 part 1. Stop using nsIDOMStorage in xpidl APIs. r=mccr8 2018-08-31 13:56:54 -04:00
Kris Maglione
09aa6cec83 Bug 1484496: Part 3 - Fix nsISimpleEnumerator implementations with broken contracts. r=froydnj
The nsISimpleEnumerator contract specifies that GetNext() returns
NS_ERROR_FAILURE when iteration is complete. Several implementations, however,
either return NS_OK and a null result, or return some other error code, when
iteration is complete.

Since my initial implementation of the JS iteration stubs rely on the
contract-defined behavior of GetNext(), these need to be fixed before it can
land.

Differential Revision: https://phabricator.services.mozilla.com/D3726
2018-08-18 18:28:10 -07:00
Kris Maglione
f67d651497 Bug 1484496: Part 2 - Add common base class for all nsISimpleEnumerator implementations. r=froydnj
In order to allow JS callers to use nsISimpleEnumerator instances with the JS
iteration protocol, we'll need to additional methods to every instance. Since
we currently have a large number of unrelated implementations, it would be
best if they could share the same implementation for the JS portion of the
protocol.

This patch adds a stub nsSimpleEnumerator base class, and updates all existing
implementations to inherit from it. A follow-up will add a new base interface
to this class, and implement the additional functionality required for JS
iteration.

Differential Revision: https://phabricator.services.mozilla.com/D3725
2018-08-18 14:22:47 -07:00
Henri Sivonen
7067da0717 Bug 1402247 - Use encoding_rs for XPCOM string encoding conversions. r=Nika,erahm,froydnj.
Correctness improvements:

 * UTF errors are handled safely per spec instead of dangerously truncating
   strings.

 * There are fewer converter implementations.

Performance improvements:

 * The old code did exact buffer length math, which meant doing UTF math twice
   on each input string (once for length calculation and another time for
   conversion). Exact length math is more complicated when handling errors
   properly, which the old code didn't do. The new code does UTF math on the
   string content only once (when converting) but risks allocating more than
   once. There are heuristics in place to lower the probability of
   reallocation in cases where the double math avoidance isn't enough of a
   saving to absorb an allocation and memcpy.

 * Previously, in UTF-16 <-> UTF-8 conversions, an ASCII prefix was optimized
   but a single non-ASCII code point pessimized the rest of the string. The
   new code tries to get back on the fast ASCII path.

 * UTF-16 to Latin1 conversion guarantees less about handling of out-of-range
   input to eliminate an operation from the inner loop on x86/x86_64.

 * When assigning to a pre-existing string, the new code tries to reuse the
   old buffer instead of first releasing the old buffer and then allocating a
   new one.

 * When reallocating from the new code, the memcpy covers only the data that
   is part of the logical length of the old string instead of memcpying the
   whole capacity. (For old callers old excess memcpy behavior is preserved
   due to bogus callers. See bug 1472113.)

 * UTF-8 strings in XPConnect that are in the Latin1 range are passed to
   SpiderMonkey as Latin1.

New features:

 * Conversion between UTF-8 and Latin1 is added in order to enable faster
   future interop between Rust code (or otherwise UTF-8-using code) and text
   node and SpiderMonkey code that uses Latin1.

MozReview-Commit-ID: JaJuExfILM9
2018-08-14 14:43:42 +03:00
Kyle Machulis
a8efea862f Bug 1472087 - deCOMtaminate nsIDocShellLoadInfo; r=nika
Change all references from nsIDocShellLoadInfo to nsDocShellLoadInfo

MozReview-Commit-ID: AyKlZUtSEDD
2018-07-11 20:19:14 -07:00
Adrian Wielgosik
93eb294385 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle
2018-05-11 19:46:15 +02:00
Xidorn Quan
fd92245e09 Bug 1457912 - Don't disable scrollbars when the window feature isn't listed explicitly. r=smaug
MozReview-Commit-ID: CB0PVroA86L
2018-05-07 10:40:34 +10:00
David Major
dbe6a0b88c Bug 1448208: Use CheckedInt for overflow check in nsWindowWatcher::SizeOpenedWindow. r=froydnj 2018-03-23 13:02:49 -04:00
Nathan Froyd
0875c0462b Bug 1447529 - remove USEWEAKREFS code from nsWindowWatcher; r=smaug
It's been over fifteen years, and we haven't figured out how to use
weakrefs in this code.  We might as well go ahead and delete this.
2018-03-21 07:31:15 -04:00
Hiroyuki Ikezoe
b1da8534e8 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr
2018-02-21 07:00:10 +09:00
Adrian Wielgosik
506b6d8a4b Bug 1437177 - Remove nsIDOMModalContentWindow. r=bz
The implementation was removed in bug 1374460.

MozReview-Commit-ID: 7RNmYHScVCA
2018-02-09 21:51:33 +01:00
Thomas Nguyen
ac7c3454f3 Bug 1420702 - Propagate referrer policy when creating window from pinned tab r=ckerschb,smaug
MozReview-Commit-ID: 1kMssKbAm1l
2017-11-30 21:42:05 +08:00
Nika Layzell
20ee9a4927 Bug 1419597 - Part 18: Remove IsInnerWindow and IsOuterWindow methods, r=smaug
MozReview-Commit-ID: DAAm6tLubhJ
2017-11-23 13:12:13 -05:00
Nika Layzell
d8c117bc28 Bug 1414974 - Part 2: Switch many consumers to nsGlobalWindow{Inner,Outer}, r=smaug
This is a large patch which tries to switch many of the external consumers of
nsGlobalWindow to instead use the new Inner or Outer variants.

MozReview-Commit-ID: 99648Lm46T5
2017-11-09 10:44:47 -05:00
Masatoshi Kimura
e29c3d5a3e Bug 1313150 - Remove |weak| parameter from nsIMutableArray methods. r=froydnj
MozReview-Commit-ID: 7JoD4VYzZp3
2017-10-21 23:53:02 +09:00
Michael Layzell
0bcd7e6643 Bug 1372662 - Part 1: Never copy sessionstorage into noopener windows, r=smaug 2017-08-29 13:18:11 -04:00
Blake Kaplan
12c16b4f8c Bug 1374460 - Remove internal code that used to be used for showModalDialog. r=smaug
MozReview-Commit-ID: 4QuUpvbOiOA
2017-07-13 17:20:10 -07:00
Nicholas Nethercote
d9bf389346 Bug 1382099 - Remove MOZ_WIDGET_GONK from toolkit/. r=glandium. 2017-07-19 18:38:48 +10:00
Andrew McCreight
87e9ff3014 Bug 1379786, part 1 - Remove dead code related to the security manager. r=mrbkap
Also, one unused include of nsIProgrammingLanguage, which is unrelated.

MozReview-Commit-ID: LJf2NSwmaYG
2017-07-07 15:59:29 -07:00
Michael Layzell
389ff99e9f Bug 1368046 - Part 2: Propagate OriginAttributes across processes for RecvCreateWindowInDifferentProcess, r=smaug
MozReview-Commit-ID: 8ok4DI9zgfR
2017-06-07 12:54:57 -04:00
Ehsan Akhgari
15aee0c599 Bug 1356922 - Part 1: Replace the next TabParent global pointer with per-window/tab next TabParent ID; r=billm,mconley
This patch replaces the usage of sNextTabParent pointer to store the next
PBrowser parent actor to be used by the next frame loader with the
following information:

  * In the case where the content JS has requested a new tab, the ID of the
    next TabParent will be stored on the <xul:browser> element.
  * In the case where the content JS has requested a new window, the ID of
    the next TabParent will be stored on the created nsXULWindow.
2017-04-24 14:18:29 -04:00
Xidorn Quan
6eb87266b6 Bug 1345696 part 1 - Lots of fixup for the next patch. r=heycam
The next patch moves nsCSSFontFaceRule into a separate header, which
somehow affects lots of header dependencies. I'm not completely sure
why this happens, though.

MozReview-Commit-ID: KuXbsaX0NUd
2017-03-28 20:05:12 +11:00
Tim Huang
9fcdb733a7 Bug 1330882 - Part 4: Making the window.open() can only open rounded windows and the inner window will be automatically rounded after setting size through innerWidth/Height and outerWidth/Height when fingerprinting resistance is enabled. r=smaug
This patch makes the size of inner windows will be automatically rounded for
either window.open() with window features or setting window size through
innerWidth/Height and outerWidth/Height when fingerprinting resistance is
enabled. If the given value is greater the maximum available rounded size, then
it will be set to the maximum value. Otherwise, the size will be set to the
nearest upper 200x100.

This patch also adds one helper function in nsContentUtils for calculating the
rounded window dimensions.

MozReview-Commit-ID: J2r3951vuNN
2017-03-29 15:43:56 +08:00