Disable scoped_refptr operator T* on Linux builds.

The implicit conversion operator is being removed, because of the
surprises it can cause. For example, one might write:
  scoped_refptr<Foo> CreateFoo();
to ensure that callers hold the result in a scoped_refptr. But the
implicit conversion to T* means that a caller can accidentally hold
the result in a Foo* and the compiler won't catch it.

Since there are a large number of dependencies on this implicit
conversion, the cleanup is being conducted by a combination of
automated tooling and manual cleanup. It is also being staged on a
platform by platform basis. All known dependencies on the implicit
conversion on Linux (but not ChromeOS) have been removed, so this
patch disables the conversion operator on Linux builds to prevent
new dependencies on the implicit conversion.

Finally, to help facilitate this transition, temporary operator
overloads for comparison have been added. These will eventually be
removed.

BUG=110610
R=jyasskin@chromium.org, rsleevi@chromium.org, willchan@chromium.org

Review URL: https://codereview.chromium.org/510323002

Cr-Commit-Position: refs/heads/master@{#293459}
2 files changed