| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
| |
R=maruel@chromium.org
BUG=414808
Review URL: https://codereview.chromium.org/662453002
Cr-Commit-Position: refs/heads/master@{#299723}
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
| |
BUG=none
Review URL: https://codereview.chromium.org/650413002
Cr-Commit-Position: refs/heads/master@{#299645}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
| |
BUG=422953
TBR=danakj@chromium.org
Review URL: https://codereview.chromium.org/652663005
Cr-Commit-Position: refs/heads/master@{#299343}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
| |
BUG=110610
Review URL: https://codereview.chromium.org/643193002
Cr-Commit-Position: refs/heads/master@{#299238}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
| |
Review URL: https://codereview.chromium.org/647623002
Cr-Commit-Position: refs/heads/master@{#299155}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
| |
BUG=110610
Review URL: https://codereview.chromium.org/636143003
Cr-Commit-Position: refs/heads/master@{#298820}
|
|
|
|
|
|
|
|
|
| |
BUG=414808
R=maruel@chromium.org
Review URL: https://codereview.chromium.org/638183002
Cr-Commit-Position: refs/heads/master@{#298803}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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}
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
| |
BUG=417463
Review URL: https://codereview.chromium.org/611153004
Cr-Commit-Position: refs/heads/master@{#298520}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
| |
BUG=414808
TBR=vadimsh@chromium.org
Review URL: https://codereview.chromium.org/633653002
Cr-Commit-Position: refs/heads/master@{#298295}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
| |
Review URL: https://codereview.chromium.org/613273005
Cr-Commit-Position: refs/heads/master@{#297955}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
| |
BUG=227092
TBR=meacer@chromium.org
Review URL: https://codereview.chromium.org/603793003
Cr-Commit-Position: refs/heads/master@{#297938}
|
|
|
|
|
|
|
|
| |
Remove myself from base/owners. Add some new people.
Review URL: https://codereview.chromium.org/624693002
Cr-Commit-Position: refs/heads/master@{#297905}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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}
|