chromium/src/base.git
3 weeks agoRework UMAHistogramHelper and StatisticsDeltaReader into [Chrome]HistogramTester. master
mlerman@chromium.org [Thu, 21 Aug 2014 22:00:38 +0000 (22:00 +0000)]
Rework UMAHistogramHelper and StatisticsDeltaReader into [Chrome]HistogramTester.

Design Doc (Googlers Only):
https://docs.google.com/a/google.com/document/d/1RUY0BcxBppdkwFP3T8qbQmQStBRFGsLmuR4WuIXhiCA/edit

BUG=384011
TBR=timsteele@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@291207 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoMove default sanitizer options into build/ so that WebRTC can import them.
glider@chromium.org [Thu, 21 Aug 2014 20:34:46 +0000 (20:34 +0000)]
Move default sanitizer options into build/ so that WebRTC can import them.

BUG=302040
TBR=noelallen@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@291168 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoSwitch from local random address generation to kernel ASLR
simonb@chromium.org [Thu, 21 Aug 2014 17:06:39 +0000 (17:06 +0000)]
Switch from local random address generation to kernel ASLR

The current random base address generation in the Android chromium linker is prone
to error.  It selects an address at random between 0x20000000 and 0x40000000 and
expects that this will be clear.  This is occasionally untrue for ARM, but very
often untrue for MIPS.  As a consequence, RELRO sharing is being turned off more
frequently than it could be.

This change removes the local random address generation code and instead replaces
it with code that speculatively maps a large region, captures the address returned
by mmap, then unmaps and returns the address.  The expectation is that this region
will remain free for use when the time comes for the crazy linker to map the browser
into it.  This generally holds because the time between these two actions is short
and little, if anything, loads or mmaps between them.  Worst case is that RELRO
sharing turns off as at present, but the probability of this happening should now
be much lower.

Note that capturing the address from mmap relies on Android ASLR being active for
mmap.  This is the default device state since ICS.  The revised random browser
load address is only as entropic as Android's ASLR.

BUG=397634

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@291111 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoMake class lookup lazy in jni_generator when using lazy method lookup.
mkosiba@chromium.org [Thu, 21 Aug 2014 16:37:32 +0000 (16:37 +0000)]
Make class lookup lazy in jni_generator when using lazy method lookup.

This removes the eager class registration from RegisterNatives when possible.

BUG=402003
TBR=sievers@chromium.org, brettw@chromium.org, torne@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@291095 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoHandle bionic in safe_strerror_posix as well as glibc.
torne@chromium.org [Thu, 21 Aug 2014 12:05:40 +0000 (12:05 +0000)]
Handle bionic in safe_strerror_posix as well as glibc.

Android's bionic C library is intending to adopt the same semantics as
glibc for strerror_r: define the version that returns char* if the
source is compiled with _GNU_SOURCE instead of the POSIX version which
returns int. Add __BIONIC__ to the condition for
USE_HISTORICAL_STRERRO_R so that Chromium will still work.

BUG=

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@291050 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoAdd native libraries to gn apks
cjhopman@chromium.org [Thu, 21 Aug 2014 00:42:57 +0000 (00:42 +0000)]
Add native libraries to gn apks

First, change the NativeLibraries template to use preprocessor defines
instead of includes. This allows us to delete all the corresponding
headers.

Then, change the ordered libraries file to be a dict with both the list
of library paths and the java-style list of library names.

Update a bunch of things that used the ordered libraries file to instead
take the list of libraries directly as an argument (as a FileArg in
every case).

Add calculating the list of libraries to write_build_config and add it
to the build config (gn can use this then instead of a separate ordered
libraries file).

Add a simple copy step in gn to set up the native libraries directory
for an apk. Use this directory when creating the apk.

BUG=359249
NOTRY=true

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290963 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agowin: Fix a 64bit warning.
thakis@chromium.org [Wed, 20 Aug 2014 20:12:12 +0000 (20:12 +0000)]
win: Fix a 64bit warning.

clang warns:
..\..\base\files\file_path.cc(695,47) :  warning(clang): cast to 'wchar_t *' from smaller integer type 'LONG' (aka 'long') [-Wint-to-pointer-cast]
    wchar_t c1 = (wchar_t)LOWORD(::CharUpperW((LPWSTR)MAKELONG(*i1, 0)));
                                              ^

CharUpper() is a pretty whacko: It takes a pointer, but: """
A null-terminated string, or a single character. If the high-order word of this
parameter is zero, the low-order word must contain a single character to be
converted.""" (!)

It's not clear to me what this means on 64bit, but the code as-is casted a
32bit int (a DWORD) to a pointer, which I think doesn't guarantee that the
upper 4 byte of the 8 byte pointer are zero. So insert a cast to a pointer-wide
int type to guarantee this, and to fix this warning.

BUG=82385
R=brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290905 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoRevert 290861 "Base: Disable the scoped handle verifier."
rvargas@google.com [Wed, 20 Aug 2014 19:38:20 +0000 (19:38 +0000)]
Revert 290861 "Base: Disable the scoped handle verifier."

(the CL is only for the branch, not ToT)

> Base: Disable the scoped handle verifier.
>
> This is intended for the M38 branch. (The verifier is not intended for
> Beta/Stable)
>
> BUG=405224
> R=cpu@chromium.org
> TBR=cpu@chromium.org
> NOTRY=true
>
> Review URL: https://codereview.chromium.org/484293002

TBR=rvargas@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290892 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoDon't pass const strings to CreateProcess.
thakis@chromium.org [Wed, 20 Aug 2014 19:31:10 +0000 (19:31 +0000)]
Don't pass const strings to CreateProcess.

The documentation says that CreateProcess() can modify its second parameter
in UNICODE builds.

BUG=396705
R=scottmg@chromium.org, vitalybuka@chromium.org
TBR=cpu

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290890 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoBase: Disable the scoped handle verifier.
rvargas@chromium.org [Wed, 20 Aug 2014 17:44:20 +0000 (17:44 +0000)]
Base: Disable the scoped handle verifier.

This is intended for the M38 branch. (The verifier is not intended for
Beta/Stable)

BUG=405224
R=cpu@chromium.org
TBR=cpu@chromium.org
NOTRY=true

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290861 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoRevert 290810 "Make class lookup lazy in jni_generator when usin..."
ygorshenin@chromium.org [Wed, 20 Aug 2014 11:44:05 +0000 (11:44 +0000)]
Revert 290810 "Make class lookup lazy in jni_generator when usin..."

> Make class lookup lazy in jni_generator when using lazy method lookup.
>
> This removes the eager class registration from RegisterNatives when possible.
>
> BUG=402003
> TBR=sievers@chromium.org, brettw@chromium.org
>
> Review URL: https://codereview.chromium.org/472553002

TBR=mkosiba@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290813 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoMake class lookup lazy in jni_generator when using lazy method lookup.
mkosiba@chromium.org [Wed, 20 Aug 2014 11:19:36 +0000 (11:19 +0000)]
Make class lookup lazy in jni_generator when using lazy method lookup.

This removes the eager class registration from RegisterNatives when possible.

BUG=402003
TBR=sievers@chromium.org, brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290810 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoRemove large test timeout. It's large and only used at one place.
phajdan.jr@chromium.org [Wed, 20 Aug 2014 10:59:47 +0000 (10:59 +0000)]
Remove large test timeout. It's large and only used at one place.

It seems the last place where it was used is no longer needed.
The special case was added in 2012 (https://chromiumcodereview.appspot.com/10890031)
and if somehow we still need it now, I'd rather adjust action_max_timeout
for android (in C++ sources) rather than have another kind of timeout.

BUG=none
R=ajwong@chromium.org, yfriedman@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290808 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoOpen OWNERShip of sdk_forward_declarations.
avi@chromium.org [Wed, 20 Aug 2014 01:51:27 +0000 (01:51 +0000)]
Open OWNERShip of sdk_forward_declarations.

BUG=405076
TEST=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290725 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoAdd PDBs to .isolate files so that tests show stack traces.
jam@chromium.org [Tue, 19 Aug 2014 18:06:09 +0000 (18:06 +0000)]
Add PDBs to .isolate files so that tests show stack traces.

BUG=405074
R=scottmg@chromium.org
TBR=brettw, davidben

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290612 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoMac: Menu bar not hidden in immersive fullscreen mode.
erikchen@chromium.org [Tue, 19 Aug 2014 17:03:47 +0000 (17:03 +0000)]
Mac: Menu bar not hidden in immersive fullscreen mode.

When a window is on a secondary screen, and "Displays have separate spaces"
option is turned on, the menu bar is not hidden during immersive fullscreen
mode. The problem was that the logic to hide the menu bar was incorrectly
determining whether the screen had a menu bar.

After fixing the logic, I also had to introduce a minor hack to counteract the
"helpfulness" of AppKit. See http://crbug.com/403203 for further details.

BUG=396980

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290598 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoMac: Support default browser Handoff in Yosemite.
erikchen@chromium.org [Mon, 18 Aug 2014 23:25:26 +0000 (23:25 +0000)]
Mac: Support default browser Handoff in Yosemite.

This allows Chrome to accept a Handoff from any app when Chrome is the default
browser.  This has been manually tested.

Note that getting this to work in Yosemite DP5 requires manual modification of
the Info.plist prior to codesigning, as well as Chrome to be built as a 64-bit
binary. The former is an Apple bug, and the latter won't matter, since we're
phasing Chrome off of 32-bits. See bug for more details.

BUG=381516

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290404 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks ago[Android] Make ApplicationStatus thread safe
dtrainor@chromium.org [Mon, 18 Aug 2014 22:25:19 +0000 (22:25 +0000)]
[Android] Make ApplicationStatus thread safe

- Make sActivityInfo a ConcurrentHashMap instead of just a HashMap.

BUG=403951

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290379 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoWill no longer force jobs=1 with filters in bot mode.
phoglund@chromium.org [Mon, 18 Aug 2014 17:11:31 +0000 (17:11 +0000)]
Will no longer force jobs=1 with filters in bot mode.

The WebRTC bots happen to run with gtest filters, but want to run tests
in parallel anyway. It makes sense for bot mode to disregard the gtest
filter rule, which is a good heuristic in other cases.

BUG=402089

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290274 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoReturn configured processors in NumberOfProcessors() on posix platforms
jchuang@chromium.org [Mon, 18 Aug 2014 04:52:48 +0000 (04:52 +0000)]
Return configured processors in NumberOfProcessors() on posix platforms

On Linux/Mac/FreeBSD platform, NumberOfProcessors() was returning the number of
online processors. Change it to return the number of configured processors
(incl. offline processors).

1. Most callers of this API expect it to return totally available cpu cores,
   mainly for threading optimization.

2. The number of online processors is changed within seconds on some embedded
   platforms. It is wrong to pass the cached value of the number of currently
   online processors to Blink sandbox.

BUG=404364
TEST=Tested on nyan (it may have 1~4 cpu cores online)

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@290209 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoParse shmmax as a uint64
brettw@chromium.org [Fri, 15 Aug 2014 16:25:18 +0000 (16:25 +0000)]
Parse shmmax as a uint64

A recent Linux kernel change changed this to a number larger than 63 bits which causes us to compute 0 size.

I kept the size_t overflow check for cases where size_t is 32-bits.

BUG=403869
R=jamesr@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289903 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoChange gtest launcher, telemetry unittests to run in parallel and retry failures...
dpranke@chromium.org [Fri, 15 Aug 2014 14:23:21 +0000 (14:23 +0000)]
Change gtest launcher, telemetry unittests to run in parallel and retry failures by default.

Previously, gtest-based tests would not run tests in parallel or retry failures
by default unless you specified the --test-launcher-bot-mode flag

This patch changes the behavior so that we run tests in parallel and retry failures by
default if we are running *all* of the tests (i.e.,  --gtest_filter was *not* specified).

You can still pass --test-launcher-jobs=X to control how many tests run in parallel,
and --test-launcher-retry-limit=0 to turn retries off and
--test-launcher-retry-limit=X to control how many times to retry.

R=jam@chromium.org, phajdan.jr@chromium.org, ojan@chromium.org, tonyg@chromium.org
BUG=402089

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289839 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoRemove restriction on x64 chromium linker builds.
simonb@chromium.org [Thu, 14 Aug 2014 20:07:34 +0000 (20:07 +0000)]
Remove restriction on x64 chromium linker builds.

As of r287591 the android chromium linker supports EM_X86_64 and x86_64
relocations.  Remove the restriction preventing libchromium_android_linker.so
building when arch=x64.

BUG=369133

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289683 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agogn win: re-add event_recorder_stubs.cc, mistakenly removed before
scottmg@chromium.org [Thu, 14 Aug 2014 18:52:46 +0000 (18:52 +0000)]
gn win: re-add event_recorder_stubs.cc, mistakenly removed before

(This matches the gyp build)

R=brettw@chromium.org
TBR=brettw@chromium.org
BUG=354261

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289657 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoFix cpplint warnings.
simonb@chromium.org [Thu, 14 Aug 2014 17:45:19 +0000 (17:45 +0000)]
Fix cpplint warnings.

Fixes:
base/android/linker/linker_jni.cc:300:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
base/android/linker/linker_jni.cc:313:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
base/android/linker/linker_jni.cc:319:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
base/android/linker/linker_jni.cc:320:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]

BUG=

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289642 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoAdding atomic ops for MIPS64.
Gordana.Cmiljanovic@imgtec.com [Thu, 14 Aug 2014 17:14:05 +0000 (17:14 +0000)]
Adding atomic ops for MIPS64.

