Commit Graph

2652 Commits

Author SHA1 Message Date
Kyle Huey
8443a7a8f1 Bug 783162: Make mapped attributes hold the image alive. r=bz
The nsCSSValue in nsGenericHTMLElement::MapBackgroundInto is a temporary.  This causes a problem after Bug 697230 landed, because the nsCSSValue::Image we put into that value is destroyed once we're done doing style stuff.  Previously the nsImageLoader would grab the request off the nsCSSValue::Image and hold it alive.  Bug 697230 changed the behavior here; now when the nsCSSValue::Image is destroyed it tells the image loader to drop the request.  The result is that all the references to the request are dropped and the frame is never told it has a background.

The solution is to keep the nsCSSValue::Image alive longer.  This patch adds two new types of nsAttrValue.  The first is an nsCSSValue::URL.  A ParseBackgroundAttribute method is added on nsGenericHTMLElement that the relevant elements (body/td/th/table/tr/tbody/thead/tfoot) call that parses background into an nsCSSValue::URL.  The second is an nsCSSValue::Image.  nsGenericHTMLElement::MapBackgroundInto attempts to convert the nsCSSValue::URL into an nsCSSValue::Image by kicking off the image load.  The result is that image loads are only started when the element is actually visible.  This also mirrors the way background-image works.  This also allows us to fix two longstanding bugs in this code.  Since MapBackgroundInto doesn't have a pointer to the actual element, it relied on grabbing the principal of the document.  Now we can grab the principal of the node in ParseBackgroundAttribute.  MapBackgroundInto also has no way to get at the element's base URI (to honor xml:base), which is now possible in ParseBackgroundAttribute.

nsCSSValue::[Image|URL] have also been moved to be mozilla::css::[Image|URL]Value.  nsAttrValue.h is included in external linkage code, so it can't include nsCSSValue.h to get the declarations of nsCSSValue::[Image|URL], and nested classes can't be forward declared.  Moving the classes to a namespace solves the problem.

Finally some old inoperative quirks mode code was removed.  This code has done nothing since Bug 273078 was landed in 2004.
2012-08-24 10:50:49 -07:00
Andrew McCreight
c063a3e54c Bug 750570, part 4 - Switch most native CC classes to use the purple buffer. r=smaug
This patch actually converts over most of the existing native CC classes
to use the participant. This is done by converting them to use
the newly generalized nsCycleCollectingAutoRefCnt instead of their usual
ref count.

This is mostly a matter of defining new macros defining AddRef() and Release()
for native CC classes with the CC ref count.

nsTimeout is left as a legacy native CC class because it is a weird class,
but hopefully eventually it too can be converted over.  See bug 774874.
2012-08-24 09:50:06 -07:00
Matt Brubeck
cdd4612f38 Back out 670c8a2695b3 (bug 771354), 134557d57e6e 4ad52e488977 (bug 774607), and...
036eb8c2a08a d4d36e3b948f 35334e820632 6bd07fd5147d d49e7c0d762c 407f19deb14c d84551808abb (bug 774633)
on a CLOSED TREE
2012-08-23 21:34:27 -07:00
Luke Wagner
ad90af9ca5 Bug 625199 - s/JSAutoEnterCompartment/JSAutoCompartment/ and make it infallible (r=bholley)
--HG--
extra : rebase_source : 12acf2288285f5caefd7fecea8207de3a47eab5b
2012-08-21 18:42:53 -07:00
Luke Wagner
9816ab9194 Bug 625199 - kill dummy frames (r=mrbkap)
--HG--
extra : rebase_source : df4e3bddabf20cdc5b9122370fa62b40e64177c7
2012-08-17 18:05:06 -07:00
Bobby Holley
358de066bc Bug 771354 - Don't special-case principal assignment for chrome windows in nsGlobalWindow.cpp. r=bz 2012-08-23 16:44:53 -07:00
Bobby Holley
be79576daa Bug 774607 - Remove use of JS_{Is,Make}SystemObject from Gecko. r=bz
We currently set this for system globals and anything whose parent
chain leads to a system global. Maybe this was relevant before, but
with CPG this is just equivalent to asking whether the object is in
a system compartment. And the only place where we _check_ this bit
is immediately after checking for a system compartment, in
WrapperFactory. So AFAICT this can go away entirely.
2012-08-23 16:44:53 -07:00
Bobby Holley
fb072823ff Bug 774633 - Assert against switching origins on a compartment. r=jst 2012-08-23 16:44:53 -07:00
Bobby Holley
38274fd965 Bug 774633 - Remove "is chrome window" condition for inner window reuse. r=jst
WouldReuseInnerWindow also returns true if the new window is same-origin with
the old one about:blank document.

