Commit Graph

41 Commits

Author SHA1 Message Date
Boris Zbarsky
9a8e024fa0 Bug 1455674 part 13. Remove remaining xpidl uses of nsIDOMElement. r=qdot 2018-04-26 23:37:29 -04:00
Kyle Machulis
d02dd47205 Bug 1406224 - Remove nsIDOMHTMLImageElement; r=bz
MozReview-Commit-ID: GCATWRt6qMo
2017-10-06 13:27:23 -07:00
Stephen A Pohl
467dd73061 Bug 1119088: Fix ability to set an image as desktop background via context menu on macOS. r=mstange,mconley 2017-08-09 14:43:39 -04:00
Nicholas Nethercote
723f585d9c Bug 1386600 - Change nsIStringBundle methods to return |AString| instead of |wstring|. r=emk,sr=dbaron.
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.
2017-08-04 14:40:52 +10:00
Nicholas Nethercote
8b5bdf0867 Bug 1380227 - Avoid many UTF16toUTF8 and UTF8toUTF16 conversions in nsStringBundle. r=emk.
Most of the names passed to nsIStringBundle::{Get,Format}StringFromUTF8Name
have one of the two following forms:

- a 16-bit C string literal, which is then converted to an 8-bit string in
  order for the lookup to occur;

- an 8-bit C string literal converted to a 16-bit string, which is then
  converted back to an 8-bit string in order for the lookup to occur.

This patch introduces and uses alternative methods that can take an 8-bit C
string literal, which requires changing some signatures in other methods and
functions. It replaces all C++ uses of the old methods.

The patch also changes the existing {Get,Format}StringFromName() methods so
they take an AUTF8String argument for the name instead of a wstring, because
that's nicer for JS code.

Even though there is a method for C++ code and a different one for JS code,
|binaryname| is used so that the existing method names can be used for the
common case in both languages.

The change reduces the number of NS_ConvertUTF8toUTF16 and
NS_ConvertUTF16toUTF8 conversions while running Speedometer v2 from ~270,000 to
~160,000. (Most of these conversions involved the string
"deprecatedReferrerDirective" in nsCSPParser.cpp.)
2017-07-12 15:13:37 +10:00
Perry Jiang
b18706308f Bug 1357154 - Cache Windows executable path after BinaryPath::Get is called in main. r=ehsan
MozReview-Commit-ID: Qby9b4ngz2
2017-06-22 10:56:04 -07:00
Robert Strong
3980b45d76 Bug 692295 - Remove nsWindowsShellService's ShortcutMaintenance method and calls now that it is no longer needed. r=jimm
Removes nsIWindowsShellService.idl since there are no longer custom methods and it can just use nsIShellService.idl
Removes a couple of includes that are no longer used and should have been removed after the code to delete Firefox prefetch files was removed
2017-06-12 18:42:23 -07:00
David Major
7c0497b430 Bug 1344629 - Part 6: Rewrite unnecessary uses of nsLiteralString. r=dbaron
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());

This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.

I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.

MozReview-Commit-ID: Kh1rUziVllo
2017-03-14 15:26:27 +13:00
Iris Hsiao
22d2818760 Backed out 12 changesets (bug 1344629) for stylo build bustage
Backed out changeset cf4273d3ac30 (bug 1344629)
Backed out changeset a96390e044e0 (bug 1344629)
Backed out changeset d9b330f9bc24 (bug 1344629)
Backed out changeset 2b460fe020af (bug 1344629)
Backed out changeset 0ada91b0452e (bug 1344629)
Backed out changeset 083304fcd6bd (bug 1344629)
Backed out changeset 53d7d1ce2c97 (bug 1344629)
Backed out changeset 55eee7078ae4 (bug 1344629)
Backed out changeset 7d3c06b3eca9 (bug 1344629)
Backed out changeset e5df14c3db61 (bug 1344629)
Backed out changeset 636095ff2815 (bug 1344629)
Backed out changeset 0be052ad24c1 (bug 1344629)
2017-03-14 11:52:24 +08:00
David Major
a660713d2b Bug 1344629 - Part 6: Rewrite unnecessary uses of nsLiteralString. r=dbaron
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());

This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.

I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.

MozReview-Commit-ID: Kh1rUziVllo
2017-03-14 15:26:27 +13:00
Matt Howell
f416eeabe1 Bug 1338843 - Use the install path to distinguish between multiple installations when checking default browser status. r=emk
MozReview-Commit-ID: DIcyAs92dm0
2017-02-13 15:36:28 -08:00
Carsten "Tomcat" Book
6493ea3d64 merge mozilla-inbound to mozilla-central a=merge 2017-02-10 13:49:56 +01:00
Makoto Kato
0842ca7fa4 Bug 1337266 - Don't use LoadLibrary to use Vista+ API in browser/components. r=jimm
MozReview-Commit-ID: AUSwfNHqJmc
2017-02-10 16:40:19 +09:00
Matt Howell
60cd831214 Bug 1337530 - Fix Windows default browser detection. r=rstrong
In addition to fixing the bug, this patch takes the opportunity to remove a
bunch of registry handling code specific to XP and Vista, leaving only the one
officially supported default detection method for all versions above Vista.

MozReview-Commit-ID: 1I77ECJaOFk
2017-02-08 08:37:20 -08:00
Matt Howell
129b988df4 Bug 1324617 - Allow any of multiple installations to be set as the Windows default browser; r=jimm,rstrong
Previously each new installation of any Firefox channel in any location would
just overwrite the Windows registry keys which register us as a candidate for
the default browser setting and for all of our potential file and protocol associations.

This meant that only the most recent installation (across all channels) was ever
selectable in those settings.