This change adds atomic operations for MIPS64.

BUG=400684

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289624 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoAdds some CHECKs to MessagePumpMojo
sky@chromium.org [Thu, 14 Aug 2014 15:48:24 +0000 (15:48 +0000)]
Adds some CHECKs to MessagePumpMojo

The thread watcher appears to be kicking on when we're trying to
remove a handle. Not sure why. This converts some DCHECKs to CHECKs
and fixes handling of the deadline. I suspect none of this will help,
but it's worth a shot.

BUG=399769
TEST=none
R=darin@chromium.org

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=288949

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289600 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agobase: Factor task debug annotations out of MessageLoop
skyostil@chromium.org [Thu, 14 Aug 2014 14:26:09 +0000 (14:26 +0000)]
base: Factor task debug annotations out of MessageLoop

The MessageLoop has some code for adding debug annotations such as trace
flows and memory usage tags to posted tasks. Since we want to use these
annotations more generally for tasks that are scheduled outside the base
message loop, this patch factors it out into a standalone class.

TEST=TaskAnnotatorTest
BUG=391005

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289560 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoDisallow breakaway from job on Windows 8, which supports nested jobs
phajdan.jr@chromium.org [Thu, 14 Aug 2014 11:18:26 +0000 (11:18 +0000)]
Disallow breakaway from job on Windows 8, which supports nested jobs

BUG=371406, 392108
R=sky@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289523 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoMove file_util to base/files/ directory.
brettw@chromium.org [Wed, 13 Aug 2014 20:22:14 +0000 (20:22 +0000)]
Move file_util to base/files/ directory.

This updates the includes in base but leaves a forwarding header for the rest of the project for now.

R=yzshen@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289360 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRevert 289312 "Move StringToUpperASCII and LowerCaseEqualsASCII ..."
brettw@chromium.org [Wed, 13 Aug 2014 16:48:41 +0000 (16:48 +0000)]
Revert 289312 "Move StringToUpperASCII and LowerCaseEqualsASCII ..."

> Move StringToUpperASCII and LowerCaseEqualsASCII to the base namespace
>
> Convert LowerCaseEqualsASCII to take StringPiece. In the current patch this is
> generally a NOP but will allow me to delete the other 4 variants in a followup
> (wanted to do that separately since that will require more review, since
> callsites will be changed in nontrivial ways).
>
> In some cases, LowerCaseEqualsASCII is called with a WebString, which no
> longer is implicitly converted. I added base::string16(...) around such
> calls to force the right conversion. It happened in these files:
>   window_container_type.cc
>   savable_resources.cc
>   render_view_impl.cc
>   blink_ax_tree_source.cc
>   password_form_conversion_utils.cc
>   translate_helper.cc
>   chrome_render_view_observer.cc
>   dom_serializer_browsertest.cc
>
> R=jamesr@chromium.org
>
> Review URL: https://codereview.chromium.org/448143008

TBR=brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289320 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoMove StringToUpperASCII and LowerCaseEqualsASCII to the base namespace
brettw@chromium.org [Wed, 13 Aug 2014 16:23:25 +0000 (16:23 +0000)]
Move StringToUpperASCII and LowerCaseEqualsASCII to the base namespace

Convert LowerCaseEqualsASCII to take StringPiece. In the current patch this is
generally a NOP but will allow me to delete the other 4 variants in a followup
(wanted to do that separately since that will require more review, since
callsites will be changed in nontrivial ways).

In some cases, LowerCaseEqualsASCII is called with a WebString, which no
longer is implicitly converted. I added base::string16(...) around such
calls to force the right conversion. It happened in these files:
  window_container_type.cc
  savable_resources.cc
  render_view_impl.cc
  blink_ax_tree_source.cc
  password_form_conversion_utils.cc
  translate_helper.cc
  chrome_render_view_observer.cc
  dom_serializer_browsertest.cc

R=jamesr@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289312 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoUpdate presubmit files to send windows tryjobs to swarming bots, now that the CQ...
jam@chromium.org [Wed, 13 Aug 2014 02:04:16 +0000 (02:04 +0000)]
Update presubmit files to send windows tryjobs to swarming bots, now that the CQ has switched over.

R=avi@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289157 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRe-land: base: Introduce an explicit call for reducing emulated discardable memory...
reveman@chromium.org [Wed, 13 Aug 2014 00:06:30 +0000 (00:06 +0000)]
Re-land: base: Introduce an explicit call for reducing emulated discardable memory usage.

This removes the use of memory pressure signals from discardable memory
system and instead introduces an explicit call for reducing emulated
discardable memory that the renderer can call when all widgets are hidden
until we have a better mechanism in place.

BUG=398087
TEST=base_unittests,content_browsertests

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289127 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoPass display names for uploaded content URI files
qinmin@chromium.org [Tue, 12 Aug 2014 22:53:31 +0000 (22:53 +0000)]
Pass display names for uploaded content URI files

The display names are missing for content URI files.
That will cause some upload to fail.
This CL translates the content URI to displayed name and passes them to native code.

