Commit Graph

7311 Commits

Author SHA1 Message Date
Makoto Kato
c4eee3e2b8 Bug 1312936 - Part 2. Use nsAutoCString for nsITranserable.getAnyTransferData into editor. r=masayuki
Also, replace nsCRT::strcmp with EqualsLiteral.  nsCRT::strcmp is deprecated API.

MozReview-Commit-ID: KZ4xfk7bhH3

--HG--
extra : rebase_source : dace79aea16c53ed48bcd47a62bf5ca7b36d2a3c
2016-10-26 11:10:29 +09:00
Masayuki Nakano
b83f17b535 Bug 1311606 Rename |result| of nsresult variants to |rv| in editor r=smaug
For conforming to our coding rules, |result| of nsresult variants should be renamed to |rv|.

MozReview-Commit-ID: Bk8CyLAnvXQ

--HG--
extra : rebase_source : dd3dc34a032f22abf3fd7f85556b47ffbeec55b2
2016-10-25 00:43:49 +09:00
Carsten "Tomcat" Book
e3e8571c53 merge mozilla-inbound to mozilla-central a=merge 2016-10-24 16:55:47 +02:00
Masayuki Nakano
a6c4cf07dc Bug 1309413 part.4 Get rid of NS_ENSURE_* from SetDocumentTitleTransaction r=ehsan
NS_ENSURE_* are deprecated.  So, let's rewrite them with NS_WARN_IF().

MozReview-Commit-ID: 1lqUhfLrncJ
2016-10-15 00:51:48 +09:00
Masayuki Nakano
41708ec80f Bug 1309413 part.3 Fix some nits in SetDocumentTitleTransaction.cpp r=ehsan
SetDocumentTitleTransaction.cpp was written a long time ago.  So, it doesn't use our modern coding style.  Let's fix it.

MozReview-Commit-ID: LhgMbv8dqKm
2016-10-14 18:43:25 +09:00
Masayuki Nakano
81b72e056d Bug 1309413 part.2 Rename the variable in SetDocumentTitleTransaction::SetDomTitle() from "res" to "rv" r=ehsan
MozReview-Commit-ID: CMZbBIpq8y2
2016-10-14 18:37:00 +09:00
Masayuki Nakano
f0796a5d35 Bug 1309413 part.1 SetDocumentTitleTransaction::SetDomTitle() should retry to get head element before inserting new title element r=ehsan
When there is no title element, SetDocumentTitleTransaction::SetDomTitle() creates title element and try to insert it to the head element.  However, it might be swapped during modifying existing title element or head element.

Therefore, after modifying the tree, SetDocumentTitleTransaction::SetDomTitle() should forget the retrieved head element and when it needs to refer current head element, it should retry to get the head element again.

MozReview-Commit-ID: 59BxEwrflye
2016-10-14 18:06:21 +09:00
Masayuki Nakano
bea2eb150e Bug 1309413 part.0 Add automated test to test SetDocumentTitleTransaction::SetDomTitle() r=ehsan
For detecting regressions, SetDocumentTitleTransaction::SetDomTitle() should be tested.

The transaction is created only when nsIHTMLEditor::setDocumentTitle().  Therefore, it needs to be a chrome mochitest.

MozReview-Commit-ID: 4UjAJ8zNPBP
2016-10-15 00:38:42 +09:00
Masayuki Nakano
6bc92def07 Bug 1311240 Fix odd "{" and "}" of control statements in editor for conforming to our coding rules r=smaug
Currently, editor code uses following style (or similar style) in a lot of places:

if (foo)
{

}
else
{

}

This patch fixes this as conforming to our coding rules, i.e., it becomes:

if (foo) {

} else {

}

Additionally, this fixes other odd control statements in the files which include above issue because it's difficult to find following issues with searching the files:

* if (foo) bar;
* if (foo) { bar; }
* if (foo)
    bar;

Finally, if it becomes much simpler than current code, this patch rewrites existing code with "early return style". But this case is only a few places because this is risky.

MozReview-Commit-ID: 2Gs26goWXrF

--HG--
extra : rebase_source : 603f9003a3566b3203bdeb27dc73ac33502d2853
2016-10-24 11:27:45 +09:00
Eric Rahm
a2f7bff287 Bug 1311759 - Remove unused references to nsISupportsArray. r=froydnj
This removes various references to nsISupportsArray throughtout the tree that
aren't used.

