Commit Graph

76 Commits

Author SHA1 Message Date
Masayuki Nakano
1f0790f228 Bug 1348195 nsRange should set mCalledByJS to false before calling Selection::NotifySelectionListners() because non-*JS() methods may be called during a call of it r=smaug
When nsRange::*JS() is called, mCalledByJS is set to true.  In such case, Selection::NotifySelectionListeners() may move focus or anyway, it calls selection listeners.  Then, they may cause calling non-*JS() methods of the nsRange instance. In this case, nsRange treats the call as called by JS since mCalledByJS is still true.

For preventing this issue, before calling Selection::NotifySelectionListeners(), nsRange should set mCalledByJS to false.

This patch renames AutoCalledByJSSetter to AutoCalledByJSRestore and make it stop setting mCalledByJS automatically.  So, AutoCalledByJSRestore works same as AutoRestore now.

MozReview-Commit-ID: IYsbQTGp3VA
2017-03-17 13:32:51 +09:00
Masayuki Nakano
7852899ec4 Bug 1318312 part.2 Mark Selection as "called by JS" when every Selection API which may cause changing selection is called by JS r=smaug
Selection needs to be able to distinguish if every selection change is caused by JS (i.e., via Selection API) or the others.

This patch maps some methods of Range and Selection to *JS().  Each of them marks its instance as "used by JS" and calls corresponding method.

With this change, Selection::NotifySelectionListeners() can move focus only when it's caused by Selection API.

MozReview-Commit-ID: 1GoLHiIJ10Y
2017-03-10 16:55:12 +09:00
Brad Werth
3c26028870 Bug 1343978 Part 1: Change ClientRectsAndTexts usage of DOMStringList to Sequence<DOMString>. r=smaug
MozReview-Commit-ID: 8mKxdPTq4Ej
2017-03-02 13:13:12 -08:00
Brad Werth
f80cc1e610 Bug 1314080 Part 3: Add a new ChromeOnly DOM method and wire it to CollectClientRectsAndText. r=smaug
MozReview-Commit-ID: GRM87Pi3g4G
2016-11-02 13:31:06 -07:00
Brad Werth
6c6d0f3e72 Bug 1314080 Part 1: Rename CollectClientRects method and add a new parameter for collecting text. r=smaug
MozReview-Commit-ID: KQPky6Fh8sG
2016-11-02 13:49:43 -07:00
Andrea Marchesini
4c5812291e Bug 1281793 - Remove some non-used telemetry IDs - part 4 - random things (2), r=chutten 2016-06-28 19:30:37 +02:00
Carsten "Tomcat" Book
e1f7bf8f9a Backed out changeset 27b1dd843116 (bug 1281793) 2016-06-28 17:04:49 +02:00
Andrea Marchesini
1be63233cb Bug 1281793 - Remove some non-used telemetry IDs - part 4 - random things (2), r=chutten 2016-06-28 16:44:42 +02:00
Mats Palmgren
c3b5a8b6a8 Bug 1216001 part 1 - Optimize nsRange::IsNodeSelected. r=bz 2016-02-13 18:40:23 +01:00
Phil Ringnalda
6cdb00759a Back out 3 changesets (bug 1216001) for Win8 reftest failures in 1193519-sideways-lr-3.html and 1193519-sideways-lr-4.html and intermittent OS X failures in font-display-2.html
CLOSED TREE

Backed out changeset dbadb8fe5803 (bug 1216001)
Backed out changeset a30593ebd58e (bug 1216001)
Backed out changeset c1646ffa71b4 (bug 1216001)
2016-02-11 20:43:41 -08:00
Mats Palmgren
7bf04a9a8c Bug 1216001 part 1 - Optimize nsRange::IsNodeSelected. r=bz 2016-02-12 02:13:57 +01:00
Robert O'Callahan
f3ad5341a8 Bug 264412. Implement HTMLElement.innerText. r=smaug,mats 2015-10-30 18:37:03 +13:00
Robert O'Callahan
0b818e072e Revert incorrectly committed changes ab657569f554 and a396f4262479 2015-10-24 22:38:22 +13:00
Robert O'Callahan
edcde63a3a Bug 264412. Implement HTMLElement.innerText. r=smaug,mats 2015-10-21 10:23:17 +13:00
Nathan Froyd
4e6d8f6705 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
2015-10-18 01:24:48 -04:00
Michael Layzell
96aa0b429b Bug 571294 - Part 1: Implement selection events behind the dom.select_events.enabled pref, r=smaug 2015-09-12 17:56:44 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Andrea Marchesini
ad97ae68b8 Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -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 MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Boris Zbarsky
3a822d99b4 Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Mats Palmgren
dc9a70bd81 Bug 1135413 - Use one bit per bool member to save a few bytes in nsRange objects. r=smaug 2015-02-24 18:35:30 +00:00
Mats Palmgren
c0b5011a6d Bug 1129078 - part 3, Add a mIsGenerated bit to ranges that ExcludeNonSelectableNodes created due to user-select:none. Also, return the index to the range we want to be the new mAnchorFocusRange, based on the Selection direction. r=smaug 2015-02-21 04:27:59 +00:00
Wes Kocher
3097a8a409 Backed out 8 changesets (bug 1129078, bug 1128722) for mochitest-5 failures
Backed out changeset f7eff607655a (bug 1128722)
Backed out changeset 801b3abc0de8 (bug 1128722)
Backed out changeset 275d27c2dba0 (bug 1129078)
Backed out changeset 9830ab1a2028 (bug 1129078)
Backed out changeset ce5cb876af9a (bug 1129078)
Backed out changeset c199ff86c77f (bug 1129078)
Backed out changeset 38b1b039f14d (bug 1129078)
Backed out changeset c8a99ee97313 (bug 1129078)
2015-02-20 12:24:25 -08:00
Mats Palmgren
c74d92ee24 Bug 1129078 - part 3, Add a mIsGenerated bit to ranges that ExcludeNonSelectableNodes created due to user-select:none. Also, return the index to the range we want to be the new mAnchorFocusRange, based on the Selection direction. r=smaug 2015-02-20 17:34:21 +00:00
Birunthan Mohanathas
e9068bbc4f Bug 946065 - Part 12: Move content/base/ to dom/ and flatten subdirectories. r=peterv 2014-10-25 20:25:22 +03:00