Commit Graph

381 Commits

Author SHA1 Message Date
Sylvestre Ledru
cec75ca74a Bug 1498586 - Add clang-format off to avoid the reformatting of the data structures r=Ehsan
Too hard/impossible for the tool to format correctly these structs

Differential Revision: https://phabricator.services.mozilla.com/D8569
2018-10-12 20:48:24 +00:00
aceman
b2b333a25e Bug 1486311 - convert remaining nsIFile::GetDirectoryEntries() callers to pass in a nsIDirectoryEnumerator. r=kmag 2018-08-26 14:15:00 +03:00
Kris Maglione
015e3a6c02 Bug 1484496: Part 4b - Add intrinsic type information to most nsSimpleEnumerators. r=froydnj
This allows JS callers to automatically get the correct types during
interation, without having to explicitly specify them.

Differential Revision: https://phabricator.services.mozilla.com/D3728
2018-08-18 21:06:32 -07:00
Kris Maglione
3d4f2ad97e Bug 1484496: Part 4a - Add JS iterator support to nsISimpleEnumerator. r=mccr8
This patch adds simple stubs to convert between the nsISimpleEnumerator
iteration protocol and the JS iteration protocol.

Each iterable object is required to have an @@iterator method which returns an
object implementing the iterator protocol. The later objects, by convention,
also have such a method which returns the object itself.

This patch adds both a @@iterator() and entries() methods to
nsISimpleEnumerator. The former returns an iterator which returns plain
nsISupports objects. The latter accepts an IID and queries each element to
that IID before returning it. If any element fails to query, the error is
propagated to the caller.

Differential Revision: https://phabricator.services.mozilla.com/D3727
2018-08-18 16:02:49 -07:00
Kris Maglione
09aa6cec83 Bug 1484496: Part 3 - Fix nsISimpleEnumerator implementations with broken contracts. r=froydnj
The nsISimpleEnumerator contract specifies that GetNext() returns
NS_ERROR_FAILURE when iteration is complete. Several implementations, however,
either return NS_OK and a null result, or return some other error code, when
iteration is complete.

Since my initial implementation of the JS iteration stubs rely on the
contract-defined behavior of GetNext(), these need to be fixed before it can
land.

Differential Revision: https://phabricator.services.mozilla.com/D3726
2018-08-18 18:28:10 -07:00
Kris Maglione
f67d651497 Bug 1484496: Part 2 - Add common base class for all nsISimpleEnumerator implementations. r=froydnj
In order to allow JS callers to use nsISimpleEnumerator instances with the JS
iteration protocol, we'll need to additional methods to every instance. Since
we currently have a large number of unrelated implementations, it would be
best if they could share the same implementation for the JS portion of the
protocol.

This patch adds a stub nsSimpleEnumerator base class, and updates all existing
implementations to inherit from it. A follow-up will add a new base interface
to this class, and implement the additional functionality required for JS
iteration.

Differential Revision: https://phabricator.services.mozilla.com/D3725
2018-08-18 14:22:47 -07:00
Nathan Froyd
c96f50bfea Bug 1471743 - remove STRICT_FAKE_SYMLINKS code from nsLocalFileWin; r=erahm
We don't define STRICT_FAKE_SYMLINKS anywhere, so this is dead code.
2018-08-21 17:00:59 -04:00
Nathan Froyd
d128bccaa8 Bug 1471434 - micro-optimize refcounting for directory enumerators; r=erahm
We were not being as efficient as we could be with passing ownership.
2018-06-27 09:46:33 -04:00
Paolo Amadini
6c0fa152c2 Bug 1468217 - Add "SettingContent-ms" to the list of executable file extensions. r=Gijs 2018-06-18 11:26:33 +01:00
Honza Bambas
e649dc852b Bug 1413868. r=valentin 2018-06-07 13:56:16 -04:00
Josh Aas
d3d23ccd72 Bug 1457941: Add a number of result checks to nsLocalFileWin, avoid use of uninitialized values. r=froydnj 2018-05-30 19:04:00 +03:00
Kris Maglione
187318b0b7 Bug 1462937: Update callers to use nsIFile::GetDirectoryEntries as a nsIDirectoryEnumerator. r=froydnj
MozReview-Commit-ID: Iv4T1MVAF5
2018-05-19 20:17:45 -07:00
Kris Maglione
5566d02db3 Bug 1462483: Part 1 - Explicitly return a nsIDirectoryEnumerator from nsIFile::GetDirectoryEntries. r=froydnj
All of our GetDirectoryEntries implementations return a
nsIDirectoryEnumerator, and a lot of relies on this, and explicitly QIs to it.
That gets a bit ugly, and in JS code, a bit expensive. We should just return a
directory enumerator directly if that's part of the API contract.

MozReview-Commit-ID: IUeEB1Ih1Wu
2018-05-17 15:06:48 -07:00
Masatoshi Kimura
36fbba9f7a Bug 1440630 - Reduce nsIFile::ResolveAndStat() calls. r=froydnj 2018-02-23 21:45:41 +09:00
Masatoshi Kimura
1b6d30c812 Bug 1428258 - Disallow nsIFile::GetNativePath on Windows. r=froydnj
MozReview-Commit-ID: JDryRqHcVw2
2018-01-11 22:38:33 +09:00
Masatoshi Kimura
09338299a8 Bug 1428557 - Stop using GetNativePath in xpcom/. r=froydnj
MozReview-Commit-ID: GnSFQ1wprzb
2017-12-15 06:53:37 +09:00
Masatoshi Kimura
373dd8e253 Bug 1433265 - Remove ShortcutResolver from nsLocalFileWin.cpp. r=froydnj
MozReview-Commit-ID: GeFCZI3OkuQ
2018-01-31 20:56:17 +09:00
Masatoshi Kimura
f97057dd85 Bug 1428543 - Add nsIFile::HumanReadablePath. r=froydnj
This method is used to replace some GetNativePath usage for logging.

MozReview-Commit-ID: 9nWf2r4oviA
2017-12-30 23:32:27 +09:00
Masatoshi Kimura
988da94ca7 Bug 1428543 - Add mozilla::filesystem::Path and use it in nsIFile. r=froydnj
Currently only |value_type| is implemented.

MozReview-Commit-ID: 1mejzvkuako
2017-12-28 03:03:35 +09:00
Chris Peterson
677bf4030c Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe
2017-11-05 19:37:28 -08:00
Chris Peterson
c5d0841695 Bug 1416164 - Replace NS_POSTCONDITION with MOZ_ASSERT. r=froydnj
MozReview-Commit-ID: 9K3Ksf36uxr
2017-11-04 22:48:48 -07:00
Sylvestre Ledru
d4bc4b1554 Bug 1411001 - Remove the +x permissions on cpp & h files r=froydnj
MozReview-Commit-ID: DjDkL20wRg0
2017-10-23 20:59:55 +02:00
Eric Rahm
1e281805ca Bug 1393230 - Part 2: Fix more improper string usages. r=njn
This fixes improper usages of Find where an offset was actually being use for
the boolean ignore case flag. It also fixes a few instances of passing in a
literal wchar_t to our functions where a NS_LITERAL_STRING or char16_t should
be used instead.
2017-08-31 15:52:30 -07:00
Tom Ritter
1d66e1d9b2 Bug 1394013 Fix forbidden string constant assignment r=froydnj
ISO C++ forbids converting a string constant to 'wchar_t*' [-Werror=write-strings]

Either change it to a nullptr (which has same intent) or pass through a static


MozReview-Commit-ID: CSunOCyO9PN
2017-08-22 16:58:06 -05:00
Nicholas Nethercote
be5f8887c1 Bug 1390428 (part 9) - Remove nsXPIDLCString. r=erahm.
This is straightforward, with only two notable things.

- `#include "nsXPIDLString.h" is replaced with `#include "nsString.h"`
  throughout, because all nsXPIDLString.h did was include nsString.h. The
  exception is for files which already include nsString.h, in which case the
  patch just removes the nsXPIDLString.h inclusion.

- The patch removes the |xpidl_string| gtest, but improves the |voided| test to
  cover some of its ground, e.g. testing Adopt(nullptr).
2017-08-17 15:29:03 +10:00
Tom Ritter
d24e7780bd Bug 1392609 Find returns an int32_t not a uint32_t r=froydnj
MozReview-Commit-ID: 8jBe7CGbAvM
2017-08-22 06:21:09 -05:00
Masatoshi Kimura
012500cff8 Bug 1375125 - Remove nsILocalFile. r=froydnj
MozReview-Commit-ID: 6oU6Ya5UXtC
2017-08-05 09:43:49 +09:00
Nicholas Nethercote
fcd4f4fa21 Bug 1376638 - Minimize uses of prmem.h. r=glandium.
It's silly to use prmem.h within Firefox code given that in our configuration
its functions are just wrappers for malloc() et al. (Indeed, in some places we
mix PR_Malloc() with free(), or malloc() with PR_Free().)

This patch removes all uses, except for the places where we need to use
PR_Free() to free something allocated by another NSPR function; in those cases
I've added a comment explaining which function did the allocation.
2017-06-30 19:05:41 -07:00
Bill McCloskey
ce42826bdf Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Nicholas Nethercote
a58025002f Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.
2017-06-22 17:08:53 +10:00
Nicholas Nethercote
4cbdad69e6 Bug 1374580 (part 2) - Remove nsAFlat{,C}String typedefs. r=froydnj.
All the instances are converted as follows.