MozReview-Commit-ID: EtgD1DRwY8e
2016-10-21 16:34:42 -07:00
Masayuki Nakano
2773c4d0ef Bug 1310618 Replace nsresult variables |res| with |rv| under editor/ r=Ehsan
In our coding rules, variable names of nsresult should be rv.  Indeed, when you see |rv| in the code, you must assume that its type if nsresult.

However, a lot of code under editor/ uses |res| for the variables of nsresult.  Let's replace |res| with |rv|.

And this patch improves following points:

1. When |rv| is set in both |if| and |else| block and they are check outside of them, this moves the check into each |if| and |else| block because even if the failure is notified with warning, you cannot see which case was performed and failed.  This change makes it clear.

2. When |return rv;| returns non-error code because |rv| is checked with NS_ENSURE_SUCCESS() immediately before, setting replacing it with |return NS_OK;| is clearer.

3. Move declaration of |nsresult rv| into smaller scope as far as possible.  This prevents setting rv to unexpected value and easier to check its value at reading the code.

MozReview-Commit-ID: 9MAqj7sFey3

--HG--
extra : rebase_source : 0fd316b851ea616b3a95d8c1afc111ff55e11993
2016-10-19 18:09:33 +09:00
Masayuki Nakano
701f3b7c7a Bug 1311235 part.3 Rename NS_EDITOR_ELEMENT_NOT_FOUND to NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND r=Ehsan
MozReview-Commit-ID: KBeqo2WwOBY

--HG--
extra : rebase_source : b8263ea2bbad63bcbea056b1c11240a28bb4bfb2
2016-10-19 14:35:21 +09:00
Masayuki Nakano
015e1b9d89 Bug 1311235 part.2 Rename NS_FOUND_TARGET to NS_EDITOR_FOUND_TARGET and make it a success code r=Ehsan
NS_FOUND_TARGET is now declared as an error code.  However, making it as a success code makes the code simpler.

First, this patch renames it to NS_SUCCESS_EDITOR_FOUND_TARGET because it's usual naming rule (according to the other declarations).

Next, FindTargetNode() should return it when a nest call of itself returns NS_SUCCESS_EDITOR_FOUND_TARGET as it does now.

Finally, removing the code overwriting NS_FOUND_TARGET with NS_OK from HTMLEditor::CreateDOMFragmentFromPaste() since it doesn't cause hitting NS_ENSURE_SUCCESS() and the variable, rv, will be overwritten with other method's result.

MozReview-Commit-ID: 6GgZptrXXQa

--HG--
extra : rebase_source : 79418fc83fb087e559221f895c59c7c334980456
2016-10-19 14:15:24 +09:00
Makoto Kato
167407b34f Bug 850043 - Part 2. Add test. r=masayuki
MozReview-Commit-ID: 9iY6udNCQdL

--HG--
extra : rebase_source : 4d9ec835c619afa2fc2b8157118e31ee5ab9e0d0
2016-10-17 14:24:47 +09:00
Makoto Kato
d4e1205058 Bug 850043 - Part 1. Looking for better insertion point when using plain text editor. r=masayuki
When typing character, current selection node might be anonymous DIV, not text node.  So even if plain text, we might not get it.

We should get text node correctly when using plain text editor.

MozReview-Commit-ID: LmfYa7BqZnC

--HG--
extra : rebase_source : d08c74c8cc5fdec4d19772f112e54a08b95afeb3
2016-10-17 14:22:46 +09:00
Xidorn Quan
05ef8466c6 Bug 1309109 part 5 - Store ServoDeclarationBlock rather than RawServoDeclarationBlock in nsAttrValue. r=heycam
MozReview-Commit-ID: HWqgjwif1qF

--HG--
extra : source : cf3b1baff3d1d6233c72e32cf01cd28a2b344ebf
2016-10-18 15:29:03 +11:00
Olli Pettay
d04af0658f Bug 1309720, ensure expected DOM tree operations when calling insertBefore, r=ehsan
--HG--
extra : rebase_source : 9583d0f4aa9c395c3615f17244c4531a9d441534
2016-10-14 15:33:42 +03:00
Ehsan Akhgari
430e61c30f Bug 1248148 - Disable firing selection events during HTML editor initialization; r=mystor
This is similar to what we do for the plaintext editor initialization.
2016-10-13 13:46:40 -04:00
Makoto Kato
626a2cfaa9 Bug 1309117 - Make ImgFromData fallible. r=masayuki
When pasting large image, it may cause OOM when generating base64 data.  So we should use fallible allocator instead.

