Commit 2f8fab0d authored by Becca Hughes's avatar Becca Hughes Committed by Commit Bot

[Media History] Fix crash hitting CHECK

For some reason we are hitting this CHECK so
this removes it and logs it to a histogram.

BUG=1072403

Change-Id: Icd0d0aa974a17710df2d8467f34aaf2cbad8ef93
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2247912
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#779048}
parent eeafbbf4
......@@ -200,7 +200,15 @@ void MediaHistoryStore::SavePlayback(
// TODO(https://crbug.com/1052436): Remove the separate origin.
auto origin = url::Origin::Create(watch_time.origin);
CHECK_EQ(origin, url::Origin::Create(watch_time.url));
if (origin != url::Origin::Create(watch_time.url)) {
DB()->RollbackTransaction();
base::UmaHistogramEnumeration(
MediaHistoryStore::kPlaybackWriteResultHistogramName,
MediaHistoryStore::PlaybackWriteResult::kFailedToWriteBadOrigin);
return;
}
if (!CreateOriginId(origin)) {
DB()->RollbackTransaction();
......
......@@ -88,7 +88,8 @@ class MediaHistoryStore : public base::RefCountedThreadSafe<MediaHistoryStore> {
kFailedToWriteOrigin = 2,
kFailedToWritePlayback = 3,
kFailedToIncrementAggreatedWatchtime = 4,
kMaxValue = kFailedToIncrementAggreatedWatchtime,
kFailedToWriteBadOrigin = 5,
kMaxValue = kFailedToWriteBadOrigin,
};
// If we write a session into the database then we record the result to
......
......@@ -359,6 +359,28 @@ TEST_P(MediaHistoryStoreUnitTest, MAYBE_SavePlayback) {
MediaHistoryStore::PlaybackWriteResult::kSuccess, IsReadOnly() ? 0 : 2);
}
// TODO(crbug.com/1087974).
#if defined(THREAD_SANITIZER)
#define MAYBE_SavePlayback_BadOrigin DISABLED_SavePlayback_BadOrigin
#else
#define MAYBE_SavePlayback_BadOrigin SavePlayback_BadOrigin
#endif
TEST_P(MediaHistoryStoreUnitTest, MAYBE_SavePlayback_BadOrigin) {
GURL url("http://google.com/test");
GURL url2("http://google.co.uk/test");
content::MediaPlayerWatchTime watch_time(url, url2.GetOrigin(),
base::TimeDelta::FromSeconds(60),
base::TimeDelta(), true, false);
service()->SavePlayback(watch_time);
// Verify that the origin and playbacks table are empty.
auto origins = GetOriginRowsSync(service());
auto playbacks = GetPlaybackRowsSync(service());
EXPECT_TRUE(playbacks.empty());
EXPECT_TRUE(origins.empty());
}
// TODO(crbug.com/1087974).
#if defined(THREAD_SANITIZER)
#define MAYBE_GetStats DISABLED_GetStats
......
......@@ -44526,6 +44526,7 @@ Called by update_use_counter_css.py.-->
<int value="2" label="Failed to write origin"/>
<int value="3" label="Failed to write playback"/>
<int value="4" label="Failed to increment aggregated watchtime"/>
<int value="5" label="Failed to store playback due to bad origin"/>
</enum>
<enum name="MediaHistorySessionWriteResult">
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