- 09 May, 2014 40 commits
-
-
dewittj@chromium.org authored
Currently rapid updates completely block the user from interacting with the view even for completely static content such as the close button. BUG=368025 Review URL: https://codereview.chromium.org/271773002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269458 0039d316-1c4b-4281-b951-d872f2087c98
-
chrome-admin@google.com authored
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269457 0039d316-1c4b-4281-b951-d872f2087c98
-
ojan@chromium.org authored
http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog_blink.html?url=/trunk&range=173743:173750&mode=html TBR= BUG= Review URL: https://codereview.chromium.org/275063002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269456 0039d316-1c4b-4281-b951-d872f2087c98
-
sbc@chromium.org authored
BUG=309127 R=binji@chromium.org Review URL: https://codereview.chromium.org/270743005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269455 0039d316-1c4b-4281-b951-d872f2087c98
-
rlp@chromium.org authored
Compile failure on linux. FAILED: /b/build/goma/gomacc c++ -MMD -MF obj/chrome/browser/extensions/api/cast_channel/browser_extensions.cast_auth_util_nss.o.d -DV8_DEPRECATION_WARNINGS -DBLINK_SCALE_FILTERS_AT_RECORD_TIME -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCOMPONENT_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DUSE_XI2_MT=2 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_FULL_PRINTING=1 -DENABLE_PRINTING=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_MANAGED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DFULL_SAFE_BROWSING -DGL_GLEXT_PROTOTYPES -DMOJO_USE_SYSTEM_IMPL -DGTEST_HAS_POSIX_RE=0 -DLIBPEERCONNECTION_LIB=1 -DPROTOBUF_USE_DLLS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DSKIA_DLL -DGR_GL_IGNORE_ES3_MSAA=0 -DSK_ENABLE_INST_COUNT=0 -DSK_SUPPORT_GPU=1 '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' -DSK_ENABLE_LEGACY_API_ALIASING=1 -DSK_ATTR_DEPRECATED=SK_NOTHING_ARG1 -DSK_WILL_NEVER_DRAW_PERSPECTIVE_TEXT -DSK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS=1 -DSK_SUPPORT_LEGACY_GETTOPDEVICE -DSK_SUPPORT_LEGACY_N32_NAME -DSK_SUPPORT_LEGACY_BLURMASKFILTER_STYLE -DSK_SUPPORT_LEGACY_GETTOTALCLIP -DSK_USE_POSIX_THREADS -DSK_DEFERRED_CANVAS_USES_FACTORIES=1 -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DLINUX -DPOSIX -DU_USING_ICU_NAMESPACE=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_LINUX -DUSE_NSS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -I../.. -Iobj/chrome/browser_extensions.gen -Iobj/chrome/browser_extensions.gen/chrome -I../../third_party/khronos -I../../gpu -I../../skia/config -I../../third_party/WebKit/Source -Igen/protoc_out -I../../third_party/protobuf -I../../third_party/protobuf/src -Igen/chrome -Igen -I../../third_party/re2 -Igen/components/strings -I../../third_party/WebKit -I../../net/third_party/nss/ssl -Igen/extensions/strings -I../../third_party/skia/src/core -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/pdf -I../../third_party/skia/include/gpu -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../skia/ext -I../../third_party/libjingle/overrides -I../../third_party/libjingle/source -I../../testing/gtest/include -I../../third_party -I../../third_party/webrtc -I../../third_party/cacheinvalidation/overrides -I../../third_party/cacheinvalidation/src -I../../third_party/icu/source/i18n -I../../third_party/icu/source/common -I../../third_party/leveldatabase/src/include -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase -Igen/ui/app_locale_settings -Igen/ui/ui_strings -Igen/ui/ui_resources -Igen/webkit -Igen/ui/keyboard -Igen/policy -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-exceptions -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -pthread -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/nss -I/usr/include/nspr -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -msse2 -mfpmath=sse -mmmx -m32 -O0 -g -funwind-tables -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -c ../../chrome/browser/extensions/api/cast_channel/cast_auth_util_nss.cc -o obj/chrome/browser/extensions/api/cast_channel/browser_extensions.cast_auth_util_nss.o ../../chrome/browser/extensions/api/cast_channel/cast_auth_util_nss.cc: In function 'bool {anonymous}::VerifyCredentials(const extensions::api::cast_channel::AuthResponse&, const string&)': ../../chrome/browser/extensions/api/cast_channel/cast_auth_util_nss.cc:263:60: error: invalid conversion from 'const SECItem* {aka const SECItemStr*}' to 'SECItem* {aka SECItemStr*}' [-fpermissive] /usr/include/nss/keyhi.h:215:1: error: initializing argument 1 of 'SECKEYPublicKey* SECKEY_ImportDERPublicKey(SECItem*, CK_KEY_TYPE)' [-fpermissive] ninja: build stopped: subcommand failed. > Auth work to support new auth protocol > > BUG=345759 > > Review URL: https://codereview.chromium.org/254083007 TBR=munjal@chromium.org Review URL: https://codereview.chromium.org/273123003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269454 0039d316-1c4b-4281-b951-d872f2087c98
-
wittman@chromium.org authored
These APIs are used to enable bookmarks export functionality. BUG=312900,319444,371562,372039 R=kalman@chromium.org Review URL: https://codereview.chromium.org/275193002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269453 0039d316-1c4b-4281-b951-d872f2087c98
-
darin@chromium.org authored
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269452 0039d316-1c4b-4281-b951-d872f2087c98
-
danakj@chromium.org authored
The CompositeAndReadback is going away, and this method is thought to be unused. Make the method just fail and return false. R=aelias, tedchoc@chromium.org BUG=371592 Review URL: https://codereview.chromium.org/270933002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269448 0039d316-1c4b-4281-b951-d872f2087c98
-
sky@chromium.org authored
Chrome (and others) need this so they can supply the ContextFactory to the Compositor and get rid of Compositor::GetInstance. BUG=none TEST=none R=piman@chromium.org Review URL: https://codereview.chromium.org/276973002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269447 0039d316-1c4b-4281-b951-d872f2087c98
-
jdonnelly@chromium.org authored
BUG=370095 Review URL: https://codereview.chromium.org/266263002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269446 0039d316-1c4b-4281-b951-d872f2087c98
-
munjal@chromium.org authored
BUG=345759 Review URL: https://codereview.chromium.org/254083007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269445 0039d316-1c4b-4281-b951-d872f2087c98
-
jiayl@chromium.org authored
NOTRY=true NOTREECHECKS=true BUG=https://code.google.com/p/webrtc/issues/detail?id=2789 Review URL: https://codereview.chromium.org/268123003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269444 0039d316-1c4b-4281-b951-d872f2087c98
-
darin@chromium.org authored
Interfaces no longer have explicit Peer attributes. An interface may now optionally have a Client interface, in which case a SetClient method will be auto-generated. InterfacePtr is a proxy to a remote instance of an interface. InterfaceImpl is a base class used when implementing an interface. Both have facilities for binding to a pipe, etc. An InterfacePtr is movable but not copyable and looks a lot like RemotePtr save for how it gets initialized (via the Bind method now). I've added some new top-level functions: MakeProxy - makes it easy to initialize an InterfacePtr in say a member initializer list. BindToPipe - this is how you bind an InterfaceImpl to a pipe. once bound, they cannot be unbound until the object is destroyed or the pipe is closed. BindToProxy - builds on top of BindToPipe, however, it hides the details of the pipe. What you get back is an InterfacePtr. Generated C++ code now passes InterfacePtr instead of InterfaceHandle. As a result, we have far less need for typed subclasses of MessagePipeHandle, so I eliminated them. The code that needs to deal with raw handles generally has to deal with {Scoped}MessagePipeHandle, and adding strong typing to these handles doesn't seem helpful anymore. R=davemoore@chromium.org Review URL: https://codereview.chromium.org/265793015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269443 0039d316-1c4b-4281-b951-d872f2087c98
-
mdempsky@chromium.org authored
Review URL: https://codereview.chromium.org/271943002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269442 0039d316-1c4b-4281-b951-d872f2087c98
-
wittman@chromium.org authored
BUG=371562 Review URL: https://codereview.chromium.org/270783006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269441 0039d316-1c4b-4281-b951-d872f2087c98
-
lazyboy@chromium.org authored
BUG=371488 NOTRY=true Test=The preview link for this patch is: https://chrome-apps-doc.appspot.com/_patch/271913003/apps/tags/webview#type-ClearDataTypeSet Once the change is committed, this can be viewed in https://developer.chrome.com/apps/tags/webview#type-ClearDataTypeSet You should see only 6 items listed as types: appcache/cookies/fileSystems/indexedDB/localStorage/webSQL And it should not list unsupported items such as "downloads", "pluginData", ... which it does without this change. Review URL: https://codereview.chromium.org/271913003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269440 0039d316-1c4b-4281-b951-d872f2087c98
-
jianli@chromium.org authored
Also fix a bug that the default TTL value is set to 0. BUG=361374,371149 TEST=new test added for default TTL bug Review URL: https://codereview.chromium.org/270783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269439 0039d316-1c4b-4281-b951-d872f2087c98
-
ananta@chromium.org authored
Reverting because this appears to have caused Linux TSAN redness. > Introduce a new framework for back-and-forth tracked preference migration > between Protected Preferences and unprotected Preferences. > > Migration from unprotected Preferences to Protected Preferences was previously > done after both stores had been initialized. This was inherently incorrect as > some operations (PrefHashFilter::FilterOnLoad) would occur before the values > had been moved to the proper store. It also introduced a weird method in > PrefHashFilter::MigrateValues which required an independent PrefHashFilter > (backed by a copy of the real PrefHashStore). This after-the-fact migration > caused Settings.TrackedPreferenceCleared spikes when changing a value from > being enforced to not being enforced (as we'd have a MAC, but no value yet in > this store when running FilterOnLoad()) and more importantly it also caused > issue 365769 -- both of these issues highlight the incorrectness of the > current approach. > > The migration back from Protected Preferences to unprotected Preferences when > enforcement was disabled was using yet another mechanism which would only kick > in when a given pref was written to (ref. old non-const > SegregatedPrefStore::StoreForKey()). > > The new framework intercepts PrefFilter::FilterOnLoad() events for both stores > and does the back-and-forth migration in place before it even hands them back > to the PrefFilter::FinalizeFilterOnLoad() which then hands it back to the > JsonPrefStores (so that they are agnostic to the migration; from their point > of view their values were always in their store as they received it). > Furthermore, this new framework will easily allow us to later move MACs out of > Local State into their respective stores (which is a task on our radar which > we currently have no easy way to accomplish). > > The new framework also handles read errors better. For example, it was > previously possible for the unprotected->protected migration to result in data > loss if the protected store was somehow read-only from a read error while the > unprotected store wasn't -- resulting in an in-memory migration only flushed > to disk in the store from which the value was deleted... The new framework > handles those cases, preferring temporary data duplication over potential data > loss (duplicated data is cleaned up once confirmation is obtained that the new > authority for this data has been successfully written to disk -- it will even > try again in following Chrome runs if it doesn't succeed in this one). > > Note: This CL helped LSAN discover an existing leak in post_task_and_reply_impl.cc, see issue 371974 for details. > > BUG=365769, 371974 > TEST= > A) Make sure all kTrackedPrefs consistently report > Settings.TrackedPreferenceUnchanged across changes from various enforcement > levels (using --force-fieldtrials). > B) Make sure the prefs are properly migrated to their new store (and > subsequently cleaned up from their old store) when changing the > enforcement_level across multiple runs. > C) Make sure prefs are properly migrated in a quick startup/shutdown with a > new enforcement_level and that their old value is properly cleaned up in a > subsequent startup at the same enforcement_level (or re-migrated at another > enforcement_level). > > R=bauerb@chromium.org, robertshield@chromium.org, stuartmorgan@chromium.org, thakis@chromium.org > > Initially Committed in: https://src.chromium.org/viewvc/chrome?view=rev&revision=269346 > Reverted in: https://src.chromium.org/viewvc/chrome?view=rev&revision=269367 > > Review URL: https://codereview.chromium.org/257003007 TBR=gab@chromium.org Review URL: https://codereview.chromium.org/273243002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269438 0039d316-1c4b-4281-b951-d872f2087c98
-
primiano@chromium.org authored
Adds the -w argument in the instructions in DEPS. See chromium-dev thread http://goo.gl/sVP94W. BUG= NOTRY=true TBR=brettw@chromium.org Review URL: https://codereview.chromium.org/279583002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269435 0039d316-1c4b-4281-b951-d872f2087c98
-
ttuttle@chromium.org authored
Change some trivial stuff so sleevi can do more security review. Also, add rdsmith as an OWNER. BUG=356791 Review URL: https://codereview.chromium.org/252613002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269434 0039d316-1c4b-4281-b951-d872f2087c98
-
rpaquay@chromium.org authored
BUG=371501 Review URL: https://codereview.chromium.org/276733003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269433 0039d316-1c4b-4281-b951-d872f2087c98
-
tfarina@chromium.org authored
This just contains only the download_to_file chuck from r267947 which is unlikely to break any layout tests, existing unit tests or chrome production code. Tests ran: both content_shell and content_unittests BUG=265753, 338338, 237249 R=jam@chromium.org Review URL: https://codereview.chromium.org/274473003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269432 0039d316-1c4b-4281-b951-d872f2087c98
-
oshima@chromium.org authored
$ optimize-png-files.sh -o2 -r260319 ui/resources/ ash/resources/ Processed 14 files (out of 90 files) in 00:06:34s Result : 14264 => 12870 bytes (1394 bytes : 9 %) BUG=372036 TBR=msw@chromium.org Review URL: https://codereview.chromium.org/277103002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269431 0039d316-1c4b-4281-b951-d872f2087c98
-
bratell@opera.com authored
An Android header was unconditionally included. It works as long as the header doesn't use any Android specific code but it's doomed to break something eventually. BUG=None Review URL: https://codereview.chromium.org/267323008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269430 0039d316-1c4b-4281-b951-d872f2087c98
-
dmazzoni@chromium.org authored
This fires an EVENT_OBJECT_ALERT notification on the legacy hwnd with a custom id, and if we get a response we enable full web accessibility. This code used to be in render_widget_host_view_win. The replacement code was not working reliably for unknown reasons, and other accessibility clients were relying on the previous trick - see bugs. BUG=319523,342319 NOTRY=true R=ananta@chromium.org, creis@chromium.org Review URL: https://codereview.chromium.org/272803003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269429 0039d316-1c4b-4281-b951-d872f2087c98
-
rileya@chromium.org authored
BUG=370520 TEST=YUVConvertTest.YUVAtoARGB_MMX_MatchReference Review URL: https://codereview.chromium.org/271443006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269428 0039d316-1c4b-4281-b951-d872f2087c98
-
thakis@chromium.org authored
When clang is turned on or off, or when clang is updated, all .o files and all precompiled headers need to be rebuilt. This is currently done by having the update script remove the out/ directory. This has issues: * It fails to catch build directories with different names (e.g. out_android) * It removes other build artifacts (like resources) that don't need rebuilding * It doesn't happen when turning clang off (i.e. moving clang -> gcc). Instead, let common.gypi add a define with the current clang revision to each source file. This way, the clang revision is on each compile's command line and the build system's commandline tracking can take care of the rebuilding. BUG=nativeclient:3840 NOTRY=true Review URL: https://codereview.chromium.org/268363020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269427 0039d316-1c4b-4281-b951-d872f2087c98
-
ben@chromium.org authored
Nodes are now owned by the view manager. Constructors/destructors moved to private/protected. The ViewManager now maintains a map of id->node. Adds an observer method for destruction. Clients will need to implement this to invalidate their pointer (perhaps I should invent a node smart ptr). Adds lib tests for node removal, destruction, and connection destruction (when a connection is destroyed, all nodes it created should be destroyed). Adds a client notification from the service to notify other clients of node destruction & some tests. R=sky@chromium.org http://crbug.com/365012 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=269414 Review URL: https://codereview.chromium.org/274733004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269426 0039d316-1c4b-4281-b951-d872f2087c98
-
macourteau@chromium.org authored
BUG=369853 R=shess@chromium.org Review URL: https://codereview.chromium.org/273883002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269425 0039d316-1c4b-4281-b951-d872f2087c98
-
ben@chromium.org authored
> Changes to deletion/ownership of nodes in the client lib. > > Nodes are now owned by the view manager. Constructors/destructors moved to private/protected. The ViewManager now maintains a map of id->node. > Adds an observer method for destruction. Clients will need to implement this to invalidate their pointer (perhaps I should invent a node smart ptr). > Adds lib tests for node removal, destruction, and connection destruction (when a connection is destroyed, all nodes it created should be destroyed). > Adds a client notification from the service to notify other clients of node destruction & some tests. > > R=sky@chromium.org > http://crbug.com/365012 > > Review URL: https://codereview.chromium.org/274733004 TBR=ben@chromium.org Review URL: https://codereview.chromium.org/280023002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269421 0039d316-1c4b-4281-b951-d872f2087c98
-
rockot@chromium.org authored
This adds support for an optional |authuser| integer property in the |details| object passed to beginInstallWithManifest3. This value is propagated down to the WebstoreInstaller and used to augment the CRX download request with a standard-ish |authuser| query parameter corresponding to the index of the installing user within a multi-login session. BUG=371100 R=asargent@chromium.org Review URL: https://codereview.chromium.org/270793002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269420 0039d316-1c4b-4281-b951-d872f2087c98
-
mostynb@opera.com authored
This style cleanup broke some versions of glibc that include fcntl.h from another header before it is explicitly included: https://codereview.chromium.org/236083002/ We need _GNU_SOURCE defined before the first time fcntl.h is included since we use the linux-specific O_DIRECTORY extension. Thanks to johan_e@opera.com for helping track this down. NOTRY=true Review URL: https://codereview.chromium.org/266913019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269419 0039d316-1c4b-4281-b951-d872f2087c98
-
derat@chromium.org authored
To make subtle regressions where subpixel rendering isn't used on Chrome OS less likely, add an OmniboxViewViews browsertest that checks that the omnibox text isn't rendered onto a transparent background. Also remove an outdated reference to GTK and fix a style issue in LocationBarView. BUG=none Review URL: https://codereview.chromium.org/262093014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269418 0039d316-1c4b-4281-b951-d872f2087c98
-
boliu@chromium.org authored
This was accidentally reverted in r267753 Original description: Use VAO for default_vertex_attrib_manager if available. By using VAO's we can make virtual context switches faster by a single glBindVertexArrayOES instead of restoring all attributes one-by-one. BUG= TBR=vmiura NOTRY=true Review URL: https://codereview.chromium.org/278653002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269417 0039d316-1c4b-4281-b951-d872f2087c98
-
wtc@chromium.org authored
Merge internal CL: 66548143 R=rtenneti@chromium.org BUG=none Review URL: https://codereview.chromium.org/277523008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269416 0039d316-1c4b-4281-b951-d872f2087c98
-
gab@chromium.org authored
between Protected Preferences and unprotected Preferences. Migration from unprotected Preferences to Protected Preferences was previously done after both stores had been initialized. This was inherently incorrect as some operations (PrefHashFilter::FilterOnLoad) would occur before the values had been moved to the proper store. It also introduced a weird method in PrefHashFilter::MigrateValues which required an independent PrefHashFilter (backed by a copy of the real PrefHashStore). This after-the-fact migration caused Settings.TrackedPreferenceCleared spikes when changing a value from being enforced to not being enforced (as we'd have a MAC, but no value yet in this store when running FilterOnLoad()) and more importantly it also caused issue 365769 -- both of these issues highlight the incorrectness of the current approach. The migration back from Protected Preferences to unprotected Preferences when enforcement was disabled was using yet another mechanism which would only kick in when a given pref was written to (ref. old non-const SegregatedPrefStore::StoreForKey()). The new framework intercepts PrefFilter::FilterOnLoad() events for both stores and does the back-and-forth migration in place before it even hands them back to the PrefFilter::FinalizeFilterOnLoad() which then hands it back to the JsonPrefStores (so that they are agnostic to the migration; from their point of view their values were always in their store as they received it). Furthermore, this new framework will easily allow us to later move MACs out of Local State into their respective stores (which is a task on our radar which we currently have no easy way to accomplish). The new framework also handles read errors better. For example, it was previously possible for the unprotected->protected migration to result in data loss if the protected store was somehow read-only from a read error while the unprotected store wasn't -- resulting in an in-memory migration only flushed to disk in the store from which the value was deleted... The new framework handles those cases, preferring temporary data duplication over potential data loss (duplicated data is cleaned up once confirmation is obtained that the new authority for this data has been successfully written to disk -- it will even try again in following Chrome runs if it doesn't succeed in this one). Note: This CL helped LSAN discover an existing leak in post_task_and_reply_impl.cc, see issue 371974 for details. BUG=365769, 371974 TEST= A) Make sure all kTrackedPrefs consistently report Settings.TrackedPreferenceUnchanged across changes from various enforcement levels (using --force-fieldtrials). B) Make sure the prefs are properly migrated to their new store (and subsequently cleaned up from their old store) when changing the enforcement_level across multiple runs. C) Make sure prefs are properly migrated in a quick startup/shutdown with a new enforcement_level and that their old value is properly cleaned up in a subsequent startup at the same enforcement_level (or re-migrated at another enforcement_level). R=bauerb@chromium.org, robertshield@chromium.org, stuartmorgan@chromium.org, thakis@chromium.org Initially Committed in: https://src.chromium.org/viewvc/chrome?view=rev&revision=269346 Reverted in: https://src.chromium.org/viewvc/chrome?view=rev&revision=269367 Review URL: https://codereview.chromium.org/257003007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269415 0039d316-1c4b-4281-b951-d872f2087c98
-
ben@chromium.org authored
Nodes are now owned by the view manager. Constructors/destructors moved to private/protected. The ViewManager now maintains a map of id->node. Adds an observer method for destruction. Clients will need to implement this to invalidate their pointer (perhaps I should invent a node smart ptr). Adds lib tests for node removal, destruction, and connection destruction (when a connection is destroyed, all nodes it created should be destroyed). Adds a client notification from the service to notify other clients of node destruction & some tests. R=sky@chromium.org http://crbug.com/365012 Review URL: https://codereview.chromium.org/274733004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269414 0039d316-1c4b-4281-b951-d872f2087c98
-
dcaiafa@google.com authored
BUG=371432 R=rmsousa@chromium.org Review URL: https://codereview.chromium.org/274933002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269413 0039d316-1c4b-4281-b951-d872f2087c98
-
viettrungluu@chromium.org authored
The read side isn't implemented yet, so I can't test it yet. R=yzshen@chromium.org Review URL: https://codereview.chromium.org/279613002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269412 0039d316-1c4b-4281-b951-d872f2087c98
-
tengs@chromium.org authored
BUG=371502 Review URL: https://codereview.chromium.org/271963002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269411 0039d316-1c4b-4281-b951-d872f2087c98
-