Commit Graph

438 Commits

Author SHA1 Message Date
Edgar Chen
6890b4a35b Bug 1419310 - Part 1: Remove nsContentUtils::GetElementDefinitionIfObservingAttr; r=smaug
MozReview-Commit-ID: 9yMrwDC0kYr
2017-11-23 00:09:03 +08:00
Nika Layzell
c6778353b6 Bug 1419090 - Remove StableStateEventTarget, r=smaug
MozReview-Commit-ID: 7dYAkp9bEGQ
2017-11-20 17:55:33 -05:00
Jan de Mooij
b68f1db100 Bug 1417895 part 1 - Move ParseJavascriptVersion from nsContentUtils to ScriptLoader.cpp. r=bz 2017-11-18 23:16:05 +01:00
Edgar Chen
a88956b4ad Bug 1396620 - Part 1: Remove created callback for custom elements; r=jdai,smaug
MozReview-Commit-ID: IDovq3OZwgy
2017-10-13 23:36:54 +08:00
John Dai
4833c9a8ec Bug 1406325 - Part 5: Implement try to upgrade. f=echen, r=smaug 2017-11-14 19:25:00 +08:00
John Dai
c0e69c86ed Bug 1406325 - Part 4: Use mType for LookupCustomElementDefinition and also removing parts of v0. f=echen, r=smaug 2017-11-14 19:23:00 +08:00
Neil Deakin
e00d6436d2 Bug 380637, move reserved key checking into ContentUtils so that it can be shared with menu accesskey checks , r=felipe 2017-11-09 18:42:39 -05:00
Bevis Tseng
48f2387039 Bug 1409985 - Don't fire DOMEvent during StableState. r=smaug 2017-10-19 18:20:31 +08:00
Yoshi Huang
5664871e42 Bug 1407498 - Don't query loadingprincipal in common case. r=baku
We queried 'loadingprincipal' attribute on the common call path, however
this should be queried if it's loaded by System Principal.

Also rename loadingprincipal to triggeringprincipal
2017-10-24 10:13:31 +08:00
Kris Maglione
ae7452e40e Bug 1406278: Part 2b - Use subject principal as triggering principal in <img> "src" attribute. r=bz
MozReview-Commit-ID: DrblTjP99WJ
2017-10-02 20:28:32 -07:00
Nicholas Nethercote
7dbfdaf890 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
2017-10-03 09:05:19 +11:00
Olli Pettay
8032dc8d09 Bug 1405821 - Move microtask handling to CycleCollectedJSContext, r=baku 2017-10-05 18:34:12 +03:00
Valentin Gosu
7a72de7108 Bug 1403926 - Add pref for PerformanceNavigationTiming r=baku
MozReview-Commit-ID: 9f6fcCk8mh
2017-10-04 02:48:33 +02:00
Nika Layzell
5427e78468 Bug 1399626 - Part 3: Add a variant of ComparePoints to nsContentUtils which takes RangeBoundaries, r=masayuki
This is a temporary implementation, which will hopefully be fleshed out in the
future to not require calling the `Offset()` methods. Currently it just
dispatches to the existing implementation using Container() and Offset().

MozReview-Commit-ID: 9Zssbhzrnz3
2017-10-02 11:57:59 -04:00
John Dai
60db6a6216 Bug 1121994 - Implement adopted callback for custom elements. r=smaug 2017-10-02 00:42:00 -04:00
Gabor Krizsanits
056563e620 Bug 1404383 - Delay nsStringBundle preloading in content processes. r=smaug
Early in the startup the channel creation might fail,
in nsStringBundle load and any further attempts are prevented which
leads to broken ocaization support for the process. Let's wait until
the child process learns about the chrome URLs registered on the parent
side with the preloads.
2017-09-29 17:54:06 +02:00
Xidorn Quan
89a8ef8224 Bug 1403024 part 1 - Add nsContentUtils::SchemeIs helper function. r=bholley
MozReview-Commit-ID: 2NVc5QJSjl
2017-09-26 10:21:01 +10:00
Nicholas Nethercote
9fda5528d2 Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ
2017-09-26 08:33:21 +10:00
Jessica Jong
01630916ea Bug 1334043 - Part 2: Make nsContentUtils::EnqueueLifecycleCallback static. r=smaug
We make nsContentUtils::EnqueueLifecycleCallback static so that it can be
called without a window object. To achive this, we also make
CustomElementReaction not taking a CustomElementRegistry in the constructor,
as it can call Upgrade statically.

