Commit Graph

170 Commits

Author SHA1 Message Date
Anny Gakhokidze
edf3cdbd07 Bug 1453153 - Initial removal of moz* APIs in DataTransfer, r=enndeakin,r=nika
In DataTransfer, change mozItemCount, mozTypesAt, mozClearDataAt, mozSetDataAt,
mozGetDataAt APIs to be ChromeOnly.

MozReview-Commit-ID: 9uJ9ncrcBL2
2018-08-22 15:10:31 -04:00
Bogdan Tara
b6dabcd8c5 Backed out changeset 485fdf8e37e8 (bug 1453153) for clipboard failures on test_findbar.xul CLOSED TREE 2018-08-11 03:21:43 +03:00
Anny Gakhokidze
be49493caf Bug 1453153 - Initial removal of moz* APIs in DataTransfer, r=enndeakin,nika
In DataTransfer, change mozItemCount, mozTypesAt, mozClearDataAt, mozSetDataAt,
mozGetDataAt APIs to be ChromeOnly.

MozReview-Commit-ID: 9uJ9ncrcBL2
2018-08-10 11:57:06 -04:00
Anny Gakhokidze
469c8c4a94 Bug 1461465 - Implement async Clipboard APIs, r=nika,r=enndeakin
MozReview-Commit-ID: 3vCxbaGZtiv
2018-07-31 13:13:02 -04:00
Anny Gakhokidze
535e3c83a1 Bug 1470540 - Improve performance of DataTransfer::CacheExternalClipboardFormats, r=baku,mccr8
Currently, in order to retrieve supported clipboard formats
DataTransfer::CacheExternalClipboardFormats repeatedly makes the same calls to
clipboard->HasDataMatchingFlavors.

In the case when aPlainTextOnly == true only 1 call is made -
clipboard->HasDataMatchingFlavors(kUnicodeMime, ...), and when
aPlainTextOnly == false we have 1 call made for every member of the list
{ kCustomTypesMime, kFileMime, kHTMLMime, kRTFMime, kURLMime, kURLDataMime,
kUnicodeMime, kPNGImageMime } - a total of 8 calls.

We can see that in nsClipboardProxy::HasDataMatchingFlavors, there is a call to
ContentChild::GetSingleton()->SendClipboardHasType.
So when aPlainTextOnly == true, we will have 1 sync message, and when
aPlainTextOnly == false, we will have 8 sync messages.

With the proposed solution, in DataTransfer::CacheExternalClipboardFormats
we will only have 1 sync message regardless of the case because
GetExternalClipboardFormats() will retrieve all supported clipboard
formats at once.

MozReview-Commit-ID: CAmBfqB459v

--HG--
extra : rebase_source : 27f1b420f2613e6a747ed63762f1583ab71ba3e0
2018-06-22 14:28:27 -04:00
Jeff Gilbert
5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Anny Gakhokidze
61c5f540ba Bug 1351193 - Part 1: Added new DataTransfer constructor, r=nika
Deleted the old Chrome DataTransfer constructor because it was only used
for some tests which can be easily changed. Added a new constructor that
is not Chrome Only.

MozReview-Commit-ID: HjcgafSiWfM
2018-06-04 15:09:17 -04:00
Boris Zbarsky
bea3100e53 Bug 1455676 part 14. Remove most use of nsIDOMNode in dom/. r=qdot 2018-05-29 22:58:49 -04:00
Boris Zbarsky
6213894581 Bug 1455676 part 3. Remove nsIDOMNode usage from widget/. r=qdot 2018-05-29 22:58:48 -04:00
Adrian Wielgosik
c501e3beb0 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle

--HG--
extra : rebase_source : a48b7c72a0f7ede38c91149a04d5de53987736f1
2018-05-11 19:46:15 +02:00
Nathan Froyd
798efd6d66 Bug 1453134 - part 3 - be smarter about input stream semantics in DataTransfer; r=baku
We could have used the new NS_NewCStringInputStream overload here, but
it seemed nicer to directly transfer ownership into the newly-created
stream.  If we're going to be more efficient here, we might as well go
as far as when can without making the code too ugly.
2018-04-11 10:06:17 -04:00
Haik Aftandilian
c6b21edd12 Bug 1437281 - OSX dragging image to desktop changes OSX File associations r=mystor
On Mac, when dragging an image, add the image request's MIME type to
the transfer so that the MIME-extension check can be done in the
parent process to avoid content sandboxing issues.

MozReview-Commit-ID: 3cb4fCr6GnL

--HG--
extra : rebase_source : 43720237b467765401b5504c57bbc1b43d4dfdc0
2018-03-27 14:55:33 -07:00
Coroiu Cristina
8915d0accf Backed out changeset 608119812c07 (bug 1437281) on request from haik a=backout 2018-03-26 23:53:06 +03:00
Haik Aftandilian
ce6d9e36aa Bug 1437281 - OSX dragging image to desktop changes OSX File associations r=mystor
When dragging an image, add the image request's MIME type to the transfer
so that the MIME-extension check can be done in the parent process.