Also, base64 is ASCII, so we should use AppendASCIItoUTF16 instead of AppendUTF8toUTF16.

MozReview-Commit-ID: 8yWPxfEcEwv

--HG--
extra : rebase_source : 6c2c3144d4413017b4861443c945aeb0d6d995ef
2016-10-11 19:28:30 +09:00
Boris Zbarsky
a3ba31e74a Bug 1308287 part 2. Make DataTransfer.types use [NeedsSubjectPrincipal]. r=mystor 2016-10-10 21:07:48 -04:00
Boris Zbarsky
bae20efd7f Bug 1298243 part 7. Change DataTransfer.types from being a DOMStringList to being a frozen array. r=mystor,gijs 2016-10-10 21:07:47 -04:00
Xidorn Quan
2f49a48a09 Bug 1304302 part 10 - Replace all uses of StyleSheetHandle. r=heycam
This commit is generated by the following commands with some minor
manual adjustment:

find . \( -name '*.h' -or -name '*.cpp' \) -not -path './layout/style/StyleSheet*' -exec sed -i -b \
  -e '/^\(#include\|using\)/s/StyleSheetHandle/StyleSheet/g' \
  -e 's/\(mozilla::\)\?StyleSheetHandle::RefPtr/RefPtr<\1StyleSheet>/g' \
  -e 's/StyleSheetHandle()/nullptr/g' \
  -e 's/->AsStyleSheet()//g' \
  -e 's/StyleSheetHandle/StyleSheet*/g' {} +
sed -i -b 's/sheet->AsVoidPtr()/sheet.get()/' layout/style/Loader.cpp
sed -i -b 's/AsHandle()/this/' layout/style/StyleSheet.cpp

MozReview-Commit-ID: 7abdvlKHukd

--HG--
extra : source : e5682242db07203b5a91810fe1e243c955310588
2016-09-26 22:03:25 +10:00
Carsten "Tomcat" Book
36f1fe4e63 Bug 972110 - fix test_bug674770-1.html after merge conflict a=me
--HG--
extra : amend_source : 8616390a1773b278f52691300128d15d7b55de98
2016-09-23 12:14:13 +02:00
Carsten "Tomcat" Book
a65e4225ef merge mozilla-inbound to mozilla-central a=merge 2016-09-23 12:05:53 +02:00
Masayuki Nakano
c29d9ac401 Bug 972110 Rewrite editor/libeditor/test_bug674770-1.html without setTimeout() for avoiding intermittent failure r=smaug
We can assume that if middle button's click event on a link isn't consumed by any event handlers including system event group's, it will cause open new tab.  With this assumption, we can avoid using setTimeout which causes random orange.

However, unfortunately, in e10s mode, the default is NOT consumed at window in bubbling phase but consumed at that time. So, when not working the link is expected, we cannot check Event.defaultPrevented.  But fortunately, we can check if the page is loaded after that.

Note that for testing this, the test needs to check if an event handler which is either in default group or system group consumed a click event.  However, this runs as mochitest-plain.  Therefore, Event.defaultPrevented returns false if the event is consumed only in the system group's event listener.  For avoiding this issue, this patch adds defaultPreventedInAnyGroups() into SpecialPowers.  In SpecialPowers, Event.defaultPrevented is accessed from chrome context.  Therefore, we can get the result what this test needs.

MozReview-Commit-ID: Cfn4lFR1dfI

--HG--
extra : rebase_source : 51feb768bd38f62cc19c2f4aecaaea0135190599
2016-09-22 10:54:51 +09:00
aceman
8667dcbcb6 Bug 1273001 - convert HTMLEditor::getLinkedObjects() to nsIArray. r=masayuki 2016-09-20 12:47:00 +02:00
Gabor Krizsanits
af105a9c64 Bug 1301340 - Force single process in some tests. r=mrbkap 2016-09-22 09:24:31 +02:00
Shing Lyu
74414dd285 Bug 1302993 - Update some stylo reftest expectations; r=heycam
MozReview-Commit-ID: 5UUDlAUfBYP

