Commit 4d610f94 authored by Wei Lee's avatar Wei Lee Committed by Commit Bot

camera: Hook PerfLogger to chrome://tracing

Bug: b/141518806
Test: Record for 'camera' category in chrome://tracing and launch CCA
Change-Id: I3240f8f88353ba446aaa3c70abfcda7db741337e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1928604
Commit-Queue: Wei Lee <wtlee@chromium.org>
Auto-Submit: Wei Lee <wtlee@chromium.org>
Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Reviewed-by: default avatarShik Chen <shik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#727351}
parent 9e26712b
...@@ -34,6 +34,22 @@ export class ChromeHelper { ...@@ -34,6 +34,22 @@ export class ChromeHelper {
}); });
} }
/**
* Triggers the begin of event tracing in Chrome.
* @param {string} event Name of the event.
*/
startTracing(event) {
this.remote_.startPerfEventTrace(event);
}
/**
* Triggers the end of event tracing in Chrome.
* @param {string} event Name of the event.
*/
stopTracing(event) {
this.remote_.stopPerfEventTrace(event);
}
/** /**
* Checks return value from |handleCameraResult|. * Checks return value from |handleCameraResult|.
* @param {string} caller Caller identifier. * @param {string} caller Caller identifier.
......
...@@ -96,6 +96,7 @@ cca.perf.PerfLogger = class { ...@@ -96,6 +96,7 @@ cca.perf.PerfLogger = class {
return; return;
} }
this.startTimeMap_.set(event, performance.now()); this.startTimeMap_.set(event, performance.now());
cca.mojo.ChromeHelper.getInstance().startTracing(event);
} }
/** /**
...@@ -126,6 +127,7 @@ cca.perf.PerfLogger = class { ...@@ -126,6 +127,7 @@ cca.perf.PerfLogger = class {
} }
const duration = performance.now() - startTime; const duration = performance.now() - startTime;
cca.mojo.ChromeHelper.getInstance().stopTracing(event);
this.listeners_.forEach((listener) => listener(event, duration, perfInfo)); this.listeners_.forEach((listener) => listener(event, duration, perfInfo));
} }
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "components/chromeos_camera/camera_app_helper_impl.h" #include "components/chromeos_camera/camera_app_helper_impl.h"
#include "ash/public/cpp/tablet_mode.h" #include "ash/public/cpp/tablet_mode.h"
#include "base/trace_event/trace_event.h"
namespace chromeos_camera { namespace chromeos_camera {
...@@ -26,4 +27,12 @@ void CameraAppHelperImpl::IsTabletMode(IsTabletModeCallback callback) { ...@@ -26,4 +27,12 @@ void CameraAppHelperImpl::IsTabletMode(IsTabletModeCallback callback) {
std::move(callback).Run(ash::TabletMode::Get()->InTabletMode()); std::move(callback).Run(ash::TabletMode::Get()->InTabletMode());
} }
void CameraAppHelperImpl::StartPerfEventTrace(const std::string& event) {
TRACE_EVENT_BEGIN0("camera", event.c_str());
}
void CameraAppHelperImpl::StopPerfEventTrace(const std::string& event) {
TRACE_EVENT_END0("camera", event.c_str());
}
} // namespace chromeos_camera } // namespace chromeos_camera
...@@ -28,6 +28,8 @@ class CameraAppHelperImpl : public chromeos_camera::mojom::CameraAppHelper { ...@@ -28,6 +28,8 @@ class CameraAppHelperImpl : public chromeos_camera::mojom::CameraAppHelper {
const std::vector<uint8_t>& data, const std::vector<uint8_t>& data,
HandleCameraResultCallback callback) override; HandleCameraResultCallback callback) override;
void IsTabletMode(IsTabletModeCallback callback) override; void IsTabletMode(IsTabletModeCallback callback) override;
void StartPerfEventTrace(const std::string& event) override;
void StopPerfEventTrace(const std::string& event) override;
private: private:
CameraResultCallback camera_result_callback_; CameraResultCallback camera_result_callback_;
......
...@@ -20,4 +20,10 @@ interface CameraAppHelper { ...@@ -20,4 +20,10 @@ interface CameraAppHelper {
// Checks if device is under tablet mode currently. // Checks if device is under tablet mode currently.
IsTabletMode() => (bool is_tablet_mode); IsTabletMode() => (bool is_tablet_mode);
// Triggers the begin of event tracing for given |event|.
StartPerfEventTrace(string event);
// Triggers the end of event tracing for given |event|.
StopPerfEventTrace(string event);
}; };
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