Граф коммитов

46 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond ce228623ab Bug 920630 - Part 3. Change Image/ImageResource and derived classes to use nsIURI directly instead of ImageURL. r=tnikkel 2018-06-05 20:42:56 -04:00
Andrew Osmond 4479d80c10 Bug 1453454 - Improve SourceBuffer support for large encoded image data. r=jrmuizel
Regardless of the size of an encoded image, SourceBuffer::Compact would
try to consolidate all of the chunks into a single chunk. If an image is
quite large, it can be actively harmful to do this, because we want a
very large contiguous chunk of memory for no real reason, and spend
extra time on the main thread doing the memcpy/consolidation.

Instead we now cap out the chunk size at 20MB. If we start allocating
chunks of this size, we will not perform compacting when we have
received all of the data. (Save for realloc'ing the last chunk since it
probably isn't full.)

On a related note, if we hit an out-of-memory condition in the middle of
appending data to the SourceBuffer, we would swallow the error. This is
because nsIInputStream::ReadSegments will succeed if any data was
written. This leaves the SourceBuffer out of sync. We now propogate this
error up properly to the higher levels.

fixup
2018-05-09 09:31:07 -04:00
Andrew Osmond f67ab8c057 Bug 1382783 - Retarget non-HTTP image URIs (chrome, blob) to the image IO thread if not an SVG. r=tnikkel
Currently we only permit requests from HTTP channels to be retargeted to
the image IO thread. It was implemented this way originally in bug
867755 but it does not appear there was a specific reason for that.

The only kink in this is some browser chrome mochitests listen on debug
build only events to ensure certain chrome images are loaded and/or
drawn. As such, this patch ensures that those observer notifications
continue to be served, requiring a dispatch from the image IO thread to
the main thread.

Another issue to note is that SVGs must be processed on the main thread;
the underlying SVG document can only be accessed from it. We enforce
this by checking the content type. The possibility already exists that
an HTTP response could contain the wrong content type, and in that case,
we fail to decode the image, as there is no content sniffing support for
SVG. Thus there should be no additional risk taken by using the image IO
thread from other non-HTTP channels (if they don't specify the SVG
content type, it is not rendered today, and if they do, it will remain
on the main thread as it is today).

We also ignore data URIs. The specification requires that we process
these images sychronously. See bug 1325080 for details.
2017-09-25 11:44:49 -04:00
Kevin Hsieh 2ab70861b6 Bug 1325080 - Synchronously decode image metadata for data URIs. r=tnikkel
MozReview-Commit-ID: IPrP3EepQ6a
2017-08-16 19:04:20 -07:00
Daniel Holbert b6c8e1e084 Backed out changeset 393eadbb146f (bug 1325080) for causing a talos regression.
MozReview-Commit-ID: E0SE51ZWru5
2017-08-17 09:46:16 -07:00
Kevin Hsieh d113ce52dc Bug 1325080 - Always synchronously decode image size. r=tnikkel
MozReview-Commit-ID: LYNLjwy1kAy

--HG--
extra : rebase_source : 7d5d4b4f90efb4cb461828e3222e948f70a9d1fe
2017-08-07 13:54:11 -07:00
Andrew Osmond 9ea902f3c5 Bug 1383404 - Part 4. imgTools::DecodeImage should set the source size hint to optimize the allocation. r=tnikkel 2017-08-01 06:59:12 -04:00
Carsten "Tomcat" Book 63da250179 Backed out changeset b05327c3c55f (bug 1377158) 2017-07-25 14:33:51 +02:00
KuoE0 e6109257ef Bug 1377158 - (Part 4) Add a new parameter to pass style backend type to create image. r=heycam
MozReview-Commit-ID: 74gWTbUyYOZ

--HG--
extra : rebase_source : 8b98a3f6f129029ea35baf9d4ae9fb15db2d6f17
2017-07-13 16:34:34 +08:00
Marco Bonardo 4346bdf652 Bug 1377920 - Too many WARNING: 'obs' from imagelib in debug builds. r=aosmond
MozReview-Commit-ID: 5Rt7VUYpOmt

--HG--
extra : rebase_source : 30add1827cba8508263d0a3c351e104bc5732fa7
2017-07-04 14:49:04 +02:00
Johann Hofmann 4c2650ccdf Bug 1363059 - Add a test for images loaded at startup vs. images shown at startup. r=florian,jwatt
This patch enables startupRecorder.js to collect data on
loaded and shown raster and SVG images on startup via events
from native code. It also adds a test that uses this data
to find images that are unnecessarily loaded.

I've not fixed any of the affected images yet, there's a
fairly comprehensive whitelist that I want to gradually
decrease by opening bugs in the respective components.

MozReview-Commit-ID: 9KqQvKLtZhu

--HG--
extra : rebase_source : 5f75fcd1152f569a5b48e21d4e4821a24f768ecd
2017-06-15 00:11:48 +02:00
Carsten "Tomcat" Book d5e2b3c9e6 Backed out changeset 2cb9f9ba6b91 (bug 1363059) on a CLOSED TREE for failures in browser_startup_images.js | Loaded image chrome://browser/skin/bookmark-hollow.svg was shown 2017-06-28 16:53:49 +02:00
Johann Hofmann 857d540365 Bug 1363059 - Add a test for images loaded at startup vs. images shown at startup. r=florian,jwatt
This patch enables startupRecorder.js to collect data on
loaded and shown raster and SVG images on startup via events
from native code. It also adds a test that uses this data
to find images that are unnecessarily loaded.

I've not fixed any of the affected images yet, there's a
fairly comprehensive whitelist that I want to gradually
decrease by opening bugs in the respective components.

MozReview-Commit-ID: 9KqQvKLtZhu

--HG--
extra : rebase_source : 856f06320c78ed88c4578fce985b2a526566e825
2017-06-15 00:11:48 +02:00
Sebastian Hengst aeae24dbd5 Backed out changeset d2f4da0ae681 (bug 1363059) for failing own test browser_startup_images.js, at least on Windows 7 VM debug with e10s. r=backout 2017-06-26 20:59:37 +02:00
Johann Hofmann 8e1bdcdba0 Bug 1363059 - Add a test for images loaded at startup vs. images shown at startup. r=florian,jwatt
This patch enables startupRecorder.js to collect data on
loaded and shown raster and SVG images on startup via events
from native code. It also adds a test that uses this data
to find images that are unnecessarily loaded.

I've not fixed any of the affected images yet, there's a
fairly comprehensive whitelist that I want to gradually
decrease by opening bugs in the respective components.

MozReview-Commit-ID: 9KqQvKLtZhu

--HG--
extra : rebase_source : 345066e07855bc49975393ec401553981e1138b3
2017-06-15 00:11:48 +02:00
Carsten "Tomcat" Book e87565613f Backed out changeset 7e137dfb0bff (bug 1363059) for failures like browser_startup_images.js | Loaded image chrome://browser/skin/sidebars.svg was shown
--HG--
extra : rebase_source : 2b1f422a7a98686886215069a62897e87369a55b
2017-06-22 15:35:50 +02:00
Johann Hofmann d089b6c875 Bug 1363059 - Add a test for images loaded at startup vs. images shown at startup. r=florian,jwatt
This patch enables startupRecorder.js to collect data on
loaded and shown raster and SVG images on startup via events
from native code. It also adds a test that uses this data
to find images that are unnecessarily loaded.

I've not fixed any of the affected images yet, there's a
fairly comprehensive whitelist that I want to gradually
decrease by opening bugs in the respective components.

MozReview-Commit-ID: 9KqQvKLtZhu

--HG--
extra : rebase_source : fb118db362259a1ff32488868e8238b03638f40f
2017-06-15 00:11:48 +02:00
Ehsan Akhgari ba68896bf9 Bug 1311246 - Remove support for the -moz-samplesize media fragment; r=jrmuizel
This removes the feature added in bug 854795 for Tarako b2g devices.
2016-11-16 08:18:56 -05:00
Daniel Holbert 3996555d1a Bug 1282670, part 3: Make several imagelib .cpp files #inclue their corresponding .h file as their very first #include, per Gecko convention. r=seth
(In some cases, I've left "ImageLogging.h" being included before the corresponding .h file, because I ran across a warning comment saying that it needs to be included before any IPDL-generated files & anything that includes prlog.h; and it seems possible that Foo.cpp's corresponding Foo.h file could include such headers now or in the future.)

MozReview-Commit-ID: HPvUVj8YuKc
2016-06-30 10:27:03 -07:00
Eric Rahm b3ba4f52ec Bug 1219992 - Remove RasterImage::Init failed warning. r=tn 2016-05-20 20:03:44 -07:00
Jonathan Watt 6f1c454a86 Bug 1265744 - Make the "RasterImage::Init failed"/"VectorImage::Init failed" messages include the failing URI. r=seth 2016-05-03 17:16:31 +01: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
Seth Fowler ee578a0619 Bug 1118926 (Part 1) - Remove remnants of -moz-resolution in C++ code. r=tn 2015-09-30 17:00:52 -07:00
Seth Fowler df31b64d6c Bug 1146663 (Part 4) - Make all RasterImages support downscale-during-decode. r=tn 2015-09-19 16:21:05 -07:00
Seth Fowler 93cbaca5e0 Bug 1201796 (Part 4) - Add downscale-during-decode support for the ICO decoder. r=tn 2015-09-19 13:34:14 -07:00
Seth Fowler ba6ea7f0cc Bug 1201796 (Part 3) - Enable downscale-during-decode for imgITools::EncodeScaledImage(). r=tn 2015-09-19 13:34:12 -07:00
Wes Kocher 08de06967a Backed out 8 changesets (bug 1201796, bug 1196066) for mulet gij(28) failures CLOSED TREE
Backed out changeset 159d5d2946d3 (bug 1201796)
Backed out changeset 958988218976 (bug 1201796)
Backed out changeset 494e7553d641 (bug 1201796)
Backed out changeset d58149411b7d (bug 1201796)
Backed out changeset 35bd769b49f8 (bug 1196066)
Backed out changeset e4f3d4279b4c (bug 1196066)
Backed out changeset ca467297fa07 (bug 1196066)
Backed out changeset b4851ce6637d (bug 1196066)

--HG--
rename : image/test/crashtests/invalid_ico_height.ico => image/test/reftest/ico/ico-bmp-corrupted/invalid_ico_height.ico
rename : image/test/crashtests/invalid_ico_width.ico => image/test/reftest/ico/ico-bmp-corrupted/invalid_ico_width.ico
extra : rebase_source : 5232674f1cf0ef4d7f70568f627547c0151a801f
2015-09-18 13:01:25 -07:00
Seth Fowler b48b5d99b8 Bug 1201796 (Part 4) - Add downscale-during-decode support for the ICO decoder. r=tn 2015-09-18 10:54:40 -07:00
Seth Fowler 8ccda9e72f Bug 1201796 (Part 3) - Enable downscale-during-decode for imgITools::EncodeScaledImage(). r=tn 2015-09-18 10:54:38 -07:00
Seth Fowler b32c629237 Bug 1194058 (Part 2) - Add downscale-during-decode support for the GIF decoder. r=tn 2015-09-17 15:03:34 -07:00
Seth Fowler a27fe0e4ca Bug 1201763 - Add downscale-during-decode support for the ICON decoder. r=tn 2015-09-08 22:07:18 -07:00
Seth Fowler 9b67d0789b Bug 1062066 (Part 4) - Add downscale-during-decode support for the BMP decoder. r=tn 2015-09-08 22:07:12 -07:00
Seth Fowler 957709108c Bug 1060609 (Part 2) - Add downscale-during-decode support for the PNG decoder. r=tn,f=glennrp 2015-09-01 14:13:17 -07:00
Seth Fowler 18a4a4a0b9 Bug 1194906 - Replace 'NS_ENSURE_TRUE(BadImage(..))' warnings with more useful messages. r=tn
--HG--
extra : rebase_source : 7c567afdffedacae250f253e4eaa5b04b62f365a
2015-08-18 10:19:18 -07:00
Seth Fowler 947de7376b Bug 1187386 (Part 2) - Rework decoder code to avoid calling Decode::GetImage(). r=tn
--HG--
extra : rebase_source : 6fc835a3468e846cb59474efcfea5355914a9dc4
2015-07-31 07:29:03 -07:00
Seth Fowler 9391045db4 Bug 1183836 - Remove support for decode-on-draw-only. r=tn 2015-07-14 18:16:31 -07:00
Maksim Lebedev dbc64b549d Bug 1177323 - disable decode-only-on-draw preference. r=seth
--HG--
extra : rebase_source : 3c452f3188fd22c1d5d293103645d30bcef6a939
2015-07-08 00:19:00 +02:00
Kartikaya Gupta 0fd5c563da Bug 1178274 - Don't enable decode-only-on-draw if the APZ pref is true but e10s is disabled. r=dvander 2015-06-30 06:43:07 -04:00
Seth Fowler 265ed0e8b8 Bug 1163856 (Part 1) - Delay the image load event until the size decoder gets finalized. r=tn 2015-06-30 02:37:58 -07:00
Phil Ringnalda 64bb0c3553 Back out 2 changesets (bug 1163856) for Windows !mSyncLoad assertion failures
CLOSED TREE

Backed out changeset 62c1c616f21c (bug 1163856)
Backed out changeset 04239448fe0b (bug 1163856)
2015-06-25 19:57:00 -07:00
Seth Fowler 420767db2e Bug 1163856 (Part 1) - Delay the image load event until the size decoder gets finalized. r=tn 2015-06-25 17:09:57 -07:00
David Anderson b2eb29a9c5 Use widgets for APZ checks, rather than gfxPrefs. (bug 1162064, r=kats,mstange) 2015-06-04 16:51:10 -04:00
Phil Ringnalda f7950798e0 Back out 530555a2d6d4 (bug 1162064) for debug b2g emulator assertions and failure to thrive
CLOSED TREE
2015-05-17 22:42:05 -07:00
David Anderson 4b20fa6b94 Use widgets for APZ checks, rather than gfxPrefs. (bug 1162064, r=kats,mstange) 2015-05-17 23:11:44 -04:00
David Anderson cadd78802e Backout changeset e5d045d49b40 for bustage on an a=CLOSED TREE 2015-05-17 21:46:30 -04:00
Birunthan Mohanathas db2ca75447 Bug 1038536 - Flatten image/src/ directory. r=seth
--HG--
rename : image/src/BMPFileHeaders.h => image/BMPFileHeaders.h
rename : image/src/ClippedImage.cpp => image/ClippedImage.cpp
rename : image/src/ClippedImage.h => image/ClippedImage.h
rename : image/src/DecodePool.cpp => image/DecodePool.cpp
rename : image/src/DecodePool.h => image/DecodePool.h
rename : image/src/Decoder.cpp => image/Decoder.cpp
rename : image/src/Decoder.h => image/Decoder.h
rename : image/src/Downscaler.cpp => image/Downscaler.cpp
rename : image/src/Downscaler.h => image/Downscaler.h
rename : image/src/DynamicImage.cpp => image/DynamicImage.cpp
rename : image/src/DynamicImage.h => image/DynamicImage.h
rename : image/src/FrameAnimator.cpp => image/FrameAnimator.cpp
rename : image/src/FrameAnimator.h => image/FrameAnimator.h
rename : image/src/FrozenImage.cpp => image/FrozenImage.cpp
rename : image/src/FrozenImage.h => image/FrozenImage.h
rename : image/src/ICOFileHeaders.h => image/ICOFileHeaders.h
rename : image/src/IProgressObserver.h => image/IProgressObserver.h
rename : image/src/Image.cpp => image/Image.cpp
rename : image/src/Image.h => image/Image.h
rename : image/src/ImageFactory.cpp => image/ImageFactory.cpp
rename : image/src/ImageFactory.h => image/ImageFactory.h
rename : image/src/ImageMetadata.cpp => image/ImageMetadata.cpp
rename : image/src/ImageMetadata.h => image/ImageMetadata.h
rename : image/src/ImageOps.cpp => image/ImageOps.cpp
rename : image/src/ImageOps.h => image/ImageOps.h
rename : image/src/ImageRegion.h => image/ImageRegion.h
rename : image/src/ImageURL.h => image/ImageURL.h
rename : image/src/ImageWrapper.cpp => image/ImageWrapper.cpp
rename : image/src/ImageWrapper.h => image/ImageWrapper.h
rename : image/src/MultipartImage.cpp => image/MultipartImage.cpp
rename : image/src/MultipartImage.h => image/MultipartImage.h
rename : image/src/Orientation.h => image/Orientation.h
rename : image/src/OrientedImage.cpp => image/OrientedImage.cpp
rename : image/src/OrientedImage.h => image/OrientedImage.h
rename : image/src/ProgressTracker.cpp => image/ProgressTracker.cpp
rename : image/src/ProgressTracker.h => image/ProgressTracker.h
rename : image/src/RasterImage.cpp => image/RasterImage.cpp
rename : image/src/RasterImage.h => image/RasterImage.h
rename : image/src/SVGDocumentWrapper.cpp => image/SVGDocumentWrapper.cpp
rename : image/src/SVGDocumentWrapper.h => image/SVGDocumentWrapper.h
rename : image/src/ScriptedNotificationObserver.cpp => image/ScriptedNotificationObserver.cpp
rename : image/src/ScriptedNotificationObserver.h => image/ScriptedNotificationObserver.h
rename : image/src/ShutdownTracker.cpp => image/ShutdownTracker.cpp
rename : image/src/ShutdownTracker.h => image/ShutdownTracker.h
rename : image/src/SourceBuffer.cpp => image/SourceBuffer.cpp
rename : image/src/SourceBuffer.h => image/SourceBuffer.h
rename : image/src/SurfaceCache.cpp => image/SurfaceCache.cpp
rename : image/src/SurfaceCache.h => image/SurfaceCache.h
rename : image/src/VectorImage.cpp => image/VectorImage.cpp
rename : image/src/VectorImage.h => image/VectorImage.h
rename : image/src/imgFrame.cpp => image/imgFrame.cpp
rename : image/src/imgFrame.h => image/imgFrame.h
rename : image/src/imgLoader.cpp => image/imgLoader.cpp
rename : image/src/imgLoader.h => image/imgLoader.h
rename : image/src/imgRequest.cpp => image/imgRequest.cpp
rename : image/src/imgRequest.h => image/imgRequest.h
rename : image/src/imgRequestProxy.cpp => image/imgRequestProxy.cpp
rename : image/src/imgRequestProxy.h => image/imgRequestProxy.h
rename : image/src/imgTools.cpp => image/imgTools.cpp
rename : image/src/imgTools.h => image/imgTools.h
2015-05-14 20:52:05 -07:00