MozReview-Commit-ID: 7xUvK0q7Eri
2017-09-26 13:56:00 +08:00
Yoshi Huang
1a9fd022da Bug 1376971 - Part 2: add GetLoadingPrincipalForXULNode. r=baku
Refactor GetContentPolicyTypeForUIImageLoading to have another function
called GetLoadingPrincipalForXULNode.
2017-09-26 12:41:19 +08:00
John Dai
3453622848 Bug 1301024 - Part 2: Implement create an element steps. r=smaug 2017-09-25 01:33:00 -04:00
Kershaw Chang
c4c64cf6ee Bug 1247843 - Part 3: Set request context ID to the http channel created in imgLoader::LoadImage. r=baku
In order to let necko postpone the load of favicon, we have to set request context ID to the http channel that is created to load favicon.
This patch starts with passing a request context ID to nsContentUtils::LoadImage and makes other necessary changes to set the request context ID to the channel.
2017-09-20 20:09:00 -04:00
Ben Kelly
f5bc2bd861 Bug 1336364 P6 Ensure that we don't control a document if its window cannot access storage. r=asuth 2017-09-20 09:24:07 -07:00
Josh Matthews
64ccd9b6c6 Bug 1397971 - Share strings in URLDataValue with Rust. r=heycam 2017-09-15 13:11:37 -07:00
Nicholas Nethercote
038eda3f17 Bug 1395828 (part 4) - Remove nsIParserService/nsParserService. r=mrbkap.
It a stateless wrapper around static methods in nsHTMLTags and nsHTMLElement,
and hence an unnecessary layer of indirection that just adds complexity and
slowness. This patch removes it, cutting almost 300 lines of code.

This requires making nsElementTable.h an exported header, to expose the
nsHTMLElement methods.
2017-09-05 20:19:06 +10:00
Kris Maglione
fd54e6524a Bug 1396449: Part 2 - Use atoms to test WebExtension permissions. r=krizsa
The extension policy services uses atoms internally for permission names, so
using them directly rather than strings is considerably cheaper.

MozReview-Commit-ID: Io8EuOXHKVy
2017-09-03 18:51:02 -07:00
Sebastian Hengst
aad3070d44 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: ES9rKhiQo10
2017-09-01 10:38:51 +02:00
Honza Bambas
a90d5297b3 Bug 1395525 - Make all changes landed as part of tracker request tailing preferrable. r=dragana 2017-08-31 06:07:00 -04:00
Alexandre Poirot
d816033b34 Bug 1382377 - Make Console API be a no-op until DevTools are opened at least once. r=baku,jdescottes
MozReview-Commit-ID: 4xuzRQKH3Vg
2017-08-08 16:29:34 +02:00
Ehsan Akhgari
f27510b859 Bug 1392891 - Part 3: Avoid creating live nsContentList objects in nsContentUtils::GenerateStateKey(); r=smaug 2017-08-29 07:30:26 -04:00
Sebastian Hengst
3ce355b1c5 merge mozilla-central zo mouilla-inbound. r=merge a=merge on a CLOSED TREE 2017-08-28 17:10:37 +02:00
Jessica Jong
db69ab73df Bug 1334051 - Part 2: Invoke attributeChangedCallback only if attribute name is in the observed attribute list. f=jdai, r=smaug
We call attributeChangedCallback in two cases:
1. When any of the attributes in the observed attribute list has changed,
   appended, removed, or replaced.
2. When upgrading an element, for each attribute in element's attribute list
   that is in the observed attribute list.

MozReview-Commit-ID: LKUY5ibp9RI
* * *
Bug 1334051 - Part 3: Optimize attributeChanged callbacks. r=smaug
2017-08-27 23:25:00 -04:00
Bobby Holley
c2ce4d2e27 Bug 1393791 - Stop unbinding native-anonymous content off a script runner. r=emilio
The failure mode in the attached crashtest is an inconsistency in the flattened
tree. Specifically, we null out mVideoControls in an nsVideoFrame, but defer
the UnbindFromTree call on that NAC element, which measn that its mParent still
points to the nsVideoFrame's mContent. Because all this stuff runs off of script
runners, and the anonymous content destroyer is not guaranteed to run before
other potential script runners, we end up running arbitrary script while the
tree mismatch exists. This script calls back into ProcessPendingRestyles, which
causes trouble.

We could build a separate deferral mechanism, but it's not clear that we actually
need to defer the unbind anymore. The deferred unbind was added in bug 489008,
which predated a lot of simplifications in layout/dom interaction.

MozReview-Commit-ID: 1JYAhiXKVJC
2017-08-27 15:29:36 -07:00
Emilio Cobos Álvarez
fd89258457 Bug 1394935: Introduce nsContentUtils::CommonFlattenedTreeAncestorForStyle. r=bholley
MozReview-Commit-ID: GThZUOIe30o
2017-08-31 09:42:24 +02:00
Emilio Cobos Álvarez
04dfb0191d Bug 1394935: Introduce ContentIsFlattenedTreeDescendantOfForStyle. r=bholley
MozReview-Commit-ID: 69w9nnRJsIy
2017-08-31 19:42:06 +02:00
Michael Layzell
1f743a917c Bug 1384238 - Annotate BHR hangs which occur while there is a pending input event, r=smaug
MozReview-Commit-ID: HRPMw2IfEKB
2017-08-15 16:36:28 -04:00
Masayuki Nakano
4ca6e37750 Bug 1388004 - part1: Make nsContentUtils::GetHTMLEditor() return HTMLEditor* rather than nsIEditor* r=smaug
nsContentUtils::GetHTMLEditor() currently returns nsIEditor* since editor of doc shell may be any type of editors such as TextEditor or editor object which is implemented by JS.  However, nsIEditor is now a builtin class.  So, it can return HTMLEditor.

