
Suppress unsafe buffer usage on a file-by-file basis. Out of approximately 5850 .cc and .h files only roughly 160 files fail compilation with the unsafe buffers warning. Suppress only, by inserting boilerplate into affected files. Do not re-write any code to work around the issues. Properly fixing each file will be done in follow-up CLs. //content/ is not removed from unsafe_bufers_paths.txt file and will be also done as a follow-up, so it makes potential reverts simpler. Bug: 342213636 Change-Id: I4a936e63dea95a78951f7bfae6d5487708ae3c0b AX-Relnotes: n/a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5608913 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Owners-Override: Daniel Cheng <dcheng@chromium.org> Commit-Queue: Nasko Oskov <nasko@chromium.org> Cr-Commit-Position: refs/heads/main@{#1312393}
159 lines
5.7 KiB
C++
159 lines
5.7 KiB
C++
// Copyright 2011 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifdef UNSAFE_BUFFERS_BUILD
|
|
// TODO(crbug.com/342213636): Remove this and spanify to fix the errors.
|
|
#pragma allow_unsafe_buffers
|
|
#endif
|
|
|
|
#include "content/browser/host_zoom_map_impl.h"
|
|
|
|
#include <stddef.h>
|
|
|
|
#include "base/memory/ref_counted.h"
|
|
#include "base/test/simple_test_clock.h"
|
|
#include "content/public/test/browser_task_environment.h"
|
|
#include "testing/gtest/include/gtest/gtest.h"
|
|
|
|
namespace content {
|
|
|
|
class HostZoomMapTest : public testing::Test {
|
|
public:
|
|
HostZoomMapTest() = default;
|
|
|
|
private:
|
|
BrowserTaskEnvironment task_environment_;
|
|
};
|
|
|
|
TEST_F(HostZoomMapTest, GetSetZoomLevel) {
|
|
HostZoomMapImpl host_zoom_map;
|
|
|
|
double zoomed = 2.5;
|
|
host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed);
|
|
|
|
EXPECT_DOUBLE_EQ(0,
|
|
host_zoom_map.GetZoomLevelForHostAndScheme("http", "normal.com"));
|
|
EXPECT_DOUBLE_EQ(zoomed,
|
|
host_zoom_map.GetZoomLevelForHostAndScheme("http", "zoomed.com"));
|
|
}
|
|
|
|
TEST_F(HostZoomMapTest, GetSetZoomLevelWithScheme) {
|
|
HostZoomMapImpl host_zoom_map;
|
|
|
|
double zoomed = 2.5;
|
|
double default_zoom = 1.5;
|
|
|
|
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 0);
|
|
|
|
host_zoom_map.SetDefaultZoomLevel(default_zoom);
|
|
|
|
EXPECT_DOUBLE_EQ(0,
|
|
host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login"));
|
|
EXPECT_DOUBLE_EQ(default_zoom,
|
|
host_zoom_map.GetZoomLevelForHostAndScheme("http", "login"));
|
|
|
|
host_zoom_map.SetZoomLevelForHost("login", zoomed);
|
|
|
|
EXPECT_DOUBLE_EQ(0,
|
|
host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login"));
|
|
EXPECT_DOUBLE_EQ(zoomed,
|
|
host_zoom_map.GetZoomLevelForHostAndScheme("http", "login"));
|
|
}
|
|
|
|
TEST_F(HostZoomMapTest, GetAllZoomLevels) {
|
|
HostZoomMapImpl host_zoom_map;
|
|
|
|
double zoomed = 2.5;
|
|
host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed);
|
|
host_zoom_map.SetZoomLevelForHostAndScheme("https", "zoomed.com", zoomed);
|
|
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", zoomed);
|
|
|
|
HostZoomMap::ZoomLevelVector levels = host_zoom_map.GetAllZoomLevels();
|
|
HostZoomMap::ZoomLevelChange expected[] = {
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed.com", std::string(), zoomed},
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "login", "chrome",
|
|
zoomed},
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "zoomed.com", "https",
|
|
zoomed}, };
|
|
ASSERT_EQ(std::size(expected), levels.size());
|
|
for (size_t i = 0; i < std::size(expected); ++i) {
|
|
SCOPED_TRACE(testing::Message() << "levels[" << i << "]");
|
|
EXPECT_EQ(expected[i].mode, levels[i].mode);
|
|
EXPECT_EQ(expected[i].scheme, levels[i].scheme);
|
|
EXPECT_EQ(expected[i].host, levels[i].host);
|
|
EXPECT_EQ(expected[i].zoom_level, levels[i].zoom_level);
|
|
EXPECT_EQ(expected[i].last_modified, base::Time());
|
|
}
|
|
}
|
|
|
|
TEST_F(HostZoomMapTest, LastModifiedTimestamp) {
|
|
HostZoomMapImpl host_zoom_map;
|
|
base::Time now = base::Time::Now();
|
|
base::SimpleTestClock test_clock;
|
|
host_zoom_map.SetClockForTesting(&test_clock);
|
|
|
|
test_clock.SetNow(now);
|
|
host_zoom_map.SetZoomLevelForHost("zoomed.com", 1.5);
|
|
host_zoom_map.SetZoomLevelForHost("zoomed2.com", 2.0);
|
|
|
|
base::Time later = now + base::Seconds(1);
|
|
test_clock.SetNow(later);
|
|
host_zoom_map.SetZoomLevelForHost("zoomed2.com", 2.5);
|
|
host_zoom_map.SetZoomLevelForHost("zoomzoom.com", 3);
|
|
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 3);
|
|
|
|
HostZoomMap::ZoomLevelVector levels = host_zoom_map.GetAllZoomLevels();
|
|
std::string scheme;
|
|
HostZoomMap::ZoomLevelChange expected[] = {
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed.com", scheme, 1.5, now},
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed2.com", scheme, 2.5, later},
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomzoom.com", scheme, 3.0, later},
|
|
{HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "login", "chrome", 3.0,
|
|
base::Time()},
|
|
};
|
|
ASSERT_EQ(std::size(expected), levels.size());
|
|
for (size_t i = 0; i < std::size(expected); ++i) {
|
|
SCOPED_TRACE(testing::Message() << "levels[" << i << "]");
|
|
EXPECT_EQ(expected[i].mode, levels[i].mode);
|
|
EXPECT_EQ(expected[i].scheme, levels[i].scheme);
|
|
EXPECT_EQ(expected[i].host, levels[i].host);
|
|
EXPECT_EQ(expected[i].zoom_level, levels[i].zoom_level);
|
|
EXPECT_EQ(expected[i].last_modified, levels[i].last_modified);
|
|
}
|
|
}
|
|
|
|
TEST_F(HostZoomMapTest, ClearZoomLevels) {
|
|
HostZoomMapImpl host_zoom_map;
|
|
base::SimpleTestClock test_clock;
|
|
host_zoom_map.SetClockForTesting(&test_clock);
|
|
|
|
base::Time now = base::Time::Now();
|
|
test_clock.SetNow(now - base::Hours(3));
|
|
host_zoom_map.SetZoomLevelForHost("zoomzoom.com", 3.5);
|
|
test_clock.SetNow(now - base::Hours(1));
|
|
host_zoom_map.SetZoomLevelForHost("zoom.com", 1.5);
|
|
test_clock.SetNow(now - base::Days(31));
|
|
host_zoom_map.SetZoomLevelForHost("zoom2.com", 2.5);
|
|
EXPECT_EQ(3u, host_zoom_map.GetAllZoomLevels().size());
|
|
|
|
host_zoom_map.ClearZoomLevels(now - base::Hours(2), base::Time::Max());
|
|
ASSERT_EQ(2u, host_zoom_map.GetAllZoomLevels().size());
|
|
EXPECT_EQ("zoom2.com", host_zoom_map.GetAllZoomLevels()[0].host);
|
|
EXPECT_EQ("zoomzoom.com", host_zoom_map.GetAllZoomLevels()[1].host);
|
|
|
|
host_zoom_map.ClearZoomLevels(base::Time(), now - base::Days(30));
|
|
ASSERT_EQ(1u, host_zoom_map.GetAllZoomLevels().size());
|
|
EXPECT_EQ("zoomzoom.com", host_zoom_map.GetAllZoomLevels()[0].host);
|
|
|
|
host_zoom_map.ClearZoomLevels(base::Time(), base::Time::Max());
|
|
EXPECT_EQ(0u, host_zoom_map.GetAllZoomLevels().size());
|
|
|
|
// Host and scheme settings should not be affected.
|
|
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 3);
|
|
host_zoom_map.ClearZoomLevels(base::Time(), base::Time::Max());
|
|
EXPECT_EQ(1u, host_zoom_map.GetAllZoomLevels().size());
|
|
}
|
|
|
|
} // namespace content
|