Commit e11e9c7f authored by Marc Treib's avatar Marc Treib Committed by Commit Bot

about:sync-internals: Add Request Start and Request Stop buttons

Currently, the "Sync is possible but disabled by the user" state is very
hard to reach: On non-Android, the only way is to trigger a "Reset Sync"
from the dashboard (and on non-ChromeOS, that also signs you out, so
there's really no way at all to reach that state).
This CL adds buttons to request start/stop to about:sync-internals, to
make it easy to reach this state for testing.

Bug: 839834
Change-Id: Ie0757f3c9a7658ac281adbcdf227fc4e6807e6ac
Reviewed-on: https://chromium-review.googlesource.com/1113445Reviewed-by: default avatarMikel Astiz <mastiz@chromium.org>
Commit-Queue: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570025}
parent 1bfc93a7
...@@ -131,6 +131,16 @@ void SyncInternalsMessageHandler::RegisterMessages() { ...@@ -131,6 +131,16 @@ void SyncInternalsMessageHandler::RegisterMessages() {
base::BindRepeating(&SyncInternalsMessageHandler::HandleWriteUserEvent, base::BindRepeating(&SyncInternalsMessageHandler::HandleWriteUserEvent,
base::Unretained(this))); base::Unretained(this)));
web_ui()->RegisterMessageCallback(
syncer::sync_ui_util::kRequestStart,
base::BindRepeating(&SyncInternalsMessageHandler::HandleRequestStart,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
syncer::sync_ui_util::kRequestStop,
base::BindRepeating(&SyncInternalsMessageHandler::HandleRequestStop,
base::Unretained(this)));
web_ui()->RegisterMessageCallback( web_ui()->RegisterMessageCallback(
syncer::sync_ui_util::kTriggerRefresh, syncer::sync_ui_util::kTriggerRefresh,
base::BindRepeating(&SyncInternalsMessageHandler::HandleTriggerRefresh, base::BindRepeating(&SyncInternalsMessageHandler::HandleTriggerRefresh,
...@@ -263,6 +273,28 @@ void SyncInternalsMessageHandler::HandleWriteUserEvent( ...@@ -263,6 +273,28 @@ void SyncInternalsMessageHandler::HandleWriteUserEvent(
user_event_service->RecordUserEvent(event_specifics); user_event_service->RecordUserEvent(event_specifics);
} }
void SyncInternalsMessageHandler::HandleRequestStart(
const base::ListValue* args) {
DCHECK_EQ(0U, args->GetSize());
SyncService* service = GetSyncService();
if (!service)
return;
service->RequestStart();
}
void SyncInternalsMessageHandler::HandleRequestStop(
const base::ListValue* args) {
DCHECK_EQ(0U, args->GetSize());
SyncService* service = GetSyncService();
if (!service)
return;
service->RequestStop(SyncService::KEEP_DATA);
}
void SyncInternalsMessageHandler::HandleTriggerRefresh( void SyncInternalsMessageHandler::HandleTriggerRefresh(
const base::ListValue* args) { const base::ListValue* args) {
SyncService* service = GetSyncService(); SyncService* service = GetSyncService();
......
...@@ -68,6 +68,12 @@ class SyncInternalsMessageHandler : public content::WebUIMessageHandler, ...@@ -68,6 +68,12 @@ class SyncInternalsMessageHandler : public content::WebUIMessageHandler,
// Handler for writeUserEvent message. // Handler for writeUserEvent message.
void HandleWriteUserEvent(const base::ListValue* args); void HandleWriteUserEvent(const base::ListValue* args);
// Handler for requestStart message.
void HandleRequestStart(const base::ListValue* args);
// Handler for requestStop message.
void HandleRequestStop(const base::ListValue* args);
// Handler for triggerRefresh message. // Handler for triggerRefresh message.
void HandleTriggerRefresh(const base::ListValue* args); void HandleTriggerRefresh(const base::ListValue* args);
......
...@@ -58,6 +58,8 @@ const char kSetIncludeSpecifics[] = "setIncludeSpecifics"; ...@@ -58,6 +58,8 @@ const char kSetIncludeSpecifics[] = "setIncludeSpecifics";
const char kUserEventsVisibilityCallback[] = const char kUserEventsVisibilityCallback[] =
"chrome.sync.userEventsVisibilityCallback"; "chrome.sync.userEventsVisibilityCallback";
const char kWriteUserEvent[] = "writeUserEvent"; const char kWriteUserEvent[] = "writeUserEvent";
const char kRequestStart[] = "requestStart";
const char kRequestStop[] = "requestStop";
const char kTriggerRefresh[] = "triggerRefresh"; const char kTriggerRefresh[] = "triggerRefresh";
// Other strings. // Other strings.
......
...@@ -53,6 +53,8 @@ extern const char kRequestUserEventsVisibility[]; ...@@ -53,6 +53,8 @@ extern const char kRequestUserEventsVisibility[];
extern const char kSetIncludeSpecifics[]; extern const char kSetIncludeSpecifics[];
extern const char kUserEventsVisibilityCallback[]; extern const char kUserEventsVisibilityCallback[];
extern const char kWriteUserEvent[]; extern const char kWriteUserEvent[];
extern const char kRequestStart[];
extern const char kRequestStop[];
extern const char kTriggerRefresh[]; extern const char kTriggerRefresh[];
// Other strings. // Other strings.
......
...@@ -25,6 +25,11 @@ ...@@ -25,6 +25,11 @@
</table> </table>
</div> </div>
<div id="request-start-stop-wrapper" jsskip="true">
<button id="request-start">Request Start</button>
<button id="request-stop">Request Stop</button>
</div>
<div id="traffic-event-container-wrapper" jsskip="true"> <div id="traffic-event-container-wrapper" jsskip="true">
<h2 style="display:inline-block">Sync Protocol Log</h2> <h2 style="display:inline-block">Sync Protocol Log</h2>
<input type="checkbox" id="capture-specifics"> <input type="checkbox" id="capture-specifics">
......
...@@ -214,6 +214,13 @@ cr.define('chrome.sync.about_tab', function() { ...@@ -214,6 +214,13 @@ cr.define('chrome.sync.about_tab', function() {
'onCountersUpdated', 'onCountersUpdated',
onAboutInfoCountersUpdated); onAboutInfoCountersUpdated);
$('request-start').addEventListener('click', function(event) {
chrome.sync.requestStart();
});
$('request-stop').addEventListener('click', function(event) {
chrome.sync.requestStop();
});
// Register to receive a stream of event notifications. // Register to receive a stream of event notifications.
chrome.sync.registerForEvents(); chrome.sync.registerForEvents();
......
...@@ -104,6 +104,20 @@ cr.define('chrome.sync', function() { ...@@ -104,6 +104,20 @@ cr.define('chrome.sync', function() {
chrome.send('writeUserEvent', [eventTimeUsec, navigationId]); chrome.send('writeUserEvent', [eventTimeUsec, navigationId]);
}; };
/**
* Triggers a RequestStart call on the SyncService.
*/
var requestStart = function() {
chrome.send('requestStart');
};
/**
* Triggers a RequestStop call on the SyncService.
*/
var requestStop = function() {
chrome.send('requestStop');
};
/** /**
* Triggers a GetUpdates call for all enabled datatypes. * Triggers a GetUpdates call for all enabled datatypes.
*/ */
...@@ -160,6 +174,8 @@ cr.define('chrome.sync', function() { ...@@ -160,6 +174,8 @@ cr.define('chrome.sync', function() {
requestUserEventsVisibility: requestUserEventsVisibility, requestUserEventsVisibility: requestUserEventsVisibility,
setIncludeSpecifics: setIncludeSpecifics, setIncludeSpecifics: setIncludeSpecifics,
writeUserEvent: writeUserEvent, writeUserEvent: writeUserEvent,
requestStart: requestStart,
requestStop: requestStop,
triggerRefresh: triggerRefresh, triggerRefresh: triggerRefresh,
}; };
}); });
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment