[iOS/ARC] Fix a violation of ODR in base::BindBlock under ARC.
The template function base::BindBlock invoked the constructor of
base::mac::ScopedBlock that has two different signature whether
ARC (automatic reference counting) is enabled or not.
If two different files are compiled with a different ARC setting
(one has ARC enabled, the other has it disabled) and both invoke
base::BindBlock with the same type of block (i.e. same signature)
then the function has two different implementation (which is a
violation of the ODR) and one of them is selected at link-time.
As the base::BindBlock implementation does retain the block, this
can only lead to over-retaining an object (as the implementation
leaks if the ARC version of base::mac::ScopedBlock is invoked) not
to over-releasing.
Review-Url: https://codereview.chromium.org/2522943003
Cr-Commit-Position: refs/heads/master@{#434182}
(cherry picked from commit 3baab423ea642cc0851a482841091fd8ac9f8b3c)
Reverted changes to the following files not yet converted to ARC
in branch 2883 (M55):
ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_io_data.mm
ios/chrome/browser/share_extension/share_extension_item_receiver.mm
ios/chrome/browser/ssl/ios_ssl_error_handler_unittest.mm
Fix issue with location tracking icon disappearing on M55
This CL is a followup to https://codereview.chromium.org/2534563002/
which merged https://codereview.chromium.org/2524053002/ into M55. The
CL on trunk fixed the issue on trunk, but was not enough on M55 beacuse
at that time we also need to filter out NavigationHandles with
IsSynchronousNavigation set to true. On M55,
NavigationHandle::IsSamePage was set later in time, so we can't use it
as we're doing on trunk.