mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:25:44 +00:00
aec5e5666e
- bug 1083930 - cpu spin during large h2/spdy upload r=hurley (0949388a6a)
- Bug 1241906 - Spdy deadlock on suspended channel r=hurley (f40e9677d5)
- Bug 1247205 - dont loop on http2 softerror r=dragana (2ab3cb69ef)
- Bug 1246778 - dont loop in nshttpconnection during shutdown r=dragana (0677b9d34b)
- Bug 1201037 - only send "HTTP pings" on seemingly idle connections, r=mcmanus (134198bc79)
- Bug 1174899 - discarded spdy data with fin attributed to wrong stream r=bagder (f3b801c734)
- Bug 1236170 - Make Http2Session::UncompressAndDiscard push-aware. r=mcmanus (e71634e853)
- Bug 1240025 - incorrect close state on pushed stream r=hurley (eb2832177a)
- Bug 1227931 - init Http2Stream::mReceivedData in the constructor. r=nwgh (44f1d8e897)
- Bug 241788 - net_FilterURIString should filter \r\n\t from the entire URL r=honzab (734d9b8cae)
- Bug 1259459 - h2 0 length options puts end-stream on headers r=hurley (31ac211a9b)
- Bug 1174899 - fixup log format strings for spdy/h2 r=bagder (967c9ff71e)
- Bug 1211694 - dataLength has been added twice. r=mcmanus (6773981db3)
- cleanup (26517f5de0)
- Bug 1247998 - Let nsHttpChannel::AsyncOpen* throw after nsHttpHandler has been shutdown, r=mcmanus (90bb2364be)
- Bug 1231512 - Allow nsIHttpChannel.redirectTo() work also on an open channel, r=jduell (198fb72816)
- Bug 1242472 - Properly propagate mTopWindowURI through redirects. r=francois/ckerschb (1d27a15770)
- Bug 1133873 - some spdy logs r=hurley (cd95cfed5a)
- bug 1215724 - enable brotli on spdy r=hurley (83cca72fa5)
- Bug 137852 - Add a new working HTTP authentication identity to the begining of the session cache list. r=honzab (f670349771)
- Bug 1245414, part 1 - Delete the mfbt/decimal/LICENSE* files since upstream now just uses inline comments. r=Waldo (15bb211e14)
- Bug 1245414, part 2 - Update mfbt/decimal/update.sh to reflect Blink's switch from svn to git, and the different files we now pull. r=Waldo (4dd0b5916a)
- Bug 1245414, part 3 - Overwrite mfbt/decimal/Decimal.* with vanilla upstream copies. r=Waldo (98f7ba4711)
- Bug 1245414, part 4 - Update mfbt/decimal/zero-serialization.patch. r =Waldo (055e1354a7)
- Bug 1245414, part 5 - Update mfbt/decimal/comparison-with-nan.patch. r=Waldo (583e0f3e76)
- Bug 1245414, part 6 - Update mfbt/decimal/mfbt-abi-markers.patch. r=Waldo (148b1ac08b)
- Bug 1245414, part 7 - Update mfbt/decimal/to-moz-dependencies.patch. r=Waldo (2e2a6a33d7)
- Bug 1245414, part 8 - Remove mfbt/decimal/floor-ceiling.patch now that the issue is fixed upstream. r=Waldo (84fc02c068)
- Bug 1245414, part 9 - Disable mfbt/decimal/fix-wshadow-warnings.patch. r=cpeterson (4476d04c5d)
- Bug 1245414, part 10 - Apply the Mozilla patches via mfbt/decimal/update.sh. r=Waldo (1f95ef5524)
- Bug 1247082 - Suppress rendering of nsBackdropFrame for VR content r=dholbert (0ffeae4267)
- Bug 1206545 - Initialize AccessibleCaretEventHub in nsCanvasFrame. r=roc (687d4997fb)
- Bug 591737 - Add SummaryFrame. r=bz (1b750bfeb8)
- Bug 1165893 - Fix rounding issue in nsDisplaySelectionOverlay::Paint. r=mattwoodro (9994cc983a)
- Bug 1245450 - Only setup AutoSaveRestorePerspectiveIndex for the descendants of the element with perspective. r=roc (fe8a350417)
- Bug 1243282 - Wrap items having clips with a separator. r=mattwoodrow (915737e3d0)
- Bug 1223232 - Use GetUsedBorder() instead of the computed border value when calculating CB size. r=roc (f4c05b30c7)
- Bug 1223232 - Crashtest. (394e112818)
- Bug 1230665 - Make anonymous flex/grid items non-tabbable and non-focusable. r=roc (0d3f70e672)
- Bug 1142295 - Closing descriptor when GECKO_DISPLAY_REFLOW_RULES_FILE is setted. r=erahm (664ae6ba0a)
- minor change (b914bd2602)
- Bug 1237754 part 1 - [css-grid][css-align] Make 'align/justify-content:normal' behave as 'stretch' for Grid containers. r=dholbert (09a9a09629)
- Bug 1237754 part 2 - [css-grid][css-align] Test updates to account for new default behavior for 'align/justify-content'. (5e62e837ff)
- minor of Bug 1141931 part 2 (a12f5b430e)
- Bu 974309: Fixes the IsEditable() logic for table cells. r=ehsan (2a3caa932f)
- Bug 1238137 - Telemetry pings for main thread keyboard-driven scroll input methods. r=ehsan (e9c07427f9)
- Bug 1238137 - Telemetry pings for main thread scrolling to bring the caret into view after moving it in response to keyboard input. r=ehsan (834bc12b7a)
- Bug 1246405 - Declare mTextRun earlier to avoid alignment spill on 64-bit architectures. r=roc (7ba93b72c9)
- Fixing bug 440486. Work around a Windows XP fax dialog bug. r=rstrong. (a59409acd6)
- Bug 1240911 - Prevent SerializedStructuredCloneBuffer from escaping into the heap. r=amarchesini (2c0b7c474b)
- Bug 1240985 - Hold off processing some messages during timeout (r=dvander) (10f6f6d7a2)
- Bug 1146471 - Release thread asserts for IPC (r=dvander) (f94d0ee09a)
- Bug 1240985 - Fix bug where mAwaitingSyncReply can be overwritten in Send after Cancel (r=dvander) (7b95acdca6)
- Bug 1193861: Log to the process log when launching a sandboxed process on Windows. r=billm (0ad1afd0d0)
- Bug 1233061 - add override declarations for MessagePumpForNonMainUIThreads; r=billm (94b9a5bfe9)
- Bug 1172467: Fix an IPC channel file descriptor leak from Nuwa to the child process. r=khuey (908601ed0e)
- Bug 1240985 - Check WasTransactionCanceled after timeout (and avoid timing out) (r=dvander) (33aade0a92)
- Bug 1237458 - Use MOZ_RELEASE_ASSERT for IPC assertions (r=jld) (cb0f058205)
- Bug 1247429 - Warn instead of error if shmem deallocated before IPDL sends it. r=nical (3c94d99b21)
- Bug 1175999 - Deallocate mach SharedMemory properly. r=blassey. (542649b570)
- Bug 1188186 - Fix leak of FDs in |CreateTransport|. r=bds (a40b9a0c58)
- Bg 1240607 - Force CreateWindow hooks to be detours. r=jmathies (895d1c21c4)
- Bug 1209464: Fix missing neutered window region in MessageChannel::WaitForInterruptNotify. Regression from bug 1189709; r=jimm (204256880b)
- Bug 1229825 - Make GIF deinterlacer respect the frame rect bounds. r=tn (904f6bd9b7)
- Bug 1242093 - Fix assertion in Downscaler::ClearRow. r=njn (63ffe82e99)
- Bug 1235859 - Add FrameSize to non-skia downscaler. r=edwin (e7474630e0)
- Bug 1237709: During RasterImage error-handling cleanup, set UniquePtr mAnim to null instead of using reset(), to avoid leaking. r=dholbert (b064f9c20d)
- Bug 1235605 - Use CheckedInt in Deinterlacer and make its buffer allocation fallible. r=tn (f6f3858c65)
- cleanup (f02aa9441e)
- Bug 1242778: Add MOZ_COUNT_CTOR & MOZ_COUNT_DTOR calls to track leaks of imagelib's FrameAnimator class. r=tn (b1aa366694)
- Bug 1241728. Add crashtest. (17d80a3387)
- Bug 1241729. Add crashtest. (bd6d7337d7)
- Bug 1241728. Limit the size of images that we will downscale from to 1048576 pixels. r=edwin (ad38a82aad)
- Bug 1218782 - use fallible allocations in Downscaler.cpp; r=seth (b22caa1121)
- Bug 1224979. Check if we compute usable filters for the downscaler, and if not put the downscaler in error state so it's not used. r=edwin (8fb59463ef)
- Bug 1235297 - Annotate intentional switch fallthroughs to suppress -Wimplicit-fallthrough warnings in image/decoders/. r=tn (094c37c0fe)
- Bug 1238558 (part 1) - Add Decoder::BeforeFinishInternal(). r=tnikkel. (c7922054d6)
- Bug 1238558 (part 2) - Add a test. r=tnikkel. (7e09caf47f)
- Bug 1238551 (part 2) - Add a test. r=tn. (f548a2cb97)
- Bug 1238551 (part 1) - Reject BITMAPV3INFOHEADER BMP images. r=tn. (c4c8f95cb3)
- Bug 1240629. Don't buffer image file data that we are never going to look at in the gap between the header and the pixel data for BMP files. r=njn (f580910cd3)
- Bug 1237171 - Improve a case where ICO and BMP files disagree on an image size. r=tn. (615db65802)
- Bug 1220021 (part 1) - Don't treat 0RGB ICO files as transparent. r=seth. (b97298285f)
- Bug 1220021 (part 2) - Add four reftests. r=seth. (b1e7b58a98)
- Bug 1163856 (Part 2) - Fix tests that depended on image load event timing. r=tn (4304c676a0)
- Bug 1207958 - Fix heuristic for choosing which ICO sub-image to render - r=tn (3d4db5a033)
- Bug 987625 - Conditionally define MOZ_PNG_MAX_DIMENSION. r=jrmuizel (859bae490c)
- Bug 75077 - Interpolate interlaced PNG images instead of libpng blocky display. r=seth (bc17b43fa6)
- fix side-effect of 1219405 (6536821e18)
- Bug 1245845, part 1 - Stop Moz2D Path::CopyToBuilder/TransformedCopyToBuilder implicitly converting the Path's FillRule. r=Bas (ecc552f359)
- Bug 1245845, part 2 - Remove code that is now useless from gfxContext::EnsurePath. r=Bas (2430be2837)
- Bug 1237448 - Moz2Dify two functions in gfxSurfaceDrawable. r=roc. (bb768302c5)
- Bug 1231888 (follow-up) - Simplify CurrentSurface(). r=jrmuizel. (303cea98f3)
- Bug 1247380: Only copy the background if we can succesfully get a snapshot. r=jrmuizel (13b64445e9)
- Bug 1228507 - Initialize mBlendOpacity. r=Bas (b301a2c9f4)
- Bug 1238846 (part 2) - Remove gfxContext::mOriginalDT, which is unused. r=mattwoodrow. (a5b0f948b7)
- Bug 1240819 - cleanup dead branches in gfxXlibNativeRender.cpp. r=jrmuizel (57bbec6693)
- Bug 1234950 - When advancing APZ animations, use the next vsync timestamp instead of the current one, since that is what will be composited. r=mstange (421829d459)
- Bug 1021845 - Don't skip checkerboarding layers during compositing, even if the layer's visible region is empty. r=botond (6cf1497019)
- Bug 1230149 - check bigImgIter to see if it's not null. r=jmuizelaar (aeef579f9f)
- Bug 1248325 - Update BufferTextureHost::GetAsSurface() r=nical (39a8b3ca71)
- reapply per misspatch Bug 1200595 - Consolidate the TextureClient's destruction logic (68966e4dc3)
- Bug 1249245 - Add missing header gfxPrefs.h to GrallocTextureClient.cpp. r=cyu (676669eb01)
- Bug 1245057: Refer to |gfx::IntPoint| in |GrallocTextureHostOGL::SetCropRect|, r=sotaro (99e572f3f6)
- Bug 1240867 - Fix non-unified build bustage in OGLShaderProgram.cpp. r=nical (0071f08285)
- Bug 1238015 - Make sure PTexture actors are destroyed after all messages referring to them are sent. r=sotaro (250f99b4a4)
- Bug 1220895 - Add layerviewer for layer tree & display list visualization NPOTB. r=botond (fa211145a1)
- Bug 1213464 - ImageBridgeChild and CompositorChild should delete their Transport. r=billm (a37a0dbdfd)
- Bug 1234343 (part 1) - Make GfxMemoryImageReporter::sAmount signed. r=Bas. (18f0cb61ec)
- Bug 1234343 (part 2) - Add a missing GfxMemoryImageReporter::DidAlloc() call. r=Bas. (69df7f3674)
- Bug 1245249 - Check actor state before calling Send__delete__(); r=luke (65716a5915)
- Bug 1221418 - A better cleanup method for AsmJSCache::ChildRunnable, r=janv (5c8c023b9d)
- Bug 1235657 - Session storage needs to handle origin attributes correctly - part 1 - createOriginAttributesWithUserContextId, r=huseby (f2df8109ef)
- Bug 1245954 - Console StartTimer/StopTimer and IncrementCounter should run in the owning thread, r=bz (64f73d7759)
- Bug 1245957 - Adding assertions in Console about in which thread is running what, r=bz (291ee70e2d)
- Bug 1248022 - ConsoleEvent.styles can be a sequence of nullable strings, r=bz (b94ec79ac0)
- Bug 1245242 - Normalize to unit vector for DOMMatrix.rotateAxisAngleSelf. r=roc (3a9e684b4d)
- Bug 1236329. Back out the patch for bug 492933 (revision d8012b35413b) because it's not web-compatible in practice. r=smaug (f6540d84c3)
- mTarget can be null in CanvasRenderingContext2D::ClearRect(), return early if so. (13e8a4e26a)
222 lines
7.7 KiB
C++
222 lines
7.7 KiB
C++
/*
|
|
* Copyright (C) 2012 Google Inc. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following disclaimer
|
|
* in the documentation and/or other materials provided with the
|
|
* distribution.
|
|
* * Neither the name of Google Inc. nor the names of its
|
|
* contributors may be used to endorse or promote products derived from
|
|
* this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
/**
|
|
* Imported from:
|
|
* https://chromium.googlesource.com/chromium/src.git/+/master/third_party/WebKit/Source/platform/Decimal.h
|
|
* Check UPSTREAM-GIT-SHA for the commit ID of the last update from Blink core.
|
|
*/
|
|
|
|
#ifndef Decimal_h
|
|
#define Decimal_h
|
|
|
|
#include "mozilla/Assertions.h"
|
|
#include <stdint.h>
|
|
#include "mozilla/Types.h"
|
|
|
|
#include <string>
|
|
|
|
#ifndef ASSERT
|
|
#define DEFINED_ASSERT_FOR_DECIMAL_H 1
|
|
#define ASSERT MOZ_ASSERT
|
|
#endif
|
|
|
|
#define PLATFORM_EXPORT
|
|
|
|
// To use USING_FAST_MALLOC we'd need:
|
|
// https://chromium.googlesource.com/chromium/src.git/+/master/third_party/WebKit/Source/wtf/Allocator.h
|
|
// Since we don't allocate Decimal objects, no need.
|
|
#define USING_FAST_MALLOC(type) \
|
|
void ignore_this_dummy_method() = delete
|
|
|
|
#define DISALLOW_NEW() \
|
|
private: \
|
|
void* operator new(size_t) = delete; \
|
|
void* operator new(size_t, void*) = delete; \
|
|
public:
|
|
|
|
namespace blink {
|
|
|
|
namespace DecimalPrivate {
|
|
class SpecialValueHandler;
|
|
}
|
|
|
|
// This class represents decimal base floating point number.
|
|
//
|
|
// FIXME: Once all C++ compiler support decimal type, we should replace this
|
|
// class to compiler supported one. See below URI for current status of decimal
|
|
// type for C++: // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1977.html
|
|
class PLATFORM_EXPORT Decimal {
|
|
USING_FAST_MALLOC(Decimal);
|
|
public:
|
|
enum Sign {
|
|
Positive,
|
|
Negative,
|
|
};
|
|
|
|
// You should not use EncodedData other than unit testing.
|
|
class EncodedData {
|
|
DISALLOW_NEW();
|
|
// For accessing FormatClass.
|
|
friend class Decimal;
|
|
friend class DecimalPrivate::SpecialValueHandler;
|
|
public:
|
|
EncodedData(Sign, int exponent, uint64_t coefficient);
|
|
|
|
bool operator==(const EncodedData&) const;
|
|
bool operator!=(const EncodedData& another) const { return !operator==(another); }
|
|
|
|
uint64_t coefficient() const { return m_coefficient; }
|
|
int countDigits() const;
|
|
int exponent() const { return m_exponent; }
|
|
bool isFinite() const { return !isSpecial(); }
|
|
bool isInfinity() const { return m_formatClass == ClassInfinity; }
|
|
bool isNaN() const { return m_formatClass == ClassNaN; }
|
|
bool isSpecial() const { return m_formatClass == ClassInfinity || m_formatClass == ClassNaN; }
|
|
bool isZero() const { return m_formatClass == ClassZero; }
|
|
Sign sign() const { return m_sign; }
|
|
void setSign(Sign sign) { m_sign = sign; }
|
|
|
|
private:
|
|
enum FormatClass {
|
|
ClassInfinity,
|
|
ClassNormal,
|
|
ClassNaN,
|
|
ClassZero,
|
|
};
|
|
|
|
EncodedData(Sign, FormatClass);
|
|
FormatClass formatClass() const { return m_formatClass; }
|
|
|
|
uint64_t m_coefficient;
|
|
int16_t m_exponent;
|
|
FormatClass m_formatClass;
|
|
Sign m_sign;
|
|
};
|
|
|
|
MFBT_API explicit Decimal(int32_t = 0);
|
|
MFBT_API Decimal(Sign, int exponent, uint64_t coefficient);
|
|
MFBT_API Decimal(const Decimal&);
|
|
|
|
MFBT_API Decimal& operator=(const Decimal&);
|
|
MFBT_API Decimal& operator+=(const Decimal&);
|
|
MFBT_API Decimal& operator-=(const Decimal&);
|
|
MFBT_API Decimal& operator*=(const Decimal&);
|
|
MFBT_API Decimal& operator/=(const Decimal&);
|
|
|
|
MFBT_API Decimal operator-() const;
|
|
|
|
MFBT_API bool operator==(const Decimal&) const;
|
|
MFBT_API bool operator!=(const Decimal&) const;
|
|
MFBT_API bool operator<(const Decimal&) const;
|
|
MFBT_API bool operator<=(const Decimal&) const;
|
|
MFBT_API bool operator>(const Decimal&) const;
|
|
MFBT_API bool operator>=(const Decimal&) const;
|
|
|
|
MFBT_API Decimal operator+(const Decimal&) const;
|
|
MFBT_API Decimal operator-(const Decimal&) const;
|
|
MFBT_API Decimal operator*(const Decimal&) const;
|
|
MFBT_API Decimal operator/(const Decimal&) const;
|
|
|
|
int exponent() const
|
|
{
|
|
ASSERT(isFinite());
|
|
return m_data.exponent();
|
|
}
|
|
|
|
bool isFinite() const { return m_data.isFinite(); }
|
|
bool isInfinity() const { return m_data.isInfinity(); }
|
|
bool isNaN() const { return m_data.isNaN(); }
|
|
bool isNegative() const { return sign() == Negative; }
|
|
bool isPositive() const { return sign() == Positive; }
|
|
bool isSpecial() const { return m_data.isSpecial(); }
|
|
bool isZero() const { return m_data.isZero(); }
|
|
|
|
MFBT_API Decimal abs() const;
|
|
MFBT_API Decimal ceil() const;
|
|
MFBT_API Decimal floor() const;
|
|
MFBT_API Decimal remainder(const Decimal&) const;
|
|
MFBT_API Decimal round() const;
|
|
|
|
MFBT_API double toDouble() const;
|
|
// Note: toString method supports infinity and nan but fromString not.
|
|
MFBT_API std::string toString() const;
|
|
MFBT_API bool toString(char* strBuf, size_t bufLength) const;
|
|
|
|
static MFBT_API Decimal fromDouble(double);
|
|
// fromString supports following syntax EBNF:
|
|
// number ::= sign? digit+ ('.' digit*) (exponent-marker sign? digit+)?
|
|
// | sign? '.' digit+ (exponent-marker sign? digit+)?
|
|
// sign ::= '+' | '-'
|
|
// exponent-marker ::= 'e' | 'E'
|
|
// digit ::= '0' | '1' | ... | '9'
|
|
// Note: fromString doesn't support "infinity" and "nan".
|
|
static MFBT_API Decimal fromString(const std::string& aValue);
|
|
static MFBT_API Decimal infinity(Sign);
|
|
static MFBT_API Decimal nan();
|
|
static MFBT_API Decimal zero(Sign);
|
|
|
|
// You should not use below methods. We expose them for unit testing.
|
|
MFBT_API explicit Decimal(const EncodedData&);
|
|
const EncodedData& value() const { return m_data; }
|
|
|
|
private:
|
|
struct AlignedOperands {
|
|
uint64_t lhsCoefficient;
|
|
uint64_t rhsCoefficient;
|
|
int exponent;
|
|
};
|
|
|
|
MFBT_API explicit Decimal(double);
|
|
MFBT_API Decimal compareTo(const Decimal&) const;
|
|
|
|
static MFBT_API AlignedOperands alignOperands(const Decimal& lhs, const Decimal& rhs);
|
|
static inline Sign invertSign(Sign sign) { return sign == Negative ? Positive : Negative; }
|
|
|
|
Sign sign() const { return m_data.sign(); }
|
|
|
|
EncodedData m_data;
|
|
};
|
|
|
|
} // namespace blink
|
|
|
|
namespace mozilla {
|
|
typedef blink::Decimal Decimal;
|
|
} // namespace mozilla
|
|
|
|
#undef USING_FAST_MALLOC
|
|
|
|
#ifdef DEFINED_ASSERT_FOR_DECIMAL_H
|
|
#undef DEFINED_ASSERT_FOR_DECIMAL_H
|
|
#undef ASSERT
|
|
#endif
|
|
|
|
#endif // Decimal_h
|