summaryrefslogtreecommitdiffstats
path: root/base
Commit message (Collapse)AuthorAgeFilesLines
* Remove raw handles from base::win::RegKeyrvargas2014-10-153-60/+144
| | | | | | | | | BUG=419210, 423634 R=cpu@chromium.org, eroman@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/632833002 Cr-Commit-Position: refs/heads/master@{#299737}
* Fix Mac ASan builds.John Abd-El-Malek2014-10-151-1/+7
| | | | | | | | | R=maruel@chromium.org BUG=414808 Review URL: https://codereview.chromium.org/662453002 Cr-Commit-Position: refs/heads/master@{#299723}
* Fix LSan on swarming.John Abd-El-Malek2014-10-151-0/+8
| | | | | | | | | | | ASAN_OPTIONS=detect_leaks=1 needs to be passed in. BUG=414808 R=earthdok@chromium.org, maruel@chromium.org Review URL: https://codereview.chromium.org/659543003 Cr-Commit-Position: refs/heads/master@{#299712}
* Use scoped_ptr::Pass instead of scoped_ptr::PassAs<T>.dcheng2014-10-1510-30/+30
| | | | | | | | | | | Also convert a few explicit invocations of the default scoped_ptr ctor to just use nullptr instead. BUG=423621 Review URL: https://codereview.chromium.org/655003004 Cr-Commit-Position: refs/heads/master@{#299709}
* Remove two SequencedWorkerPool histograms.asvitkine2014-10-151-12/+0
| | | | | | | | | | | | | | | These two histograms are the #1 and #3 biggest histograms in terms of data size in UMA. These were not owned, which suggests they're not being used - as unowned histograms are no longer accessible on the dashboard. BUG=387734 Review URL: https://codereview.chromium.org/652333003 Cr-Commit-Position: refs/heads/master@{#299654}
* grt for owner of base/wincpu2014-10-151-0/+1
| | | | | | | | BUG=none Review URL: https://codereview.chromium.org/650413002 Cr-Commit-Position: refs/heads/master@{#299645}
* MacViews: Handle failure to enter fullscreentapted2014-10-152-0/+12
| | | | | | | | | | | | | | | | | | | | | | Annoyingly, when failing to enter fullscreen, Cocoa tells us that we (successfully) *exited* fullscreen before telling us that the operation to enter was a failure. Luckily, Cocoa ignores a request to go back into fullscreen at this point. Coming out of fullscreen, the reverse is true: the failure is received first. But then Cocoa just dumps the window out of fullscreen anyway. Turns out to handle these states, we just need to rearrange some DCHECKs. A unit test is also added to simulate the sequence of notifications that Cocoa sends, which were found by manual testing. BUG=378134 Review URL: https://codereview.chromium.org/650793002 Cr-Commit-Position: refs/heads/master@{#299596}
* Allow custom deleters to opt out of self reset checks for scoped_ptr.dcheng2014-10-142-3/+52
| | | | | | | | | | | | | | | | | The self-reset check makes sense for the default deleters, because it would otherwise leave a dangling pointer stored in the scoped_ptr. However, a custom deleter might actually decrement a reference count under the hood. This self-reset check can make assignment operators implementation a lot uglier. One example is net's KeyPair: because there might be a self-assignment, the original code needed to proxy the incoming scoped_ptrs via a stack temporary before moving them into their final location. BUG=418347 Review URL: https://codereview.chromium.org/610533003 Cr-Commit-Position: refs/heads/master@{#299571}
* Fix Java Checkstyle issues.Aurimas Liutikas2014-10-145-21/+21
| | | | | | | | | | | | | | After this change we are down to: - 3 redundant import warnings (due to JNI generator) - 69 JavaDoc warnings BUG=318404 R=agl@chromium.org, blundell@chromium.org, boliu@chromium.org, lambroslambrou@chromium.org, nyquist@chromium.org, qinmin@chromium.org, rmcilroy@chromium.org, tedchoc@chromium.org TBR=yfriedman@chromium.org Review URL: https://codereview.chromium.org/652603004 Cr-Commit-Position: refs/heads/master@{#299540}
* base: Rename and move Mach implementation of discardable memory to a ↵reveman2014-10-1411-156/+211
| | | | | | | | | | | | | | | | | | separate file. This will hopefully reduce confusion about the N-M mapping between platforms and discardable memory implementations by not having an implementation named after a platform. This also moves the Mach implementation of discardable memory used on mac to a separate file for consistency with other platforms and discardable memory implementations. BUG=422953 Review URL: https://codereview.chromium.org/649233002 Cr-Commit-Position: refs/heads/master@{#299528}
* remove the FINAL macromostynb2014-10-141-7/+0
| | | | | | | | | | | All uses of the FINAL macro have been removed now, let's remove the macro itself. BUG=417463 Review URL: https://codereview.chromium.org/655543003 Cr-Commit-Position: refs/heads/master@{#299523}
* Use C++11 atomicsjfb2014-10-147-231/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL moves the Chrome code base to C++11 atomics instead of inline assembly for the toolchains that support C++11's <atomic>. The patch is constructed to modify as little code as possible, and will be followed-up with other patches to clean up the rest of the code base. This change should allow compilers to emit better code when dealing with atomics (LLVM has recently seen substantial improvements thanks to morisset's work), be more portable, eventually delete a bunch of code, and in subsequent changes atomicity will be based on memory location instead of individual accesses (making the code less error-prone, and easier to analyze). This patch stems from a fix I recently made to V8 to build under NaCl and PNaCl. This was gating V8's C++11 migration: they needed to move to the LLVM-based NaCl toolchain which didn't work with atomicops' inline assembly. V8 currently uses the __sync_* primitives for the NaCl/PNaCl build, which imply sequential consistency and are therefore suboptimal. Before doing further work I want to fix Chrome's own headers, and trickle these changes to V8. Future changes: * The atomicops headers are copied in 8 locations [0] in the Chrome code base, not all of them are up to date. Those should all be updated in their individual repositories (some are in thiry_party). * The signature of functions should be updated to take an atomic location instead of the pointer argument, and all call sites should be updated (there are current 127 such calls [1] in chromium/src in non-implementation and non-test files). * Atomic operations should be used directly. A few things worth noting: * The atomicops_internals_portable.h file contains the main implementation, and has extra notes on implementation choices. * The CL removes x86 CPU features detection from the portable implementation: - Because the headers are copied in a few places and the x86 CPU feature detection uses a static global that parses cpuid, the atomicops_internals_x86_gcc.cc file was only built once, but its struct interface was declared external and used in protobuf and tcmalloc. Removing the struct from Chrome's own base makes the linker sad because of the two uses. This has two implications: # Don't specialize atomics for SSE2 versus non SSE2. This is a non-issue since Chrome requires a minimum of SSE2. The code is therefore faster (skip a branch). # The code doesn't detect the AMD Opteron Rev E memory barrier bug from AMD errata 147 [2]. This bug affects Opterons 1xx/2xx/8xx that shipped in 2003-2004. In general compilers should work around this bug, not library code. GCC has had this workaround since 2009 [3], but it is still an open bug in LLVM [4]. See comment #27 on the code review: this CPU is used by 0.02% of Chrome users, for whom the race would have to occur and the compiler not have the workaround for the bug to manifest. This also makes the code faster by skipping a branch. * The CL moves the declaration of the x86 CPU features struct to atomicops.h, and matches its fields with the ones duplicated across the code base. This is transitional: it fixes a link failure because tcmalloc relied on the x86_gcc.{h,cc} declaration and implementation, and it fixes an ODR violation where the struct didn't always have 3 members (and the other members were sometimes accessed, uninitialized). * tsan already rewrites all atomics to its own primitives, its header is therefore now unnecessary. The implementation takes care to detect and error out if that turns out not to be true. * MemoryBarrier works around a libstdc++ bug in older versions [5]. The workaround is exactly the non-buggy code for libstdc++ (call out to the compiler's builtin). * The assembly generated by GCC 4.8 and LLVM 3.6 for x86-32/x86-64/ARM when using this portable implementation can be found in [6]. [0]: find . -name "atomicops.h" ./base/atomicops.h ./v8/src/base/atomicops.h ./native_client_sdk/src/libraries/sdk_util/atomicops.h ./third_party/webrtc/base/atomicops.h ./third_party/tcmalloc/chromium/src/base/atomicops.h ./third_party/tcmalloc/vendor/src/base/atomicops.h ./third_party/re2/util/atomicops.h ./third_party/protobuf/src/google/protobuf/stubs/atomicops.h [1]: git grep Barrier_ | grep -v atomicops | grep -v unittest | wc -l [2]: http://support.amd.com/us/Processor_TechDocs/25759.pdf [3]: https://gcc.gnu.org/ml/gcc-patches/2009-10/txt00046.txt [4]: http://llvm.org/bugs/show_bug.cgi?id=5934 [5]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51038 [6]: https://code.google.com/p/chromium/issues/detail?id=423074 TEST=ninja -C out/Release base_unittests TEST=trybots BUG=246514 BUG=234215 BUG=420970 BUG=423074 R= dvyukov@google.com, thakis@chromium.org, glider@chromium.org, hboehm@google.com, morisset@google.com, willchan@chromium.org Review URL: https://codereview.chromium.org/636783002 Cr-Commit-Position: refs/heads/master@{#299485}
* Convert COMPILE_ASSERT to static_assert in base/numericsjschuh2014-10-144-36/+34
| | | | | | | | | | C++11 compliance to eliminate a dependency on base/macros.h R=tsepez@chromium.org Review URL: https://codereview.chromium.org/651503003 Cr-Commit-Position: refs/heads/master@{#299479}
* Add UMA for testing whether device supports memory mapping APK files with ↵petrcermak2014-10-144-7/+125
| | | | | | | | | | | | | | | | executable permissions. The following histogram is added: ChromiumAndroidLinker.LoadFromApkSucceeded Whether memory mapping the Chromium APK file with executable permissions succeeded. BUG=390618 Review URL: https://codereview.chromium.org/643803003 Cr-Commit-Position: refs/heads/master@{#299461}
* Make ARRAYSIZE_UNSAFE() just use arraysize().viettrungluu2014-10-141-47/+5
| | | | | | | | | | | For every two problems that C++11 causes, it fixes at least one. R=thestig@chromium.org,tsepez@chromium.org BUG=423134 Review URL: https://codereview.chromium.org/647753003 Cr-Commit-Position: refs/heads/master@{#299419}
* base: Remove non-caching discardable memory implementation.reveman2014-10-1310-130/+6
| | | | | | | | | | | | | | | | | | This removes the "malloc" implementation of discardable memory. This implementation exists for test and debugging purproses but we currently don't have any tests that depend on it so it can be removed to reduce code size. This implementation can still be very useful to manually track down bugs and performance issues in discardable memory clients but can be maintained separately to reduce code size. BUG=422953 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/651913003 Cr-Commit-Position: refs/heads/master@{#299374}
* gpu: Compositor management of GpuMemoryBuffer instances.reveman2014-10-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | This is a refactor of the CHROMIUM_image extension that allows the compositor to map/unmap GpuMemoryBuffers on worker threads and potentially also allocate these buffers on worker threads. CreateImageCHROMIUM now takes an opaque ClientBuffer as first parameter. ClientBuffer is implementation specific and in the case of chromium a gfx::GpuMemoryBuffer. Or more specifically a content::GpuMemoryBufferImpl when used with the content layer. This allows the compositor to allocate and use GpuMemoryBuffers without a GLES2Interface. A GpuMemoryBufferManager interface has been introduced. This interface provides a mechanism for the compositor to allocate GpuMemoryBuffer instances in the renderer and browser process. BUG=418553 Review URL: https://codereview.chromium.org/634083002 Cr-Commit-Position: refs/heads/master@{#299360}
* base: Add NOTREACHED() for when using a non-supported discardable memory type.reveman2014-10-134-14/+18
| | | | | | | | | | | | This adds a NOTREACHED() statement for when a non-supported discardable memory type is used on a platform. BUG=422953 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/654593002 Cr-Commit-Position: refs/heads/master@{#299345}
* base: Use range-based for loops in DiscardableMemoryManager.reveman2014-10-131-5/+4
| | | | | | | | | BUG=422953 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/652663005 Cr-Commit-Position: refs/heads/master@{#299343}
* Rationalize and fix chromium android linker histogram recording.simonb2014-10-134-43/+118
| | | | | | | | | | | | | | | | | | | | | | | | Replace histogram recording for devices where the chromium android linker is enabled with the following: ChromiumAndroidLinker.BrowserStates Whether relro sharing was attempted for the browser process, and if attempted, whether it succeeded. (0=normal load, 1=low memory load with shared relro, 2=low memory load used backoff so no shared relro) ChromiumAndroidLinker.RendererStates Whether relro sharing was attempted for a renderer process, and if attempted, whether it succeeded. (0=load with shared relro, 1=load used backoff so no shared relro, 2=shared relro not attempted) If the chromium android linker is not enabled, none of the above histograms is recorded. BUG=419010 Review URL: https://codereview.chromium.org/611393002 Cr-Commit-Position: refs/heads/master@{#299291}
* MacViews: NativeWidget -> Widget notifications: fullscreen, activation.tapted2014-10-122-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fullscreen is asynchronous on Mac, so NativeWidgetMac needs to coordinate with the ViewsNSWindowDelegate to behave in the manner views code expects. Part of this is maintaining the restored bounds, which Cocoa doesn't provide access to. Activation also goes through the ViewsNSWindowDelegate. It's simpler but needs an interactive_ui_test, which is added. Other NSWindowDelegate messages are deferred to a follow-up. Maximize is "implemented" as a no-op on Mac, since it's indistinguishable from a large window (whereas views code typically expects maximize to remove window borders). This CL gets the following views_unittests passing: WidgetTest.GetRestoredBounds WidgetTest.ExitFullscreenRestoreState WidgetTest.FullscreenFrameLayout Many Cocoa-native tests are also added to ensure user-initiated operations are correctly observed. BUG=403679, 378134 Review URL: https://codereview.chromium.org/388453002 Cr-Commit-Position: refs/heads/master@{#299263}
* Disable implicit conversions from scoped_refptr to T* on iOS.dcheng2014-10-111-1/+1
| | | | | | | | BUG=110610 Review URL: https://codereview.chromium.org/643193002 Cr-Commit-Position: refs/heads/master@{#299238}
* Align base::hash_map with C++11, part 1.davidben2014-10-113-23/+11
| | | | | | | | | | | | | | | | | C++11's std::hash provides a default hash for T* that hashes by pointer value. So does MSVC's stdext::hash_value, but not GCC's __gnu_cxx::hash (and STLPort's std::hash). To align non-MSVC with both MSVC and the standard, provide a default hash for pointers. This removes a lot of GCC-specific hash definitions. Confusingly, all three provide a default hash for const char * that hashes as C string, while not changing their equality. This CL does not change this on any platform. BUG=420242 Review URL: https://codereview.chromium.org/630503002 Cr-Commit-Position: refs/heads/master@{#299217}
* Cleanup: Actually remove base/file_util.h.thestig2014-10-101-6/+0
| | | | | | Review URL: https://codereview.chromium.org/647623002 Cr-Commit-Position: refs/heads/master@{#299155}
* scoped_refptr: support opaque pointed-to classes via extern templatemdempsky2014-10-096-6/+99
| | | | | | | | | | | | | | | | | | | | | | | The C++ spec says the compiler may instantiate inline template function definitions (e.g., member functions defined inline within a templated class, even without an explicit "inline" keyword) even if there's an "extern template class Foo<Bar>;" declaration. In the case of scoped_refptr, if we merely have a forward declaration for a class like "class Opaque;", then "extern template class scoped_refptr<Opaque>;" will still cause compiler errors because of scoped_refptr's inline member functions that try to call AddRef() and Release(). To solve this, this CL introduces static helper methods that are defined out-of-line to provide access to the AddRef() and Release() methods. BUG=414363 Review URL: https://codereview.chromium.org/623633002 Cr-Commit-Position: refs/heads/master@{#298991}
* Fix ChromeOS Asan build breakage.John Abd-El-Malek2014-10-091-1/+1
| | | | | | | | | | | libc++.so isn't used there (see build/common.gypi). BUG=414808 TBR=maruel@chromium.org Review URL: https://codereview.chromium.org/641133002 Cr-Commit-Position: refs/heads/master@{#298904}
* Sets a white background color for iOS unittest windows.rohitrao2014-10-091-0/+1
| | | | | | | | | | | This makes the UILabel with the test suite name visible again. BUG=None TEST=None Review URL: https://codereview.chromium.org/637403003 Cr-Commit-Position: refs/heads/master@{#298872}
* Disable implicit conversions from scoped_refptr to T* on Android.dcheng2014-10-091-1/+1
| | | | | | | | BUG=110610 Review URL: https://codereview.chromium.org/636143003 Cr-Commit-Position: refs/heads/master@{#298820}
* Fix Mac ASAN on swarming and enable ASAN symbolization.John Abd-El-Malek2014-10-092-0/+12
| | | | | | | | | BUG=414808 R=maruel@chromium.org Review URL: https://codereview.chromium.org/638183002 Cr-Commit-Position: refs/heads/master@{#298803}
* Downloading a file with ".tar.bz" extension mulitple times resulted in ↵arun87.kumar2014-10-092-1/+2
| | | | | | | | | | | | | | | | incorrect filename where ordinal number was suffixed to "tar" instead of filename as below. Actual - file.tar(1).bz Expected - file(1).tar.bz This happened because "bz" was not recognized as double extension. BUG=116972 Review URL: https://codereview.chromium.org/630323003 Cr-Commit-Position: refs/heads/master@{#298789}
* Allow Registry Iterator functions to use a specified WOW64 mode when iterating.wfh2014-10-092-17/+71
| | | | | | | | | | | | | | | | Also fix up any callers to access the correct hive (32 or 64) depending on where the data is, or whether the hive is Redirected, Shared, or Reflected as specified in MSDN http://msdn.microsoft.com/en-us/library/windows/desktop/aa384253.aspx BUG=338706,408018 TEST=Follow steps in 408018 and make sure extension gets added on 64-bit Chrome TEST=base_unittests --gtest_filter=Registry* Review URL: https://codereview.chromium.org/616173003 Cr-Commit-Position: refs/heads/master@{#298758}
* Refactor AppendToFile and WriteFileDescriptorchirantan2014-10-076-34/+45
| | | | | | | | | | | | | | | - Unify the behavior of the windows and posix implementations of these functions. - Simplify the interface by having them just indicate success or failure instead of making callers deal with partial writes. BUG=418837 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Review URL: https://codereview.chromium.org/614893004 Cr-Commit-Position: refs/heads/master@{#298604}
* [Base] Use variadic template in base/bind_internal_win.htzik2014-10-072-402/+16
| | | | | | | | | | Replace pump.py generated base/bind_internal_win.h with variadic template version. BUG=None Review URL: https://codereview.chromium.org/615023002 Cr-Commit-Position: refs/heads/master@{#298549}
* [Base] Use variadic template in callback_list.htzik2014-10-072-452/+7
| | | | | | | | | | Replace pump.py generated base/callback_list.h with variadic template version. BUG=None Review URL: https://codereview.chromium.org/618573002 Cr-Commit-Position: refs/heads/master@{#298529}
* replace OVERRIDE and FINAL with override and final in base/mostynb2014-10-07152-596/+637
| | | | | | | | BUG=417463 Review URL: https://codereview.chromium.org/611153004 Cr-Commit-Position: refs/heads/master@{#298520}
* Make base::PowerMonitor work on Chrome OS.derat2014-10-074-0/+63
| | | | | | | | | | | | | | On Chrome OS, updates about the system power status are received via D-Bus messages on the UI thread. Being in base/, PowerMonitor can't depend on the code in chromeos/ that receives those messages, so make the Chrome OS code instead notify PowerMonitor when it receives updates. BUG=326534 Review URL: https://codereview.chromium.org/622693004 Cr-Commit-Position: refs/heads/master@{#298367}
* base: Fix 'gn check' warning.Thiago Farina2014-10-071-0/+1
| | | | | | | | | | | | | | | | | | ERROR at //base/time/pr_time_unittest.cc:9:11: Can't include this header from here. #include "base/third_party/nspr/prtime.h" ^----------------------------- The target: //base:base_unittests is including a file from the target: //base/third_party/nspr:nspr BUG=None TEST=out/Debug/gn check out_gn/Debug //base/* R=brettw@chromium.org TBR=darin@chromium.org Review URL: https://codereview.chromium.org/629873002 Cr-Commit-Position: refs/heads/master@{#298358}
* Add libclang_rt.asan_osx_dynamic.dylib to base.isolate for Mac ASAN bots.John Abd-El-Malek2014-10-061-0/+7
| | | | | | | | | BUG=414808 TBR=vadimsh@chromium.org Review URL: https://codereview.chromium.org/633653002 Cr-Commit-Position: refs/heads/master@{#298295}
* base: Make scoped_ptr::Pass() act like std::move().danakj2014-10-063-20/+19
| | | | | | | | | | | | | | | This brings scoped_ptr closer to unique_ptr without changing the API of scoped_ptr or exposing rvalue references outside of scoped_ptr yet. This also adds WARN_UNUSED_RESULT to scoped_ptr::Pass() as well as Pass() for other move-only-emulation types. R=jamesr BUG=418297 Review URL: https://codereview.chromium.org/617933004 Cr-Commit-Position: refs/heads/master@{#298292}
* Implement fast path in {Wide|UTF16}ToUTF8 for pure ASCII stringsMikhail Naganov2014-10-064-7/+66
| | | | | | | | | | | | | | | Blink WebString::utf8 is marginally faster than UTF16ToUTF8 on pure ASCII input because they have a fast path for this case. Implement the same thing for base::{Wide|UTF16}ToUTF8. This continues work done in https://crrev.com/6f500092b9396517a40fdf1ca6a5199738e673e9 BUG=391492 R=brettw@chromium.org, darin@chromium.org Review URL: https://codereview.chromium.org/628593002 Cr-Commit-Position: refs/heads/master@{#298212}
* Fix bug in BreakIterator class that could cause illegal accessiceman2014-10-063-5/+48
| | | | | | | | | | | | | | | after setting new content by calling SetText function. Public function SetText() couldn't update internal string because it was a const reference. Used StringPiece16 to fix. BUG=411213 TEST=base_unittests --gtest_filter="BreakIteratorTest.GetStringAfterSetText" Review URL: https://codereview.chromium.org/545113002 Cr-Commit-Position: refs/heads/master@{#298207}
* Add ApiCompat for isDeviceProvisioned (17+) API.aruslan2014-10-031-0/+14
| | | | | | | | | | | | It is used to protect against inKeyguardRestrictedInputMode always returning true if the device is not provisioned (e.g. while the device SetupWizard is running). BUG=419647,419627 Review URL: https://codereview.chromium.org/622953002 Cr-Commit-Position: refs/heads/master@{#298123}
* Enable "extern template" under MSVCmdempsky2014-10-032-6/+0
| | | | | | Review URL: https://codereview.chromium.org/613273005 Cr-Commit-Position: refs/heads/master@{#297955}
* base: Add CHECK_IMPLIES and DCHECK_IMPLIES.vmpstr2014-10-021-0/+2
| | | | | | | | | | | | | | | This patch adds convenience defines for implies relationship. a implies b is equivalent to !a || b. This allows things like the following: CHECK_IMPLIES(ptr, ptr->is_good); instead of the more cumbersome: CHECK(!ptr || ptr->is_good). Review URL: https://codereview.chromium.org/576073007 Cr-Commit-Position: refs/heads/master@{#297941}
* Disable SecurityTest.NewOverflow as it fails on 10.8John Abd-El-Malek2014-10-021-7/+7
| | | | | | | | | BUG=227092 TBR=meacer@chromium.org Review URL: https://codereview.chromium.org/603793003 Cr-Commit-Position: refs/heads/master@{#297938}
* New base owners list.brettw2014-10-021-1/+3
| | | | | | | | Remove myself from base/owners. Add some new people. Review URL: https://codereview.chromium.org/624693002 Cr-Commit-Position: refs/heads/master@{#297905}
* Improve MessageLoop's comments.maniscalco2014-10-021-4/+2
| | | | | | | | | | | | | | Remove incorrect mention of RefCountedThreadSafe from DeleteSoon's comment. Replace mention of PostDelayedTask with ReleaseSoon in ReleaseSoon's comment. BUG= Review URL: https://codereview.chromium.org/615693002 Cr-Commit-Position: refs/heads/master@{#297870}
* Enable content layer to initCommandLine on Androidjohnme2014-10-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, in order to initialise CommandLine, you had to know whether you were running as part of Content Shell, Chrome Shell, or Chrome, and call the corresponding method. This led to ugly code like ChromiumSyncAdapter.java having to provide an abstract initCommandLine method that gets implemented by the subclasses ChromeShellSyncAdapter.java and ChromeBrowserSyncAdapter.java. Instead this patch adds an abstract initCommandLine method on ContentApplication.java, implemented by the subclasses: - ContentShellApplication - ChromeShellApplication - ChromeMobileApplication - ChromeNativeTestApplication Thus any code in the content layer can now initialize CommandLine with: ContentApplication.initCommandLine(context); BUG=350384 TBR=fgorski@chromium.org CQ_TRYBOTS=tryserver.chromium:android_aosp,android_arm64_dbg_recipe,android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel,android_clang_dbg_recipe,android_dbg_tests_recipe Review URL: https://codereview.chromium.org/615153002 Cr-Commit-Position: refs/heads/master@{#297830}
* Use a more suitable storage for the timezone table.bratell2014-10-021-12/+20
| | | | | | | | | | | | | | | | | | | | | | Creating a runtime table of std::string objects, just to copy those into a map, is not optimal from a runtime or footprint point of view. Making the table use raw char pointers shrinks the code and data by 75%, from 36 KB to 10 KB (clang, Linux, 64 bit content_shell). clang: Total change: -27266 bytes ========================== 2 added, totalling +8448 bytes across 1 sources 774 removed, totalling -36401 bytes across 2 sources 1 grown, for a net change of +687 bytes (481 bytes before, 1168 bytes after) across 1 sources R=estade@chromium.org,mark@chromium.org BUG= Review URL: https://codereview.chromium.org/573623003 Cr-Commit-Position: refs/heads/master@{#297821}
* Add Read/WriteSizeT() functions to the pickle layer, plus one consumer.pkasting2014-10-024-27/+106
| | | | | | | | | | | | | | | | This eliminates the need for callers to do explicit conversions, and also ensures callers don't try to implement pickling of a size_t using a 32-bit type, leading to truncation on 64-bit targets. The pickle layer will ensure 64-bit types are always used. I'll be changing other callsites to use this in future patches. BUG=none TEST=none Review URL: https://codereview.chromium.org/601563003 Cr-Commit-Position: refs/heads/master@{#297774}