mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 04:38:02 +00:00
Merge m-i to m-c, a=merge
This commit is contained in:
commit
aa978f397e
@ -1396,17 +1396,12 @@ nsHTMLCopyEncoder::SetSelection(nsISelection* aSelection)
|
||||
nullptr, nullptr);
|
||||
if (styleContext) {
|
||||
const nsStyleText* textStyle = styleContext->StyleText();
|
||||
switch (textStyle->mWhiteSpace) {
|
||||
case NS_STYLE_WHITESPACE_PRE:
|
||||
case NS_STYLE_WHITESPACE_PRE_WRAP:
|
||||
case NS_STYLE_WHITESPACE_PRE_LINE:
|
||||
case NS_STYLE_WHITESPACE_PRE_SPACE:
|
||||
if (textStyle->WhiteSpaceOrNewlineIsSignificant()) {
|
||||
// Copy as plaintext for all preformatted elements
|
||||
mIsTextWidget = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,6 +90,7 @@ extern const Class DebuggerSource_class;
|
||||
|
||||
enum {
|
||||
JSSLOT_DEBUGSOURCE_OWNER,
|
||||
JSSLOT_DEBUGSOURCE_TEXT,
|
||||
JSSLOT_DEBUGSOURCE_COUNT
|
||||
};
|
||||
|
||||
@ -4848,7 +4849,7 @@ DebuggerSource_construct(JSContext *cx, unsigned argc, Value *vp)
|
||||
return false;
|
||||
}
|
||||
|
||||
static JSObject *
|
||||
static NativeObject *
|
||||
DebuggerSource_checkThis(JSContext *cx, const CallArgs &args, const char *fnname)
|
||||
{
|
||||
if (!args.thisv().isObject()) {
|
||||
@ -4863,18 +4864,20 @@ DebuggerSource_checkThis(JSContext *cx, const CallArgs &args, const char *fnname
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
NativeObject *nthisobj = &thisobj->as<NativeObject>();
|
||||
|
||||
if (!GetSourceReferent(thisobj)) {
|
||||
JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, JSMSG_INCOMPATIBLE_PROTO,
|
||||
"Debugger.Frame", fnname, "prototype object");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return thisobj;
|
||||
return nthisobj;
|
||||
}
|
||||
|
||||
#define THIS_DEBUGSOURCE_REFERENT(cx, argc, vp, fnname, args, obj, sourceObject) \
|
||||
CallArgs args = CallArgsFromVp(argc, vp); \
|
||||
RootedObject obj(cx, DebuggerSource_checkThis(cx, args, fnname)); \
|
||||
RootedNativeObject obj(cx, DebuggerSource_checkThis(cx, args, fnname)); \
|
||||
if (!obj) \
|
||||
return false; \
|
||||
RootedScriptSource sourceObject(cx, GetSourceReferent(obj)); \
|
||||
@ -4885,6 +4888,12 @@ static bool
|
||||
DebuggerSource_getText(JSContext *cx, unsigned argc, Value *vp)
|
||||
{
|
||||
THIS_DEBUGSOURCE_REFERENT(cx, argc, vp, "(get text)", args, obj, sourceObject);
|
||||
Value textv = obj->getReservedSlot(JSSLOT_DEBUGSOURCE_TEXT);
|
||||
if (!textv.isUndefined()) {
|
||||
MOZ_ASSERT(textv.isString());
|
||||
args.rval().set(textv);
|
||||
return true;
|
||||
}
|
||||
|
||||
ScriptSource *ss = sourceObject->source();
|
||||
bool hasSourceData = ss->hasSourceData();
|
||||
@ -4897,6 +4906,7 @@ DebuggerSource_getText(JSContext *cx, unsigned argc, Value *vp)
|
||||
return false;
|
||||
|
||||
args.rval().setString(str);
|
||||
obj->setReservedSlot(JSSLOT_DEBUGSOURCE_TEXT, args.rval());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -149,3 +149,5 @@ if CONFIG['OS_TARGET'] in ('Linux', 'DragonFly', 'FreeBSD', 'NetBSD',
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'Darwin':
|
||||
OS_LIBS += CONFIG['TK_LIBS']
|
||||
|
||||
FAIL_ON_WARNINGS = True
|
||||
|
@ -1513,7 +1513,7 @@ TEST_P(NewSdpTest, CheckFormatParameters) {
|
||||
video_format_params[0].parameters.get()));
|
||||
ASSERT_EQ((uint32_t)0x42a01e, h264_parameters->profile_level_id);
|
||||
ASSERT_EQ(0U, h264_parameters->packetization_mode);
|
||||
ASSERT_EQ(false, h264_parameters->level_asymmetry_allowed);
|
||||
ASSERT_FALSE(static_cast<bool>(h264_parameters->level_asymmetry_allowed));
|
||||
ASSERT_EQ(0U, h264_parameters->max_mbps);
|
||||
ASSERT_EQ(0U, h264_parameters->max_fs);
|
||||
ASSERT_EQ(0U, h264_parameters->max_cpb);
|
||||
@ -1529,7 +1529,7 @@ TEST_P(NewSdpTest, CheckFormatParameters) {
|
||||
video_format_params[1].parameters.get());
|
||||
ASSERT_EQ((uint32_t)0x42a00d, h264_parameters->profile_level_id);
|
||||
ASSERT_EQ(1U, h264_parameters->packetization_mode);
|
||||
ASSERT_EQ(true, h264_parameters->level_asymmetry_allowed);
|
||||
ASSERT_TRUE(static_cast<bool>(h264_parameters->level_asymmetry_allowed));
|
||||
ASSERT_EQ(42000U, h264_parameters->max_mbps);
|
||||
ASSERT_EQ(1400U, h264_parameters->max_fs);
|
||||
ASSERT_EQ(1000U, h264_parameters->max_cpb);
|
||||
|
@ -14,15 +14,15 @@ public class testBackButtonInEditMode extends UITest {
|
||||
// Verify back button behavior for edit mode.
|
||||
mToolbar.enterEditingMode()
|
||||
.assertIsUrlEditTextSelected();
|
||||
testBackPressInEditMode();
|
||||
testExitUsingBackButton();
|
||||
checkBackPressInEditMode();
|
||||
checkExitUsingBackButton();
|
||||
|
||||
// Verify back button behavior in edit mode after input.
|
||||
mToolbar.enterEditingMode()
|
||||
.enterUrl("dummy")
|
||||
.assertIsUrlEditTextSelected();
|
||||
testBackPressInEditMode();
|
||||
testExitUsingBackButton();
|
||||
checkBackPressInEditMode();
|
||||
checkExitUsingBackButton();
|
||||
|
||||
// Verify the swipe behavior in edit mode.
|
||||
mToolbar.enterEditingMode()
|
||||
@ -30,17 +30,17 @@ public class testBackButtonInEditMode extends UITest {
|
||||
mAboutHome.swipeToPanelOnLeft();
|
||||
mToolbar.assertIsUrlEditTextNotSelected()
|
||||
.assertIsEditing();
|
||||
testExitUsingBackButton();
|
||||
checkExitUsingBackButton();
|
||||
}
|
||||
|
||||
public void testBackPressInEditMode() {
|
||||
private void checkBackPressInEditMode() {
|
||||
// Press back button and verify URLEditText is not selected.
|
||||
getSolo().goBack();
|
||||
mToolbar.assertIsUrlEditTextNotSelected()
|
||||
.assertIsEditing();
|
||||
}
|
||||
|
||||
public void testExitUsingBackButton() {
|
||||
private void checkExitUsingBackButton() {
|
||||
getSolo().goBack();
|
||||
mToolbar.assertIsNotEditing();
|
||||
}
|
||||
|
@ -170,5 +170,5 @@ CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS']
|
||||
if CONFIG['MOZ_WIDGET_GTK']:
|
||||
CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']
|
||||
|
||||
if CONFIG['OS_TARGET'] != 'Darwin':
|
||||
if CONFIG['_MSC_VER']:
|
||||
FAIL_ON_WARNINGS = True
|
||||
|
@ -4,5 +4,4 @@ tail =
|
||||
|
||||
[test_encoding.js]
|
||||
# Bug 676995: test hangs consistently on Android
|
||||
# Bug 984194: broken on comm-central
|
||||
skip-if = (os == "android" || buildapp == '../mail')
|
||||
skip-if = (os == "android")
|
||||
|
5
xpcom/string/crashtests/1113005-frame.html
Normal file
5
xpcom/string/crashtests/1113005-frame.html
Normal file
@ -0,0 +1,5 @@
|
||||
<form method=post enctype=multipart/form-data action="data:text/html,"><textarea name='file"; filename="filename.ext
|
||||
'></textarea>
|
||||
<script>
|
||||
document.forms[0].submit();
|
||||
</script>
|
2
xpcom/string/crashtests/1113005.html
Normal file
2
xpcom/string/crashtests/1113005.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html>
|
||||
<iframe src="1113005-frame.html"></iframe>
|
@ -1,2 +1,3 @@
|
||||
load 394275-1.html
|
||||
load 395651-1.html
|
||||
load 1113005.html
|
||||
|
@ -499,13 +499,16 @@ nsTString_CharT::ReplaceSubstring( const self_type& aTarget, const self_type& aN
|
||||
}
|
||||
|
||||
// Make sure that we can mutate our buffer.
|
||||
// Note that we always allocate at least an mLength sized buffer, because the
|
||||
// rest of the algorithm relies on having access to all of the original
|
||||
// string. In other words, we over-allocate in the shrinking case.
|
||||
char_type* oldData;
|
||||
uint32_t oldFlags;
|
||||
if (!MutatePrep(XPCOM_MAX(mLength, newLength), &oldData, &oldFlags))
|
||||
return;
|
||||
if (oldData) {
|
||||
// Copy all of the old data to the new buffer.
|
||||
char_traits::copy(mData, oldData, XPCOM_MAX(mLength, newLength));
|
||||
char_traits::copy(mData, oldData, mLength);
|
||||
::ReleaseData(oldData, oldFlags);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user