Move the MIME-extension check to the parent process to avoid
issues caused by content process sandboxing.

MozReview-Commit-ID: 3cb4fCr6GnL

--HG--
extra : rebase_source : ec49b8c83613be844fe4cd88a5024ac41a845199
2018-03-22 14:04:23 -07:00
Boris Zbarsky
dae236c7cb Bug 1444686 part 14. Remove nsIDOMDataTransfer. r=mystor
MozReview-Commit-ID: BLi4w10clkP
2018-03-13 16:24:01 -04:00
Boris Zbarsky
0d4f7a1b44 Bug 1444686 part 7. Get rid of unused nsIDOMDataTransfer members. r=mystor
MozReview-Commit-ID: 53ShdRZHlC9
2018-03-13 16:24:00 -04:00
Boris Zbarsky
d4bb233636 Bug 1444686 part 6. Get rid of nsIDOMDataTransfer::GetFiles. r=mystor
MozReview-Commit-ID: 3gAWLI2DyyU
2018-03-13 16:24:00 -04:00
Boris Zbarsky
acad63d428 Bug 1444686 part 5. Get rid of nsIDOMDataTransfer::Get/SetEffectAllowedInt. r=mystor
MozReview-Commit-ID: GIzIU7nWP5j
2018-03-13 16:24:00 -04:00
Boris Zbarsky
0da7198eee Bug 1444686 part 4. Get rid of nsIDOMDataTransfer::Get/SetDropEffectInt. r=mystor
MozReview-Commit-ID: EQ8KXMf4mnR
2018-03-13 16:23:59 -04:00
Boris Zbarsky
55ed30a9c6 Bug 1444686 part 3. Get rid of nsIDOMDataTransfer::Get/SetMozCursor. r=mystor
MozReview-Commit-ID: G7vuh1uuWGv
2018-03-13 16:23:59 -04:00
Boris Zbarsky
6139d9be8f Bug 1444686 part 2. Get rid of nsIDOMDataTransfer::GetMozItemCount. r=mystor
MozReview-Commit-ID: 1eo6czER8Qw
2018-03-13 16:23:59 -04:00
Boris Zbarsky
4968b166a6 Bug 1444686 part 1. Get rid of nsIDOMDataTransfer::Get/SetDropEffect. r=mystor
MozReview-Commit-ID: 6Kn9uuaQYI0
2018-03-13 16:23:59 -04:00
Tooru Fujisawa
48bb8e02c7 Bug 1424107 - Pass the triggering principal URI across processes in drag-and-drop. r=smaug 2018-02-09 10:43:53 +09:00
Masatoshi Kimura
dbd92543c6 Bug 1313150 - Remove |weak| parameter from nsIMutableArray methods. r=froydnj
MozReview-Commit-ID: 7JoD4VYzZp3

--HG--
extra : rebase_source : 5db437f1c34608aa223916874d62b48c59baeae8
2017-10-21 23:53:02 +09:00
Kris Maglione
3876d40960 Bug 1404198: Part 1 - Add non-virtual constructor for nsIObject(Input|Output)Stream and update existing callers. r=njn
MozReview-Commit-ID: 3eoh6AwDJyz

--HG--
extra : rebase_source : 92b18b6ef07d276cac79ce735ca0b592cffbf87e
2017-10-04 20:06:28 -07:00
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Nicholas Nethercote
dfd3b7e7aa Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ

--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1
2017-09-26 08:33:21 +10:00
Michael Layzell
5dff36164d Bug 1398883 - Disable the DataTransfer::Protected state for Firefox 57, r=baku
This isn't a super essential feature, and is just a change to try to bring us in
line with chromium and the spec. As this has apparent web compat issues, and
DataTransfer is a hard to test area, this patch moves the changes behind a pref,
which we can come back to turning on after we ship 57.
2017-09-13 11:45:48 -04:00
Michael Layzell
63ecbc4c55 Bug 1199729 - Part 4: Update EventUtils to simulate drag events more accurately, r=baku 2017-09-08 11:05:08 -04:00
Michael Layzell
9cfa67ef65 Bug 1199729 - Part 1: Add the Protected mode to DataTransfer, r=baku 2017-09-08 11:05:06 -04:00
Sylvestre Ledru
4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Sebastian Hengst
a5890afd0f Backed out changeset e0a52989a521 (bug 1352852) for timing out in dom/events/test/test_dragstart.html. r=backout 2017-05-11 18:07:41 +02:00
Michael Layzell
12717ff1a6 Bug 1352852 - Add dummy data to the DataTransfer when dragging a draggable object, r=enndeakin
When dragging a `draggable=true` HTML DOM node, if no data is added to the
DataTransfer during the DragStart event, we currently cancel the drag. This is
inconsistent with Chrome's behaviour.