--HG--
extra : rebase_source : c8aff1382e492bc07c59becc697abfb4f7bd8f95
2016-09-12 11:05:21 +05:30
aceman
8577dea451 Bug 1272893 - Remove nsISupportsArray from GetEmbeddedObjects() in editor. r=masayuki
--HG--
extra : amend_source : 2e47d294e70be626e77f5b46614c907e17ac5ba5
2016-09-15 04:33:00 +02:00
Manish Goregaokar
aad318e17a Bug 1300337 - Replace None_ variants from nsStyleConsts.h with None; r=heycam,TYLin
MozReview-Commit-ID: CxHzbEzjLxT

--HG--
extra : rebase_source : 232f90b8b107f7fb49f47a29a4e493660b8a7d87
2016-09-04 00:16:58 +05:30
Shing Lyu
db11558e50 Bug 1288350 - Temporary reftest list for Stylo vs Gecko test r=heycam,manishearth
--HG--
extra : rebase_source : 4772418bd2813d4e79643a833eb09e47fe893d84
2016-09-05 11:45:39 +08:00
Carsten "Tomcat" Book
d98e95abb8 Merge mozilla-central to autoland 2016-09-08 12:51:52 +02:00
Ting-Yu Lin
6f82a72d0c Bug 1301325 - Remove text_caret*.png under editor/composer/res/. r=mtseng
MozReview-Commit-ID: 5UQ65KIOxW8

--HG--
extra : rebase_source : f3606c754227f894eb674f6dfd16eac78236c0a3
2016-09-08 16:54:15 +08:00
Thomas Wisniewski
2b28c5e2a9 Bug 1069012 - Unprefix ::placeholder pseudo-element. r=bz 2016-09-07 19:38:38 -04:00
Michael Layzell
5d1745c161 Bug 1018486 - Part 2: Changes in editor/, r=masayuki
MozReview-Commit-ID: JA7UCVXEd8j
2016-09-07 10:50:37 -04:00
Nicholas Nethercote
b71747b2ac Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.

--HG--
extra : rebase_source : 886e57a9e433e0cb6ed635cc075b34b7ebf81853
2016-09-01 15:01:16 +10:00
Emilio Cobos Álvarez
619cb14d87 Bug 1299066: Make NS_STYLE_DISPLAY_* an enum class. Prefer indexing instead of linear search in the frame constructor r=heycam,bz
The main renaming was generated with the following python script:

```

import sys
import re

CAMEL_CASE_REGEX = re.compile(r"(^|_|-)([A-Z])([A-Z]+)")
DISPLAY_REGEX = re.compile(r"\bNS_STYLE_DISPLAY_([^M][A-Z_]+)\b")

def to_camel_case(ident):
  return re.sub(CAMEL_CASE_REGEX,
                lambda m: m.group(2) + m.group(3).lower(), ident)

def constant_to_enum(constant):
  return "StyleDisplay::" + to_camel_case(constant) + ("_" if constant == "NONE" else "")

def process_line(line):
  return re.sub(DISPLAY_REGEX,
                lambda m: constant_to_enum(m.group(1)), line)

lines = []
with open(sys.argv[1], "r") as f:
  for line in f:
    lines.append(process_line(line))

with open(sys.argv[1], "w") as f:
  for line in lines:
    f.write(line)
```

And the following shell commands:

```
find . -name '*.cpp' -exec python display.py {} \;
find . -name '*.h' -exec python display.py {} \;
```

MozReview-Commit-ID: 91xYCbLC2Vf
2016-09-01 20:41:17 -07:00
Aryeh Gregor
76862dadad Bug 1299453 - Stop using createEvent("DragEvents"/"KeyEvents") internally; r=smaug
They are non-standard aliases for "DragEvent" and "KeyboardEvent" that
are not supported by any other UA, and we would like to drop support.
So first let's stop using them ourselves, so we can use telemetry to see
if any sites are using them.

MozReview-Commit-ID: ICC33ORa2st
2016-08-31 20:38:50 +03:00
Ou Shinjo
2e390f8812 Bug 1266165 - CompositionTransaction::SetIMESelection() should not hide caret when redo r=masayuki
CompositionTransaction::SetIMESelection() is also called when user redos the committed composition.  In such case, it doesn't have ranges, but DoTransaction() tries to restore selection ranges with no ranges.  That causes hiding caret because when there is no caret range in the ranges, SetIMESelection() hides the caret as IME requested.