It also meant that creating a new installation when one was already present
tripped Windows 10's shenanigans alarm, because it saw the registration for an
existing application getting clobbered by a new one and couldn't tell that they
were really the same application.

The response to that alarm going off is to reset the default browser to Edge,
and maybe or maybe not generate a system notification about that. This is the
cause of bug 1324617. Obviously we would like to prevent that outcome.

So with this commit we generate new registration entries for each installation,
by adding a hash of the install path to the relevant identifiers.

MozReview-Commit-ID: Fz1xDtittMi
2017-01-09 08:14:00 -08:00
Sebastian Hengst
d4e7bbfbf9 Backed out changeset 5b0aa267bc53 (bug 1324617) for Windows build bustage (warning in CityHash.h). r=backout on a CLOSED TREE 2017-01-30 23:20:01 +01:00
Matt Howell
a856b42f0a Bug 1324617 - Allow any of multiple installations to be set as the Windows default browser; r=jimm,rstrong
Previously each new installation of any Firefox channel in any location would
just overwrite the Windows registry keys which register us as a candidate for
the default browser setting and for all of our potential file and protocol associations.

This meant that only the most recent installation (across all channels) was ever
selectable in those settings.

It also meant that creating a new installation when one was already present
tripped Windows 10's shenanigans alarm, because it saw the registration for an
existing application getting clobbered by a new one and couldn't tell that they
were really the same application.

The response to that alarm going off is to reset the default browser to Edge,
and maybe or maybe not generate a system notification about that. This is the
cause of bug 1324617. Obviously we would like to prevent that outcome.

So with this commit we generate new registration entries for each installation,
by adding a hash of the install path to the relevant identifiers.

MozReview-Commit-ID: Fz1xDtittMi
2017-01-09 08:14:00 -08: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
Masatoshi Kimura
1c69ea1c75 Bug 1302023 - Disable a workaround for Windows 10 Default apps on build 14965 or later. r=jimm
MozReview-Commit-ID: 5mKkr12n9HP
2016-11-12 01:32:24 +09:00
Enes Goktas
9205ec54b0 Bug 1302855 - Fold browsercomps into xul; r=bsmedberg
MozReview-Commit-ID: 8oaVngXFfh3
2016-09-27 19:54:37 -07: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
Masatoshi Kimura
08e71caa64 Bug 1251819 - Use the classic Control Panel if the Settings app believes the current Windows logon is a Microsoft account while actually it is not. r=jimm 2016-04-02 08:17:16 +09:00
Masatoshi Kimura
86989f85a2 Bug 1250781 - Scroll "Default apps" into the default browser option. r=Gijs 2016-02-25 07:10:35 +09:00
Jared Wein
7ecc79a49f Bug 1240892 - Disable default-app hash storage. r=dolske 2016-01-22 10:12:00 +01:00
Jared Wein
c3f27c3b0d Bug 1238712 - Move duplicated shell-service code to a shared JSM. r=gijs 2016-01-15 12:35:15 -05:00
Jared Wein
83c49e4141 Bug 1225648 - Remove duplicate skipDefaultBrowser code and fix double-counting error when tracking prompt counts. r=Gijs 2015-11-18 11:37:29 -05: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
Nathan Froyd
bf7f6dda03 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Jared Wein
39e8a487a7 Bug 1208000 - Default browser dialog appears only 2 times. r=Gijs 2015-09-24 14:18:00 +02:00
Jared Wein
c4afcb7809 Bug 1191250 - Defer showing the default browser prompt to 2nd run (and only show it a maximum of three times). r=jimm 2015-08-28 16:30:00 -04:00
Masatoshi Kimura
e0c33baef8 Bug 1184508 - Remember registry hash for later use on Win8+. r=jimm 2015-07-22 19:31:06 +09:00
Jared Wein
e53109bd01 Bug 1183682 - Remove the default browser A/B test for Windows 10 (keep Settings approach). r=gijs 2015-07-15 10:36:55 -04:00
Emanuel Hoogeveen
b30abdc582 Bug 905127 - Part 1 - Make some functions from nsNetUtil not inline. r=jduell 2015-07-07 04:17:00 +02:00
Brian R. Bondy
520dde756c Bug 791501 - Default Programs UI should select Firefox by default. r=jimm 2015-06-27 12:27:26 +09:00
Jared Wein
a1c57c5f23 Bug 1176112 - A/B test for default browser setting UI on Windows 10. r=Gijs 2015-06-20 01:16:05 -04:00
Masatoshi Kimura
0f65da1786 Bug 1172724 - Use the "openas" verb to select the default HTTP handler on Windows 10. r=jaws, jimm 2015-06-19 08:16:52 +09:00
Jared Wein
4c7fdf1b78 Bug 1167294 - Launch the modern Settings app when setting the default browser on Windows 10. r=jimm,Gijs 2015-06-03 11:40:40 -04:00
Hector Zhao
a42eba72dd Bug 1138807 - Treat user cancelling of HTTPHandlerPane as Success. r=jimm 2015-03-03 12:55:50 +08:00
Gavin Sharp
e9102c0a38 Bug 1041516 part 2: reset the "check for default browser" pref to true when setting ourselves as the default browser, r=Gijs 2014-10-13 21:15:43 -07:00
Gavin Sharp
24c06d7306 Bug 1041516 part 1: clean up pref code in shell service, r=bsmedberg 2014-10-13 21:10:47 -07:00
Birunthan Mohanathas
083a89ae95 Bug 1038458 - Part 7: Flatten browser/components/shell/{public,src}/ directories. r=mak 2014-07-26 09:32:14 -07:00