- nsAFlatString  --> nsString
- nsAFlatCString --> nsCString
2017-06-20 19:19:05 +10:00
Carsten "Tomcat" Book
238bf154d5 Backed out changeset 4f6302a98ae4 (bug 1372405) 2017-06-21 13:59:26 +02:00
Bill McCloskey
67e8af4720 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book
bbe9441993 Backed out changeset 9846de3bd954 (bug 1372405) 2017-06-20 08:27:02 +02:00
Bill McCloskey
f69608368b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Eric Rahm
b732a14f8c Bug 1353593 - Part 2: Remove wwc functions. r=froydnj
This removes the use of |wwc| functions in favor of char16ptr_t's implicit
conversion operators.

MozReview-Commit-ID: GHONYieMPla
2017-06-12 16:20:49 -07:00
Eric Rahm
f60adcc637 Bug 1353544 - Replace usage of PR_BEGIN_MACRO in xpcom. r=froydnj 2017-04-05 18:06:44 -07:00
Tom Tromey
48da5b7de4 Bug 1060419 - remove unneeded includes of prprf.h, r=froydnj
MozReview-Commit-ID: JifhpA3oOeH
2016-12-09 10:00:01 -10:00
Sebastian Hengst
82c05cde11 Backed out changeset c8fe57b085bd (bug 1333631) 2017-01-30 23:17:34 +01:00
Masatoshi Kimura
ded7cb2cec Bug 1333631 - Disallow nsIFile::GetNativeTarget on Windows. r=froydnj
MozReview-Commit-ID: 4igXHPtQu4x
2017-01-25 23:36:50 +09:00
Chris Peterson
e1678e8f01 Bug 1331171 - Part 2: Remove Windows shell integration checks for Windows Vista. r=jimm
MozReview-Commit-ID: 8B6HnnpVP4L
2017-01-14 01:19:22 -08:00
David Major
9a41f9eba5 Bug 1316120: Fix nsLocalFileWin.cpp build on clang-cl. r=froydnj
This keeps the ITEMIDLIST pointers in the "LP" flavour to avoid casting away __unaligned qualifiers. __unaligned is meaningless on non-Itanium platforms but clang-cl nonetheless has trouble with it. (https://llvm.org/bugs/show_bug.cgi?id=30578)
2016-11-10 11:48:59 -06:00
Gijs Kruitbosch
608636d29e Bug 1279240 - move path parsing of commandline handlers for mimetypes/protocols to nsILocalFileWin, r=froydnj
MozReview-Commit-ID: 4CENm3iqGUH
2016-09-30 17:18:41 +01:00
Wes Kocher
297b6a4a72 Backed out 3 changesets (bug 1279240) for leaks on Windows VM mochitests a=backout
Backed out changeset 4b69e32e3a83 (bug 1279240)
Backed out changeset d0d5180dc062 (bug 1279240)
Backed out changeset dc1b725b47d4 (bug 1279240)
2016-09-29 17:44:41 -07:00
Gijs Kruitbosch
1a18619793 Bug 1279240 - move path parsing of commandline handlers for mimetypes/protocols to nsILocalFileWin, r=froydnj
MozReview-Commit-ID: 4CENm3iqGUH
2016-09-27 11:51:43 +01:00
Nicholas Nethercote
1f65390cc9 Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.
2016-08-08 12:18:10 +10:00
Chris Peterson
6c0f810682 Bug 1277106 - Part 2: Expand MOZ_UTF16() strings to u"" string literals. r=Waldo 2016-07-20 22:03:25 -07:00
Kyle Huey
b035c8c5c6 Bug 1282527: Remove remaining PR_ASSERTs outside of NSPR/NSS. r=dbaron 2016-06-28 10:47:22 -07:00
Aaron Klotz
607d933810 Bug 1258009: Move nsLocalFile::Launch back to the main thread on Win32, but pass SEE_MASK_ASYNCOK and a parent HWND; r=jimm
This is as much a perf issue as it is a UX issue. We should be passing a HWND to
ShellExecuteEx because it can show UI, and that UI should have a proper
parent-child relationship with the Mozilla window. We should do that on the
main thread because of the GUI stuff. OTOH, we want the ShellExecuteEx call to
be a lightweight as possible, hence the SEE_MASK_ASYNCOK flag.

MozReview-Commit-ID: 7VLkWTRWPoe
2016-05-05 16:52:18 -06:00
Kyle Huey
a9cf047227 Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00