So, for redo, SetIMESelection() shouldn't hide caret when there are no ranges (i.e., the composition was already committed).
2016-08-27 13:26:42 +09:00
Aryeh Gregor
f3e54042f1 Bug 1271115 - Merge ChromeUtils.js into EventUtils.js; r=jmaher
This allows plain mochitests to use the functions as well, which is
necessary to get them to work with e10s.

MozReview-Commit-ID: J4um2mliJcZ
2016-08-25 16:57:09 +03:00
Aryeh Gregor
f5cce8463c Bug 1250805 - Respect type-in state when caching inline styles; r=masayuki
MozReview-Commit-ID: OZCUbNUvmz
2016-08-25 14:43:21 +03:00
Lee Salzman
ac99e35d5f Bug 1278957 - enable Skia content for Linux and Android. r=mchang
MozReview-Commit-ID: KFb81rVM0ik
2016-08-23 13:55:14 -04:00
Aryeh Gregor
f6c34fc75b Bug 748308 - Support insertParagraph and insertLineBreak per spec/Blink/WebKit; r=masayuki
Previously we supported insertParagraph as a synonym for formatBlock
"p", which is both useless and incompatible with all other browsers.
Edge's behavior doesn't look useful and looks redundant with insertHTML
(although it matches the name nicely, probably because they invented
the command).  Blink/WebKit treat it the same as hitting Enter, which is
useful for cross-browser testing until we get synthesizeKey() in wpt.

At the same time, I added insertLineBreak, which Blink/WebKit support
with the same functionality as pressing Shift-Enter.

The new event.html failures are spurious -- we used to pass by mistake
because we didn't support insertlinebreak at all.  insertlinebreak.html
has only new passes, no new failures, although it's not clear on the
diff.

MozReview-Commit-ID: 16oPcxXwGcj
2016-08-23 14:13:17 +03:00
Aryeh Gregor
a97d9af06f Bug 1295563 - Assert that editors can't be reinitialized during an edit action; r=masayuki
Many HTMLEditRules methods use the pattern of
  nsCOMPtr<nsIEditor> kungFuDeathGrip(mHTMLEditor);
at the beginning of the method, followed by using mHTMLEditor freely.
If Init() is then called on the editor, mHTMLEditor is set to null, so
it will crash.  Other bad stuff will probably happen too.

MozReview-Commit-ID: gUtaTAQJIh
2016-08-23 14:13:16 +03:00
Aryeh Gregor
dfe0b2fb6c Bug 1265800 part 3 - Move cursor into all adjacent nodes after delete; r=masayuki
When deleting, we previously would only move the cursor back into the
previous block if the last leaf node was a text node, for some reason.
We should move into the previous block in other cases as well, like if
the leaf node is a collapsed <br>.  (Probably it's not correct to move
backward into tables, but that already was happening if the table had
text at the end.  There may be other cases where this is wrong.)

MozReview-Commit-ID: 8e0dTU3lNYO
2016-08-22 14:27:17 +03:00
Aryeh Gregor
2a778fda0b Bug 1265800 part 2 - Don't place cursor after invisible break; r=masayuki
If the user tries to insert text without moving the cursor, the
invisible break will become visible, which from the user's perspective
means an extra line break was inserted for no reason.

The IsVisBreak change here is a bit scary, because it may result in
unexpected behavior changes, but it seems to improve correctness.  If it
turns out to cause problems, it can be added as a special case to
GetGoodSelPointForNode instead.

MozReview-Commit-ID: 7SRQYHYtJvF
2016-08-22 14:27:08 +03:00
Aryeh Gregor
09a3b26740 Bug 1265800 part 1 - Small unrelated cleanup patch; r=masayuki
MozReview-Commit-ID: CmyOTeFgKtS
2016-08-22 14:26:52 +03:00
Sebastian Hengst
6568eeec5b Backed out changeset e3b15fe52734 (bug 1265800) for failing added wpt /XMLHttpRequest/event-error.html. r=backout 2016-08-21 23:48:54 +02:00
Sebastian Hengst
9df7aba907 Backed out changeset bba587e03e0b (bug 1265800) 2016-08-21 23:42:45 +02:00
Sebastian Hengst
73836dc023 Backed out changeset da1cdd000993 (bug 1265800) 2016-08-21 23:42:41 +02:00