MozReview-Commit-ID: 3YoFOplZa7W
2017-08-07 16:33:59 +09:00
Wes Kocher
399a13fd39 Merge inbound to central, a=merge
MozReview-Commit-ID: GArkKmOFIVH
2017-08-11 13:15:33 -07:00
Tim Huang
b9bdf1a070 Bug 1369309 - Part 3: Making the media statistics reports a spoofed value when fingerprinting resistance is enabled. r=cpearce, r=arthuredelstein
This patch makes the media statistics report values with a fixed frames per second
and a dynamic dropped ratio when resistance fingerprinting is enabled. The dropped
rate is decided by the video resolution that it will report a fixed dropped rate
when the video resolution is greater than 480p. And It will report a zero dropped
rate if the video is below or equal to 480p. In addition, it adds three new prefs
that allow us to change the value of frames per second, the dropped ratio and the
threshold of target video resolution. The three prefs are
'privacy.resistFingerprinting.video_frames_per_sec', 'privacy.resistFingerprinting.video_dropped_ratio'
and 'privacy.resistFingerprinting.target_video_res'. The default values of them
are 30, 5 and 480, which means 30 frames per second, 5 percent dropped ratio and
480p.

This also adds a new helper function 'nsContentUtils::ShouldResistFingerprinting(nsIDocument* aDoc)'
for checking whether fingerprinting resistance is enabled for a given docuemnt.
If it is a chrome document, this function will indicate that fingerprinting
resistance is not enabled regardless of the pref 'privacy.resistFingerprinting'.
If it is a content document, the result will depend on the pref.

MozReview-Commit-ID: FbSuRq6Zdnn
2017-07-17 15:13:55 +08:00
Kirk Steuber
6ae1a7982c Bug 1377377 - Preload string bundles during idle time r=smaug
MozReview-Commit-ID: H0hNHmzBWhO
2017-08-04 09:26:04 -07:00
Nicholas Nethercote
723f585d9c Bug 1386600 - Change nsIStringBundle methods to return |AString| instead of |wstring|. r=emk,sr=dbaron.
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.
2017-08-04 14:40:52 +10:00
Bobby Holley
b14bd693b3 Bug 1386110 - Use a smart pointer to reliably de-register NAC regardless of how it goes away. r=masayuki
MozReview-Commit-ID: HTSu5BjxD8I
2017-08-03 20:26:11 -07:00
Bobby Holley
e68bfed158 Bug 1386110 - Use a strong reference for ManualNAC. r=masayuki
This is belt-and-suspenders.

MozReview-Commit-ID: H1W7RZeGQYy
2017-08-03 20:26:09 -07:00
Ehsan Akhgari
ab1386774f Bug 1385521 - Inline the check for common argument in the callers of GetCommonAncestorInternal(); r=baku 2017-07-31 11:29:08 -04:00
Luke Chang
35858cc1c2 Bug 1362290 - Support non-experimental autocomplete pref. r=baku
MozReview-Commit-ID: LABuNLbq2Io
2017-07-27 11:41:15 +08:00
Andrea Marchesini
693036056d Bug 1128959 - Implement the WHATWG Streams spec - part 16 - report stream errors during consumption r=bkelly 2017-08-10 18:04:56 -07:00
Andrea Marchesini
56e4bb1c71 Bug 1128959 - Implement the WHATWG Streams spec - part 5 - Disable StreamS API by default, r=bkelly 2017-08-10 18:04:55 -07:00
Jessica Jong
c8a9b64795 Bug 1376695 - Part 2: Avoid rebuilding the list returned by getElementsByName when not needed. r=ehsan
The list returned by getElementsByName is cached, however, it's rebuilt
frequently due to content mutations. We can avoid rebuilding the list when
the attribute changed is not the name attribute. We can also speed up the
name matching process by skipping the elements that do not have a name
attribute.

MozReview-Commit-ID: 9TUPaQonjHz
2017-07-26 02:34:00 -04:00
Kershaw Chang
ad4833cbd0 Bug 1377544 - Labeling in ExtensionProtocolHandler, r=mayhemer
1. Get rid off AbstractThread
2. Use nsContentUtils::GetEventTargetByLoadInfo to get an event target for dispatching
2017-07-24 23:50:00 +02:00
Johann Hofmann
3fca548c18 Bug 1371219 - Add an inputSource attribute to XULCommandEvent. r=smaug
In the frontend we need to know if XUL buttons in the toolbar were
triggered by a touch event, so we're passing on the inputSource
in the command event.

MozReview-Commit-ID: DMvgZULk9hT
2017-07-20 17:45:56 +02:00