BUG=402537

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289102 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRevert of Adds some CHECKs to MessagePumpMojo (https://codereview.chromium.org/454433...
adamk@chromium.org [Tue, 12 Aug 2014 20:42:12 +0000 (20:42 +0000)]
Revert of Adds some CHECKs to MessagePumpMojo (https://codereview.chromium.org/454433003/)

Reason for revert:
Speculative revert, attempting to diagnose timing out Blink layout tests on Windows.

Original issue's description:
> Adds some CHECKs to MessagePumpMojo
>
> The thread watcher appears to be kicking on when we're trying to
> remove a handle. Not sure why. This converts some DCHECKs to CHECKs
> and fixes handling of the deadline. I suspect none of this will help,
> but it's worth a shot.
>
> BUG=399769
> TEST=none
> R=darin@chromium.org
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=288949

TBR=darin@chromium.org,sky@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=399769

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289057 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks ago[Android] Record UMA metrics after native initialization completes.
feng@chromium.org [Tue, 12 Aug 2014 18:08:49 +0000 (18:08 +0000)]
[Android] Record UMA metrics after native initialization completes.

Discoverd that we never got LibraryLoader.NativeLibraryHack in UMA
histograms server. Found that's because UMA session was not started
yet right after native libraries are loaded.

By delaying recording until UMA session is started, these stats
shown up in chrome://histograms.

BUG=311644

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@289022 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoAdds some CHECKs to MessagePumpMojo
sky@chromium.org [Tue, 12 Aug 2014 14:19:52 +0000 (14:19 +0000)]
Adds some CHECKs to MessagePumpMojo

The thread watcher appears to be kicking on when we're trying to
remove a handle. Not sure why. This converts some DCHECKs to CHECKs
and fixes handling of the deadline. I suspect none of this will help,
but it's worth a shot.

BUG=399769
TEST=none
R=darin@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288949 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoAdd ScopedObjCClassSwizzler in base/mac, absorbs objc_method_swizzle and ScopedClassS...
tapted@chromium.org [Tue, 12 Aug 2014 12:03:48 +0000 (12:03 +0000)]
Add ScopedObjCClassSwizzler in base/mac, absorbs objc_method_swizzle and ScopedClassSwizzler

ScopedClassSwizzler from ui/test is wanted for new tests where it can't
currently be accessed. It also re-implements a concept in
chrome/common/mac/objc_method_swizzle.*

This change adds base::mac::ScopedObjCClassSwizzler, merges concepts
from objc_method_swizzle, and adjusts chrome_browser_application_mac.mm
to use the new swizzler.

The test from objc_method_swizzle is adapted and extended for the scoped
swizzler.

BUG=378134
TEST=base_unittests

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288943 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRevert of base: Introduce an explicit call for reducing emulated discardable memory...
tapted@chromium.org [Tue, 12 Aug 2014 03:56:39 +0000 (03:56 +0000)]
Revert of base: Introduce an explicit call for reducing emulated discardable memory usage. (https://codereview.chromium.org/448173002/)

Reason for revert:
tree-closer content_browsertests failing on Linux Chromium OS ASan LSan Tests (1)
test RenderThreadImplBrowserTest.EmulatedDiscardableMemoryDiscardedWhenWidgetsHidden
failing since
http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/builds/2501

Error: LeakSanitizer: detected memory leaks (Various Indirect leaks).
..
SUMMARY: AddressSanitizer: 19178 byte(s) leaked in 34 allocation(s).

Original issue's description:
> base: Introduce an explicit call for reducing emulated discardable memory usage.
>
> This removes the use of memory pressure signals from discardable memory
> system and instead introduces an explicit call for reducing emulated
> discardable memory that the renderer can call when all widgets are hidden
> until we have a better mechanism in place.
>
> BUG=398087
> TEST=base_unittests,content_browsertests
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=288793

TBR=jochen@chromium.org,mark@chromium.org,reveman@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=398087

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288913 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoMove ini_parser from base to chrome/common
brettw@chromium.org [Mon, 11 Aug 2014 22:44:25 +0000 (22:44 +0000)]
Move ini_parser from base to chrome/common

This was moved to base apparently thinking it could be shared with a media
gallery thing that seems not to have panned out.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288814 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agobase: Introduce an explicit call for reducing emulated discardable memory usage.
reveman@chromium.org [Mon, 11 Aug 2014 21:09:37 +0000 (21:09 +0000)]
base: Introduce an explicit call for reducing emulated discardable memory usage.

This removes the use of memory pressure signals from discardable memory
system and instead introduces an explicit call for reducing emulated
discardable memory that the renderer can call when all widgets are hidden
until we have a better mechanism in place.

BUG=398087
TEST=base_unittests,content_browsertests

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288793 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoDisable all the tests that are flaking more than 5% on Linux builders.
jam@chromium.org [Mon, 11 Aug 2014 16:12:37 +0000 (16:12 +0000)]
Disable all the tests that are flaking more than 5% on Linux builders.

Data from http://chromium-build-logs.appspot.com/flakiness_dashboard?master=chromium.linux.

BUG=386891,396458,396455,396462,396464,396492,396491,396488,396484,396482,396480,180759,396477,126092,396473,396472,396468,396466
R=viettrungluu@chromium.org
TBR=ben

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288722 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoThe WebView has a path (early use of the CookieManager) which
hjd@chromium.org [Mon, 11 Aug 2014 13:36:00 +0000 (13:36 +0000)]
The WebView has a path (early use of the CookieManager) which
needs access to the native command line arguments before we have
initialized Chromium.

This cl moves the setting up of the native command line to just after
the LibraryLoaded.load step rather than just before the
LibraryLoaded.initialise step.

We remove the ability to pass the command line to initialize
(which doesn't seem to be used) and remove the command line
argument from the LibraryLoaded hook. You can access the
native command line arguments instead which will have been set up.

BUG=331424

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288697 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoDon't register JNI methods for the android_webview.
mkosiba@chromium.org [Mon, 11 Aug 2014 11:27:12 +0000 (11:27 +0000)]
Don't register JNI methods for the android_webview.

Rather than registering all jni bindings at startup, only get references
to the class object for those files which require bindings. All others
are satisfied by exporting symbols which can be found automatically by
the VM.

BUG=402003

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288685 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agobase: Include intrin.h to get _ReturnAddress from clang
ehsan.akhgari@gmail.com [Sat, 9 Aug 2014 14:48:36 +0000 (14:48 +0000)]
base: Include intrin.h to get _ReturnAddress from clang

This is similar to r228123, to fix another occurrence where
_ReturnAddress is declared manually.

BUG=395593
R=cpu@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288575 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoThis change preents a race on the 'TZ' environ global variable in libc.
bengr@chromium.org [Sat, 9 Aug 2014 08:50:43 +0000 (08:50 +0000)]
This change preents a race on the 'TZ' environ global variable in libc.
This should prevent a crash when base::Time::LocalMidnight calls out to
Time::FromExploded() which invokes mktime(), which relies on the timezone,
which is initialized when initializing libc (bionic on Android).

BUG=390567

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288544 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRoll gtest and gmock DEPS.
ncbray@chromium.org [Sat, 9 Aug 2014 05:24:02 +0000 (05:24 +0000)]
Roll gtest and gmock DEPS.

These DEPS have not been updated for ~2 years, so there is a good chance
something will blow up. Due to interdependancy between the repos,
rolling gtest required gmock also be rolled.

This CL was originally landed as 288164 and reverted as 288239 because it allows
more aggressive LTO in MSVS. This resulted in the compiler noticing an
intentional arithmetic overflow and warning about it.

BUG=401761

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288505 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoFix shortcut tests and remove legacy shortcut code for the Default-user
gab@chromium.org [Fri, 8 Aug 2014 18:17:53 +0000 (18:17 +0000)]
Fix shortcut tests and remove legacy shortcut code for the Default-user
Quick Launch shortcut.

InstallShortcutTest.CreateAllShortcutsSystemLevel has been broken since http://crrev.com/164849 ...

The test expectations had not been adjusted in this CL as setup_unittests.exe
doesn't run on the waterfall yet (issue #153829) and the breakage had gone
unnoticed.

Expectations have now been adjusted such that we no longer expect a system-level
(Default-user) Quick Launch shortcut, but a per-user Quick Launch shortcut for
the admin running the install as the product code's logic has been doing for over
a year...

Also remove the code cleaning up the legacy Default-user Quick Launch shortcut as
this cleanup code has been running for 21 months now and leaving this shortcut
behind for a few users is a no-op (i.e. the Default-user shortcut will get copied
to new Windows profiles and Active Setup will kick in a few seconds later to try
to install the same shortcut which will already exist... the UX result will be
the same: a single Chrome Quick Launch shortcut will be installed).

BUG=329239, 153829

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288393 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRequire the result of StringPrintf to be used.
ricea@chromium.org [Fri, 8 Aug 2014 14:11:54 +0000 (14:11 +0000)]
Require the result of StringPrintf to be used.

When refactoring code it is easy to accidentally disregard the output of
base::StringPrintf. The code will still look superficially correct, and may even
pass code review (as happened with https://codereview.chromium.org/436133002/ ).

This type of bug can be prevented by annotating StringPrintf with
WARN_UNUSED_RESULT. Despite the name, this causes a compile error in our build
configuration (except on Windows, where it is ignored). This should ensure that
such errors are caught by the CQ if not sooner.

TEST=build all; base_unittests
BUG=400663

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288353 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoDisallow breakaway from job for unit tests
phajdan.jr@chromium.org [Fri, 8 Aug 2014 10:19:41 +0000 (10:19 +0000)]
Disallow breakaway from job for unit tests

BUG=328592, 371406
R=sky@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288305 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoFix how --gtest_filter interacts with PRE_ tests
phajdan.jr@chromium.org [Fri, 8 Aug 2014 10:09:11 +0000 (10:09 +0000)]
Fix how --gtest_filter interacts with PRE_ tests

BUG=371785
R=sky@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288298 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoDisable Poly1305 code only on bad chips.
agl@chromium.org [Fri, 8 Aug 2014 08:45:24 +0000 (08:45 +0000)]
Disable Poly1305 code only on bad chips.

This change detects buggy ARM chips and disables the Poly1305 code only on
those chips.

BUG=341598

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288267 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agobase: Remove now-unused MessagePumpObserver.
sadrul@chromium.org [Fri, 8 Aug 2014 01:47:41 +0000 (01:47 +0000)]
base: Remove now-unused MessagePumpObserver.

Jankometer is the last instance of a MessagePumpObserver. Since it has been
removed, MessagePumpObserver can also be removed.

BUG=none
R=darin@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288203 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRemove TraceOptions string based constructor. Add setter method
nednguyen@google.com [Fri, 8 Aug 2014 01:23:59 +0000 (01:23 +0000)]
Remove TraceOptions string based constructor. Add setter method
SetFromString that allows setting TraceOptions from a string instead.

SetFromString returns true upon success.

BUG=400382

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288193 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoMove file_util_icu to base::i18n namespace
brettw@chromium.org [Thu, 7 Aug 2014 23:59:15 +0000 (23:59 +0000)]
Move file_util_icu to base::i18n namespace

TBR=sky

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288170 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoMove the rest of test_file_util to base namespace.
brettw@chromium.org [Thu, 7 Aug 2014 22:57:11 +0000 (22:57 +0000)]
Move the rest of test_file_util to base namespace.

R=rvargas@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288158 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoAdd DACL and fix test for anonymous read-only memory
jschuh@chromium.org [Thu, 7 Aug 2014 22:07:43 +0000 (22:07 +0000)]
Add DACL and fix test for anonymous read-only memory

BUG=338538
R=rvargas@chromium.org,brettw@chromium.org
TBR=brettw@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288152 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoFollow-up for https://codereview.chromium.org/419323002/
thakis@chromium.org [Thu, 7 Aug 2014 20:04:19 +0000 (20:04 +0000)]
Follow-up for https://codereview.chromium.org/419323002/

operator delete apparently isn't throw() with msvs (at least in
_HAS_EXCEPTIONS=0 builds like ours). This fixes the two remaining
warnings in this file:

..\..\base\allocator/generic_allocators.cc(31,6) :  warning(clang): function previously declared with an implicit exception specification redeclared with an explicit exception specification [-Wimplicit-exception-spec-mismatch]
void operator delete(void* p) throw() {
     ^
E:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\new(52,16) :  note(clang): previous declaration is here
void __CRTDECL operator delete(void *) _THROW0();
               ^
In file included from ..\..\base\allocator\allocator_shim.cc:334:
..\..\base\allocator/generic_allocators.cc(39,6) :  warning(clang): function previously declared with an implicit exception specification redeclared with an explicit exception specification [-Wimplicit-exception-spec-mismatch]
void operator delete[](void* p) throw() {
     ^
E:\b\depot_tools\win_toolchain\vs2013_files\win8sdk\bin\..\..\VC\include\crtdbg.h(1054,16) :  note(clang): previous declaration is here
void __CRTDECL operator delete[](void *);
               ^
2 warnings generated.

There also wasn't a std::nothrow overload for delete, so add that for
completeness while here. (For C++14, we might have to add sized
overloads too at some point.)

BUG=82385
NOTRY=true

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288129 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRemove file_util::ScopedFILE and use base version.
brettw@chromium.org [Thu, 7 Aug 2014 17:01:49 +0000 (17:01 +0000)]
Remove file_util::ScopedFILE and use base version.

There is only one user of this class. The new implementation is in
base/files/scoped_file.h

R=viettrungluu@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288087 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoMove StringToLowerASCII to base namespace
brettw@chromium.org [Thu, 7 Aug 2014 16:55:42 +0000 (16:55 +0000)]
Move StringToLowerASCII to base namespace

TBR=sky

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288085 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRemove wstring file path helpers from test_file_util.
brettw@chromium.org [Thu, 7 Aug 2014 16:53:01 +0000 (16:53 +0000)]
Remove wstring file path helpers from test_file_util.

These were only used by one test file, so I moved the implementation there. I
considered updating the test, but the way the test uses wstrings seems
reasonable.

R=rvargas@chromium.org, rvargas

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288084 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoUpdate manually triggered try jobs to use swarming for ChromeOS and Mac since they...
jam@chromium.org [Thu, 7 Aug 2014 15:43:24 +0000 (15:43 +0000)]
Update manually triggered try jobs to use swarming for ChromeOS and Mac since they're switched by CQ already.

TBR=ben

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288050 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoAdd RECORD_AS_MUCH_AS_POSSIBLE mode to TraceOptions.
nednguyen@google.com [Thu, 7 Aug 2014 15:41:12 +0000 (15:41 +0000)]
Add RECORD_AS_MUCH_AS_POSSIBLE mode to TraceOptions.

With current implementation of devtool_tracing_handler, it doesn't do
anything with invalid options and just use RECORD_UNTIL_FULL by default. So
the change to telemetry's tracing backend will not break backward
compatibility for browsers that don't support "record-as-much-as-possible" option.

However, this is a hacky way to maintain backward compatibility, and we
should fix devtool_tracing_handler so it can respond with error message on
Tracing.start if there is options parsing error.

BUG=396081

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288047 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoTake extra lock in base::WaitableEvent::WaitMany.
yhirano@chromium.org [Thu, 7 Aug 2014 08:09:11 +0000 (08:09 +0000)]
Take extra lock in base::WaitableEvent::WaitMany.

Currently WaitMany doesn't ensure that the corresponding |Signal| is done
when the WaitMany call is returned.
That is problematic when we share the event over threads and want to wait
for detaching it in order to delete it after that.

BUG=397435
R=agl@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@288005 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoThis is an ordered set tailored to GN's (simple) needs.
brettw@chromium.org [Wed, 6 Aug 2014 21:44:33 +0000 (21:44 +0000)]
This is an ordered set tailored to GN's (simple) needs.

This vector is now used to store all config lists. Previously the code did a bunch of work to uniquify configs at certain points (in target.cc) but direct_dependent_configs still ended up with lots of duplicates.

Before this patch the chrome/browser target has 41098 direct_dependent_configs, and after this patch it has 7. Apparently we were also spending a lot of time on these. Before this patch Windows wall clock time was 1031ms, and after this patch it's 831ms. Linux was 834ms before and 593ms after.

Also fix minor build issues in base I noticed while working on this.

R=viettrungluu@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287865 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRefactor GN source expansions.
brettw@chromium.org [Wed, 6 Aug 2014 20:38:45 +0000 (20:38 +0000)]
Refactor GN source expansions.

This is in preparation for using {{patterns}} in toolchain definitions. It makes them
more generic and usable for this, without actually implementing any new features or
changing behavior. The only external change should be that the $in variable is used for
actions instead of making a redundant new variable (used to be called $source).

It removes the FileTemplate class and explodes it into several files: the type list and
helpers (substitution_type), a single pattern (substitution_pattern), a list of patterns
(substitution_list), and a class of helper functions for processing templates in various
ways (substitution_writer).

Previously, the things needing substitutions (args, outputs, depfile) were stored as
strings and parsed in to FileTemplates as needed. This new method stores the
SubstitutionList/Pattern directly on the target. This allows it to issue parse errors
(previously such errors were ignored since errors weren't reportable when writing Ninja
files) and cleans up a lot of the code that uses it.

R=scottmg@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287847 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoMake QPCValueToMicroseconds faster in case the value is less than 44 bits
fmeawad@chromium.org [Wed, 6 Aug 2014 06:21:18 +0000 (06:21 +0000)]
Make QPCValueToMicroseconds faster in case the value is less than 44 bits

If the QPC value is less than 44 bits, it is safe to multiply by a 20 bits
value (1000000) without risking overflow. This optimization reduces the
call time by half.

BUG=158234

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287704 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoReenable trace_event_unittest for windows
nednguyen@google.com [Wed, 6 Aug 2014 05:49:00 +0000 (05:49 +0000)]
Reenable trace_event_unittest for windows

BUG=396403

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287690 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoFactored out duplicate code for formatting full test name
sergiyb@chromium.org [Tue, 5 Aug 2014 22:56:43 +0000 (22:56 +0000)]
Factored out duplicate code for formatting full test name

R=phajdan.jr@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287628 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoGN: Add missing dep from //base:prefs_test_support on //testing/gtest.
jbroman@chromium.org [Tue, 5 Aug 2014 14:44:01 +0000 (14:44 +0000)]
GN: Add missing dep from //base:prefs_test_support on //testing/gtest.

gtest.h is included pref_store_observer_mock.cc and testing_pref_service.cc.
Found using 'gn check'.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287540 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agobase/allocator: Hardcode TCMalloc optimization level to 2 on Windows.
willchan@chromium.org [Tue, 5 Aug 2014 04:55:31 +0000 (04:55 +0000)]
base/allocator: Hardcode TCMalloc optimization level to 2 on Windows.

TCMalloc is very slow in debug mode. Testing this out on Linux demonstrates
clear wins, so I'm hopeful Windows will similarly improve. This change mostly
copies the same configuration from ffmpeg, which unifies the setting of the
optimization level variables in target_defaults.

BUG=388949

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287454 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoDisable TraceOptionsTest.TraceOptionsFromString
robliao@chromium.org [Mon, 4 Aug 2014 18:05:05 +0000 (18:05 +0000)]
Disable TraceOptionsTest.TraceOptionsFromString

This test breaks on iOS Simulation.

Introduced by https://codereview.chromium.org/425593002

BUG=400382
TBR=nednguyen

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=287361

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287362 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoDisable TraceOptionsTest.TraceOptionsFromString
robliao@chromium.org [Mon, 4 Aug 2014 17:58:35 +0000 (17:58 +0000)]
Disable TraceOptionsTest.TraceOptionsFromString

This test breaks on iOS Simulation.

Introduced by https://codereview.chromium.org/425593002

BUG=400382
TBR=nednguyen

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287361 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoRefactor tracing to pass around base::debug::TraceOptions to reduce spaghetti
nednguyen@google.com [Mon, 4 Aug 2014 16:30:52 +0000 (16:30 +0000)]
Refactor tracing to pass around base::debug::TraceOptions to reduce spaghetti

Previously, the options for tracing were passed around with different ad hoc
systems. Strings in some places, base::debug::TraceOptions enum in others,
and a content::TraceOptions in yet another. There were two separate ad-hoc
string formats. Similar messes were present with category filters: sometimes
we passed strings, sometimes the CategoryFilter.

This patch though enormous looking simply consolidates all this ad-hockery
into base::debug::TraceOptions. It may look like the call sites have gotten
more verbose,
but the end result of this is a consistent understanding of TraceOptions.

There is one exception to this consolidation: devtools has to maintain its own
mapping of string->TraceOptions encoding. This is because DevTools makes
guarantees about backward compatibility: if base changes its mind about the
string form of a TraceOption, devtools needs to keep supporting the old form.

BUG=396081
TBR=cevans@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287348 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agobase/allocator: Hardcode TCMalloc debug optimization level to 2 on Linux.
willchan@chromium.org [Sat, 2 Aug 2014 22:21:52 +0000 (22:21 +0000)]
base/allocator: Hardcode TCMalloc debug optimization level to 2 on Linux.

TCMalloc is very slow in debug mode. This may have a substantial improvement
on test cycle time. Theoretically, we shouldn't need to debug TCMalloc
very often.

BUG=388949

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287226 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoFix template bugs that prevent rolling gtest DEPS.
ncbray@chromium.org [Fri, 1 Aug 2014 22:44:13 +0000 (22:44 +0000)]
Fix template bugs that prevent rolling gtest DEPS.

BUG=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287111 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoDisable SharedMemoryTest.AnonymousExecutable on iOS.
lliabraa@chromium.org [Fri, 1 Aug 2014 22:36:10 +0000 (22:36 +0000)]
Disable SharedMemoryTest.AnonymousExecutable on iOS.

This test is not applicable for iOS.

BUG=399384

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@287107 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoAdd builders for tracing event's structural arguments
yurys@chromium.org [Fri, 1 Aug 2014 13:10:38 +0000 (13:10 +0000)]
Add builders for tracing event's structural arguments

The new classes allow building JSON-like structural arguments. Current implementation uses base::Value as backing store but that can be replaced in the future with something more efficient without changing client code.

All clients of cc/debug/traced_value.h should eventually switch to use the new builders.

BUG=361045

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286849

R=alph@chromium.org, dsinclair@chromium.org, nduca@chromium.org, willchan@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286984 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoLinux, Android: fix call to setpriority(2).
jln@chromium.org [Fri, 1 Aug 2014 07:50:43 +0000 (07:50 +0000)]
Linux, Android: fix call to setpriority(2).

setpriority(), when used with PRIO_PROCESS, should affect the whole
process (i.e. thread group). On Linux the system call only affects one
thread (this bug is documented in
http://man7.org/linux/man-pages/man2/getpriority.2.html) and thus lets
the caller specify a tid.

This CL changes the call to setpriority(PRIO_PROCESS, tid, ...) to
setpriority(PRIO_PROCESS, 0, ...), which is strictly equivalent, albeit
slightly more correct.

This makes filtering system calls in our sandbox easier, as the current thread
id is not known to the BPF filter.

BUG=399473
R=mdempsky@chromium.org, willchan@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286964 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agobase::PEIMage: Handle the case of relocations not ending with an empty record.
rvargas@chromium.org [Fri, 1 Aug 2014 00:19:35 +0000 (00:19 +0000)]
base::PEIMage: Handle the case of relocations not ending with an empty record.

Make sure that relocations are contained by the relocation directory.

BUG=109259
R=cpu@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286925 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoDisable certain malloc-library tests for OSX 10.9 32-bit.
shess@chromium.org [Thu, 31 Jul 2014 23:57:00 +0000 (23:57 +0000)]
Disable certain malloc-library tests for OSX 10.9 32-bit.

Chromium's code to enable malloc corruption detection, out-of-memory
termination, and UncheckedMalloc/Calloc under older versions of the OSX malloc
library stopped working under OSX 10.9 (Mavericks).  The 64-bit malloc library
handles corruption detection the way Chromium prefers by default, allowing
everything to work correctly.  Short-circuit the tests which cannot be fixed for
the intersection of 32-bit and OSX >= 10.9.

BUG=383082

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286917 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agomac: Revert "Don't draw a window title on browser windows."
erikchen@chromium.org [Thu, 31 Jul 2014 23:55:58 +0000 (23:55 +0000)]
mac: Revert "Don't draw a window title on browser windows."

The reverted CL: https://codereview.chromium.org/329793003/.

The CL was introduced because the tab's title was being drawn on the browser
window in Yosemite Beta 1. The API used to fix this problem was [NSWindow
setTitleVisibility:].

The problem no longer exists in Yosemite Beta 4. The API used to fix the
problem introduced other problems. http://crbug.com/392544.

BUG=392544, 380229
TEST=See reproduction steps in both bugs.
TBR=mark

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286916 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoRevert of Add builders for tracing event's structural arguments (https://codereview...
erikchen@chromium.org [Thu, 31 Jul 2014 19:02:09 +0000 (19:02 +0000)]
Revert of Add builders for tracing event's structural arguments (https://codereview.chromium.org/380763002/)

Reason for revert:
linux ASAN errors.

http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/4493/steps/base_unittests/logs/stdio

Original issue's description:
> Add builders for tracing event's structural arguments
>
> The new classes allow building JSON-like structural arguments. Current implementation uses base::Value as backing store but that can be replaced in the future with something more efficient without changing client code.
>
> All clients of cc/debug/traced_value.h should eventually switch to use the new builders.
>
> BUG=361045
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286849

TBR=alph, caseq, dsinclair, nduca, willchan, yurys
NOTREECHECKS=true
NOTRY=true
BUG=361045

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286862 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoAdd builders for tracing event's structural arguments
yurys@chromium.org [Thu, 31 Jul 2014 17:59:29 +0000 (17:59 +0000)]
Add builders for tracing event's structural arguments

The new classes allow building JSON-like structural arguments. Current implementation uses base::Value as backing store but that can be replaced in the future with something more efficient without changing client code.

All clients of cc/debug/traced_value.h should eventually switch to use the new builders.

BUG=361045

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286849 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks ago[Android] Pass the right listener to DatePickerDialog
miguelg@chromium.org [Thu, 31 Jul 2014 13:25:55 +0000 (13:25 +0000)]
[Android] Pass the right listener to DatePickerDialog

BUG=395768

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286791 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoDraw the start of input latency using its original/ui timestamp
miletus@chromium.org [Thu, 31 Jul 2014 03:24:09 +0000 (03:24 +0000)]
Draw the start of input latency using its original/ui timestamp

Currently we draw the start of input event's latencyinfo using the
timestamp when we issue the async trace event when the input event
is passing through RWH. This CL changes that we now draw the start
of input event's latencyinfo using the input event's orignial/ui
component's timestamp so visually we can better see when the input
event was created.

BUG=396236
TEST=do scroll latency tracing on pixel/android, see that now latency
     for TouchMove and GestureScrollUpdate are drawn at the same starting
     time.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286705 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoHide some SyzyASan specific code behind an '#if defined(COMPILER_MSVC)'.
sebmarchand@chromium.org [Thu, 31 Jul 2014 03:12:03 +0000 (03:12 +0000)]
Hide some SyzyASan specific code behind an '#if defined(COMPILER_MSVC)'.

This is necessary for the code in base/debug/... because it gets included by base_nacl which is compiled with g++ which doesn't support SyzyASan.

R=thakis@chromium.org
BUG=

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286699 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoMacViews: Get NativeTheme colors from the system preferences
tapted@chromium.org [Thu, 31 Jul 2014 00:18:26 +0000 (00:18 +0000)]
MacViews: Get NativeTheme colors from the system preferences

Mac has some basic colour customisation available in Preferences ->
General (Preferences -> Appearance in earlier OS versions). "Blue" or
"Graphite" changes menu/controls appearance. The colour for highlighted
text can be anything. Power users can also modify
~/Library/Colors/System.clr.

This change adds the scaffolding to look up these colors from the system
in NativeThemeMac. Not all colours are mapped yet.

Screenshot at http://crbug.com/379086#c2

BUG=379086

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286356

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286651 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoAdd unsigned 64-bit integer support to BigEndianReader and BigEndianWriter.
benchan@chromium.org [Wed, 30 Jul 2014 23:24:48 +0000 (23:24 +0000)]
Add unsigned 64-bit integer support to BigEndianReader and BigEndianWriter.

BUG=None

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286636 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoRenderTextHarfBuzz: Allow mid-glyph cursors in multi-grapheme clusters
ckocagil@chromium.org [Wed, 30 Jul 2014 18:49:21 +0000 (18:49 +0000)]
RenderTextHarfBuzz: Allow mid-glyph cursors in multi-grapheme clusters

Use the Unicode grapheme boundary algorithm via ICU BreakIterator to count graphemes in clusters

BUG=383265
TBR=jshin
NOTRY=true

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286569 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoRelanding after a fix: Attempt to load system fonts using Custom Font interface of...
shrikant@chromium.org [Wed, 30 Jul 2014 08:56:17 +0000 (08:56 +0000)]
Relanding after a fix: Attempt to load system fonts using Custom Font interface of directwrite
instead of system font collection interface.
The theory is that system font collection may sometime appear to hang or just not load fonts on systems with
large number of fonts (in order of 1000+). With custom font collection we want to take control of font loading part and explore ways to improve it further.

This particular approach is loading all fonts inside renderer, we can potentially use this same code load fonts from browser side as and when required.

BUG=394164
R=cpu@chromium.org, jam@chromium.org, scottmg@chromium.org

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=285977

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286449 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoAdd LINKER_INITIALIZER marker to MemoryMappedFile::Region::kWholeFile
primiano@chromium.org [Wed, 30 Jul 2014 07:02:10 +0000 (07:02 +0000)]
Add LINKER_INITIALIZER marker to MemoryMappedFile::Region::kWholeFile

This is a follow-up to crrev.com/394313002. const initializers which
rely on the linker zero-initialization should use the LINKER_INITIALIZER
ctor for documentation purposes.
More discussion about this in the linked CL.

BUG=394502

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286423 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoRevert of MacViews: Get NativeTheme colors from the system preferences (https://coder...
tapted@chromium.org [Wed, 30 Jul 2014 01:15:34 +0000 (01:15 +0000)]
Revert of MacViews: Get NativeTheme colors from the system preferences (https://codereview.chromium.org/308673006/)

Reason for revert:
Raises an exception on Snow Leopard:

chrome_browser_application_mac.mm(147)] Someone is trying to raise an exception!  NSInvalidArgumentException reason *** -numberOfComponents not defined for the NSColor NSNamedColorSpace System windowBackgroundColor; need to first convert colorspace.

Original issue's description:
> MacViews: Get NativeTheme colors from the system preferences
>
> Mac has some basic colour customisation available in Preferences ->
> General (Preferences -> Appearance in earlier OS versions). "Blue" or
> "Graphite" changes menu/controls appearance. The colour for highlighted
> text can be anything. Power users can also modify
> ~/Library/Colors/System.clr.
>
> This change adds the scaffolding to look up these colors from the system
> in NativeThemeMac. Not all colours are mapped yet.
>
> Screenshot at http://crbug.com/379086#c2
>
> BUG=379086
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=286356

NOTREECHECKS=true
NOTRY=true
TBR=tapted@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286369 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoMacViews: Get NativeTheme colors from the system preferences
tapted@chromium.org [Wed, 30 Jul 2014 00:11:44 +0000 (00:11 +0000)]
MacViews: Get NativeTheme colors from the system preferences

Mac has some basic colour customisation available in Preferences ->
General (Preferences -> Appearance in earlier OS versions). "Blue" or
"Graphite" changes menu/controls appearance. The colour for highlighted
text can be anything. Power users can also modify
~/Library/Colors/System.clr.

This change adds the scaffolding to look up these colors from the system
in NativeThemeMac. Not all colours are mapped yet.

Screenshot at http://crbug.com/379086#c2

BUG=379086

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286356 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks ago[Mac] Fix ProcessUtilTest.FDRemapping for 10.9 and later.
shess@chromium.org [Tue, 29 Jul 2014 00:20:13 +0000 (00:20 +0000)]
[Mac] Fix ProcessUtilTest.FDRemapping for 10.9 and later.

OSX 10.9 introduced a kernel facility which allows tagging file
descriptors to prevent various operations unless the caller knows the
key.  libdispatch uses this facility to tag a file descriptor against
close() or dup(), and this test does both.  Unfortunately, the failure
case is to raise a kernel exception and hang the child process rather
than return an error code.

This change addresses this by attempting to set a guard.  If successful,
the guard is removed and the caller can close the file descriptor as
normal.  If unsuccessful, either the file descriptor is not valid, or it
is guarded and cannot be closed.  Either way, it is skipped.  The test
still succeeds by counting the file descriptors which can be closed.

BUG=338157

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286037 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoAdd beginnings of android_apk and unittest_apk templates
cjhopman@chromium.org [Mon, 28 Jul 2014 23:53:11 +0000 (23:53 +0000)]
Add beginnings of android_apk and unittest_apk templates

This adds two templates, android_apk and unittest_apk. unittest_apk is
a simple wrapper of android_apk for packaging gtests into apks.

android_apk currently just does the java compilation, processing
resources, and build_config stuff for apks.

BUG=359249

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286031 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks ago[Android] Configurable instrumentation test runner + test SDK levels.
jbudorick@chromium.org [Mon, 28 Jul 2014 23:06:17 +0000 (23:06 +0000)]
[Android] Configurable instrumentation test runner + test SDK levels.

This patch:
  - extracts the instrumentation test runner from the
    AndroidManifest.xml file in the apk.
  - allows test authors to specify a minimum SDK level for
    instrumentation test classes via the MinAndroidSdkLevel annotation.
  - filters the list of instrumentation tests according to the sdk
    levels of all attached devices.
  - speeds up our proguard function by dumping to a temporary file.

BUG=

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@286014 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoRevert 285977 "Attempt to load system fonts using Custom Font in..."
zmo@chromium.org [Mon, 28 Jul 2014 22:07:05 +0000 (22:07 +0000)]
Revert 285977 "Attempt to load system fonts using Custom Font in..."

> Attempt to load system fonts using Custom Font interface of directwrite
> instead of system font collection interface.
> The theory is that system font collection may sometime appear to hang or just not load fonts on systems with
> large number of fonts (in order of 1000+). With custom font collection we want to take control of font loading part and explore ways to improve it further.
>
> This particular approach is loading all fonts inside renderer, we can potentially use this same code load fonts from browser side as and when required.
>
> BUG=394164
> R=cpu@chromium.org, jam@chromium.org, scottmg@chromium.org
>
> Review URL: https://codereview.chromium.org/406693003

TBR=shrikant@chromium.org

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@285994 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoMove scoped_observer.h from base_unittests to base. It is not a test.
jbroman@chromium.org [Mon, 28 Jul 2014 21:29:57 +0000 (21:29 +0000)]
Move scoped_observer.h from base_unittests to base. It is not a test.

Found with 'gn check'.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/base@285985 4ff67af0-8c30-449e-8e8b-ad334ec8d88c