This patch adds a chrome-only (hidden from content) item to the DataTransfer:
application/x-moz-dummy-data. This data is added only when no other data has
been added to the DataTransfer, and the target of the dragstart event was a
draggable=true HTML DOM node.

This hidden node allows for the drag event to complete successfully, while
appearing the same as Chrome's behavior to content scripts.

MozReview-Commit-ID: HVqEr7aR6DD
2017-05-11 10:09:14 -04:00
Michael Layzell
52e859430e Bug 1352281 - Include KIND_OTHER types in DataTransfer.types, r=baku
MozReview-Commit-ID: EoqzAydaLea
2017-04-17 14:57:25 -04:00
Neil Deakin
85b254f54b Bug 1347748, error check the write methods, r=layzell 2017-03-29 06:32:02 -04:00
Michael Layzell
23e8ac47d2 Bug 1348143 - Check nsresult values more places in DataTransfer. r=enndeakin
MozReview-Commit-ID: BP4avMImDB8
2017-03-27 17:44:27 -04:00
Michael Layzell
a3d57f1d3f Bug 1342057 - Part 1: Use correct MIME type for files as DataTransferItem.type, r=baku
MozReview-Commit-ID: 4hrZ3YoGTJj
2017-03-07 18:18:42 -05:00
Wes Kocher
4424ad9cd7 Backed out 2 changesets (bug 1342057) for android failures in test_clipboard_events.html a=backout
Backed out changeset 5a1e069911fa (bug 1342057)
Backed out changeset 6758f6e0b836 (bug 1342057)

MozReview-Commit-ID: 6MHaDaORlqx
2017-03-07 11:44:03 -08:00
Michael Layzell
b985d62013 Bug 1342057 - Part 1: Use correct MIME type for files as DataTransferItem.type, r=baku
MozReview-Commit-ID: 4hrZ3YoGTJj
2017-03-07 12:45:58 -05:00
Michael Layzell
d982a16df5 Bug 1338328 - Change error type for custom-clipdata mime type, and add test for correct exception type, r=baku
MozReview-Commit-ID: 9qwwXxWgWrO
2017-03-06 14:37:27 -05:00
Wes Kocher
8d2ba463c0 Backed out changeset bfc13d436dd4 (bug 1338328) for browser_context_menu_autocomplete_interaction.js failures a=backout
MozReview-Commit-ID: DfOAidZWnWF
2017-03-01 15:38:21 -08:00
Michael Layzell
2f4b475ed1 Bug 1338328 - Change error type for custom-clipdata mime type, and add test for correct exception type, r=baku
MozReview-Commit-ID: 9qwwXxWgWrO
2017-03-01 15:15:36 -05:00
Makoto Kato
2dcf7753c2 Bug 1327798 - Part 1. PasteNoFormatting shouldn't set text/html to clipboard event on paste. r=enndeakin
MozReview-Commit-ID: 8VMudiPiXcK

--HG--
extra : rebase_source : 2476f69296a60f6978f97da2daef021b90350dbf
2017-02-22 18:34:45 +09:00
Olli Pettay
0364dbc792 Bug 1326507, remove NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS, r=mccr8
--HG--
extra : rebase_source : 3ae1207308de120b7299b13ecaa95dd1612b3459
2017-01-03 21:47:55 +02:00
Neil Deakin
d88256a9f9 Bug 1309596, add an updateDragImage method to modify the drag feedback image during the drag, r=smaug 2016-12-23 18:09:44 -05:00
Boris Zbarsky
784a52fd02 Bug 1317720. Use NeedsCallerType instead of NeedsSubjectPrincipal for DataTransfer.types. r=mystor 2016-11-15 12:46:32 -05:00
Boris Zbarsky
dda84c3ef8 Bug 1317599. Get rid of LegacyIsCallerChromeOrNativeCode use in datatransfer code. r=mystor 2016-11-15 12:46:32 -05:00
Michael Layzell
91e603e271 Bug 1306645 - Don't add application/x-moz-file entries from the clipboard to dataTransfer with e10s, r=enndeakin
application/x-moz-file entries on the clipboard are not able to be
successfully transmitted across synchronous IPC due to bug 1308007, thus
they appear as useless null files.

This patch hides those useless null files, and thus unhides image data
which may have been on the clipboard but was previously hidden by the
presence of an application/x-moz-file file

MozReview-Commit-ID: 4RmQe9kDZLe
2016-10-20 15:09:43 -04:00
Eric Rahm
1eb4ae7e0d Bug 1309698 - Remove usage of nsISupportsArray from nsIDragService. r=smaug 2016-10-18 11:56:20 -07:00
Michael Layzell
d85d6ed949 Bug 1309645 - Stop providing image/jpeg files as a string to websites, r=enndeakin
MozReview-Commit-ID: 1NsWeMk5V5s
2016-10-13 16:58:19 -04:00