This condition exists in order to handle some sloppiness with respect to the
principals on initial about:blank documents. Chrome callers sometimes parent
chrome windows (with XUL document) to content windows. But this parenting causes
us to push the cx of the content window during window creation, meaning that
the subsequent load of chrome://foo.xul blows away the old inner window and any
expandos on it. We can handle this case more precisely by skipping the cx push
for type="chrome" windows.

Furthermore, this was also necessary to prevent the inner window from being
blown away in the call to SetOpenerScriptPrincipal once nsWindowWatcher gets
the window back from the window creator (and after it's already told consumers
about the window via "domwindowcreated"). But we fixed this nastiness in the
previous patches.

So we can remove this case. By doing so, we can prevent inner windows from ever
changing origins, which is very important for compartment security invariants.
2012-08-23 16:44:53 -07:00
Bobby Holley
1a9db39ccc Bug 774633 - Fold SetOpenerScriptPrincipal into SetInitialPrincipalToSubject, and make it indempotent and callable without an existing document. r=jst
There's no reason it has to fail if there's no mDoc, since any document is promptly
blown away with the new about:blank document.

The indempotence is important because we want to be able to call this method
unconditionally in OpenJSWindowInternal (since we may not have gone through
RegisterTopLevelWindow) without worrying about whether we've called it already.
2012-08-23 16:44:52 -07:00
Bobby Holley
248ddad9f4 Bug 774633 - Remove dead mOpenerScriptPrincipal. r=jst
This value is initialized to null and never set, so we can get rid of it.
2012-08-23 16:44:52 -07:00
Bobby Holley
133acda80d Bug 774633 - Wean SetInitialPrincipalToSubject off some parameters and clean it up. r=jst
We can remove the fallback to the principal of aParent because we already push the
cx for aParent (callerContextGuard) whenever we're concerned about using its principal.
2012-08-23 16:44:52 -07:00
Bobby Holley
3bd2492b71 Bug 774633 - Factor nsWindowWatcher call to SetOpenerScriptPrincipal into a method on nsGlobalWindow. r=jst
This doesn't change any functionality in the code. Note that the name is currently
a bit of a misnomer, but we change that in the next patch when we rip out the
arguments.
2012-08-23 16:44:52 -07:00
Kyle Machulis
1004044a0d Bug 779378: B2G Voicemail: Hook up to permissions manager; r=gwagner 2012-08-23 16:31:02 -07:00
Ben Turner
7370f46298 Bug 784726 - 'Remove old IPC::URI'. r=cjones+khuey.
--HG--
rename : ipc/glue/IPCSerializableParams.ipdlh => ipc/glue/InputStreamParams.ipdlh
extra : transplant_source : %A6%BC%8B%8D%3A_%7Df%2B%FE%AA%94%81%AB%CAW%15K%A7%03
2012-08-23 12:33:46 -07:00
Kyle Machulis
8a2e15d8be Backout of f98bea38e654 due to mochi bustage 2012-08-23 12:01:27 -07:00
Kyle Machulis
76c7b95997 Backout of c129811b87ef due to mochi bustage 2012-08-23 12:00:51 -07:00
Kyle Machulis
a33056cfaf Bug 783426: Patch 2 - Async DOMRequest Firing Tests; r=sicking 2012-08-23 09:52:54 -07:00
Kyle Machulis
1a157c8765 Bug 783426: Patch 1 - Async DOMRequest Firing; r=sicking 2012-08-23 09:52:29 -07:00
Rafael Ávila de Espíndola
0d45bdcb77 Bug 784889 - Use nullptr in a function that returns a pointer. r=ms2ger. 2012-08-23 09:56:10 -04:00
Peter Van der Beken
ee9eae3141 Fix for bug 768692 (Move DOM list binding generation to the new DOM binding codegen). r=bzbarsky.
--HG--
extra : rebase_source : 651a0fac4c9a87ef1c0a9cd91588c6421fd050c4
2012-05-22 15:46:20 +02:00
Justin Lebar
29483a3082 Bug 784436 - Part 2: Use new infallible nsIDocShell methods. r=bz 2012-08-22 18:27:04 -07:00
Kyle Machulis
37e2b5f29a Backout be6da7f8989c due to bustage 2012-08-22 18:11:52 -07:00
Kyle Machulis
76388120fe Backout 81fc1a3fc920 due to bustage 2012-08-22 18:11:24 -07:00
Kyle Machulis
6402f59383 Bug 783426: Patch 2 - Tests for Async DOMRequest Firing; r=sicking 2012-08-22 18:04:01 -07:00
Kyle Machulis
79dc311d5f Bug 783426: Patch 1 - Async DOMRequest Firing; r=sicking 2012-08-22 18:03:43 -07:00
Kyle Machulis
287a39048a Backing out df43ad6d04c1 due to incorrect commit messages 2012-08-22 18:02:36 -07:00
Kyle Machulis
56b6897dc3 Backing out 542abbd15139 due to incorrect commit messages 2012-08-22 18:00:57 -07:00
Kyle Machulis
8298af775b Bug 783426: Patch 2 - Tests for Async DOMRequest Firing 2012-08-22 17:58:05 -07:00
Kyle Machulis
bc347bb5c8 Bug 783426: Patch 1 - Async DOMRequest Firing 2012-08-22 17:57:50 -07:00
Brian Hackett
f74df62c6b Allow purging analysis-temporary while retaining jitcode, bug 778724. r=luke 2012-08-22 12:28:34 -06:00
Vicamo Yang
f2eab91be3 Bug 707659 - Part 1: DOM implementation, r=jlebar 2012-08-23 01:30:27 +08:00
Ehsan Akhgari
2d709c2f52 Merge the landing of bug 579517 to mozilla-inbound 2012-08-22 12:12:15 -04:00
Ed Morley
9476c8d8ec Backout d62929fa4325 for talos crashes 2012-08-22 14:53:11 +01:00
Brian Hackett
1ad046b572 Allow purging analysis-temporary while retaining jitcode, bug 778724. r=luke 2012-08-22 06:27:18 -06:00
Eric Chou
c713f87fb5 Bug 783520 - [b2g-bluetooth] follow-up to bug 730992, r=qdot 2012-08-22 18:37:08 +08:00
Doug Sherk
242fa304fe Bug 780397: Convert FrameMetrics.mViewportScrollOffset from nsIntPoint to gfx::Point r=roc 2012-08-21 21:37:15 -07:00
Gina Yeh
6ba33be90b Bug 783454 - v1: Create devicefound event with event generator, r=qdot 2012-08-21 10:54:28 +08:00
Ryan VanderMeulen
cbe189e0c0 Merge m-c to inbound. 2012-08-20 20:21:35 -04:00
Olli Pettay
711151788a Bug 783856 - Autogen PopupBlockedEvent, r=jst 2012-08-20 11:26:34 -07:00
Fabrice Desré
3a6a1ec660 Bug 783825 - Fix b2g breakage after bug 553102 - Part 1 : fix mozChromeEvent events and system message manager [r=gal] 2012-08-19 12:00:19 -07:00
Ehsan Akhgari
e368dc9c85 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Phil Ringnalda
3c6bc5d2e1 Back out a9f462ea67f9 (bug 783825) for mochitest-chrome bustage 2012-08-18 21:08:40 -07:00
Fabrice Desré
74c76a1852 Bug 783825 - Fix b2g breakage after bug 553102 [r=cjones] 2012-08-18 19:50:44 -07:00
Masatoshi Kimura
11a5c57afc Bug 783532 - Remove DOMError::CreateForDOMExceptionCode. r=sicking 2012-08-18 08:25:49 -04:00
Bill McCloskey
7ea7c080cb Bug 783416 - Stop saving the prototype in WindowStateHolder (r=mrbkap) 2012-08-17 10:09:01 -07:00
Eric Chou
1353638291 Bug 730992 - Patch 1: The DOM boilerplate for BluetoothPairingEvent, r=qdot, sr=mrbkap
---
 dom/base/nsDOMClassInfo.cpp                   |    9 +++
 dom/base/nsDOMClassInfoClasses.h              |    1 +
 dom/bluetooth/BluetoothPairingEvent.cpp       |   78 +++++++++++++++++++++++++
 dom/bluetooth/BluetoothPairingEvent.h         |   70 ++++++++++++++++++++++
 dom/bluetooth/Makefile.in                     |    2 +
 dom/bluetooth/nsIDOMBluetoothPairingEvent.idl |   15 +++++
 6 files changed, 175 insertions(+), 0 deletions(-)
 create mode 100644 dom/bluetooth/BluetoothPairingEvent.cpp
 create mode 100644 dom/bluetooth/BluetoothPairingEvent.h
 create mode 100644 dom/bluetooth/nsIDOMBluetoothPairingEvent.idl
2012-08-17 18:35:59 +08:00
Gregor Wagner
0684d004cb Bug 779379 - B2G MobileConnection: Hook up to permissions manager. r=jlebar 2012-08-16 17:42:26 -07:00
Neil Deakin
2e9eced59a Bug 743975 - use a widget listener interface instead of the remaining events that don't need an event, r=tn,jmathies,netzen,smichaud,karlt,blassey,chrisjones 2012-08-15 14:52:42 -04:00
Aryeh Gregor
8bb4aff89c Bug 782252 - Cast NS_ENUMERATOR_FALSE to nsresult; r=ehsan 2012-08-07 17:54:44 +03:00