diff --git a/.gitignore b/.gitignore index ef33bc3..88cf776 100644 --- a/.gitignore +++ b/.gitignore
@@ -335,7 +335,7 @@ /third_party/khronos_glcts /third_party/leveldatabase/src /third_party/leveldb -/third_party/libc++-static/libc++-static.a +/third_party/libc++-static/libc++.a /third_party/libaddressinput/src /third_party/libexif/sources /third_party/libjingle/source
diff --git a/DEPS b/DEPS index b74c15f..293977e 100644 --- a/DEPS +++ b/DEPS
@@ -43,7 +43,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'd8763f7b00ac527534f5182b1028aa7f0868bf5d', + 'v8_revision': '3e0e1f19d153dd0408e50d7ad9ce44fd43d3f812', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -59,7 +59,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '9ddafc82bddb984ae46ee0df801ba20b446d5158', + 'pdfium_revision': '9b2741829b8a8c511ef0f2f313ff53d77ac96307', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -682,7 +682,7 @@ '--platform=darwin', '--no_auth', '--bucket', 'chromium-libcpp', - '-s', 'src/third_party/libc++-static/libc++-static.a.sha1', + '-s', 'src/third_party/libc++-static/libc++.a.sha1', ], }, # Pull luci-go binaries (isolate, swarming) using checked-in hashes.
diff --git a/base/trace_event/memory_allocator_dump.cc b/base/trace_event/memory_allocator_dump.cc index 76d53eb..703fc65b 100644 --- a/base/trace_event/memory_allocator_dump.cc +++ b/base/trace_event/memory_allocator_dump.cc
@@ -35,10 +35,6 @@ // The |absolute_name| can contain slash separator, but not leading or // trailing ones. DCHECK(absolute_name[0] != '/' && *absolute_name.rbegin() != '/'); - - // Dots are not allowed anywhere as the underlying base::DictionaryValue - // would treat them magically and split in sub-nodes, which is not intended. - DCHECK_EQ(std::string::npos, absolute_name.find_first_of('.')); } // If the caller didn't provide a guid, make one up by hashing the
diff --git a/build/common.gypi b/build/common.gypi index e7b0527..56dc197 100644 --- a/build/common.gypi +++ b/build/common.gypi
@@ -5260,6 +5260,16 @@ }, # configuration "Release" }, # configurations 'xcode_settings': { + # Everything should include libc++ headers. Just passing + # -stdlib=libc++ doesn't just work in NaCl targets with asan enabled + # until http://crbug.com/544325 is fixed, so tell the compiler to not + # add any include paths, and instead below add the c++ include + # directory as include_dirs. Then we can not set CLANG_CXX_LIBRARY + # to libc++ for NaCl targets and that way they'll link against + # libstdc++ on the ASan bots (ASan requires a C++ library to be linked + # even for the C-only NaCl programs). + 'OTHER_CPLUSPLUSFLAGS': [ '$inherited', '-nostdinc++', ], + 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic # (Equivalent to -fPIC) # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min @@ -5277,22 +5287,53 @@ '-fno-strict-aliasing', # See http://crbug.com/32204. ], 'conditions': [ - ['component=="shared_library"', { - # In component builds, link to the system libc++. This requires - # OS X 10.7, but we currently pass -mmacosx-version-min=10.6. - # Xcode's clang complains about this, but our open-source bundled - # chromium clang doesn't. This has the effect of making - # everything depend on libc++, which means component-build - # binaries won't run on 10.6 (no libc++ there), but for a - # developer-only configuration that's ok. - # (We don't want to raise the deployment target yet so that - # official and dev builds have the same deployment target. This - # affects things like which functions are considered deprecated.) + # TODO(thakis): Remove this condition once http://crbug.com/544325 + # is fixed. Some targets below native_client still link use the + # 10.6 SDK which doesn't contain a libc++. + ['mac_sdk!="10.6"', { + # Tell the compiler to use libc++'s headers and the linker to link + # against libc++. The latter part normally requires OS X 10.7, + # but we still support running on 10.6. How does this work? Two + # parts: + # 1. Chromium's clang doesn't error on -mmacosx-version-min=10.6 + # combined with -stdlib=libc++ (it normally silently produced a + # binary that doesn't run on 10.6) + # 2. Further down, library_dirs is set to + # third_party/libc++-static, which contains a static + # libc++.a library. The linker then links against that instead + # of against /usr/lib/libc++.dylib when it sees the -lc++ flag + # added by the driver. + # + # In component builds, just link to the system libc++. This has + # the effect of making everything depend on libc++, which means + # component-build binaries won't run on 10.6 (no libc++ there), + # but for a developer-only configuration that's ok. (We don't + # want to raise the deployment target yet so that official and + # dev builds have the same deployment target. This affects + # things like which functions are considered deprecated.) 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++ + }], ], }, 'target_conditions': [ + ['>(nacl_untrusted_build)==0', { + 'include_dirs': [ + '<(DEPTH)/third_party/llvm-build/Release+Asserts/include/c++/v1', + ], + }], + ['>(nacl_untrusted_build)==0 and component=="static_library"', { + # See the comment for CLANG_CXX_LIBRARY above for what this does. + # The NaCl toolchains have their own toolchain and don't need this. + # ASan requires 10.7+ and clang implicitly adds -lc++abi in ASan + # mode. Our libc++.a contains both libc++ and libc++abi in one + # library, so it doesn't work in that mode. + 'conditions': [ + ['asan==0', { + 'library_dirs': [ '<(DEPTH)/third_party/libc++-static' ], + }], + ], + }], ['_type=="executable"', { 'postbuilds': [ {
diff --git a/chrome/VERSION b/chrome/VERSION index 9dde8a4..54d6f7f8 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=48 MINOR=0 -BUILD=2545 +BUILD=2546 PATCH=0
diff --git a/chrome/app/theme/default_100_percent/common/omnibox_extension_app_dark.png b/chrome/app/theme/default_100_percent/common/omnibox_extension_app_dark.png deleted file mode 100644 index d5807d9..0000000 --- a/chrome/app/theme/default_100_percent/common/omnibox_extension_app_dark.png +++ /dev/null Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/omnibox_http_dark.png b/chrome/app/theme/default_100_percent/common/omnibox_http_dark.png deleted file mode 100644 index 5b8ef96..0000000 --- a/chrome/app/theme/default_100_percent/common/omnibox_http_dark.png +++ /dev/null Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/omnibox_search_dark.png b/chrome/app/theme/default_100_percent/common/omnibox_search_dark.png deleted file mode 100644 index f2d29b70..0000000 --- a/chrome/app/theme/default_100_percent/common/omnibox_search_dark.png +++ /dev/null Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/omnibox_star_dark.png b/chrome/app/theme/default_100_percent/common/omnibox_star_dark.png deleted file mode 100644 index 3a89bc2..0000000 --- a/chrome/app/theme/default_100_percent/common/omnibox_star_dark.png +++ /dev/null Binary files differ
diff --git a/chrome/app/theme/default_100_percent/common/omnibox_tts_dark.png b/chrome/app/theme/default_100_percent/common/omnibox_tts_dark.png deleted file mode 100644 index 2c574f76..0000000 --- a/chrome/app/theme/default_100_percent/common/omnibox_tts_dark.png +++ /dev/null Binary files differ
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd index f273452..55d48ae 100644 --- a/chrome/app/theme/theme_resources.grd +++ b/chrome/app/theme/theme_resources.grd
@@ -510,12 +510,10 @@ <structure type="chrome_scaled_image" name="IDR_OMNIBOX_EV_BUBBLE_TOP" file="common/omnibox_ev_bubble_top.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_EV_BUBBLE_TOP_LEFT" file="common/omnibox_ev_bubble_top_left.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_EV_BUBBLE_TOP_RIGHT" file="common/omnibox_ev_bubble_top_right.png" /> - <structure type="chrome_scaled_image" name="IDR_OMNIBOX_EXTENSION_APP_DARK" file="common/omnibox_extension_app_dark.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_EXTENSION_APP_SELECTED" file="common/omnibox_extension_app_selected.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_HTTPS_INVALID" file="common/omnibox_https_invalid.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_HTTPS_POLICY_WARNING" file="common/controlled_setting_mandatory.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_HTTPS_VALID" file="common/omnibox_https_valid.png" /> - <structure type="chrome_scaled_image" name="IDR_OMNIBOX_HTTP_DARK" file="common/omnibox_http_dark.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_HTTP_SELECTED" file="common/omnibox_http_selected.png" /> <if expr="is_macosx or is_ios"> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_KEYWORD_HINT_TAB" file="mac/omnibox_keyword_hint_tab.png" /> @@ -535,7 +533,6 @@ <structure type="chrome_scaled_image" name="IDR_OMNIBOX_POPUP_BORDER_AND_SHADOW_TOP_LEFT" file="common/omnibox_popup_border_and_shadow_top_left.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_POPUP_BORDER_AND_SHADOW_TOP_RIGHT" file="common/omnibox_popup_border_and_shadow_top_right.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_SEARCH_BUTTON_LOUPE" file="common/omnibox_search_button_loupe.png" /> - <structure type="chrome_scaled_image" name="IDR_OMNIBOX_SEARCH_DARK" file="common/omnibox_search_dark.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_SEARCH_SECURED" file="common/omnibox_search_secured.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_SEARCH_SELECTED" file="common/omnibox_search_selected.png" /> <if expr="enable_topchrome_md"> @@ -552,10 +549,8 @@ <structure type="chrome_scaled_image" name="IDR_OMNIBOX_SELECTED_KEYWORD_BUBBLE_TOP_LEFT" file="common/omnibox_selected_keyword_bubble_top_left.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_SELECTED_KEYWORD_BUBBLE_TOP_RIGHT" file="common/omnibox_selected_keyword_bubble_top_right.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_STAR" file="common/omnibox_star.png" /> - <structure type="chrome_scaled_image" name="IDR_OMNIBOX_STAR_DARK" file="common/omnibox_star_dark.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_STAR_SELECTED" file="common/omnibox_star_selected.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_TTS" file="common/omnibox_tts.png" /> - <structure type="chrome_scaled_image" name="IDR_OMNIBOX_TTS_DARK" file="common/omnibox_tts_dark.png" /> <structure type="chrome_scaled_image" name="IDR_OMNIBOX_TTS_SELECTED" file="common/omnibox_tts_selected.png" /> <if expr="toolkit_views and not is_macosx"> <!-- In Material Design the Ash image is the same as the common one, so
diff --git a/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc b/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc index 67bedea..b50ba964 100644 --- a/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc +++ b/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc
@@ -268,7 +268,7 @@ CheckGaiaKeyboard(); // Switch back. - js_checker().Evaluate("$('cancel-add-user-button').click()"); + js_checker().Evaluate("$('gaia-signin').cancel()"); OobeScreenWaiter(OobeDisplay::SCREEN_ACCOUNT_PICKER).Wait(); EXPECT_EQ(expected_input_methods,
diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc index d9e8394..0c58cad 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_browsertest.cc
@@ -180,7 +180,7 @@ ASSERT_EQ(3UL, user_manager::UserManager::Get()->GetUsers().size()); // We wait for token now. Press cancel button at this point. - JSEvalOrExitBrowser("$('cancel-add-user-button').click()"); + JSEvalOrExitBrowser("$('supervised-user-creation').cancel()"); } IN_PROC_BROWSER_TEST_(
diff --git a/chrome/browser/resources/chromeos/login/header_bar.html b/chrome/browser/resources/chromeos/login/header_bar.html index 1358dec..c6cd2fd 100644 --- a/chrome/browser/resources/chromeos/login/header_bar.html +++ b/chrome/browser/resources/chromeos/login/header_bar.html
@@ -18,8 +18,6 @@ <div id="add-user-header-bar-item" class="header-bar-item" hidden> <button id="add-user-button" class="custom-appearance" i18n-content="addUser"></button> - <button id="cancel-add-user-button" class="custom-appearance" - i18n-content="cancel" hidden></button> </div> <div id="more-settings-header-bar-item" class="header-bar-item"> <button id="more-settings-button" class="custom-appearance"
diff --git a/chrome/browser/resources/chromeos/login/header_bar.js b/chrome/browser/resources/chromeos/login/header_bar.js index 5a747c8..723fa68 100644 --- a/chrome/browser/resources/chromeos/login/header_bar.js +++ b/chrome/browser/resources/chromeos/login/header_bar.js
@@ -54,8 +54,6 @@ this.handleAddUserClick_); $('more-settings-button').addEventListener('click', this.handleMoreSettingsClick_.bind(this)); - $('cancel-add-user-button').addEventListener('click', - this.handleCancelAddUserClick_); $('guest-user-header-bar-item').addEventListener('click', this.handleGuestClick_); $('guest-user-button').addEventListener('click', @@ -275,20 +273,6 @@ }, /** - * Whether the Cancel button is enabled during Gaia sign-in. - * - * @type {boolean} - */ - set allowCancel(value) { - this.allowCancel_ = value; - this.updateUI_(); - }, - - get allowCancel() { - return !!this.allowCancel_; - }, - - /** * Update whether there are kiosk apps. * * @type {boolean} @@ -342,16 +326,6 @@ isLockScreen || errorScreenIsActive || supervisedUserCreationDialogIsActive; - $('cancel-add-user-button').hidden = - !this.allowCancel_ || - gaiaIsActive || - isPasswordChangedUI || - isSamlPasswordConfirm || - errorScreenIsActive || - accountPickerIsActive || - wrongHWIDWarningIsActive || - isMultiProfilesUI || - supervisedUserCreationDialogIsActive; $('guest-user-header-bar-item').hidden = !this.showGuest_ || isLockScreen || @@ -359,15 +333,14 @@ wrongHWIDWarningIsActive || isSamlPasswordConfirm || isMultiProfilesUI || - (this.allowCancel_ && gaiaIsActive) || + (gaiaIsActive && $('gaia-signin').cancelable) || enrollmentIsActiveWithBackButton || gaiaIsActiveWithBackButton; $('restart-header-bar-item').hidden = !this.showReboot_; $('shutdown-header-bar-item').hidden = !this.showShutdown_; $('sign-out-user-item').hidden = !isLockScreen; - $('add-user-header-bar-item').hidden = - $('add-user-button').hidden && $('cancel-add-user-button').hidden; + $('add-user-header-bar-item').hidden = $('add-user-button').hidden; $('apps-header-bar-item').hidden = !this.hasApps_ || (!gaiaIsActive && !accountPickerIsActive); $('cancel-multiple-sign-in-item').hidden = !isMultiProfilesUI;
diff --git a/chrome/browser/resources/chromeos/login/screen_error_message.js b/chrome/browser/resources/chromeos/login/screen_error_message.js index 954c915..fffdc6e8 100644 --- a/chrome/browser/resources/chromeos/login/screen_error_message.js +++ b/chrome/browser/resources/chromeos/login/screen_error_message.js
@@ -89,6 +89,16 @@ // Error screen initial error state. error_state_: ERROR_STATE.UNKNOWN, + // Whether the screen can be cancelled. + cancelable_: false, + get cancelable() { + return this.cancelable_; + }, + set cancelable(value) { + this.cancelable_ = value; + $('error-close-button').hidden = !value; + }, + /** @override */ decorate: function() { cr.ui.DropDown.decorate($('offline-networks-list')); @@ -222,7 +232,7 @@ cr.ui.Oobe.clearErrors(); cr.ui.DropDown.show('offline-networks-list', false); $('login-header-bar').signinUIState = SIGNIN_UI_STATE.ERROR; - $('error-close-button').hidden = !$('login-header-bar').allowCancel; + this.cancelable = $('pod-row').pods.length; }, /** @@ -423,7 +433,7 @@ * Cancels error screen and drops to user pods. */ cancel: function() { - if ($('login-header-bar').allowCancel) + if (this.cancelable) Oobe.showUserPods(); } };
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js index a4d79776..7086ff3 100644 --- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js +++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -100,7 +100,15 @@ * @type {boolean} * @private */ - cancelAllowed_: undefined, + cancelable_: false, + get cancelable() { + // TODO(dzhioev): add cancel and refresh buttons hiding logic here. + // http://crbug.com/484514 + return this.cancelable_; + }, + set cancelable(value) { + this.cancelable_ = value; + }, /** * Whether we should show user pods on the login screen. @@ -515,10 +523,9 @@ * user pods can be displayed. */ updateCancelButtonState: function() { - this.cancelAllowed_ = this.isLocal || - (this.isShowUsers_ && $('pod-row').pods.length); - $('login-header-bar').allowCancel = this.cancelAllowed_; - $('close-button-item').hidden = !this.cancelAllowed_; + this.cancelable = this.isLocal || + (this.isShowUsers_ && $('pod-row').pods.length); + $('close-button-item').hidden = !this.cancelable; }, /** @@ -550,8 +557,7 @@ if (Oobe.getInstance().currentScreen === this) { Oobe.getInstance().updateScreenSize(this); - $('login-header-bar').allowCancel = isSAML || this.cancelAllowed_; - $('close-button-item').hidden = !(isSAML || this.cancelAllowed_); + $('close-button-item').hidden = !(isSAML || this.cancelable); } }, @@ -828,7 +834,6 @@ showErrorBubble: function(loginAttempts, error) { if (this.isLocal) { $('add-user-button').hidden = true; - $('cancel-add-user-button').hidden = false; // Reload offline version of the sign-in extension, which will show // error itself. chrome.send('offlineLogin', [this.email]); @@ -847,7 +852,7 @@ * Called when user canceled signin. */ cancel: function() { - if (!this.cancelAllowed_) { + if (!this.cancelable) { // In OOBE signin screen, cancel is not allowed because there is // no other screen to show. If user is in middle of a saml flow, // reset signin screen to get out of the saml flow.
diff --git a/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html b/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html index bfa6ee72..c9fddb52 100644 --- a/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html +++ b/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.html
@@ -16,6 +16,7 @@ i18n-content="createSupervisedUserIntroText3"></div> </div> </div> + <div id="supervised-user-creation-manager" class="page-no-marketing" hidden> <div id="supervised-user-creation-managers-block" hidden> <div class="logo-padded-text"> @@ -28,6 +29,7 @@ <div id="supervised-user-creation-managers-pane"></div> </div> </div> + <div id="supervised-user-creation-username" class="page-no-marketing" role="group" i18n-values="aria-label:createSupervisedUserNameAccessibleTitle" hidden> @@ -114,6 +116,7 @@ </div> </div> </div> + <div id="supervised-user-creation-error" hidden> <img alt class="error-icon" src="chrome://theme/IDR_TECHNICAL_ERROR"> <div id="supervised-user-creation-error-title" class="error-title"></div>
diff --git a/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js b/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js index cc0bc952..63183d3e5 100644 --- a/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js +++ b/chrome/browser/resources/chromeos/login/screen_supervised_user_creation.js
@@ -1100,8 +1100,8 @@ 'manager', 'username', 'import', - 'error', - 'created']; + 'created', + 'error']; var pageButtons = {'intro' : 'start', 'error' : 'error', 'import' : 'import', @@ -1126,12 +1126,6 @@ button.disabled = false; } - var pagesWithCancel = ['intro', 'manager', 'username', 'import-password', - 'error', 'import']; - $('login-header-bar').allowCancel = - pagesWithCancel.indexOf(visiblePage) > -1; - $('cancel-add-user-button').disabled = false; - this.getScreenElement('import-link').hidden = true; this.getScreenElement('create-link').hidden = true; @@ -1329,7 +1323,6 @@ control.disabled = value; } $('login-header-bar').disabled = value; - $('cancel-add-user-button').disabled = false; }, /**
diff --git a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html index c58f4f4..05b06301 100644 --- a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html +++ b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.html
@@ -52,7 +52,7 @@ <route-details id="route-details" route="[[currentRoute_]]" sink="[[computeSinkForCurrentRoute_(currentRoute_)]]" on-back-click="showSinkList_" - on-close-route-click="showSinkList_" + on-close-route-click="onCloseRouteClick_" hidden$="[[computeRouteDetailsHidden_(currentView_, issue)]]"> </route-details> <div id="sink-list-view"
diff --git a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js index ba949c3..21dad30 100644 --- a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js +++ b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js
@@ -194,11 +194,24 @@ type: Array, value: [], }, + + /** + * List of active timer IDs. Used to retrieve active timer IDs when + * clearing timers. + * @private {!Array<number>} + */ + timerIdList_: { + type: Array, + value: [], + }, + }, + + listeners: { + 'tap': 'onTap_', }, ready: function() { this.addEventListener('arrow-drop-click', this.toggleCastModeHidden_); - this.addEventListener('close-route-click', this.removeRoute); this.showSinkList_(); }, @@ -536,6 +549,18 @@ }, /** + * Handles a close-route-click event. Shows the sink list and starts a timer + * to close the dialog if there is no click within three seconds. + * + * @param {!Event} event The event object. + * @private + */ + onCloseRouteClick_: function(event) { + this.showSinkList_(); + this.startTapTimer_(); + }, + + /** * Handles response of previous create route attempt. * * @param {string} sinkId The ID of the sink to which the Media Route was @@ -549,9 +574,8 @@ if (!route) return; - // Check if |route| already exists or if its associated sink - // does not exist. - if (this.routeMap_[route.id] || !this.sinkMap_[route.sinkId]) + // Check that |sinkId| exists. + if (!this.sinkMap_[sinkId]) return; // If there is an existing route associated with the same sink, its @@ -559,6 +583,8 @@ // which results in the correct sink to route mapping. this.routeList.push(route); this.showRouteDetails_(route); + + this.startTapTimer_(); }, onNotifyRouteCreationTimeout: function() { @@ -576,6 +602,24 @@ }, /** + * Called when a tap event is triggered. Clears any active timers. onTap_ + * is called before a new timer is started for taps that trigger a new active + * timer. + * + * @private + */ + onTap_: function(e) { + if (this.timerIdList_.length == 0) + return; + + this.timerIdList_.forEach(function(id) { + clearTimeout(id); + }, this); + + this.timerIdList_ = []; + }, + + /** * Called when |routeList| is updated. Rebuilds |routeMap_| and * |sinkToRouteMap_|. * @@ -720,6 +764,20 @@ }, /** + * Starts a timer which fires a close-dialog event if the timer has not been + * cleared within three seconds. + * + * @private + */ + startTapTimer_: function() { + var id = setTimeout(function() { + this.fire('close-dialog'); + }.bind(this), 3000 /* 3 seconds */); + + this.timerIdList_.push(id); + }, + + /** * Toggles |currentView_| between CAST_MODE_LIST and SINK_LIST. * * @private
diff --git a/chrome/browser/resources/media_router/media_router.js b/chrome/browser/resources/media_router/media_router.js index 4773a16..1123de1 100644 --- a/chrome/browser/resources/media_router/media_router.js +++ b/chrome/browser/resources/media_router/media_router.js
@@ -22,7 +22,8 @@ container = $('media-router-container'); media_router.ui.setContainer(container); - container.addEventListener('close-button-click', onCloseDialogClick); + container.addEventListener('close-button-click', onCloseDialogEvent); + container.addEventListener('close-dialog', onCloseDialogEvent); container.addEventListener('close-route-click', onCloseRouteClick); container.addEventListener('create-route', onCreateRoute); container.addEventListener('issue-action-click', onIssueActionClick); @@ -32,7 +33,7 @@ * Closes the dialog. * Called when the user clicks the close button on the dialog. */ - function onCloseDialogClick() { + function onCloseDialogEvent() { media_router.browserApi.closeDialog(); }
diff --git a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc index ec56d95d..8426061 100644 --- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc +++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc
@@ -1205,17 +1205,6 @@ case IDR_OMNIBOX_TTS: { return GenerateTintedIcon(id, entry_tint_); } - // In GTK mode, the dark versions of the omnibox icons only ever appear in - // the autocomplete popup and only against the current theme's GtkEntry - // base[GTK_STATE_SELECTED] color, so tint the icons so they won't collide - // with the selected color. - case IDR_OMNIBOX_EXTENSION_APP_DARK: - case IDR_OMNIBOX_HTTP_DARK: - case IDR_OMNIBOX_SEARCH_DARK: - case IDR_OMNIBOX_STAR_DARK: - case IDR_OMNIBOX_TTS_DARK: { - return GenerateTintedIcon(id, selected_entry_tint_); - } // TODO(erg): The dropdown arrow should be tinted because we're injecting // various background GTK colors, but the code that accesses them needs to
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc index b80be994c..47f0628 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -886,13 +886,16 @@ return; } + // Send the updated user list to the UI. + if (delegate_) + delegate_->HandleGetUsers(); + if (delegate_ && !delegate_->IsShowUsers()) { HandleShowAddUser(nullptr); } else { - if (delegate_) - delegate_->HandleGetUsers(); UpdateUIState(UI_STATE_ACCOUNT_PICKER, nullptr); } + preferences_changed_delayed_ = false; }
diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi index ef61887..b0422e4 100644 --- a/chrome/chrome_dll.gypi +++ b/chrome/chrome_dll.gypi
@@ -304,7 +304,7 @@ ], }], # This step currently fails when using LTO. TODO(pcc): Re-enable. - ['OS=="mac" and use_lto==0', { + ['OS=="mac" and use_lto==0 and component=="static_library" and asan==0', { 'postbuilds': [ { # This step causes an error to be raised if the .order file
diff --git a/chrome/test/media_router/media_router_integration_browsertest.cc b/chrome/test/media_router/media_router_integration_browsertest.cc index 3bda7121..91066cea 100644 --- a/chrome/test/media_router/media_router_integration_browsertest.cc +++ b/chrome/test/media_router/media_router_integration_browsertest.cc
@@ -55,7 +55,8 @@ const char kGetRouteLengthScript[] = "domAutomationController.send(window.document.getElementById(" " 'media-router-container').routeList.length)"; - +const char kClickDialog[] = + "window.document.getElementById('media-router-container').click();"; std::string GetStartedSessionId(content::WebContents* web_contents) { std::string session_id; CHECK(content::ExecuteScriptAndExtractString( @@ -143,6 +144,12 @@ ASSERT_TRUE(content::ExecuteScript(dialog_contents, script)); } +void MediaRouterIntegrationBrowserTest::ClickDialog() { + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + content::WebContents* dialog_contents = GetMRDialog(web_contents); + ASSERT_TRUE(content::ExecuteScript(dialog_contents, kClickDialog)); +} content::WebContents* MediaRouterIntegrationBrowserTest::GetMRDialog( content::WebContents* web_contents) { MediaRouterDialogControllerImpl* controller = @@ -152,6 +159,29 @@ return dialog_contents; } +bool MediaRouterIntegrationBrowserTest::IsDialogClosed( + content::WebContents* web_contents) { + MediaRouterDialogControllerImpl* controller = + MediaRouterDialogControllerImpl::GetOrCreateForWebContents(web_contents); + return !controller->GetMediaRouterDialog(); +} + +void MediaRouterIntegrationBrowserTest::WaitUntilDialogClosed( + content::WebContents* web_contents) { + ASSERT_TRUE(ConditionalWait( + base::TimeDelta::FromSeconds(5), base::TimeDelta::FromSeconds(1), + base::Bind(&MediaRouterIntegrationBrowserTest::IsDialogClosed, + base::Unretained(this), web_contents))); +} + +void MediaRouterIntegrationBrowserTest::CheckDialogRemainsOpen( + content::WebContents* web_contents) { + ASSERT_FALSE(ConditionalWait( + base::TimeDelta::FromSeconds(5), base::TimeDelta::FromSeconds(1), + base::Bind(&MediaRouterIntegrationBrowserTest::IsDialogClosed, + base::Unretained(this), web_contents))); +} + void MediaRouterIntegrationBrowserTest::SetTestData( base::FilePath::StringPieceType test_data_file) { base::FilePath full_path = GetResourceFile(test_data_file);
diff --git a/chrome/test/media_router/media_router_integration_browsertest.h b/chrome/test/media_router/media_router_integration_browsertest.h index d8c4bef2..123e684d 100644 --- a/chrome/test/media_router/media_router_integration_browsertest.h +++ b/chrome/test/media_router/media_router_integration_browsertest.h
@@ -46,11 +46,18 @@ static std::string ExecuteScriptAndExtractString( const content::ToRenderFrameHost& adapter, const std::string& script); + void ClickDialog(); + // Get the chrome modal dialog. // |web_contents|: The web contents of the test page which invokes the popup // dialog. content::WebContents* GetMRDialog(content::WebContents* web_contents); + // Checks that the chrome modal dialog does not exist. + bool IsDialogClosed(content::WebContents* web_contents); + void WaitUntilDialogClosed(content::WebContents* web_contents); + void CheckDialogRemainsOpen(content::WebContents* web_contents); + void OpenTestPage(base::FilePath::StringPieceType file); void OpenTestPageInNewTab(base::FilePath::StringPieceType file);
diff --git a/chrome/test/media_router/media_router_integration_ui_browsertest.cc b/chrome/test/media_router/media_router_integration_ui_browsertest.cc index 0f8cd37..a77f86f 100644 --- a/chrome/test/media_router/media_router_integration_ui_browsertest.cc +++ b/chrome/test/media_router/media_router_integration_ui_browsertest.cc
@@ -34,6 +34,12 @@ ChooseSink(web_contents, kTestSinkName); WaitUntilRouteCreated(); + // Simulate a click on the dialog to prevent it from automatically closing + // after the route has been created. Then, check that the dialog remains + // open. + ClickDialog(); + CheckDialogRemainsOpen(web_contents); + // Verify the route details page. std::string route_info_script = base::StringPrintf( "domAutomationController.send(" @@ -56,6 +62,10 @@ // Close route. CloseRouteOnUI(); + + // Do not simulate a click on the dialog. Confirm that the dialog closes + // automatically after the route is closed. + WaitUntilDialogClosed(web_contents); } IN_PROC_BROWSER_TEST_F(MediaRouterIntegrationBrowserTest,
diff --git a/chrome/tools/build/mac/verify_order b/chrome/tools/build/mac/verify_order index 3d5d644a..cfa4c5a 100755 --- a/chrome/tools/build/mac/verify_order +++ b/chrome/tools/build/mac/verify_order
@@ -12,6 +12,8 @@ # # This script can be used to verify that all of the global text symbols in # a Mach-O file are accounted for in an order file. +# +# Also check that the file does not depend on either of libstdc++ or libc++. if [ ${#} -ne 2 ] ; then echo "usage: ${0} LAST_SYMBOL MACH_O_FILE" >& 2 @@ -40,4 +42,18 @@ exit 1 fi +LIBS=$(otool -L "${MACH_O_FILE}") +if [ ${?} -ne 0 ] ; then + echo "${0}: failed to get libraries in ${MACH_O_FILE}" >& 2 + exit 1 +fi +if grep -Fq libstdc++ <<< ${LIBS} ; then + echo "${0}: ${MACH_O_FILE} depends on libstdc++" >& 2 + exit 1 +fi +if grep -Fq libc++ <<< ${LIBS} ; then + echo "${0}: ${MACH_O_FILE} depends on libc++" >& 2 + exit 1 +fi + exit 0
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index f5cf9c0..5fc19ab 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -7573.0.0 \ No newline at end of file +7576.0.0 \ No newline at end of file
diff --git a/content/browser/background_sync/background_sync_browsertest.cc b/content/browser/background_sync/background_sync_browsertest.cc index e90fd7f..8fc9da1 100644 --- a/content/browser/background_sync/background_sync_browsertest.cc +++ b/content/browser/background_sync/background_sync_browsertest.cc
@@ -178,8 +178,8 @@ const std::vector<std::string>& expected_tags); bool CompleteDelayedOneShot(); bool RejectDelayedOneShot(); - bool NotifyWhenDoneOneShot(const std::string& tag); - bool NotifyWhenDoneImmediateOneShot(const std::string& expected_msg); + bool NotifyWhenFinishedOneShot(const std::string& tag); + bool NotifyWhenFinishedImmediateOneShot(const std::string& expected_msg); bool StoreRegistrationOneShot(const std::string& tag); private: @@ -350,16 +350,19 @@ return script_result == BuildExpectedResult("delay", "rejecting"); } -bool BackgroundSyncBrowserTest::NotifyWhenDoneOneShot(const std::string& tag) { +bool BackgroundSyncBrowserTest::NotifyWhenFinishedOneShot( + const std::string& tag) { EXPECT_TRUE(content::ExecuteScript( - shell_->web_contents(), BuildScriptString("notifyWhenDoneOneShot", tag))); - return PopConsole(BuildExpectedResult(tag, "done")); + shell_->web_contents(), + BuildScriptString("notifyWhenFinishedOneShot", tag))); + return PopConsole(BuildExpectedResult(tag, "finished")); } -bool BackgroundSyncBrowserTest::NotifyWhenDoneImmediateOneShot( +bool BackgroundSyncBrowserTest::NotifyWhenFinishedImmediateOneShot( const std::string& expected_msg) { std::string script_result; - EXPECT_TRUE(RunScript("notifyWhenDoneImmediateOneShot()", &script_result)); + EXPECT_TRUE( + RunScript("notifyWhenFinishedImmediateOneShot()", &script_result)); return script_result == expected_msg; } @@ -424,7 +427,7 @@ EXPECT_TRUE(PopConsole("ok - delay completed")); // Verify that it finished firing. - // TODO(jkarlin): Use registration.done to verify that the event actually + // TODO(jkarlin): Use registration.finished to verify that the event actually // completed successfully. EXPECT_FALSE(GetRegistrationOneShot("delay")); } @@ -561,38 +564,40 @@ EXPECT_TRUE(PopConsole("ok - unregister completed")); } -IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneBeforeSyncSucceeds) { +IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, + CallFinishedBeforeSyncSucceeds) { EXPECT_TRUE(RegisterServiceWorker()); EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. SetOnline(false); EXPECT_TRUE(RegisterOneShot("foo")); - EXPECT_TRUE(NotifyWhenDoneOneShot("foo")); + EXPECT_TRUE(NotifyWhenFinishedOneShot("foo")); SetOnline(true); // The ordering of PopConsole messages tells us that the event fired - // before done resolved. + // before finished resolved. EXPECT_TRUE(PopConsole("foo fired")); - EXPECT_TRUE(PopConsole("foo done result: true")); + EXPECT_TRUE(PopConsole("foo finished result: true")); } -IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneBeforeSyncFails) { +IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallFinishedBeforeSyncFails) { EXPECT_TRUE(RegisterServiceWorker()); EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. SetOnline(true); EXPECT_TRUE(RegisterOneShot("delay")); EXPECT_FALSE(OneShotPending("delay")); - EXPECT_TRUE(NotifyWhenDoneOneShot("delay")); + EXPECT_TRUE(NotifyWhenFinishedOneShot("delay")); EXPECT_TRUE(RejectDelayedOneShot()); // The ordering of PopConsole messages tells us that the event fired - // before done resolved. + // before finished resolved. EXPECT_TRUE(PopConsole("ok - delay rejected")); - EXPECT_TRUE(PopConsole("delay done result: false")); + EXPECT_TRUE(PopConsole("delay finished result: false")); } -IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneAfterSyncSuceeds) { +IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, + CallFinishedAfterSyncSuceeds) { EXPECT_TRUE(RegisterServiceWorker()); EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. @@ -603,11 +608,11 @@ SetOnline(true); EXPECT_TRUE(PopConsole("foo fired")); EXPECT_FALSE(GetRegistrationOneShot("foo")); - EXPECT_TRUE(NotifyWhenDoneImmediateOneShot("ok - foo result: true")); + EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - foo result: true")); } IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, - CallDoneAfterSyncUnregistered) { + CallFinishedAfterSyncUnregistered) { EXPECT_TRUE(RegisterServiceWorker()); EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. @@ -616,10 +621,10 @@ EXPECT_TRUE(StoreRegistrationOneShot("foo")); EXPECT_TRUE(UnregisterOneShot("foo")); EXPECT_FALSE(GetRegistrationOneShot("foo")); - EXPECT_TRUE(NotifyWhenDoneImmediateOneShot("ok - foo result: false")); + EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - foo result: false")); } -IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneAfterSyncFails) { +IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallFinishedAfterSyncFails) { EXPECT_TRUE(RegisterServiceWorker()); EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. @@ -630,7 +635,7 @@ EXPECT_TRUE(RejectDelayedOneShot()); EXPECT_TRUE(PopConsole("ok - delay rejected")); - EXPECT_TRUE(NotifyWhenDoneImmediateOneShot("ok - delay result: false")); + EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - delay result: false")); } } // namespace content
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc index 96e41e8..5c3289d 100644 --- a/content/browser/background_sync/background_sync_manager.cc +++ b/content/browser/background_sync/background_sync_manager.cc
@@ -834,7 +834,7 @@ FROM_HERE, base::Bind(callback, BACKGROUND_SYNC_STATUS_OK)); } -void BackgroundSyncManager::NotifyWhenDone( +void BackgroundSyncManager::NotifyWhenFinished( BackgroundSyncRegistrationHandle::HandleId handle_id, const StatusAndStateCallback& callback) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -850,12 +850,12 @@ DuplicateRegistrationHandle(handle_id); op_scheduler_.ScheduleOperation( - base::Bind(&BackgroundSyncManager::NotifyWhenDoneImpl, + base::Bind(&BackgroundSyncManager::NotifyWhenFinishedImpl, weak_ptr_factory_.GetWeakPtr(), base::Passed(registration_handle.Pass()), callback)); } -void BackgroundSyncManager::NotifyWhenDoneImpl( +void BackgroundSyncManager::NotifyWhenFinishedImpl( scoped_ptr<BackgroundSyncRegistrationHandle> registration_handle, const StatusAndStateCallback& callback) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -869,8 +869,8 @@ } if (!registration_handle->registration()->HasCompleted()) { - registration_handle->registration()->AddDoneCallback( - base::Bind(&BackgroundSyncManager::NotifyWhenDoneDidFinish, + registration_handle->registration()->AddFinishedCallback( + base::Bind(&BackgroundSyncManager::NotifyWhenFinishedInvokeCallback, weak_ptr_factory_.GetWeakPtr(), callback)); op_scheduler_.CompleteOperationAndRunNext(); return; @@ -882,7 +882,7 @@ op_scheduler_.CompleteOperationAndRunNext(); } -void BackgroundSyncManager::NotifyWhenDoneDidFinish( +void BackgroundSyncManager::NotifyWhenFinishedInvokeCallback( const StatusAndStateCallback& callback, BackgroundSyncState sync_state) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -1143,7 +1143,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::IO); // Do not check for disabled as events that were firing when disabled should - // be allowed to complete (for NotifyWhenDone). + // be allowed to complete (for NotifyWhenFinished). op_scheduler_.ScheduleOperation(base::Bind( &BackgroundSyncManager::EventCompleteImpl, weak_ptr_factory_.GetWeakPtr(), @@ -1180,12 +1180,12 @@ // TODO(jkarlin): Insert retry logic here. Be sure to check if the state // is UNREGISTERED_WHILE_FIRING first. If so then set the state to failed // if it was already out of retry attempts otherwise keep the state as - // unregistered. Then call RunDoneCallbacks(); (crbug.com/501838) + // unregistered. Then call RunFinishedCallbacks(); (crbug.com/501838) registration->set_sync_state(BACKGROUND_SYNC_STATE_FAILED); - registration->RunDoneCallbacks(); + registration->RunFinishedCallbacks(); } else { registration->set_sync_state(BACKGROUND_SYNC_STATE_SUCCESS); - registration->RunDoneCallbacks(); + registration->RunFinishedCallbacks(); } RegistrationKey key(*registration);
diff --git a/content/browser/background_sync/background_sync_manager.h b/content/browser/background_sync/background_sync_manager.h index 65f5ff20..ff6994e 100644 --- a/content/browser/background_sync/background_sync_manager.h +++ b/content/browser/background_sync/background_sync_manager.h
@@ -244,16 +244,16 @@ const StatusCallback& callback, ServiceWorkerStatusCode status); - // NotifyWhenDone and its callbacks. See - // BackgroundSyncRegistrationHandle::NotifyWhenDone for detailed + // NotifyWhenFinished and its callbacks. See + // BackgroundSyncRegistrationHandle::NotifyWhenFinished for detailed // documentation. - void NotifyWhenDone(BackgroundSyncRegistrationHandle::HandleId handle_id, - const StatusAndStateCallback& callback); - void NotifyWhenDoneImpl( + void NotifyWhenFinished(BackgroundSyncRegistrationHandle::HandleId handle_id, + const StatusAndStateCallback& callback); + void NotifyWhenFinishedImpl( scoped_ptr<BackgroundSyncRegistrationHandle> registration_handle, const StatusAndStateCallback& callback); - void NotifyWhenDoneDidFinish(const StatusAndStateCallback& callback, - BackgroundSyncState status); + void NotifyWhenFinishedInvokeCallback(const StatusAndStateCallback& callback, + BackgroundSyncState status); // GetRegistration callbacks void GetRegistrationImpl(int64 sw_registration_id,
diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc index c1fe475..6e34c8c 100644 --- a/content/browser/background_sync/background_sync_manager_unittest.cc +++ b/content/browser/background_sync/background_sync_manager_unittest.cc
@@ -87,11 +87,11 @@ *out_callback = callback; } -void NotifyWhenDoneCallback(bool* was_called, - BackgroundSyncStatus* out_status, - BackgroundSyncState* out_state, - BackgroundSyncStatus status, - BackgroundSyncState state) { +void NotifyWhenFinishedCallback(bool* was_called, + BackgroundSyncStatus* out_status, + BackgroundSyncState* out_state, + BackgroundSyncStatus status, + BackgroundSyncState state) { *was_called = true; *out_status = status; *out_state = state; @@ -1068,60 +1068,63 @@ EXPECT_FALSE(GetRegistration(sync_options_1_)); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneAfterEventSuccess) { +TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedAfterEventSuccess) { InitSyncEventTest(); EXPECT_TRUE(Register(sync_options_1_)); EXPECT_EQ(1, sync_events_called_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_SUCCESS, sync_state); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneBeforeEventSuccess) { +TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedBeforeEventSuccess) { InitDelayedSyncEventTest(); RegisterAndVerifySyncEventDelayed(sync_options_1_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Finish firing the event. sync_fired_callback_.Run(SERVICE_WORKER_OK); base::RunLoop().RunUntilIdle(); EXPECT_EQ(1, sync_events_called_); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_SUCCESS, sync_state); } TEST_F(BackgroundSyncManagerTest, - NotifyWhenDoneBeforeUnregisteredEventSuccess) { + NotifyWhenFinishedBeforeUnregisteredEventSuccess) { InitDelayedSyncEventTest(); RegisterAndVerifySyncEventDelayed(sync_options_1_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); - // Unregistering should set the state to UNREGISTERED but done shouldn't + // Unregistering should set the state to UNREGISTERED but finished shouldn't // be called until the event finishes firing, at which point its state should // be SUCCESS. EXPECT_TRUE(Unregister(callback_registration_handle_.get())); @@ -1131,26 +1134,27 @@ sync_fired_callback_.Run(SERVICE_WORKER_OK); base::RunLoop().RunUntilIdle(); EXPECT_EQ(1, sync_events_called_); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_SUCCESS, sync_state); } TEST_F(BackgroundSyncManagerTest, - NotifyWhenDoneBeforeUnregisteredEventFailure) { + NotifyWhenFinishedBeforeUnregisteredEventFailure) { InitDelayedSyncEventTest(); RegisterAndVerifySyncEventDelayed(sync_options_1_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); - // Unregistering should set the state to UNREGISTERED but done shouldn't + // Unregistering should set the state to UNREGISTERED but finished shouldn't // be called until the event finishes firing, at which point its state should // be FAILED. EXPECT_TRUE(Unregister(callback_registration_handle_.get())); @@ -1160,122 +1164,129 @@ sync_fired_callback_.Run(SERVICE_WORKER_ERROR_FAILED); base::RunLoop().RunUntilIdle(); EXPECT_EQ(1, sync_events_called_); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_FAILED, sync_state); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneBeforeUnregisteredEventFires) { +TEST_F(BackgroundSyncManagerTest, + NotifyWhenFinishedBeforeUnregisteredEventFires) { InitSyncEventTest(); SetNetwork(net::NetworkChangeNotifier::CONNECTION_NONE); EXPECT_TRUE(Register(sync_options_1_)); EXPECT_TRUE(Unregister(callback_registration_handle_.get())); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, sync_state); } TEST_F(BackgroundSyncManagerTest, - NotifyWhenDoneBeforeEventSuccessDroppedHandle) { + NotifyWhenFinishedBeforeEventSuccessDroppedHandle) { InitDelayedSyncEventTest(); RegisterAndVerifySyncEventDelayed(sync_options_1_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Drop the client's handle to the registration before the event fires, ensure - // that the done callback is still run. + // that the finished callback is still run. callback_registration_handle_ = nullptr; // Finish firing the event. sync_fired_callback_.Run(SERVICE_WORKER_OK); base::RunLoop().RunUntilIdle(); EXPECT_EQ(1, sync_events_called_); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_SUCCESS, sync_state); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneAfterEventFailure) { +TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedAfterEventFailure) { InitFailedSyncEventTest(); EXPECT_TRUE(Register(sync_options_1_)); EXPECT_EQ(1, sync_events_called_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_FAILED, sync_state); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneBeforeEventFailure) { +TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedBeforeEventFailure) { InitDelayedSyncEventTest(); RegisterAndVerifySyncEventDelayed(sync_options_1_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Finish firing the event. sync_fired_callback_.Run(SERVICE_WORKER_ERROR_FAILED); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_FAILED, sync_state); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneAfterUnregistered) { +TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedAfterUnregistered) { EXPECT_TRUE(Register(sync_options_1_)); EXPECT_TRUE(Unregister(callback_registration_handle_.get())); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, sync_state); } -TEST_F(BackgroundSyncManagerTest, NotifyWhenDoneBeforeUnregistered) { +TEST_F(BackgroundSyncManagerTest, NotifyWhenFinishedBeforeUnregistered) { Register(sync_options_1_); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); EXPECT_TRUE(Unregister(callback_registration_handle_.get())); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, sync_state); } @@ -1298,13 +1309,14 @@ EXPECT_EQ(POWER_STATE_AUTO, callback_registration_handle_->options()->power_state); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - original_handle->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + original_handle->NotifyWhenFinished(base::Bind(&NotifyWhenFinishedCallback, + ¬ify_finished_called, + &status, &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, sync_state); EXPECT_EQ(0, sync_events_called_); @@ -1327,19 +1339,20 @@ sync_options_1_.power_state = POWER_STATE_AUTO; EXPECT_TRUE(Register(sync_options_1_)); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - original_handle->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + original_handle->NotifyWhenFinished(base::Bind(&NotifyWhenFinishedCallback, + ¬ify_finished_called, + &status, &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Successfully finish the first event. sync_fired_callback_.Run(SERVICE_WORKER_OK); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_SUCCESS, sync_state); } @@ -1361,24 +1374,25 @@ sync_options_1_.power_state = POWER_STATE_AUTO; EXPECT_TRUE(Register(sync_options_1_)); - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - original_handle->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + original_handle->NotifyWhenFinished(base::Bind(&NotifyWhenFinishedCallback, + ¬ify_finished_called, + &status, &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Fail the first event. sync_fired_callback_.Run(SERVICE_WORKER_ERROR_FAILED); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATUS_OK, status); EXPECT_EQ(BACKGROUND_SYNC_STATE_FAILED, sync_state); } -TEST_F(BackgroundSyncManagerTest, DisableWhilePendingNotifiesDone) { +TEST_F(BackgroundSyncManagerTest, DisableWhilePendingNotifiesFinished) { InitSyncEventTest(); // Register a one-shot that must wait for network connectivity before it @@ -1387,50 +1401,52 @@ EXPECT_TRUE(Register(sync_options_1_)); // Listen for notification of completion. - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Corrupting the backend should result in the manager disabling itself on the // next operation. While disabling, it should finalize any pending // registrations. test_background_sync_manager_->set_corrupt_backend(true); EXPECT_FALSE(Register(sync_options_2_)); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATE_UNREGISTERED, sync_state); } -TEST_F(BackgroundSyncManagerTest, DisableWhileFiringNotifiesDone) { +TEST_F(BackgroundSyncManagerTest, DisableWhileFiringNotifiesFinished) { InitDelayedSyncEventTest(); // Register a one-shot that pauses mid-fire. RegisterAndVerifySyncEventDelayed(sync_options_1_); // Listen for notification of completion. - bool notify_done_called = false; + bool notify_finished_called = false; BackgroundSyncStatus status = BACKGROUND_SYNC_STATUS_OK; BackgroundSyncState sync_state = BACKGROUND_SYNC_STATE_SUCCESS; - callback_registration_handle_->NotifyWhenDone(base::Bind( - &NotifyWhenDoneCallback, ¬ify_done_called, &status, &sync_state)); + callback_registration_handle_->NotifyWhenFinished( + base::Bind(&NotifyWhenFinishedCallback, ¬ify_finished_called, &status, + &sync_state)); base::RunLoop().RunUntilIdle(); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); // Corrupting the backend should result in the manager disabling itself on the // next operation. Even though the manager is disabled, the firing sync event // should still be able to complete successfully and notify as much. test_background_sync_manager_->set_corrupt_backend(true); EXPECT_FALSE(Register(sync_options_2_)); - EXPECT_FALSE(notify_done_called); + EXPECT_FALSE(notify_finished_called); test_background_sync_manager_->set_corrupt_backend(false); // Successfully complete the firing event. sync_fired_callback_.Run(SERVICE_WORKER_OK); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(notify_done_called); + EXPECT_TRUE(notify_finished_called); EXPECT_EQ(BACKGROUND_SYNC_STATE_SUCCESS, sync_state); }
diff --git a/content/browser/background_sync/background_sync_registration.cc b/content/browser/background_sync/background_sync_registration.cc index d3da8e8e..14bdc46a 100644 --- a/content/browser/background_sync/background_sync_registration.cc +++ b/content/browser/background_sync/background_sync_registration.cc
@@ -30,21 +30,21 @@ return id_ != kInvalidRegistrationId; } -void BackgroundSyncRegistration::AddDoneCallback( +void BackgroundSyncRegistration::AddFinishedCallback( const StateCallback& callback) { DCHECK(!HasCompleted()); - notify_done_callbacks_.push_back(callback); + notify_finished_callbacks_.push_back(callback); } -void BackgroundSyncRegistration::RunDoneCallbacks() { +void BackgroundSyncRegistration::RunFinishedCallbacks() { DCHECK(HasCompleted()); - for (auto& callback : notify_done_callbacks_) { + for (auto& callback : notify_finished_callbacks_) { base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(callback, sync_state_)); } - notify_done_callbacks_.clear(); + notify_finished_callbacks_.clear(); } bool BackgroundSyncRegistration::HasCompleted() const { @@ -72,9 +72,9 @@ if (!firing) { // If the registration is currently firing then wait to run - // RunDoneCallbacks until after it has finished as it might + // RunFinishedCallbacks until after it has finished as it might // change state to SUCCESS first. - RunDoneCallbacks(); + RunFinishedCallbacks(); } }
diff --git a/content/browser/background_sync/background_sync_registration.h b/content/browser/background_sync/background_sync_registration.h index 556aad0..084ca1f 100644 --- a/content/browser/background_sync/background_sync_registration.h +++ b/content/browser/background_sync/background_sync_registration.h
@@ -30,13 +30,14 @@ bool Equals(const BackgroundSyncRegistration& other) const; bool IsValid() const; - void AddDoneCallback(const StateCallback& callback); - void RunDoneCallbacks(); + void AddFinishedCallback(const StateCallback& callback); + void RunFinishedCallbacks(); bool HasCompleted() const; // If the registration is currently firing, sets its state to // BACKGROUND_SYNC_STATE_UNREGISTERED_WHILE_FIRING. If it is firing, it sets - // the state to BACKGROUND_SYNC_STATE_UNREGISTERED and calls RunDoneCallbacks. + // the state to BACKGROUND_SYNC_STATE_UNREGISTERED and calls + // RunFinishedCallbacks. void SetUnregisteredState(); const BackgroundSyncRegistrationOptions* options() const { return &options_; } @@ -55,7 +56,7 @@ RegistrationId id_ = kInvalidRegistrationId; BackgroundSyncState sync_state_ = BACKGROUND_SYNC_STATE_PENDING; - std::list<StateCallback> notify_done_callbacks_; + std::list<StateCallback> notify_finished_callbacks_; DISALLOW_COPY_AND_ASSIGN(BackgroundSyncRegistration); };
diff --git a/content/browser/background_sync/background_sync_registration_handle.cc b/content/browser/background_sync/background_sync_registration_handle.cc index 7cb2672..eca0abbb 100644 --- a/content/browser/background_sync/background_sync_registration_handle.cc +++ b/content/browser/background_sync/background_sync_registration_handle.cc
@@ -26,13 +26,13 @@ callback); } -void BackgroundSyncRegistrationHandle::NotifyWhenDone( +void BackgroundSyncRegistrationHandle::NotifyWhenFinished( const StatusAndStateCallback& callback) { DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK(IsValid()); DCHECK(background_sync_manager_); - background_sync_manager_->NotifyWhenDone(handle_id_, callback); + background_sync_manager_->NotifyWhenFinished(handle_id_, callback); } bool BackgroundSyncRegistrationHandle::IsValid() const {
diff --git a/content/browser/background_sync/background_sync_registration_handle.h b/content/browser/background_sync/background_sync_registration_handle.h index 85f21dff..c738179 100644 --- a/content/browser/background_sync/background_sync_registration_handle.h +++ b/content/browser/background_sync/background_sync_registration_handle.h
@@ -50,9 +50,9 @@ // succeeded. The provided state is BACKGROUND_SYNC_STATE_SUCCESS on success, // BACKGRUOND_SYNC_STATE_FAILED on final failure, and // BACKGROUND_SYNC_STATE_UNREGISTERED if the registration was unregistered - // before it could complete. NotifyWhenDone should only be called for + // before it could complete. NotifyWhenFinished should only be called for // SYNC_ONE_SHOT registrations. - void NotifyWhenDone(const StatusAndStateCallback& callback); + void NotifyWhenFinished(const StatusAndStateCallback& callback); // Returns true if the handle is backed by a BackgroundSyncRegistration in the // BackgroundSyncManager.
diff --git a/content/browser/background_sync/background_sync_service_impl.cc b/content/browser/background_sync/background_sync_service_impl.cc index aef8b45..ead436f 100644 --- a/content/browser/background_sync/background_sync_service_impl.cc +++ b/content/browser/background_sync/background_sync_service_impl.cc
@@ -226,9 +226,9 @@ active_handles_.Remove(handle_id); } -void BackgroundSyncServiceImpl::NotifyWhenDone( +void BackgroundSyncServiceImpl::NotifyWhenFinished( BackgroundSyncRegistrationHandle::HandleId handle_id, - const NotifyWhenDoneCallback& callback) { + const NotifyWhenFinishedCallback& callback) { DCHECK_CURRENTLY_ON(BrowserThread::IO); BackgroundSyncRegistrationHandle* registration = active_handles_.Lookup(handle_id); @@ -238,8 +238,8 @@ return; } - registration->NotifyWhenDone( - base::Bind(&BackgroundSyncServiceImpl::OnNotifyWhenDoneResult, + registration->NotifyWhenFinished( + base::Bind(&BackgroundSyncServiceImpl::OnNotifyWhenFinishedResult, weak_ptr_factory_.GetWeakPtr(), callback)); } @@ -287,8 +287,8 @@ mojo_registrations.Pass()); } -void BackgroundSyncServiceImpl::OnNotifyWhenDoneResult( - const NotifyWhenDoneCallback& callback, +void BackgroundSyncServiceImpl::OnNotifyWhenFinishedResult( + const NotifyWhenFinishedCallback& callback, BackgroundSyncStatus status, BackgroundSyncState sync_state) { DCHECK_CURRENTLY_ON(BrowserThread::IO);
diff --git a/content/browser/background_sync/background_sync_service_impl.h b/content/browser/background_sync/background_sync_service_impl.h index 828b53bd..ad8e5339 100644 --- a/content/browser/background_sync/background_sync_service_impl.h +++ b/content/browser/background_sync/background_sync_service_impl.h
@@ -52,8 +52,8 @@ const DuplicateRegistrationHandleCallback& callback) override; void ReleaseRegistration( BackgroundSyncRegistrationHandle::HandleId handle_id) override; - void NotifyWhenDone(BackgroundSyncRegistrationHandle::HandleId handle_id, - const NotifyWhenDoneCallback& callback) override; + void NotifyWhenFinished(BackgroundSyncRegistrationHandle::HandleId handle_id, + const NotifyWhenFinishedCallback& callback) override; void OnRegisterResult(const RegisterCallback& callback, BackgroundSyncStatus status, @@ -64,9 +64,9 @@ const GetRegistrationsCallback& callback, BackgroundSyncStatus status, scoped_ptr<ScopedVector<BackgroundSyncRegistrationHandle>> result); - void OnNotifyWhenDoneResult(const NotifyWhenDoneCallback& callback, - BackgroundSyncStatus status, - BackgroundSyncState sync_state); + void OnNotifyWhenFinishedResult(const NotifyWhenFinishedCallback& callback, + BackgroundSyncStatus status, + BackgroundSyncState sync_state); // Called when an error is detected on binding_. void OnConnectionError();
diff --git a/content/browser/background_sync/background_sync_service_impl_unittest.cc b/content/browser/background_sync/background_sync_service_impl_unittest.cc index 52352a9..5b06a94 100644 --- a/content/browser/background_sync/background_sync_service_impl_unittest.cc +++ b/content/browser/background_sync/background_sync_service_impl_unittest.cc
@@ -246,8 +246,8 @@ void NotifyWhenDone( int32 handle_id, - const BackgroundSyncService::NotifyWhenDoneCallback& callback) { - service_impl_->NotifyWhenDone(handle_id, callback); + const BackgroundSyncService::NotifyWhenFinishedCallback& callback) { + service_impl_->NotifyWhenFinished(handle_id, callback); base::RunLoop().RunUntilIdle(); } @@ -419,7 +419,7 @@ EXPECT_EQ(1UL, array_size); } -TEST_F(BackgroundSyncServiceImplTest, NotifyWhenDone) { +TEST_F(BackgroundSyncServiceImplTest, NotifyWhenFinished) { // Register a sync event. bool register_called = false; BackgroundSyncError register_error;
diff --git a/content/browser/media/android/browser_demuxer_android.cc b/content/browser/media/android/browser_demuxer_android.cc index aab876394..997b4318 100644 --- a/content/browser/media/android/browser_demuxer_android.cc +++ b/content/browser/media/android/browser_demuxer_android.cc
@@ -55,8 +55,11 @@ BrowserDemuxerAndroid::BrowserDemuxerAndroid() : BrowserMessageFilter(MediaPlayerMsgStart) { + const bool use_media_thread = media::UseMediaThreadForMediaPlayback(); + VLOG(1) << "Using " << (use_media_thread ? "media" : "UI") << " thread" + << " for MSE playback"; task_runner_ = - media::UseMediaThreadForMediaPlayback() ? + use_media_thread ? media::GetMediaTaskRunner().get() : BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI).get();
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc b/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc index c47605c2..be8f2b0 100644 --- a/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc +++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
@@ -118,7 +118,8 @@ false), touch_down_(false), scroll_in_progress_(false), - handle_drag_in_progress_(false) { + handle_drag_in_progress_(false), + insertion_quick_menu_allowed_(true) { DCHECK(rwhva_); } @@ -152,7 +153,20 @@ } bool TouchSelectionControllerClientAura::IsQuickMenuAllowed() const { - return !touch_down_ && !scroll_in_progress_ && !handle_drag_in_progress_; + if (touch_down_ || scroll_in_progress_ || handle_drag_in_progress_) + return false; + + switch (rwhva_->selection_controller()->active_status()) { + case ui::TouchSelectionController::INACTIVE: + return false; + case ui::TouchSelectionController::INSERTION_ACTIVE: + return insertion_quick_menu_allowed_; + case ui::TouchSelectionController::SELECTION_ACTIVE: + return true; + } + + NOTREACHED(); + return false; } void TouchSelectionControllerClientAura::ShowQuickMenu() { @@ -191,9 +205,6 @@ bool menu_is_showing = ui::TouchSelectionMenuRunner::GetInstance() && ui::TouchSelectionMenuRunner::GetInstance()->IsRunning(); - bool menu_should_show = rwhva_->selection_controller()->active_status() != - ui::TouchSelectionController::INACTIVE && - IsQuickMenuAllowed(); // Hide the quick menu if there is any. This should happen even if the menu // should be shown again, in order to update its location or content. @@ -203,7 +214,7 @@ quick_menu_timer_.Stop(); // Start timer to show quick menu if necessary. - if (menu_should_show) { + if (IsQuickMenuAllowed()) { if (show_quick_menu_immediately_for_test_) ShowQuickMenu(); else @@ -250,6 +261,7 @@ switch (event) { case ui::SELECTION_HANDLES_SHOWN: case ui::INSERTION_HANDLE_SHOWN: + insertion_quick_menu_allowed_ = false; UpdateQuickMenu(); env_pre_target_handler_.reset(new EnvPreTargetHandler( rwhva_->selection_controller(), rwhva_->GetNativeView())); @@ -271,9 +283,13 @@ break; case ui::SELECTION_HANDLES_MOVED: case ui::INSERTION_HANDLE_MOVED: + insertion_quick_menu_allowed_ = false; UpdateQuickMenu(); break; case ui::INSERTION_HANDLE_TAPPED: + insertion_quick_menu_allowed_ = !insertion_quick_menu_allowed_; + UpdateQuickMenu(); + break; case ui::SELECTION_ESTABLISHED: case ui::SELECTION_DISSOLVED: break;
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura.h b/content/browser/renderer_host/input/touch_selection_controller_client_aura.h index bb9dd66..0c2f6fe6 100644 --- a/content/browser/renderer_host/input/touch_selection_controller_client_aura.h +++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura.h
@@ -65,6 +65,7 @@ bool touch_down_; bool scroll_in_progress_; bool handle_drag_in_progress_; + bool insertion_quick_menu_allowed_; bool show_quick_menu_immediately_for_test_;
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc b/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc index 999b1cd0b4..c8b2cee 100644 --- a/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc +++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc
@@ -159,7 +159,7 @@ DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerClientAuraTest); }; -// Tests if long-pressing on a text brings up selection handles and the quick +// Tests that long-pressing on a text brings up selection handles and the quick // menu properly. IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, BasicSelection) { // Set the test page up. @@ -190,15 +190,17 @@ selection_controller_client->Wait(); - // Check if selection is active and the quick menu is showing. + // Check that selection is active and the quick menu is showing. EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE, rwhva->selection_controller()->active_status()); EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); } -// Tests if tapping in a textfield brings up the insertion handle and the quick -// menu properly. -IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, BasicInsertion) { +// Tests that tapping in a textfield brings up the insertion handle, but not the +// quick menu, initially. Then, successive taps on the insertion handle toggle +// the quick menu visibility. +IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, + BasicInsertionFollowedByTapsOnHandle) { // Set the test page up. ASSERT_NO_FATAL_FAILURE(StartTestWithPage("files/touch_selection.html")); WebContents* web_contents = @@ -214,27 +216,43 @@ rwhva->selection_controller()->active_status()); EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); + ui::test::EventGeneratorDelegate* generator_delegate = + ui::test::EventGenerator::default_delegate; + ui::test::EventGenerator generator( + web_contents->GetContentNativeView()->GetRootWindow()); + // Tap inside the textfield and wait for the insertion handle to appear. selection_controller_client->InitWaitForSelectionEvent( ui::INSERTION_HANDLE_SHOWN); - gfx::PointF point; - ASSERT_TRUE(GetPointInsideTextfield(&point)); - ui::GestureEventDetails tap_details(ui::ET_GESTURE_TAP); - tap_details.set_tap_count(1); - ui::GestureEvent tap(point.x(), point.y(), 0, ui::EventTimeForNow(), - tap_details); - rwhva->OnGestureEvent(&tap); + gfx::PointF point_f; + ASSERT_TRUE(GetPointInsideTextfield(&point_f)); + gfx::Point point = gfx::ToRoundedPoint(point_f); + generator_delegate->ConvertPointFromTarget( + web_contents->GetContentNativeView(), &point); + generator.GestureTapAt(point); selection_controller_client->Wait(); - // Check if insertion is active and the quick menu is showing. + // Check that insertion is active, but the quick menu is not showing. EXPECT_EQ(ui::TouchSelectionController::INSERTION_ACTIVE, rwhva->selection_controller()->active_status()); + EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); + + // Tap on the insertion handle; the quick menu should appear. + gfx::Point handle_center = gfx::ToRoundedPoint( + rwhva->selection_controller()->GetStartHandleRect().CenterPoint()); + generator_delegate->ConvertPointFromTarget( + web_contents->GetContentNativeView(), &handle_center); + generator.GestureTapAt(handle_center); EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); + + // Tap once more on the insertion handle; the quick menu should disappear. + generator.GestureTapAt(handle_center); + EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); } -// Tests if the quick menu is hidden whenever a touch point is active. +// Tests that the quick menu is hidden whenever a touch point is active. IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, QuickMenuHiddenOnTouch) { // Set the test page up. @@ -298,7 +316,7 @@ EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); } -// Tests if the quick menu and touch handles are hidden during an scroll. +// Tests that the quick menu and touch handles are hidden during an scroll. IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, HiddenOnScroll) { // Set the test page up. ASSERT_NO_FATAL_FAILURE(StartTestWithPage("files/touch_selection.html")); @@ -376,7 +394,7 @@ EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning()); } -// Tests if touch selection gets deactivated after an overscroll completes. +// Tests that touch selection gets deactivated after an overscroll completes. IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, HiddenAfterOverscroll) { // Set the page up.
diff --git a/content/child/background_sync/background_sync_provider.cc b/content/child/background_sync/background_sync_provider.cc index fb93ed30..5dab9e4 100644 --- a/content/child/background_sync/background_sync_provider.cc +++ b/content/child/background_sync/background_sync_provider.cc
@@ -184,18 +184,19 @@ GetBackgroundSyncServicePtr()->ReleaseRegistration(handle_id); } -void BackgroundSyncProvider::notifyWhenDone( +void BackgroundSyncProvider::notifyWhenFinished( int64_t handle_id, - blink::WebSyncNotifyWhenDoneCallbacks* callbacks) { + blink::WebSyncNotifyWhenFinishedCallbacks* callbacks) { DCHECK(callbacks); - scoped_ptr<blink::WebSyncNotifyWhenDoneCallbacks> callbacks_ptr(callbacks); + scoped_ptr<blink::WebSyncNotifyWhenFinishedCallbacks> callbacks_ptr( + callbacks); // base::Unretained is safe here, as the mojo channel will be deleted (and // will wipe its callbacks) before 'this' is deleted. - GetBackgroundSyncServicePtr()->NotifyWhenDone( + GetBackgroundSyncServicePtr()->NotifyWhenFinished( handle_id, - base::Bind(&BackgroundSyncProvider::NotifyWhenDoneCallback, + base::Bind(&BackgroundSyncProvider::NotifyWhenFinishedCallback, base::Unretained(this), base::Passed(callbacks_ptr.Pass()))); } @@ -383,8 +384,8 @@ } } -void BackgroundSyncProvider::NotifyWhenDoneCallback( - scoped_ptr<blink::WebSyncNotifyWhenDoneCallbacks> callbacks, +void BackgroundSyncProvider::NotifyWhenFinishedCallback( + scoped_ptr<blink::WebSyncNotifyWhenFinishedCallbacks> callbacks, BackgroundSyncError error, BackgroundSyncState state) { switch (error) { @@ -396,11 +397,13 @@ NOTREACHED(); break; case BACKGROUND_SYNC_STATE_SUCCESS: - callbacks->onSuccess(true); + callbacks->onSuccess(); break; case BACKGROUND_SYNC_STATE_FAILED: case BACKGROUND_SYNC_STATE_UNREGISTERED: - callbacks->onSuccess(false); + callbacks->onError(blink::WebSyncError( + blink::WebSyncError::ErrorTypeAbort, + "Sync failed, unregistered, or overwritten.")); break; } break;
diff --git a/content/child/background_sync/background_sync_provider.h b/content/child/background_sync/background_sync_provider.h index 66460cf..d88fa44 100644 --- a/content/child/background_sync/background_sync_provider.h +++ b/content/child/background_sync/background_sync_provider.h
@@ -66,9 +66,9 @@ blink::WebSyncGetPermissionStatusCallbacks* callbacks) override; // TODO(jkarlin): Rename to releaseRegistrationHandle. void releaseRegistration(int64_t handle_id) override; - void notifyWhenDone( + void notifyWhenFinished( int64_t handle_id, - blink::WebSyncNotifyWhenDoneCallbacks* callbacks) override; + blink::WebSyncNotifyWhenFinishedCallbacks* callbacks) override; void DuplicateRegistrationHandle( int64_t handle_id, @@ -99,8 +99,8 @@ scoped_ptr<blink::WebSyncGetPermissionStatusCallbacks> callbacks, BackgroundSyncError error, PermissionStatus status); - void NotifyWhenDoneCallback( - scoped_ptr<blink::WebSyncNotifyWhenDoneCallbacks> callbacks, + void NotifyWhenFinishedCallback( + scoped_ptr<blink::WebSyncNotifyWhenFinishedCallbacks> callbacks, BackgroundSyncError error, BackgroundSyncState state);
diff --git a/content/common/background_sync_service.mojom b/content/common/background_sync_service.mojom index b0bb88c..18d3ac8 100644 --- a/content/common/background_sync_service.mojom +++ b/content/common/background_sync_service.mojom
@@ -44,7 +44,7 @@ DuplicateRegistrationHandle(int64 handle_id) => (BackgroundSyncError err, SyncRegistration? registration); ReleaseRegistration(int64 handle_id); - NotifyWhenDone(int64 handle_id) => (BackgroundSyncError err, BackgroundSyncState final_status); + NotifyWhenFinished(int64 handle_id) => (BackgroundSyncError err, BackgroundSyncState final_status); }; interface BackgroundSyncServiceClient {
diff --git a/content/test/data/background_sync/background_sync_test_helpers.js b/content/test/data/background_sync/background_sync_test_helpers.js index b74694a..b4cd8b6 100644 --- a/content/test/data/background_sync/background_sync_test_helpers.js +++ b/content/test/data/background_sync/background_sync_test_helpers.js
@@ -157,26 +157,28 @@ .catch(sendErrorToTest); } -function notifyWhenDoneOneShot(tag) { +function notifyWhenFinishedOneShot(tag) { navigator.serviceWorker.ready .then(function(swRegistration) { - swRegistration.active.postMessage({action: 'notifyWhenDone', tag: tag}); + swRegistration.active.postMessage( + {action: 'notifyWhenFinished', tag: tag}); }) .catch(sendErrorToTest); } -function notifyWhenDoneImmediateOneShot(tag) { +function notifyWhenFinishedImmediateOneShot(tag) { if (registrationReference == null) { sendResultToTest('error - must call storeRegistration first'); return; } - registrationReference.done + registrationReference.finished .then(function(success) { sendResultToTest('ok - ' + registrationReference.tag + - ' result: ' + success) + ' result: true') }, function(err) { - sendResultToTest('error - ' + registrationReference.tag + ' failed'); + sendResultToTest('ok - ' + registrationReference.tag + + ' result: false') }) .catch(sendErrorToTest) }
diff --git a/content/test/data/background_sync/service_worker.js b/content/test/data/background_sync/service_worker.js index bcd0c7a2..6fedae8 100644 --- a/content/test/data/background_sync/service_worker.js +++ b/content/test/data/background_sync/service_worker.js
@@ -38,17 +38,17 @@ sendMessageToClients('sync', 'ok - delay rejected'); } - if (event.data['action'] === 'notifyWhenDone') { + if (event.data['action'] === 'notifyWhenFinished') { var tag = event.data['tag']; registration.sync.getRegistration(tag) .then(function (syncRegistration) { - sendMessageToClients('sync', 'ok - ' + tag + ' done'); - return syncRegistration.done; + sendMessageToClients('sync', 'ok - ' + tag + ' finished'); + return syncRegistration.finished; }) - .then(function(success) { - sendMessageToClients('sync', tag + " done result: " + success); + .then(function() { + sendMessageToClients('sync', tag + " finished result: true"); }, function(error) { - sendMessageToClients('sync', tag + " done result: error"); + sendMessageToClients('sync', tag + " finished result: false"); }) .catch(sendSyncErrorToClients); }
diff --git a/media/base/android/media_task_runner.cc b/media/base/android/media_task_runner.cc index a52919c..8c6d0c63 100644 --- a/media/base/android/media_task_runner.cc +++ b/media/base/android/media_task_runner.cc
@@ -32,11 +32,20 @@ const std::string group_name = base::FieldTrialList::FindFullName("EnableMediaThreadForMediaPlayback"); - if (base::CommandLine::ForCurrentProcess()-> - HasSwitch(switches::kEnableMediaThreadForMediaPlayback)) { + // Command line switches take precedence over filed trial groups. + // The disable switch takes precedence over enable switch. + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableMediaThreadForMediaPlayback)) { + return false; + } + + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableMediaThreadForMediaPlayback)) { return true; } + DVLOG(1) << __FUNCTION__ << ": group_name:'" << group_name << "'"; + return base::StartsWith(group_name, "Enabled", base::CompareCase::SENSITIVE); }
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index d993de6..b989733 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -13,6 +13,10 @@ const char kVideoThreads[] = "video-threads"; #if defined(OS_ANDROID) +// Sets the MediaSource player that uses UI thread for frame processing. +const char kDisableMediaThreadForMediaPlayback[] = + "disable-media-thread-for-media-playback"; + // Sets the MediaSource player that uses the separate media thread const char kEnableMediaThreadForMediaPlayback[] = "enable-media-thread-for-media-playback";
diff --git a/media/base/media_switches.h b/media/base/media_switches.h index ac9b65c..03b035e8 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -17,6 +17,7 @@ MEDIA_EXPORT extern const char kVideoThreads[]; #if defined(OS_ANDROID) +MEDIA_EXPORT extern const char kDisableMediaThreadForMediaPlayback[]; MEDIA_EXPORT extern const char kEnableMediaThreadForMediaPlayback[]; #endif
diff --git a/third_party/WebKit/LayoutTests/http/tests/background_sync/interfaces.html b/third_party/WebKit/LayoutTests/http/tests/background_sync/interfaces.html index cd4ef6f..c5d4e1b2 100644 --- a/third_party/WebKit/LayoutTests/http/tests/background_sync/interfaces.html +++ b/third_party/WebKit/LayoutTests/http/tests/background_sync/interfaces.html
@@ -30,7 +30,7 @@ // FIXME: Assert existence of the attributes when they are properly // exposed in the prototype chain. https://crbug.com/43394 - assert_own_property(SyncRegistration.prototype, 'done'); + assert_own_property(SyncRegistration.prototype, 'finished'); assert_own_property(SyncRegistration.prototype, 'unregister'); assert_own_property(SyncRegistration.prototype, 'tag');
diff --git a/third_party/WebKit/LayoutTests/http/tests/background_sync/resources/interfaces-worker.js b/third_party/WebKit/LayoutTests/http/tests/background_sync/resources/interfaces-worker.js index 0b1285a0..e1aa33d 100644 --- a/third_party/WebKit/LayoutTests/http/tests/background_sync/resources/interfaces-worker.js +++ b/third_party/WebKit/LayoutTests/http/tests/background_sync/resources/interfaces-worker.js
@@ -28,7 +28,7 @@ // FIXME: Assert existence of the attributes when they are properly // exposed in the prototype chain. https://crbug.com/43394 - assert_own_property(SyncRegistration.prototype, 'done'); + assert_own_property(SyncRegistration.prototype, 'finished'); assert_own_property(SyncRegistration.prototype, 'unregister'); assert_own_property(SyncRegistration.prototype, 'tag');
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index dda5aa1..23cb402 100644 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -603,7 +603,7 @@ method permissionState method register interface SyncRegistration - getter done + getter finished getter tag method constructor method unregister
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt index ffbf1044c..207e1ed 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -5346,7 +5346,7 @@ method permissionState method register interface SyncRegistration - getter done + getter finished getter tag method constructor method unregister
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp index 2afcc40..fb85c23 100644 --- a/third_party/WebKit/Source/core/dom/Document.cpp +++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -5744,7 +5744,6 @@ visitor->trace(m_listsInvalidatedAtDocument); for (int i = 0; i < numNodeListInvalidationTypes; ++i) visitor->trace(m_nodeLists[i]); - visitor->trace(m_cssCanvasElements); visitor->trace(m_topLayerElements); visitor->trace(m_elemSheet); visitor->trace(m_nodeIterators);
diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp index 77e329b..2f7e0bb 100644 --- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp +++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
@@ -753,10 +753,7 @@ DEFINE_TRACE(HTMLCanvasElement) { -#if ENABLE(OILPAN) - visitor->trace(m_observers); visitor->trace(m_context); -#endif DocumentVisibilityObserver::trace(visitor); HTMLElement::trace(visitor); }
diff --git a/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.cpp b/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.cpp index b2063aa2..7d4989b 100644 --- a/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.cpp +++ b/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.cpp
@@ -56,7 +56,7 @@ m_resolver->reject(SyncError::take(m_resolver.get(), error)); } -SyncNotifyWhenDoneCallbacks::SyncNotifyWhenDoneCallbacks(ScriptPromiseResolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration) +SyncNotifyWhenFinishedCallbacks::SyncNotifyWhenFinishedCallbacks(ScriptPromiseResolver* resolver, ServiceWorkerRegistration* serviceWorkerRegistration) : m_resolver(resolver) , m_serviceWorkerRegistration(serviceWorkerRegistration) { @@ -64,20 +64,20 @@ ASSERT(m_serviceWorkerRegistration); } -SyncNotifyWhenDoneCallbacks::~SyncNotifyWhenDoneCallbacks() +SyncNotifyWhenFinishedCallbacks::~SyncNotifyWhenFinishedCallbacks() { } -void SyncNotifyWhenDoneCallbacks::onSuccess(bool status) +void SyncNotifyWhenFinishedCallbacks::onSuccess() { if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) { return; } - m_resolver->resolve(status); + m_resolver->resolve(); } -void SyncNotifyWhenDoneCallbacks::onError(const WebSyncError& error) +void SyncNotifyWhenFinishedCallbacks::onError(const WebSyncError& error) { if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) { return;
diff --git a/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.h b/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.h index 54837013..398d13a3 100644 --- a/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.h +++ b/third_party/WebKit/Source/modules/background_sync/SyncCallbacks.h
@@ -47,16 +47,17 @@ // depending on the result passed to the callback. It takes a // ServiceWorkerRegistration in its constructor and will pass it to the // SyncProvider. -class SyncNotifyWhenDoneCallbacks final : public WebSyncNotifyWhenDoneCallbacks { - WTF_MAKE_NONCOPYABLE(SyncNotifyWhenDoneCallbacks); +class SyncNotifyWhenFinishedCallbacks final : public WebSyncNotifyWhenFinishedCallbacks { + WTF_MAKE_NONCOPYABLE(SyncNotifyWhenFinishedCallbacks); // FIXME(tasak): when making public/platform classes to use PartitionAlloc, // the following macro should be moved to WebCallbacks defined in public/platformWebCallbacks.h. - WTF_MAKE_FAST_ALLOCATED(SyncNotifyWhenDoneCallbacks); -public: - SyncNotifyWhenDoneCallbacks(ScriptPromiseResolver*, ServiceWorkerRegistration*); - ~SyncNotifyWhenDoneCallbacks() override; + WTF_MAKE_FAST_ALLOCATED(SyncNotifyWhenFinishedCallbacks); - void onSuccess(bool) override; +public: + SyncNotifyWhenFinishedCallbacks(ScriptPromiseResolver*, ServiceWorkerRegistration*); + ~SyncNotifyWhenFinishedCallbacks() override; + + void onSuccess() override; void onError(const WebSyncError&) override; private:
diff --git a/third_party/WebKit/Source/modules/background_sync/SyncRegistration.cpp b/third_party/WebKit/Source/modules/background_sync/SyncRegistration.cpp index 9075288..988d5b0 100644 --- a/third_party/WebKit/Source/modules/background_sync/SyncRegistration.cpp +++ b/third_party/WebKit/Source/modules/background_sync/SyncRegistration.cpp
@@ -50,7 +50,7 @@ syncProvider->releaseRegistration(m_id); } -ScriptPromise SyncRegistration::done(ScriptState* scriptState) +ScriptPromise SyncRegistration::finished(ScriptState* scriptState) { if (m_id == WebSyncRegistration::UNREGISTERED_SYNC_ID) return ScriptPromise::rejectWithDOMException(scriptState, DOMException::create(AbortError, "Operation failed - not a valid registration object")); @@ -61,7 +61,7 @@ WebSyncProvider* webSyncProvider = Platform::current()->backgroundSyncProvider(); ASSERT(webSyncProvider); - webSyncProvider->notifyWhenDone(m_id, new SyncNotifyWhenDoneCallbacks(resolver, m_serviceWorkerRegistration)); + webSyncProvider->notifyWhenFinished(m_id, new SyncNotifyWhenFinishedCallbacks(resolver, m_serviceWorkerRegistration)); return promise; }
diff --git a/third_party/WebKit/Source/modules/background_sync/SyncRegistration.h b/third_party/WebKit/Source/modules/background_sync/SyncRegistration.h index e36bed1..18bc05d6 100644 --- a/third_party/WebKit/Source/modules/background_sync/SyncRegistration.h +++ b/third_party/WebKit/Source/modules/background_sync/SyncRegistration.h
@@ -30,7 +30,7 @@ String tag() const { return m_tag; } void setTag(String value) { m_tag = value; } - ScriptPromise done(ScriptState*); + ScriptPromise finished(ScriptState*); ScriptPromise unregister(ScriptState*); DECLARE_TRACE();
diff --git a/third_party/WebKit/Source/modules/background_sync/SyncRegistration.idl b/third_party/WebKit/Source/modules/background_sync/SyncRegistration.idl index f625bd3..56db134 100644 --- a/third_party/WebKit/Source/modules/background_sync/SyncRegistration.idl +++ b/third_party/WebKit/Source/modules/background_sync/SyncRegistration.idl
@@ -8,6 +8,6 @@ RuntimeEnabled=BackgroundSync, ] interface SyncRegistration { readonly attribute DOMString tag; - [CallWith=ScriptState] readonly attribute Promise<boolean> done; + [CallWith=ScriptState] readonly attribute Promise<void> finished; [CallWith=ScriptState] Promise<boolean> unregister(); };
diff --git a/third_party/WebKit/public/platform/modules/background_sync/WebSyncProvider.h b/third_party/WebKit/public/platform/modules/background_sync/WebSyncProvider.h index 5691955e..890ffbb 100644 --- a/third_party/WebKit/public/platform/modules/background_sync/WebSyncProvider.h +++ b/third_party/WebKit/public/platform/modules/background_sync/WebSyncProvider.h
@@ -18,7 +18,7 @@ class WebServiceWorkerRegistration; using WebSyncRegistrationCallbacks = WebCallbacks<WebPassOwnPtr<WebSyncRegistration>, const WebSyncError&>; -using WebSyncNotifyWhenDoneCallbacks = WebCallbacks<bool, const WebSyncError&>; +using WebSyncNotifyWhenFinishedCallbacks = WebCallbacks<void, const WebSyncError&>; using WebSyncUnregistrationCallbacks = WebCallbacks<bool, const WebSyncError&>; using WebSyncGetRegistrationsCallbacks = WebCallbacks<const WebVector<WebSyncRegistration*>&, const WebSyncError&>; using WebSyncGetPermissionStatusCallbacks = WebCallbacks<WebSyncPermissionStatus, const WebSyncError&>; @@ -47,8 +47,8 @@ // Does not take ownership of the WebServiceWorkerRegistration. virtual void getPermissionStatus(blink::WebSyncRegistration::Periodicity, WebServiceWorkerRegistration*, WebSyncGetPermissionStatusCallbacks*) = 0; - // Takes ownership of the WebSyncNotifyWhenDoneCallbacks. - virtual void notifyWhenDone(int64_t handleId, WebSyncNotifyWhenDoneCallbacks*) = 0; + // Takes ownership of the WebSyncNotifyWhenFinishedCallbacks. + virtual void notifyWhenFinished(int64_t handleId, WebSyncNotifyWhenFinishedCallbacks*) = 0; virtual void releaseRegistration(int64_t handleId) = 0; };
diff --git a/third_party/libc++-static/build.sh b/third_party/libc++-static/build.sh index 96d490c..d79054d0 100755 --- a/third_party/libc++-static/build.sh +++ b/third_party/libc++-static/build.sh
@@ -38,16 +38,16 @@ sed -i '' 's/push(default)/push(hidden)/g' ../../libcxxabi/src/* # Let the default handler not depend on __cxa_demangle, this saves 0.5MB binary -# size in each binary linking against libc++-static.a +# size in each binary linking against libc++.a patch -d ../../libcxxabi -p0 < "${THIS_DIR}/libcxxabi.patch" "$CXX" -c -I../../libcxx/include/ -I../../libcxxabi/include ../../libcxxabi/src/*.cpp $FLAGS popd -libtool -static -o libc++-static.a libcxx*/*.o +libtool -static -o libc++.a libcxx*/*.o -cp libc++-static.a "${THIS_DIR}" -upload_to_google_storage.py -b chromium-libcpp "${THIS_DIR}/libc++-static.a" +cp libc++.a "${THIS_DIR}/libc++.a" +upload_to_google_storage.py -b chromium-libcpp "${THIS_DIR}/libc++.a" popd rm -rf "${DIR}"
diff --git a/third_party/libc++-static/libc++-static.a.sha1 b/third_party/libc++-static/libc++.a.sha1 similarity index 100% rename from third_party/libc++-static/libc++-static.a.sha1 rename to third_party/libc++-static/libc++.a.sha1
diff --git a/tools/perf/find_dependencies b/tools/perf/find_dependencies new file mode 100755 index 0000000..2d0691a88 --- /dev/null +++ b/tools/perf/find_dependencies
@@ -0,0 +1,15 @@ +#!/usr/bin/env python +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import sys + +from core import path_util +sys.path.append(path_util.GetTelemetryDir()) + +from telemetry.internal.util import find_dependencies + + +if __name__ == '__main__': + find_dependencies.FindDependenciesCommand.main()
diff --git a/tools/perf/run_benchmark b/tools/perf/run_benchmark index 93d1708..d35126b 100755 --- a/tools/perf/run_benchmark +++ b/tools/perf/run_benchmark
@@ -3,7 +3,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import os import sys from core import path_util
diff --git a/tools/telemetry/find_dependencies b/tools/telemetry/find_dependencies index b6ebd4b9..c8ec251 100755 --- a/tools/telemetry/find_dependencies +++ b/tools/telemetry/find_dependencies
@@ -3,8 +3,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +from telemetry import decorators from telemetry.internal.util import find_dependencies -if __name__ == '__main__': +@decorators.Deprecated(2015, 11, 23, 'Please use tools/perf/find_dependencies.') +def main(): find_dependencies.FindDependenciesCommand.main() + + +if __name__ == '__main__': + main()