diff --git a/DEPS b/DEPS index 7d272cb..dc4abdd1 100644 --- a/DEPS +++ b/DEPS
@@ -138,7 +138,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'ecba713a8dc883a9034d6035f5621f6e95500deb', + 'skia_revision': 'e08b443f9bda453c016d0cc4f73ad93352d539f3', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -150,22 +150,22 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'c6601ec89b5ee8ce973db0a80da84b1758733c69', + 'angle_revision': '8b227a3b707d676fab6186384378c35ef3fefc14', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': '2d77aea5b5db5f80327cb1b015a999762a845ada', + 'swiftshader_revision': '67180a07f8d56f2092da889fbf26073d72d6b47d', # 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': '84079432edd2ca5889fea4fa57d230df73d5fce7', + 'pdfium_revision': '215adebfd4d0bfc67e018eebcaffd6cf581657e7', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. # # Note this revision should be updated with # third_party/boringssl/roll_boringssl.py, not roll-dep. - 'boringssl_revision': '2e0d354690064c90ee245c715b92e2bb32492571', + 'boringssl_revision': '92b7c89e6e8ba82924b57153bea68241cc45f658', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling google-toolbox-for-mac # and whatever else without interference from each other. @@ -269,7 +269,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'shaderc_revision': '213a2a896d0cbe0aeb1fe15283d6475293994974', + 'shaderc_revision': 'a731ee33655895a809613adb0d7745a019fb2229', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -277,7 +277,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'quiche_revision': '71e9d9ec8450972ec9dfd22be4aba8f2d683a93f', + 'quiche_revision': 'c1cab06be6b47a0f96c7dff58802680b2b583b88', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ios_webkit # and whatever else without interference from each other. @@ -807,7 +807,7 @@ # Build tools for Chrome OS. Note: This depends on third_party/pyelftools. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'a2c2c288b71fa6afca3f4d2782e1306d5452449f', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'ee08c785ae2217380beef4122ae9fe13e9e20755', 'condition': 'checkout_linux', }, @@ -822,7 +822,7 @@ # For Linux and Chromium OS. 'src/third_party/cros_system_api': { - 'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'fa76a090a15950aa0cee528c73aee6e2293db90f', + 'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'dfcfcfc36723154f1c574d1885b98d698b2587ac', 'condition': 'checkout_linux', }, @@ -832,7 +832,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '764ec87e51cd63d517f05a38a1cc87ff562680e0', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'b1a3e411d38e2a8da3ba7ec81a4b9b95cde0993e', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -1355,7 +1355,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '6f0b34abee8dba611c253738d955c59f703c147a', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'c2a54dca68d1fe41a3c925c8a59f19a74c9cde70', + Var('webrtc_git') + '/src.git' + '@' + 'e3cc4895c26c3cc6ab901ac236ba355aa49e5c35', 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d', @@ -1396,7 +1396,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@72b6f11d8c555c5d9b6d9e415381fb74facbbbc5', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@16559b057d78e87b73f2e98258deb87fd192d27e', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc index 0bb5c1c..16f929a 100644 --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc
@@ -362,9 +362,6 @@ content::GetNetworkService()->CreateNetworkContext( MakeRequest(&network_context), std::move(context_params)); - // Quic is not currently supported in WebView (http://crbug.com/763187). - content::GetNetworkService()->DisableQuic(); - // Pass a CookieManager to the code supporting AwCookieManager.java (i.e., the // Cookies APIs). PassMojoCookieManagerToAwCookieManager(network_context);
diff --git a/android_webview/browser/aw_content_browser_overlay_manifest.cc b/android_webview/browser/aw_content_browser_overlay_manifest.cc index 630791f..8a6564f 100644 --- a/android_webview/browser/aw_content_browser_overlay_manifest.cc +++ b/android_webview/browser/aw_content_browser_overlay_manifest.cc
@@ -22,11 +22,6 @@ service_manager::Manifest::InterfaceList< safe_browsing::mojom::SafeBrowsing, spellcheck::mojom::SpellCheckHost>()) - .ExposeCapability("profiling_client", - service_manager::Manifest::InterfaceList< - heap_profiling::mojom::ProfilingClient>()) - .RequireCapability(content::mojom::kSystemServiceName, - "profiling_client") .RequireCapability("heap_profiling", "profiling") .RequireCapability("heap_profiling", "heap_profiler") .ExposeInterfaceFilterCapability_Deprecated(
diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc index 572d923..d80ed01 100644 --- a/android_webview/browser/net/aw_url_request_context_getter.cc +++ b/android_webview/browser/net/aw_url_request_context_getter.cc
@@ -305,7 +305,7 @@ ApplyCmdlineOverridesToNetworkSessionParams(&network_session_params); builder.set_http_network_session_params(network_session_params); - // Quic is not currently supported in WebView (http://crbug.com/763187). + // Quic is only supported when network service is enabled. builder.SetSpdyAndQuicEnabled(true, false); builder.SetHttpAuthHandlerFactory(CreateAuthHandlerFactory());
diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc index aa1abe4..33d54be 100644 --- a/android_webview/common/aw_content_client.cc +++ b/android_webview/common/aw_content_client.cc
@@ -15,12 +15,10 @@ #include "components/services/heap_profiling/public/cpp/profiling_client.h" #include "components/version_info/version_info.h" #include "content/public/common/content_switches.h" -#include "content/public/common/service_manager_connection.h" -#include "content/public/common/simple_connection_filter.h" #include "gpu/config/gpu_info.h" #include "gpu/config/gpu_util.h" #include "ipc/ipc_message.h" -#include "services/service_manager/public/cpp/binder_registry.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" @@ -84,19 +82,18 @@ AwResource::GetConfigKeySystemUuidMapping()); } -void AwContentClient::OnServiceManagerConnected( - content::ServiceManagerConnection* connection) { +void AwContentClient::BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) { // This creates a process-wide heap_profiling::ProfilingClient that listens // for requests from the HeapProfilingService to start profiling the current // process. static base::NoDestructor<heap_profiling::ProfilingClient> profiling_client; - - auto registry = std::make_unique<service_manager::BinderRegistry>(); - registry->AddInterface( - base::BindRepeating(&heap_profiling::ProfilingClient::BindToInterface, - base::Unretained(profiling_client.get()))); - connection->AddConnectionFilter( - std::make_unique<content::SimpleConnectionFilter>(std::move(registry))); + if (interface_name == heap_profiling::ProfilingClient::Name_) { + profiling_client->BindToInterface( + mojo::PendingReceiver<heap_profiling::mojom::ProfilingClient>( + std::move(*receiving_handle))); + } } } // namespace android_webview
diff --git a/android_webview/common/aw_content_client.h b/android_webview/common/aw_content_client.h index 6f3a0a6..abaf747 100644 --- a/android_webview/common/aw_content_client.h +++ b/android_webview/common/aw_content_client.h
@@ -29,8 +29,9 @@ void SetGpuInfo(const gpu::GPUInfo& gpu_info) override; bool UsingSynchronousCompositing() override; media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override; - void OnServiceManagerConnected( - content::ServiceManagerConnection* connection) override; + void BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) override; const std::string& gpu_fingerprint() const { return gpu_fingerprint_; }
diff --git a/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java b/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java index 24c1717..a417f21 100644 --- a/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java +++ b/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java
@@ -79,25 +79,12 @@ private SeedLoadAndUpdateRunnable mRunnable; - // Time as reported by SystemClock.elapsedRealtime() that getSeedBlockingAndLog() started - // blocking to wait for the FutureTask that loads the seed. This is written by - // getSeedBlockingAndLog() on the main thread and then read by SeedLoadAndUpdateRunnable on a - // background thread. It's volatile to ensure the write is visible to the background thread: - // https://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html - // TODO(crbug/936172): Remove this after m75. - private volatile long mStartBlockingTime; - private static void recordLoadSeedResult(int result) { EnumeratedHistogramSample histogram = new EnumeratedHistogramSample( "Variations.SeedLoadResult", LoadSeedResult.ENUM_SIZE); histogram.record(result); } - private static void recordTimesHistogram(String name, long time) { - TimesHistogramSample histogram = new TimesHistogramSample(name); - histogram.record(time); - } - private static boolean isExpired(long seedFileTime) { long expirationTime = seedFileTime + SEED_EXPIRATION_MILLIS; long now = (new Date()).getTime(); @@ -117,16 +104,6 @@ private boolean mNeedNewSeed; private long mCurrentSeedDate = Long.MIN_VALUE; - private SeedInfo readSeedFileAndLogTime(File seedFile) { - long start = SystemClock.elapsedRealtime(); - SeedInfo seed = VariationsUtils.readSeedFile(seedFile); - if (seed != null) { - long end = SystemClock.elapsedRealtime(); - recordTimesHistogram("Variations.SeedLoadSuccessTime", end - start); - } - return seed; - } - private FutureTask<SeedInfo> mLoadTask = new FutureTask<>(() -> { File newSeedFile = VariationsUtils.getNewSeedFile(); File oldSeedFile = VariationsUtils.getSeedFile(); @@ -137,7 +114,7 @@ long seedFileTime = 0; // First check for a new seed. - SeedInfo seed = readSeedFileAndLogTime(newSeedFile); + SeedInfo seed = VariationsUtils.readSeedFile(newSeedFile); if (seed != null) { // If a valid new seed was found, make a note to replace the old seed with // the new seed. (Don't do it now, to avoid delaying FutureTask.get().) @@ -146,7 +123,7 @@ seedFileTime = newSeedFile.lastModified(); } else { // If there is no new seed, check for an old seed. - seed = readSeedFileAndLogTime(oldSeedFile); + seed = VariationsUtils.readSeedFile(oldSeedFile); if (seed != null) { seedFileTime = oldSeedFile.lastModified(); @@ -184,19 +161,6 @@ public void run() { mLoadTask.run(); // The loaded seed is now available via get(). The following steps won't block startup. - if (mStartBlockingTime == 0) { - // Ideally, we haven't blocked yet, and the seed is already available, so we will - // block for 0 ms. - recordTimesHistogram("Variations.SeedLoadWouldBlockTime", 0); - } else { - // If we did block, measure the time from when we started blocking until when the - // seed became available. This may be longer than the timeout, in which case we - // should have proceeded without the seed. This tells us how much we'd need to - // increase the timeout to get the seed in this case. - long seedAvailableTime = SystemClock.elapsedRealtime(); - recordTimesHistogram("Variations.SeedLoadWouldBlockTime", - seedAvailableTime - mStartBlockingTime); - } if (mFoundNewSeed) { // The move happens synchronously. It's not possible for the service to still be @@ -262,14 +226,15 @@ } private SeedInfo getSeedBlockingAndLog() { - mStartBlockingTime = SystemClock.elapsedRealtime(); + long start = SystemClock.elapsedRealtime(); try { try { return mRunnable.get(SEED_LOAD_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); } finally { - long finishBlockingTime = SystemClock.elapsedRealtime(); - recordTimesHistogram("Variations.SeedLoadBlockingTime", - finishBlockingTime - mStartBlockingTime); + long end = SystemClock.elapsedRealtime(); + TimesHistogramSample histogram = + new TimesHistogramSample("Variations.SeedLoadBlockingTime"); + histogram.record(end - start); } } catch (TimeoutException e) { recordLoadSeedResult(LoadSeedResult.LOAD_TIMED_OUT);
diff --git a/ash/app_list/app_list_metrics_unittest.cc b/ash/app_list/app_list_metrics_unittest.cc index 08ee7b5..84e610c 100644 --- a/ash/app_list/app_list_metrics_unittest.cc +++ b/ash/app_list/app_list_metrics_unittest.cc
@@ -36,6 +36,8 @@ namespace { +constexpr int kBrowserAppIndexOnShelf = 0; + // A test shelf item delegate that simulates an activated window when a shelf // item is selected. class TestShelfItemDelegate : public ShelfItemDelegate { @@ -105,8 +107,9 @@ GetPrimaryShelf()->GetShelfViewForTesting()); ShelfView* shelf_view = shelf_test_api.shelf_view(); const views::ViewModel* view_model = shelf_view->view_model_for_test(); - gfx::Point center = - view_model->view_at(2)->GetBoundsInScreen().CenterPoint(); + gfx::Point center = view_model->view_at(kBrowserAppIndexOnShelf) + ->GetBoundsInScreen() + .CenterPoint(); // Click on the shelf item. ui::test::EventGenerator* generator = GetEventGenerator();
diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc index bb189893..7da49e70 100644 --- a/ash/drag_drop/drag_drop_controller_unittest.cc +++ b/ash/drag_drop/drag_drop_controller_unittest.cc
@@ -613,11 +613,11 @@ std::string clip_str("I am on the clipboard"); { // We first copy some text to the clipboard. - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); scw.WriteText(base::ASCIIToUTF16(clip_str)); } EXPECT_TRUE(cb->IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)); + ui::ClipboardType::kCopyPaste)); std::unique_ptr<views::Widget> widget = CreateFramelessWidget(); DragTestView* drag_view = new DragTestView; @@ -638,8 +638,8 @@ // Verify the clipboard contents haven't changed std::string result; EXPECT_TRUE(cb->IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)); - cb->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + ui::ClipboardType::kCopyPaste)); + cb->ReadAsciiText(ui::ClipboardType::kCopyPaste, &result); EXPECT_EQ(clip_str, result); // Destroy the clipboard here because ash doesn't delete it. // crbug.com/158150.
diff --git a/ash/kiosk_next/kiosk_next_shell_controller_impl.cc b/ash/kiosk_next/kiosk_next_shell_controller_impl.cc index 0b101713..27e4e63 100644 --- a/ash/kiosk_next/kiosk_next_shell_controller_impl.cc +++ b/ash/kiosk_next/kiosk_next_shell_controller_impl.cc
@@ -25,28 +25,6 @@ namespace ash { -namespace { - -std::unique_ptr<ShelfModel> CreateKioskNextShelfModel() { - auto shelf_model = std::make_unique<ShelfModel>(); - - DCHECK_EQ(0, shelf_model->ItemIndexByID(ShelfID(kBackButtonId))); - DCHECK_EQ(1, shelf_model->ItemIndexByID(ShelfID(kAppListId))); - - ShelfItem back_item = shelf_model->items()[0]; - ShelfItem home_item = shelf_model->items()[1]; - - back_item.title = l10n_util::GetStringUTF16(IDS_ASH_SHELF_BACK_BUTTON_TITLE); - home_item.title = - l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_LAUNCHER_TITLE); - - shelf_model->Set(0, back_item); - shelf_model->Set(1, home_item); - return shelf_model; -} - -} // namespace - KioskNextShellControllerImpl::KioskNextShellControllerImpl() = default; KioskNextShellControllerImpl::~KioskNextShellControllerImpl() = default; @@ -115,7 +93,9 @@ session_controller->GetPrimaryUserSession()->user_info.account_id); UMA_HISTOGRAM_BOOLEAN("KioskNextShell.Launched", true); - shelf_model_ = CreateKioskNextShelfModel(); + // Since the kiosk next shelf only has navigation buttons (back and home), + // its shelf model for apps is empty. + shelf_model_ = std::make_unique<ShelfModel>(); // Notify observers that KioskNextShell has been enabled. for (KioskNextShellObserver& observer : observer_list_) {
diff --git a/ash/login/ui/lock_screen_sanity_unittest.cc b/ash/login/ui/lock_screen_sanity_unittest.cc index 63596f8..e68aa322 100644 --- a/ash/login/ui/lock_screen_sanity_unittest.cc +++ b/ash/login/ui/lock_screen_sanity_unittest.cc
@@ -410,7 +410,7 @@ TEST_F(LockScreenSanityTest, LockScreenKillsPreventsClipboardPaste) { { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(base::UTF8ToUTF16("password")); }
diff --git a/ash/metrics/user_metrics_recorder_unittest.cc b/ash/metrics/user_metrics_recorder_unittest.cc index 95fc010..62c4687 100644 --- a/ash/metrics/user_metrics_recorder_unittest.cc +++ b/ash/metrics/user_metrics_recorder_unittest.cc
@@ -132,11 +132,9 @@ TEST_F(UserMetricsRecorderTest, ValuesRecordedByRecordShelfItemCounts) { CreateUserSessions(1); - // Make sure the shelf contains the app list launcher and back button. + // Make sure the shelf model is empty at first. ShelfModel* shelf_model = ShelfModel::Get(); - ASSERT_EQ(2u, shelf_model->items().size()); - ASSERT_EQ(TYPE_BACK_BUTTON_DEPRECATED, shelf_model->items()[0].type); - ASSERT_EQ(TYPE_APP_LIST_DEPRECATED, shelf_model->items()[1].type); + ASSERT_EQ(0u, shelf_model->items().size()); ShelfItem shelf_item; shelf_item.type = ash::TYPE_PINNED_APP;
diff --git a/ash/public/cpp/shelf_model.cc b/ash/public/cpp/shelf_model.cc index ac2d19ac..ed43043d 100644 --- a/ash/public/cpp/shelf_model.cc +++ b/ash/public/cpp/shelf_model.cc
@@ -56,25 +56,7 @@ g_shelf_model = shelf_model; } -ShelfModel::ShelfModel() { - // Add the back button and app list item; its title and delegate are set in - // ShelfController. This avoids an ash/public dep on ash/strings, and a - // Chrome-side delegate. - // TODO(manucornet): The back button and the app list shelf items are now - // ignored at the view level and handled separately. Remove the creation bit - // here as well. - ShelfItem back_button_item; - back_button_item.type = TYPE_BACK_BUTTON_DEPRECATED; - back_button_item.id = ShelfID(kBackButtonId); - const int back_button_index = Add(back_button_item); - DCHECK_EQ(0, back_button_index); - - ShelfItem app_list_item; - app_list_item.type = TYPE_APP_LIST_DEPRECATED; - app_list_item.id = ShelfID(kAppListId); - const int app_list_index = Add(app_list_item); - DCHECK_EQ(1, app_list_index); -} +ShelfModel::ShelfModel() = default; ShelfModel::~ShelfModel() = default;
diff --git a/ash/public/cpp/shelf_model_unittest.cc b/ash/public/cpp/shelf_model_unittest.cc index 62b207b..93113cd 100644 --- a/ash/public/cpp/shelf_model_unittest.cc +++ b/ash/public/cpp/shelf_model_unittest.cc
@@ -105,24 +105,13 @@ DISALLOW_COPY_AND_ASSIGN(ShelfModelTest); }; -TEST_F(ShelfModelTest, InitializesAppListItem) { - EXPECT_EQ(2, model_->item_count()); - EXPECT_EQ(kBackButtonId, model_->items()[0].id.app_id); - EXPECT_EQ(kAppListId, model_->items()[1].id.app_id); - // The ShelfModel does not initialize the back button's or AppList's - // ShelfItemDelegate. ShelfController does that to prevent Chrome from - // creating its own delegate. - EXPECT_FALSE(model_->GetShelfItemDelegate(ShelfID(kBackButtonId))); - EXPECT_FALSE(model_->GetShelfItemDelegate(ShelfID(kAppListId))); -} - TEST_F(ShelfModelTest, BasicAssertions) { // Add an item. ShelfItem item1; item1.id = ShelfID("item1"); item1.type = TYPE_PINNED_APP; int index = model_->Add(item1); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_LE(0, model_->ItemIndexByID(item1.id)); EXPECT_NE(model_->items().end(), model_->ItemByID(item1.id)); EXPECT_EQ("added=1", observer_->StateStringAndClear()); @@ -138,7 +127,7 @@ // Remove the item. model_->RemoveItemAt(index); - EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(0, model_->item_count()); EXPECT_EQ(-1, model_->ItemIndexByID(item1.id)); EXPECT_EQ(model_->items().end(), model_->ItemByID(item1.id)); EXPECT_EQ("removed=1", observer_->StateStringAndClear()); @@ -148,7 +137,7 @@ item2.id = ShelfID("item2"); item2.type = TYPE_PINNED_APP; index = model_->Add(item2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_LE(0, model_->ItemIndexByID(item2.id)); EXPECT_NE(model_->items().end(), model_->ItemByID(item2.id)); EXPECT_EQ("added=1", observer_->StateStringAndClear()); @@ -166,7 +155,7 @@ item3.id = ShelfID("item3"); item3.type = TYPE_PINNED_APP; model_->Add(item3); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_LE(0, model_->ItemIndexByID(item3.id)); EXPECT_NE(model_->items().end(), model_->ItemByID(item3.id)); EXPECT_EQ("added=1", observer_->StateStringAndClear()); @@ -188,23 +177,23 @@ // Assertions around where items are added. TEST_F(ShelfModelTest, AddIndices) { - // Insert a browser shortcut, like Chrome does, it should be added at index 2. + // Insert a browser shortcut, like Chrome does, it should be added at index 0. ShelfItem browser_shortcut; browser_shortcut.id = ShelfID("browser"); browser_shortcut.type = TYPE_BROWSER_SHORTCUT; - EXPECT_EQ(2, model_->Add(browser_shortcut)); + EXPECT_EQ(0, model_->Add(browser_shortcut)); // App items should be after the browser shortcut. ShelfItem item; item.type = TYPE_APP; item.id = ShelfID("id1"); int platform_app_index1 = model_->Add(item); - EXPECT_EQ(3, platform_app_index1); + EXPECT_EQ(1, platform_app_index1); // Add another platform app item, it should follow first. item.id = ShelfID("id2"); int platform_app_index2 = model_->Add(item); - EXPECT_EQ(4, platform_app_index2); + EXPECT_EQ(2, platform_app_index2); // TYPE_PINNED_APP priority is higher than TYPE_APP but same as // TYPE_BROWSER_SHORTCUT. So TYPE_PINNED_APP is located after @@ -212,104 +201,99 @@ item.type = TYPE_PINNED_APP; item.id = ShelfID("id3"); int app_shortcut_index1 = model_->Add(item); - EXPECT_EQ(3, app_shortcut_index1); + EXPECT_EQ(1, app_shortcut_index1); item.type = TYPE_PINNED_APP; item.id = ShelfID("id4"); int app_shortcut_index2 = model_->Add(item); - EXPECT_EQ(4, app_shortcut_index2); + EXPECT_EQ(2, app_shortcut_index2); // Check that AddAt() figures out the correct indexes for app shortcuts. // TYPE_PINNED_APP and TYPE_BROWSER_SHORTCUT has the same weight. - // So TYPE_PINNED_APP is located at index 2. And, TYPE_BROWSER_SHORTCUT is - // located at index 3. + // So TYPE_PINNED_APP is located at index 0. And, TYPE_BROWSER_SHORTCUT is + // located at index 1. item.type = TYPE_PINNED_APP; item.id = ShelfID("id5"); - int app_shortcut_index3 = model_->AddAt(2, item); - EXPECT_EQ(2, app_shortcut_index3); + int app_shortcut_index3 = model_->AddAt(0, item); + EXPECT_EQ(0, app_shortcut_index3); item.type = TYPE_PINNED_APP; item.id = ShelfID("id6"); - int app_shortcut_index4 = model_->AddAt(7, item); - EXPECT_EQ(6, app_shortcut_index4); + int app_shortcut_index4 = model_->AddAt(5, item); + EXPECT_EQ(4, app_shortcut_index4); item.type = TYPE_PINNED_APP; item.id = ShelfID("id7"); - int app_shortcut_index5 = model_->AddAt(3, item); - EXPECT_EQ(3, app_shortcut_index5); + int app_shortcut_index5 = model_->AddAt(1, item); + EXPECT_EQ(1, app_shortcut_index5); // Check that AddAt() figures out the correct indexes for apps. item.type = TYPE_APP; item.id = ShelfID("id8"); - int platform_app_index3 = model_->AddAt(4, item); - EXPECT_EQ(8, platform_app_index3); + int platform_app_index3 = model_->AddAt(2, item); + EXPECT_EQ(6, platform_app_index3); item.type = TYPE_APP; item.id = ShelfID("id9"); - int platform_app_index4 = model_->AddAt(8, item); - EXPECT_EQ(8, platform_app_index4); + int platform_app_index4 = model_->AddAt(6, item); + EXPECT_EQ(6, platform_app_index4); - EXPECT_EQ(TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type); - EXPECT_EQ(TYPE_APP_LIST_DEPRECATED, model_->items()[1].type); - EXPECT_EQ(TYPE_BROWSER_SHORTCUT, model_->items()[4].type); + EXPECT_EQ(TYPE_BROWSER_SHORTCUT, model_->items()[2].type); } // Test that the indexes for the running applications are properly determined. TEST_F(ShelfModelTest, FirstRunningAppIndex) { - // Insert the browser shortcut at index 2 and check that the running + // Insert the browser shortcut at index 0 and check that the running // application index would be behind it. ShelfItem item; item.id = ShelfID("browser"); item.type = TYPE_BROWSER_SHORTCUT; - EXPECT_EQ(2, model_->Add(item)); - EXPECT_EQ(3, model_->FirstRunningAppIndex()); + EXPECT_EQ(0, model_->Add(item)); + EXPECT_EQ(1, model_->FirstRunningAppIndex()); // Insert an application shortcut and make sure that the running application // index would be behind it. item.type = TYPE_PINNED_APP; item.id = ShelfID("pinned app"); - EXPECT_EQ(3, model_->Add(item)); - EXPECT_EQ(4, model_->FirstRunningAppIndex()); + EXPECT_EQ(1, model_->Add(item)); + EXPECT_EQ(2, model_->FirstRunningAppIndex()); // Insert a two app items and check the first running app index. item.type = TYPE_APP; item.id = ShelfID("app1"); - EXPECT_EQ(4, model_->Add(item)); - EXPECT_EQ(4, model_->FirstRunningAppIndex()); + EXPECT_EQ(2, model_->Add(item)); + EXPECT_EQ(2, model_->FirstRunningAppIndex()); item.id = ShelfID("app2"); - EXPECT_EQ(5, model_->Add(item)); - EXPECT_EQ(4, model_->FirstRunningAppIndex()); + EXPECT_EQ(3, model_->Add(item)); + EXPECT_EQ(2, model_->FirstRunningAppIndex()); } // Test item reordering on type/weight (eg. pinning) changes. crbug.com/248769. TEST_F(ShelfModelTest, ReorderOnTypeChanges) { - EXPECT_EQ(TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type); - EXPECT_EQ(TYPE_APP_LIST_DEPRECATED, model_->items()[1].type); - // Add three pinned items. ShelfItem item1; item1.type = TYPE_PINNED_APP; item1.id = ShelfID("id1"); int app1_index = model_->Add(item1); - EXPECT_EQ(2, app1_index); + EXPECT_EQ(0, app1_index); ShelfItem item2; item2.type = TYPE_PINNED_APP; item2.id = ShelfID("id2"); int app2_index = model_->Add(item2); - EXPECT_EQ(3, app2_index); + EXPECT_EQ(1, app2_index); ShelfItem item3; item3.type = TYPE_PINNED_APP; item3.id = ShelfID("id3"); int app3_index = model_->Add(item3); - EXPECT_EQ(4, app3_index); + EXPECT_EQ(2, app3_index); // Unpinning an item moves it behind the shortcuts. - EXPECT_EQ(item3.id, model_->items()[4].id); + EXPECT_EQ(item3.id, model_->items()[2].id); item2.type = TYPE_APP; model_->Set(app2_index, item2); - EXPECT_EQ(item2.id, model_->items()[4].id); + EXPECT_EQ(item2.id, model_->items()[2].id); } // Test getting the index of ShelfIDs as a check for item presence. @@ -347,31 +331,31 @@ // Check the initial state. EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(0, model_->item_count()); // Pinning a previously unknown app should add an item. model_->PinAppWithID(app_id); EXPECT_TRUE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); - EXPECT_EQ(TYPE_PINNED_APP, model_->items()[2].type); - EXPECT_EQ(app_id, model_->items()[2].id.app_id); + EXPECT_EQ(1, model_->item_count()); + EXPECT_EQ(TYPE_PINNED_APP, model_->items()[0].type); + EXPECT_EQ(app_id, model_->items()[0].id.app_id); // Pinning the same app id again should have no change. model_->PinAppWithID(app_id); EXPECT_TRUE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); - EXPECT_EQ(TYPE_PINNED_APP, model_->items()[2].type); - EXPECT_EQ(app_id, model_->items()[2].id.app_id); + EXPECT_EQ(1, model_->item_count()); + EXPECT_EQ(TYPE_PINNED_APP, model_->items()[0].type); + EXPECT_EQ(app_id, model_->items()[0].id.app_id); // Unpinning the app should remove the item. model_->UnpinAppWithID(app_id); EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(0, model_->item_count()); // Unpinning the same app id again should have no change. model_->UnpinAppWithID(app_id); EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(0, model_->item_count()); } // Test pinning and unpinning a running app, and checking if it is pinned. @@ -380,7 +364,7 @@ // Check the initial state. EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(0, model_->item_count()); // Add an example running app. ShelfItem item; @@ -391,35 +375,35 @@ // The item should be added but not pinned. EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_EQ(TYPE_APP, model_->items()[index].type); EXPECT_EQ(item.id, model_->items()[index].id); // Pinning the item should just change its type. model_->PinAppWithID(app_id); EXPECT_TRUE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_EQ(TYPE_PINNED_APP, model_->items()[index].type); EXPECT_EQ(item.id, model_->items()[index].id); // Pinning the same app id again should have no change. model_->PinAppWithID(app_id); EXPECT_TRUE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_EQ(TYPE_PINNED_APP, model_->items()[index].type); EXPECT_EQ(item.id, model_->items()[index].id); // Unpinning the app should leave the item unpinnned but running. model_->UnpinAppWithID(app_id); EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_EQ(TYPE_APP, model_->items()[index].type); EXPECT_EQ(item.id, model_->items()[index].id); // Unpinning the same app id again should have no change. model_->UnpinAppWithID(app_id); EXPECT_FALSE(model_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_EQ(TYPE_APP, model_->items()[index].type); EXPECT_EQ(item.id, model_->items()[index].id); } @@ -542,7 +526,7 @@ item1.id = ShelfID("item1"); item1.type = TYPE_PINNED_APP; model_->Add(item1); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_LE(0, model_->ItemIndexByID(item1.id)); EXPECT_NE(model_->items().end(), model_->ItemByID(item1.id)); EXPECT_EQ("added=1", observer_->StateStringAndClear()); @@ -555,7 +539,7 @@ // Remove the item. auto taken_delegate = model_->RemoveItemAndTakeShelfItemDelegate(item1.id); - EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(0, model_->item_count()); EXPECT_EQ(-1, model_->ItemIndexByID(item1.id)); EXPECT_EQ(model_->items().end(), model_->ItemByID(item1.id)); EXPECT_EQ("removed=1", observer_->StateStringAndClear());
diff --git a/ash/shelf/default_shelf_view.cc b/ash/shelf/default_shelf_view.cc index cc67496..0703b959 100644 --- a/ash/shelf/default_shelf_view.cc +++ b/ash/shelf/default_shelf_view.cc
@@ -27,11 +27,6 @@ namespace { -// Indices of the start-aligned system buttons (the "back" button in tablet -// mode, and the "app list" button). -constexpr int kBackButtonIndex = 0; -constexpr int kAppListButtonIndex = 1; - // White with ~20% opacity. constexpr SkColor kSeparatorColor = SkColorSetARGB(0x32, 0xFF, 0xFF, 0xFF); @@ -199,18 +194,14 @@ } } - // We've already processed the back and home buttons. - for (int i = kAppListButtonIndex + 1; i < view_model()->view_size(); ++i) { + for (int i = 0; i < view_model()->view_size(); ++i) { if (is_overflow_mode() && i < first_visible_index()) { view_model()->set_ideal_bounds(i, gfx::Rect(x, y, 0, 0)); continue; } view_model()->set_ideal_bounds( - i, - gfx::Rect( - x, y, shelf()->PrimaryAxisValue(kShelfButtonSize, kShelfButtonSize), - shelf()->PrimaryAxisValue(kShelfButtonSize, kShelfButtonSize))); + i, gfx::Rect(x, y, kShelfButtonSize, kShelfButtonSize)); x = shelf()->PrimaryAxisValue(x + kShelfButtonSize + button_spacing, x); y = shelf()->PrimaryAxisValue(y, y + kShelfButtonSize + button_spacing); @@ -237,12 +228,9 @@ UpdateAllButtonsVisibilityInOverflowMode(); return; } - // In the main shelf, the first visible index is either the back button (in - // tablet mode) or the launcher button (otherwise). - if (!is_overflow_mode()) { - set_first_visible_index(IsTabletModeEnabled() ? kBackButtonIndex - : kAppListButtonIndex); - } + // In the main shelf, the first visible index is either the first app, or -1 + // if there are no apps. + set_first_visible_index(view_model()->view_size() == 0 ? -1 : 0); for (int i = 0; i < view_model()->view_size(); ++i) { // To receive drag event continuously from |drag_view_| during the dragging @@ -251,13 +239,9 @@ // FinalizeRipOffDrag(). if (dragged_off_shelf() && view_model()->view_at(i) == drag_view()) continue; - // If the virtual keyboard is visible, only the back button and the app - // list button are shown. - const bool is_visible_item = !virtual_keyboard_visible || - i == kBackButtonIndex || - i == kAppListButtonIndex; + // If the virtual keyboard is visible, do not show any apps. view_model()->view_at(i)->SetVisible(i <= last_visible_index() && - is_visible_item); + !virtual_keyboard_visible); } overflow_button()->SetVisible(app_centering_strategy.overflow); @@ -346,8 +330,7 @@ int available_space_for_screen_centering = screen_size - 2 * (status_widget_size + kAppIconGroupMargin); - // Views at index 0 and 1 are the back button and app list button. - if (GetSizeOfAppIcons(view_model()->view_size() - 2, false) < + if (GetSizeOfAppIcons(view_model()->view_size(), false) < available_space_for_screen_centering) { // Everything fits in the center of the screen. set_last_visible_index(view_model()->view_size() - 1); @@ -356,11 +339,11 @@ } const int available_size_for_app_icons = GetAvailableSpaceForAppIcons(); - set_last_visible_index(1); + set_last_visible_index(-1); // We know that replacing the last app that fits with the overflow button // will not change the outcome, so we ignore that case for now. while (last_visible_index() < view_model()->view_size() - 1) { - if (GetSizeOfAppIcons(last_visible_index(), false) <= + if (GetSizeOfAppIcons(last_visible_index() + 2, false) <= available_size_for_app_icons) { set_last_visible_index(last_visible_index() + 1); } else {
diff --git a/ash/shelf/kiosk_next_shelf_view.cc b/ash/shelf/kiosk_next_shelf_view.cc index 67251316..dc55061 100644 --- a/ash/shelf/kiosk_next_shelf_view.cc +++ b/ash/shelf/kiosk_next_shelf_view.cc
@@ -109,12 +109,13 @@ Shelf* shelf, ShelfWidget* shelf_widget) : ShelfView(model, shelf, shelf_widget) { - // Kiosk next shelf has 2 buttons and it is expected to be used in tablet mode - // with bottom shelf alignment. It can be adapted to different requirements, - // but they should be explicitly verified first. + // Kiosk next shelf has 2 navigation buttons (back and home), no app items + // in its shelf model, and it is expected to be used in tablet mode with + // bottom shelf alignment. It can be adapted to different requirements, but + // they should be explicitly verified first. DCHECK(IsTabletModeEnabled()); DCHECK(shelf->IsHorizontalAlignment()); - DCHECK_EQ(2, model->item_count()); + DCHECK_EQ(0, model->item_count()); } KioskNextShelfView::~KioskNextShelfView() = default; @@ -128,14 +129,11 @@ // code should be removed. DCHECK(overflow_button()); overflow_button()->SetVisible(false); - - set_first_visible_index(0); - set_last_visible_index(model()->item_count() - 1); } void KioskNextShelfView::CalculateIdealBounds() { DCHECK(shelf()->IsHorizontalAlignment()); - DCHECK_EQ(2, model()->item_count()); + DCHECK_EQ(0, model()->item_count()); DCHECK_GE(kShelfSize, kKioskNextShelfControlHeightDp); // TODO(https://crbug.com/965690): Button spacing might be relative to shelf
diff --git a/ash/shelf/shelf_controller.cc b/ash/shelf/shelf_controller.cc index 267f2f59..ff29544 100644 --- a/ash/shelf/shelf_controller.cc +++ b/ash/shelf/shelf_controller.cc
@@ -106,20 +106,6 @@ message_center_observer_(this) { ShelfModel::SetInstance(&model_); - // Set the delegate and title string for the back button. - model_.SetShelfItemDelegate(ShelfID(kBackButtonId), nullptr); - DCHECK_EQ(0, model_.ItemIndexByID(ShelfID(kBackButtonId))); - ShelfItem back_item = model_.items()[0]; - back_item.title = l10n_util::GetStringUTF16(IDS_ASH_SHELF_BACK_BUTTON_TITLE); - model_.Set(0, back_item); - - // Set the title string for the home button. - DCHECK_EQ(1, model_.ItemIndexByID(ShelfID(kAppListId))); - ShelfItem launcher_item = model_.items()[1]; - launcher_item.title = - l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_LAUNCHER_TITLE); - model_.Set(1, launcher_item); - Shell::Get()->session_controller()->AddObserver(this); Shell::Get()->tablet_mode_controller()->AddObserver(this); Shell::Get()->window_tree_host_manager()->AddObserver(this);
diff --git a/ash/shelf/shelf_controller_unittest.cc b/ash/shelf/shelf_controller_unittest.cc index 4bece12..899b0f37 100644 --- a/ash/shelf/shelf_controller_unittest.cc +++ b/ash/shelf/shelf_controller_unittest.cc
@@ -54,14 +54,6 @@ using ShelfControllerTest = AshTestBase; -TEST_F(ShelfControllerTest, InitializesBackButtonAndAppListItemDelegate) { - ShelfModel* model = Shell::Get()->shelf_controller()->model(); - EXPECT_EQ(2, model->item_count()); - EXPECT_EQ(kBackButtonId, model->items()[0].id.app_id); - EXPECT_FALSE(model->GetShelfItemDelegate(ShelfID(kBackButtonId))); - EXPECT_EQ(kAppListId, model->items()[1].id.app_id); -} - TEST_F(ShelfControllerTest, Shutdown) { // Simulate a display change occurring during shutdown (e.g. due to a screen // rotation animation being canceled).
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc index 9178e00d..b6ce992 100644 --- a/ash/shelf/shelf_layout_manager.cc +++ b/ash/shelf/shelf_layout_manager.cc
@@ -594,6 +594,11 @@ return !pip_container->children().empty(); } +void ShelfLayoutManager::CancelDragOnShelfIfInProgress() { + if (drag_status_ == kDragInProgress || drag_status_ == kDragAppListInProgress) + CancelDrag(); +} + void ShelfLayoutManager::OnWindowResized() { LayoutShelf(); }
diff --git a/ash/shelf/shelf_layout_manager.h b/ash/shelf/shelf_layout_manager.h index 721f633..1e9b8b5 100644 --- a/ash/shelf/shelf_layout_manager.h +++ b/ash/shelf/shelf_layout_manager.h
@@ -126,6 +126,9 @@ // Returns true if at least one window is visible. bool HasVisibleWindow() const; + // Cancel the drag if the shelf is in drag progress. + void CancelDragOnShelfIfInProgress(); + // wm::WmSnapToPixelLayoutManager: void OnWindowResized() override; void SetChildBounds(aura::Window* child,
diff --git a/ash/shelf/shelf_layout_manager_unittest.cc b/ash/shelf/shelf_layout_manager_unittest.cc index 80d4771..a56dc92 100644 --- a/ash/shelf/shelf_layout_manager_unittest.cc +++ b/ash/shelf/shelf_layout_manager_unittest.cc
@@ -89,7 +89,7 @@ namespace { void PressAppListButton() { - ash::Shell::Get()->app_list_controller()->OnAppListButtonPressed( + Shell::Get()->app_list_controller()->OnAppListButtonPressed( display::Screen::GetScreen()->GetPrimaryDisplay().id(), app_list::AppListShowSource::kShelfButton, base::TimeTicks()); } @@ -107,6 +107,15 @@ return AshTestBase::GetPrimaryShelf()->shelf_layout_manager(); } +gfx::Rect GetScreenAvailableBounds() { + const WorkAreaInsets* const work_area = + WorkAreaInsets::ForWindow(GetShelfWidget()->GetNativeWindow()); + gfx::Rect available_bounds = screen_util::GetDisplayBoundsWithShelf( + GetShelfWidget()->GetNativeWindow()); + available_bounds.Inset(work_area->GetAccessibilityInsets()); + return available_bounds; +} + // Class which waits till the shelf finishes animating to the target size and // counts the number of animation steps. class ShelfAnimationWaiter : views::WidgetObserver { @@ -2643,18 +2652,12 @@ // Tests that the auto-hide shelf has expected behavior when pressing the // AppList button while the shelf is being dragged by gesture (see // https://crbug.com/953877). -TEST_F(ShelfLayoutManagerTest, PressAppListBtnWhenShelfBeingDragged) { +TEST_F(ShelfLayoutManagerTest, PressAppListBtnWhenAutoHideShelfBeingDragged) { // Create a widget to hide the shelf in auto-hide mode. CreateTestWidget(); GetPrimaryShelf()->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); EXPECT_FALSE(GetPrimaryShelf()->IsVisible()); - const WorkAreaInsets* const work_area = - WorkAreaInsets::ForWindow(GetShelfWidget()->GetNativeWindow()); - gfx::Rect available_bounds = screen_util::GetDisplayBoundsWithShelf( - GetShelfWidget()->GetNativeWindow()); - available_bounds.Inset(work_area->GetAccessibilityInsets()); - // Emulate to drag the shelf to show it. gfx::Point gesture_location = display::Screen::GetScreen() ->GetPrimaryDisplay() @@ -2705,7 +2708,7 @@ // (1) Shelf is hidden // (2) Shelf has correct bounds in screen coordinate. PressAppListButton(); - EXPECT_EQ(available_bounds.bottom_left() + + EXPECT_EQ(GetScreenAvailableBounds().bottom_left() + gfx::Point(0, -kHiddenShelfInScreenPortion).OffsetFromOrigin(), GetPrimaryShelf() ->GetShelfViewForTesting() @@ -2714,6 +2717,54 @@ EXPECT_FALSE(GetPrimaryShelf()->IsVisible()); } +// Tests that the shelf has expected bounds when dragging the shelf by gesture +// and pressing the AppList button by mouse during drag (see +// https://crbug.com/968768). +TEST_F(ShelfLayoutManagerTest, MousePressAppListBtnWhenShelfBeingDragged) { + // Drag the shelf upward. Notice that in order to drag shelf instead of + // AppList from shelf, we need to drag the shelf downward a little bit then + // upward. Because the bug is related with RootView, the event should be sent + // through the shelf widget. + gfx::Point gesture_location = + GetPrimaryShelf()->GetShelfViewForTesting()->bounds().CenterPoint(); + int delta_y = 1; + base::TimeTicks timestamp = base::TimeTicks::Now(); + ui::GestureEvent start_event = ui::GestureEvent( + gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp, + ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 0, delta_y)); + GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&start_event); + delta_y = -5; + timestamp += base::TimeDelta::FromMilliseconds(200); + ui::GestureEvent update_event = ui::GestureEvent( + gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp, + ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 0, delta_y)); + GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&update_event); + + // Press the AppList button by mouse. + views::View* app_list_button = + GetPrimaryShelf()->GetShelfViewForTesting()->GetAppListButton(); + GetEventGenerator()->MoveMouseTo( + app_list_button->GetBoundsInScreen().CenterPoint()); + GetEventGenerator()->ClickLeftButton(); + + // End the gesture event. + delta_y -= 1; + gesture_location.Offset(0, delta_y); + timestamp += base::TimeDelta::FromMilliseconds(200); + ui::GestureEvent scroll_end_event = ui::GestureEvent( + gesture_location.x(), gesture_location.y(), ui::EF_NONE, timestamp, + ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END)); + GetPrimaryShelf()->shelf_widget()->OnGestureEvent(&scroll_end_event); + + // Verify that the shelf has expected bounds. + EXPECT_EQ(GetScreenAvailableBounds().bottom_left() + + gfx::Point(0, -kShelfSize).OffsetFromOrigin(), + GetPrimaryShelf() + ->GetShelfViewForTesting() + ->GetBoundsInScreen() + .origin()); +} + // Tests that tap outside of the AUTO_HIDE_SHOWN shelf should hide it. TEST_F(ShelfLayoutManagerTest, TapOutsideOfAutoHideShownShelf) { views::Widget* widget = CreateTestWidget();
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc index 4729d6c..2130b20 100644 --- a/ash/shelf/shelf_view.cc +++ b/ash/shelf/shelf_view.cc
@@ -86,9 +86,6 @@ constexpr int kMarginBetweenAppsAndOverflow = 16; } // namespace -constexpr int kBackButtonIndex = 0; -constexpr int kAppListButtonIndex = 1; - // The distance of the cursor from the outer rim of the shelf before it // separates. constexpr int kRipOffDistance = 48; @@ -168,11 +165,13 @@ ShelfView* main_shelf = shelf_view_->main_shelf(); ShelfView* overflow_shelf = shelf_view_->overflow_shelf(); + if (IsTabletModeEnabled()) + focusable_views.push_back(main_shelf->GetBackButton()); + + focusable_views.push_back(main_shelf->GetAppListButton()); for (int i = main_shelf->first_visible_index(); i <= main_shelf->last_visible_index(); ++i) { - views::View* view = main_shelf->view_model()->view_at(i); - if (view != main_shelf->GetBackButton() || IsTabletModeEnabled()) - focusable_views.push_back(view); + focusable_views.push_back(main_shelf->view_model()->view_at(i)); } if (main_shelf->GetOverflowButton()->GetVisible()) focusable_views.push_back(main_shelf->GetOverflowButton()); @@ -356,12 +355,10 @@ std::unique_ptr<BackButton> back_button_ptr = CreateBackButton(); ConfigureChildView(back_button_ptr.get()); back_button_ = AddChildView(std::move(back_button_ptr)); - view_model_->Add(back_button_, kBackButtonIndex); std::unique_ptr<AppListButton> home_button_ptr = CreateHomeButton(); ConfigureChildView(home_button_ptr.get()); home_button_ = AddChildView(std::move(home_button_ptr)); - view_model_->Add(home_button_, kAppListButtonIndex); home_button_->set_context_menu_controller(this); for (ShelfItems::const_iterator i = items.begin(); i != items.end(); ++i) { @@ -436,15 +433,9 @@ void ShelfView::UpdateVisibleShelfItemBoundsUnion() { visible_shelf_item_bounds_union_.SetRect(0, 0, 0, 0); - for (int i = first_visible_index_; i <= last_visible_index_; ++i) { + for (int i = std::max(0, first_visible_index_); i <= last_visible_index_; + ++i) { const views::View* child = view_model_->view_at(i); - // Since shelf items are centered, we don't want to include the app list - // button, otherwise tooltips will show when hovering a potentially large - // amount of white space between the app list button and the first item. - if (child == GetAppListButton()) - continue; - if (!IsTabletModeEnabled() && child == GetBackButton()) - continue; if (ShouldShowTooltipForView(child)) visible_shelf_item_bounds_union_.Union(child->GetMirroredBounds()); } @@ -500,9 +491,14 @@ } gfx::Size ShelfView::CalculatePreferredSize() const { - // Use |last_visible_index_| != -1 as sentinel to ensure - // CalculateIdealBounds() is called before getting here. - DCHECK_NE(last_visible_index_, -1); + if (model_->item_count() == 0) { + // There are no apps. + return shelf_->IsHorizontalAlignment() + ? gfx::Size(GetAppListButton()->bounds().right(), + ShelfConstants::shelf_size()) + : gfx::Size(ShelfConstants::shelf_size(), + GetAppListButton()->bounds().bottom()); + } int last_button_index = last_visible_index_; if (!is_overflow_mode() && overflow_button_ && overflow_button_->GetVisible()) @@ -845,12 +841,15 @@ views::View* ShelfView::FindFirstFocusableChild() { if (is_overflow_mode()) return main_shelf()->FindFirstFocusableChild(); - return view_model_->view_at(first_visible_index()); + return IsTabletModeEnabled() ? static_cast<views::View*>(GetBackButton()) + : static_cast<views::View*>(GetAppListButton()); } views::View* ShelfView::FindLastFocusableChild() { if (IsShowingOverflowBubble()) return overflow_shelf()->FindLastFocusableChild(); + if (view_model_->view_size() == 0) + return static_cast<views::View*>(GetAppListButton()); return overflow_button_->GetVisible() ? overflow_button_ : view_model_->view_at(last_visible_index()); @@ -1035,11 +1034,18 @@ if (event.flags() & ui::EF_IS_DOUBLE_CLICK) return false; + const bool repost = IsRepostEvent(event); + + // The back and app buttons are not part of the view model, treat them + // separately. + if (view == GetAppListButton() || view == GetBackButton()) + return !repost; + // Ignore if this is a repost event on the last pressed shelf item. int index = view_model_->GetIndexOfView(view); if (index == -1) return false; - return !IsRepostEvent(event) || last_pressed_index_ != index; + return !repost || last_pressed_index_ != index; } void ShelfView::SwapButtons(ShelfButton* button_to_swap, bool with_next) { @@ -1060,8 +1066,7 @@ } const int target_index = with_next ? src_index + 1 : src_index - 1; - const int first_swappable_index = - std::max(first_visible_index_, kAppListButtonIndex + 1); + const int first_swappable_index = std::max(first_visible_index_, 0); const int last_swappable_index = last_visible_index_; if (src_index == -1 || (target_index > last_swappable_index) || (target_index < first_swappable_index)) { @@ -1091,7 +1096,7 @@ shelf_menu_model_adapter_->Cancel(); int index = view_model_->GetIndexOfView(view); - if (index == -1 || view_model_->view_size() <= 1) + if (index == -1 || view_model_->view_size() < 1) return; // View is being deleted, ignore request. if (view == GetAppListButton() || view == GetBackButton()) @@ -1175,7 +1180,6 @@ } void ShelfView::LayoutOverflowButton() const { - DCHECK_NE(0, view_model_->view_size()); int x = 0; int y = 0; if (last_visible_index_ != -1) { @@ -1212,7 +1216,7 @@ if (home->border()) home->SetBorder(views::NullBorder()); - for (int i = kAppListButtonIndex + 1; i < view_model_->view_size(); ++i) { + for (int i = 0; i < view_model_->view_size(); ++i) { View* view = view_model_->view_at(i); bounds_animator_->AnimateViewTo(view, view_model_->ideal_bounds(i)); // Now that the item animation starts, we have to make sure that the @@ -1636,12 +1640,8 @@ max_index = i; } } - DCHECK_EQ(1, model_->GetItemIndexForType(TYPE_APP_LIST_DEPRECATED)); min_index = - std::max(min_index, - is_overflow_mode() - ? first_visible_index_ - : model_->GetItemIndexForType(TYPE_APP_LIST_DEPRECATED) + 1); + std::max(min_index, is_overflow_mode() ? first_visible_index_ : 0); max_index = std::min(max_index, last_visible_index_); return std::pair<int, int>(min_index, max_index); }
diff --git a/ash/shelf/shelf_view.h b/ash/shelf/shelf_view.h index 53981c0..a8d2283 100644 --- a/ash/shelf/shelf_view.h +++ b/ash/shelf/shelf_view.h
@@ -77,38 +77,33 @@ // // If there is enough screen space, all icons can fit: // -// ------------------------------------------------------------------------- -// | 1 | | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -// ------------------------------------------------------------------------- -// ^ ^ -// | | -// first_visible_index = 1 (app list) last_visible_index = 12 -// (back button = 0 is hidden) +// ------------------------------------------------------------ +// | o | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | +// ------------------------------------------------------------ +// ^ ^ +// | | +// first_visible_index = 0 last_visible_index = 10 // -// Where: -// 0 = back button (only shown in tablet mode) -// 1 = app list button +// Where "o" is the home button (back button is hidden). // // If screen space is more constrained, some icons are placed in an overflow // menu (which holds its own instance of ShelfView): // -// first_visible_index = 10 last_visible_index = 13 -// (for the overflow) (for overflow) -// | | -// v v +// first_visible_index = 8 last_visible_index = 11 +// (for the overflow) (for overflow) +// | | +// v v // --------------------- -// | 10 | 11 | 12 | 13 | +// | 8 | 9 | 10 | 11 | // --------------------- -// ^ +// ^ // -------------------------------------------------- -// | 1 | | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | +// | o | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... | // -------------------------------------------------- -// ^ ^ ^ -// | | L-- overflow button -// first_visible_index = 1 | -// (for the main shelf) last_visible_index = 9 -// (back button = 0 -// is hidden) +// ^ ^ ^ +// | | L-- overflow button +// first_visible_index = 0 | +// (for the main shelf) last_visible_index = 7 // class ASH_EXPORT ShelfView : public views::View, @@ -320,9 +315,9 @@ int last_visible_index() const { return last_visible_index_; } int number_of_visible_apps() const { if (is_overflow_mode()) - return last_visible_index_ - first_visible_index_ + 1; + return std::max(0, last_visible_index_ - first_visible_index_ + 1); else - return last_visible_index_ - 1; + return std::max(0, last_visible_index_ + 1); } ShelfWidget* shelf_widget() const { return shelf_widget_; } OverflowBubble* overflow_bubble() { return overflow_bubble_.get(); } @@ -554,15 +549,15 @@ // item in |model_|. std::unique_ptr<views::ViewModel> view_model_; - // Index of the first visible launcher item. This is either: - // * 0 (back button) for the main shelf when tablet mode is on - // * 1 (app list button) for the main shelf when tablet mode is off - // * > 1 when this shelf view is the overflow shelf view and only shows a + // Index of the first visible app item. This is either: + // * -1 if there are no apps. + // * 0 if there is at least one app. + // > 0 when this shelf view is the overflow shelf view and only shows a // subset of items. - int first_visible_index_ = 0; + int first_visible_index_ = -1; - // Last index of a launcher button that is visible (does not go into - // overflow). + // Last index of an app launcher button that is visible (does not go into + // overflow), or -1 if there are no apps. int last_visible_index_ = -1; std::unique_ptr<views::BoundsAnimator> bounds_animator_;
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc index 941bc46..9e8f0cb 100644 --- a/ash/shelf/shelf_view_unittest.cc +++ b/ash/shelf/shelf_view_unittest.cc
@@ -512,10 +512,9 @@ // Add 5 app shelf buttons for testing. for (int i = 0; i < 5; ++i) { ShelfID id = AddAppShortcut(); - // The back button is located at index 0, the app icon is located at - // index 1, and the browser shortcut is located at index 2. So we should - // start to add app shortcuts at index 3. - id_map->insert(id_map->begin() + i + 3, + // The browser shortcut is located at index 0. So we should start to add + // app shortcuts at index 1. + id_map->insert(id_map->begin() + i + 1, std::make_pair(id, GetButtonByID(id))); } ASSERT_NO_FATAL_FAILURE(CheckModelIDs(*id_map)); @@ -1017,34 +1016,34 @@ SetupForDragTest(&id_map); // Dragging browser shortcut at index 1. - EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT); - views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false); - std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 5); + EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT); + views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false); + std::rotate(id_map.begin(), id_map.begin() + 1, id_map.begin() + 3); ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false); - EXPECT_TRUE(model_->items()[4].type == TYPE_BROWSER_SHORTCUT); + EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT); // Dragging changes model order. - dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false); - std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 5); + dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false); + std::rotate(id_map.begin(), id_map.begin() + 1, id_map.begin() + 3); ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); // Cancelling the drag operation restores previous order. shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, true); - std::rotate(id_map.begin() + 2, id_map.begin() + 4, id_map.begin() + 5); + std::rotate(id_map.begin(), id_map.begin() + 2, id_map.begin() + 3); ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); // Deleting an item keeps the remaining intact. - dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false); - model_->RemoveItemAt(2); - id_map.erase(id_map.begin() + 2); + dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false); + model_->RemoveItemAt(0); + id_map.erase(id_map.begin()); ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false); // Adding a shelf item cancels the drag and respects the order. - dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false); + dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false); ShelfID new_id = AddAppShortcut(); - id_map.insert(id_map.begin() + 7, + id_map.insert(id_map.begin() + 5, std::make_pair(new_id, GetButtonByID(new_id))); ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false); @@ -1088,77 +1087,35 @@ ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); } -// Ensure the app list button cannot be dragged and other items cannot be -// dragged in front of the back button or app list button. -TEST_F(ShelfViewTest, DragWithNotDraggableItemInFront) { - // The expected id order is initialized as: 1, 2, 3, 4, 5, 6, 7 - std::vector<std::pair<ShelfID, views::View*>> id_map; - SetupForDragTest(&id_map); - - // Ensure that the back button cannot be dragged. - // The expected id order is unchanged: 1, 2, 3, 4, 5, 6, 7 - ASSERT_NO_FATAL_FAILURE(DragAndVerify(0, 1, shelf_view_, id_map)); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(0, 2, shelf_view_, id_map)); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(0, 5, shelf_view_, id_map)); - - // Ensure that the app list button cannot be dragged. - // The expected id order is unchanged: 1, 2, 3, 4, 5, 6, 7 - ASSERT_NO_FATAL_FAILURE(DragAndVerify(1, 1, shelf_view_, id_map)); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(1, 2, shelf_view_, id_map)); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(1, 5, shelf_view_, id_map)); - - // Ensure that items cannot be dragged in front of the back button. - // Attempting to do so will order buttons immediately after the app list. - // Dragging the third button in front should no-op: 1, 2, 3, 4, 5, 6, 7 - ASSERT_NO_FATAL_FAILURE(DragAndVerify(2, 0, shelf_view_, id_map)); - // Dragging the fourth button in front should yield: 1, 2, 4, 3, 5, 6, 7 - std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 4); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(3, 0, shelf_view_, id_map)); - // Dragging the sixth button in front should yield: 1, 2, 6, 4, 3, 5, 7 - std::rotate(id_map.begin() + 2, id_map.begin() + 5, id_map.begin() + 6); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(5, 0, shelf_view_, id_map)); - - // Ensure that items cannot be dragged in front of the app list button. - // Attempting to do so will order buttons immediately after the app list. - // Dragging the third button in front should no-op: 1, 2, 6, 4, 3, 5, 7 - ASSERT_NO_FATAL_FAILURE(DragAndVerify(2, 1, shelf_view_, id_map)); - // Dragging the fourth button in front should yield: 1, 2, 4, 6, 3, 5, 7 - std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 4); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(3, 1, shelf_view_, id_map)); - // Dragging the sixth button in front should yield: 1, 2, 5, 4, 6, 3, 7 - std::rotate(id_map.begin() + 2, id_map.begin() + 5, id_map.begin() + 6); - ASSERT_NO_FATAL_FAILURE(DragAndVerify(5, 1, shelf_view_, id_map)); -} - // Ensure that clicking on one item and then dragging another works as expected. TEST_F(ShelfViewTest, ClickOneDragAnother) { std::vector<std::pair<ShelfID, views::View*>> id_map; SetupForDragTest(&id_map); - // A click on the item at index 2 is simulated. - SimulateClick(3); + // A click on the item at index 1 is simulated. + SimulateClick(1); - // Dragging the browser item at index 1 should change the model order. - EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT); - views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 2, 4, false); - std::rotate(id_map.begin() + 2, id_map.begin() + 3, id_map.begin() + 5); + // Dragging the browser item at index 0 should change the model order. + EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT); + views::View* dragged_button = SimulateDrag(ShelfView::MOUSE, 0, 2, false); + std::rotate(id_map.begin(), id_map.begin() + 1, id_map.begin() + 3); ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); shelf_view_->PointerReleasedOnButton(dragged_button, ShelfView::MOUSE, false); - EXPECT_TRUE(model_->items()[4].type == TYPE_BROWSER_SHORTCUT); + EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT); } // Tests that double-clicking an item does not activate it twice. TEST_F(ShelfViewTest, ClickingTwiceActivatesOnce) { // Watch for selection of the browser shortcut. ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker; - model_->SetShelfItemDelegate(model_->items()[2].id, + model_->SetShelfItemDelegate(model_->items()[0].id, base::WrapUnique(selection_tracker)); // A single click selects the item, but a double-click does not. EXPECT_EQ(0u, selection_tracker->item_selected_count()); - SimulateClick(2); + SimulateClick(0); EXPECT_EQ(1u, selection_tracker->item_selected_count()); - SimulateDoubleClick(2); + SimulateDoubleClick(0); EXPECT_EQ(1u, selection_tracker->item_selected_count()); } @@ -1821,8 +1778,9 @@ ShelfView* shelf_view_for_secondary = secondary_shelf->GetShelfViewForTesting(); + AddAppShortcut(); ShelfViewTestAPI test_api_for_secondary_shelf_view(shelf_view_for_secondary); - ShelfAppButton* button = test_api_for_secondary_shelf_view.GetButton(2); + ShelfAppButton* button = test_api_for_secondary_shelf_view.GetButton(0); // Fetch the start point of dragging. gfx::Point start_point = button->GetBoundsInScreen().CenterPoint(); @@ -1931,10 +1889,10 @@ ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker; model_->SetShelfItemDelegate( - model_->items()[2].id, + model_->items()[0].id, base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker)); - SimulateClick(2); + SimulateClick(0); EXPECT_EQ(1, user_action_tester.GetActionCount("Launcher_ButtonPressed_Mouse")); } @@ -1947,10 +1905,10 @@ ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker; selection_tracker->set_item_selected_action(SHELF_ACTION_NEW_WINDOW_CREATED); model_->SetShelfItemDelegate( - model_->items()[2].id, + model_->items()[0].id, base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker)); - SimulateClick(2); + SimulateClick(0); EXPECT_EQ(1, user_action_tester.GetActionCount("Launcher_LaunchTask")); } @@ -1962,14 +1920,14 @@ ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker; model_->SetShelfItemDelegate( - model_->items()[2].id, + model_->items()[0].id, base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker)); selection_tracker->set_item_selected_action(SHELF_ACTION_WINDOW_MINIMIZED); - SimulateClick(2); + SimulateClick(0); selection_tracker->set_item_selected_action(SHELF_ACTION_WINDOW_ACTIVATED); - SimulateClick(2); + SimulateClick(0); histogram_tester.ExpectTotalCount( kTimeBetweenWindowMinimizedAndActivatedActionsHistogramName, 1); @@ -2318,7 +2276,7 @@ // At the start, we have exactly one app icon for the browser. That should // be centered on the screen. - const ShelfAppButton* button1 = GetButtonByID(model_->items()[2].id); + const ShelfAppButton* button1 = GetButtonByID(model_->items()[0].id); ExpectWithinOnePixel(screen_center, button1->GetBoundsInScreen().CenterPoint().x()); // Also check that the distance between the icon edge and the screen edge is @@ -2329,7 +2287,7 @@ const int apps_that_can_easily_fit_at_center_of_screen = 3; std::vector<ShelfAppButton*> app_buttons; // Start with just the browser app button. - app_buttons.push_back(GetButtonByID(model_->items()[2].id)); + app_buttons.push_back(GetButtonByID(model_->items()[0].id)); int n_buttons = 1; // Now repeat the same process by adding apps until they can't fit at the @@ -2370,22 +2328,22 @@ } TEST_F(ShelfViewTest, FirstAndLastVisibleIndex) { - // At the start, the only things visible on the shelf are the app list button - // (index 1) and the browser app button (index 2). - EXPECT_EQ(1, shelf_view_->first_visible_index()); - EXPECT_EQ(2, shelf_view_->last_visible_index()); - // By enabling tablet mode, the back button (index 0) should become visible. + // At the start, the only visible app on the shelf is the browser app button + // (index 0). + EXPECT_EQ(0, shelf_view_->first_visible_index()); + EXPECT_EQ(0, shelf_view_->last_visible_index()); + // By enabling tablet mode, the back button (index 0) should become visible, + // but that does not change the first and last visible indices. Shell::Get()->tablet_mode_controller()->SetEnabledForTest(true); EXPECT_EQ(0, shelf_view_->first_visible_index()); - EXPECT_EQ(2, shelf_view_->last_visible_index()); - // And things should return back to the previous state once tablet mode is off - // again. + EXPECT_EQ(0, shelf_view_->last_visible_index()); + // Turn tablet mode off again. Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false); - EXPECT_EQ(1, shelf_view_->first_visible_index()); - EXPECT_EQ(2, shelf_view_->last_visible_index()); + EXPECT_EQ(0, shelf_view_->first_visible_index()); + EXPECT_EQ(0, shelf_view_->last_visible_index()); // Now let's add some apps until the overflow button shows up, each time // checking the first and last visible indices are what we expect. - int last_visible_index = 2; + int last_visible_index = 0; int last_visible_index_before_overflow; ShelfID last_added_item_id; while (true) { @@ -2395,7 +2353,7 @@ break; } last_visible_index++; - EXPECT_EQ(1, shelf_view_->first_visible_index()); + EXPECT_EQ(0, shelf_view_->first_visible_index()); EXPECT_EQ(last_visible_index, shelf_view_->last_visible_index()); } @@ -2409,7 +2367,7 @@ // Now remove the last item we just added. That should get rid of the // overflow button, and get back to the previous state. RemoveByID(last_added_item_id); - EXPECT_EQ(1, shelf_view_->first_visible_index()); + EXPECT_EQ(0, shelf_view_->first_visible_index()); EXPECT_EQ(last_visible_index_before_overflow, shelf_view_->last_visible_index()); @@ -2738,7 +2696,7 @@ } void InitBrowserButtonInkDrop() { - browser_button_ = test_api_->GetButton(2); + browser_button_ = test_api_->GetButton(0); auto browser_button_ink_drop = std::make_unique<InkDropSpy>(std::make_unique<views::InkDropImpl>( @@ -3099,7 +3057,7 @@ InitBrowserButtonInkDrop(); // Set a delegate for the shelf item that returns an app list menu. - model_->SetShelfItemDelegate(model_->items()[2].id, + model_->SetShelfItemDelegate(model_->items()[0].id, std::make_unique<ListMenuShelfItemDelegate>()); views::Button* button = browser_button_; @@ -3653,27 +3611,28 @@ TEST_F(ShelfViewFocusTest, Basic) { EXPECT_FALSE(shelf_view_->IsShowingOverflowBubble()); - // There are five buttons. The back button and launcher are always there, the - // browser shortcut is added in ShelfViewTest and the two test apps added in - // ShelfViewFocusTest. - EXPECT_EQ(5, test_api_->GetButtonCount()); + // There are five buttons, including 3 app buttons. The back button and + // launcher are always there, the browser shortcut is added in + // ShelfViewTest and the two test apps added in ShelfViewFocusTest. + EXPECT_EQ(3, test_api_->GetButtonCount()); EXPECT_TRUE(shelf_view_->shelf_widget()->IsActive()); - // The item at index 1 instead of index 0 is focused initially because index 0 - // is the back button which is only visible in tablet mode. - EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + // The home button is focused initially because the back button is only + // visible in tablet mode. + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); } // Tests that the expected views have focus when cycling through shelf items // with tab. TEST_F(ShelfViewFocusTest, ForwardCycling) { - // Pressing tab once should advance focus to the next element. + // Pressing tab once should advance focus to the next element after the + // home button, which is the first app. DoTab(); - EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus()); + EXPECT_TRUE(test_api_->GetViewAt(0)->HasFocus()); DoTab(); DoTab(); - EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus()); + EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus()); } // Tests that the expected views have focus when cycling backwards through shelf @@ -3681,14 +3640,15 @@ TEST_F(ShelfViewFocusTest, BackwardCycling) { // The first element is currently focused. Let's advance to the last element // first. + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); DoTab(); DoTab(); DoTab(); - EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus()); + EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus()); // Pressing shift tab once should advance focus to the previous element. DoShiftTab(); - EXPECT_TRUE(test_api_->GetViewAt(3)->HasFocus()); + EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); } // Verify that the overflow bubble does not activate when it is opened. @@ -3703,15 +3663,16 @@ // Verifies that focus moves as expected between the shelf and the status area. TEST_F(ShelfViewFocusTest, FocusCyclingBetweenShelfAndStatusWidget) { - // The first element of the shelf is focused at start. + // The first element of the shelf (the home button) is focused at start. + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); // Focus the next few elements. DoTab(); + EXPECT_TRUE(test_api_->GetViewAt(0)->HasFocus()); + DoTab(); + EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + DoTab(); EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus()); - DoTab(); - EXPECT_TRUE(test_api_->GetViewAt(3)->HasFocus()); - DoTab(); - EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus()); // This is the last element. Tabbing once more should go into the status // area. @@ -3721,7 +3682,7 @@ // Shift-tab: we should be back at the last element in the shelf. DoShiftTab(); - EXPECT_TRUE(test_api_->GetViewAt(4)->HasFocus()); + EXPECT_TRUE(test_api_->GetViewAt(2)->HasFocus()); ExpectNotFocused(status_area_); // Go into the status area again. @@ -3732,7 +3693,7 @@ // And keep going forward, now we should be cycling back to the first shelf // element. DoTab(); - EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); ExpectNotFocused(status_area_); } @@ -3783,14 +3744,14 @@ EXPECT_EQ(last_item_on_main_shelf_index_, items_ - 5); EXPECT_TRUE(shelf_view_->shelf_widget()->IsActive()); - EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); } TEST_F(ShelfViewOverflowFocusTest, OpenOverflow) { OpenOverflow(); ASSERT_TRUE(overflow_shelf_test_api_); EXPECT_TRUE(shelf_view_->IsShowingOverflowBubble()); - EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); } // Tests that when cycling through the items with tab, the items in the overflow @@ -3897,7 +3858,7 @@ // Focus the shelf again. DoTab(); ExpectFocused(shelf_view_); - EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); ExpectNotFocused(status_area_); // Now advance to the last item on the main shelf. @@ -3935,7 +3896,7 @@ while (status_area_->GetWidget()->IsActive()) DoTab(); // This should have brought focus to the first element on the shelf. - EXPECT_TRUE(test_api_->GetViewAt(1)->HasFocus()); + EXPECT_TRUE(shelf_view_->GetAppListButton()->HasFocus()); } class KioskNextShelfViewTest : public ShelfViewTest { @@ -3993,7 +3954,7 @@ EXPECT_TRUE(shelf_view_->GetBackButton()->GetVisible()); ASSERT_FALSE(shelf_view_->GetOverflowButton()->GetVisible()); - EXPECT_EQ(1, shelf_view_->last_visible_index()); + EXPECT_EQ(-1, shelf_view_->last_visible_index()); } // Tests that control buttons (back/home) are positioned correctly in Kiosk Next
diff --git a/ash/shelf/shelf_widget.cc b/ash/shelf/shelf_widget.cc index 851c7e5..3670b57 100644 --- a/ash/shelf/shelf_widget.cc +++ b/ash/shelf/shelf_widget.cc
@@ -631,8 +631,16 @@ } void ShelfWidget::OnMouseEvent(ui::MouseEvent* event) { - if (event->type() == ui::ET_MOUSE_PRESSED) + if (event->type() == ui::ET_MOUSE_PRESSED) { keyboard::KeyboardController::Get()->HideKeyboardImplicitlyByUser(); + + // If the shelf receives the mouse pressing event, the RootView of the shelf + // will reset the gesture handler. As a result, if the shelf is in drag + // progress when the mouse is pressed, shelf will not receive the gesture + // end event. So explicitly cancel the drag in this scenario. + shelf_layout_manager_->CancelDragOnShelfIfInProgress(); + } + views::Widget::OnMouseEvent(event); }
diff --git a/ash/shelf/shelf_window_watcher.cc b/ash/shelf/shelf_window_watcher.cc index 47bfed8..7b36a92e 100644 --- a/ash/shelf/shelf_window_watcher.cc +++ b/ash/shelf/shelf_window_watcher.cc
@@ -237,7 +237,7 @@ // Update an existing ShelfWindowWatcher item when a window property changes. int index = model_->ItemIndexByID(GetShelfID(window)); - if (index > 0 && user_windows_with_items_.count(window) > 0) { + if (index >= 0 && user_windows_with_items_.count(window) > 0) { ShelfItem item = model_->items()[index]; UpdateShelfItemForWindow(&item, window); model_->Set(index, item);
diff --git a/ash/shelf/shelf_window_watcher_unittest.cc b/ash/shelf/shelf_window_watcher_unittest.cc index 6cc5942..27fc3ba 100644 --- a/ash/shelf/shelf_window_watcher_unittest.cc +++ b/ash/shelf/shelf_window_watcher_unittest.cc
@@ -53,23 +53,22 @@ // Ensure shelf items are added and removed as windows are opened and closed. TEST_F(ShelfWindowWatcherTest, OpenAndClose) { ShelfModel* model = ShelfModel::Get(); - // ShelfModel creates an app list item and back button. - ASSERT_EQ(2, model->item_count()); + ASSERT_EQ(0, model->item_count()); // Windows with valid ShelfItemType and ShelfID properties get shelf items. std::unique_ptr<views::Widget> widget1 = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); CreateShelfItem(widget1->GetNativeWindow()); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); std::unique_ptr<views::Widget> widget2 = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); CreateShelfItem(widget2->GetNativeWindow()); - EXPECT_EQ(4, model->item_count()); + EXPECT_EQ(2, model->item_count()); // Each ShelfItem is removed when the associated window is destroyed. widget1.reset(); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); widget2.reset(); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); } TEST_F(ShelfWindowWatcherTest, CreateAndRemoveShelfItemProperties) { @@ -79,18 +78,18 @@ nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); std::unique_ptr<views::Widget> widget2 = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); // Create a ShelfItem for the first window. ShelfID id_w1 = CreateShelfItem(widget1->GetNativeWindow()); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); int index_w1 = model->ItemIndexByID(id_w1); EXPECT_EQ(STATUS_RUNNING, model->items()[index_w1].status); // Create a ShelfItem for the second window. ShelfID id_w2 = CreateShelfItem(widget2->GetNativeWindow()); - EXPECT_EQ(4, model->item_count()); + EXPECT_EQ(2, model->item_count()); int index_w2 = model->ItemIndexByID(id_w2); EXPECT_EQ(STATUS_RUNNING, model->items()[index_w2].status); @@ -98,20 +97,20 @@ // ShelfItem is removed when the type property is cleared. widget1->GetNativeWindow()->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_UNDEFINED)); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); widget2->GetNativeWindow()->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_UNDEFINED)); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); // Clearing twice doesn't do anything. widget2->GetNativeWindow()->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_UNDEFINED)); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); // Closing the windows once the properties are cleared doesn't do anything. widget1->CloseNow(); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); widget2->CloseNow(); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); } TEST_F(ShelfWindowWatcherTest, UpdateWindowProperty) { @@ -120,13 +119,13 @@ std::unique_ptr<views::Widget> widget = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); ShelfID id = CreateShelfItem(widget->GetNativeWindow()); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); int index = model->ItemIndexByID(id); EXPECT_EQ(STATUS_RUNNING, model->items()[index].status); // No new item is created after updating a launcher item. - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); // index and id are not changed after updating a launcher item. EXPECT_EQ(index, model->ItemIndexByID(id)); EXPECT_EQ(id, model->items()[index].id); @@ -138,7 +137,7 @@ std::unique_ptr<views::Widget> widget = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); ShelfID id = CreateShelfItem(widget->GetNativeWindow()); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); int index = model->ItemIndexByID(id); EXPECT_EQ(STATUS_RUNNING, model->items()[index].status); @@ -149,7 +148,7 @@ window_state->Maximize(); EXPECT_TRUE(window_state->IsMaximized()); // No new item is created after maximizing the window. - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); // index and id are not changed after maximizing the window. EXPECT_EQ(index, model->ItemIndexByID(id)); EXPECT_EQ(id, model->items()[index].id); @@ -158,7 +157,7 @@ window_state->Restore(); EXPECT_FALSE(window_state->IsMaximized()); // No new item is created after restoring the window. - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); // Index and id are not changed after maximizing the window. EXPECT_EQ(index, model->ItemIndexByID(id)); EXPECT_EQ(id, model->items()[index].id); @@ -172,7 +171,7 @@ std::unique_ptr<views::Widget> widget = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); ShelfID id = CreateShelfItem(widget->GetNativeWindow()); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); int index = model->ItemIndexByID(id); EXPECT_EQ(STATUS_RUNNING, model->items()[index].status); @@ -199,7 +198,7 @@ aura::Window* dialog = dialog_widget->GetNativeWindow(); dialog->SetProperty(kShelfIDKey, ShelfID("a").Serialize()); dialog->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_DIALOG)); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); // An item is not created for an app window. std::unique_ptr<views::Widget> app_widget = CreateTestWidget( @@ -207,12 +206,12 @@ aura::Window* app = app_widget->GetNativeWindow(); app->SetProperty(kShelfIDKey, ShelfID("c").Serialize()); app->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_APP)); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); app_widget.reset(); // Each ShelfItem is removed when the associated window is destroyed. dialog_widget.reset(); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); } // Ensure items use the app icon and window icon aura::Window properties. @@ -223,25 +222,25 @@ nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); aura::Window* window = widget->GetNativeWindow(); ShelfID id = CreateShelfItem(window); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); gfx::Image default_image = rb.GetImageNamed(IDR_DEFAULT_FAVICON_32); - EXPECT_TRUE(model->items()[2].image.BackedBySameObjectAs( + EXPECT_TRUE(model->items()[0].image.BackedBySameObjectAs( default_image.AsImageSkia())); // Setting a window icon should update the item icon. gfx::ImageSkia red = CreateImageSkiaIcon(SK_ColorRED); window->SetProperty(aura::client::kWindowIconKey, std::move(red)); - EXPECT_EQ(SK_ColorRED, model->items()[2].image.bitmap()->getColor(0, 0)); + EXPECT_EQ(SK_ColorRED, model->items()[0].image.bitmap()->getColor(0, 0)); // Setting an app icon should override the window icon. gfx::ImageSkia blue = CreateImageSkiaIcon(SK_ColorBLUE); window->SetProperty(aura::client::kAppIconKey, std::move(blue)); - EXPECT_EQ(SK_ColorBLUE, model->items()[2].image.bitmap()->getColor(0, 0)); + EXPECT_EQ(SK_ColorBLUE, model->items()[0].image.bitmap()->getColor(0, 0)); // Clearing the app icon should restore the window icon to the shelf item. window->ClearProperty(aura::client::kAppIconKey); - EXPECT_EQ(SK_ColorRED, model->items()[2].image.bitmap()->getColor(0, 0)); + EXPECT_EQ(SK_ColorRED, model->items()[0].image.bitmap()->getColor(0, 0)); } TEST_F(ShelfWindowWatcherTest, DontCreateShelfEntriesForChildWindows) { @@ -255,7 +254,7 @@ ->GetChildById(desks_util::GetActiveDeskContainerId()) ->AddChild(window.get()); window->Show(); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); std::unique_ptr<aura::Window> child = window_factory::NewWindow(nullptr, aura::client::WINDOW_TYPE_NORMAL); @@ -265,12 +264,12 @@ window->AddChild(child.get()); child->Show(); // There should not be a new shelf item for |child|. - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); child.reset(); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); window.reset(); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); } TEST_F(ShelfWindowWatcherTest, CreateShelfEntriesForTransientWindows) { @@ -284,7 +283,7 @@ ->GetChildById(desks_util::GetActiveDeskContainerId()) ->AddChild(window.get()); window->Show(); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); std::unique_ptr<aura::Window> transient = window_factory::NewWindow(nullptr, aura::client::WINDOW_TYPE_NORMAL); @@ -299,12 +298,12 @@ transient.get()); transient->Show(); // There should be a new shelf item for |transient|. - EXPECT_EQ(4, model->item_count()); + EXPECT_EQ(2, model->item_count()); transient.reset(); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); window.reset(); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); } // Ensures ShelfWindowWatcher supports windows opened prior to session start. @@ -314,18 +313,17 @@ ASSERT_FALSE( Shell::Get()->session_controller()->IsActiveUserSessionStarted()); - // ShelfModel creates an app list item and back button. - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); // Construct a window that should get a shelf item once the session starts. std::unique_ptr<views::Widget> widget = CreateTestWidget( nullptr, desks_util::GetActiveDeskContainerId(), gfx::Rect()); CreateShelfItem(widget->GetNativeWindow()); - EXPECT_EQ(2, model->item_count()); + EXPECT_EQ(0, model->item_count()); // Start the test user session; ShelfWindowWatcher will find the open window. CreateUserSessions(1); - EXPECT_EQ(3, model->item_count()); + EXPECT_EQ(1, model->item_count()); } } // namespace
diff --git a/ash/system/accessibility/autoclick_scroll_view.cc b/ash/system/accessibility/autoclick_scroll_view.cc index 0912248..1e33a5f 100644 --- a/ash/system/accessibility/autoclick_scroll_view.cc +++ b/ash/system/accessibility/autoclick_scroll_view.cc
@@ -92,6 +92,10 @@ views::ImageButton::PaintButtonContents(canvas); } + const char* GetClassName() const override { + return "AutoclickScrollCloseButton"; + } + private: bool hovered_ = false; DISALLOW_COPY_AND_ASSIGN(AutoclickScrollCloseButton); @@ -282,6 +286,8 @@ SchedulePaint(); } + const char* GetClassName() const override { return "AutoclickScrollButton"; } + private: const AutoclickController::ScrollPadAction action_; gfx::Size size_; @@ -365,4 +371,8 @@ kScrollButtonCloseSizeDips, kScrollButtonCloseSizeDips); } +const char* AutoclickScrollView::GetClassName() const { + return "AutoclickScrollView"; +} + } // namespace ash
diff --git a/ash/system/accessibility/autoclick_scroll_view.h b/ash/system/accessibility/autoclick_scroll_view.h index 59187e1..f4355f2 100644 --- a/ash/system/accessibility/autoclick_scroll_view.h +++ b/ash/system/accessibility/autoclick_scroll_view.h
@@ -55,6 +55,9 @@ AutoclickScrollView(); ~AutoclickScrollView() override = default; + // views::View: + const char* GetClassName() const override; + private: // views::View: void Layout() override;
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc index 58c08c6..91e38d37 100644 --- a/ash/wm/splitview/split_view_controller.cc +++ b/ash/wm/splitview/split_view_controller.cc
@@ -768,10 +768,10 @@ const gfx::Rect& new_bounds, ui::PropertyChangeReason reason) { if (split_view_type_ != SplitViewType::kClamshellType || - reason == ui::PropertyChangeReason::FROM_ANIMATION) { + reason == ui::PropertyChangeReason::FROM_ANIMATION || + !InSplitViewMode()) { return; } - DCHECK(InSplitViewMode()); wm::WindowState* window_state = wm::GetWindowState(window); const bool is_window_moved = window_state->is_dragged() && @@ -1109,14 +1109,37 @@ UpdateSnappedWindowsAndDividerBounds(); } -void SplitViewController::OnTabletModeStarted() { +void SplitViewController::OnTabletModeStarting() { split_view_type_ = SplitViewType::kTabletType; + + // If splitview is active when tablet mode is starting, do the clamshell mode + // splitview to tablet mode splitview transition by adding the split view + // divider bar. + if (InSplitViewMode()) { + divider_position_ = GetClosestFixedDividerPosition(); + split_view_divider_ = std::make_unique<SplitViewDivider>( + this, GetDefaultSnappedWindow()->GetRootWindow()); + UpdateSnappedWindowsAndDividerBounds(); + NotifyDividerPositionChanged(); + } } void SplitViewController::OnTabletModeEnding() { - if (IsClamshellSplitViewModeEnabled()) + if (IsClamshellSplitViewModeEnabled()) { split_view_type_ = SplitViewType::kClamshellType; - EndSplitView(); + + // If splitview is active when tablet mode is ending, simply destroy the + // split view divider bar as we don't have the bar in clamshell split view + // mode. + if (InSplitViewMode()) + split_view_divider_.reset(); + } else if (InSplitViewMode()) { + // If clamshell splitview mode is not enabled, fall back to the old + // behavior: end splitview and overivew and all windows will return to its + // old window state before entering tablet mode. + EndSplitView(); + EndOverview(); + } } void SplitViewController::OnTabletControllerDestroyed() {
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h index 7a4a801..fcde393 100644 --- a/ash/wm/splitview/split_view_controller.h +++ b/ash/wm/splitview/split_view_controller.h
@@ -59,18 +59,17 @@ // top of the screen. enum SnapPosition { NONE, LEFT, RIGHT }; - // Why splitview was ended. For now, all reasons will be kNormal except when - // the home launcher button is pressed, an unsnappable window just got - // activated, the active user session changed, or the window dragging - // started. + // Why splitview was ended. enum class EndReason { kNormal = 0, kHomeLauncherPressed, kUnsnappableWindowActivated, kActiveUserChanged, kWindowDragStarted, - // TODO(950827): Consider not ending Split-View on PIP expand. + // TODO(edcourtney): Consider not ending Split-View on PIP expand. + // See crbug.com/950827. kPipExpanded, + kExitTabletMode, }; // The behaviors of split view are very different when in tablet mode and in @@ -192,7 +191,7 @@ uint32_t metrics) override; // TabletModeObserver: - void OnTabletModeStarted() override; + void OnTabletModeStarting() override; void OnTabletModeEnding() override; void OnTabletControllerDestroyed() override;
diff --git a/ash/wm/splitview/split_view_divider.cc b/ash/wm/splitview/split_view_divider.cc index bedb6a2b..08cf190 100644 --- a/ash/wm/splitview/split_view_divider.cc +++ b/ash/wm/splitview/split_view_divider.cc
@@ -251,8 +251,7 @@ divider_widget_->Close(); split_view_window_targeter_.reset(); for (auto* iter : observed_windows_) - iter->RemoveObserver(this); - observed_windows_.clear(); + RemoveObservedWindow(iter); } // static
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc index 8a8eaae..0160c68d 100644 --- a/ash/wm/tablet_mode/tablet_mode_controller.cc +++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -910,6 +910,8 @@ } void TabletModeController::FinishInitTabletMode() { + for (auto& observer : tablet_mode_observers_) + observer.OnTabletModeStarting(); tablet_mode_window_manager_ = std::make_unique<TabletModeWindowManager>(); tablet_mode_window_manager_->Init();
diff --git a/ash/wm/tablet_mode/tablet_mode_observer.h b/ash/wm/tablet_mode/tablet_mode_observer.h index 80eec39..bcf7a45e 100644 --- a/ash/wm/tablet_mode/tablet_mode_observer.h +++ b/ash/wm/tablet_mode/tablet_mode_observer.h
@@ -13,6 +13,9 @@ // NOTE: Code in chrome should use TabletModeClientObserver. class ASH_EXPORT TabletModeObserver { public: + // Called when the tablet mode is about to start. + virtual void OnTabletModeStarting() {} + // Called when the tablet mode has started. Windows might still be animating // though. virtual void OnTabletModeStarted() {}
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc index cb36af4..d73b1bd 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -9,6 +9,7 @@ #include "ash/public/cpp/app_types.h" #include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/shell_window_ids.h" +#include "ash/public/cpp/window_properties.h" #include "ash/root_window_controller.h" #include "ash/scoped_animation_disabler.h" #include "ash/session/session_controller_impl.h" @@ -36,25 +37,18 @@ namespace { -// Exits overview mode if it is currently active. Returns true if overview is -// active before cancelling it. -bool CancelOverview() { - OverviewController* controller = Shell::Get()->overview_controller(); - if (controller->InOverviewSession()) { - controller->EndOverview(); - return true; - } - return false; -} - -// Returns true if windows[i] exists, can snap in split view, and is not ARC. A -// window snapped in clamshell mode must meet these criteria to potentially -// carry over into tablet mode split view. We want ARC windows to be included, -// but there is an obstacle (see https://crbug.com/922282 and +// This function is called to check if window[i] is eligible to be carried over +// to split view mode during clamshell <-> tablet mode transition. Returns true +// if windows[i] exists, can snap in split view, is not showing in overview, and +// is not ARC window. +// TODO(xdai): Make it work for ARC windows. (see +// https://crbug.com/922282 and // https://buganizer.corp.google.com/issues/123432223). -bool IsCandidateForSplitView(const MruWindowTracker::WindowList& windows, - size_t i) { +bool IsCarryOverCandidateForSplitView( + const MruWindowTracker::WindowList& windows, + size_t i) { return windows.size() > i && CanSnapInSplitview(windows[i]) && + !windows[i]->GetProperty(kIsShowingInOverviewKey) && static_cast<ash::AppType>(windows[i]->GetProperty( aura::client::kAppType)) != AppType::ARC_APP; } @@ -73,6 +67,24 @@ split_view_controller->SnapWindow(windows[i], positions[i]); } +// Returns the windows that are currently showing in splitscreen. +base::flat_map<aura::Window*, WindowStateType> GetWindowsInSplitView() { + base::flat_map<aura::Window*, WindowStateType> windows; + SplitViewController* split_view_controller = + Shell::Get()->split_view_controller(); + if (split_view_controller && split_view_controller->InSplitViewMode()) { + if (split_view_controller->left_window()) { + windows.emplace(split_view_controller->left_window(), + WindowStateType::kLeftSnapped); + } + if (split_view_controller->right_window()) { + windows.emplace(split_view_controller->right_window(), + WindowStateType::kRightSnapped); + } + } + return windows; +} + } // namespace // Class which tells tablet mode controller to observe a given window for UMA @@ -132,9 +144,19 @@ } void TabletModeWindowManager::Init() { - // The overview mode needs to be ended before the tablet mode is started. To - // guarantee the proper order, it will be turned off from here. - CancelOverview(); + // There are 3 cases when entering tablet mode: + // 1) overview is active but split view is inactive: keep overview active in + // tablet mode. + // 2) overview and splitview are both active (splitview can only be active + // when overview is active in clamshell mode): keep overview and splitview + // both active in tablet mode. + // 3) overview is inactive: keep the current behavior, i.e., + // a. if the top window is a snapped window, put it in splitview + // b. if the second top window is also a snapped window and snapped to + // the other side, put it in split view as well. Otherwise, open + // overview on the other side of the screen + // c. if the top window is not a snapped window, maximize all windows + // when entering tablet mode. { ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this, @@ -153,10 +175,41 @@ } void TabletModeWindowManager::Shutdown() { - // Overview mode needs to be ended before exiting tablet mode to prevent - // transforming windows which are currently in - // overview: http://crbug.com/366605 - const bool was_in_overview = CancelOverview(); + // There are 4 cases when exiting tablet mode: + // 1) overview is active but split view is inactive: keep overview active in + // clamshell mode. + // 2) overview and splitview are both active: keep overview and splitview both + // active in clamshell mode, unless if it's single split state, splitview + // and overview will both be ended. + // 3) overview is inactive but split view is active (two snapped windows): + // split view is no longer active. But the two snapped windows will still + // keep snapped in clamshell mode. + // 4) overview and splitview are both inactive: keep the current behavior, + // i.e., restore all windows to its window state before entering tablet + // mode. + + // TODO(xdai): Instead of caching snapped windows and their state here, we + // should try to see if it can be done in the WindowState::State impl. + base::flat_map<aura::Window*, WindowStateType> windows_in_splitview = + GetWindowsInSplitView(); + + // For case 2 and 3: End splitview mode for two snapped windows case or single + // split case to match the clamshell split view behavior. (there is no both + // snapped state or single split state in clamshell split view). The windows + // will still be kept snapped though. + SplitViewController* split_view_controller = + Shell::Get()->split_view_controller(); + if (split_view_controller->InSplitViewMode()) { + OverviewController* overview_controller = + Shell::Get()->overview_controller(); + if (!overview_controller->InOverviewSession() || + overview_controller->overview_session()->IsEmpty()) { + Shell::Get()->split_view_controller()->EndSplitView( + SplitViewController::EndReason::kExitTabletMode); + overview_controller->EndOverview(); + } + } + for (aura::Window* window : added_windows_) window->RemoveObserver(this); added_windows_.clear(); @@ -169,7 +222,7 @@ ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this, /*exiting_tablet_mode=*/true); - ArrangeWindowsForDesktopMode(was_in_overview); + ArrangeWindowsForClamshellMode(windows_in_splitview); } int TabletModeWindowManager::GetNumberOfManagedWindows() { @@ -238,6 +291,7 @@ case SplitViewController::EndReason::kHomeLauncherPressed: case SplitViewController::EndReason::kActiveUserChanged: case SplitViewController::EndReason::kWindowDragStarted: + case SplitViewController::EndReason::kExitTabletMode: // For the case of kHomeLauncherPressed, the home launcher will minimize // the snapped windows after ending splitview, so avoid maximizing them // here. For the case of kActiveUserChanged, the snapped windows will be @@ -442,7 +496,7 @@ TabletModeWindowManager::GetSnapPositions( const MruWindowTracker::WindowList& windows) const { std::vector<SplitViewController::SnapPosition> result; - if (!IsCandidateForSplitView(windows, 0u)) + if (!IsCarryOverCandidateForSplitView(windows, 0u)) return result; switch (GetDesktopWindowStateType(windows[0])) { case WindowStateType::kLeftSnapped: @@ -450,7 +504,7 @@ // the left in split view. If windows[1] was snapped on the right in // desktop mode, then snap windows[1] on the right in split view. result.push_back(SplitViewController::LEFT); - if (IsCandidateForSplitView(windows, 1u) && + if (IsCarryOverCandidateForSplitView(windows, 1u) && GetDesktopWindowStateType(windows[1]) == WindowStateType::kRightSnapped) { result.push_back(SplitViewController::RIGHT); @@ -461,7 +515,7 @@ // the right in split view. If windows[1] was snapped on the left in // desktop mode, then snap windows[1] on the left in split view. result.push_back(SplitViewController::RIGHT); - if (IsCandidateForSplitView(windows, 1u) && + if (IsCarryOverCandidateForSplitView(windows, 1u) && GetDesktopWindowStateType(windows[1]) == WindowStateType::kLeftSnapped) { result.push_back(SplitViewController::LEFT); @@ -511,11 +565,25 @@ DoSplitView(split_view_eligible_windows, snap_positions); } -void TabletModeWindowManager::ArrangeWindowsForDesktopMode( - bool was_in_overview) { +void TabletModeWindowManager::ArrangeWindowsForClamshellMode( + base::flat_map<aura::Window*, WindowStateType> windows_in_splitview) { while (window_state_map_.size()) { aura::Window* window = window_state_map_.begin()->first; - ForgetWindow(window, /*destroyed=*/false, was_in_overview); + ForgetWindow(window, /*destroyed=*/false); + + // Arriving here the window state has changed to its clamshell window state. + // Since we need to keep the windows that were in splitview still be snapped + // in clamshell mode, change its window state to the corresponding snapped + // window state. + if (windows_in_splitview.find(window) != windows_in_splitview.end() && + IsClamshellSplitViewModeEnabled()) { + WindowStateType type = windows_in_splitview[window]; + const wm::WMEvent event((type == WindowStateType::kLeftSnapped) + ? wm::WM_EVENT_SNAP_LEFT + : wm::WM_EVENT_SNAP_RIGHT); + wm::GetWindowState(window)->OnWMEvent(&event); + windows_in_splitview.erase(window); + } } } @@ -538,8 +606,7 @@ } void TabletModeWindowManager::ForgetWindow(aura::Window* window, - bool destroyed, - bool was_in_overview) { + bool destroyed) { added_windows_.erase(window); window->RemoveObserver(this); @@ -560,7 +627,7 @@ } else { // By telling the state object to revert, it will switch back the old // State object and destroy itself, calling WindowStateDestroyed(). - it->second->LeaveTabletMode(wm::GetWindowState(it->first), was_in_overview); + it->second->LeaveTabletMode(wm::GetWindowState(it->first)); DCHECK(!IsTrackingWindow(window)); } }
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.h b/ash/wm/tablet_mode/tablet_mode_window_manager.h index 42cec9a..64d82e5 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_manager.h +++ b/ash/wm/tablet_mode/tablet_mode_window_manager.h
@@ -124,9 +124,10 @@ void ArrangeWindowsForTabletMode(); // Revert all windows to how they were arranged before tablet mode. - // |was_in_overview| indicates whether it was in overview before entering - // desktop mode. - void ArrangeWindowsForDesktopMode(bool was_in_overview = false); + // |windows_in_splitview| contains the windows that were in splitview before + // entering clamshell mode. + void ArrangeWindowsForClamshellMode( + base::flat_map<aura::Window*, WindowStateType> windows_in_splitview); // If the given window should be handled by us, this function will add it to // the list of known windows (remembering the initial show state). @@ -137,13 +138,10 @@ bool snap = false, bool animate_bounds_on_attach = true); - // Remove a window from our tracking list. |was_in_overview| used when - // |destroyed| is false to help handle leaving tablet mode. If the window is - // going to be destroyed, do not restore its old previous window state object - // as it will send unnecessary window state change event. - void ForgetWindow(aura::Window* window, - bool destroyed, - bool was_in_overview = false); + // Remove a window from our tracking list. If the window is going to be + // destroyed, do not restore its old previous window state object as it will + // send unnecessary window state change event. + void ForgetWindow(aura::Window* window, bool destroyed); // Returns true when the given window should be modified in any way by us. bool ShouldHandleWindow(aura::Window* window);
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc index b760d446..5452f7ae 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_manager_unittest.cc
@@ -6,6 +6,7 @@ #include <string> +#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/shelf_prefs.h" #include "ash/public/cpp/test/shell_test_api.h" @@ -20,6 +21,7 @@ #include "ash/test/ash_test_base.h" #include "ash/wm/mru_window_tracker.h" #include "ash/wm/overview/overview_controller.h" +#include "ash/wm/splitview/split_view_utils.h" #include "ash/wm/switchable_windows.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "ash/wm/tablet_mode/tablet_mode_controller_test_api.h" @@ -33,6 +35,7 @@ #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/test/scoped_feature_list.h" #include "base/values.h" #include "ui/aura/client/aura_constants.h" #include "ui/aura/test/test_window_delegate.h" @@ -1302,33 +1305,6 @@ EXPECT_EQ(first_dragged_origin.y() + 5, window->bounds().y()); } -// Test that overview is exited before entering / exiting tablet mode so that -// the window changes made by TabletModeWindowManager do not conflict with -// those made in WindowOverview. -TEST_F(TabletModeWindowManagerTest, ExitsOverview) { - // Bounds for windows we know can be controlled. - gfx::Rect rect1(10, 10, 200, 50); - gfx::Rect rect2(10, 60, 200, 50); - std::unique_ptr<aura::Window> w1( - CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect1)); - std::unique_ptr<aura::Window> w2( - CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect2)); - - OverviewController* overview_controller = Shell::Get()->overview_controller(); - ASSERT_TRUE(overview_controller->StartOverview()); - ASSERT_TRUE(overview_controller->InOverviewSession()); - TabletModeWindowManager* manager = CreateTabletModeWindowManager(); - ASSERT_TRUE(manager); - EXPECT_FALSE(overview_controller->InOverviewSession()); - - ASSERT_TRUE(overview_controller->StartOverview()); - ASSERT_TRUE(overview_controller->InOverviewSession()); - // Destroy the manager again and check that the windows return to their - // previous state. - DestroyTabletModeWindowManager(); - EXPECT_FALSE(overview_controller->InOverviewSession()); -} - // Test that an edge swipe from the top will end full screen mode. TEST_F(TabletModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromTop) { gfx::Rect rect(10, 10, 200, 50); @@ -1810,4 +1786,218 @@ EXPECT_EQ(rect.size(), child->bounds().size()); } +// Test clamshell mode <-> tablet mode transition if clamshell splitscreen is +// not enabled. +TEST_F(TabletModeWindowManagerTest, ClamshellTabletTransitionTest) { + gfx::Rect rect(10, 10, 200, 50); + std::unique_ptr<aura::Window> window( + CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect)); + + // 1. Clamshell -> tablet. If overview is active, it should still be kept + // active after transition. + OverviewController* overview_controller = Shell::Get()->overview_controller(); + EXPECT_TRUE(overview_controller->StartOverview()); + EXPECT_TRUE(overview_controller->InOverviewSession()); + TabletModeWindowManager* manager = CreateTabletModeWindowManager(); + EXPECT_TRUE(manager); + EXPECT_TRUE(overview_controller->InOverviewSession()); + + // 2. Tablet -> Clamshell. If overview is active, it should still be kept + // active after transition. + DestroyTabletModeWindowManager(); + EXPECT_TRUE(overview_controller->InOverviewSession()); + + // 3. Clamshell -> tablet. If overview is inactive, it should still be kept + // inactive after transition. All windows will be maximized. + EXPECT_TRUE(overview_controller->EndOverview()); + EXPECT_FALSE(overview_controller->InOverviewSession()); + CreateTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); + + // 4. Tablet -> Clamshell. The window should be restored to its old state. + DestroyTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_FALSE(wm::GetWindowState(window.get())->IsMaximized()); + + // 5. Clamshell -> Tablet. If the window is snapped, it will be carried over + // to splitview in tablet mode. + const wm::WMEvent event(wm::WM_EVENT_SNAP_LEFT); + wm::GetWindowState(window.get())->OnWMEvent(&event); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + // After transition, we should be in single split screen. + CreateTabletModeWindowManager(); + EXPECT_TRUE(overview_controller->InOverviewSession()); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + + // 6. Tablet -> Clamshell. Since clamshell splitscreen is not enabled, oveview + // and splitview will be both ended, and the window is restored to its old + // state. + DestroyTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + + // Create another normal state window to test additional scenarios. + std::unique_ptr<aura::Window> window2( + CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect)); + wm::ActivateWindow(window2.get()); + + // 7. Clamshell -> Tablet. Since the top active window is not a snapped + // window, all windows will be maximized after the transition. + CreateTabletModeWindowManager(); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); + EXPECT_TRUE(wm::GetWindowState(window2.get())->IsMaximized()); + + // 8. Tablet -> Clamshell. If the two windows are in splitscreen in tablet + // mode, after transition they will restore to their old window states. + Shell::Get()->split_view_controller()->SnapWindow(window.get(), + SplitViewController::LEFT); + Shell::Get()->split_view_controller()->SnapWindow(window2.get(), + SplitViewController::RIGHT); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + DestroyTabletModeWindowManager(); + EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + EXPECT_FALSE(wm::GetWindowState(window2.get())->IsSnapped()); + + // 9. Clamshell -> Tablet. If the top two windows are snapped to both sides of + // the screen, they will carry over to tablet split view mode. + const wm::WMEvent event2(wm::WM_EVENT_SNAP_RIGHT); + wm::GetWindowState(window2.get())->OnWMEvent(&event2); + CreateTabletModeWindowManager(); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + + // 10. Tablet -> Clamshell. If overview and splitview are both active, they + // will be both ended after the transition. + overview_controller->StartOverview(); + EXPECT_TRUE(overview_controller->InOverviewSession()); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + DestroyTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode()); +} + +// The class to test TabletModeWindowManagerTest related functionalities when +// clamshell split screen feature is enabled. +class TabletModeWindowManagerWithClamshellSplitViewTest + : public TabletModeWindowManagerTest { + public: + TabletModeWindowManagerWithClamshellSplitViewTest() = default; + ~TabletModeWindowManagerWithClamshellSplitViewTest() override = default; + + // AshTestBase: + void SetUp() override { + scoped_feature_list_.InitAndEnableFeature( + ash::features::kDragToSnapInClamshellMode); + TabletModeWindowManagerTest::SetUp(); + DCHECK(ShouldAllowSplitView()); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; + DISALLOW_COPY_AND_ASSIGN(TabletModeWindowManagerWithClamshellSplitViewTest); +}; + +// Test clamshell mode <-> tablet mode transition if clamshell splitscreen is +// enabled. +TEST_F(TabletModeWindowManagerWithClamshellSplitViewTest, + ClamshellTabletTransitionTest) { + gfx::Rect rect(10, 10, 200, 50); + std::unique_ptr<aura::Window> window( + CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect)); + + // 1. Clamshell -> tablet. If overview is active, it should still be kept + // active after transition. + OverviewController* overview_controller = Shell::Get()->overview_controller(); + EXPECT_TRUE(overview_controller->StartOverview()); + EXPECT_TRUE(overview_controller->InOverviewSession()); + TabletModeWindowManager* manager = CreateTabletModeWindowManager(); + EXPECT_TRUE(manager); + EXPECT_TRUE(overview_controller->InOverviewSession()); + + // 2. Tablet -> Clamshell. If overview is active, it should still be kept + // active after transition. + DestroyTabletModeWindowManager(); + EXPECT_TRUE(overview_controller->InOverviewSession()); + + // 3. Clamshell -> tablet. If overview is inactive, it should still be kept + // inactive after transition. All windows will be maximized. + EXPECT_TRUE(overview_controller->EndOverview()); + EXPECT_FALSE(overview_controller->InOverviewSession()); + CreateTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); + + // 4. Tablet -> Clamshell. The window should be restored to its old state. + DestroyTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_FALSE(wm::GetWindowState(window.get())->IsMaximized()); + + // 5. Clamshell -> Tablet. If the window is snapped, it will be carried over + // to splitview in tablet mode. + const wm::WMEvent event(wm::WM_EVENT_SNAP_LEFT); + wm::GetWindowState(window.get())->OnWMEvent(&event); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + // After transition, we should be in single split screen. + CreateTabletModeWindowManager(); + EXPECT_TRUE(overview_controller->InOverviewSession()); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + + // 6. Tablet -> Clamshell. Since there is only 1 window, splitview and + // overview will be both ended. The window will be kept snapped. + DestroyTabletModeWindowManager(); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + + // Create another normal state window to test additional scenarios. + std::unique_ptr<aura::Window> window2( + CreateWindow(aura::client::WINDOW_TYPE_NORMAL, rect)); + wm::ActivateWindow(window2.get()); + // 7. Clamshell -> Tablet. Since top window is not a snapped window, all + // windows will be maximized. + CreateTabletModeWindowManager(); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); + EXPECT_TRUE(wm::GetWindowState(window2.get())->IsMaximized()); + + // 8. Tablet -> Clamshell. If tablet splitscreen is active with two snapped + // windows, the two windows will remain snapped in clamshell mode. + Shell::Get()->split_view_controller()->SnapWindow(window.get(), + SplitViewController::LEFT); + Shell::Get()->split_view_controller()->SnapWindow(window2.get(), + SplitViewController::RIGHT); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_FALSE(overview_controller->InOverviewSession()); + DestroyTabletModeWindowManager(); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + EXPECT_TRUE(wm::GetWindowState(window2.get())->IsSnapped()); + EXPECT_FALSE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_FALSE(overview_controller->InOverviewSession()); + + // 9. Clamshell -> Tablet. If two window are snapped to two sides of the + // screen, they will carry over to splitscreen in tablet mode. + CreateTabletModeWindowManager(); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_FALSE(overview_controller->InOverviewSession()); + EXPECT_TRUE(wm::GetWindowState(window.get())->IsSnapped()); + EXPECT_TRUE(wm::GetWindowState(window2.get())->IsSnapped()); + + // 10. Tablet -> Clamshell. If overview and splitview are both active, after + // transition, they will remain both active. + overview_controller->StartOverview(); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(overview_controller->InOverviewSession()); + DestroyTabletModeWindowManager(); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(overview_controller->InOverviewSession()); + + // 11. Clamshell -> Tablet. The same as 10. + CreateTabletModeWindowManager(); + EXPECT_TRUE(Shell::Get()->split_view_controller()->InSplitViewMode()); + EXPECT_TRUE(overview_controller->InOverviewSession()); +} + } // namespace ash
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.cc b/ash/wm/tablet_mode/tablet_mode_window_state.cc index 6cc5bcc..fb155d5 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_state.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_state.cc
@@ -197,18 +197,19 @@ creator_->WindowStateDestroyed(window_); } -void TabletModeWindowState::LeaveTabletMode(wm::WindowState* window_state, - bool was_in_overview) { - // TODO(minch): Keep the current animation if leaving tablet mode from - // overview. Need more investigation for windows' transform animation and - // updates bounds animation when overview is active. - bool use_default = was_in_overview || window_state->IsSnapped() || - IsTopWindow(window_state->window()); +void TabletModeWindowState::LeaveTabletMode(wm::WindowState* window_state) { + // Only do bounds change animation if the window is the top window or a window + // showing in splitview, and the window has changed its state. Otherwise, + // restore its bounds immediately. + EnterAnimationType animation_type = + window_state->IsSnapped() || IsTopWindow(window_state->window()) + ? DEFAULT + : IMMEDIATE; if (old_state_->GetType() == window_state->GetStateType() && !window_state->IsNormalStateType()) { - use_default = false; + animation_type = IMMEDIATE; } - old_state_->set_enter_animation_type(use_default ? DEFAULT : IMMEDIATE); + old_state_->set_enter_animation_type(animation_type); // Note: When we return we will destroy ourselves with the |our_reference|. std::unique_ptr<wm::WindowState::State> our_reference = window_state->SetStateObject(std::move(old_state_));
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.h b/ash/wm/tablet_mode/tablet_mode_window_state.h index edbe9b99..d4b9494 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_state.h +++ b/ash/wm/tablet_mode/tablet_mode_window_state.h
@@ -41,7 +41,7 @@ void set_ignore_wm_events(bool ignore) { ignore_wm_events_ = ignore; } // Leaves the tablet mode by reverting to previous state object. - void LeaveTabletMode(wm::WindowState* window_state, bool was_in_overview); + void LeaveTabletMode(wm::WindowState* window_state); // WindowState::State overrides: void OnWMEvent(wm::WindowState* window_state,
diff --git a/base/base_switches.cc b/base/base_switches.cc index 89e303d..f4ee42e 100644 --- a/base/base_switches.cc +++ b/base/base_switches.cc
@@ -7,7 +7,7 @@ namespace switches { -// Delays execution of base::TaskPriority::BEST_EFFORT tasks until shutdown. +// Delays execution of TaskPriority::BEST_EFFORT tasks until shutdown. const char kDisableBestEffortTasks[] = "disable-best-effort-tasks"; // Disables the crash reporting. @@ -16,6 +16,9 @@ // Comma-separated list of feature names to disable. See also kEnableFeatures. const char kDisableFeatures[] = "disable-features"; +// Force disabling of low-end device mode when set. +const char kDisableLowEndDeviceMode[] = "disable-low-end-device-mode"; + // Indicates that crash reporting should be enabled. On platforms where helper // processes cannot access to files needed to make this decision, this flag is // generated internally. @@ -24,15 +27,9 @@ // Comma-separated list of feature names to enable. See also kDisableFeatures. const char kEnableFeatures[] = "enable-features"; -// Generates full memory crash dump. -const char kFullMemoryCrashReport[] = "full-memory-crash-report"; - // Force low-end device mode when set. const char kEnableLowEndDeviceMode[] = "enable-low-end-device-mode"; -// Force disabling of low-end device mode when set. -const char kDisableLowEndDeviceMode[] = "disable-low-end-device-mode"; - // This option can be used to force field trials when testing changes locally. // The argument is a list of name and value pairs, separated by slashes. If a // trial name is prefixed with an asterisk, that trial will start activated. @@ -43,44 +40,12 @@ // FieldTrialList::CreateTrialsFromString() in field_trial.h for details. const char kForceFieldTrials[] = "force-fieldtrials"; +// Generates full memory crash dump. +const char kFullMemoryCrashReport[] = "full-memory-crash-report"; + // Suppresses all error dialogs when present. const char kNoErrorDialogs[] = "noerrdialogs"; -// When running certain tests that spawn child processes, this switch indicates -// to the test framework that the current process is a child process. -const char kTestChildProcess[] = "test-child-process"; - -// When running certain tests that spawn child processes, this switch indicates -// to the test framework that the current process should not initialize ICU to -// avoid creating any scoped handles too early in startup. -const char kTestDoNotInitializeIcu[] = "test-do-not-initialize-icu"; - -// Gives the default maximal active V-logging level; 0 is the default. -// Normally positive values are used for V-logging levels. -const char kV[] = "v"; - -// Gives the per-module maximal V-logging levels to override the value -// given by --v. E.g. "my_module=2,foo*=3" would change the logging -// level for all code in source files "my_module.*" and "foo*.*" -// ("-inl" suffixes are also disregarded for this matching). -// -// Any pattern containing a forward or backward slash will be tested -// against the whole pathname and not just the module. E.g., -// "*/foo/bar/*=2" would change the logging level for all code in -// source files under a "foo/bar" directory. -const char kVModule[] = "vmodule"; - -// Will wait for 60 seconds for a debugger to come to attach to the process. -const char kWaitForDebugger[] = "wait-for-debugger"; - -// Sends trace events from these categories to a file. -// --trace-to-file on its own sends to default categories. -const char kTraceToFile[] = "trace-to-file"; - -// Specifies the file name for --trace-to-file. If unspecified, it will -// go to a default file name. -const char kTraceToFileName[] = "trace-to-file-name"; - // Starts the sampling based profiler for the browser process at startup. This // will only work if chrome has been built with the gn arg enable_profiling = // true. The output will go to the value of kProfilingFile. @@ -102,6 +67,41 @@ // specified. const char kProfilingFlush[] = "profiling-flush"; +// When running certain tests that spawn child processes, this switch indicates +// to the test framework that the current process is a child process. +const char kTestChildProcess[] = "test-child-process"; + +// When running certain tests that spawn child processes, this switch indicates +// to the test framework that the current process should not initialize ICU to +// avoid creating any scoped handles too early in startup. +const char kTestDoNotInitializeIcu[] = "test-do-not-initialize-icu"; + +// Sends trace events from these categories to a file. +// --trace-to-file on its own sends to default categories. +const char kTraceToFile[] = "trace-to-file"; + +// Specifies the file name for --trace-to-file. If unspecified, it will +// go to a default file name. +const char kTraceToFileName[] = "trace-to-file-name"; + +// Gives the default maximal active V-logging level; 0 is the default. +// Normally positive values are used for V-logging levels. +const char kV[] = "v"; + +// Gives the per-module maximal V-logging levels to override the value +// given by --v. E.g. "my_module=2,foo*=3" would change the logging +// level for all code in source files "my_module.*" and "foo*.*" +// ("-inl" suffixes are also disregarded for this matching). +// +// Any pattern containing a forward or backward slash will be tested +// against the whole pathname and not just the module. E.g., +// "*/foo/bar/*=2" would change the logging level for all code in +// source files under a "foo/bar" directory. +const char kVModule[] = "vmodule"; + +// Will wait for 60 seconds for a debugger to come to attach to the process. +const char kWaitForDebugger[] = "wait-for-debugger"; + #if defined(OS_WIN) // Disables the USB keyboard detection for blocking the OSK on Win8+. const char kDisableUsbKeyboardDetect[] = "disable-usb-keyboard-detect";
diff --git a/base/fuchsia/startup_context.cc b/base/fuchsia/startup_context.cc index bf9f5cb..227b42a 100644 --- a/base/fuchsia/startup_context.cc +++ b/base/fuchsia/startup_context.cc
@@ -64,6 +64,17 @@ fidl::InterfaceHandle<::fuchsia::io::Directory>( std::move(incoming_directory))); } + + if (!incoming_services_) { + LOG(WARNING) << "Component started without a service directory"; + + // Create a dummy ServiceDirectoryClient with a channel that's not + // connected on the other end. + fidl::InterfaceHandle<::fuchsia::io::Directory> dummy_directory; + ignore_result(dummy_directory.NewRequest()); + incoming_services_ = + std::make_unique<ServiceDirectoryClient>(std::move(dummy_directory)); + } } StartupContext::~StartupContext() {
diff --git a/base/system/sys_info_fuchsia.cc b/base/system/sys_info_fuchsia.cc index 51a2dd6..4e44d8e7 100644 --- a/base/system/sys_info_fuchsia.cc +++ b/base/system/sys_info_fuchsia.cc
@@ -32,4 +32,9 @@ return 0; } +// static +std::string SysInfo::OperatingSystemName() { + return "Fuchsia"; +} + } // namespace base
diff --git a/base/system/sys_info_posix.cc b/base/system/sys_info_posix.cc index 9700395..ad7490e7 100644 --- a/base/system/sys_info_posix.cc +++ b/base/system/sys_info_posix.cc
@@ -167,7 +167,7 @@ return total; } -#if !defined(OS_MACOSX) && !defined(OS_ANDROID) +#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_FUCHSIA) // static std::string SysInfo::OperatingSystemName() { struct utsname info;
diff --git a/base/win/windows_version.cc b/base/win/windows_version.cc index aedd3b3..eefb923 100644 --- a/base/win/windows_version.cc +++ b/base/win/windows_version.cc
@@ -269,6 +269,8 @@ // static Version OSInfo::MajorMinorBuildToVersion(int major, int minor, int build) { if (major == 10) { + if (build >= 18362) + return Version::WIN10_19H1; if (build >= 17763) return Version::WIN10_RS5; if (build >= 17134)
diff --git a/base/win/windows_version.h b/base/win/windows_version.h index 78ed86e..daa6c5a 100644 --- a/base/win/windows_version.h +++ b/base/win/windows_version.h
@@ -49,6 +49,7 @@ WIN10_RS3 = 11, // Redstone 3: Version 1709, Build 16299. WIN10_RS4 = 12, // Redstone 4: Version 1803, Build 17134. WIN10_RS5 = 13, // Redstone 5: Version 1809, Build 17763. + WIN10_19H1 = 14, // 19H1: Version 1903, Build 18362. // On edit, update tools\metrics\histograms\enums.xml "WindowsVersion" and // "GpuBlacklistFeatureTestResultsWindows2". WIN_LAST, // Indicates error condition.
diff --git a/base/win/windows_version_unittest.cc b/base/win/windows_version_unittest.cc index b8e106e..06d4cfe0 100644 --- a/base/win/windows_version_unittest.cc +++ b/base/win/windows_version_unittest.cc
@@ -18,7 +18,10 @@ } TEST(OSInfo, MajorMinorBuildToVersion) { - EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 32767), Version::WIN10_RS5); + EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 32767), + Version::WIN10_19H1); + EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 18362), + Version::WIN10_19H1); EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 17763), Version::WIN10_RS5); EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 17134), Version::WIN10_RS4); EXPECT_EQ(OSInfo::MajorMinorBuildToVersion(10, 0, 16299), Version::WIN10_RS3);
diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn index ba473c7..233e8b0e 100644 --- a/build/config/android/BUILD.gn +++ b/build/config/android/BUILD.gn
@@ -36,13 +36,6 @@ ] } - if (current_cpu == "x86") { - cflags += [ - # Forces same alignment between x86 and x64. https://crbug.com/781095 - "-malign-double", - ] - } - ldflags = [ # Don't allow visible symbols from libgcc or libc++ to be # re-exported.
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index bce8261..dd6c1ac 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8910211088305445984 \ No newline at end of file +8910186499721502448 \ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index 00682a0..8355f76c6 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -8910242259586842256 \ No newline at end of file +8910186980098289872 \ No newline at end of file
diff --git a/build/sanitizers/tsan_suppressions.cc b/build/sanitizers/tsan_suppressions.cc index 9753da3..8bd0656 100644 --- a/build/sanitizers/tsan_suppressions.cc +++ b/build/sanitizers/tsan_suppressions.cc
@@ -40,15 +40,6 @@ // http://crbug.com/157586 "race:third_party/libvpx/source/libvpx/vp8/decoder/threading.c\n" - // http://crbug.com/158718 - "race:third_party/ffmpeg/libavcodec/pthread.c\n" - "race:third_party/ffmpeg/libavcodec/pthread_frame.c\n" - "race:third_party/ffmpeg/libavcodec/vp8.c\n" - "race:third_party/ffmpeg/libavutil/mem.c\n" - "race:*HashFrameForTesting\n" - "race:third_party/ffmpeg/libavcodec/h264pred.c\n" - "race:media::ReleaseData\n" - // http://crbug.com/244755 "race:v8::internal::Zone::NewExpand\n" @@ -157,13 +148,6 @@ // https://crbug.com/965722 "race:content::(anonymous namespace)::CorruptDBRequestHandler\n" - // https://crbug.com/965724 - "race:content::NetworkServiceRestartBrowserTest::MonitorRequest\n" - - // https://crbug.com/965726 - "race:content::RenderFrameHostManagerUnloadBrowserTest::" - "MonitorResourceRequest\n" - // End of suppressions. ; // Please keep this semicolon.
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc index 591086ec..35f58477c 100644 --- a/cc/layers/layer.cc +++ b/cc/layers/layer.cc
@@ -23,6 +23,7 @@ #include "cc/layers/layer_impl.h" #include "cc/layers/picture_layer.h" #include "cc/tiles/frame_viewer_instrumentation.h" +#include "cc/trees/clip_node.h" #include "cc/trees/draw_property_utils.h" #include "cc/trees/layer_tree_host.h" #include "cc/trees/layer_tree_impl.h" @@ -100,6 +101,7 @@ may_contain_video_(false), needs_show_scrollbars_(false), has_transform_node_(false), + has_clip_node_(false), subtree_has_copy_request_(false), safe_opaque_background_color_(0), compositing_reasons_(0), @@ -534,6 +536,30 @@ SetSubtreePropertyChanged(); } +void Layer::SetClipRect(const gfx::Rect& clip_rect) { + DCHECK(IsPropertyChangeAllowed()); + if (inputs_.clip_rect == clip_rect) + return; + inputs_.clip_rect = clip_rect; + + // If the clip bounds have been cleared, the property trees needs a rebuild. + const bool force_rebuild = clip_rect.IsEmpty() || !has_clip_node_; + + SetSubtreePropertyChanged(); + if (clip_tree_index() != ClipTree::kInvalidNodeId && !force_rebuild) { + PropertyTrees* property_trees = layer_tree_host_->property_trees(); + if (ClipNode* node = property_trees->clip_tree.Node(clip_tree_index())) { + node->clip = gfx::RectF( + gfx::PointF(clip_rect.origin()) + offset_to_transform_parent(), + gfx::SizeF(clip_rect.size())); + property_trees->clip_tree.set_needs_update(true); + } + } else { + SetPropertyTreesNeedRebuild(); + } + SetNeedsCommit(); +} + void Layer::SetMaskLayer(PictureLayer* mask_layer) { DCHECK(IsPropertyChangeAllowed()); if (inputs_.mask_layer.get() == mask_layer)
diff --git a/cc/layers/layer.h b/cc/layers/layer.h index daac85f..58631ace3 100644 --- a/cc/layers/layer.h +++ b/cc/layers/layer.h
@@ -216,6 +216,12 @@ void SetMasksToBounds(bool masks_to_bounds); bool masks_to_bounds() const { return inputs_.masks_to_bounds; } + // Set or get the clip rect for this layer. |clip_rect| is relative to |this| + // layer. If you are trying to clip the subtree to the bounds of this layer, + // SetMasksToBounds() would be a better alternative. + void SetClipRect(const gfx::Rect& clip_rect); + const gfx::Rect& clip_rect() const { return inputs_.clip_rect; } + // Set or get a layer that is not an ancestor of this layer, but which should // be clipped to this layer's bounds if SetMasksToBounds() is set to true. // The parent layer does *not* retain ownership of a reference on this layer. @@ -251,6 +257,8 @@ // Set or get the rounded corner radii which is applied to the layer and its // subtree (as if they are together as a single composited entity) when // blitting into their target. Setting this makes the layer masked to bounds. + // If the layer has a clip of its own, the rounded corner will be applied + // along the layer's clip rect corners. void SetRoundedCorner(const gfx::RoundedCornersF& corner_radii); const gfx::RoundedCornersF& corner_radii() const { return inputs_.corner_radii; @@ -609,6 +617,9 @@ void SetHasTransformNode(bool val) { has_transform_node_ = val; } bool has_transform_node() { return has_transform_node_; } + // This value indicates whether a clip node was created for |this| layer. + void SetHasClipNode(bool val) { has_clip_node_ = val; } + // Sets that the content shown in this layer may be a video. This may be used // by the system compositor to distinguish between animations updating the // screen and video, which the user would be watching. This allows @@ -932,6 +943,7 @@ gfx::Size bounds; bool masks_to_bounds; + gfx::Rect clip_rect; scoped_refptr<PictureLayer> mask_layer; @@ -1064,6 +1076,7 @@ bool may_contain_video_ : 1; bool needs_show_scrollbars_ : 1; bool has_transform_node_ : 1; + bool has_clip_node_ : 1; // This value is valid only when LayerTreeHost::has_copy_request() is true bool subtree_has_copy_request_ : 1; SkColor safe_opaque_background_color_;
diff --git a/cc/test/pixel_test.h b/cc/test/pixel_test.h index 3b8f5201..adac588 100644 --- a/cc/test/pixel_test.h +++ b/cc/test/pixel_test.h
@@ -45,7 +45,6 @@ namespace cc { class FakeOutputSurfaceClient; class OutputSurface; -class VulkanSkiaRenderer; class PixelTest : public testing::Test { protected: @@ -152,10 +151,6 @@ bool use_gpu() { return !!child_context_provider_; } - bool use_vulkan() { - return std::is_base_of<VulkanSkiaRenderer, RendererType>::value; - } - protected: void SetUp() override; }; @@ -226,7 +221,7 @@ mode) {} }; -class VulkanSkiaRendererWithFlippedSurface : public VulkanSkiaRenderer { +class VulkanSkiaRendererWithFlippedSurface : public viz::SkiaRenderer { public: VulkanSkiaRendererWithFlippedSurface( const viz::RendererSettings* settings, @@ -234,11 +229,11 @@ viz::DisplayResourceProvider* resource_provider, viz::SkiaOutputSurface* skia_output_surface, DrawMode mode) - : VulkanSkiaRenderer(settings, - output_surface, - resource_provider, - skia_output_surface, - mode) {} + : SkiaRenderer(settings, + output_surface, + resource_provider, + skia_output_surface, + mode) {} }; template <>
diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc index 90888a3..f031478 100644 --- a/cc/trees/layer_tree_host_common_unittest.cc +++ b/cc/trees/layer_tree_host_common_unittest.cc
@@ -11677,5 +11677,229 @@ kRoundedCorner4Radius * kDeviceScale); } +TEST_F(LayerTreeHostCommonTest, CustomLayerClipBounds) { + // The custom clip API should have the same effect as if an intermediate + // clip layer has been added to the layer tree. To check this the test creates + // 2 subtree for a root layer. One of the subtree uses the clip API to clip + // its subtree while the other uses an intermediate layer. The resulting clip + // in draw properties are expected to be the same. + // -Root + // - Parent [Clip set to |kClipBounds| using API] + // - Child + // - Clip Layer [Masks to bounds = true] [Layer bounds set to |kClipBounds|] + // - Expected Parent + // - Expected Child + constexpr float kDeviceScale = 1.f; + + const gfx::Rect kRootLayerBounds(0, 0, 100, 100); + const gfx::Rect kParentLayerBounds(0, 0, 50, 100); + const gfx::Rect kChildLayerBounds(20, 20, 30, 60); + + constexpr gfx::Rect kClipBounds(10, 10, 50, 50); + + // The position of |Expected Parent| on screen should be same as |Parent|. + const gfx::Rect kExpectedParentLayerBounds( + gfx::Point(0, 0) - kClipBounds.OffsetFromOrigin(), gfx::Size(50, 100)); + + scoped_refptr<Layer> root = Layer::Create(); + scoped_refptr<Layer> parent = Layer::Create(); + scoped_refptr<Layer> child = Layer::Create(); + + scoped_refptr<Layer> clip_layer = Layer::Create(); + scoped_refptr<Layer> expected_parent = Layer::Create(); + scoped_refptr<Layer> expected_child = Layer::Create(); + + root->AddChild(parent); + parent->AddChild(child); + + root->AddChild(clip_layer); + clip_layer->AddChild(expected_parent); + expected_parent->AddChild(expected_child); + + host()->SetRootLayer(root); + + root->SetIsDrawable(true); + parent->SetIsDrawable(true); + child->SetIsDrawable(true); + expected_parent->SetIsDrawable(true); + expected_child->SetIsDrawable(true); + + // Set layer positions. + root->SetPosition(gfx::PointF(kRootLayerBounds.origin())); + parent->SetPosition(gfx::PointF(kParentLayerBounds.origin())); + child->SetPosition(gfx::PointF(kChildLayerBounds.origin())); + + clip_layer->SetPosition(gfx::PointF(kClipBounds.origin())); + expected_parent->SetPosition( + gfx::PointF(kExpectedParentLayerBounds.origin())); + expected_child->SetPosition(gfx::PointF(kChildLayerBounds.origin())); + + root->SetBounds(kRootLayerBounds.size()); + parent->SetBounds(kParentLayerBounds.size()); + child->SetBounds(kChildLayerBounds.size()); + + clip_layer->SetBounds(kClipBounds.size()); + expected_parent->SetBounds(kExpectedParentLayerBounds.size()); + expected_child->SetBounds(kChildLayerBounds.size()); + + parent->SetClipRect(kClipBounds); + clip_layer->SetMasksToBounds(true); + + ExecuteCalculateDrawProperties(root.get(), kDeviceScale); + + const ClipTree& clip_tree = + root->layer_tree_host()->property_trees()->clip_tree; + + const ClipNode* parent_clip_node = clip_tree.Node(parent->clip_tree_index()); + EXPECT_EQ(parent_clip_node->clip, gfx::RectF(kClipBounds)); + EXPECT_TRUE(!parent->clip_rect().IsEmpty()); + + const ClipNode* child_clip_node = clip_tree.Node(child->clip_tree_index()); + EXPECT_EQ(child_clip_node->clip, gfx::RectF(kClipBounds)); + + host()->host_impl()->CreatePendingTree(); + host()->CommitAndCreatePendingTree(); + // TODO(https://crbug.com/939968) This call should be handled by + // FakeLayerTreeHost instead of manually pushing the properties from the + // layer tree host to the pending tree. + root->layer_tree_host()->PushLayerTreePropertiesTo(host()->pending_tree()); + host()->host_impl()->ActivateSyncTree(); + LayerTreeImpl* layer_tree_impl = host()->host_impl()->active_tree(); + + // Get the layer impl for each Layer. + LayerImpl* root_impl = layer_tree_impl->LayerById(root->id()); + LayerImpl* parent_impl = layer_tree_impl->LayerById(parent->id()); + LayerImpl* child_impl = layer_tree_impl->LayerById(child->id()); + LayerImpl* expected_parent_impl = + layer_tree_impl->LayerById(expected_parent->id()); + LayerImpl* expected_child_impl = + layer_tree_impl->LayerById(expected_child->id()); + + ExecuteCalculateDrawProperties(root_impl, kDeviceScale); + + EXPECT_TRUE(parent_impl->is_clipped()); + EXPECT_TRUE(child_impl->is_clipped()); + ASSERT_TRUE(expected_parent_impl->is_clipped()); + ASSERT_TRUE(expected_child_impl->is_clipped()); + + EXPECT_EQ(parent_impl->clip_rect(), expected_parent_impl->clip_rect()); + EXPECT_EQ(child_impl->clip_rect(), expected_child_impl->clip_rect()); +} + +TEST_F(LayerTreeHostCommonTest, CustomLayerClipBoundsWithMaskToBounds) { + // The custom clip API should have the same effect as if an intermediate + // clip layer has been added to the layer tree. To check this the test creates + // 2 subtree for a root layer. One of the subtree uses the clip API to clip + // its subtree while the other uses an intermediate layer. The resulting clip + // in draw properties are expected to be the same. In this test, the subtree + // roots also have their masks to bounds property set. + // -Root + // - Parent [Clip set to |kClipBounds| using API] + // - Child + // - Clip Layer [Masks to bounds = true] [Layer bounds set to |kClipBounds|] + // - Expected Parent [Masks to bounds = true] + // - Expected Child + constexpr float kDeviceScale = 1.f; + + const gfx::Rect kRootLayerBounds(0, 0, 100, 100); + const gfx::Rect kParentLayerBounds(0, 0, 50, 100); + const gfx::Rect kChildLayerBounds(20, 20, 30, 60); + + constexpr gfx::Rect kClipBounds(10, 10, 50, 50); + + // The position of |Expected Parent| on screen should be same as |Parent|. + const gfx::Rect kExpectedParentLayerBounds( + gfx::Point(0, 0) - kClipBounds.OffsetFromOrigin(), gfx::Size(50, 100)); + + scoped_refptr<Layer> root = Layer::Create(); + scoped_refptr<Layer> parent = Layer::Create(); + scoped_refptr<Layer> child = Layer::Create(); + + scoped_refptr<Layer> clip_layer = Layer::Create(); + scoped_refptr<Layer> expected_parent = Layer::Create(); + scoped_refptr<Layer> expected_child = Layer::Create(); + + root->AddChild(parent); + parent->AddChild(child); + + root->AddChild(clip_layer); + clip_layer->AddChild(expected_parent); + expected_parent->AddChild(expected_child); + + host()->SetRootLayer(root); + + root->SetIsDrawable(true); + parent->SetIsDrawable(true); + child->SetIsDrawable(true); + expected_parent->SetIsDrawable(true); + expected_child->SetIsDrawable(true); + + // Set layer positions. + root->SetPosition(gfx::PointF(kRootLayerBounds.origin())); + parent->SetPosition(gfx::PointF(kParentLayerBounds.origin())); + child->SetPosition(gfx::PointF(kChildLayerBounds.origin())); + + clip_layer->SetPosition(gfx::PointF(kClipBounds.origin())); + expected_parent->SetPosition( + gfx::PointF(kExpectedParentLayerBounds.origin())); + expected_child->SetPosition(gfx::PointF(kChildLayerBounds.origin())); + + root->SetBounds(kRootLayerBounds.size()); + parent->SetBounds(kParentLayerBounds.size()); + child->SetBounds(kChildLayerBounds.size()); + + clip_layer->SetBounds(kClipBounds.size()); + expected_parent->SetBounds(kExpectedParentLayerBounds.size()); + expected_child->SetBounds(kChildLayerBounds.size()); + + parent->SetClipRect(kClipBounds); + parent->SetMasksToBounds(true); + + clip_layer->SetMasksToBounds(true); + expected_parent->SetMasksToBounds(true); + + ExecuteCalculateDrawProperties(root.get(), kDeviceScale); + + const ClipTree& clip_tree = + root->layer_tree_host()->property_trees()->clip_tree; + + const ClipNode* parent_clip_node = clip_tree.Node(parent->clip_tree_index()); + const gfx::RectF expected_clip_bounds = gfx::IntersectRects( + gfx::RectF(kClipBounds), gfx::RectF(kParentLayerBounds)); + EXPECT_EQ(parent_clip_node->clip, expected_clip_bounds); + EXPECT_TRUE(!parent->clip_rect().IsEmpty()); + + const ClipNode* child_clip_node = clip_tree.Node(child->clip_tree_index()); + EXPECT_EQ(child_clip_node->clip, expected_clip_bounds); + + host()->host_impl()->CreatePendingTree(); + host()->CommitAndCreatePendingTree(); + // TODO(https://crbug.com/939968) This call should be handled by + // FakeLayerTreeHost instead of manually pushing the properties from the + // layer tree host to the pending tree. + root->layer_tree_host()->PushLayerTreePropertiesTo(host()->pending_tree()); + host()->host_impl()->ActivateSyncTree(); + LayerTreeImpl* layer_tree_impl = host()->host_impl()->active_tree(); + + // Get the layer impl for each Layer. + LayerImpl* root_impl = layer_tree_impl->LayerById(root->id()); + LayerImpl* parent_impl = layer_tree_impl->LayerById(parent->id()); + LayerImpl* child_impl = layer_tree_impl->LayerById(child->id()); + LayerImpl* expected_parent_impl = + layer_tree_impl->LayerById(expected_parent->id()); + LayerImpl* expected_child_impl = + layer_tree_impl->LayerById(expected_child->id()); + + ExecuteCalculateDrawProperties(root_impl, kDeviceScale); + + EXPECT_TRUE(parent_impl->is_clipped()); + EXPECT_TRUE(child_impl->is_clipped()); + ASSERT_TRUE(expected_parent_impl->is_clipped()); + ASSERT_TRUE(expected_child_impl->is_clipped()); + + EXPECT_EQ(parent_impl->clip_rect(), expected_parent_impl->clip_rect()); + EXPECT_EQ(child_impl->clip_rect(), expected_child_impl->clip_rect()); +} + } // namespace } // namespace cc
diff --git a/cc/trees/layer_tree_host_pixeltest_filters.cc b/cc/trees/layer_tree_host_pixeltest_filters.cc index f6b83202..9a66fe86 100644 --- a/cc/trees/layer_tree_host_pixeltest_filters.cc +++ b/cc/trees/layer_tree_host_pixeltest_filters.cc
@@ -347,9 +347,6 @@ 0); invert->SetBackdropFilterBounds(backdrop_filter_bounds); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL( "backdrop_filter_bounds_with_children.png"))); @@ -422,9 +419,6 @@ filters.Append(FilterOperation::CreateReferenceFilter(nullptr)); foreground->SetFilters(filters); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), foreground, base::FilePath(FILE_PATH_LITERAL("green.png"))); } @@ -480,9 +474,6 @@ transform.Translate(0.0, -100.0); foreground->SetTransform(transform); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("blue_yellow.png"))); } @@ -515,9 +506,6 @@ // applied only to the top 100 pixels, not the bottom. foreground->SetFiltersOrigin(gfx::PointF(0.0f, -100.0f)); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("blue_yellow.png"))); } @@ -644,20 +632,6 @@ average_error_allowed_in_bad_pixels, large_error_allowed, small_error_allowed)); - if (renderer_type() == RENDERER_SKIA_VK) { - constexpr bool discard_alpha = false; - constexpr float error_pixels_percentage_limit = 5.f; - constexpr float small_error_pixels_percentage_limit = 0.f; - constexpr float avg_abs_error_limit = 1.f; - constexpr int max_abs_error_limit = 2; - constexpr int small_error_threshold = 0; - - pixel_comparator_ = std::make_unique<FuzzyPixelComparator>( - discard_alpha, error_pixels_percentage_limit, - small_error_pixels_percentage_limit, avg_abs_error_limit, - max_abs_error_limit, small_error_threshold); - } - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("backdrop_filter_rotated_.png")) .InsertBeforeExtensionASCII(GetRendererSuffix())); @@ -708,9 +682,6 @@ small_error_allowed)); } - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest( renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("scaled_render_surface_layer_.png")) @@ -954,9 +925,6 @@ // Force the allocation a larger textures. set_enlarge_texture_amount(gfx::Size(50, 50)); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest( renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("enlarged_texture_on_threshold.png"))); @@ -995,9 +963,6 @@ // Force the allocation a larger textures. set_enlarge_texture_amount(gfx::Size(50, 50)); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest( renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("enlarged_texture_on_crop_offset.png")));
diff --git a/cc/trees/layer_tree_host_pixeltest_readback.cc b/cc/trees/layer_tree_host_pixeltest_readback.cc index 88a69cc..76e0ab0 100644 --- a/cc/trees/layer_tree_host_pixeltest_readback.cc +++ b/cc/trees/layer_tree_host_pixeltest_readback.cc
@@ -9,7 +9,6 @@ #include "cc/test/fake_picture_layer.h" #include "cc/test/fake_picture_layer_impl.h" #include "cc/test/layer_tree_pixel_test.h" -#include "cc/test/pixel_comparator.h" #include "cc/test/solid_color_content_layer_client.h" #include "cc/test/test_layer_tree_frame_sink.h" #include "cc/trees/layer_tree_impl.h" @@ -394,9 +393,6 @@ blue->RequestCopyOfOutput(viz::CopyOutputRequest::CreateStubForTesting()); background->AddChild(blue); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true); - RunPixelTestWithReadbackTarget( renderer_type(), background, background.get(), base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
diff --git a/cc/trees/layer_tree_host_pixeltest_scrollbars.cc b/cc/trees/layer_tree_host_pixeltest_scrollbars.cc index 9b8d1b6..1e6cc926 100644 --- a/cc/trees/layer_tree_host_pixeltest_scrollbars.cc +++ b/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
@@ -112,9 +112,6 @@ layer->SetBounds(gfx::Size(200, 200)); background->AddChild(layer); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("spiral.png"))); } @@ -134,9 +131,6 @@ layer->SetBounds(gfx::Size(100, 100)); background->AddChild(layer); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("spiral_double_scale.png"))); } @@ -158,9 +152,6 @@ scale_transform.Scale(2.0, 2.0); layer->SetTransform(scale_transform); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest(renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("spiral_double_scale.png"))); } @@ -294,9 +285,6 @@ layer->SetPosition(gfx::PointF(185, 10)); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest( renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("overlay_scrollbar_scaled_up.png"))); @@ -321,9 +309,6 @@ layer->SetPosition(gfx::PointF(185, 10)); - if (renderer_type() == RENDERER_SKIA_VK) - pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(false); - RunPixelTest( renderer_type(), background, base::FilePath(FILE_PATH_LITERAL("overlay_scrollbar_scaled_down.png")));
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc index bd5882e..7d20ffa 100644 --- a/cc/trees/property_tree_builder.cc +++ b/cc/trees/property_tree_builder.cc
@@ -180,6 +180,14 @@ return layer->test_properties()->clip_parent; } +static bool HasClipRect(Layer* layer) { + return !layer->clip_rect().IsEmpty(); +} + +static bool HasClipRect(LayerImpl* layer) { + return false; +} + static inline const FilterOperations& Filters(Layer* layer) { return layer->filters(); } @@ -204,15 +212,6 @@ return !layer->test_properties()->rounded_corner_bounds.IsEmpty(); } -static gfx::RRectF RoundedCornerBounds(Layer* layer) { - return gfx::RRectF(gfx::RectF(gfx::Rect(layer->bounds())), - layer->corner_radii()); -} - -static gfx::RRectF RoundedCornerBounds(LayerImpl* layer) { - return layer->test_properties()->rounded_corner_bounds; -} - static PictureLayer* MaskLayer(Layer* layer) { return layer->mask_layer(); } @@ -310,9 +309,46 @@ } template <typename LayerType> +static bool LayerClipsSubtreeToItsBounds(LayerType* layer) { + return layer->masks_to_bounds() || MaskLayer(layer); +} + +template <typename LayerType> static bool LayerClipsSubtree(LayerType* layer) { - return layer->masks_to_bounds() || MaskLayer(layer) || - HasRoundedCorner(layer); + return LayerClipsSubtreeToItsBounds(layer) || HasRoundedCorner(layer) || + HasClipRect(layer); +} + +gfx::RectF EffectiveClipRect(Layer* layer) { + // If the layer does not have a clip rect set, then the subtree is clipped by + // the bounds of this layer. + const gfx::RectF layer_bounds(gfx::PointF(), gfx::SizeF(layer->bounds())); + if (!HasClipRect(layer)) + return layer_bounds; + + const gfx::RectF clip_rect(layer->clip_rect()); + + // Layer needs to clip to its bounds as well apply a clip rect. Intersect the + // two to get the effective clip. + if (LayerClipsSubtreeToItsBounds(layer) || + Filters(layer).HasFilterThatMovesPixels()) { + return gfx::IntersectRects(layer_bounds, clip_rect); + } + + // Clip rect is the only clip effecting the layer. + return clip_rect; +} + +gfx::RectF EffectiveClipRect(LayerImpl* layer) { + return gfx::RectF(gfx::PointF(), gfx::SizeF(layer->bounds())); +} + +static gfx::RRectF RoundedCornerBounds(Layer* layer) { + return gfx::RRectF(EffectiveClipRect(layer), layer->corner_radii()); +} + +static gfx::RRectF RoundedCornerBounds(LayerImpl* layer) { + return layer->test_properties()->rounded_corner_bounds; } template <typename LayerType> @@ -355,6 +391,12 @@ return true; } +static inline void SetHasClipNode(Layer* layer, bool val) { + layer->SetHasClipNode(val); +} + +static inline void SetHasClipNode(LayerImpl* layer, bool val) {} + template <typename LayerType> void PropertyTreeBuilderContext<LayerType>::AddClipNodeIfNeeded( const DataForRecursion& data_from_ancestor, @@ -376,8 +418,11 @@ data_for_children->clip_tree_parent = parent_id; } else { ClipNode node; - node.clip = gfx::RectF(gfx::PointF() + layer->offset_to_transform_parent(), - gfx::SizeF(layer->bounds())); + node.clip = EffectiveClipRect(layer); + + // Move the clip bounds so that it is relative to the transform parent. + node.clip += layer->offset_to_transform_parent(); + node.transform_id = created_transform_node ? data_for_children->transform_tree_parent : GetTransformParent(data_from_ancestor, layer); @@ -391,6 +436,7 @@ data_for_children->clip_tree_parent = clip_tree_.Insert(node, parent_id); } + SetHasClipNode(layer, requires_node); layer->SetClipTreeIndex(data_for_children->clip_tree_parent); }
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index a0ac7439..4437ed7c 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -2098,24 +2098,6 @@ } } -# Chrome smoke test is a minimal test to ensure Chrome is not DOA. It is deigned to -# be runnable against uninstrumented Chrome apks. -instrumentation_test_apk("chrome_smoke_test") { - apk_name = "ChromeSmokeTest" - apk_under_test = "//chrome/android:chrome_public_apk" - android_manifest = - "javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml" - testonly = true - java_files = - [ "javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java" ] - deps = [ - "//base:base_java_test_support", - "//chrome/test/android:chrome_java_test_pagecontroller", - "//content/public/test/android:content_java_test_support", - "//third_party/junit", - ] -} - if (defined(expected_static_initializer_count)) { action_with_pydeps("monochrome_static_initializers") { script = "//build/android/gyp/assert_static_initializers.py"
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index aa22d18a0..fcb98c5 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -1272,6 +1272,7 @@ "java/src/org/chromium/chrome/browser/preferences/download/DownloadDirectoryAdapter.java", "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java", "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceAdapter.java", + "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java", "java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java", "java/src/org/chromium/chrome/browser/preferences/languages/AddLanguageFragment.java", "java/src/org/chromium/chrome/browser/preferences/languages/LanguageItem.java",
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java index 77facdb..ab524e3 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcher.java
@@ -20,7 +20,13 @@ /** * Interface to control the GridTabSwitcher. */ - interface GridController extends OverviewModeController {} + interface GridController extends OverviewModeController { + /** + * Called by the GridTabSwitcherLayout when the system back button is pressed. + * @return Whether or not the GridTabSwitcher consumed the event. + */ + boolean onBackPressed(); + } /** * An observer that is notified when the GridTabSwitcher view state changes.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java index be456bc..4a1eddfd 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherLayout.java
@@ -18,6 +18,7 @@ import org.chromium.base.Log; import org.chromium.base.Supplier; import org.chromium.base.VisibleForTesting; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ChromeVersionInfo; import org.chromium.chrome.browser.compositor.LayerTitleCache; @@ -137,15 +138,15 @@ } @Override + public void doneHiding() { + super.doneHiding(); + RecordUserAction.record("MobileExitStackView"); + } + + @Override public boolean onBackPressed() { if (mTabModelSelector.getCurrentModel().getCount() == 0) return false; - - if (mGridController.overviewVisible()) { - mGridController.hideOverview(true); - return true; - } - - return false; + return mGridController.onBackPressed(); } @Override
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java index f0efccf..e35900e 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java
@@ -20,6 +20,7 @@ import org.chromium.base.ContextUtils; import org.chromium.base.ObserverList; +import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -104,6 +105,10 @@ */ private boolean mShouldIgnoreNextSelect; + private int mModelIndexWhenShown; + private int mTabIdwhenShown; + private int mIndexInNewModelWhenSwitched; + /** * Interface to delegate resetting the tab grid. */ @@ -144,6 +149,7 @@ @Override public void onTabModelSelected(TabModel newModel, TabModel oldModel) { mShouldIgnoreNextSelect = true; + mIndexInNewModelWhenSwitched = newModel.index(); TabList currentTabModelFilter = mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter(); @@ -171,6 +177,10 @@ if (modelFilter instanceof TabGroupModelFilter) { ((TabGroupModelFilter) modelFilter).recordSessionsCount(tab); } + + // Use TabSelectionType.From_USER to filter the new tab creation case. + if (type == TabSelectionType.FROM_USER) recordUserSwitchedTab(tab, lastId); + hideOverview( !ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION)); } @@ -248,6 +258,53 @@ mCompositorViewHolder.setContentOverlayVisibility(isVisible, true); } + /** + * Record tab switch related metric for GTS. + * @param tab The new selected tab. + * @param lastId The id of the previous selected tab, and that tab is still a valid tab + * in TabModel. + */ + private void recordUserSwitchedTab(Tab tab, int lastId) { + Tab fromTab = TabModelUtils.getTabById(mTabModelSelector.getCurrentModel(), lastId); + assert fromTab != null; + + if (mModelIndexWhenShown == mTabModelSelector.getCurrentModelIndex()) { + if (tab.getId() == mTabIdwhenShown) { + RecordUserAction.record("MobileTabReturnedToCurrentTab"); + RecordHistogram.recordSparseHistogram( + "Tabs.TabOffsetOfSwitch." + GridTabSwitcherCoordinator.COMPONENT_NAME, 0); + } else { + int fromIndex = mTabModelSelector.getTabModelFilterProvider() + .getCurrentTabModelFilter() + .indexOf(fromTab); + int toIndex = mTabModelSelector.getTabModelFilterProvider() + .getCurrentTabModelFilter() + .indexOf(tab); + + if (fromIndex != toIndex || fromTab.getId() == tab.getId()) { + RecordUserAction.record( + "MobileTabSwitched." + GridTabSwitcherCoordinator.COMPONENT_NAME); + RecordHistogram.recordSparseHistogram( + "Tabs.TabOffsetOfSwitch." + GridTabSwitcherCoordinator.COMPONENT_NAME, + fromIndex - toIndex); + } + } + } else { + int newSelectedTabIndex = + TabModelUtils.getTabIndexById(mTabModelSelector.getCurrentModel(), tab.getId()); + if (newSelectedTabIndex == mIndexInNewModelWhenSwitched) { + // TabModelImpl logs this action only when a different index is set within a + // TabModelImpl. If we switch between normal tab model and incognito tab model and + // leave the index the same (i.e. after switched tab model and select the + // highlighted tab), TabModelImpl doesn't catch this case. Therefore, we record it + // here. + RecordUserAction.record("MobileTabSwitched"); + } + RecordUserAction.record( + "MobileTabSwitched." + GridTabSwitcherCoordinator.COMPONENT_NAME); + } + } + @Override public boolean overviewVisible() { return mContainerViewModel.get(IS_VISIBLE); @@ -294,6 +351,8 @@ ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION)); if (!animate) mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, false); setVisibility(true); + mModelIndexWhenShown = mTabModelSelector.getCurrentModelIndex(); + mTabIdwhenShown = mTabModelSelector.getCurrentTabId(); mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, true); } @@ -327,6 +386,16 @@ } } + @Override + public boolean onBackPressed() { + if (!mContainerViewModel.get(IS_VISIBLE)) return false; + + recordUserSwitchedTab( + mTabModelSelector.getCurrentTab(), mTabModelSelector.getCurrentTabId()); + hideOverview(!ChromeFeatureList.isEnabled(ChromeFeatureList.TAB_TO_GTS_ANIMATION)); + return true; + } + /** * Do clean-up work after the overview hiding animation is finished. * @see GridTabSwitcher#postHiding
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java index edc17b3..57dfe68 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -210,32 +210,47 @@ Tab newlySelectedTab = mTabModelSelector.getCurrentTab(); - if (currentTab == newlySelectedTab) { - RecordUserAction.record("MobileTabReturnedToCurrentTab." + mComponentName); - } else { - recordTabOffsetOfSwitch(currentTab, newlySelectedTab); - RecordUserAction.record("MobileTabSwitched." + mComponentName); + if (!mActionsOnAllRelatedTabs) { + // We filtered the tab switching related metric for components that takes actions on + // all related tabs (e.g. GTS) because that component can switch to different + // TabModel before switching tabs, while this class only contains information for + // all tabs that are in the same TabModel, more specifically: + // * For Tabs.TabOffsetOfSwitch, we do not want to log anything if the user + // switched from normal to incognito or vice-versa. + // * For MobileTabSwitched, as compared to the VTS, we need to account for + // MobileTabReturnedToCurrentTab action. This action is defined as return to the + // same tab as before entering the component, and we don't have this information + // here. + recordUserSwitchedTab(currentTab, newlySelectedTab); } } - private void recordTabOffsetOfSwitch(Tab fromTab, Tab toTab) { - assert fromTab != toTab; - int fromIndex = mTabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter() - .indexOf(fromTab); - int toIndex = mTabModelSelector.getTabModelFilterProvider() - .getCurrentTabModelFilter() - .indexOf(toTab); + /** + * Records Tabs.TabOffsetOfSwitch and MobileTabSwitched for the component only if the + * fromTab and toTab have the same filter index. + * + * @param fromTab The previous selected tab. + * @param toTab The new selected tab. + */ + private void recordUserSwitchedTab(Tab fromTab, Tab toTab) { + int fromFilterIndex = mTabModelSelector.getTabModelFilterProvider() + .getCurrentTabModelFilter() + .indexOf(fromTab); + int toFilterIndex = mTabModelSelector.getTabModelFilterProvider() + .getCurrentTabModelFilter() + .indexOf(toTab); - if (fromIndex == toIndex) { - fromIndex = TabModelUtils.getTabIndexById( - mTabModelSelector.getCurrentModel(), fromTab.getId()); - toIndex = TabModelUtils.getTabIndexById( - mTabModelSelector.getCurrentModel(), toTab.getId()); - } + if (fromFilterIndex != toFilterIndex) return; + + int fromIndex = TabModelUtils.getTabIndexById( + mTabModelSelector.getCurrentModel(), fromTab.getId()); + int toIndex = TabModelUtils.getTabIndexById( + mTabModelSelector.getCurrentModel(), toTab.getId()); RecordHistogram.recordSparseHistogram( "Tabs.TabOffsetOfSwitch." + mComponentName, fromIndex - toIndex); + + RecordUserAction.record("MobileTabSwitched." + mComponentName); } };
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java index 84a3451..f17bdab4 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorToolbar.java
@@ -5,18 +5,23 @@ package org.chromium.chrome.browser.tasks.tab_management; import android.content.Context; +import android.content.res.ColorStateList; +import android.support.v7.content.res.AppCompatResources; import android.util.AttributeSet; import android.widget.Button; +import org.chromium.chrome.browser.widget.TintedDrawable; import org.chromium.chrome.browser.widget.selection.SelectableListToolbar; import org.chromium.chrome.tab_ui.R; +import java.util.Collections; import java.util.List; /** * Handles toolbar functionality for TabSelectionEditor. */ class TabSelectionEditorToolbar extends SelectableListToolbar<Integer> { + private static final List<Integer> sEmptyIntegerList = Collections.emptyList(); private Button mGroupButton; public TabSelectionEditorToolbar(Context context, AttributeSet attrs) { @@ -26,16 +31,39 @@ @Override protected void onFinishInflate() { super.onFinishInflate(); + + showNavigationButton(); mGroupButton = (Button) findViewById(org.chromium.chrome.R.id.action_button); mNumberRollView.setStringForZero(R.string.tab_selection_editor_toolbar_select_tabs); } + private void showNavigationButton() { + TintedDrawable navigationIconDrawable = TintedDrawable.constructTintedDrawable( + getContext(), org.chromium.chrome.R.drawable.ic_arrow_back_white_24dp); + ColorStateList lightIconColorList = AppCompatResources.getColorStateList( + getContext(), org.chromium.chrome.R.color.default_icon_color_inverse); + navigationIconDrawable.setTint(lightIconColorList); + + setNavigationIcon(navigationIconDrawable); + setNavigationContentDescription(R.string.close); + } + @Override public void onSelectionStateChange(List<Integer> selectedItems) { super.onSelectionStateChange(selectedItems); mGroupButton.setEnabled(selectedItems.size() > 1); } + @Override + protected void setNavigationButton(int navigationButton) {} + + @Override + protected void showNormalView() { + // TODO(976523): This is a temporary way to force the toolbar always in the selection + // mode until the associated bug is addressed. + showSelectionView(sEmptyIntegerList, true); + } + /** * Sets a {@link android.view.View.OnClickListener} to respond to {@code mGroupButton} clicking * event.
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java index 15d7ffc..a5f29f4 100644 --- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java +++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediatorUnitTest.java
@@ -152,11 +152,17 @@ .addTabModelFilterObserver(mTabModelObserverCaptor.capture()); doReturn(mTab1).when(mTabModelFilter).getTabAt(0); doReturn(mTab2).when(mTabModelFilter).getTabAt(1); - doReturn(mTab2).when(mTabModelFilter).getTabAt(2); + doReturn(mTab3).when(mTabModelFilter).getTabAt(2); doReturn(false).when(mTabModelFilter).isIncognito(); doReturn(2).when(mTabModelFilter).index(); doReturn(3).when(mTabModelFilter).getCount(); + doReturn(2).when(mTabModel).index(); + doReturn(3).when(mTabModel).getCount(); + doReturn(mTab1).when(mTabModel).getTabAt(0); + doReturn(mTab2).when(mTabModel).getTabAt(1); + doReturn(mTab3).when(mTabModel).getTabAt(2); + doReturn(CONTROL_HEIGHT_DEFAULT).when(mFullscreenManager).getBottomControlsHeight(); doReturn(CONTROL_HEIGHT_DEFAULT).when(mFullscreenManager).getTopControlsHeight(); doNothing().when(mFullscreenManager).addListener(mFullscreenListenerCaptor.capture());
diff --git a/chrome/android/java/res/layout/tab_switcher_toolbar.xml b/chrome/android/java/res/layout/tab_switcher_toolbar.xml index efa467a..da567ec2 100644 --- a/chrome/android/java/res/layout/tab_switcher_toolbar.xml +++ b/chrome/android/java/res/layout/tab_switcher_toolbar.xml
@@ -5,10 +5,36 @@ <org.chromium.chrome.browser.toolbar.top.TabSwitcherModeTTPhone xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/tab_switcher_toolbar" android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height_no_shadow" > + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:id="@+id/new_tab_view" + android:background="?attr/selectableItemBackground" + android:orientation="horizontal" + android:visibility="gone"> + <ImageView + android:layout_width="@dimen/toolbar_button_width" + android:layout_height="56dp" + android:layout_gravity="start|top" + android:scaleType="center" + android:paddingStart="16dp" + android:paddingEnd="16dp" + app:srcCompat="@drawable/new_tab_icon" + android:contentDescription="@string/accessibility_toolbar_btn_new_tab"/> + <TextView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:paddingEnd="16dp" + android:gravity="center_vertical" + android:text="@string/button_new_tab" + android:textAppearance="@style/TextAppearance.BlackTitle2" /> + </LinearLayout> + <org.chromium.chrome.browser.toolbar.NewTabButton android:id="@+id/new_tab_button" style="@style/ToolbarButton"
diff --git a/chrome/android/java/res/xml/download_preferences.xml b/chrome/android/java/res/xml/download_preferences.xml index e0ef6f5..894a886 100644 --- a/chrome/android/java/res/xml/download_preferences.xml +++ b/chrome/android/java/res/xml/download_preferences.xml
@@ -3,20 +3,20 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> +<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <org.chromium.chrome.browser.preferences.download.DownloadLocationPreference android:key="location_change" android:title="@string/downloads_location_selector_title" android:positiveButtonText="@string/done" android:negativeButtonText="@null" /> - <org.chromium.chrome.browser.preferences.ChromeSwitchPreference + <org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat android:key="location_prompt_enabled" android:title="@string/download_location_prompt_enabled_title" android:summaryOn="@string/text_on" android:summaryOff="@string/text_off" /> - <org.chromium.chrome.browser.preferences.ChromeSwitchPreference + <org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat android:key="prefetching_enabled" android:title="@string/download_settings_enable_prefetch_title" /> -</PreferenceScreen> +</android.support.v7.preference.PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java index 8aebfd5..7d34e5a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java
@@ -1458,6 +1458,7 @@ mIsHidingBecauseOfNewTabCreation = false; super.doneHiding(); + RecordUserAction.record("MobileExitStackView"); mInnerMarginPercent = 0.0f; mStackOffsetYPercent = 0.0f;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java index 8e71dbc..9e270a7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java
@@ -169,7 +169,7 @@ @Override public void openSettings() { RecordUserAction.record("Android.DownloadManager.Settings"); - PreferencesLauncher.launchSettingsPage(mActivity, DownloadPreferences.class); + PreferencesLauncher.launchSettingsPageCompat(mActivity, DownloadPreferences.class); } private void notifyFilterChanged(@FilterType int filter) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java index abe4c17..996b7bc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
@@ -388,7 +388,7 @@ mToolbar.showSearchView(); return true; } else if (item.getItemId() == R.id.settings_menu_id) { - PreferencesLauncher.launchSettingsPage(mActivity, DownloadPreferences.class); + PreferencesLauncher.launchSettingsPageCompat(mActivity, DownloadPreferences.class); return true; } return false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java index 998a22d2..eda8cf21 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java
@@ -60,6 +60,9 @@ * * @param context The current Activity, or an application context if no Activity is available. * @param fragment The fragment to show, or null to show the top-level page. + * + * TODO(crbug.com/967022): Remove this method when Preference Support Library migration is + * complete. */ public static void launchSettingsPage( Context context, @Nullable Class<? extends Fragment> fragment) { @@ -70,8 +73,22 @@ * Launches settings, either on the top-level page or on a subpage. * * @param context The current Activity, or an application context if no Activity is available. + * @param fragment The fragment to show, or null to show the top-level page. + */ + public static void launchSettingsPageCompat( + Context context, @Nullable Class<? extends android.support.v4.app.Fragment> fragment) { + launchSettingsPageCompat(context, fragment, null); + } + + /** + * Launches settings, either on the top-level page or on a subpage. + * + * @param context The current Activity, or an application context if no Activity is available. * @param fragment The name of the fragment to show, or null to show the top-level page. * @param fragmentArgs The arguments bundle to initialize the instance of subpage fragment. + * + * TODO(crbug.com/967022): Remove this method when Preference Support Library migration is + * complete. */ public static void launchSettingsPage(Context context, @Nullable Class<? extends Fragment> fragment, @Nullable Bundle fragmentArgs) { @@ -81,6 +98,21 @@ } /** + * Launches settings, either on the top-level page or on a subpage. + * + * @param context The current Activity, or an application context if no Activity is available. + * @param fragment The name of the fragment to show, or null to show the top-level page. + * @param fragmentArgs The arguments bundle to initialize the instance of subpage fragment. + */ + public static void launchSettingsPageCompat(Context context, + @Nullable Class<? extends android.support.v4.app.Fragment> fragment, + @Nullable Bundle fragmentArgs) { + String fragmentName = fragment != null ? fragment.getName() : null; + Intent intent = createIntentForSettingsPage(context, fragmentName, fragmentArgs); + IntentUtils.safeStartActivity(context, intent); + } + + /** * Creates an intent for launching settings, either on the top-level settings page or a specific * subpage. *
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java index 26fa5ab..0dd1f47 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java
@@ -5,14 +5,11 @@ package org.chromium.chrome.browser.preferences.download; import android.content.Context; -import android.preference.DialogPreference; +import android.support.v7.preference.DialogPreference; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.StyleSpan; import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ListView; import org.chromium.chrome.browser.download.DirectoryOption; import org.chromium.chrome.download.R; @@ -29,16 +26,11 @@ private DownloadLocationPreferenceAdapter mAdapter; /** - * The view contains the list of download directories. - */ - private ListView mListView; - - /** * Constructor for DownloadLocationPreference. */ public DownloadLocationPreference(Context context, AttributeSet attrs) { super(context, attrs); - + setDialogLayoutResource(R.layout.download_location_preference); mAdapter = new DownloadLocationPreferenceAdapter(getContext(), this); mAdapter.update(); } @@ -61,15 +53,6 @@ setSummary(summaryBuilder); } - @Override - protected View onCreateDialogView() { - View view = LayoutInflater.from(getContext()) - .inflate(R.layout.download_location_preference, null); - mListView = (ListView) (view.findViewById(R.id.location_preference_list_view)); - mListView.setAdapter(mAdapter); - return view; - } - // DownloadDirectoryAdapter.Delegate implementation. @Override public void onDirectoryOptionsUpdated() { @@ -84,4 +67,8 @@ public void onDirectorySelectionChanged() { updateSummary(); } + + DownloadLocationPreferenceAdapter getAdapter() { + return mAdapter; + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java new file mode 100644 index 0000000..98e07eaf --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceDialog.java
@@ -0,0 +1,43 @@ +// Copyright 2019 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. + +package org.chromium.chrome.browser.preferences.download; + +import android.os.Bundle; +import android.support.v7.preference.PreferenceDialogFragmentCompat; +import android.view.View; +import android.widget.ListView; + +import org.chromium.chrome.download.R; + +/** + * The dialog used to display the download directory preference choices. + */ +public class DownloadLocationPreferenceDialog extends PreferenceDialogFragmentCompat { + public static final String TAG = "DownloadLocationPreferenceDialog"; + + public static DownloadLocationPreferenceDialog newInstance( + DownloadLocationPreference preference) { + DownloadLocationPreferenceDialog fragment = new DownloadLocationPreferenceDialog(); + Bundle bundle = new Bundle(1); + bundle.putString("key", preference.getKey()); + fragment.setArguments(bundle); + return fragment; + } + + @Override + protected void onBindDialogView(View view) { + DownloadLocationPreference preference = (DownloadLocationPreference) getPreference(); + ListView listView = view.findViewById(R.id.location_preference_list_view); + listView.setAdapter(preference.getAdapter()); + super.onBindDialogView(view); + } + + /** + * Do nothing. Preferences are already updated at {@link + * DownloadLocationPreferenceAdapter#onClick(View)}. + */ + @Override + public void onDialogClosed(boolean b) {} +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java index 71dbd57..0ba863a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java
@@ -5,14 +5,14 @@ package org.chromium.chrome.browser.preferences.download; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceFragment; import android.support.annotation.Nullable; +import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceFragmentCompat; import org.chromium.chrome.R; import org.chromium.chrome.browser.download.DownloadPromptStatus; import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchConfiguration; -import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; +import org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.preferences.PreferenceUtils; @@ -20,30 +20,29 @@ * Fragment to keep track of all downloads related preferences. */ public class DownloadPreferences - extends PreferenceFragment implements Preference.OnPreferenceChangeListener { + extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { public static final String PREF_LOCATION_CHANGE = "location_change"; private static final String PREF_LOCATION_PROMPT_ENABLED = "location_prompt_enabled"; private static final String PREF_PREFETCHING_ENABLED = "prefetching_enabled"; private DownloadLocationPreference mLocationChangePref; - private ChromeSwitchPreference mLocationPromptEnabledPref; - private ChromeSwitchPreference mPrefetchingEnabled; + private ChromeSwitchPreferenceCompat mLocationPromptEnabledPref; + private ChromeSwitchPreferenceCompat mPrefetchingEnabled; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - + public void onCreatePreferences(@Nullable Bundle savedInstanceState, String s) { getActivity().setTitle(R.string.menu_downloads); PreferenceUtils.addPreferencesFromResource(this, R.xml.download_preferences); mLocationPromptEnabledPref = - (ChromeSwitchPreference) findPreference(PREF_LOCATION_PROMPT_ENABLED); + (ChromeSwitchPreferenceCompat) findPreference(PREF_LOCATION_PROMPT_ENABLED); mLocationPromptEnabledPref.setOnPreferenceChangeListener(this); mLocationChangePref = (DownloadLocationPreference) findPreference(PREF_LOCATION_CHANGE); if (PrefetchConfiguration.isPrefetchingFlagEnabled()) { - mPrefetchingEnabled = (ChromeSwitchPreference) findPreference(PREF_PREFETCHING_ENABLED); + mPrefetchingEnabled = + (ChromeSwitchPreferenceCompat) findPreference(PREF_PREFETCHING_ENABLED); mPrefetchingEnabled.setOnPreferenceChangeListener(this); updatePrefetchSummary(); @@ -53,6 +52,19 @@ } @Override + public void onDisplayPreferenceDialog(Preference preference) { + if (preference instanceof DownloadLocationPreference) { + DownloadLocationPreferenceDialog dialogFragment = + DownloadLocationPreferenceDialog.newInstance( + (DownloadLocationPreference) preference); + dialogFragment.setTargetFragment(this, 0); + dialogFragment.show(getFragmentManager(), DownloadLocationPreferenceDialog.TAG); + } else { + super.onDisplayPreferenceDialog(preference); + } + } + + @Override public void onResume() { super.onResume(); updateData();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java index ee0a798..d08b04a8f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java
@@ -45,9 +45,12 @@ private IncognitoStateProvider mIncognitoStateProvider; private @Nullable IncognitoToggleTabLayout mIncognitoToggleTabLayout; + // The following view is used as a variation for mNewTabImageButton. When this view is showing + // as the button for creating new tab, the incognito toggle is hidden. + private @Nullable View mNewTabViewButton; // The following three buttons are not used when Duet is enabled. - private @Nullable NewTabButton mNewTabButton; + private @Nullable NewTabButton mNewTabImageButton; private @Nullable MenuButton mMenuButton; private @Nullable ToggleTabStackButton mToggleTabStackButton; @@ -68,16 +71,17 @@ public void onFinishInflate() { super.onFinishInflate(); - mNewTabButton = findViewById(R.id.new_tab_button); + mNewTabImageButton = findViewById(R.id.new_tab_button); + mNewTabViewButton = findViewById(R.id.new_tab_view); mMenuButton = findViewById(R.id.menu_button_wrapper); mToggleTabStackButton = findViewById(R.id.tab_switcher_mode_tab_switcher_button); boolean isBottomToolbarEnabled = FeatureUtilities.isBottomToolbarEnabled(); if (isBottomToolbarEnabled) { - UiUtils.removeViewFromParent(mNewTabButton); - mNewTabButton.destroy(); - mNewTabButton = null; + UiUtils.removeViewFromParent(mNewTabImageButton); + mNewTabImageButton.destroy(); + mNewTabImageButton = null; UiUtils.removeViewFromParent(mMenuButton); mMenuButton.destroy(); @@ -86,13 +90,17 @@ UiUtils.removeViewFromParent(mToggleTabStackButton); mToggleTabStackButton.destroy(); mToggleTabStackButton = null; + + UiUtils.removeViewFromParent(mNewTabViewButton); + mNewTabImageButton = null; } else { // TODO(twellington): Try to make NewTabButton responsible for handling its own clicks. // TabSwitcherBottomToolbarCoordinator also uses NewTabButton and // sets an onClickListener directly on NewTabButton rather than // acting as the click listener itself so the behavior between this // class and the bottom toolbar will need to be unified. - mNewTabButton.setOnClickListener(this); + mNewTabImageButton.setOnClickListener(this); + mNewTabViewButton.setOnClickListener(this); } if ((usingHorizontalTabSwitcher() || FeatureUtilities.isGridTabSwitcherEnabled()) @@ -103,7 +111,7 @@ @Override public void onClick(View v) { - if (mNewTabButton == v) { + if (mNewTabImageButton == v || mNewTabViewButton == v) { v.setEnabled(false); if (mNewTabListener != null) mNewTabListener.onClick(v); } @@ -117,9 +125,9 @@ mIncognitoStateProvider.removeObserver(this); mIncognitoStateProvider = null; } - if (mNewTabButton != null) { - mNewTabButton.destroy(); - mNewTabButton = null; + if (mNewTabImageButton != null) { + mNewTabImageButton.destroy(); + mNewTabImageButton = null; } if (mToggleTabStackButton != null) { mToggleTabStackButton.destroy(); @@ -165,7 +173,8 @@ if (!inTabSwitcherMode) { if (mIncognitoToggleTabLayout != null) mIncognitoToggleTabLayout.setClickable(false); } else { - if (mNewTabButton != null) mNewTabButton.setEnabled(true); + if (mNewTabImageButton != null) mNewTabImageButton.setEnabled(true); + if (mNewTabViewButton != null) mNewTabViewButton.setEnabled(true); if (ReturnToChromeExperimentsUtil.shouldShowOmniboxOnTabSwitcher()) { // Bump this down by the height of the toolbar so the omnibox can be visible. MarginLayoutParams params = (MarginLayoutParams) getLayoutParams(); @@ -257,18 +266,20 @@ mIncognitoStateProvider = provider; mIncognitoStateProvider.addIncognitoStateObserverAndTrigger(this); - if (mNewTabButton != null) mNewTabButton.setIncognitoStateProvider(mIncognitoStateProvider); + if (mNewTabImageButton != null) + mNewTabImageButton.setIncognitoStateProvider(mIncognitoStateProvider); } @Override public void onIncognitoStateChanged(boolean isIncognito) { mIsIncognito = isIncognito; updatePrimaryColorAndTint(); + updateIncognitoToggleTabsVisibility(); } /** Called when accessibility status changes. */ void onAccessibilityStatusChanged(boolean enabled) { - if (mNewTabButton != null) mNewTabButton.onAccessibilityStatusChanged(); + if (mNewTabImageButton != null) mNewTabImageButton.onAccessibilityStatusChanged(); if (ChromeFeatureList.isEnabled(ChromeFeatureList.HORIZONTAL_TAB_SWITCHER_ANDROID) && PrefServiceBridge.getInstance().isIncognitoModeEnabled()) { @@ -367,4 +378,24 @@ setIncognitoToggleVisibility(showIncognitoToggle); setToggleTabStackButtonVisibility(!showIncognitoToggle); } + + private void updateIncognitoToggleTabsVisibility() { + if (!FeatureUtilities.isGridTabSwitcherEnabled() || !ChromeFeatureList.isInitialized() + || !ChromeFeatureList + .getFieldTrialParamByFeature(ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, + "tab_grid_layout_android_new_tab") + .equals("NewTabVariation") + || ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_DUET)) { + return; + } + boolean hasIncognitoTabs = + mTabModelSelector.getTabModelFilterProvider().getTabModelFilter(true).getCount() + > 0; + mIncognitoToggleTabLayout.setVisibility(hasIncognitoTabs ? VISIBLE : GONE); + if (mNewTabImageButton != null && mNewTabViewButton != null) { + // Only show one new tab variation at a time. + mNewTabImageButton.setVisibility(hasIncognitoTabs ? VISIBLE : GONE); + mNewTabViewButton.setVisibility(hasIncognitoTabs ? GONE : VISIBLE); + } + } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml b/chrome/android/javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml deleted file mode 100644 index 31c50061..0000000 --- a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/AndroidManifest.xml +++ /dev/null
@@ -1,26 +0,0 @@ -<!-- - * Copyright 2019 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. ---> - -<manifest - xmlns:android="http://schemas.android.com/apk/res/android" - package="org.chromium.chrome.test.smoke"> - - <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" /> - - <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /> - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> - - <!-- We add an application tag here just so that we can indicate that this - package needs to link against the android.test library, which is - needed when building test cases. --> - <application> - <uses-library android:name="android.test.runner" /> - </application> - - <instrumentation android:name="org.chromium.base.test.BaseChromiumAndroidJUnitRunner" - android:targetPackage="org.chromium.chrome" - android:label="Runner for org.chromium.chrome.test.smoke"/> -</manifest>
diff --git a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java b/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java deleted file mode 100644 index 28864c42..0000000 --- a/chrome/android/javatests/src/org/chromium/chrome/test/smoke/ChromeSmokeTest.java +++ /dev/null
@@ -1,64 +0,0 @@ -// Copyright 2019 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. - -package org.chromium.chrome.test.smoke; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.support.test.uiautomator.UiDevice; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.chromium.base.test.BaseJUnit4ClassRunner; -import org.chromium.base.test.util.ScalableTimeout; -import org.chromium.chrome.test.pagecontroller.utils.IUi2Locator; -import org.chromium.chrome.test.pagecontroller.utils.Ui2Locators; -import org.chromium.content_public.browser.test.util.CriteriaHelper; - -/** - * Smoke Test for Chrome Android. - */ -@SmallTest -@RunWith(BaseJUnit4ClassRunner.class) -public class ChromeSmokeTest { - private static final String PACKAGE_NAME_ARG = "PackageUnderTest"; - private static final String DATA_URL = "data:,Hello"; - private static final String ACTIVITY_NAME = "org.chromium.chrome.browser.ChromeTabbedActivity"; - - public final long mTimeout = ScalableTimeout.scaleTimeout(5000L); - public static final long UI_CHECK_INTERVAL = 200L; - private String mPackageName; - - @Before - public void setUp() { - // TODO (aluo): Adjust this as needed according to cl 1585142 - mPackageName = InstrumentationRegistry.getArguments().getString(PACKAGE_NAME_ARG); - if (mPackageName == null) { - mPackageName = InstrumentationRegistry.getTargetContext().getPackageName(); - } - } - - @Test - public void testHello() { - Context context = InstrumentationRegistry.getContext(); - final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(DATA_URL)); - intent.setComponent(new ComponentName(mPackageName, ACTIVITY_NAME)); - context.startActivity(intent); - - UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); - - // TODO (aluo): Check that the data url is loaded after pagecontroller lands. - IUi2Locator locatorChrome = Ui2Locators.withPackageName(mPackageName); - - CriteriaHelper.pollInstrumentationThread(() -> { - return locatorChrome.locateOne(device) != null; - }, mPackageName + " should have loaded", mTimeout, UI_CHECK_INTERVAL); - } -}
diff --git a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java index 02fbd1a..3dfdb56 100644 --- a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java +++ b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/dialog/TouchlessDialogPresenter.java
@@ -196,7 +196,10 @@ model.set(DialogListItemProperties.CLICK_LISTENER, listener); view.setOnClickListener(listener); } else { - view.setOnClickListener(model.get(DialogListItemProperties.CLICK_LISTENER)); + ClickThrottlingListener listener = (ClickThrottlingListener) model.get( + DialogListItemProperties.CLICK_LISTENER); + listener.resetWasClicked(); + view.setOnClickListener(listener); } } else if (DialogListItemProperties.MULTI_CLICKABLE == propertyKey) { View.OnClickListener listener = model.get(DialogListItemProperties.CLICK_LISTENER); @@ -225,6 +228,10 @@ mIsMultiClickable = isMultiClickable; } + private void resetWasClicked() { + mWasClicked = false; + } + @Override public void onClick(View view) { if (mOnClickListener == null) return;
diff --git a/chrome/android/webapk/shell_apk/proguard.flags b/chrome/android/webapk/shell_apk/proguard.flags index 0d1ec83..d789b0af 100644 --- a/chrome/android/webapk/shell_apk/proguard.flags +++ b/chrome/android/webapk/shell_apk/proguard.flags
@@ -1,2 +1,12 @@ - -keep class org.chromium.webapk.shell_apk.ShareActivity* + +# Classes which are referenced in the old-style or new-style AndroidManifest +# but not both. The server currently uses the same classes.dex for both +# old-style and new-style WebAPKs. +-keep class org.chromium.webapk.shell_apk.MainActivity +-keep class org.chromium.webapk.shell_apk.TransparentLauncherActivity +-keep class org.chromium.webapk.shell_apk.h2o.H2OMainActivity +-keep class org.chromium.webapk.shell_apk.h2o.H2OOpaqueMainActivity +-keep class org.chromium.webapk.shell_apk.h2o.H2OTransparentLauncherActivity +-keep class org.chromium.webapk.shell_apk.h2o.SplashActivity +-keep class org.chromium.webapk.shell_apk.h2o.SplashContentProvider
diff --git a/chrome/app/chrome_content_browser_overlay_manifest.cc b/chrome/app/chrome_content_browser_overlay_manifest.cc index 346c4ab..5d342de 100644 --- a/chrome/app/chrome_content_browser_overlay_manifest.cc +++ b/chrome/app/chrome_content_browser_overlay_manifest.cc
@@ -105,9 +105,6 @@ .ExposeCapability("gpu", service_manager::Manifest::InterfaceList< metrics::mojom::CallStackProfileCollector>()) - .ExposeCapability("profiling_client", - service_manager::Manifest::InterfaceList< - heap_profiling::mojom::ProfilingClient>()) .ExposeCapability("renderer", service_manager::Manifest::InterfaceList< chrome::mojom::AvailableOfflineContentProvider, @@ -128,7 +125,6 @@ // Only used in the classic Ash case .RequireCapability("chrome", "input_device_controller") .RequireCapability("chrome_printing", "converter") - .RequireCapability("content_system", "profiling_client") .RequireCapability("cups_ipp_parser", "ipp_parser") .RequireCapability("device", "device:fingerprint") .RequireCapability("device", "device:geolocation_config")
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index be39e9e4..03e8169 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -5084,10 +5084,10 @@ <message name="IDS_NTP_CUSTOMIZE_MOST_VISITED_LABEL" desc="The label for the option to show most visited sites in the customization menu on the New Tab Page"> Most visited sites </message> - <message name="IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC" desc="The description for the option to show user selected shortcuts in the customization menu on the New Tab Page"> + <message name="IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC" desc="The description for the option to show user selected shortcuts in the customization menu on the New Tab Page"> Shortcuts are suggested based on websites you visit often </message> - <message name="IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC" desc="The description for the option to show most visited sites in the customization menu on the New Tab Page"> + <message name="IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC" desc="The description for the option to show most visited sites in the customization menu on the New Tab Page"> Shortcuts are curated by you </message>
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1 index 55ecbc7a..1b6cc0a 100644 --- a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1 +++ b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MOST_VISITED_DESC.png.sha1
@@ -1 +1 @@ -2e0e726ed31b1006a9574ef4ecbd2c8ef151dca0 \ No newline at end of file +dd201f093ba4c337c151941ded6b348ce1ed163d \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1 index 55ecbc7a..1b6cc0a 100644 --- a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1 +++ b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_MY_SHORTCUTS_DESC.png.sha1
@@ -1 +1 @@ -2e0e726ed31b1006a9574ef4ecbd2c8ef151dca0 \ No newline at end of file +dd201f093ba4c337c151941ded6b348ce1ed163d \ No newline at end of file
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index 3b3fbe33..d5d55ac4 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -2063,6 +2063,8 @@ <message name="IDS_SETTINGS_INTERNET_NETWORK_PROXY_PORT" desc="Settings > Internet > Network details: Label for proxy port input."> Port </message> + + <!-- Settings > Internet > SIM lock/unlock dialog --> <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_CHANGE_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for buton to change the PIN."> Change PIN </message> @@ -2111,6 +2113,22 @@ <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ENTER_PUK" desc="Settings > Internet > Network details > Lock/unlock SIM card: Label for entering a PUK."> Enter PIN Unlock Key </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an incorrect PIN was entered."> + Incorrect PIN. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>. + </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PUK" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an incorrect PUK was entered."> + Incorrect PUK. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>. + </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PIN" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an invalid PIN was entered."> + Invalid PIN. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>. + </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PUK" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when an invalid PUK was entered."> + Invalid PUK. Retries left: <ph name="RETRIES">$1<ex>3</ex></ph>. + </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_PIN_MISMATCH" desc="Settings > Internet > Network details > Lock/unlock SIM card: Message when PIN values do not match."> + PIN values do not match. + </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_PREFER" desc="Settings > Internet > Network details: Label for the checkbox determining whether a network is preferred over other networks."> Prefer this network </message> @@ -4697,8 +4715,14 @@ <message name="IDS_SETTINGS_SYSTEM_HARDWARE_ACCELERATION_LABEL" desc="Label for the checkbox that forces Chrome to render via hardware acceleration (GPU) when available."> Use hardware acceleration when available </message> - <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL" desc="Label for the control that opens a user's network proxy settings."> - Open proxy settings + <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL" desc="Label for the control that opens the system network proxy settings. These settings apply to the entire computer."> + Open your computer's proxy settings + </message> + <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_EXTENSION_LABEL" desc="Non-interactive label that describes when Chrome's proxy settings are overwritten by an extension. This is used in place of IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL above."> + <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> is using proxy settings from an extension + </message> + <message name="IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_POLICY_LABEL" desc="Non-interactive label that describes when Chrome's proxy settings are overwritten by policy. This is used in place of IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_LABEL above."> + <ph name="IDS_SHORT_PRODUCT_NAME">$1<ex>Chrome</ex></ph> is using proxy settings from your administrator </message> </if>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 6c6e4ec..187e155c 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -772,8 +772,6 @@ "metrics/incognito_observer.h", "metrics/jumplist_metrics_win.cc", "metrics/jumplist_metrics_win.h", - "metrics/live_tab_count_metrics.cc", - "metrics/live_tab_count_metrics.h", "metrics/metrics_memory_details.cc", "metrics/metrics_memory_details.h", "metrics/metrics_reporting_state.cc", @@ -794,6 +792,8 @@ "metrics/sampling_metrics_provider.h", "metrics/subprocess_metrics_provider.cc", "metrics/subprocess_metrics_provider.h", + "metrics/tab_count_metrics.cc", + "metrics/tab_count_metrics.h", "metrics/tab_footprint_aggregator.cc", "metrics/tab_footprint_aggregator.h", "metrics/testing/metrics_reporting_pref_helper.cc", @@ -1927,7 +1927,6 @@ "//components/language/core/common", "//components/leveldb_proto", "//components/leveldb_proto/content:factory", - "//components/live_tab_count_metrics", "//components/metrics:call_stack_profile_collector", "//components/metrics:component_metrics", "//components/metrics:gpu", @@ -2003,6 +2002,7 @@ "//components/sync_bookmarks", "//components/sync_preferences", "//components/sync_sessions", + "//components/tab_count_metrics", "//components/tracing:startup_tracing", "//components/translate/content/browser", "//components/translate/core/browser",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index bb6e5d5..b79a4cd 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -995,6 +995,16 @@ }; #endif // OS_ANDROID +#if defined(OS_ANDROID) +const FeatureEntry::FeatureParam kTabGridLayoutAndroid_NewTabVariation[] = { + {"tab_grid_layout_android_new_tab", "NewTabVariation"}}; + +const FeatureEntry::FeatureVariation kTabGridLayoutAndroidVariations[] = { + {"New Tab Variation", kTabGridLayoutAndroid_NewTabVariation, + base::size(kTabGridLayoutAndroid_NewTabVariation), nullptr}, +}; +#endif // OS_ANDROID + const FeatureEntry::FeatureParam kVizHitTestDrawQuadEnabled[] = { {"provider", "draw_quad"}}; @@ -2966,7 +2976,9 @@ {"enable-tab-grid-layout", flag_descriptions::kTabGridLayoutAndroidName, flag_descriptions::kTabGridLayoutAndroidDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kTabGridLayoutAndroid)}, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabGridLayoutAndroid, + kTabGridLayoutAndroidVariations, + "TabGridLayoutAndroid")}, {"enable-tab-groups", flag_descriptions::kTabGroupsAndroidName, flag_descriptions::kTabGroupsAndroidDescription, kOsAndroid,
diff --git a/chrome/browser/apps/guest_view/app_view_browsertest.cc b/chrome/browser/apps/guest_view/app_view_browsertest.cc index 00e553e..aeea5088 100644 --- a/chrome/browser/apps/guest_view/app_view_browsertest.cc +++ b/chrome/browser/apps/guest_view/app_view_browsertest.cc
@@ -19,7 +19,6 @@ #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test_utils.h" -#include "content/public/test/no_renderer_crashes_assertion.h" #include "content/public/test/test_utils.h" #include "extensions/browser/api/app_runtime/app_runtime_api.h" #include "extensions/browser/api/extensions_api_client.h" @@ -39,50 +38,6 @@ using guest_view::GuestViewManager; using guest_view::TestGuestViewManagerFactory; -namespace { - -class RenderProcessHostObserverForExit - : public content::RenderProcessHostObserver { - public: - explicit RenderProcessHostObserverForExit( - content::RenderProcessHost* observed_host) - : render_process_host_exited_(false), observed_host_(observed_host) { - observed_host->AddObserver(this); - } - - void WaitUntilRenderProcessHostKilled() { - if (render_process_host_exited_) - return; - message_loop_runner_ = new content::MessageLoopRunner; - message_loop_runner_->Run(); - } - - base::TerminationStatus termination_status() const { return status_; } - - private: - void RenderProcessExited( - content::RenderProcessHost* host, - const content::ChildProcessTerminationInfo& info) override { - DCHECK(observed_host_ == host); - render_process_host_exited_ = true; - status_ = info.status; - observed_host_->RemoveObserver(this); - if (message_loop_runner_.get()) { - message_loop_runner_->Quit(); - } - } - - bool render_process_host_exited_; - content::RenderProcessHost* observed_host_; - scoped_refptr<content::MessageLoopRunner> message_loop_runner_; - base::TerminationStatus status_; - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes_; - - DISALLOW_COPY_AND_ASSIGN(RenderProcessHostObserverForExit); -}; - -} // namespace - class AppViewTest : public extensions::PlatformAppBrowserTest { public: AppViewTest() { @@ -232,7 +187,9 @@ ->GetProcess(); // Monitor |bad_app|'s RenderProcessHost for its exiting. - RenderProcessHostObserverForExit exit_observer(bad_app_render_process_host); + content::RenderProcessHostWatcher exit_observer( + bad_app_render_process_host, + content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); // Choosing a |guest_instance_id| which does not exist. int invalid_guest_instance_id = @@ -242,7 +199,8 @@ extensions::AppViewGuest::CompletePendingRequest( browser()->profile(), GURL("about:blank"), invalid_guest_instance_id, bad_app->id(), bad_app_render_process_host); - exit_observer.WaitUntilRenderProcessHostKilled(); + exit_observer.Wait(); + EXPECT_FALSE(exit_observer.did_exit_normally()); } IN_PROC_BROWSER_TEST_F(AppViewTest, KillGuestCommunicatingWithWrongAppView) { @@ -266,10 +224,11 @@ // app sends a request to the host. int guest_instance_id = extensions::AppViewGuest::GetAllRegisteredInstanceIdsForTesting()[0]; - RenderProcessHostObserverForExit bad_app_obs( + content::RenderProcessHostWatcher bad_app_obs( extensions::ProcessManager::Get(browser()->profile()) ->GetBackgroundHostForExtension(bad_app->id()) - ->render_process_host()); + ->render_process_host(), + content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); std::unique_ptr<base::DictionaryValue> fake_embed_request_param( new base::DictionaryValue); fake_embed_request_param->SetInteger(appview::kGuestInstanceID, @@ -277,7 +236,8 @@ fake_embed_request_param->SetString(appview::kEmbedderID, host_app->id()); extensions::AppRuntimeEventRouter::DispatchOnEmbedRequestedEvent( browser()->profile(), std::move(fake_embed_request_param), bad_app); - bad_app_obs.WaitUntilRenderProcessHostKilled(); + bad_app_obs.Wait(); + EXPECT_FALSE(bad_app_obs.did_exit_normally()); // Now ask the guest to continue embedding. ASSERT_TRUE( ExecuteScript(extensions::ProcessManager::Get(browser()->profile())
diff --git a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc index dc3291c..4caa854 100644 --- a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc +++ b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.cc
@@ -116,12 +116,6 @@ return true; } -ui::NativeTheme::ColorId -AutofillKeyboardAccessoryAdapter::GetBackgroundColorIDForRow(int index) const { - DCHECK(controller_) << "Call OnSuggestionsChanged only from its owner!"; - return controller_->GetBackgroundColorIDForRow(OffsetIndexFor(index)); -} - void AutofillKeyboardAccessoryAdapter::SetSelectedLine( base::Optional<int> selected_line) { if (!controller_)
diff --git a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h index bfa8b4b..8ad5806 100644 --- a/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h +++ b/chrome/browser/autofill/autofill_keyboard_accessory_adapter.h
@@ -73,7 +73,6 @@ base::string16* title, base::string16* body) override; bool RemoveSuggestion(int index) override; - ui::NativeTheme::ColorId GetBackgroundColorIDForRow(int index) const override; void SetSelectedLine(base::Optional<int> selected_line) override; base::Optional<int> selected_line() const override; const AutofillPopupLayoutModel& layout_model() const override;
diff --git a/chrome/browser/autofill/mock_autofill_popup_controller.h b/chrome/browser/autofill/mock_autofill_popup_controller.h index 5d7f8b75..cde092f 100644 --- a/chrome/browser/autofill/mock_autofill_popup_controller.h +++ b/chrome/browser/autofill/mock_autofill_popup_controller.h
@@ -67,8 +67,6 @@ MOCK_METHOD3(GetRemovalConfirmationText, bool(int index, base::string16* title, base::string16* body)); MOCK_METHOD1(RemoveSuggestion, bool(int index)); - MOCK_CONST_METHOD1(GetBackgroundColorIDForRow, - ui::NativeTheme::ColorId(int index)); MOCK_METHOD1(SetSelectedLine, void(base::Optional<int> selected_line)); MOCK_CONST_METHOD0(selected_line, base::Optional<int>()); const autofill::AutofillPopupLayoutModel& layout_model() const override {
diff --git a/chrome/browser/chromeos/arc/tracing/arc_system_model.cc b/chrome/browser/chromeos/arc/tracing/arc_system_model.cc index 2e1e8f3..f83271c1 100644 --- a/chrome/browser/chromeos/arc/tracing/arc_system_model.cc +++ b/chrome/browser/chromeos/arc/tracing/arc_system_model.cc
@@ -134,6 +134,16 @@ memory_events_ = std::move(trimmed_memory_events); } +void ArcSystemModel::CloseRangeForValueEvents(uint64_t max_timestamp) { + std::map<ArcValueEvent::Type, std::pair<uint64_t, int>> last_timestamps; + for (const auto& it : memory_events_) + last_timestamps[it.type] = {it.timestamp, it.value}; + for (const auto& it : last_timestamps) { + if (it.second.first < max_timestamp) + memory_events_.emplace_back(max_timestamp, it.first, it.second.second); + } +} + void ArcSystemModel::CopyFrom(const ArcSystemModel& other) { thread_map_ = other.thread_map_; all_cpu_events_ = other.all_cpu_events_;
diff --git a/chrome/browser/chromeos/arc/tracing/arc_system_model.h b/chrome/browser/chromeos/arc/tracing/arc_system_model.h index d36ca80..5cf5c24a 100644 --- a/chrome/browser/chromeos/arc/tracing/arc_system_model.h +++ b/chrome/browser/chromeos/arc/tracing/arc_system_model.h
@@ -44,6 +44,10 @@ // in the model unchanged. void Trim(uint64_t trim_timestamp); + // Closes range for each value event type by extending the latest value till + // the |max_timestamp|. + void CloseRangeForValueEvents(uint64_t max_timestamp); + void CopyFrom(const ArcSystemModel& other); base::DictionaryValue Serialize() const; bool Load(const base::Value* root);
diff --git a/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc b/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc index 0576259..562b58c 100644 --- a/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc +++ b/chrome/browser/chromeos/arc/tracing/arc_system_model_unittest.cc
@@ -142,4 +142,27 @@ model.memory_events()[7]); } +TEST_F(ArcSystemModelTest, CloseRange) { + ArcSystemModel model; + + model.memory_events().emplace_back( + 0 /* timestamp */, ArcValueEvent::Type::kGpuFreq, 100 /* value */); + model.memory_events().emplace_back( + 0 /* timestamp */, ArcValueEvent::Type::kCpuTemp, 20 /* value */); + model.memory_events().emplace_back( + 100 /* timestamp */, ArcValueEvent::Type::kGpuFreq, 150 /* value */); + model.memory_events().emplace_back( + 200 /* timestamp */, ArcValueEvent::Type::kCpuTemp, 50 /* value */); + + EXPECT_EQ(4u, model.memory_events().size()); + + model.CloseRangeForValueEvents(200 /* timestamp */); + + // kGpuFreq is extended. + ASSERT_EQ(5u, model.memory_events().size()); + EXPECT_EQ(ArcValueEvent(200 /* timestamp */, ArcValueEvent::Type::kGpuFreq, + 150 /* value */), + model.memory_events().back()); +} + } // namespace arc
diff --git a/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc b/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc index c6e2ebf..fe77774 100644 --- a/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc +++ b/chrome/browser/chromeos/arc/tracing/arc_tracing_graphics_model.cc
@@ -1627,6 +1627,8 @@ NormalizeTimestamps(); + system_model_.CloseRangeForValueEvents(duration_ - 1 /* max_timestamp */); + return true; }
diff --git a/chrome/browser/chromeos/printing/printer_info.h b/chrome/browser/chromeos/printing/printer_info.h index 6821a6c..5fb1c9e 100644 --- a/chrome/browser/chromeos/printing/printer_info.h +++ b/chrome/browser/chromeos/printing/printer_info.h
@@ -9,7 +9,7 @@ #include <vector> #include "base/callback_forward.h" -#include "printing/backend/cups_jobs.h" +#include "printing/printer_query_result_chromeos.h" namespace chromeos {
diff --git a/chrome/browser/chromeos/printing/printer_info_cups.cc b/chrome/browser/chromeos/printing/printer_info_cups.cc index 3ec8254..2b9a6178 100644 --- a/chrome/browser/chromeos/printing/printer_info_cups.cc +++ b/chrome/browser/chromeos/printing/printer_info_cups.cc
@@ -16,6 +16,7 @@ #include "base/task/task_traits.h" #include "base/task_runner_util.h" #include "base/version.h" +#include "printing/backend/cups_jobs.h" namespace {
diff --git a/chrome/browser/devtools/DEPS b/chrome/browser/devtools/DEPS new file mode 100644 index 0000000..9253008 --- /dev/null +++ b/chrome/browser/devtools/DEPS
@@ -0,0 +1,4 @@ +include_rules = [ + # For converting between JSON and CBOR in devtools_session_encoding.cc. + "+third_party/inspector_protocol/encoding", +]
diff --git a/chrome/browser/devtools/chrome_devtools_session.cc b/chrome/browser/devtools/chrome_devtools_session.cc index ee7bf90..4b75e59 100644 --- a/chrome/browser/devtools/chrome_devtools_session.cc +++ b/chrome/browser/devtools/chrome_devtools_session.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/devtools/chrome_devtools_session.h" +#include <memory> +#include "base/strings/string_number_conversions.h" #include "chrome/browser/devtools/protocol/browser_handler.h" #include "chrome/browser/devtools/protocol/cast_handler.h" #include "chrome/browser/devtools/protocol/page_handler.h" @@ -11,11 +13,47 @@ #include "content/public/browser/devtools_agent_host.h" #include "content/public/browser/devtools_agent_host_client.h" #include "content/public/browser/devtools_manager_delegate.h" +#include "third_party/inspector_protocol/encoding/encoding.h" #if defined(OS_CHROMEOS) #include "chrome/browser/devtools/protocol/window_manager_handler.h" #endif +namespace { +// TODO(johannes): This is very similar to the code in +// content/browser/devtools/devtools_protocol_encoding. Once we have +// the error / status propagation story settled, move the common parts +// into a content public API. + +using ::inspector_protocol_encoding::span; +using ::inspector_protocol_encoding::SpanFrom; +using ::inspector_protocol_encoding::json::ConvertCBORToJSON; +using ::inspector_protocol_encoding::json::ConvertJSONToCBOR; +using IPEStatus = ::inspector_protocol_encoding::Status; + +// Platform allows us to inject the string<->double conversion +// routines from base:: into the inspector_protocol JSON parser / serializer. +class Platform : public ::inspector_protocol_encoding::json::Platform { + public: + bool StrToD(const char* str, double* result) const override { + return base::StringToDouble(str, result); + } + + // Prints |value| in a format suitable for JSON. + std::unique_ptr<char[]> DToStr(double value) const override { + std::string str = base::NumberToString(value); + std::unique_ptr<char[]> result(new char[str.size() + 1]); + memcpy(result.get(), str.c_str(), str.size() + 1); + return result; + } +}; + +IPEStatus ConvertCBORToJSON(span<uint8_t> cbor, std::string* json) { + Platform platform; + return ConvertCBORToJSON(platform, cbor, json); +} +} // namespace + ChromeDevToolsSession::ChromeDevToolsSession( content::DevToolsAgentHost* agent_host, content::DevToolsAgentHostClient* client) @@ -44,14 +82,6 @@ ChromeDevToolsSession::~ChromeDevToolsSession() = default; -void ChromeDevToolsSession::sendProtocolResponse( - int call_id, - std::unique_ptr<protocol::Serializable> message) { - pending_commands_.erase(call_id); - bool binary = client_->UsesBinaryProtocol(); - client_->DispatchProtocolMessage(agent_host_, message->serialize(binary)); -} - void ChromeDevToolsSession::HandleCommand( const std::string& method, const std::string& message, @@ -72,6 +102,37 @@ dispatcher_->dispatch(call_id, method, std::move(value), message); } +// The following methods handle responses or notifications coming from +// the browser to the client. +static void SendProtocolResponseOrNotification( + content::DevToolsAgentHostClient* client, + content::DevToolsAgentHost* agent_host, + std::unique_ptr<protocol::Serializable> message) { + std::string cbor = message->serialize(/*binary=*/true); + if (client->UsesBinaryProtocol()) { + client->DispatchProtocolMessage(agent_host, cbor); + return; + } + std::string json; + IPEStatus status = ConvertCBORToJSON(SpanFrom(cbor), &json); + LOG_IF(ERROR, !status.ok()) << status.ToASCIIString(); + client->DispatchProtocolMessage(agent_host, json); +} + +void ChromeDevToolsSession::sendProtocolResponse( + int call_id, + std::unique_ptr<protocol::Serializable> message) { + pending_commands_.erase(call_id); + SendProtocolResponseOrNotification(client_, agent_host_, std::move(message)); +} + +void ChromeDevToolsSession::sendProtocolNotification( + std::unique_ptr<protocol::Serializable> message) { + SendProtocolResponseOrNotification(client_, agent_host_, std::move(message)); +} + +void ChromeDevToolsSession::flushProtocolNotifications() {} + void ChromeDevToolsSession::fallThrough(int call_id, const std::string& method, const std::string& message) { @@ -79,11 +140,3 @@ pending_commands_.erase(call_id); std::move(callback).Run(message); } - -void ChromeDevToolsSession::sendProtocolNotification( - std::unique_ptr<protocol::Serializable> message) { - bool binary = client_->UsesBinaryProtocol(); - client_->DispatchProtocolMessage(agent_host_, message->serialize(binary)); -} - -void ChromeDevToolsSession::flushProtocolNotifications() {}
diff --git a/chrome/browser/download/download_commands.cc b/chrome/browser/download/download_commands.cc index e4544ca..b61b2f1 100644 --- a/chrome/browser/download/download_commands.cc +++ b/chrome/browser/download/download_commands.cc
@@ -94,7 +94,7 @@ // This method is called on the same thread as constructor (the UI thread). DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); scw.Reset(); if (!decoded_image.empty() && !decoded_image.isNull())
diff --git a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc index de1ed094..5705f21 100644 --- a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc +++ b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
@@ -54,7 +54,7 @@ // Reset the clipboard and kill dev tools when entering or exiting locked // fullscreen (security concerns). - ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardType::kCopyPaste); content::DevToolsAgentHost::DetachAllClients(); // Disable ARC while in the locked fullscreen mode.
diff --git a/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc b/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc index a7e8139..f78db23 100644 --- a/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc +++ b/chrome/browser/extensions/clipboard_extension_helper_chromeos.cc
@@ -110,7 +110,7 @@ void ClipboardExtensionHelper::OnImageDecoded(const SkBitmap& bitmap) { { - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); // Write the decoded image data to clipboard. if (!bitmap.empty() && !bitmap.isNull()) scw.WriteImage(bitmap);
diff --git a/chrome/browser/metrics/live_tab_count_metrics.h b/chrome/browser/metrics/live_tab_count_metrics.h deleted file mode 100644 index fc004b1..0000000 --- a/chrome/browser/metrics/live_tab_count_metrics.h +++ /dev/null
@@ -1,27 +0,0 @@ -// Copyright 2018 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. - -#ifndef CHROME_BROWSER_METRICS_LIVE_TAB_COUNT_METRICS_H_ -#define CHROME_BROWSER_METRICS_LIVE_TAB_COUNT_METRICS_H_ - -#include <stddef.h> - -// This contains functions for creating live tab count metrics that are specific -// to //chrome/browser. All bucket-related and process-independent code should -// live in //components/live_tab_count_metrics. -namespace live_tab_count_metrics { - -// Returns the current number of live tabs in the browser. A tab is considered -// to be alive if it is associated with the tab UI (i.e. tabstrip), and it is -// either loading or loaded. This excludes crashed or discarded tabs. -// -// Must be called on the UI thread. This function is implemented using -// TabLoadTracker, and so it is subject to TabLoadTracker's threading rules. -// Accessing TabLoadTracker must be done from the sequence to which it is bound, -// which is meant to be the UI thread. -size_t LiveTabCount(); - -} // namespace live_tab_count_metrics - -#endif // CHROME_BROWSER_METRICS_LIVE_TAB_COUNT_METRICS_H_
diff --git a/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc b/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc index 4ef0524..b818ece 100644 --- a/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc +++ b/chrome/browser/metrics/oom/out_of_memory_reporter_browsertest.cc
@@ -60,7 +60,6 @@ #define MAYBE_MemoryExhaust MemoryExhaust #endif IN_PROC_BROWSER_TEST_F(OutOfMemoryReporterBrowserTest, MAYBE_MemoryExhaust) { - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; content::WebContents* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); @@ -71,6 +70,8 @@ // Careful, this doesn't actually commit the navigation. So, navigating to // this URL will cause an OOM associated with the previous committed URL. + content::ScopedAllowRendererCrashes allow_renderer_crashes( + browser()->tab_strip_model()->GetActiveWebContents()); ui_test_utils::NavigateToURL(browser(), GURL(content::kChromeUIMemoryExhaustURL)); EXPECT_EQ(crash_url, last_oom_url_.value());
diff --git a/chrome/browser/metrics/perf/heap_collector.cc b/chrome/browser/metrics/perf/heap_collector.cc index b0a07b3..8556f58 100644 --- a/chrome/browser/metrics/perf/heap_collector.cc +++ b/chrome/browser/metrics/perf/heap_collector.cc
@@ -249,7 +249,8 @@ : MetricCollector(kHeapCollectorName), sampling_period_bytes_(kHeapSamplingIntervalBytes), mode_(mode), - is_enabled_(false) { + is_enabled_(false), + weak_factory_(this) { BrowserList::AddObserver(this); if (mode_ == HeapCollectionMode::kShimLayer) { @@ -344,6 +345,10 @@ base::TimeDelta::FromSeconds(kRestoreSessionMaxDelaySec.Get()); } +base::WeakPtr<MetricCollector> HeapCollector::GetWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + bool HeapCollector::ShouldCollect() const { // Do not collect further data if we've already collected a substantial amount // of data, as indicated by |kCachedHeapDataProtobufSizeThreshold|.
diff --git a/chrome/browser/metrics/perf/heap_collector.h b/chrome/browser/metrics/perf/heap_collector.h index 843f714..6494c1e 100644 --- a/chrome/browser/metrics/perf/heap_collector.h +++ b/chrome/browser/metrics/perf/heap_collector.h
@@ -51,6 +51,7 @@ protected: // MetricCollector: + base::WeakPtr<MetricCollector> GetWeakPtr() override; bool ShouldCollect() const override; void CollectProfile(std::unique_ptr<SampledProfile> sampled_profile) override; @@ -92,6 +93,8 @@ // The collector state. bool is_enabled_; + base::WeakPtrFactory<HeapCollector> weak_factory_; + DISALLOW_COPY_AND_ASSIGN(HeapCollector); };
diff --git a/chrome/browser/metrics/perf/metric_collector.cc b/chrome/browser/metrics/perf/metric_collector.cc index d1f5030a..66fa361 100644 --- a/chrome/browser/metrics/perf/metric_collector.cc +++ b/chrome/browser/metrics/perf/metric_collector.cc
@@ -136,7 +136,7 @@ RandomTimeDelta(resume_params.max_collection_delay); timer_.Start(FROM_HERE, collection_delay, base::BindOnce(&MetricCollector::CollectPerfDataAfterResume, - AsWeakPtr(), sleep_duration, collection_delay)); + GetWeakPtr(), sleep_duration, collection_delay)); } void MetricCollector::CollectPerfDataAfterResume( @@ -182,7 +182,7 @@ timer_.Start( FROM_HERE, collection_delay, base::BindOnce(&MetricCollector::CollectPerfDataAfterSessionRestore, - AsWeakPtr(), collection_delay, num_tabs_restored)); + GetWeakPtr(), collection_delay, num_tabs_restored)); } void MetricCollector::CollectPerfDataAfterSessionRestore( @@ -222,8 +222,9 @@ if (scheduled_time < now) scheduled_time = now; - timer_.Start(FROM_HERE, scheduled_time - now, this, - &MetricCollector::DoPeriodicCollection); + timer_.Start( + FROM_HERE, scheduled_time - now, + base::BindOnce(&MetricCollector::DoPeriodicCollection, GetWeakPtr())); // Update the profiling interval tracker to the start of the next interval. next_profiling_interval_start_ = interval_end;
diff --git a/chrome/browser/metrics/perf/metric_collector.h b/chrome/browser/metrics/perf/metric_collector.h index 2e0b3de..953e4087 100644 --- a/chrome/browser/metrics/perf/metric_collector.h +++ b/chrome/browser/metrics/perf/metric_collector.h
@@ -21,9 +21,8 @@ class SampledProfile; // Provides a common interface for metric collectors with custom trigger -// definitions. Extends base::SupportWeakPtr to pass around the "this" -// pointer across threads safely. -class MetricCollector : public base::SupportsWeakPtr<MetricCollector> { +// definitions. +class MetricCollector { public: explicit MetricCollector(const std::string& name); explicit MetricCollector(const std::string& name, @@ -76,6 +75,9 @@ NUM_OUTCOMES }; + // Returns a WeakPtr to this instance. + virtual base::WeakPtr<MetricCollector> GetWeakPtr() = 0; + // Saves the given outcome to the uma histogram associated with the collector. void AddToUmaHistogram(CollectionAttemptStatus outcome) const;
diff --git a/chrome/browser/metrics/perf/metric_collector_unittest.cc b/chrome/browser/metrics/perf/metric_collector_unittest.cc index 6f902ac4..5120fb9 100644 --- a/chrome/browser/metrics/perf/metric_collector_unittest.cc +++ b/chrome/browser/metrics/perf/metric_collector_unittest.cc
@@ -97,9 +97,10 @@ // Allows access to some private methods for testing. class TestMetricCollector : public MetricCollector { public: - TestMetricCollector() : MetricCollector("UMA.CWP.TestData") {} + TestMetricCollector() : TestMetricCollector(CollectionParams()) {} explicit TestMetricCollector(const CollectionParams& collection_params) - : MetricCollector("UMA.CWP.TestData", collection_params) {} + : MetricCollector("UMA.CWP.TestData", collection_params), + weak_factory_(this) {} void CollectProfile( std::unique_ptr<SampledProfile> sampled_profile) override { @@ -109,6 +110,10 @@ perf_data_proto.SerializeAsString()); } + base::WeakPtr<MetricCollector> GetWeakPtr() override { + return weak_factory_.GetWeakPtr(); + } + using MetricCollector::collection_params; using MetricCollector::login_time; using MetricCollector::PerfProtoType; @@ -119,6 +124,8 @@ private: std::vector<SampledProfile> stored_profiles_; + base::WeakPtrFactory<TestMetricCollector> weak_factory_; + DISALLOW_COPY_AND_ASSIGN(TestMetricCollector); };
diff --git a/chrome/browser/metrics/perf/perf_events_collector.cc b/chrome/browser/metrics/perf/perf_events_collector.cc index 4991a0c..2b97998 100644 --- a/chrome/browser/metrics/perf/perf_events_collector.cc +++ b/chrome/browser/metrics/perf/perf_events_collector.cc
@@ -424,6 +424,10 @@ DCHECK(posted); } +base::WeakPtr<MetricCollector> PerfCollector::GetWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + bool PerfCollector::ShouldCollect() const { // Only allow one active collection. if (perf_output_call_) {
diff --git a/chrome/browser/metrics/perf/perf_events_collector.h b/chrome/browser/metrics/perf/perf_events_collector.h index 8e7ef0a..aadf0fa 100644 --- a/chrome/browser/metrics/perf/perf_events_collector.h +++ b/chrome/browser/metrics/perf/perf_events_collector.h
@@ -48,6 +48,7 @@ const std::string& perf_stdout); // MetricCollector: + base::WeakPtr<MetricCollector> GetWeakPtr() override; bool ShouldCollect() const override; void CollectProfile(std::unique_ptr<SampledProfile> sampled_profile) override;
diff --git a/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc b/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc index c07bfaf..11821d1 100644 --- a/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc +++ b/chrome/browser/metrics/perf/profile_provider_chromeos_unittest.cc
@@ -61,9 +61,10 @@ template <int TSTAMP> class TestMetricCollector : public MetricCollector { public: - TestMetricCollector() = default; + TestMetricCollector() : TestMetricCollector(CollectionParams()) {} explicit TestMetricCollector(const CollectionParams& collection_params) - : MetricCollector("UMA.CWP.TestData", collection_params) {} + : MetricCollector("UMA.CWP.TestData", collection_params), + weak_factory_(this) {} void CollectProfile( std::unique_ptr<SampledProfile> sampled_profile) override { @@ -73,7 +74,13 @@ perf_data_proto.SerializeAsString()); } + base::WeakPtr<MetricCollector> GetWeakPtr() override { + return weak_factory_.GetWeakPtr(); + } + private: + base::WeakPtrFactory<TestMetricCollector> weak_factory_; + DISALLOW_COPY_AND_ASSIGN(TestMetricCollector); };
diff --git a/chrome/browser/metrics/live_tab_count_metrics.cc b/chrome/browser/metrics/tab_count_metrics.cc similarity index 63% rename from chrome/browser/metrics/live_tab_count_metrics.cc rename to chrome/browser/metrics/tab_count_metrics.cc index 95f3cb9..b2e6434 100644 --- a/chrome/browser/metrics/live_tab_count_metrics.cc +++ b/chrome/browser/metrics/tab_count_metrics.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/metrics/live_tab_count_metrics.h" +#include "chrome/browser/metrics/tab_count_metrics.h" #include "chrome/browser/resource_coordinator/tab_load_tracker.h" #include "content/public/browser/browser_thread.h" -namespace live_tab_count_metrics { +namespace tab_count_metrics { size_t LiveTabCount() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -17,4 +17,11 @@ tab_load_tracker->GetLoadedUiTabCount(); } -} // namespace live_tab_count_metrics +size_t TabCount() { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + + auto* tab_load_tracker = resource_coordinator::TabLoadTracker::Get(); + return tab_load_tracker->GetUiTabCount(); +} + +} // namespace tab_count_metrics
diff --git a/chrome/browser/metrics/tab_count_metrics.h b/chrome/browser/metrics/tab_count_metrics.h new file mode 100644 index 0000000..b80162bb --- /dev/null +++ b/chrome/browser/metrics/tab_count_metrics.h
@@ -0,0 +1,36 @@ +// Copyright 2018 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. + +#ifndef CHROME_BROWSER_METRICS_TAB_COUNT_METRICS_H_ +#define CHROME_BROWSER_METRICS_TAB_COUNT_METRICS_H_ + +#include <stddef.h> + +// This contains functions for creating tab count metrics that are specific +// to //chrome/browser. All bucket-related and process-independent code should +// live in //components/tab_count_metrics. +namespace tab_count_metrics { + +// Returns the current number of live tabs in the browser. A tab is considered +// to be alive if it is associated with the tab UI (i.e. tabstrip), and it is +// either loading or loaded. This excludes crashed or discarded tabs. +// +// Must be called on the UI thread. This function is implemented using +// TabLoadTracker, and so it is subject to TabLoadTracker's threading rules. +// Accessing TabLoadTracker must be done from the sequence to which it is bound, +// which is meant to be the UI thread. +size_t LiveTabCount(); + +// Returns the current number of tabs in the browser. This includes unloaded, +// loading, and loaded tabs. +// +// Must be called on the UI thread. This function is implemented using +// TabLoadTracker, and so it is subject to TabLoadTracker's threading rules. +// Accessing TabLoadTracker must be done from the sequence to which it is bound, +// which is meant to be the UI thread. +size_t TabCount(); + +} // namespace tab_count_metrics + +#endif // CHROME_BROWSER_METRICS_TAB_COUNT_METRICS_H_
diff --git a/chrome/browser/net/reporting_browsertest.cc b/chrome/browser/net/reporting_browsertest.cc index 9a28209..154afdd 100644 --- a/chrome/browser/net/reporting_browsertest.cc +++ b/chrome/browser/net/reporting_browsertest.cc
@@ -203,7 +203,7 @@ navigation_observer.Wait(); // Simulate a crash on the page. - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes allow_renderer_crashes(contents); contents->GetController().LoadURL(GURL(content::kChromeUICrashURL), content::Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); @@ -243,7 +243,7 @@ navigation_observer.Wait(); // Simulate the page being killed due to being unresponsive. - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes allow_renderer_crashes(contents); contents->GetMainFrame()->GetProcess()->Shutdown(content::RESULT_CODE_HUNG); upload_response()->WaitForRequest();
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc index 0558944..603a439 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc +++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
@@ -6,6 +6,7 @@ #include <algorithm> #include <map> +#include <unordered_set> #include "base/bind.h" #include "base/guid.h" @@ -27,8 +28,13 @@ public: using Store = std::unique_ptr<CollectionStore<NotificationEntry>>; - ScheduledNotificationManagerImpl(Store store) - : store_(std::move(store)), delegate_(nullptr), weak_ptr_factory_(this) {} + ScheduledNotificationManagerImpl( + Store store, + const std::vector<SchedulerClientType>& clients) + : store_(std::move(store)), + clients_(clients.begin(), clients.end()), + delegate_(nullptr), + weak_ptr_factory_(this) {} private: void Init(Delegate* delegate, InitCallback callback) override { @@ -45,7 +51,10 @@ DCHECK(notification_params); std::string guid = notification_params->guid; DCHECK(!guid.empty()); - if (notifications_.find(guid) != notifications_.end()) { + auto type = notification_params->type; + + if (!clients_.count(type) || + (notifications_.count(type) && notifications_[type].count(guid))) { // TODO(xingliu): Report duplicate guid failure. return; } @@ -56,7 +65,7 @@ std::move(notification_params->notification_data); entry->schedule_params = std::move(notification_params->schedule_params); auto* entry_ptr = entry.get(); - notifications_.emplace(guid, std::move(entry)); + notifications_[type][guid] = std::move(entry); store_->Add( guid, *entry_ptr, base::BindOnce(&ScheduledNotificationManagerImpl::OnNotificationAdded, @@ -64,28 +73,37 @@ } void DisplayNotification(const std::string& guid) override { - auto it = notifications_.find(guid); - if (it == notifications_.end()) + std::unique_ptr<NotificationEntry> entry; + for (auto it = notifications_.begin(); it != notifications_.end(); it++) { + if (it->second.count(guid)) + entry = std::move(it->second[guid]); + } + // TODO(hesen): Inform delegate failure of finding the data. + if (!entry) return; - // Move the entry to delegate, and delete it from the storage. - auto notification_entry = std::move(it->second); - notifications_.erase(guid); + notifications_[entry->type].erase(entry->guid); + if (notifications_[entry->type].empty()) + notifications_.erase(entry->type); + store_->Delete( guid, base::BindOnce(&ScheduledNotificationManagerImpl::OnNotificationDeleted, weak_ptr_factory_.GetWeakPtr())); + if (delegate_) - delegate_->DisplayNotification(std::move(notification_entry)); + delegate_->DisplayNotification(std::move(entry)); } void GetAllNotifications(Notifications* notifications) override { DCHECK(notifications); notifications->clear(); - for (const auto& pair : notifications_) { - const auto& notif = pair.second; - DCHECK(notif); - (*notifications)[notif->type].emplace_back(notif.get()); + + for (auto it = notifications_.begin(); it != notifications_.end(); it++) { + auto type = it->first; + for (const auto& pair : it->second) { + (*notifications)[type].emplace_back(pair.second.get()); + } } // Sort by creation time for each notification type. @@ -95,17 +113,30 @@ } void DeleteNotifications(SchedulerClientType type) override { - auto it = notifications_.begin(); - while (it != notifications_.end()) { + if (!notifications_.count(type)) + return; + auto it = notifications_[type].begin(); + while (it != notifications_[type].end()) { const auto& entry = *it->second; ++it; - if (entry.type == type) { - store_->Delete( - entry.guid, - base::BindOnce( - &ScheduledNotificationManagerImpl::OnNotificationDeleted, - weak_ptr_factory_.GetWeakPtr())); - notifications_.erase(entry.guid); + store_->Delete( + entry.guid, + base::BindOnce( + &ScheduledNotificationManagerImpl::OnNotificationDeleted, + weak_ptr_factory_.GetWeakPtr())); + } + notifications_.erase(type); + } + + // Sync with registered clients. Delete entrties in |notifications_| if + // their clients are deprecated. + void SyncRegisteredClients() { + auto it = notifications_.begin(); + while (it != notifications_.end()) { + auto type = it->first; + it++; + if (!clients_.count(type)) { + DeleteNotifications(type); } } } @@ -120,9 +151,11 @@ for (auto it = entries.begin(); it != entries.end(); ++it) { std::string guid = (*it)->guid; - notifications_.emplace(guid, std::move(*it)); + auto type = (*it)->type; + if (clients_.count(type)) + notifications_[type].emplace(guid, std::move(*it)); } - + SyncRegisteredClients(); std::move(callback).Run(true); } @@ -131,20 +164,24 @@ void OnNotificationDeleted(bool success) { NOTIMPLEMENTED(); } Store store_; + const std::unordered_set<SchedulerClientType> clients_; Delegate* delegate_; - std::map<std::string, std::unique_ptr<NotificationEntry>> notifications_; + std::map<SchedulerClientType, + std::map<std::string, std::unique_ptr<NotificationEntry>>> + notifications_; base::WeakPtrFactory<ScheduledNotificationManagerImpl> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerImpl); }; - } // namespace // static std::unique_ptr<ScheduledNotificationManager> ScheduledNotificationManager::Create( - std::unique_ptr<CollectionStore<NotificationEntry>> store) { - return std::make_unique<ScheduledNotificationManagerImpl>(std::move(store)); + std::unique_ptr<CollectionStore<NotificationEntry>> store, + const std::vector<SchedulerClientType>& clients) { + return std::make_unique<ScheduledNotificationManagerImpl>(std::move(store), + clients); } ScheduledNotificationManager::ScheduledNotificationManager() = default;
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h index 3437053..c8f6d4b 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h +++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.h
@@ -42,7 +42,8 @@ // Creates the instance. static std::unique_ptr<ScheduledNotificationManager> Create( - std::unique_ptr<CollectionStore<NotificationEntry>> store); + std::unique_ptr<CollectionStore<NotificationEntry>> store, + const std::vector<SchedulerClientType>& clients); // Initializes the notification store. virtual void Init(Delegate* delegate, InitCallback callback) = 0;
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc index 0ba4d73..645842cd 100644 --- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc +++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager_unittest.cc
@@ -24,10 +24,6 @@ const char kGuid[] = "test_guid_1234"; const char kTitle[] = "test_title"; -NotificationEntry CreateNotificationEntry() { - return NotificationEntry(SchedulerClientType::kUnknown, base::GenerateGUID()); -} - NotificationEntry CreateNotificationEntry(SchedulerClientType type) { return NotificationEntry(type, base::GenerateGUID()); } @@ -71,7 +67,10 @@ delegate_ = std::make_unique<MockDelegate>(); auto store = std::make_unique<MockNotificationStore>(); store_ = store.get(); - manager_ = ScheduledNotificationManager::Create(std::move(store)); + manager_ = ScheduledNotificationManager::Create( + std::move(store), + {SchedulerClientType::kTest1, SchedulerClientType::kTest2, + SchedulerClientType::kTest3}); } protected: @@ -83,8 +82,7 @@ void InitWithData(std::vector<NotificationEntry> data) { Entries entries; for (auto it = data.begin(); it != data.end(); ++it) { - auto entry_ptr = std::make_unique<NotificationEntry>( - SchedulerClientType::kUnknown, it->guid); + auto entry_ptr = std::make_unique<NotificationEntry>(it->type, it->guid); *(entry_ptr.get()) = *it; entries.emplace_back(std::move(entry_ptr)); } @@ -110,6 +108,7 @@ base::test::ScopedTaskEnvironment scoped_task_environment_; std::unique_ptr<MockDelegate> delegate_; MockNotificationStore* store_; + std::vector<SchedulerClientType> clients_; std::unique_ptr<ScheduledNotificationManager> manager_; DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerTest); }; @@ -141,7 +140,7 @@ ScheduleParams schedule_params; schedule_params.priority = ScheduleParams::Priority::kHigh; auto params = std::make_unique<NotificationParams>( - SchedulerClientType::kUnknown, notification_data, schedule_params); + SchedulerClientType::kTest1, notification_data, schedule_params); std::string guid = params->guid; EXPECT_FALSE(guid.empty()); @@ -166,7 +165,7 @@ TEST_F(ScheduledNotificationManagerTest, ScheduleNotificationEmptyGuid) { InitWithData(std::vector<NotificationEntry>()); auto params = std::make_unique<NotificationParams>( - SchedulerClientType::kUnknown, NotificationData(), ScheduleParams()); + SchedulerClientType::kTest1, NotificationData(), ScheduleParams()); // Verify call contract. EXPECT_CALL(*store(), Add(_, _, _)); @@ -188,7 +187,7 @@ // Test to display a notification. TEST_F(ScheduledNotificationManagerTest, DisplayNotification) { - auto entry = CreateNotificationEntry(); + auto entry = CreateNotificationEntry(SchedulerClientType::kTest1); entry.guid = kGuid; InitWithData(std::vector<NotificationEntry>({entry})); @@ -208,11 +207,11 @@ TEST_F(ScheduledNotificationManagerTest, GetAllNotifications) { // Ordering: entry1.create_time < entry0.create_time < entry2.create_time. auto now = base::Time::Now(); - auto entry0 = CreateNotificationEntry(); + auto entry0 = CreateNotificationEntry(SchedulerClientType::kTest1); entry0.create_time = now; - auto entry1 = CreateNotificationEntry(); + auto entry1 = CreateNotificationEntry(SchedulerClientType::kTest1); entry1.create_time = now - base::TimeDelta::FromMinutes(1); - auto entry2 = CreateNotificationEntry(); + auto entry2 = CreateNotificationEntry(SchedulerClientType::kTest1); entry2.create_time = now + base::TimeDelta::FromMinutes(1); InitWithData(std::vector<NotificationEntry>({entry0, entry1, entry2})); @@ -239,7 +238,6 @@ auto entry1 = CreateNotificationEntry(SchedulerClientType::kTest2); auto entry2 = CreateNotificationEntry(SchedulerClientType::kTest2); auto entry3 = CreateNotificationEntry(SchedulerClientType::kTest3); - InitWithData( std::vector<NotificationEntry>({entry0, entry1, entry2, entry3})); ScheduledNotificationManager::Notifications notifications;
diff --git a/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc b/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc index 02447c1..71b953d 100644 --- a/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc +++ b/chrome/browser/notifications/scheduler/schedule_service_factory_helper.cc
@@ -61,7 +61,7 @@ std::vector<SchedulerClientType> registered_clients; client_registrar->GetRegisteredClients(®istered_clients); auto impression_tracker = std::make_unique<ImpressionHistoryTrackerImpl>( - *config.get(), std::move(registered_clients), std::move(impression_store), + *config.get(), registered_clients, std::move(impression_store), base::DefaultClock::GetInstance()); // Build scheduled notification manager. @@ -75,7 +75,9 @@ std::make_unique<NotificationStore>(std::move(notification_db)); std::unique_ptr<ScheduledNotificationManager> notification_manager; - notification_manager->Create(std::move(notification_store)); + client_registrar->GetRegisteredClients(®istered_clients); + notification_manager->Create(std::move(notification_store), + registered_clients); auto context = std::make_unique<NotificationSchedulerContext>( std::move(client_registrar), std::move(background_task_scheduler),
diff --git a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc index 50789810..58303c8f 100644 --- a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc
@@ -313,51 +313,3 @@ "/lazyload/img-with-dimension.html", 3, 1 /* lazyloaded image */)); } - -IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, - DISABLED_LoFiTest) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitWithFeatures( - {previews::features::kPreviews, - data_reduction_proxy::features:: - kDataReductionProxyEnabledWithNetworkService}, - {}); - - ASSERT_TRUE(embedded_test_server()->Start()); - - g_browser_process->network_quality_tracker() - ->ReportEffectiveConnectionTypeForTesting( - net::EFFECTIVE_CONNECTION_TYPE_2G); - - GURL test_url( - embedded_test_server()->GetURL("/drag_and_drop/image_source.html")); - - // Check that LoFi has data savings. - uint64_t data_usage_before_navigation = - GetDataUsage(test_url.HostNoBrackets()); - - ui_test_utils::NavigateToURL(browser(), test_url); - base::RunLoop().RunUntilIdle(); - - // Navigate away to force the histogram recording. - ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); - - // Choose reasonable minimum, any savings is indicative of the mechanism - // working. - EXPECT_LE(10u, GetDataSavings(test_url.HostNoBrackets()) - - data_usage_before_navigation); - - // Repeat the test, but this time reload the LoFi images. - data_usage_before_navigation = GetDataUsage(test_url.HostNoBrackets()); - - ui_test_utils::NavigateToURL(browser(), test_url); - base::RunLoop().RunUntilIdle(); - - browser()->tab_strip_model()->GetActiveWebContents()->ReloadLoFiImages(); - - // Navigate away to force the histogram recording. - ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); - - EXPECT_LE(10u, data_usage_before_navigation - - GetDataSavings(test_url.HostNoBrackets())); -}
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc index c10f85e9..2a517514 100644 --- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer.cc
@@ -8,22 +8,23 @@ #include "base/metrics/histogram.h" #include "base/metrics/histogram_macros.h" -#include "chrome/browser/metrics/live_tab_count_metrics.h" +#include "chrome/browser/metrics/tab_count_metrics.h" #include "chrome/browser/page_load_metrics/observers/histogram_suffixes.h" #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" -#include "components/live_tab_count_metrics/live_tab_count_metrics.h" +#include "components/tab_count_metrics/tab_count_metrics.h" #define LIVE_TAB_COUNT_PAGE_LOAD_HISTOGRAM(prefix, tab_count_bucket, sample, \ histogram_min, histogram_max, \ histogram_buckets) \ STATIC_HISTOGRAM_POINTER_GROUP( \ - live_tab_count_metrics::HistogramName(histogram_prefix, \ - tab_count_bucket), \ + tab_count_metrics::HistogramName( \ + histogram_prefix, /* live_tabs_only = */ true, tab_count_bucket), \ static_cast<int>(bucket), \ - static_cast<int>(live_tab_count_metrics::kNumLiveTabCountBuckets), \ + static_cast<int>(tab_count_metrics::kNumTabCountBuckets), \ AddTimeMillisecondsGranularity(sample), \ base::Histogram::FactoryTimeGet( \ - live_tab_count_metrics::HistogramName(prefix, tab_count_bucket), \ + tab_count_metrics::HistogramName( \ + prefix, /* live_tabs_only = */ true, tab_count_bucket), \ histogram_min, histogram_max, histogram_buckets, \ base::HistogramBase::kUmaTargetedHistogramFlag)) @@ -63,7 +64,7 @@ std::string(internal::kHistogramPrefixLiveTabCount) .append(internal::kHistogramFirstContentfulPaintSuffix)); const size_t bucket = - live_tab_count_metrics::BucketForLiveTabCount(GetLiveTabCount()); + tab_count_metrics::BucketForTabCount(GetLiveTabCount()); LIVE_TAB_COUNT_PAINT_PAGE_LOAD_HISTOGRAM( histogram_prefix, bucket, timing.paint_timing->first_contentful_paint.value()); @@ -80,7 +81,7 @@ std::string(internal::kHistogramPrefixLiveTabCount) .append(internal::kHistogramFirstMeaningfulPaintSuffix)); const size_t bucket = - live_tab_count_metrics::BucketForLiveTabCount(GetLiveTabCount()); + tab_count_metrics::BucketForTabCount(GetLiveTabCount()); LIVE_TAB_COUNT_PAINT_PAGE_LOAD_HISTOGRAM( histogram_prefix, bucket, timing.paint_timing->first_meaningful_paint.value()); @@ -96,7 +97,7 @@ std::string(internal::kHistogramPrefixLiveTabCount) .append(internal::kHistogramFirstInputDelaySuffix)); const size_t bucket = - live_tab_count_metrics::BucketForLiveTabCount(GetLiveTabCount()); + tab_count_metrics::BucketForTabCount(GetLiveTabCount()); LIVE_TAB_COUNT_INPUT_PAGE_LOAD_HISTOGRAM( histogram_prefix, bucket, timing.interactive_timing->first_input_delay.value()); @@ -104,5 +105,5 @@ } size_t LiveTabCountPageLoadMetricsObserver::GetLiveTabCount() const { - return live_tab_count_metrics::LiveTabCount(); + return tab_count_metrics::LiveTabCount(); }
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc index 55f9958..22e34a4 100644 --- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_browsertest.cc
@@ -9,18 +9,18 @@ #include <string> #include "base/test/metrics/histogram_tester.h" -#include "chrome/browser/metrics/live_tab_count_metrics.h" +#include "chrome/browser/metrics/tab_count_metrics.h" #include "chrome/browser/page_load_metrics/observers/histogram_suffixes.h" #include "chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" -#include "components/live_tab_count_metrics/live_tab_count_metrics.h" +#include "components/tab_count_metrics/tab_count_metrics.h" #include "testing/gtest/include/gtest/gtest.h" using BucketCountArray = - std::array<size_t, live_tab_count_metrics::kNumLiveTabCountBuckets>; + std::array<size_t, tab_count_metrics::kNumTabCountBuckets>; using page_load_metrics::PageLoadMetricsTestWaiter; using TimingField = page_load_metrics::PageLoadMetricsTestWaiter::TimingField; @@ -49,7 +49,8 @@ std::string(suffix); for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { histogram_tester_.ExpectTotalCount( - live_tab_count_metrics::HistogramName(histogram_prefix, bucket), + tab_count_metrics::HistogramName(histogram_prefix, + /* live_tabs_only = */ true, bucket), expected_counts[bucket]); } } @@ -70,9 +71,9 @@ ui_test_utils::NavigateToURL(browser(), GetTestURL()); waiter->Wait(); - size_t live_tab_count = live_tab_count_metrics::LiveTabCount(); + size_t live_tab_count = tab_count_metrics::LiveTabCount(); EXPECT_EQ(live_tab_count, 1u); - ++counts[live_tab_count_metrics::BucketForLiveTabCount(live_tab_count)]; + ++counts[tab_count_metrics::BucketForTabCount(live_tab_count)]; ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, counts); ValidateHistograms(internal::kHistogramFirstMeaningfulPaintSuffix, counts); } @@ -117,9 +118,9 @@ ui_test_utils::NavigateToURL(browser(), GetTestURL()); waiter->Wait(); - size_t live_tab_count = live_tab_count_metrics::LiveTabCount(); + size_t live_tab_count = tab_count_metrics::LiveTabCount(); EXPECT_EQ(live_tab_count, 1u); - ++counts[live_tab_count_metrics::BucketForLiveTabCount(live_tab_count)]; + ++counts[tab_count_metrics::BucketForTabCount(live_tab_count)]; ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, counts); ValidateHistograms(internal::kHistogramFirstMeaningfulPaintSuffix, counts); @@ -139,9 +140,9 @@ waiter->Wait(); - live_tab_count = live_tab_count_metrics::LiveTabCount(); + live_tab_count = tab_count_metrics::LiveTabCount(); EXPECT_EQ(live_tab_count, tab + 1); - ++counts[live_tab_count_metrics::BucketForLiveTabCount(live_tab_count)]; + ++counts[tab_count_metrics::BucketForTabCount(live_tab_count)]; ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, counts); ValidateHistograms(internal::kHistogramFirstMeaningfulPaintSuffix, counts);
diff --git a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc index 5b9cb97..dd55e68 100644 --- a/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/live_tab_count_page_load_metrics_observer_unittest.cc
@@ -12,7 +12,7 @@ #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h" #include "chrome/browser/page_load_metrics/page_load_tracker.h" #include "chrome/common/page_load_metrics/test/page_load_metrics_test_util.h" -#include "components/live_tab_count_metrics/live_tab_count_metrics.h" +#include "components/tab_count_metrics/tab_count_metrics.h" #include "content/public/browser/web_contents.h" #include "url/gurl.h" @@ -21,7 +21,7 @@ enum TabState { kForeground, kBackground }; using BucketCountArray = - std::array<size_t, live_tab_count_metrics::kNumLiveTabCountBuckets>; + std::array<size_t, tab_count_metrics::kNumTabCountBuckets>; class TestLiveTabCountPageLoadMetricsObserver : public LiveTabCountPageLoadMetricsObserver { @@ -87,7 +87,8 @@ std::string(page_load_histogram_suffix); for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { histogram_tester().ExpectTotalCount( - live_tab_count_metrics::HistogramName(histogram_prefix, bucket), + tab_count_metrics::HistogramName(histogram_prefix, + /* live_tabs_only = */ true, bucket), expected_counts[bucket]); } } @@ -105,7 +106,7 @@ // Simulate loading pages with the number of live tabs ranging from 0 to // kMaxLiveTabCount. for (size_t num_tabs = 0; num_tabs <= kMaxLiveTabCount; num_tabs++) { - bucket = live_tab_count_metrics::BucketForLiveTabCount(num_tabs); + bucket = tab_count_metrics::BucketForTabCount(num_tabs); SimulatePageLoad(num_tabs, tab_state); // We only record metrics if the tab was foregrounded the entire time // preceding the event that caused the metrics to be recorded. @@ -116,7 +117,7 @@ ValidateHistograms(internal::kHistogramFirstInputDelaySuffix, counts); } // Make sure we are testing each bucket. - EXPECT_EQ(bucket, live_tab_count_metrics::kNumLiveTabCountBuckets - 1); + EXPECT_EQ(bucket, tab_count_metrics::kNumTabCountBuckets - 1); } INSTANTIATE_TEST_SUITE_P(Foreground,
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc index cac767a0..f3fb786 100644 --- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.cc
@@ -27,9 +27,6 @@ const char kHistogramPrefixMultiTabLoading5OrMore[] = "PageLoad.Clients.MultiTabLoading.5OrMore."; -const char kHistogramMultiTabLoadingNumTabsWithInflightLoad[] = - "PageLoad.Clients.MultiTabLoading.NumTabsWithInflightLoad"; - } // namespace internal MultiTabLoadingPageLoadMetricsObserver:: @@ -45,17 +42,6 @@ bool started_in_foreground) { num_loading_tabs_when_started_ = NumberOfTabsWithInflightLoad(navigation_handle); - return CONTINUE_OBSERVING; -} - -page_load_metrics::PageLoadMetricsObserver::ObservePolicy -MultiTabLoadingPageLoadMetricsObserver::OnCommit( - content::NavigationHandle* navigation_handle, - ukm::SourceId source_id) { - // Report here so that this is logged only for normal page loads. - UMA_HISTOGRAM_COUNTS_100( - internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, - num_loading_tabs_when_started_); return num_loading_tabs_when_started_ > 0 ? CONTINUE_OBSERVING : STOP_OBSERVING; }
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h index c04ccf8f..fde3bad 100644 --- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h +++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer.h
@@ -18,7 +18,6 @@ extern const char kHistogramPrefixMultiTabLoading[]; extern const char kHistogramPrefixMultiTabLoading2OrMore[]; extern const char kHistogramPrefixMultiTabLoading5OrMore[]; -extern const char kHistogramMultiTabLoadingNumTabsWithInflightLoad[]; } // namespace internal @@ -35,9 +34,6 @@ content::NavigationHandle* navigation_handle, const GURL& currently_committed_url, bool started_in_foreground) override; - page_load_metrics::PageLoadMetricsObserver::ObservePolicy OnCommit( - content::NavigationHandle* navigation_handle, - ukm::SourceId source_id) override; void OnFirstContentfulPaintInPage( const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info) override;
diff --git a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc index 4c6cea2..9c604ce 100644 --- a/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/multi_tab_loading_page_load_metrics_observer_unittest.cc
@@ -103,8 +103,6 @@ TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, SingleTabLoading) { SimulatePageLoad(0, Foreground); - histogram_tester().ExpectUniqueSample( - internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 0, 1); ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 0, 0, 0); ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix, @@ -123,8 +121,6 @@ TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabLoading1) { SimulatePageLoad(1, Foreground); - histogram_tester().ExpectUniqueSample( - internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 1, 1); ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 1, 0, 0); ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix, @@ -143,8 +139,6 @@ TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabLoading2) { SimulatePageLoad(2, Foreground); - histogram_tester().ExpectUniqueSample( - internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 2, 1); ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 1, 1, 0); ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix, @@ -163,8 +157,6 @@ TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabLoading5) { SimulatePageLoad(5, Foreground); - histogram_tester().ExpectUniqueSample( - internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 5, 1); ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 1, 1, 1); ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix, @@ -183,8 +175,6 @@ TEST_F(MultiTabLoadingPageLoadMetricsObserverTest, MultiTabBackground) { SimulatePageLoad(1, Background); - histogram_tester().ExpectUniqueSample( - internal::kHistogramMultiTabLoadingNumTabsWithInflightLoad, 1, 1); ValidateHistograms(internal::kHistogramFirstContentfulPaintSuffix, 0, 0, 0); ValidateHistograms(internal::kHistogramForegroundToFirstContentfulPaintSuffix,
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc index 5af40e6e..536697c0 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -699,7 +699,7 @@ base::string16 ChromePasswordManagerClient::GetTextFromClipboard() { base::string16 text; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &text); return text; }
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index 7a1d811..5aac57a 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -1629,7 +1629,7 @@ // Checks the Linux selection clipboard by polling. void CheckSelectionClipboard(const std::string& expected) { #if defined(OS_LINUX) && !defined(OS_CHROMEOS) - CheckClipboard(ui::CLIPBOARD_TYPE_SELECTION, expected); + CheckClipboard(ui::ClipboardType::kSelection, expected); #endif } @@ -1639,7 +1639,7 @@ void SendCopyCommandAndCheckCopyPasteClipboard(const std::string& expected) { content::RunAllPendingInMessageLoop(); GetWebContentsForInputRouting()->Copy(); - CheckClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE, expected); + CheckClipboard(ui::ClipboardType::kCopyPaste, expected); } content::WebContents* GetWebContentsForInputRouting() {
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc index 57ac99a..1f65ff0 100644 --- a/chrome/browser/policy/policy_browsertest.cc +++ b/chrome/browser/policy/policy_browsertest.cc
@@ -2220,6 +2220,31 @@ EXPECT_FALSE(service->GetInstalledExtension(kGoodCrxId)); } +// Ensure that when INSTALLATION_REMOVED is set for wildcard +// that blacklisted extensions are removed from the device. +IN_PROC_BROWSER_TEST_F(PolicyTest, ExtensionWildcardRemovedPolicy) { + EXPECT_TRUE(InstallExtension(kGoodCrxName)); + + extensions::ExtensionService* service = extension_service(); + EXPECT_TRUE(service->GetInstalledExtension(kGoodCrxId)); + + // Should uninstall good_v1.crx. + base::DictionaryValue dict_value; + dict_value.SetString( + std::string("*") + "." + extensions::schema_constants::kInstallationMode, + extensions::schema_constants::kRemoved); + PolicyMap policies; + policies.Set(key::kExtensionSettings, POLICY_LEVEL_MANDATORY, + POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, + dict_value.CreateDeepCopy(), nullptr); + extensions::TestExtensionRegistryObserver observer( + extensions::ExtensionRegistry::Get(browser()->profile())); + UpdateProviderPolicy(policies); + observer.WaitForExtensionUnloaded(); + + EXPECT_FALSE(service->GetInstalledExtension(kGoodCrxId)); +} + // Ensure that bookmark apps are not blocked by the ExtensionAllowedTypes // policy. IN_PROC_BROWSER_TEST_F(PolicyTest, ExtensionAllowedTypes_BookmarkApp) { @@ -2603,7 +2628,6 @@ // Test policy-installed extensions are reloaded when killed. { - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; BackgroundContentsService:: SetRestartDelayForForceInstalledAppsAndExtensionsForTesting(0); content::WindowedNotificationObserver extension_crashed_observer( @@ -2614,8 +2638,9 @@ extensions::ExtensionHost* extension_host = extensions::ProcessManager::Get(browser()->profile()) ->GetBackgroundHostForExtension(kGoodCrxId); - extension_host->render_process_host()->Shutdown( - content::RESULT_CODE_KILLED); + content::RenderProcessHost* process = extension_host->render_process_host(); + content::ScopedAllowRendererCrashes allow_renderer_crashes(process); + process->Shutdown(content::RESULT_CODE_KILLED); extension_crashed_observer.Wait(); extension_loaded_observer.WaitForExtensionLoaded(); }
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc index f3df454..64ea7236 100644 --- a/chrome/browser/prerender/prerender_browsertest.cc +++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -1511,7 +1511,8 @@ "/prerender/prerender_page.html", FINAL_STATUS_RENDERER_CRASHED, 1); // Navigate to about:crash and then wait for the renderer to crash. - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes allow_renderer_crashes( + prerender->contents()->web_contents()); ASSERT_TRUE(prerender->contents()); ASSERT_TRUE(prerender->contents()->prerender_contents()); prerender->contents()->prerender_contents()->GetController().
diff --git a/chrome/browser/previews/previews_lite_page_predictor.cc b/chrome/browser/previews/previews_lite_page_predictor.cc index c00d9ceef..cceebd4 100644 --- a/chrome/browser/previews/previews_lite_page_predictor.cc +++ b/chrome/browser/previews/previews_lite_page_predictor.cc
@@ -102,44 +102,46 @@ return web_contents()->GetVisibility() == content::Visibility::VISIBLE; } -bool PreviewsLitePagePredictor::ShouldPreresolveOnPage() const { +base::Optional<GURL> PreviewsLitePagePredictor::ShouldPreresolveOnPage() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (!previews::params::LitePageRedirectPreviewShouldPresolve()) - return false; + return base::nullopt; if (!web_contents()->GetController().GetLastCommittedEntry()) - return false; + return base::nullopt; if (web_contents()->GetController().GetPendingEntry()) - return false; + return base::nullopt; if (!DataSaverIsEnabled()) - return false; + return base::nullopt; - // TODO(crbug.com/971918): Maybe preconnect to origin if this is true by - // returning an optional URL. if (!previews::params::IsLitePageServerPreviewsEnabled()) - return false; + return base::nullopt; if (!ECTIsSlow()) - return false; + return base::nullopt; GURL url = web_contents()->GetController().GetLastCommittedEntry()->GetURL(); if (!url.SchemeIs(url::kHttpsScheme)) - return false; + return base::nullopt; - if (PageIsBlacklisted(url)) - return false; - - if (previews::IsLitePageRedirectPreviewDomain(url)) - return false; + // Only check if the url is blacklisted if it is not a preview page. + if (!previews::IsLitePageRedirectPreviewDomain(url) && PageIsBlacklisted(url)) + return base::nullopt; if (!IsVisible()) - return false; + return base::nullopt; - return true; + // If a preview is currently being shown, preresolve the original page. + // Otherwise, preresolve the preview. + std::string original_url; + if (previews::ExtractOriginalURLFromLitePageRedirectURL(url, &original_url)) + return GURL(original_url); + + return PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL(url); } void PreviewsLitePagePredictor::MaybeTogglePreresolveTimer() { @@ -148,14 +150,14 @@ // If the timer is not null, it should be running. DCHECK(!timer_ || timer_->IsRunning()); - bool should_have_timer = ShouldPreresolveOnPage(); - if (should_have_timer == bool(timer_)) + url_ = ShouldPreresolveOnPage(); + if (url_.has_value() == bool(timer_)) return; UMA_HISTOGRAM_BOOLEAN("Previews.ServerLitePage.ToggledPreresolve", - should_have_timer); + url_.has_value()); - if (should_have_timer) { + if (url_.has_value()) { timer_.reset(new base::RepeatingTimer()); // base::Unretained is safe because the timer will stop firing once deleted, // and |timer_| is owned by this. @@ -171,15 +173,13 @@ } } -void PreviewsLitePagePredictor::Preresolve() { +void PreviewsLitePagePredictor::Preresolve() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(timer_); - // TODO(crbug.com/971918): Also need to preconnect to origin. - return; - - GURL previews_url = PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL( - web_contents()->GetController().GetLastCommittedEntry()->GetURL()); + UMA_HISTOGRAM_BOOLEAN( + "Previews.ServerLitePage.PreresolvedToPreviewServer", + previews::IsLitePageRedirectPreviewDomain(url_.value())); predictors::LoadingPredictor* loading_predictor = predictors::LoadingPredictorFactory::GetForProfile( @@ -188,12 +188,7 @@ if (!loading_predictor || !loading_predictor->preconnect_manager()) return; - loading_predictor->preconnect_manager()->StartPreresolveHost(previews_url); - - // Record a local histogram for browser testing. - base::BooleanHistogram::FactoryGet("Previews.ServerLitePage.Preresolved", - base::HistogramBase::kNoFlags) - ->Add(true); + loading_predictor->preconnect_manager()->StartPreresolveHost(url_.value()); } void PreviewsLitePagePredictor::DidStartNavigation(
diff --git a/chrome/browser/previews/previews_lite_page_predictor.h b/chrome/browser/previews/previews_lite_page_predictor.h index 89d2e45..7412b11 100644 --- a/chrome/browser/previews/previews_lite_page_predictor.h +++ b/chrome/browser/previews/previews_lite_page_predictor.h
@@ -10,12 +10,14 @@ #include "base/callback.h" #include "base/gtest_prod_util.h" #include "base/macros.h" +#include "base/optional.h" #include "base/sequence_checker.h" #include "base/timer/timer.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" #include "net/nqe/effective_connection_type.h" #include "services/network/public/cpp/network_quality_tracker.h" +#include "url/gurl.h" namespace content { class NavigationHandle; @@ -32,8 +34,9 @@ // Manages background preresolving or preconnecting for lite page redirect // previews. When a set of conditions are met, this class causes the litepage // version of the current committed page URL to be preresolved in a loop so that -// the DNS entry for the litepage is always cached. This helps to mitigate the -// delay of loading a preview of the same origin. +// the DNS entry for the litepage is always cached, or the origin URL to be +// preresolved if the current page is a preview. This helps to mitigate the +// delay of loading a preview or the original page of the same origin. // // All of the following conditions must be met to preresolve the litepages host // on a background loop during a page load: @@ -41,7 +44,7 @@ // * A page is committed. // * There is no ongoing navigation. // * Lite mode is enabled for the user. - Note this change is not directly -// observed because we find that it seldom changes in practice. +// observed because we find that it seldom changes in practice. // * The lite page redirect feature is enabled. // * ECT is at or below the lite page redirect threshold. // * The current page's host is not blacklisted by server hints. @@ -78,7 +81,10 @@ private: friend class content::WebContentsUserData<PreviewsLitePagePredictor>; - FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, AllConditionsMet); + FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, + AllConditionsMet_Origin); + FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, + AllConditionsMet_Preview); FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, FeatureDisabled); FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, DataSaverDisabled); @@ -94,21 +100,23 @@ FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_Visibility); - // Returns true if the current page should be preresolved. - bool ShouldPreresolveOnPage() const; + // Returns the GURL that should be preresolved, if any. + base::Optional<GURL> ShouldPreresolveOnPage() const; // Toggles preresolving to either start or stop as needed. This operates // statelessly, but should be called every time a change potentially needs to // be made. See observers below. void MaybeTogglePreresolveTimer(); - // Immediately causes the preview URL for the current committed page to be - // preresolved. - void Preresolve(); + // Immediately causes |url_| to be preresolved. + void Preresolve() const; // Set if the preview URL is actively being preresolved. std::unique_ptr<base::RepeatingTimer> timer_; + // The url that should be preresolved, if any. + base::Optional<GURL> url_; + // A reference to the DRP Settings. data_reduction_proxy::DataReductionProxySettings* drp_settings_;
diff --git a/chrome/browser/previews/previews_lite_page_predictor_unittest.cc b/chrome/browser/previews/previews_lite_page_predictor_unittest.cc index 72b8d459..320beeb 100644 --- a/chrome/browser/previews/previews_lite_page_predictor_unittest.cc +++ b/chrome/browser/previews/previews_lite_page_predictor_unittest.cc
@@ -6,6 +6,7 @@ #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" +#include "chrome/browser/previews/previews_lite_page_navigation_throttle.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "components/previews/core/previews_features.h" #include "content/public/browser/web_contents.h" @@ -91,7 +92,7 @@ std::unique_ptr<content::MockNavigationHandle> test_handle_; }; -TEST_F(PreviewsLitePagePredictorUnitTest, AllConditionsMet) { +TEST_F(PreviewsLitePagePredictorUnitTest, AllConditionsMet_Origin) { RunTest(true /* feature_enabled */, true /* data_saver_enabled */, true /* ect_is_slow */, false /* page_is_blacklisted */, true /* is_visible */); @@ -104,6 +105,27 @@ EXPECT_TRUE(preresolver()->ShouldPreresolveOnPage()); histogram_tester.ExpectUniqueSample( "Previews.ServerLitePage.ToggledPreresolve", true, 1); + histogram_tester.ExpectUniqueSample( + "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 1); +} + +TEST_F(PreviewsLitePagePredictorUnitTest, AllConditionsMet_Preview) { + RunTest(true /* feature_enabled */, true /* data_saver_enabled */, + true /* ect_is_slow */, false /* page_is_blacklisted */, + true /* is_visible */); + + base::HistogramTester histogram_tester; + + content::WebContentsTester::For(web_contents()) + ->NavigateAndCommit( + PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL( + GURL(kTestUrl))); + + EXPECT_TRUE(preresolver()->ShouldPreresolveOnPage()); + histogram_tester.ExpectUniqueSample( + "Previews.ServerLitePage.ToggledPreresolve", true, 1); + histogram_tester.ExpectUniqueSample( + "Previews.ServerLitePage.PreresolvedToPreviewServer", false, 1); } TEST_F(PreviewsLitePagePredictorUnitTest, FeatureDisabled) { @@ -191,6 +213,8 @@ "Previews.ServerLitePage.ToggledPreresolve", true, 2); histogram_tester.ExpectBucketCount( "Previews.ServerLitePage.ToggledPreresolve", false, 1); + histogram_tester.ExpectUniqueSample( + "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 2); } TEST_F(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_ECT) { @@ -213,6 +237,8 @@ "Previews.ServerLitePage.ToggledPreresolve", true, 1); histogram_tester.ExpectBucketCount( "Previews.ServerLitePage.ToggledPreresolve", false, 1); + histogram_tester.ExpectUniqueSample( + "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 1); } TEST_F(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_Visibility) { @@ -234,4 +260,6 @@ "Previews.ServerLitePage.ToggledPreresolve", true, 1); histogram_tester.ExpectBucketCount( "Previews.ServerLitePage.ToggledPreresolve", false, 1); + histogram_tester.ExpectUniqueSample( + "Previews.ServerLitePage.PreresolvedToPreviewServer", true, 1); }
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc index 1cc36312..22bd2c5 100644 --- a/chrome/browser/printing/print_browsertest.cc +++ b/chrome/browser/printing/print_browsertest.cc
@@ -510,8 +510,6 @@ // a timed out test which indicates the print preview hung. IN_PROC_BROWSER_TEST_F(SitePerProcessPrintBrowserTest, SubframeUnavailableDuringPrint) { - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; - ASSERT_TRUE(embedded_test_server()->Started()); GURL url( embedded_test_server()->GetURL("/printing/content_with_iframe.html")); @@ -526,6 +524,7 @@ auto filter = base::MakeRefCounted<KillPrintFrameContentMsgFilter>(subframe_rph); + content::ScopedAllowRendererCrashes allow_renderer_crashes(subframe_rph); subframe_rph->AddFilter(filter.get()); PrintAndWaitUntilPreviewIsReady(/*print_only_selection=*/false);
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc index 4e87c31..a9dbd34 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -790,7 +790,7 @@ if (url.is_empty() || !url.is_valid()) return; - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); scw.WriteText(FormatURLForClipboard(url)); } @@ -2533,7 +2533,7 @@ std::vector<base::string16> types; bool ignore; ui::Clipboard::GetForCurrentThread()->ReadAvailableTypes( - ui::CLIPBOARD_TYPE_COPY_PASTE, &types, &ignore); + ui::ClipboardType::kCopyPaste, &types, &ignore); return !types.empty(); } @@ -2543,7 +2543,7 @@ return ui::Clipboard::GetForCurrentThread()->IsFormatAvailable( ui::ClipboardFormatType::GetPlainTextType(), - ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardType::kCopyPaste); } bool RenderViewContextMenu::IsPrintPreviewEnabled() const { @@ -2751,7 +2751,7 @@ } void RenderViewContextMenu::ExecCopyLinkText() { - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); scw.WriteText(params_.link_text); }
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc b/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc index 585784be..da44713 100644 --- a/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc +++ b/chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc
@@ -32,12 +32,12 @@ ui::ClipboardType ConvertClipboardType(uint32_t type) { switch (type) { case PP_FLASH_CLIPBOARD_TYPE_STANDARD: - return ui::CLIPBOARD_TYPE_COPY_PASTE; + return ui::ClipboardType::kCopyPaste; case PP_FLASH_CLIPBOARD_TYPE_SELECTION: - return ui::CLIPBOARD_TYPE_SELECTION; + return ui::ClipboardType::kSelection; } NOTREACHED(); - return ui::CLIPBOARD_TYPE_COPY_PASTE; + return ui::ClipboardType::kCopyPaste; } // Functions to pack/unpack custom data from a pickle. See the header file for
diff --git a/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc b/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc index acbab2df..603ca9d9 100644 --- a/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc +++ b/chrome/browser/renderer_host/render_process_host_chrome_browsertest.cc
@@ -626,7 +626,7 @@ // Kill the renderer process, simulating a crash. This should the ProcessDied // method to be called. Alternatively, RenderProcessHost::OnChannelError can // be called to directly force a call to ProcessDied. - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes allow_renderer_crashes(wc1); wc1->GetMainFrame()->GetProcess()->Shutdown(-1); destroyer.Wait();
diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html b/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html index 4d22087..d9016fc 100644 --- a/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html +++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_optin.html
@@ -12,7 +12,6 @@ <link rel="import" href="chrome://resources/html/i18n_behavior.html"> <link rel="import" href="chrome://resources/html/util.html"> <link rel="import" href="chrome://resources/cr_elements/cr_icons_css.html"> -<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> @@ -28,7 +27,7 @@ <link rel="stylesheet" href="../login/oobe_flex_layout.css"> <link rel="stylesheet" href="../login/oobe_screen.css"> <link rel="stylesheet" href="setting_zippy.css"> -<style include="paper-button-style cr-icons cr-shared-style"></style> +<style include="cr-icons cr-shared-style"></style> <script src="chrome://resources/js/cr.js"></script> <script src="chrome://resources/js/load_time_data.js"></script>
diff --git a/chrome/browser/resources/chromeos/login/discover/discover_welcome.html b/chrome/browser/resources/chromeos/login/discover/discover_welcome.html index a325e9c..daaf578 100644 --- a/chrome/browser/resources/chromeos/login/discover/discover_welcome.html +++ b/chrome/browser/resources/chromeos/login/discover/discover_welcome.html
@@ -7,8 +7,7 @@ <template> <link rel="stylesheet" href="../oobe_dialog_host.css"> <link rel="stylesheet" href="discover_welcome.css"> - <style - include="iron-flex iron-flex-alignment iron-positioning paper-button-style cr-icons cr-shared-style"> + <style include="iron-flex iron-flex-alignment iron-positioning cr-icons cr-shared-style"> </style> <link rel="stylesheet" href="../oobe_iron_flex_layout_fix.css"> <oobe-dialog id="discoverWelcome" role="dialog" no-header no-footer-padding
diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.html b/chrome/browser/resources/chromeos/login/offline_gaia.html index 49c74fb..1a9ef89 100644 --- a/chrome/browser/resources/chromeos/login/offline_gaia.html +++ b/chrome/browser/resources/chromeos/login/offline_gaia.html
@@ -5,8 +5,8 @@ <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <!-- Offline UI for the New Gaia flow. @@ -116,9 +116,9 @@ <div slot="body" i18n-content="offlineLoginForgotPasswordDlg"></div> <div slot="button-container"> - <paper-button autofocus on-tap="onForgotPasswordCloseTap_" + <cr-button autofocus on-tap="onForgotPasswordCloseTap_" i18n-content="offlineLoginCloseBtn" class="action-button"> - </paper-button> + </cr-button> </div> </cr-dialog> </template>
diff --git a/chrome/browser/resources/chromeos/login/oobe_buttons.html b/chrome/browser/resources/chromeos/login/oobe_buttons.html index 9ce7c8a..20ef6b33 100644 --- a/chrome/browser/resources/chromeos/login/oobe_buttons.html +++ b/chrome/browser/resources/chromeos/login/oobe_buttons.html
@@ -4,12 +4,10 @@ <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_icons_css.html"> -<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> <link rel="import" href="chrome://resources/cr_elements/shared_style_css.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> <iron-iconset-svg name="oobe-buttons-20" size="20"> @@ -56,17 +54,17 @@ <template> <style include="iron-flex iron-flex-alignment iron-positioning"></style> <link rel="stylesheet" href="oobe_iron_flex_layout_fix.css"> - <style include="paper-button-style cr-icons cr-shared-style"></style> + <style include="cr-icons cr-shared-style"></style> <link rel="stylesheet" href="oobe_fonts.css"> <link rel="stylesheet" href="oobe_text_buttons.css"> - <paper-button id="textButton" on-tap="onClick_" disabled="[[disabled]]" + <cr-button id="textButton" on-tap="onClick_" disabled="[[disabled]]" inverse$="[[inverse]]" aria-label$="[[labelForAria]]" border$="[[border]]" android$="[[android]]"> <div id="container" class="flex layout horizontal center center-justified self-stretch"> <slot></slot> </div> - </paper-button> + </cr-button> </template> </dom-module> @@ -116,11 +114,11 @@ <template> <style include="iron-flex iron-flex-alignment iron-positioning"></style> <link rel="stylesheet" href="oobe_iron_flex_layout_fix.css"> - <style include="paper-button-style cr-icons cr-shared-style"></style> + <style include="cr-icons cr-shared-style"></style> <link rel="stylesheet" href="oobe_fonts.css"> <link rel="stylesheet" href="oobe_text_buttons.css"> <link rel="stylesheet" href="oobe_next_button.css"> - <paper-button id="button" on-tap="onClick_" disabled="[[disabled]]" + <cr-button id="button" on-tap="onClick_" disabled="[[disabled]]" class="action-button"> <div class="flex horizontal layout start center"> <slot> @@ -131,7 +129,7 @@ icon2x="oobe-buttons-40:arrow-forward"> </hd-iron-icon> </div> - </paper-button> + </cr-button> </template> </dom-module> @@ -153,11 +151,11 @@ <template> <style include="iron-flex iron-flex-alignment iron-positioning"></style> <link rel="stylesheet" href="oobe_iron_flex_layout_fix.css"> - <style include="paper-button-style cr-icons cr-shared-style"></style> + <style include="cr-icons cr-shared-style"></style> <link rel="stylesheet" href="oobe_fonts.css"> <link rel="stylesheet" href="oobe_text_buttons.css"> <link rel="stylesheet" href="oobe_welcome_secondary_button.css"> - <paper-button id="button" aria-label$="[[labelForAria]]"> + <cr-button id="button" aria-label$="[[labelForAria]]"> <div id="container" class="flex vertical layout center self-stretch"> <div class="flex layout horizontal center self-stretch center-justified"> <hd-iron-icon id="icon" icon1x="[[icon1x]]" icon2x="[[icon2x]]" @@ -166,6 +164,6 @@ <slot></slot> </div> </div> - </paper-button> + </cr-button> </template> </dom-module>
diff --git a/chrome/browser/resources/chromeos/login/oobe_next_button.css b/chrome/browser/resources/chromeos/login/oobe_next_button.css index 1bdd007..84855d1 100644 --- a/chrome/browser/resources/chromeos/login/oobe_next_button.css +++ b/chrome/browser/resources/chromeos/login/oobe_next_button.css
@@ -2,7 +2,7 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */ -paper-button { +cr-button { padding-inline-end: 8px; padding-inline-start: 16px; }
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js index b84522d..5de51fd 100644 --- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js +++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
@@ -367,6 +367,15 @@ }, 500); }; }()); + + // Center horizontally after any style changes. + const observer = new MutationObserver(function() { + centerElement( + $('message-container'), $('message-container').parentNode.offsetWidth, + null); + }); + observer.observe( + $('message-container'), {attributes: true, attributeFilter: ['style']}); }; /**
diff --git a/chrome/browser/resources/interventions_internals/index.js b/chrome/browser/resources/interventions_internals/index.js index ebd00b9..40a7d07 100644 --- a/chrome/browser/resources/interventions_internals/index.js +++ b/chrome/browser/resources/interventions_internals/index.js
@@ -616,7 +616,7 @@ } /** - * Retrieves the statuses of previews (i.e. Offline, LoFi, AMP Redirection), + * Retrieves the statuses of previews (i.e. Offline, Lite Pages, etc), * and posts them on chrome://intervention-internals. */ function getPreviewsEnabled() {
diff --git a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css index 42347f5..fb779b6a 100644 --- a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css +++ b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.css
@@ -55,7 +55,3 @@ overflow: hidden; padding-inline-end: 12px; } - -paper-button { - margin: 0; -}
diff --git a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html index eb9c718..996d5313 100644 --- a/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html +++ b/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
@@ -1,7 +1,7 @@ +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html"> <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <dom-module id="issue-banner"> <link rel="import" type="css" href="../../media_router_common.css"> <link rel="import" type="css" href="issue_banner.css"> @@ -15,15 +15,15 @@ <div id="title" aria-live="polite" tabindex="0">[[issue.title]]</div> </div> <div id="buttons"> - <paper-button flat id="opt-button" class="button" - on-tap="onClickOptAction_" + <cr-button flat id="opt-button" class="button" + on-click="onClickOptAction_" hidden$="[[computeOptionalActionHidden_(issue)]]"> <span>[[secondaryActionButtonText_]]</span> - </paper-button> - <paper-button flat id="default-button" - class="button action" on-tap="onClickDefaultAction_"> + </cr-button> + <cr-button flat id="default-button" + class="button action" on-click="onClickDefaultAction_"> <span>[[defaultActionButtonText_]]</span> - </paper-button> + </cr-button> </div> </div> </template>
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 393f05c..5f277f2 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
@@ -1,5 +1,6 @@ <link rel="import" href="chrome://resources/html/polymer.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html"> <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_input/cr_input.html"> @@ -36,10 +37,10 @@ </cr-checkbox> </div> <div id="first-run-button-container"> - <paper-button id="first-run-button" class="button" - on-tap="acknowledgeFirstRunFlow_"> + <cr-button id="first-run-button" class="button" + on-click="acknowledgeFirstRunFlow_"> <span>[[i18n('firstRunFlowButtonText')]]</span> - </paper-button> + </cr-button> </div> </div> </template>
diff --git a/chrome/browser/resources/media_router/elements/route_details/route_details.html b/chrome/browser/resources/media_router/elements/route_details/route_details.html index fe9ef05..90077fc 100644 --- a/chrome/browser/resources/media_router/elements/route_details/route_details.html +++ b/chrome/browser/resources/media_router/elements/route_details/route_details.html
@@ -1,6 +1,6 @@ <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="../route_controls/route_controls.html"> <dom-module id="route-details"> <link rel="import" type="css" href="../../media_router_common.css"> @@ -17,17 +17,15 @@ route="[[route]]"></route-controls> </template> <div id="route-action-buttons" class="layout"> - <paper-button flat class="route-button button" - id="start-casting-to-route-button" - hidden$="[[computeCastButtonHidden_(route, changeRouteSourceAvailable_)]]" - on-tap="startCastingToRoute_"> + <cr-button class="route-button button" id="start-casting-to-route-button" + hidden$="[[computeCastButtonHidden_(route, + changeRouteSourceAvailable_)]]" on-click="startCastingToRoute_"> <span>[[i18n('startCastingButtonText')]]</span> - </paper-button> - <paper-button flat class="route-button button" - id="close-route-button" - on-tap="closeRoute_"> + </cr-button> + <cr-button class="route-button button" id="close-route-button" + on-click="closeRoute_"> <span>[[i18n('stopCastingButtonText')]]</span> - </paper-button> + </cr-button> <div> </template> <script src="route_details.js"></script>
diff --git a/chrome/browser/resources/print_preview/data/document_info.js b/chrome/browser/resources/print_preview/data/document_info.js index aa87754..67ce1c9 100644 --- a/chrome/browser/resources/print_preview/data/document_info.js +++ b/chrome/browser/resources/print_preview/data/document_info.js
@@ -17,6 +17,22 @@ */ print_preview.DocumentSettings; +/** + * @typedef {{ + * marginTop: number, + * marginLeft: number, + * marginBottom: number, + * marginRight: number, + * contentWidth: number, + * contentHeight: number, + * printableAreaX: number, + * printableAreaY: number, + * printableAreaWidth: number, + * printableAreaHeight: number, + * }} + */ +print_preview.PageLayoutInfo; + Polymer({ is: 'print-preview-document-info', @@ -122,17 +138,8 @@ /** * Called when the page layout of the document is ready. Always occurs * as a result of a preview request. - * @param {{marginTop: number, - * marginLeft: number, - * marginBottom: number, - * marginRight: number, - * contentWidth: number, - * contentHeight: number, - * printableAreaX: number, - * printableAreaY: number, - * printableAreaWidth: number, - * printableAreaHeight: number, - * }} pageLayout Layout information about the document. + * @param {!print_preview.PageLayoutInfo} pageLayout Layout information + * about the document. * @param {boolean} hasCustomPageSizeStyle Whether this document has a * custom page size or style to use. * @private
diff --git a/chrome/browser/resources/print_preview/ui/input_behavior.js b/chrome/browser/resources/print_preview/ui/input_behavior.js index 79aa7cc3..353fa097 100644 --- a/chrome/browser/resources/print_preview/ui/input_behavior.js +++ b/chrome/browser/resources/print_preview/ui/input_behavior.js
@@ -52,7 +52,7 @@ * @private */ onKeyDown_: function(event) { - if (event.code != 'Enter') { + if (event.code != 'Enter' && event.code != 'Tab') { return; }
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html index ee51945..3dbb638 100644 --- a/chrome/browser/resources/settings/basic_page/basic_page.html +++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -62,7 +62,7 @@ } :host-context(.focus-outline-visible) #advancedToggle:focus { - font-weight: 500; + font-weight: 600; } #secondaryUserBanner {
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html b/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html index aac3e65e0..28ed776 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_add_languages_dialog.html
@@ -1,5 +1,6 @@ <link rel="import" href="chrome://resources/html/polymer.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html"> <link rel="import" href="chrome://resources/cr_elements/cr_scrollable_behavior.html"> <link rel="import" href="chrome://resources/cr_elements/cr_search_field/cr_search_field.html"> @@ -7,7 +8,6 @@ <link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> <link rel="import" href="chrome://resources/html/find_shortcut_behavior.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-list/iron-list.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="os_languages.html"> <link rel="import" href="../../settings_shared_css.html"> @@ -62,13 +62,13 @@ </iron-list> </div> <div slot="button-container"> - <paper-button class="cancel-button" on-click="onCancelButtonTap_"> + <cr-button class="cancel-button" on-click="onCancelButtonTap_"> $i18n{cancel} - </paper-button> - <paper-button class="action-button" on-click="onActionButtonTap_" + </cr-button> + <cr-button class="action-button" on-click="onActionButtonTap_" disabled="[[disableActionButton_]]"> $i18n{add} - </paper-button> + </cr-button> </div> </cr-dialog> </template>
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html index 33fd40e..4d101f0 100644 --- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html +++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_page.html
@@ -1,5 +1,6 @@ <link rel="import" href="chrome://resources/html/polymer.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html"> <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html"> @@ -177,9 +178,9 @@ </div> <template is="dom-if" if="[[isRestartRequired_( item.language.code, languages.prospectiveUILanguage)]]"> - <paper-button class="restart-button" on-click="onRestartTap_"> + <cr-button class="restart-button" on-click="onRestartTap_"> $i18n{restart} - </paper-button> + </cr-button> </template> <cr-icon-button class="icon-more-vert" title="$i18n{moreActions}" id="more-[[item.language.code]]"
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html index 85c05fa..48e2fd4 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html +++ b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html
@@ -50,7 +50,7 @@ } :host-context(.focus-outline-visible) #advancedToggle:focus { - font-weight: 500; + font-weight: 600; } #secondaryUserBanner {
diff --git a/chrome/browser/resources/settings/people_page/account_manager.html b/chrome/browser/resources/settings/people_page/account_manager.html index b90991d..b4687fe 100644 --- a/chrome/browser/resources/settings/people_page/account_manager.html +++ b/chrome/browser/resources/settings/people_page/account_manager.html
@@ -139,10 +139,10 @@ <template is="dom-if" if="[[shouldShowReauthenticationButton_(item)]]"> - <paper-button title="[[getAccountManagerSignedOutTitle_(item)]]" + <cr-button title="[[getAccountManagerSignedOutTitle_(item)]]" class="reauth-button" on-click="onReauthenticationTap_"> [[getAccountManagerSignedOutLabel_(item.unmigrated)]] - </paper-button> + </cr-button> </template> <!-- If this is the Device Account, display the management status -->
diff --git a/chrome/browser/resources/settings/system_page/system_page.html b/chrome/browser/resources/settings/system_page/system_page.html index 720015c..a199f3d 100644 --- a/chrome/browser/resources/settings/system_page/system_page.html +++ b/chrome/browser/resources/settings/system_page/system_page.html
@@ -29,9 +29,18 @@ </cr-button> </template> </settings-toggle-button> + <div id="proxy" class="settings-box" on-click="onProxyTap_" - actionable$="[[!isProxyEnforcedByPolicy_]]"> - <div class="start">$i18n{proxySettingsLabel}</div> + actionable$="[[isProxyDefault_]]"> + <div class="start" hidden$="[[!isProxyDefault_]]"> + $i18n{proxySettingsLabel} + </div> + <div class="start" hidden$="[[!prefs.proxy.extensionId]]"> + $i18n{proxySettingsExtensionLabel} + </div> + <div class="start" hidden$="[[!isProxyEnforcedByPolicy_]]"> + $i18n{proxySettingsPolicyLabel} + </div> <cr-icon-button class="icon-external" hidden$="[[isProxyEnforcedByPolicy_]]" aria-label="$i18n{proxySettingsLabel}"></cr-icon-button>
diff --git a/chrome/browser/resources/settings/system_page/system_page.js b/chrome/browser/resources/settings/system_page/system_page.js index c94b282..7707ed9 100644 --- a/chrome/browser/resources/settings/system_page/system_page.js +++ b/chrome/browser/resources/settings/system_page/system_page.js
@@ -19,19 +19,28 @@ /** @private */ isProxyEnforcedByPolicy_: { type: Boolean, - computed: 'computeIsProxyEnforcedByPolicy_(prefs.proxy.*)', + }, + + /** @private */ + isProxyDefault_: { + type: Boolean, }, }, + observers: [ + 'observeProxyPrefChanged_(prefs.proxy.*)', + ], + /** - * @return {boolean} * @private */ - computeIsProxyEnforcedByPolicy_: function() { + observeProxyPrefChanged_: function() { const pref = this.get('prefs.proxy'); // TODO(dbeam): do types of policy other than USER apply on ChromeOS? - return pref.enforcement == chrome.settingsPrivate.Enforcement.ENFORCED && + this.isProxyEnforcedByPolicy_ = + pref.enforcement == chrome.settingsPrivate.Enforcement.ENFORCED && pref.controlledBy == chrome.settingsPrivate.ControlledBy.USER_POLICY; + this.isProxyDefault_ = !this.isProxyEnforcedByPolicy_ && !pref.extensionId; }, /** @private */ @@ -46,7 +55,7 @@ /** @private */ onProxyTap_: function() { - if (!this.isProxyEnforcedByPolicy_) { + if (this.isProxyDefault_) { settings.SystemPageBrowserProxyImpl.getInstance().showProxySettings(); } },
diff --git a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html index fb3ef3b..b0ce42a 100644 --- a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html +++ b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.html
@@ -3,10 +3,9 @@ <head> <meta charset="utf-8"> <link rel="import" href="chrome://resources/html/polymer.html"> + <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_radio_button/cr_radio_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_radio_group/cr_radio_group.html"> - <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> - <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> <link rel="import" href="signin_shared_css.html"> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> @@ -14,7 +13,7 @@ <link rel="import" href="chrome://resources/html/load_time_data.html"> <link rel="import" href="chrome://resources/html/util.html"> <custom-style> - <style include="signin-dialog-shared paper-button-style"> + <style include="signin-dialog-shared"> .container { /* The sign-in confirmation dialog uses a width that is larger than * the other sign-in dialogs to fit cases when the user has an email @@ -91,12 +90,12 @@ </cr-radio-group> </div> <div class="action-container"> - <paper-button class="action-button" id="confirmButton"> + <cr-button class="action-button" id="confirmButton"> $i18n{signinEmailConfirmationConfirmLabel} - </paper-button> - <paper-button id="closeButton"> + </cr-button> + <cr-button id="closeButton"> $i18n{signinEmailConfirmationCloseLabel} - </paper-button> + </cr-button> </div> </div> </body>
diff --git a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js index 3a53111..c09b83e 100644 --- a/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js +++ b/chrome/browser/resources/signin/signin_email_confirmation/signin_email_confirmation.js
@@ -26,7 +26,7 @@ // on "enter" being pressed and the user hits "enter", perform the default // action of the dialog, which is "OK". if (e.key == 'Enter' && - !/^(A|PAPER-BUTTON)$/.test(document.activeElement.tagName)) { + !/^(A|CR-BUTTON)$/.test(document.activeElement.tagName)) { $('confirmButton').click(); e.preventDefault(); }
diff --git a/chrome/browser/resources/signin/signin_error/signin_error.html b/chrome/browser/resources/signin/signin_error/signin_error.html index c0ba54d..8510d635 100644 --- a/chrome/browser/resources/signin/signin_error/signin_error.html +++ b/chrome/browser/resources/signin/signin_error/signin_error.html
@@ -2,9 +2,8 @@ <html dir="$i18n{textdirection}" lang="$i18n{language}"> <head> <meta charset="utf-8"> - <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> + <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/html/polymer.html"> - <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> <link rel="import" href="signin_shared_css.html"> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> @@ -12,7 +11,7 @@ <link rel="import" href="chrome://resources/html/load_time_data.html"> <link rel="import" href="chrome://resources/html/util.html"> <custom-style> - <style include="signin-dialog-shared paper-button-style"> + <style include="signin-dialog-shared"> .details { line-height: 20px; margin-bottom: 8px; @@ -85,15 +84,15 @@ <p>$i18n{profileBlockedRemoveProfileSuggestion}</p> </div> <div class="action-container"> - <paper-button class="action-button" id="switchButton"> + <cr-button class="action-button" id="switchButton"> $i18n{signinErrorSwitchLabel} - </paper-button> - <paper-button id="closeButton"> + </cr-button> + <cr-button id="closeButton"> $i18n{signinErrorCloseLabel} - </paper-button> - <paper-button id="confirmButton" hidden> + </cr-button> + <cr-button id="confirmButton" hidden> $i18n{signinErrorOkLabel} - </paper-button> + </cr-button> </div> </div> </body>
diff --git a/chrome/browser/resources/signin/signin_error/signin_error.js b/chrome/browser/resources/signin/signin_error/signin_error.js index 749c99b..71d654c 100644 --- a/chrome/browser/resources/signin/signin_error/signin_error.js +++ b/chrome/browser/resources/signin/signin_error/signin_error.js
@@ -26,7 +26,7 @@ // on "enter" being pressed and the user hits "enter", perform the default // action of the dialog, which is "OK". if (e.key == 'Enter' && - !/^(A|PAPER-BUTTON)$/.test(document.activeElement.tagName)) { + !/^(A|CR-BUTTON)$/.test(document.activeElement.tagName)) { $('confirmButton').click(); e.preventDefault(); }
diff --git a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html index 1aa30c4..fffc18a7 100644 --- a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html +++ b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.html
@@ -1,10 +1,9 @@ <link rel="import" href="chrome://resources/html/polymer.html"> -<link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/html/cr.html"> <link rel="import" href="chrome://resources/html/load_time_data.html"> <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> -<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> <link rel="import" href="signin_shared_css.html"> <link rel="import" href="sync_confirmation_browser_proxy.html"> @@ -13,13 +12,13 @@ <dom-module id="sync-confirmation-app"> <template> - <style include="signin-dialog-shared paper-button-style"> + <style include="signin-dialog-shared"> :host { color: var(--cr-primary-text-color); display: block; } - paper-button { + cr-button { padding-inline-end: 16px; padding-inline-start: 16px; } @@ -31,13 +30,13 @@ width: 100%; } - paper-button:not(.action-button) { + cr-button:not(.action-button) { margin-inline-start: 8px; } <if expr="is_macosx or is_linux"> /* This works together with the button-flip in signin-dialog-shared. */ - paper-button:not(.action-button) { + cr-button:not(.action-button) { margin-inline-end: 8px; margin-inline-start: 0; } @@ -152,17 +151,17 @@ $i18n{syncConfirmationSettingsInfo} </div> <div class="action-container"> - <paper-button class="action-button" id="confirmButton" + <cr-button class="action-button" id="confirmButton" on-click="onConfirm_" consent-confirmation> $i18n{syncConfirmationConfirmLabel} - </paper-button> - <paper-button on-click="onUndo_"> + </cr-button> + <cr-button on-click="onUndo_"> $i18n{syncConfirmationUndoLabel} - </paper-button> - <paper-button id="settingsButton" on-click="onGoToSettings_" + </cr-button> + <cr-button id="settingsButton" on-click="onGoToSettings_" consent-confirmation> $i18n{syncConfirmationSettingsLabel} - </paper-button> + </cr-button> </div> </div> </template>
diff --git a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js index 44c95ea..57f29b84 100644 --- a/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js +++ b/chrome/browser/resources/signin/sync_confirmation/sync_confirmation_app.js
@@ -63,7 +63,7 @@ /** @private */ onKeyDown_: function(e) { - if (e.key == 'Enter' && !/^(A|PAPER-BUTTON)$/.test(e.path[0].tagName)) { + if (e.key == 'Enter' && !/^(A|CR-BUTTON)$/.test(e.path[0].tagName)) { this.onConfirm_(e); e.preventDefault(); }
diff --git a/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html b/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html index e920129..74e0523 100644 --- a/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html +++ b/chrome/browser/resources/signin/sync_confirmation/sync_disabled_confirmation.html
@@ -9,14 +9,13 @@ } </style> </custom-style> - <link rel="import" href="chrome://resources/cr_elements/paper_button_style_css.html"> + <link rel="import" href="chrome://resources/cr_elements/cr_button/cr_button.html"> <link rel="import" href="chrome://resources/html/polymer.html"> - <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> <link rel="import" href="signin_shared_css.html"> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> <custom-style> - <style include="signin-dialog-shared paper-button-style"> + <style include="signin-dialog-shared"> .details { padding: 0 24px; } @@ -56,13 +55,13 @@ </div> </div> <div class="action-container"> - <paper-button class="action-button" id="confirmButton" + <cr-button class="action-button" id="confirmButton" consent-confirmation> $i18n{syncDisabledConfirmationConfirmLabel} - </paper-button> - <paper-button id="undoButton"> + </cr-button> + <cr-button id="undoButton"> $i18n{syncDisabledConfirmationUndoLabel} - </paper-button> + </cr-button> </div> </div> </body>
diff --git a/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc b/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc index 51636e4..7a200bd8 100644 --- a/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc +++ b/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc
@@ -528,7 +528,7 @@ destruction_observer( new content::TestRenderWidgetHostViewDestructionObserver(first_view)); { - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes allow_renderer_crashes(frames[0]); frames[0]->GetProcess()->Shutdown(0); destruction_observer->Wait(); } @@ -544,7 +544,7 @@ new content::TestRenderWidgetHostViewDestructionObserver( frames[1]->GetView())); { - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes allow_renderer_crashes(frames[1]); frames[1]->GetProcess()->Shutdown(0); destruction_observer->Wait(); }
diff --git a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc index 82f58c2..c9f1039 100644 --- a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc +++ b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
@@ -656,7 +656,8 @@ IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, RendererDebugURL_NoLeakedThrottlePtrs) { // Allow crashes caused by the navigation to kChromeUICrashURL below. - content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes; + content::ScopedAllowRendererCrashes scoped_allow_renderer_crashes( + browser()->tab_strip_model()->GetActiveWebContents()); // We have checks in the throttle manager that we don't improperly leak // activation state throttles. It would be nice to test things directly but it
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc index 0403c1b..e692113 100644 --- a/chrome/browser/ui/ash/chrome_screenshot_grabber.cc +++ b/chrome/browser/ui/ash/chrome_screenshot_grabber.cc
@@ -80,7 +80,7 @@ std::string encoded; base::Base64Encode(png_data->data(), &encoded); { - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); // Send both HTML and and Image formats to clipboard. HTML format is needed // by ARC, while Image is needed by Hangout.
diff --git a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc index 1375380..26b89ff 100644 --- a/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc +++ b/chrome/browser/ui/ash/chrome_screenshot_grabber_browsertest.cc
@@ -71,7 +71,7 @@ bool IsImageClipboardAvailable() { return ui::Clipboard::GetForCurrentThread()->IsFormatAvailable( ui::ClipboardFormatType::GetBitmapType(), - ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardType::kCopyPaste); } scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc index 5bca344..63b2433 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
@@ -201,11 +201,7 @@ DCHECK(!instance_); instance_ = this; - // ShelfModel initializes the app list item and back button. DCHECK(model_); - DCHECK_EQ(2, model_->item_count()); - DCHECK_EQ(ash::kBackButtonId, model_->items()[0].id.app_id); - DCHECK_EQ(ash::kAppListId, model_->items()[1].id.app_id); if (!web_app::SystemWebAppManager::IsEnabled()) { settings_window_observer_ = std::make_unique<SettingsWindowObserver>(); @@ -885,12 +881,12 @@ const int max_index = model_->item_count(); const int index = model_->ItemIndexByID(shelf_id); - DCHECK_GT(index, 0); + DCHECK_GE(index, 0); ash::ShelfID shelf_id_before; std::vector<ash::ShelfID> shelf_ids_after; - for (int i = index - 1; i > 0; --i) { + for (int i = index - 1; i >= 0; --i) { shelf_id_before = model_->items()[i].id; if (IsPinned(shelf_id_before)) break; @@ -938,11 +934,6 @@ GetPinnedAppsFromSync(launcher_controller_helper_.get()); int index = 0; - // Skip the app list and back button if they exist. - if (model_->items()[0].type == ash::TYPE_BACK_BUTTON_DEPRECATED) - ++index; - if (model_->items()[1].type == ash::TYPE_APP_LIST_DEPRECATED) - ++index; // Apply pins in two steps. At the first step, go through the list of apps to // pin, move existing pin to current position specified by |index| or create
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc index f48d9fa0..f1d8bcc 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
@@ -1482,7 +1482,7 @@ EXPECT_EQ(0u, chrome::GetTotalBrowserCount()); // The first activation should create a browser at index 2 (App List @ 0 and // back button @ 1). - const ash::ShelfID browser_id = shelf_model()->items()[2].id; + const ash::ShelfID browser_id = shelf_model()->items()[0].id; SelectItem(browser_id, ui::ET_KEY_RELEASED); EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); // A second activation should not create a new instance. @@ -1661,7 +1661,7 @@ EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); EXPECT_EQ(1, browser()->tab_strip_model()->count()); EXPECT_EQ(0, browser()->tab_strip_model()->active_index()); - EXPECT_EQ(3, shelf_model()->item_count()); + EXPECT_EQ(1, shelf_model()->item_count()); aura::Window* window = browser()->window()->GetNativeWindow(); @@ -1672,7 +1672,7 @@ EXPECT_EQ(browser_id, id); ash::ShelfID app_id = CreateShortcut("app1"); - EXPECT_EQ(4, shelf_model()->item_count()); + EXPECT_EQ(2, shelf_model()->item_count()); // Create and activate a new tab for "app1" and expect an application ShelfID. SelectItem(app_id); @@ -1742,8 +1742,7 @@ // Get the number of items in the shelf and browser menu. int item_count = shelf_model()->item_count(); - // At least App List and back button should exist. - ASSERT_GE(item_count, 2); + ASSERT_GE(item_count, 0); size_t browser_count = NumberOfDetectedLauncherBrowsers(false); // Open a settings window. Number of browser items should remain unchanged, @@ -1894,13 +1893,10 @@ ASSERT_FALSE(IsItemPresentInMenu(menu2.get(), ash::MENU_CLOSE)); } -// Chrome's ShelfModel should have back button, AppList and browser items and -// delegates. +// Chrome's ShelfModel should have the browser item and delegate. IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, ShelfModelInitialization) { - EXPECT_EQ(3, shelf_model()->item_count()); - EXPECT_EQ(ash::kBackButtonId, shelf_model()->items()[0].id.app_id); - EXPECT_EQ(ash::kAppListId, shelf_model()->items()[1].id.app_id); - EXPECT_EQ(extension_misc::kChromeAppId, shelf_model()->items()[2].id.app_id); + EXPECT_EQ(1, shelf_model()->item_count()); + EXPECT_EQ(extension_misc::kChromeAppId, shelf_model()->items()[0].id.app_id); EXPECT_TRUE( - shelf_model()->GetShelfItemDelegate(shelf_model()->items()[2].id)); + shelf_model()->GetShelfItemDelegate(shelf_model()->items()[0].id)); }
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc index 038fffb5..e2644f1d 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
@@ -398,13 +398,13 @@ virtual void SetUpMultiUserScenario(syncer::SyncChangeList* user_a, syncer::SyncChangeList* user_b) { InitLauncherController(); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Set an empty pinned pref to begin with. syncer::SyncChangeList sync_list; InsertAddPinChange(&sync_list, 0, extension_misc::kChromeAppId); SendPinChanges(sync_list, true); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Assume all applications have been added already. extension_service_->AddExtension(extension1_.get()); @@ -417,7 +417,7 @@ extension_service_->AddExtension(extension8_.get()); extension_service_->AddExtension(extension_platform_app_.get()); // There should be nothing in the list by now. - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Set user a preferences. InsertAddPinChange(user_a, 0, extension1_->id()); @@ -1179,15 +1179,14 @@ TEST_F(ChromeLauncherControllerTest, DefaultApps) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + // The model should only contain the browser shortcut item. + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Pinning the non-default app. It should appear at the end. No default app // is currently installed. extension_service_->AddExtension(extension1_.get()); launcher_controller_->PinAppWithID(extension1_->id()); - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); // Install default apps in reverse order, compared how they are declared. // However pin positions should be in the order as they declared. Note, @@ -1195,16 +1194,15 @@ // Prefs are not yet synced. No default pin appears. extension_service_->AddExtension(extensionYoutubeApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); StartPrefSyncService(syncer::SyncDataList()); - EXPECT_EQ("Back, AppList, Chrome, Youtube, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Youtube, App1", GetPinnedAppStatus()); extension_service_->AddExtension(extensionDocApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, Doc, Youtube, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Doc, Youtube, App1", GetPinnedAppStatus()); extension_service_->AddExtension(extensionGmailApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, Gmail, Doc, Youtube, App1", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, Doc, Youtube, App1", GetPinnedAppStatus()); } TEST_F(ChromeLauncherControllerWithArcTest, ArcAppPinCrossPlatformWorkflow) { @@ -1238,7 +1236,7 @@ EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id2)); EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3)); - EXPECT_EQ("Back, AppList, App1, Chrome, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("App1, Chrome, App2, Gmail", GetPinnedAppStatus()); // Persist pin state, we don't have active pin for ARC apps yet, but pin // model should have it. @@ -1263,15 +1261,15 @@ EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3)); - EXPECT_EQ("Back, AppList, App1, Chrome, Fake App 0, App2, Fake App 1, Gmail", + EXPECT_EQ("App1, Chrome, Fake App 0, App2, Fake App 1, Gmail", GetPinnedAppStatus()); // Now move pins on ARC enabled platform. - model_->Move(2, 5); - model_->Move(4, 2); - model_->Move(4, 6); - model_->Move(5, 3); - EXPECT_EQ("Back, AppList, App2, Fake App 1, Chrome, App1, Fake App 0, Gmail", + model_->Move(0, 3); + model_->Move(2, 0); + model_->Move(2, 4); + model_->Move(3, 1); + EXPECT_EQ("App2, Fake App 1, Chrome, App1, Fake App 0, Gmail", GetPinnedAppStatus()); copy_sync_list = app_list_syncable_service_->GetAllSyncData(syncer::APP_LIST); @@ -1294,12 +1292,12 @@ EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id2)); EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3)); - EXPECT_EQ("Back, AppList, App2, Chrome, App1, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("App2, Chrome, App1, Gmail", GetPinnedAppStatus()); // Now move/remove pins on ARC disabled platform. - model_->Move(5, 3); + model_->Move(3, 1); launcher_controller_->UnpinAppWithID(extension2_->id()); - EXPECT_EQ("Back, AppList, Gmail, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Gmail, Chrome, App1", GetPinnedAppStatus()); EnablePlayStore(true); SendListOfArcApps(); @@ -1310,7 +1308,7 @@ EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id2)); EXPECT_TRUE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id3)); - EXPECT_EQ("Back, AppList, Fake App 1, Gmail, Chrome, App1, Fake App 0", + EXPECT_EQ("Fake App 1, Gmail, Chrome, App1, Fake App 0", GetPinnedAppStatus()); } @@ -1356,8 +1354,7 @@ GetPinnableForAppID(extensionDocApp_->id(), profile())); // Check the order of shelf pinned apps - EXPECT_EQ("Back, AppList, App2, Doc, App1, Chrome, Gmail", - GetPinnedAppStatus()); + EXPECT_EQ("App2, Doc, App1, Chrome, Gmail", GetPinnedAppStatus()); } // Check that the restauration of launcher items is happening in the same order @@ -1376,7 +1373,7 @@ EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Installing |extensionGmailApp_| should add it to the shelf - behind the // chrome icon. @@ -1384,18 +1381,18 @@ extension_service_->AddExtension(extensionGmailApp_.get()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); - EXPECT_EQ("Back, AppList, Chrome, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail", GetPinnedAppStatus()); // Installing |extension2_| should add it to the launcher - behind the // chrome icon, but in first location. extension_service_->AddExtension(extension2_.get()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); - EXPECT_EQ("Back, AppList, Chrome, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App2, Gmail", GetPinnedAppStatus()); // Installing |extension1_| should add it to the launcher - behind the // chrome icon, but in first location. extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus()); } // Check that the restauration of launcher items is happening in the same order @@ -1414,25 +1411,25 @@ EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Installing |extension2_| should add it to the launcher - behind the // chrome icon. extension_service_->AddExtension(extension2_.get()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App2", GetPinnedAppStatus()); // Installing |extension1_| should add it to the launcher - behind the // chrome icon, but in first location. extension_service_->AddExtension(extension1_.get()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); // Installing |extensionGmailApp_| should add it to the launcher - behind the // chrome icon, but in first location. extension_service_->AddExtension(extensionGmailApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus()); } // Check that the restauration of launcher items is happening in the same order @@ -1452,7 +1449,7 @@ EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension2_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Installing |extension2_| should add it to the shelf - behind the // chrome icon. @@ -1460,18 +1457,18 @@ extension_service_->AddExtension(extension2_.get()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App2", GetPinnedAppStatus()); // Installing |extension1_| should add it to the launcher - behind the // chrome icon, but in first location. extension_service_->AddExtension(extension1_.get()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); - EXPECT_EQ("Back, AppList, App1, Chrome, App2", GetPinnedAppStatus()); + EXPECT_EQ("App1, Chrome, App2", GetPinnedAppStatus()); // Installing |extensionGmailApp_| should add it to the launcher - behind the // chrome icon, but in first location. extension_service_->AddExtension(extensionGmailApp_.get()); - EXPECT_EQ("Back, AppList, App1, Chrome, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("App1, Chrome, App2, Gmail", GetPinnedAppStatus()); } // Check that syncing to a different state does the correct thing. @@ -1486,11 +1483,11 @@ // The shelf layout has always one static item at the beginning (App List). extension_service_->AddExtension(extension2_.get()); - EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App2", GetPinnedAppStatus()); extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); extension_service_->AddExtension(extensionGmailApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus()); // Change the order with increasing chrome position and decreasing position. syncer::SyncChangeList sync_list1; @@ -1499,7 +1496,7 @@ InsertAddPinChange(&sync_list1, 2, extension2_->id()); InsertAddPinChange(&sync_list1, 3, extension_misc::kChromeAppId); SendPinChanges(sync_list1, true); - EXPECT_EQ("Back, AppList, Gmail, App1, App2, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Gmail, App1, App2, Chrome", GetPinnedAppStatus()); syncer::SyncChangeList sync_list2; InsertAddPinChange(&sync_list2, 0, extension2_->id()); @@ -1507,7 +1504,7 @@ InsertAddPinChange(&sync_list2, 2, extension_misc::kChromeAppId); InsertAddPinChange(&sync_list2, 3, extension1_->id()); SendPinChanges(sync_list2, true); - EXPECT_EQ("Back, AppList, App2, Gmail, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("App2, Gmail, Chrome, App1", GetPinnedAppStatus()); // Check that the chrome icon can also be at the first possible location. syncer::SyncChangeList sync_list3; @@ -1515,99 +1512,97 @@ InsertAddPinChange(&sync_list3, 1, extension2_->id()); InsertAddPinChange(&sync_list3, 2, extension1_->id()); SendPinChanges(sync_list3, true); - EXPECT_EQ("Back, AppList, Chrome, Gmail, App2, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, App2, App1", GetPinnedAppStatus()); // Check that unloading of extensions works as expected. extension_service_->UnloadExtension(extension1_->id(), UnloadedExtensionReason::UNINSTALL); - EXPECT_EQ("Back, AppList, Chrome, Gmail, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, App2", GetPinnedAppStatus()); extension_service_->UnloadExtension(extension2_->id(), UnloadedExtensionReason::UNINSTALL); - EXPECT_EQ("Back, AppList, Chrome, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail", GetPinnedAppStatus()); // Check that an update of an extension does not crash the system. extension_service_->UnloadExtension(extensionGmailApp_->id(), UnloadedExtensionReason::UPDATE); - EXPECT_EQ("Back, AppList, Chrome, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail", GetPinnedAppStatus()); } // Test the V1 app interaction flow: run it, activate it, close it. TEST_F(ChromeLauncherControllerTest, V1AppRunActivateClose) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut item. + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is running should create a new shelf item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is running again should have no effect. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); // Reporting that the app is closed should remove its shelf item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is closed again should have no effect. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } // Test the V1 app interaction flow: pin it, run it, close it, unpin it. TEST_F(ChromeLauncherControllerTest, V1AppPinRunCloseUnpin) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut. + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Pinning the app should create a new shelf item. launcher_controller_->PinAppWithID(extension1_->id()); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is running should just update the existing item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is closed should just update the existing item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Unpinning the app should remove its shelf item. launcher_controller_->UnpinAppWithID(extension1_->id()); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); @@ -1617,43 +1612,42 @@ TEST_F(ChromeLauncherControllerTest, V1AppRunPinCloseUnpin) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut. + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is running should create a new shelf item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Pinning the app should just update the existing item. launcher_controller_->PinAppWithID(extension1_->id()); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is closed should just update the existing item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Unpinning the app should remove its shelf item. launcher_controller_->UnpinAppWithID(extension1_->id()); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); @@ -1663,43 +1657,42 @@ TEST_F(ChromeLauncherControllerTest, V1AppPinRunUnpinClose) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut item. + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Pinning the app should create a new shelf item. launcher_controller_->PinAppWithID(extension1_->id()); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is running should just update the existing item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Unpinning the app should just update the existing item. launcher_controller_->UnpinAppWithID(extension1_->id()); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_RUNNING, model_->items()[1].status); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_NE(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); // Reporting that the app is closed should remove its shelf item. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_EQ(nullptr, launcher_controller_->GetItem(ash::ShelfID(extension1_->id()))); @@ -1709,19 +1702,18 @@ TEST_F(ChromeLauncherControllerTest, CheckRunningV1AppOrder) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut item. + EXPECT_EQ(1, model_->item_count()); // Add a few running applications. launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_RUNNING); launcher_controller_->SetV1AppStatus(extension2_->id(), ash::STATUS_RUNNING); launcher_controller_->SetV1AppStatus(extensionGmailApp_->id(), ash::STATUS_RUNNING); - EXPECT_EQ(6, model_->item_count()); + EXPECT_EQ(4, model_->item_count()); // Note that this not only checks the order of applications but also the // running type. - EXPECT_EQ("Back, AppList, Chrome, app1, app2, gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, app1, app2, gmail", GetPinnedAppStatus()); // Remember the current order of applications for the current user. const AccountId& current_account_id = @@ -1730,33 +1722,33 @@ // Switch some items and check that restoring a user which was not yet // remembered changes nothing. - model_->Move(3, 4); - EXPECT_EQ("Back, AppList, Chrome, app2, app1, gmail", GetPinnedAppStatus()); + model_->Move(1, 2); + EXPECT_EQ("Chrome, app2, app1, gmail", GetPinnedAppStatus()); const AccountId second_fake_account_id( AccountId::FromUserEmail("second-fake-user@fake.com")); RestoreUnpinnedRunningApplicationOrder(second_fake_account_id); - EXPECT_EQ("Back, AppList, Chrome, app2, app1, gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, app2, app1, gmail", GetPinnedAppStatus()); // Restoring the stored user should however do the right thing. RestoreUnpinnedRunningApplicationOrder(current_account_id); - EXPECT_EQ("Back, AppList, Chrome, app1, app2, gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, app1, app2, gmail", GetPinnedAppStatus()); // Switch again some items and even delete one - making sure that the missing // item gets properly handled. - model_->Move(4, 5); + model_->Move(2, 3); launcher_controller_->SetV1AppStatus(extension1_->id(), ash::STATUS_CLOSED); - EXPECT_EQ("Back, AppList, Chrome, gmail, app2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, gmail, app2", GetPinnedAppStatus()); RestoreUnpinnedRunningApplicationOrder(current_account_id); - EXPECT_EQ("Back, AppList, Chrome, app2, gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, app2, gmail", GetPinnedAppStatus()); // Check that removing more items does not crash and changes nothing. launcher_controller_->SetV1AppStatus(extension2_->id(), ash::STATUS_CLOSED); RestoreUnpinnedRunningApplicationOrder(current_account_id); - EXPECT_EQ("Back, AppList, Chrome, gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, gmail", GetPinnedAppStatus()); launcher_controller_->SetV1AppStatus(extensionGmailApp_->id(), ash::STATUS_CLOSED); RestoreUnpinnedRunningApplicationOrder(current_account_id); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); } TEST_F(ChromeLauncherControllerWithArcTest, ArcDeferredLaunch) { @@ -2209,27 +2201,24 @@ EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id)); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id())); - EXPECT_EQ("Back, AppList, Chrome, App1, Fake App 0, App2", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, Fake App 0, App2", GetPinnedAppStatus()); UninstallArcApps(); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id)); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); SendListOfArcApps(); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id)); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); // Opt-Out/Opt-In remove item from the shelf. launcher_controller_->PinAppWithID(arc_app_id); - EXPECT_EQ("Back, AppList, Chrome, App1, App2, Fake App 0", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2, Fake App 0", GetPinnedAppStatus()); EnablePlayStore(false); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); EnablePlayStore(true); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); SendListOfArcApps(); - EXPECT_EQ("Back, AppList, Chrome, App1, App2, Fake App 0", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2, Fake App 0", GetPinnedAppStatus()); } // Validates that ARC app pins persist across OptOut/OptIn. @@ -2254,12 +2243,11 @@ EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id1)); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id())); EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id2)); - EXPECT_EQ("Back, AppList, Chrome, App1, Fake App 1, App2, Fake App 0", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, Fake App 1, App2, Fake App 0", GetPinnedAppStatus()); EnablePlayStore(false); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension1_->id())); EXPECT_FALSE(launcher_controller_->IsAppPinned(arc_app_id1)); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id())); @@ -2274,8 +2262,7 @@ EXPECT_TRUE(launcher_controller_->IsAppPinned(extension2_->id())); EXPECT_TRUE(launcher_controller_->IsAppPinned(arc_app_id2)); - EXPECT_EQ("Back, AppList, Chrome, App1, Fake App 1, App2, Fake App 0", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, Fake App 1, App2, Fake App 0", GetPinnedAppStatus()); } TEST_F(ChromeLauncherControllerWithArcTest, ArcCustomAppIcon) { @@ -2408,12 +2395,12 @@ // Create a browser item in the LauncherController. InitLauncherController(); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); { // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app( CreateRunningV1App(profile(), extension_misc::kGmailAppId, kGmailUrl)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); // After switching to a second user the item should be gone. std::string user2 = "user2"; @@ -2423,14 +2410,14 @@ const AccountId account_id( multi_user_util::GetAccountIdFromProfile(profile())); SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // After switching back the item should be back. SwitchActiveUser(account_id); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); // Note we destroy now the gmail app with the closure end. } - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } // Check edge cases with multi profile V1 apps in the shelf. @@ -2450,23 +2437,23 @@ // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app( CreateRunningV1App(profile2, extension_misc::kGmailAppId, kGmailUrl)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // However - switching to the user should show it. SwitchActiveUser(account_id2); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); // Second test: Remove the app when the user is not active and see that it // works. SwitchActiveUser(account_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // Note: the closure ends and the browser will go away. } - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); SwitchActiveUser(account_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } // Check edge case where a visiting V1 app gets closed (crbug.com/321374). @@ -2486,23 +2473,23 @@ // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app(CreateRunningV1App( profile(), extension_misc::kGmailAppId, kGmailLaunchURL)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } // After the app was destroyed, switch back. (which caused already a crash). SwitchActiveUser(account_id); // Create the same app again - which was also causing the crash. - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); { // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app(CreateRunningV1App( profile(), extension_misc::kGmailAppId, kGmailLaunchURL)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); } SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } // Check edge cases with multi profile V1 apps in the shelf. @@ -2523,23 +2510,23 @@ // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app( CreateRunningV1App(profile(), extension_misc::kGmailAppId, kGmailUrl)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // However - switching to the user should show it. SwitchActiveUser(account_id); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); // Second test: Remove the app when the user is not active and see that it // works. SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); v1_app.reset(); } - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); SwitchActiveUser(account_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } // Check that activating an item which is on another user's desktop, will bring @@ -2595,16 +2582,16 @@ // The shelf layout has always one static item at the beginning (App List). extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); extension_service_->AddExtension(extension2_.get()); // No new app icon will be generated. - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); // Set the app status as running, which will add an unpinned item. launcher_controller_->SetV1AppStatus(extension2_->id(), ash::STATUS_RUNNING); - EXPECT_EQ("Back, AppList, Chrome, App1, app2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, app2", GetPinnedAppStatus()); extension_service_->AddExtension(extensionGmailApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, Gmail, app2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, Gmail, app2", GetPinnedAppStatus()); // Now request to pin all items, which will pin the running unpinned items. syncer::SyncChangeList sync_list1; @@ -2612,7 +2599,7 @@ InsertAddPinChange(&sync_list1, 1, extension2_->id()); InsertAddPinChange(&sync_list1, 2, extension1_->id()); SendPinChanges(sync_list1, true); - EXPECT_EQ("Back, AppList, Chrome, Gmail, App2, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, App2, App1", GetPinnedAppStatus()); // Removing the requirement for app 2 to be pinned should convert it back to // running but not pinned. It should move towards the end of the shelf, after @@ -2621,13 +2608,13 @@ InsertAddPinChange(&sync_list2, 0, extensionGmailApp_->id()); InsertAddPinChange(&sync_list2, 1, extension1_->id()); SendPinChanges(sync_list2, true); - EXPECT_EQ("Back, AppList, Chrome, Gmail, App1, app2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, App1, app2", GetPinnedAppStatus()); // Removing an item should simply close it and everything should shift. syncer::SyncChangeList sync_list3; InsertRemovePinChange(&sync_list3, extension1_->id()); SendPinChanges(sync_list3, false /* reset_pin_model */); - EXPECT_EQ("Back, AppList, Chrome, Gmail, app2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, app2", GetPinnedAppStatus()); } // Check that a running unpinned V2 application will be properly pinned and @@ -2641,16 +2628,15 @@ SendPinChanges(sync_list0, true); // The shelf layout has always one static item at the beginning (app List). extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); extension_service_->AddExtension(extension_platform_app_.get()); // No new app icon will be generated. - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); // Add an unpinned but running V2 app. CreateRunningV2App(extension_platform_app_->id()); - EXPECT_EQ("Back, AppList, Chrome, App1, *platform_app", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, *platform_app", GetPinnedAppStatus()); extension_service_->AddExtension(extensionGmailApp_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, Gmail, *platform_app", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, Gmail, *platform_app", GetPinnedAppStatus()); // Now request to pin all items, which should pin the running unpinned item. syncer::SyncChangeList sync_list1; @@ -2658,8 +2644,7 @@ InsertAddPinChange(&sync_list1, 1, extension_platform_app_->id()); InsertAddPinChange(&sync_list1, 2, extension1_->id()); SendPinChanges(sync_list1, true); - EXPECT_EQ("Back, AppList, Chrome, Gmail, *Platform_App, App1", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, *Platform_App, App1", GetPinnedAppStatus()); // Removing the requirement for app 2 to be pinned should convert it back to // running but not pinned. It should move towards the end of the shelf, after @@ -2668,15 +2653,13 @@ InsertAddPinChange(&sync_list2, 0, extensionGmailApp_->id()); InsertAddPinChange(&sync_list2, 1, extension1_->id()); SendPinChanges(sync_list2, true); - EXPECT_EQ("Back, AppList, Chrome, Gmail, App1, *platform_app", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, App1, *platform_app", GetPinnedAppStatus()); // Removing an item should simply close it and everything should shift. syncer::SyncChangeList sync_list3; InsertAddPinChange(&sync_list3, 0, extensionGmailApp_->id()); SendPinChanges(sync_list3, true); - EXPECT_EQ("Back, AppList, Chrome, Gmail, *platform_app", - GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Gmail, *platform_app", GetPinnedAppStatus()); } // Each user has a different set of applications pinned. Check that when @@ -2689,23 +2672,21 @@ // Show user 1. SendPinChanges(user_a, true); - EXPECT_EQ( - "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", - GetPinnedAppStatus()); + EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", + GetPinnedAppStatus()); // Show user 2. SendPinChanges(user_b, true); - EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("App6, App7, App8, Chrome", GetPinnedAppStatus()); // Switch back to 1. SendPinChanges(user_a, true); - EXPECT_EQ( - "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", - GetPinnedAppStatus()); + EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", + GetPinnedAppStatus()); // Switch back to 2. SendPinChanges(user_b, true); - EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("App6, App7, App8, Chrome", GetPinnedAppStatus()); } // Each user has a different set of applications pinned, and one user has an @@ -2722,25 +2703,21 @@ // Show user 1. SendPinChanges(user_a, true); - EXPECT_EQ( - "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", - GetPinnedAppStatus()); + EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", + GetPinnedAppStatus()); // Show user 2. SendPinChanges(user_b, true); - EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome, *platform_app", - GetPinnedAppStatus()); + EXPECT_EQ("App6, App7, App8, Chrome, *platform_app", GetPinnedAppStatus()); // Switch back to 1. SendPinChanges(user_a, true); - EXPECT_EQ( - "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", - GetPinnedAppStatus()); + EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, App5, Chrome", + GetPinnedAppStatus()); // Switch back to 2. SendPinChanges(user_b, true); - EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome, *platform_app", - GetPinnedAppStatus()); + EXPECT_EQ("App6, App7, App8, Chrome, *platform_app", GetPinnedAppStatus()); } // Each user has a different set of applications pinned, and one user has an @@ -2759,22 +2736,19 @@ // Show user 1. SendPinChanges(user_a, true); SetShelfChromeIconIndex(5); - EXPECT_EQ( - "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, Chrome, App5", - GetPinnedAppStatus()); + EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, Chrome, App5", + GetPinnedAppStatus()); // Show user 2. SendPinChanges(user_b, true); - SetShelfChromeIconIndex(4); - EXPECT_EQ("Back, AppList, App6, App7, App8, Chrome, *platform_app", - GetPinnedAppStatus()); + SetShelfChromeIconIndex(3); + EXPECT_EQ("App6, App7, App8, Chrome, *platform_app", GetPinnedAppStatus()); // Switch back to 1. SendPinChanges(user_a, true); SetShelfChromeIconIndex(5); - EXPECT_EQ( - "Back, AppList, App1, App2, Gmail, *Platform_App, Doc, Chrome, App5", - GetPinnedAppStatus()); + EXPECT_EQ("App1, App2, Gmail, *Platform_App, Doc, Chrome, App5", + GetPinnedAppStatus()); } TEST_F(ChromeLauncherControllerTest, Policy) { @@ -2793,19 +2767,19 @@ // Only |extension2_| should get pinned. |extension1_| is specified but not // installed, and |extensionGmailApp_| is part of the default set, but that // shouldn't take effect when the policy override is in place. - EXPECT_EQ("Back, AppList, Chrome, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App2", GetPinnedAppStatus()); // Installing |extension1_| should add it to the launcher. Note, App1 goes // before App2 that is aligned with the pin order in policy. extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); // Removing |extension1_| from the policy should not be reflected in the // launcher and pin will exist. policy_value.Remove(0, NULL); profile()->GetTestingPrefService()->SetManagedPref( prefs::kPolicyPinnedLauncherApps, policy_value.CreateDeepCopy()); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); } TEST_F(ChromeLauncherControllerTest, UnpinWithUninstall) { @@ -3027,9 +3001,8 @@ InitLauncherControllerWithBrowser(); StartPrefSyncService(syncer::SyncDataList()); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut item. + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(extensionGmailApp_->id())); // Installing |extensionGmailApp_| pins it to the launcher. @@ -3142,20 +3115,20 @@ multi_user_util::GetAccountIdFromProfile(profile())); const AccountId account_id2( multi_user_util::GetAccountIdFromProfile(profile2)); - // Check that there is a browser, back button and a app launcher. - EXPECT_EQ(3, model_->item_count()); + // Check that there is a browser. + EXPECT_EQ(1, model_->item_count()); // Add a v2 app. V2App v2_app(profile(), extension1_.get()); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); // After switching users the item should go away. SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // And it should come back when switching back. SwitchActiveUser(account_id); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); } // Check that V2 applications are creating items properly in edge cases: @@ -3171,35 +3144,35 @@ const AccountId account_id2( multi_user_util::GetAccountIdFromProfile(profile2)); // Check that there is a browser, back button and a app launcher. - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // Switch to an inactive user. SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // Add the v2 app to the inactive user and check that no item was added to // the launcher. { V2App v2_app(profile(), extension1_.get()); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); // Switch to the primary user and check that the item is shown. SwitchActiveUser(account_id); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); // Switch to the second user and check that the item goes away - even if the // item gets closed. SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } - // After the application was killed there should be still 2 items. - EXPECT_EQ(3, model_->item_count()); + // After the application was killed there should still be 1 item. + EXPECT_EQ(1, model_->item_count()); // Switching then back to the default user should not show the additional item // anymore. SwitchActiveUser(account_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } TEST_F(ChromeLauncherControllerTest, Active) { @@ -3338,39 +3311,39 @@ const AccountId account_id2( multi_user_util::GetAccountIdFromProfile(profile2)); SwitchActiveUser(account_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); V2App v2_app_1(profile(), extension1_.get()); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); { // Hide and show the app. v2_app_1.window()->Hide(); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); v2_app_1.window()->Show(extensions::AppWindow::SHOW_ACTIVE); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); } { // Switch user, hide and show the app and switch back. SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); v2_app_1.window()->Hide(); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); v2_app_1.window()->Show(extensions::AppWindow::SHOW_ACTIVE); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); SwitchActiveUser(account_id); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); } { // Switch user, hide the app, switch back and then show it again. SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); v2_app_1.window()->Hide(); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); SwitchActiveUser(account_id); // The following expectation does not work in current impl. It was working @@ -3380,22 +3353,22 @@ // EXPECT_EQ(2, model_->item_count()); v2_app_1.window()->Show(extensions::AppWindow::SHOW_ACTIVE); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); } { // Create a second app, hide and show it and then hide both apps. V2App v2_app_2(profile(), extension1_.get()); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); v2_app_2.window()->Hide(); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); v2_app_2.window()->Show(extensions::AppWindow::SHOW_ACTIVE); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); v2_app_1.window()->Hide(); v2_app_2.window()->Hide(); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); } } @@ -3414,32 +3387,32 @@ const std::string app_id = extension1_->id(); extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Add a spinner to the shelf launcher_controller_->GetShelfSpinnerController()->AddSpinnerToShelf( app_id, std::make_unique<ShelfSpinnerItemController>(app_id)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_TRUE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Switch to a new profile SwitchActiveUser(account_id2); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Switch back SwitchActiveUser(account_id); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_TRUE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Close the spinner launcher_controller_->GetShelfSpinnerController()->CloseSpinner(app_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); } @@ -3460,14 +3433,14 @@ const std::string app_id = extension1_->id(); extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Pin an app to the shelf launcher_controller_->PinAppWithID(app_id); EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); @@ -3475,28 +3448,28 @@ launcher_controller_->GetShelfSpinnerController()->AddSpinnerToShelf( app_id, std::make_unique<ShelfSpinnerItemController>(app_id)); EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_TRUE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Switch to a new profile SwitchActiveUser(account_id2); EXPECT_FALSE(launcher_controller_->IsAppPinned(app_id)); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Switch back SwitchActiveUser(account_id); EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_TRUE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); // Close the spinner launcher_controller_->GetShelfSpinnerController()->CloseSpinner(app_id); EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id)); - EXPECT_EQ(4, model_->item_count()); + EXPECT_EQ(2, model_->item_count()); EXPECT_FALSE( launcher_controller_->GetShelfSpinnerController()->HasApp(app_id)); } @@ -3654,9 +3627,7 @@ TestLauncherControllerHelper* helper = new TestLauncherControllerHelper; SetLauncherControllerHelper(helper); - EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type); - EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type); - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type); + EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[0].type); TabStripModel* tab_strip_model = browser()->tab_strip_model(); EXPECT_EQ(0, tab_strip_model->count()); @@ -3671,19 +3642,15 @@ EXPECT_TRUE(launcher_controller_->IsAppPinned("1")); launcher_controller_->PinAppWithID("2"); - EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type); - EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type); - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[4].type); - - // Move browser shortcut item from index 1 to index 3. - model_->Move(2, 4); - EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type); - EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type); + EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[0].type); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[2].type); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[4].type); + + // Move browser shortcut item from index 0 to index 2. + model_->Move(0, 2); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[0].type); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type); RecreateLauncherController(); helper = new TestLauncherControllerHelper(profile()); @@ -3693,11 +3660,9 @@ launcher_controller_->Init(); // Check ShelfItems are restored after resetting ChromeLauncherController. - EXPECT_EQ(ash::TYPE_BACK_BUTTON_DEPRECATED, model_->items()[0].type); - EXPECT_EQ(ash::TYPE_APP_LIST_DEPRECATED, model_->items()[1].type); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[2].type); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[4].type); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[0].type); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, model_->items()[2].type); } // Verifies pinned apps are persisted and restored. @@ -3837,7 +3802,7 @@ // Initial run, ARC is not managed and disabled, Play Store pin should be // available. ValidateArcState(false, false, arc::ArcSessionManager::State::STOPPED, - "Back, AppList, Chrome, Play Store"); + "Chrome, Play Store"); // ARC is managed and enabled, Play Store pin should be available. // Note: CHECKING_ANDROID_MANAGEMENT here means that opt-in flow is skipped. @@ -3846,40 +3811,40 @@ base::RunLoop().RunUntilIdle(); ValidateArcState(true, true, arc::ArcSessionManager::State::CHECKING_ANDROID_MANAGEMENT, - "Back, AppList, Chrome, Play Store"); + "Chrome, Play Store"); // ARC is managed and disabled, Play Store pin should not be available. profile()->GetTestingPrefService()->SetManagedPref( arc::prefs::kArcEnabled, std::make_unique<base::Value>(false)); base::RunLoop().RunUntilIdle(); ValidateArcState(false, true, arc::ArcSessionManager::State::STOPPED, - "Back, AppList, Chrome"); + "Chrome"); // ARC is not managed and disabled, Play Store pin should be available. profile()->GetTestingPrefService()->RemoveManagedPref( arc::prefs::kArcEnabled); base::RunLoop().RunUntilIdle(); ValidateArcState(false, false, arc::ArcSessionManager::State::STOPPED, - "Back, AppList, Chrome, Play Store"); + "Chrome, Play Store"); // ARC is not managed and enabled, Play Store pin should be available. // Note: NEGOTIATING_TERMS_OF_SERVICE here means that opt-in flow starts. EnablePlayStore(true); ValidateArcState(true, false, arc::ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE, - "Back, AppList, Chrome, Play Store"); + "Chrome, Play Store"); // User disables ARC. ARC is not managed and disabled, Play Store pin should // be automatically removed. EnablePlayStore(false); ValidateArcState(false, false, arc::ArcSessionManager::State::STOPPED, - "Back, AppList, Chrome"); + "Chrome"); // Even if re-enable it again, Play Store pin does not appear automatically. EnablePlayStore(true); ValidateArcState(true, false, arc::ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE, - "Back, AppList, Chrome"); + "Chrome"); } // Test the application menu of a shelf item with multiple ARC windows. @@ -4152,7 +4117,7 @@ InsertAddPinChange(&sync_list, 1, extensionGmailApp_->id()); SendPinChanges(sync_list, true); - EXPECT_EQ("Back, AppList, Chrome, App1, App2, Gmail", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2, Gmail", GetPinnedAppStatus()); const syncer::StringOrdinal position_chrome = app_list_syncable_service_->GetPinPosition(extension_misc::kChromeAppId); @@ -4169,8 +4134,8 @@ // Move Chrome between App1 and App2. // Note, move target_index is in context when moved element is removed from // array first. - model_->Move(2, 3); - EXPECT_EQ("Back, AppList, App1, Chrome, App2, Gmail", GetPinnedAppStatus()); + model_->Move(0, 1); + EXPECT_EQ("App1, Chrome, App2, Gmail", GetPinnedAppStatus()); // Expect sync positions for only Chrome is updated and its resolution is // after all duplicated ordinals. @@ -4200,7 +4165,7 @@ InsertAddPinChange(&sync_list, 1, extension2_->id()); SendPinChanges(sync_list, true); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); syncer::SyncDataList copy_sync_list = app_list_syncable_service_->GetAllSyncData(syncer::APP_LIST); @@ -4209,35 +4174,34 @@ RecreateLauncherController()->Init(); // Pinned state should not change. - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); launcher_controller_->UnpinAppWithID(extension2_->id()); - EXPECT_EQ("Back, AppList, Chrome, App1", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1", GetPinnedAppStatus()); // Resume syncing and sync information overrides local copy. StartAppSyncService(copy_sync_list); - EXPECT_EQ("Back, AppList, Chrome, App1, App2", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, App1, App2", GetPinnedAppStatus()); } // Test the Settings can be pinned and unpinned. TEST_F(ChromeLauncherControllerTest, InternalAppPinUnpin) { InitLauncherController(); - // The model should only contain the browser shortcut, app list and back - // button items. - EXPECT_EQ(3, model_->item_count()); + // The model should only contain the browser shortcut item. + EXPECT_EQ(1, model_->item_count()); const std::string app_id = app_list::kInternalAppIdSettings; EXPECT_FALSE(launcher_controller_->IsAppPinned(app_id)); // Pin Settings. launcher_controller_->PinAppWithID(app_id); - EXPECT_EQ(4, model_->item_count()); - EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[3].type); - EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[3].status); + EXPECT_EQ(2, model_->item_count()); + EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[1].type); + EXPECT_EQ(ash::STATUS_CLOSED, model_->items()[1].status); EXPECT_TRUE(launcher_controller_->IsAppPinned(app_id)); // Unpin Settings. launcher_controller_->UnpinAppWithID(app_id); - EXPECT_EQ(3, model_->item_count()); + EXPECT_EQ(1, model_->item_count()); EXPECT_FALSE(launcher_controller_->IsAppPinned(app_id)); } @@ -4460,22 +4424,22 @@ syncer::SyncChangeList sync_list; InsertAddPinChange(&sync_list, 1, crostini::kCrostiniTerminalId); SendPinChanges(sync_list, true); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Reload after allowing Crostini UI crostini::CrostiniTestHelper test_helper(profile()); // TODO(crubug.com/918739): Fix pins are not refreshed on enabling Crostini. // As a workaround add any app that triggers pin update. extension_service_->AddExtension(extension1_.get()); - EXPECT_EQ("Back, AppList, Chrome, Terminal", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Terminal", GetPinnedAppStatus()); // Unpin the Terminal launcher_controller_->UnpinAppWithID(crostini::kCrostiniTerminalId); - EXPECT_EQ("Back, AppList, Chrome", GetPinnedAppStatus()); + EXPECT_EQ("Chrome", GetPinnedAppStatus()); // Pin Terminal again. launcher_controller_->PinAppWithID(crostini::kCrostiniTerminalId); - EXPECT_EQ("Back, AppList, Chrome, Terminal", GetPinnedAppStatus()); + EXPECT_EQ("Chrome, Terminal", GetPinnedAppStatus()); } // TODO(crbug.com/846546) Recognising app id from the browser app_name is only
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller.h b/chrome/browser/ui/autofill/autofill_popup_controller.h index c7483db..6357f91 100644 --- a/chrome/browser/ui/autofill/autofill_popup_controller.h +++ b/chrome/browser/ui/autofill/autofill_popup_controller.h
@@ -49,11 +49,6 @@ // Removes the suggestion at the given index. virtual bool RemoveSuggestion(int index) = 0; - // Returns the background color ID of the row item according to its |index|, - // or default popup background otherwise. - virtual ui::NativeTheme::ColorId GetBackgroundColorIDForRow( - int index) const = 0; - // Change which line is currently selected by the user. virtual void SetSelectedLine(base::Optional<int> selected_line) = 0;
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc index e26c6b6..a30812c 100644 --- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc +++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
@@ -409,13 +409,6 @@ return true; } -ui::NativeTheme::ColorId -AutofillPopupControllerImpl::GetBackgroundColorIDForRow(int index) const { - return selected_line_ && index == *selected_line_ - ? ui::NativeTheme::kColorId_ResultsTableHoveredBackground - : ui::NativeTheme::kColorId_ResultsTableNormalBackground; -} - base::Optional<int> AutofillPopupControllerImpl::selected_line() const { return selected_line_; }
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.h b/chrome/browser/ui/autofill/autofill_popup_controller_impl.h index bbcbabe..e5db4f0 100644 --- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.h +++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.h
@@ -20,7 +20,6 @@ #include "ui/accessibility/ax_enums.mojom.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_f.h" -#include "ui/native_theme/native_theme.h" namespace content { struct NativeWebKeyboardEvent; @@ -109,7 +108,6 @@ base::string16* title, base::string16* body) override; bool RemoveSuggestion(int list_index) override; - ui::NativeTheme::ColorId GetBackgroundColorIDForRow(int index) const override; void SetSelectedLine(base::Optional<int> selected_line) override; base::Optional<int> selected_line() const override; const AutofillPopupLayoutModel& layout_model() const override;
diff --git a/chrome/browser/ui/autofill/autofill_popup_layout_model.cc b/chrome/browser/ui/autofill/autofill_popup_layout_model.cc index e7cebe7..4235e54 100644 --- a/chrome/browser/ui/autofill/autofill_popup_layout_model.cc +++ b/chrome/browser/ui/autofill/autofill_popup_layout_model.cc
@@ -206,17 +206,6 @@ return smaller_font_list_; } -ui::NativeTheme::ColorId AutofillPopupLayoutModel::GetValueFontColorIDForRow( - size_t index) const { - std::vector<autofill::Suggestion> suggestions = delegate_->GetSuggestions(); - switch (suggestions[index].frontend_id) { - case POPUP_ITEM_ID_INSECURE_CONTEXT_PAYMENT_DISABLED_MESSAGE: - return ui::NativeTheme::kColorId_ResultsTableDimmedText; - default: - return ui::NativeTheme::kColorId_ResultsTableNormalText; - } -} - gfx::ImageSkia AutofillPopupLayoutModel::GetIconImage(size_t index) const { std::vector<autofill::Suggestion> suggestions = delegate_->GetSuggestions(); if (!suggestions[index].custom_icon.IsEmpty()) @@ -331,7 +320,7 @@ view_common_ = std::move(view_common); } -const gfx::Rect AutofillPopupLayoutModel::RoundedElementBounds() const { +gfx::Rect AutofillPopupLayoutModel::RoundedElementBounds() const { return gfx::ToEnclosingRect(delegate_->element_bounds()); }
diff --git a/chrome/browser/ui/autofill/autofill_popup_layout_model.h b/chrome/browser/ui/autofill/autofill_popup_layout_model.h index aef122de..da21fa1 100644 --- a/chrome/browser/ui/autofill/autofill_popup_layout_model.h +++ b/chrome/browser/ui/autofill/autofill_popup_layout_model.h
@@ -13,8 +13,6 @@ #include "chrome/browser/ui/autofill/popup_view_common.h" #include "ui/gfx/font_list.h" #include "ui/gfx/geometry/rect.h" -#include "ui/gfx/native_widget_types.h" -#include "ui/native_theme/native_theme.h" namespace gfx { class ImageSkia; @@ -71,9 +69,6 @@ const gfx::FontList& GetValueFontListForRow(size_t index) const; const gfx::FontList& GetLabelFontListForRow(size_t index) const; - // Returns the value font color ID of the row item according to its |index|. - ui::NativeTheme::ColorId GetValueFontColorIDForRow(size_t index) const; - // Returns the icon image of the item at |index| in the popup. gfx::ImageSkia GetIconImage(size_t index) const; #endif @@ -105,7 +100,7 @@ private: // Returns the enclosing rectangle for the element_bounds. - const gfx::Rect RoundedElementBounds() const; + gfx::Rect RoundedElementBounds() const; #if !defined(OS_ANDROID) // The fonts for the popup text.
diff --git a/chrome/browser/ui/bookmarks/bookmark_stats.cc b/chrome/browser/ui/bookmarks/bookmark_stats.cc index aca328d..ffa936f4 100644 --- a/chrome/browser/ui/bookmarks/bookmark_stats.cc +++ b/chrome/browser/ui/bookmarks/bookmark_stats.cc
@@ -12,21 +12,6 @@ namespace { -void RecordNodeDepth(const BookmarkNode* node) { - if (!node) - return; - - // In the cases where a bookmark node is provided, record the depth of the - // bookmark in the tree. - int depth = 0; - for (const BookmarkNode* iter = node; iter != NULL; iter = iter->parent()) { - depth++; - } - // Record |depth - 2| to offset the invisible root node and permanent nodes - // (Bookmark Bar, Mobile Bookmarks or Other Bookmarks) - UMA_HISTOGRAM_COUNTS_1M("Bookmarks.LaunchDepth", depth - 2); -} - bool IsBookmarkBarLocation(BookmarkLaunchLocation location) { return location == BOOKMARK_LAUNCH_LOCATION_DETACHED_BAR || location == BOOKMARK_LAUNCH_LOCATION_ATTACHED_BAR || @@ -35,8 +20,7 @@ } // namespace -void RecordBookmarkLaunch(const BookmarkNode* node, - BookmarkLaunchLocation location, +void RecordBookmarkLaunch(BookmarkLaunchLocation location, profile_metrics::BrowserProfileType profile_type) { if (IsBookmarkBarLocation(location)) { base::RecordAction(base::UserMetricsAction("ClickedBookmarkBarURLButton")); @@ -51,16 +35,13 @@ BOOKMARK_LAUNCH_LOCATION_LIMIT); UMA_HISTOGRAM_ENUMERATION("Bookmarks.UsageCountPerProfileType", profile_type); - RecordNodeDepth(node); } -void RecordBookmarkFolderLaunch(const BookmarkNode* node, - BookmarkLaunchLocation location) { - if (IsBookmarkBarLocation(location)) +void RecordBookmarkFolderLaunch(BookmarkLaunchLocation location) { + if (IsBookmarkBarLocation(location)) { base::RecordAction( base::UserMetricsAction("MiddleClickedBookmarkBarFolder")); - - RecordNodeDepth(node); + } } void RecordBookmarkFolderOpen(BookmarkLaunchLocation location) {
diff --git a/chrome/browser/ui/bookmarks/bookmark_stats.h b/chrome/browser/ui/bookmarks/bookmark_stats.h index 32717631..e5c495b2 100644 --- a/chrome/browser/ui/bookmarks/bookmark_stats.h +++ b/chrome/browser/ui/bookmarks/bookmark_stats.h
@@ -7,10 +7,6 @@ #include "components/profile_metrics/browser_profile_type.h" -namespace bookmarks { -class BookmarkNode; -} - // This enum is used for the Bookmarks.EntryPoint histogram. enum BookmarkEntryPoint { BOOKMARK_ENTRY_POINT_ACCELERATOR, @@ -46,14 +42,12 @@ }; // Records the launch of a bookmark for UMA purposes. -void RecordBookmarkLaunch(const bookmarks::BookmarkNode* node, - BookmarkLaunchLocation location, +void RecordBookmarkLaunch(BookmarkLaunchLocation location, profile_metrics::BrowserProfileType profile_type); // Records the user launching all bookmarks in a folder (via middle-click, etc.) // for UMA purposes. -void RecordBookmarkFolderLaunch(const bookmarks::BookmarkNode* node, - BookmarkLaunchLocation location); +void RecordBookmarkFolderLaunch(BookmarkLaunchLocation location); // Records the user opening a folder of bookmarks for UMA purposes. void RecordBookmarkFolderOpen(BookmarkLaunchLocation location);
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index e4773b83..784bf153 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc
@@ -612,10 +612,12 @@ browser_->OpenFile(); break; case IDC_CREATE_SHORTCUT: + base::RecordAction(base::UserMetricsAction("CreateShortcut")); CreateBookmarkAppFromCurrentWebContents(browser_, true /* force_shortcut_app */); break; case IDC_INSTALL_PWA: + base::RecordAction(base::UserMetricsAction("InstallWebAppFromMenu")); CreateBookmarkAppFromCurrentWebContents(browser_, false /* force_shortcut_app */); break;
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index 9cf30f3..54e9b05 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc
@@ -1296,7 +1296,7 @@ } void CopyURL(Browser* browser) { - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); scw.WriteText(base::UTF8ToUTF16(browser->tab_strip_model() ->GetActiveWebContents() ->GetVisibleURL() @@ -1332,6 +1332,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) void CreateBookmarkAppFromCurrentWebContents(Browser* browser, bool force_shortcut_app) { + // TODO(alancutter): Legacy metric to remove in ~M80. base::RecordAction(UserMetricsAction("CreateHostedApp")); web_app::CreateWebAppFromCurrentWebContents(browser, force_shortcut_app, base::DoNothing());
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm index b63787ec..cfa989f 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm
@@ -105,7 +105,7 @@ ui::PAGE_TRANSITION_AUTO_BOOKMARK, false); browser->OpenURL(params); RecordBookmarkLaunch( - node, BOOKMARK_LAUNCH_LOCATION_TOP_MENU, + BOOKMARK_LAUNCH_LOCATION_TOP_MENU, ProfileMetrics::GetBrowserProfileType(bridge_->GetProfile())); }
diff --git a/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm b/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm index d2003a3..e99167d 100644 --- a/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm +++ b/chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.mm
@@ -24,7 +24,7 @@ if (!bookmark_tab_helper_) bookmark_tab_helper_ = BookmarkTabHelper::FromWebContents(contents); - bookmark_drag_data_.ReadFromClipboard(ui::CLIPBOARD_TYPE_DRAG); + bookmark_drag_data_.ReadFromClipboard(ui::ClipboardType::kDrag); } void WebDragBookmarkHandlerMac::OnDragOver() {
diff --git a/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm b/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm index c28e82a5..b5ac0ed 100644 --- a/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/touchbar/credit_card_autofill_touch_bar_controller_unittest.mm
@@ -80,8 +80,6 @@ MOCK_METHOD3(GetRemovalConfirmationText, bool(int index, base::string16* title, base::string16* body)); MOCK_METHOD1(RemoveSuggestion, bool(int index)); - MOCK_CONST_METHOD1(GetBackgroundColorIDForRow, - ui::NativeTheme::ColorId(int index)); MOCK_METHOD1(SetSelectedLine, void(base::Optional<int> selected_line)); MOCK_CONST_METHOD0(selected_line, base::Optional<int>()); const autofill::AutofillPopupLayoutModel& layout_model() const override {
diff --git a/chrome/browser/ui/extensions/hosted_app_browsertest.cc b/chrome/browser/ui/extensions/hosted_app_browsertest.cc index e9ff6da..72887321 100644 --- a/chrome/browser/ui/extensions/hosted_app_browsertest.cc +++ b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
@@ -18,6 +18,7 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "base/test/bind_test_util.h" +#include "base/test/metrics/user_action_tester.h" #include "base/test/scoped_feature_list.h" #include "base/values.h" #include "build/build_config.h" @@ -1341,6 +1342,7 @@ } IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest, InstallInstallableSite) { + base::UserActionTester user_action_tester; ASSERT_TRUE(https_server()->Start()); NavigateToURLAndWait(browser(), GetInstallableAppURL()); @@ -1373,9 +1375,13 @@ EXPECT_EQ(extensions::GetLaunchContainer( extensions::ExtensionPrefs::Get(browser()->profile()), app), extensions::LAUNCH_CONTAINER_WINDOW); + + EXPECT_EQ(1, user_action_tester.GetActionCount("InstallWebAppFromMenu")); + EXPECT_EQ(0, user_action_tester.GetActionCount("CreateShortcut")); } IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest, CreateShortcutForInstallableSite) { + base::UserActionTester user_action_tester; ASSERT_TRUE(https_server()->Start()); NavigateToURLAndWait(browser(), GetInstallableAppURL()); @@ -1392,6 +1398,9 @@ EXPECT_EQ(extensions::GetLaunchContainer( extensions::ExtensionPrefs::Get(browser()->profile()), app), extensions::LAUNCH_CONTAINER_TAB); + + EXPECT_EQ(0, user_action_tester.GetActionCount("InstallWebAppFromMenu")); + EXPECT_EQ(1, user_action_tester.GetActionCount("CreateShortcut")); } // Tests that the command for OpenActiveTabInPwaWindow is available for secure @@ -1682,7 +1691,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); base::string16 result; - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); EXPECT_EQ(result, base::UTF8ToUTF16(kExampleURL)); }
diff --git a/chrome/browser/ui/libgtkui/native_theme_gtk.cc b/chrome/browser/ui/libgtkui/native_theme_gtk.cc index 1cc057d..c72e78b 100644 --- a/chrome/browser/ui/libgtkui/native_theme_gtk.cc +++ b/chrome/browser/ui/libgtkui/native_theme_gtk.cc
@@ -280,27 +280,6 @@ case ui::NativeTheme::kColorId_TableHeaderSeparator: return GetBorderColor("GtkTreeView#treeview.view GtkButton#button"); - // Results Table - case ui::NativeTheme::kColorId_ResultsTableNormalBackground: - return SkColorFromColorId( - ui::NativeTheme::kColorId_TextfieldDefaultBackground); - case ui::NativeTheme::kColorId_ResultsTableHoveredBackground: - return color_utils::AlphaBlend( - SkColorFromColorId( - ui::NativeTheme::kColorId_TextfieldDefaultBackground), - SkColorFromColorId( - ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused), - 0.5f); - case ui::NativeTheme::kColorId_ResultsTableNormalText: - return SkColorFromColorId( - ui::NativeTheme::kColorId_TextfieldDefaultColor); - case ui::NativeTheme::kColorId_ResultsTableDimmedText: - return color_utils::AlphaBlend( - SkColorFromColorId(ui::NativeTheme::kColorId_TextfieldDefaultColor), - SkColorFromColorId( - ui::NativeTheme::kColorId_TextfieldDefaultBackground), - 0.5f); - // Throbber // TODO(thomasanderson): Render GtkSpinner directly. case ui::NativeTheme::kColorId_ThrobberSpinningColor:
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc index 8aef5e35..f34c87c0 100644 --- a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc +++ b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
@@ -477,7 +477,7 @@ } void ChromeOmniboxClient::OnBookmarkLaunched() { - RecordBookmarkLaunch(nullptr, BOOKMARK_LAUNCH_LOCATION_OMNIBOX, + RecordBookmarkLaunch(BOOKMARK_LAUNCH_LOCATION_OMNIBOX, ProfileMetrics::GetBrowserProfileType(profile_)); }
diff --git a/chrome/browser/ui/omnibox/clipboard_utils.cc b/chrome/browser/ui/omnibox/clipboard_utils.cc index 46282d2..05ac90a 100644 --- a/chrome/browser/ui/omnibox/clipboard_utils.cc +++ b/chrome/browser/ui/omnibox/clipboard_utils.cc
@@ -15,9 +15,9 @@ // Try text format. ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); if (clipboard->IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextWType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)) { + ui::ClipboardType::kCopyPaste)) { base::string16 text; - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &text); text = text.substr(0, kMaxClipboardTextLength); return OmniboxView::SanitizeTextForPaste(text); } @@ -30,7 +30,7 @@ // cannonicalized, which is not what the user expects. By pasting in this // order, we are sure to paste what the user copied. if (clipboard->IsFormatAvailable(ui::ClipboardFormatType::GetUrlWType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)) { + ui::ClipboardType::kCopyPaste)) { std::string url_str; clipboard->ReadBookmark(nullptr, &url_str); // pass resulting url string through GURL to normalize
diff --git a/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc b/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc index da66190..3c61f60 100644 --- a/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc +++ b/chrome/browser/ui/omnibox/clipboard_utils_unittest.cc
@@ -50,7 +50,7 @@ // Can we pull straight text off the clipboard? { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(kPlainText); } EXPECT_EQ(kPlainText, GetClipboardText()); @@ -59,13 +59,13 @@ const base::string16 kSpace6(ASCIIToUTF16(" ")); const base::string16 kSpace1(ASCIIToUTF16(" ")); { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(kSpace6); } EXPECT_EQ(kSpace1, GetClipboardText()); // Does an empty clipboard get empty text? - clipboard->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE); + clipboard->Clear(ui::ClipboardType::kCopyPaste); EXPECT_EQ(base::string16(), GetClipboardText()); // Bookmark clipboard apparently not supported on Linux. @@ -74,14 +74,14 @@ const base::string16 kTitle(ASCIIToUTF16("The Example Company")); // Can we pull a bookmark off the clipboard? { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteBookmark(kTitle, kURL); } EXPECT_EQ(ASCIIToUTF16(kURL), GetClipboardText()); // Do we pull text in preference to a bookmark? { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(kPlainText); clipboard_writer.WriteBookmark(kTitle, kURL); } @@ -91,7 +91,7 @@ // Do we get nothing if there is neither text nor a bookmark? { const base::string16 kMarkup(ASCIIToUTF16("<strong>Hi!</string>")); - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteHTML(kMarkup, kURL); } EXPECT_TRUE(GetClipboardText().empty()); @@ -101,7 +101,7 @@ const base::string16 almost_long_text = base::ASCIIToUTF16(std::string(kMaxClipboardTextLength, '.')); { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(almost_long_text); } EXPECT_EQ(almost_long_text, GetClipboardText()); @@ -109,7 +109,7 @@ const base::string16 long_text = base::ASCIIToUTF16(std::string(kMaxClipboardTextLength + 1, '.')); { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(long_text); } EXPECT_EQ(almost_long_text, GetClipboardText());
diff --git a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc index 78cb9d6..f82a7a8 100644 --- a/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc +++ b/chrome/browser/ui/omnibox/omnibox_view_browsertest.cc
@@ -139,7 +139,7 @@ // Stores the given text to clipboard. void SetClipboardText(const base::string16& text) { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(text); }
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index fa7dd96..4849814 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -1340,7 +1340,7 @@ (event->flags() & ui::EF_PLATFORM_ACCELERATOR))) { WindowOpenDisposition disposition_from_event_flags = ui::DispositionFromEventFlags(event->flags()); - RecordBookmarkFolderLaunch(node, GetBookmarkLaunchLocation()); + RecordBookmarkFolderLaunch(GetBookmarkLaunchLocation()); chrome::OpenAll(GetWidget()->GetNativeWindow(), page_navigator_, node, disposition_from_event_flags, browser_->profile()); } else { @@ -1380,7 +1380,7 @@ ui::PAGE_TRANSITION_AUTO_BOOKMARK, false); page_navigator_->OpenURL(params); RecordBookmarkLaunch( - node, GetBookmarkLaunchLocation(), + GetBookmarkLaunchLocation(), ProfileMetrics::GetBrowserProfileType(browser_->profile())); }
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc index a6a017d..19b4e85 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
@@ -179,11 +179,9 @@ void BookmarkMenuDelegate::ExecuteCommand(int id, int mouse_event_flags) { DCHECK(menu_id_to_node_map_.find(id) != menu_id_to_node_map_.end()); - const BookmarkNode* node = menu_id_to_node_map_[id]; - std::vector<const BookmarkNode*> selection; - selection.push_back(node); + std::vector<const BookmarkNode*> selection = {menu_id_to_node_map_[id]}; - RecordBookmarkLaunch(node, location_, + RecordBookmarkLaunch(location_, ProfileMetrics::GetBrowserProfileType(profile_)); chrome::OpenAll(parent_->GetNativeWindow(), page_navigator_, selection, ui::DispositionFromEventFlags(mouse_event_flags),
diff --git a/chrome/browser/ui/views/chrome_typography_provider.cc b/chrome/browser/ui/views/chrome_typography_provider.cc index 9acbba84..cd04df9 100644 --- a/chrome/browser/ui/views/chrome_typography_provider.cc +++ b/chrome/browser/ui/views/chrome_typography_provider.cc
@@ -312,11 +312,3 @@ return default_height; } } - -int ChromeTypographyProvider::GetExpectedTextWidth(int context, - int style, - int length) const { - // TODO(etienneb): Do not rely on font.GetExpectedTextWidth(...) to retrieve - // the expected text width. - return GetFont(context, style).GetExpectedTextWidth(length); -}
diff --git a/chrome/browser/ui/views/chrome_typography_provider.h b/chrome/browser/ui/views/chrome_typography_provider.h index 9201235..a307661 100644 --- a/chrome/browser/ui/views/chrome_typography_provider.h +++ b/chrome/browser/ui/views/chrome_typography_provider.h
@@ -20,7 +20,6 @@ int context, int style) const override; int GetLineHeight(int context, int style) const override; - int GetExpectedTextWidth(int context, int style, int length) const override; private: DISALLOW_COPY_AND_ASSIGN(ChromeTypographyProvider);
diff --git a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc index 960c011..8e521fed 100644 --- a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc +++ b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
@@ -530,7 +530,7 @@ browser(), ui::VKEY_C, true, false, false, false)); base::string16 str; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &str); // Make sure the text is copied successfully.
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc index c78f8cd..0d058a7 100644 --- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
@@ -143,9 +143,7 @@ // preferred size is at least as wide as the minimum size, and the // minimum height of the control should be the preferred height. constexpr int kMinCharacters = 20; - return views::style::GetExpectedTextWidth( - title_label_->text_context(), views::style::TextStyle::STYLE_PRIMARY, - kMinCharacters); + return title_label_->font_list().GetExpectedTextWidth(kMinCharacters); } // views::View:
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index bb913a9..39d6d6e 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -1259,10 +1259,10 @@ void LocationBarView::OnLocationIconPressed(const ui::MouseEvent& event) { if (event.IsOnlyMiddleMouseButton() && - ui::Clipboard::IsSupportedClipboardType(ui::CLIPBOARD_TYPE_SELECTION)) { + ui::Clipboard::IsSupportedClipboardType(ui::ClipboardType::kSelection)) { base::string16 text; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_SELECTION, - &text); + ui::Clipboard::GetForCurrentThread()->ReadText( + ui::ClipboardType::kSelection, &text); text = OmniboxView::SanitizeTextForPaste(text); if (!GetOmniboxView()->model()->CanPasteAndGo(text)) {
diff --git a/chrome/browser/ui/views/location_bar/location_icon_view.cc b/chrome/browser/ui/views/location_bar/location_icon_view.cc index e47ef3c..713a40a 100644 --- a/chrome/browser/ui/views/location_bar/location_icon_view.cc +++ b/chrome/browser/ui/views/location_bar/location_icon_view.cc
@@ -269,10 +269,8 @@ gfx::Size LocationIconView::GetMinimumSizeForPreferredSize( gfx::Size size) const { const int kMinCharacters = 10; - const int expected_text_width = views::style::GetExpectedTextWidth( - label()->text_context(), views::style::TextStyle::STYLE_PRIMARY, - kMinCharacters); - size.SetToMin(GetSizeForLabelWidth(expected_text_width)); + size.SetToMin( + GetSizeForLabelWidth(font_list().GetExpectedTextWidth(kMinCharacters))); return size; }
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc index 0239d1a..d27fded 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -23,7 +23,6 @@ #include "chrome/browser/ui/omnibox/omnibox_theme.h" #include "chrome/browser/ui/view_ids.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" -#include "chrome/browser/ui/views/chrome_typography.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/omnibox/omnibox_popup_contents_view.h" @@ -445,10 +444,9 @@ gfx::Size OmniboxViewViews::GetMinimumSize() const { const int kMinCharacters = 20; - const int expected_text_width = views::style::GetExpectedTextWidth( - CONTEXT_OMNIBOX_PRIMARY, views::style::STYLE_PRIMARY, kMinCharacters); - return gfx::Size(expected_text_width + GetInsets().width(), - GetPreferredSize().height()); + return gfx::Size( + GetFontList().GetExpectedTextWidth(kMinCharacters) + GetInsets().width(), + GetPreferredSize().height()); } void OmniboxViewViews::OnPaint(gfx::Canvas* canvas) {
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc index 5958373..033b5ed 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
@@ -137,7 +137,7 @@ OmniboxViewViews* omnibox_view_views = static_cast<OmniboxViewViews*>(view); // Put an URL on the clipboard. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "http://www.example.com/"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "http://www.example.com/"); // Paste and go. omnibox_view_views->ExecuteCommand(IDC_PASTE_AND_GO, ui::EF_NONE); @@ -251,7 +251,7 @@ // Middle click focuses the omnibox, pastes, and sets a trailing cursor. // Select-all on focus shouldn't alter the selection clipboard or cursor. - SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, "123"); + SetClipboardText(ui::ClipboardType::kSelection, "123"); ASSERT_NO_FATAL_FAILURE(Click(ui_controls::MIDDLE, click_location, click_location)); EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX)); @@ -265,7 +265,7 @@ cursor_x + render_text->display_rect().x()); // Middle clicking again, with focus, pastes and updates the cursor. - SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, "4567"); + SetClipboardText(ui::ClipboardType::kSelection, "4567"); ASSERT_NO_FATAL_FAILURE(Click(ui_controls::MIDDLE, click_location, click_location)); EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX)); @@ -336,7 +336,7 @@ views::TextfieldTestApi textfield_test_api(omnibox_view_views); // Put a URL on the clipboard. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "http://www.example.com/"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "http://www.example.com/"); // Tap to activate touch editing. gfx::Point omnibox_center =
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc index 724a180..1f3f0b9 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
@@ -562,7 +562,7 @@ TEST_F(OmniboxViewViewsTest, PasteAndGoToUrlOrSearchCommand) { ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); - ui::ClipboardType clipboard_type = ui::CLIPBOARD_TYPE_COPY_PASTE; + ui::ClipboardType clipboard_type = ui::ClipboardType::kCopyPaste; command_updater()->UpdateCommandEnabled(IDC_OPEN_CURRENT_URL, true); // Test command is disabled for an empty clipboard. @@ -619,7 +619,7 @@ ASSERT_TRUE(omnibox_view()->IsSelectAll()); ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); - ui::ClipboardType clipboard_type = ui::CLIPBOARD_TYPE_COPY_PASTE; + ui::ClipboardType clipboard_type = ui::ClipboardType::kCopyPaste; clipboard->Clear(clipboard_type); ui::TextEditCommand clipboard_command = GetParam(); @@ -655,7 +655,7 @@ ASSERT_TRUE(omnibox_view()->IsSelectAll()); ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); - ui::ClipboardType clipboard_type = ui::CLIPBOARD_TYPE_COPY_PASTE; + ui::ClipboardType clipboard_type = ui::ClipboardType::kCopyPaste; clipboard->Clear(clipboard_type); ui::TextEditCommand clipboard_command = GetParam();
diff --git a/chrome/browser/ui/views/payments/payment_request_row_view.cc b/chrome/browser/ui/views/payments/payment_request_row_view.cc index d25d087..78e3dcf 100644 --- a/chrome/browser/ui/views/payments/payment_request_row_view.cc +++ b/chrome/browser/ui/views/payments/payment_request_row_view.cc
@@ -28,9 +28,9 @@ PaymentRequestRowView::~PaymentRequestRowView() {} void PaymentRequestRowView::SetActiveBackground() { - ui::NativeTheme* theme = GetWidget()->GetNativeTheme(); - SetBackground(views::CreateSolidBackground(theme->GetSystemColor( - ui::NativeTheme::kColorId_ResultsTableHoveredBackground))); + // TODO(crbug/976890): Check whether we can GetSystemColor from a NativeTheme + // ColorId instead of hard code here. + SetBackground(views::CreateSolidBackground(SkColorSetA(SK_ColorBLACK, 0x0D))); } void PaymentRequestRowView::ShowBottomSeparator() {
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc index 6d82690..69f270b 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -211,28 +211,37 @@ } // namespace -// EscapeTracker installs an event monitor and runs a callback when it receives -// the escape key. -class EscapeTracker : public ui::EventObserver { +// KeyEventTracker installs an event monitor and runs a callback to end the drag +// when it receives any key event. +class KeyEventTracker : public ui::EventObserver { public: - EscapeTracker(base::OnceClosure callback, gfx::NativeWindow context) - : escape_callback_(std::move(callback)) { + KeyEventTracker(base::OnceClosure end_drag_callback, + base::OnceClosure revert_drag_callback, + gfx::NativeWindow context) + : end_drag_callback_(std::move(end_drag_callback)), + revert_drag_callback_(std::move(revert_drag_callback)) { event_monitor_ = views::EventMonitor::CreateApplicationMonitor( this, context, {ui::ET_KEY_PRESSED}); } - ~EscapeTracker() override = default; + ~KeyEventTracker() override = default; private: // ui::EventObserver: void OnEvent(const ui::Event& event) override { - if (event.AsKeyEvent()->key_code() == ui::VKEY_ESCAPE && escape_callback_) - std::move(escape_callback_).Run(); + if (event.AsKeyEvent()->key_code() == ui::VKEY_ESCAPE && + revert_drag_callback_) { + std::move(revert_drag_callback_).Run(); + } else if (event.AsKeyEvent()->key_code() != ui::VKEY_ESCAPE && + end_drag_callback_) { + std::move(end_drag_callback_).Run(); + } } - base::OnceClosure escape_callback_; + base::OnceClosure end_drag_callback_; + base::OnceClosure revert_drag_callback_; std::unique_ptr<views::EventMonitor> event_monitor_; - DISALLOW_COPY_AND_ASSIGN(EscapeTracker); + DISALLOW_COPY_AND_ASSIGN(KeyEventTracker); }; class TabDragController::SourceTabStripEmptinessTracker @@ -467,15 +476,17 @@ std::find(tabs.begin(), tabs.end(), source_tab) - tabs.begin(); // Listen for Esc key presses. - escape_tracker_ = std::make_unique<EscapeTracker>( - base::BindOnce(&TabDragController::EndDrag, weak_factory_.GetWeakPtr(), + key_event_tracker_ = std::make_unique<KeyEventTracker>( + base::BindOnce(&TabDragController::EndDrag, base::Unretained(this), + END_DRAG_COMPLETE), + base::BindOnce(&TabDragController::EndDrag, base::Unretained(this), END_DRAG_CANCEL), source_context_->AsView()->GetWidget()->GetNativeWindow()); if (source_tab->width() > 0) { - offset_to_width_ratio_ = static_cast<float>( - source_tab->GetMirroredXInView(source_tab_offset)) / - static_cast<float>(source_tab->width()); + offset_to_width_ratio_ = + float{source_tab->GetMirroredXInView(source_tab_offset)} / + float{source_tab->width()}; } InitWindowCreatePoint(); initial_selection_model_ = std::move(initial_selection_model); @@ -543,7 +554,7 @@ } current_state_ = DragState::kDraggingTabs; Attach(source_context_, gfx::Point()); - if (static_cast<int>(drag_data_.size()) == + if (int{drag_data_.size()} == source_context_->GetTabStripModel()->count()) { views::Widget* widget = GetAttachedBrowserWidget(); gfx::Rect new_bounds; @@ -751,8 +762,8 @@ static const int kMinimumDragDistance = 10; int x_offset = abs(point_in_screen.x() - start_point_in_screen_.x()); int y_offset = abs(point_in_screen.y() - start_point_in_screen_.y()); - return sqrt(pow(static_cast<float>(x_offset), 2) + - pow(static_cast<float>(y_offset), 2)) > kMinimumDragDistance; + return sqrt(pow(float{x_offset}, 2) + pow(float{y_offset}, 2)) > + kMinimumDragDistance; } TabDragController::Liveness TabDragController::ContinueDragging( @@ -906,8 +917,7 @@ void TabDragController::DragActiveTabStacked( const gfx::Point& point_in_screen) { - if (attached_context_->GetTabCount() != - static_cast<int>(initial_tab_positions_.size())) + if (attached_context_->GetTabCount() != int{initial_tab_positions_.size()}) return; // TODO: should cancel drag if this happens. int delta = point_in_screen.x() - start_point_in_screen_.x(); @@ -957,7 +967,7 @@ TabStripModel* attached_model = attached_context_->GetTabStripModel(); int to_index = attached_context_->GetInsertionIndexForDraggedBounds( GetDraggedViewTabStripBounds(dragged_view_point), false, - static_cast<int>(drag_data_.size()), mouse_has_ever_moved_left_, + int{drag_data_.size()}, mouse_has_ever_moved_left_, mouse_has_ever_moved_right_); bool do_move = true; // While dragging within a tabstrip the expectation is the insertion index @@ -1178,7 +1188,7 @@ tab_strip_point.Offset(0, -mouse_offset_.y()); int index = attached_context_->GetInsertionIndexForDraggedBounds( GetDraggedViewTabStripBounds(tab_strip_point), true, - static_cast<int>(drag_data_.size()), mouse_has_ever_moved_left_, + int{drag_data_.size()}, mouse_has_ever_moved_left_, mouse_has_ever_moved_right_); attach_index_ = index; attach_x_ = tab_strip_point.x(); @@ -1297,7 +1307,7 @@ void TabDragController::DetachIntoNewBrowserAndRunMoveLoop( const gfx::Point& point_in_screen) { if (attached_context_->GetTabStripModel()->count() == - static_cast<int>(drag_data_.size())) { + int{drag_data_.size()}) { // All the tabs in a browser are being dragged but all the tabs weren't // initially being dragged. For this to happen the user would have to // start dragging a set of tabs, the other tabs close, then detach. @@ -1920,12 +1930,12 @@ // If the new tabstrip is smaller than the old resize the tabs. if (dragged_context_width < tab_area_width) { const float leading_ratio = - drag_bounds->front().x() / static_cast<float>(tab_area_width); + drag_bounds->front().x() / float{tab_area_width}; *drag_bounds = CalculateBoundsForDraggedTabs(); if (drag_bounds->back().right() < dragged_context_width) { const int delta_x = std::min( - static_cast<int>(leading_ratio * dragged_context_width), + int{(leading_ratio * dragged_context_width)}, dragged_context_width - (drag_bounds->back().right() - drag_bounds->front().x())); OffsetX(delta_x, drag_bounds);
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chrome/browser/ui/views/tabs/tab_drag_controller.h index 653d681..960cca9f 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.h +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.h
@@ -29,7 +29,7 @@ class ViewTracker; } class Browser; -class EscapeTracker; +class KeyEventTracker; class Tab; class TabDragControllerTest; class TabDragContext; @@ -634,7 +634,7 @@ int attach_x_; int attach_index_; - std::unique_ptr<EscapeTracker> escape_tracker_; + std::unique_ptr<KeyEventTracker> key_event_tracker_; std::unique_ptr<SourceTabStripEmptinessTracker> source_context_emptiness_tracker_;
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc index d8de5239..f62b556 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -607,12 +607,6 @@ // Creates a browser with two tabs, drags the second to the first. IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, DragInSameWindow) { - // TODO(sky): this won't work with touch as it requires a long press. - if (input_source() == INPUT_SOURCE_TOUCH) { - VLOG(1) << "Test is DISABLED for touch input."; - return; - } - AddTabAndResetBrowser(browser()); TabStrip* tab_strip = GetTabStripForBrowser(browser()); @@ -634,6 +628,25 @@ EXPECT_FALSE(tab_strip->GetWidget()->HasCapture()); } +// Drags a tab within the window (without dragging the whole window) then +// pressing a key ends the drag. +IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, + KeyPressShouldEndDragTest) { + AddTabAndResetBrowser(browser()); + TabStrip* tab_strip = GetTabStripForBrowser(browser()); + + ASSERT_TRUE(PressInput(GetCenterInScreenCoordinates(tab_strip->tab_at(1)))); + ASSERT_TRUE(DragInputTo(GetCenterInScreenCoordinates(tab_strip->tab_at(0)))); + + ASSERT_TRUE(TabDragController::IsActive()); + + ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_TAB, false, + false, false, false)); + EXPECT_EQ("1 0", IDString(browser()->tab_strip_model())); + EXPECT_FALSE(TabDragController::IsActive()); + EXPECT_FALSE(tab_strip->GetDragContext()->IsDragSessionActive()); +} + #if defined(USE_AURA) bool SubtreeShouldBeExplored(aura::Window* window, const gfx::Point& local_point) {
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc index ed0456e..528215f 100644 --- a/chrome/browser/ui/views/tabs/tab_strip.cc +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -2897,11 +2897,11 @@ const ui::MouseEvent& mouse = static_cast<const ui::MouseEvent&>(event); if (mouse.IsOnlyMiddleMouseButton()) { if (ui::Clipboard::IsSupportedClipboardType( - ui::CLIPBOARD_TYPE_SELECTION)) { + ui::ClipboardType::kSelection)) { ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); CHECK(clipboard); base::string16 clipboard_text; - clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kSelection, &clipboard_text); if (!clipboard_text.empty()) controller_->CreateNewTabWithLocation(clipboard_text); }
diff --git a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc index 88cfbeb..a4cca05 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.cc
@@ -70,6 +70,13 @@ PreferredSizeChanged(); } +gfx::Insets ToolbarIconContainerView::GetInsets() const { + // Use empty insets to have the border paint into the view instead of around + // it. This prevents inadvertently increasing its size while the stroke is + // drawn. + return gfx::Insets(); +} + void ToolbarIconContainerView::UpdateHighlight(bool highlighted) { if (!uses_highlight_) return;
diff --git a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h index cb9a8b0..5895333 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h +++ b/chrome/browser/ui/views/toolbar/toolbar_icon_container_view.h
@@ -42,6 +42,7 @@ // views::View: void ChildPreferredSizeChanged(views::View* child) override; void ChildVisibilityChanged(views::View* child) override; + gfx::Insets GetInsets() const override; void UpdateHighlight(bool highlighted);
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc index 9f088cc..f045c47 100644 --- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc +++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
@@ -89,6 +89,7 @@ #include "chrome/grit/component_extension_resources.h" #include "chromeos/constants/chromeos_switches.h" #include "chromeos/services/multidevice_setup/public/mojom/constants.mojom.h" +#include "chromeos/services/network_config/public/mojom/constants.mojom.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/prefs/pref_service.h" #include "content/public/browser/browser_context.h" @@ -481,6 +482,14 @@ multidevice_setup::mojom::kServiceName, std::move(request)); } +void OobeUI::BindCrosNetworkConfig( + chromeos::network_config::mojom::CrosNetworkConfigRequest request) { + content::BrowserContext::GetConnectorFor( + web_ui()->GetWebContents()->GetBrowserContext()) + ->BindInterface(chromeos::network_config::mojom::kServiceName, + std::move(request)); +} + OobeUI::OobeUI(content::WebUI* web_ui, const GURL& url) : ui::MojoWebUIController(web_ui, true /* enable_chrome_send */) { display_type_ = GetDisplayType(url); @@ -522,6 +531,8 @@ base::Unretained(this))); AddHandlerToRegistry(base::BindRepeating( &OobeUI::BindPrivilegedHostDeviceSetter, base::Unretained(this))); + AddHandlerToRegistry(base::BindRepeating(&OobeUI::BindCrosNetworkConfig, + base::Unretained(this))); } OobeUI::~OobeUI() {
diff --git a/chrome/browser/ui/webui/chromeos/login/oobe_ui.h b/chrome/browser/ui/webui/chromeos/login/oobe_ui.h index 6361eae..84dc0d2 100644 --- a/chrome/browser/ui/webui/chromeos/login/oobe_ui.h +++ b/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
@@ -18,6 +18,7 @@ #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" +#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" // nogncheck #include "ui/webui/mojo_web_ui_controller.h" namespace base { @@ -161,6 +162,8 @@ multidevice_setup::mojom::MultiDeviceSetupRequest request); void BindPrivilegedHostDeviceSetter( multidevice_setup::mojom::PrivilegedHostDeviceSetterRequest request); + void BindCrosNetworkConfig( + chromeos::network_config::mojom::CrosNetworkConfigRequest request); // Type of UI. std::string display_type_;
diff --git a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc index a5bc16e..f0dcc383 100644 --- a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
@@ -224,6 +224,16 @@ IDS_SETTINGS_INTERNET_NETWORK_SIM_RE_ENTER_NEW_PIN}, {"networkSimReEnterNewPin", IDS_SETTINGS_INTERNET_NETWORK_SIM_RE_ENTER_NEW_PIN}, + {"networkSimErrorIncorrectPin", + IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PIN}, + {"networkSimErrorIncorrectPuk", + IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INCORRECT_PUK}, + {"networkSimErrorInvalidPin", + IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PIN}, + {"networkSimErrorInvalidPuk", + IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_INVALID_PUK}, + {"networkSimErrorPinMismatch", + IDS_SETTINGS_INTERNET_NETWORK_SIM_ERROR_PIN_MISMATCH}, {"networkSimUnlock", IDS_SETTINGS_INTERNET_NETWORK_SIM_BUTTON_UNLOCK}, {"networkAccessPoint", IDS_SETTINGS_INTERNET_NETWORK_ACCESS_POINT}, {"networkChooseMobile", IDS_SETTINGS_INTERNET_NETWORK_CHOOSE_MOBILE},
diff --git a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h index d87c857..320e691 100644 --- a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h +++ b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
@@ -20,7 +20,7 @@ #include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h" #include "chromeos/printing/ppd_provider.h" #include "chromeos/printing/printer_configuration.h" -#include "printing/backend/cups_jobs.h" +#include "printing/printer_query_result_chromeos.h" #include "ui/shell_dialogs/select_file_dialog.h" namespace base {
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index f461491..d5931dbc 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2862,6 +2862,17 @@ AddLocalizedStringsBulk(html_source, kLocalizedStrings, base::size(kLocalizedStrings)); + html_source->AddString( + "proxySettingsExtensionLabel", + l10n_util::GetStringFUTF16( + IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_EXTENSION_LABEL, + l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); + html_source->AddString( + "proxySettingsPolicyLabel", + l10n_util::GetStringFUTF16( + IDS_SETTINGS_SYSTEM_PROXY_SETTINGS_POLICY_LABEL, + l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); + // TODO(dbeam): we should probably rename anything involving "localized // strings" to "load time data" as all primitive types are used now. SystemHandler::AddLoadTimeData(html_source);
diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc index 331cf2a..bddbe14 100644 --- a/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc +++ b/chrome/browser/ui/window_sizer/window_sizer_ash_uitest.cc
@@ -31,8 +31,8 @@ ash::ShelfView* shelf_view = ash::Shelf::ForWindow(root)->GetShelfViewForTesting(); const views::ViewModel* view_model = shelf_view->view_model_for_test(); - EXPECT_EQ(3, view_model->view_size()); - gfx::Rect bounds = view_model->view_at(2)->GetBoundsInScreen(); + EXPECT_EQ(1, view_model->view_size()); + gfx::Rect bounds = view_model->view_at(0)->GetBoundsInScreen(); return bounds; }
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc index 1db1b55..1dfdbd0 100644 --- a/chrome/common/chrome_content_client.cc +++ b/chrome/common/chrome_content_client.cc
@@ -43,8 +43,6 @@ #include "content/public/common/cdm_info.h" #include "content/public/common/content_constants.h" #include "content/public/common/content_switches.h" -#include "content/public/common/service_manager_connection.h" -#include "content/public/common/simple_connection_filter.h" #include "content/public/common/url_constants.h" #include "extensions/buildflags/buildflags.h" #include "extensions/common/constants.h" @@ -54,6 +52,7 @@ #include "media/base/media_switches.h" #include "media/base/video_codecs.h" #include "media/media_buildflags.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/http/http_util.h" #include "pdf/buildflags.h" #include "ppapi/buildflags/buildflags.h" @@ -736,14 +735,13 @@ } #endif // OS_ANDROID -void ChromeContentClient::OnServiceManagerConnected( - content::ServiceManagerConnection* connection) { +void ChromeContentClient::BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) { static base::NoDestructor<heap_profiling::ProfilingClient> profiling_client; - - auto registry = std::make_unique<service_manager::BinderRegistry>(); - registry->AddInterface( - base::BindRepeating(&heap_profiling::ProfilingClient::BindToInterface, - base::Unretained(profiling_client.get()))); - connection->AddConnectionFilter( - std::make_unique<content::SimpleConnectionFilter>(std::move(registry))); + if (interface_name == heap_profiling::ProfilingClient::Name_) { + profiling_client->BindToInterface( + mojo::PendingReceiver<heap_profiling::mojom::ProfilingClient>( + std::move(*receiving_handle))); + } }
diff --git a/chrome/common/chrome_content_client.h b/chrome/common/chrome_content_client.h index 6f800f3..54a950d1 100644 --- a/chrome/common/chrome_content_client.h +++ b/chrome/common/chrome_content_client.h
@@ -106,9 +106,9 @@ media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override; #endif // OS_ANDROID - // This method isn't called by utility processes. - void OnServiceManagerConnected( - content::ServiceManagerConnection* connection) override; + void BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) override; private: // Used to lock when |origin_trial_policy_| is initialized.
diff --git a/chrome/test/data/webui/cr_elements/cr_button_tests.js b/chrome/test/data/webui/cr_elements/cr_button_tests.js index 4a18f84..df9f36f8 100644 --- a/chrome/test/data/webui/cr_elements/cr_button_tests.js +++ b/chrome/test/data/webui/cr_elements/cr_button_tests.js
@@ -77,4 +77,10 @@ assertFalse(button.hasAttribute('hidden')); assertNotEquals('none', getComputedStyle(button).display); }); + + test('tap event is emitted on click', async () => { + const wait = test_util.eventToPromise('tap', button); + button.click(); + await wait; + }); });
diff --git a/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js b/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js index a5b25dab6..b153ad4 100644 --- a/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js +++ b/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js
@@ -488,6 +488,7 @@ /** @override */ extraLibraries: CrElementsBrowserTest.prototype.extraLibraries.concat([ + '../settings/test_util.js', 'cr_button_tests.js', ]), };
diff --git a/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js b/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js index 3617108..0bcf1dd2 100644 --- a/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js +++ b/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.js
@@ -145,4 +145,16 @@ dropDown.showLoading = false; assertTrue(progress.hidden); }); + + + // The readonly attribute is passed through to the inner cr-input. + test('readonly attribute', function() { + const input = dropDown.shadowRoot.querySelector('cr-input'); + + dropDown.readonly = true; + assertTrue(input.readonly); + + dropDown.readonly = false; + assertFalse(input.readonly); + }); });
diff --git a/chrome/test/data/webui/media_router/issue_banner_tests.js b/chrome/test/data/webui/media_router/issue_banner_tests.js index e720e03..7e2c048 100644 --- a/chrome/test/data/webui/media_router/issue_banner_tests.js +++ b/chrome/test/data/webui/media_router/issue_banner_tests.js
@@ -84,8 +84,7 @@ // Checks whether parts of the UI is visible. var checkButtonVisibility = function(optAction) { assertEquals( - !optAction, - banner.$['buttons'].querySelector('paper-button').hidden); + !optAction, banner.$['buttons'].querySelector('cr-button').hidden); }; // Import issue_banner.html before running suite.
diff --git a/chrome/test/data/webui/media_router/route_details_tests.js b/chrome/test/data/webui/media_router/route_details_tests.js index 4652bb2..14d8079 100644 --- a/chrome/test/data/webui/media_router/route_details_tests.js +++ b/chrome/test/data/webui/media_router/route_details_tests.js
@@ -174,10 +174,10 @@ test('initial text setting', function() { // <paper-button> text is styled as upper case. checkSpanText( - loadTimeData.getString('stopCastingButtonText').toUpperCase(), + loadTimeData.getString('stopCastingButtonText'), 'close-route-button'); checkSpanText( - loadTimeData.getString('startCastingButtonText').toUpperCase(), + loadTimeData.getString('startCastingButtonText'), 'start-casting-to-route-button'); checkElementText('', 'route-description'); });
diff --git a/chrome/test/data/webui/print_preview/native_layer_stub.js b/chrome/test/data/webui/print_preview/native_layer_stub.js index 666f28f..b1abb4d 100644 --- a/chrome/test/data/webui/print_preview/native_layer_stub.js +++ b/chrome/test/data/webui/print_preview/native_layer_stub.js
@@ -67,6 +67,9 @@ /** @private {number} The number of total pages in the document. */ this.pageCount_ = 1; + + /** @private {?print_preview.PageLayoutInfo} Page layout information */ + this.pageLayoutInfo_ = null; } /** @param {number} pageCount The number of pages in the document. */ @@ -110,6 +113,10 @@ } const pageRanges = printTicketParsed.pageRange; const requestId = printTicketParsed.requestID; + if (this.pageLayoutInfo_) { + cr.webUIListenerCallback( + 'page-layout-ready', this.pageLayoutInfo_, false); + } if (pageRanges.length == 0) { // assume full length document, 1 page. cr.webUIListenerCallback( 'page-count-ready', this.pageCount_, requestId, 100); @@ -262,6 +269,11 @@ setInvalidPrinterId(id) { this.badPrinterId_ = id; } + + /** @param {!print_preview.PageLayoutInfo} pageLayoutInfo */ + setPageLayoutInfo(pageLayoutInfo) { + this.pageLayoutInfo_ = pageLayoutInfo; + } } return {
diff --git a/chrome/test/data/webui/print_preview/preview_generation_test.js b/chrome/test/data/webui/print_preview/preview_generation_test.js index 002b09c..81cf450 100644 --- a/chrome/test/data/webui/print_preview/preview_generation_test.js +++ b/chrome/test/data/webui/print_preview/preview_generation_test.js
@@ -20,6 +20,8 @@ SelectionOnly: 'selection only', Destination: 'destination', ChangeMarginsByPagesPerSheet: 'change margins by pages per sheet', + ZeroDefaultMarginsClearsHeaderFooter: + 'zero default margins clears header/footer', }; const suiteName = 'PreviewGenerationTest'; @@ -59,6 +61,9 @@ document.body.appendChild(page); const previewArea = page.$.previewArea; pluginProxy.setLoadCallback(previewArea.onPluginLoad_.bind(previewArea)); + const documentInfo = page.$$('print-preview-document-info'); + documentInfo.documentSettings.pageCount = 3; + documentInfo.margins = new print_preview.Margins(10, 10, 10, 10); return Promise .all([ @@ -66,12 +71,9 @@ nativeLayer.whenCalled('getPrinterCapabilities'), ]) .then(function() { - const documentInfo = page.$$('print-preview-document-info'); if (!documentInfo.documentSettings.isModifiable) { documentInfo.documentSettings.fitToPageScaling = 98; } - documentInfo.documentSettings.pageCount = 3; - documentInfo.margins = new print_preview.Margins(10, 10, 10, 10); return nativeLayer.whenCalled('getPreview'); }); } @@ -233,26 +235,26 @@ * margins to print_preview.ticket_items.MarginsTypeValue.DEFAULT. */ test(assert(TestNames.ChangeMarginsByPagesPerSheet), function() { - const marginsTypeEnum = print_preview.ticket_items.MarginsTypeValue; + const MarginsTypeEnum = print_preview.ticket_items.MarginsTypeValue; return initialize() .then(function(args) { const originalTicket = JSON.parse(args.printTicket); assertEquals(0, originalTicket.requestID); assertEquals( - marginsTypeEnum.DEFAULT, originalTicket['marginsType']); + MarginsTypeEnum.DEFAULT, originalTicket['marginsType']); assertEquals( - marginsTypeEnum.DEFAULT, page.getSettingValue('margins')); + MarginsTypeEnum.DEFAULT, page.getSettingValue('margins')); assertEquals(1, page.getSettingValue('pagesPerSheet')); assertEquals(1, originalTicket['pagesPerSheet']); nativeLayer.resetResolver('getPreview'); - page.setSetting('margins', marginsTypeEnum.MINIMUM); + page.setSetting('margins', MarginsTypeEnum.MINIMUM); return nativeLayer.whenCalled('getPreview'); }) .then(function(args) { assertEquals( - marginsTypeEnum.MINIMUM, page.getSettingValue('margins')); + MarginsTypeEnum.MINIMUM, page.getSettingValue('margins')); const ticket = JSON.parse(args.printTicket); - assertEquals(marginsTypeEnum.MINIMUM, ticket['marginsType']); + assertEquals(MarginsTypeEnum.MINIMUM, ticket['marginsType']); nativeLayer.resetResolver('getPreview'); assertEquals(1, ticket.requestID); page.setSetting('pagesPerSheet', 4); @@ -260,10 +262,10 @@ }) .then(function(args) { assertEquals( - marginsTypeEnum.DEFAULT, page.getSettingValue('margins')); + MarginsTypeEnum.DEFAULT, page.getSettingValue('margins')); assertEquals(4, page.getSettingValue('pagesPerSheet')); const ticket = JSON.parse(args.printTicket); - assertEquals(marginsTypeEnum.DEFAULT, ticket['marginsType']); + assertEquals(MarginsTypeEnum.DEFAULT, ticket['marginsType']); assertEquals(4, ticket['pagesPerSheet']); assertEquals(2, ticket.requestID); }); @@ -460,6 +462,81 @@ assertEquals('BarDevice', ticket.deviceName); }); }); + + /** + * Validate that if the document layout has 0 default margins, the + * header/footer setting is set to false. + */ + test(assert(TestNames.ZeroDefaultMarginsClearsHeaderFooter), async () => { + /** + * @param {Object} ticket The parsed print ticket + * @param {number} expectedId The expected ticket request ID + * @param {!print_preview.ticket_items.MarginsTypeValue} expectedMargins + * The expected ticket margins type + * @param {boolean} expectedHeaderFooter The expected ticket + * header/footer value + */ + const assertMarginsFooter = function( + ticket, expectedId, expectedMargins, expectedHeaderFooter) { + assertEquals(expectedId, ticket.requestID); + assertEquals(expectedMargins, ticket.marginsType); + assertEquals(expectedHeaderFooter, ticket.headerFooterEnabled); + }; + + nativeLayer.setPageLayoutInfo({ + marginTop: 0, + marginLeft: 0, + marginBottom: 0, + marginRight: 0, + contentWidth: 612, + contentHeight: 792, + printableAreaX: 0, + printableAreaY: 0, + printableAreaWidth: 612, + printableAreaHeight: 792, + }); + + const MarginsTypeEnum = print_preview.ticket_items.MarginsTypeValue; + let previewArgs = await initialize(); + let ticket = JSON.parse(previewArgs.printTicket); + + // The ticket recorded here is the original, which requests default + // margins with headers and footers (Print Preview defaults). + assertMarginsFooter(ticket, 0, MarginsTypeEnum.DEFAULT, true); + + // After getting the new layout, a second request should have been + // sent. + assertEquals(2, nativeLayer.getCallCount('getPreview')); + assertEquals(MarginsTypeEnum.DEFAULT, page.getSettingValue('margins')); + assertFalse(page.getSettingValue('headerFooter')); + + // Check the last ticket sent by the preview area. It should not + // have the same settings as the original (headers and footers + // should have been turned off). + const previewArea = page.$$('print-preview-preview-area'); + assertMarginsFooter( + previewArea.lastTicket_, 1, MarginsTypeEnum.DEFAULT, false); + nativeLayer.resetResolver('getPreview'); + page.setSetting('margins', MarginsTypeEnum.MINIMUM); + previewArgs = await nativeLayer.whenCalled('getPreview'); + + // Setting minimum margins allows space for the headers and footers, + // so they should be enabled again. + ticket = JSON.parse(previewArgs.printTicket); + assertMarginsFooter(ticket, 2, MarginsTypeEnum.MINIMUM, true); + assertEquals(MarginsTypeEnum.MINIMUM, page.getSettingValue('margins')); + assertTrue(page.getSettingValue('headerFooter')); + nativeLayer.resetResolver('getPreview'); + page.setSetting('margins', MarginsTypeEnum.DEFAULT); + previewArgs = await nativeLayer.whenCalled('getPreview'); + + // With default margins, there is no space for headers/footers, so + // they are removed. + ticket = JSON.parse(previewArgs.printTicket); + assertMarginsFooter(ticket, 3, MarginsTypeEnum.DEFAULT, false); + assertEquals(MarginsTypeEnum.DEFAULT, page.getSettingValue('margins')); + assertEquals(false, page.getSettingValue('headerFooter')); + }); }); return {
diff --git a/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js b/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js index 1c05220..7d6b96b 100644 --- a/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js +++ b/chrome/test/data/webui/print_preview/print_preview_ui_browsertest.js
@@ -478,6 +478,13 @@ preview_generation_test.TestNames.ChangeMarginsByPagesPerSheet); }); +TEST_F( + 'PrintPreviewPreviewGenerationTest', 'ZeroDefaultMarginsClearsHeaderFooter', + function() { + this.runMochaTest(preview_generation_test.TestNames + .ZeroDefaultMarginsClearsHeaderFooter); + }); + GEN('#if !defined(OS_CHROMEOS)'); // eslint-disable-next-line no-var var PrintPreviewLinkContainerTest = class extends PrintPreviewTest {
diff --git a/chrome/test/data/webui/settings/system_page_tests.js b/chrome/test/data/webui/settings/system_page_tests.js index 23bd841..9a54390 100644 --- a/chrome/test/data/webui/settings/system_page_tests.js +++ b/chrome/test/data/webui/settings/system_page_tests.js
@@ -110,9 +110,9 @@ }); Polymer.dom.flush(); - // The ability to show proxy settings should still be allowed when - // extensions are installed. - expectTrue(control.hasAttribute('actionable')); + // When managed by extensions, we disable the ability to show proxy + // settings. + expectFalse(control.hasAttribute('actionable')); expectEquals(null, control.querySelector('cr-policy-pref-indicator')); expectFalse(showProxyButton.hidden);
diff --git a/chromecast/browser/cast_overlay_manifests.cc b/chromecast/browser/cast_overlay_manifests.cc index fbcf86d..c0911d4 100644 --- a/chromecast/browser/cast_overlay_manifests.cc +++ b/chromecast/browser/cast_overlay_manifests.cc
@@ -39,10 +39,6 @@ #if !defined(OS_FUCHSIA) .RequireCapability("heap_profiling", "heap_profiler") .RequireCapability("heap_profiling", "profiling") - .RequireCapability("content_system", "profiling_client") - .ExposeCapability("profiling_client", - service_manager::Manifest::InterfaceList< - heap_profiling::mojom::ProfilingClient>()) #endif // !defined(OS_FUCHSIA) .ExposeCapability("renderer", service_manager::Manifest::InterfaceList<
diff --git a/chromecast/common/cast_content_client.cc b/chromecast/common/cast_content_client.cc index c09ebf8c..9f86049 100644 --- a/chromecast/common/cast_content_client.cc +++ b/chromecast/common/cast_content_client.cc
@@ -30,9 +30,7 @@ #if !defined(OS_FUCHSIA) #include "base/no_destructor.h" #include "components/services/heap_profiling/public/cpp/profiling_client.h" // nogncheck -#include "content/public/common/service_manager_connection.h" -#include "content/public/common/simple_connection_filter.h" -#include "services/service_manager/public/cpp/binder_registry.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #endif namespace chromecast { @@ -141,17 +139,16 @@ } #endif // OS_ANDROID -void CastContentClient::OnServiceManagerConnected( - content::ServiceManagerConnection* connection) { +void CastContentClient::BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) { #if !defined(OS_FUCHSIA) static base::NoDestructor<heap_profiling::ProfilingClient> profiling_client; - - auto registry = std::make_unique<service_manager::BinderRegistry>(); - registry->AddInterface( - base::BindRepeating(&heap_profiling::ProfilingClient::BindToInterface, - base::Unretained(profiling_client.get()))); - connection->AddConnectionFilter( - std::make_unique<content::SimpleConnectionFilter>(std::move(registry))); + if (interface_name == heap_profiling::ProfilingClient::Name_) { + profiling_client->BindToInterface( + mojo::PendingReceiver<heap_profiling::mojom::ProfilingClient>( + std::move(*receiving_handle))); + } #endif // !defined(OS_FUCHSIA) }
diff --git a/chromecast/common/cast_content_client.h b/chromecast/common/cast_content_client.h index af212f3..9fe1674 100644 --- a/chromecast/common/cast_content_client.h +++ b/chromecast/common/cast_content_client.h
@@ -30,8 +30,9 @@ #if defined(OS_ANDROID) ::media::MediaDrmBridgeClient* GetMediaDrmBridgeClient() override; #endif // OS_ANDROID - void OnServiceManagerConnected( - content::ServiceManagerConnection* connection) override; + void BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) override; private: GURL last_active_url_;
diff --git a/chromeos/dbus/concierge_client.cc b/chromeos/dbus/concierge_client.cc index e46fc2c..fd67537 100644 --- a/chromeos/dbus/concierge_client.cc +++ b/chromeos/dbus/concierge_client.cc
@@ -345,6 +345,27 @@ weak_ptr_factory_.GetWeakPtr(), std::move(callback))); } + void StartArcVm(const vm_tools::concierge::StartArcVmRequest& request, + DBusMethodCallback<vm_tools::concierge::StartVmResponse> + callback) override { + dbus::MethodCall method_call(vm_tools::concierge::kVmConciergeInterface, + vm_tools::concierge::kStartArcVmMethod); + dbus::MessageWriter writer(&method_call); + + if (!writer.AppendProtoAsArrayOfBytes(request)) { + LOG(ERROR) << "Failed to encode StartArcVmRequest protobuf"; + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), base::nullopt)); + return; + } + + concierge_proxy_->CallMethod( + &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, + base::BindOnce(&ConciergeClientImpl::OnDBusProtoResponse< + vm_tools::concierge::StartVmResponse>, + weak_ptr_factory_.GetWeakPtr(), std::move(callback))); + } + protected: void Init(dbus::Bus* bus) override { concierge_proxy_ = bus->GetObjectProxy(
diff --git a/chromeos/dbus/concierge_client.h b/chromeos/dbus/concierge_client.h index 9de98e1..fe82197 100644 --- a/chromeos/dbus/concierge_client.h +++ b/chromeos/dbus/concierge_client.h
@@ -165,6 +165,12 @@ DBusMethodCallback<vm_tools::concierge::ListUsbDeviceResponse> callback) = 0; + // Starts ARCVM if there is not already one running. + // |callback| is called after the method call finishes. + virtual void StartArcVm( + const vm_tools::concierge::StartArcVmRequest& request, + DBusMethodCallback<vm_tools::concierge::StartVmResponse> callback) = 0; + // Creates an instance of ConciergeClient. static std::unique_ptr<ConciergeClient> Create();
diff --git a/chromeos/dbus/fake_concierge_client.cc b/chromeos/dbus/fake_concierge_client.cc index 6a338595..9442037 100644 --- a/chromeos/dbus/fake_concierge_client.cc +++ b/chromeos/dbus/fake_concierge_client.cc
@@ -211,6 +211,14 @@ base::BindOnce(std::move(callback), list_usb_devices_response_)); } +void FakeConciergeClient::StartArcVm( + const vm_tools::concierge::StartArcVmRequest& request, + DBusMethodCallback<vm_tools::concierge::StartVmResponse> callback) { + start_arc_vm_called_ = true; + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), start_vm_response_)); +} + void FakeConciergeClient::InitializeProtoResponses() { create_disk_image_response_.Clear(); create_disk_image_response_.set_status(
diff --git a/chromeos/dbus/fake_concierge_client.h b/chromeos/dbus/fake_concierge_client.h index 0532d38ee..ff1f696 100644 --- a/chromeos/dbus/fake_concierge_client.h +++ b/chromeos/dbus/fake_concierge_client.h
@@ -5,6 +5,8 @@ #ifndef CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_ #define CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_ +#include <vector> + #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "chromeos/dbus/cicerone_client.h" @@ -137,6 +139,12 @@ DBusMethodCallback<vm_tools::concierge::ListUsbDeviceResponse> callback) override; + // Fake version of the method that starts ARCVM. Sets start_arc_vm_called_. + // |callback| is called after the method call finishes. + void StartArcVm(const vm_tools::concierge::StartArcVmRequest& request, + DBusMethodCallback<vm_tools::concierge::StartVmResponse> + callback) override; + // Indicates whether WaitForServiceToBeAvailable has been called. bool wait_for_service_to_be_available_called() const { return wait_for_service_to_be_available_called_; @@ -165,6 +173,8 @@ bool detach_usb_device_called() const { return detach_usb_device_called_; } // Indicates whether ListUsbDevices has been called bool list_usb_devices_called() const { return list_usb_devices_called_; } + // Indicates whether StartArcVm has been called + bool start_arc_vm_called() const { return start_arc_vm_called_; } // Set ContainerStartupFailedSignalConnected state void set_container_startup_failed_signal_connected(bool connected) { is_container_startup_failed_signal_connected_ = connected; @@ -276,6 +286,7 @@ bool attach_usb_device_called_ = false; bool detach_usb_device_called_ = false; bool list_usb_devices_called_ = false; + bool start_arc_vm_called_ = false; bool is_container_startup_failed_signal_connected_ = true; bool is_disk_image_progress_signal_connected_ = true;
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc index a461210..427d819 100644 --- a/chromeos/services/assistant/assistant_manager_service_impl.cc +++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -968,7 +968,8 @@ DCHECK(background_thread_.task_runner()->BelongsToCurrentThread()); display_connection_ = std::make_unique<CrosDisplayConnection>( - this, assistant::features::IsFeedbackUiEnabled()); + this, assistant::features::IsFeedbackUiEnabled(), + assistant::features::IsMediaSessionIntegrationEnabled()); base::AutoLock lock(new_assistant_manager_lock_); new_assistant_manager_.reset(assistant_client::AssistantManager::Create(
diff --git a/components/BUILD.gn b/components/BUILD.gn index db0f8f1..1e3f6d6 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn
@@ -108,7 +108,6 @@ "//components/language/core/common:unit_tests", "//components/language_usage_metrics:unit_tests", "//components/leveldb_proto:unit_tests", - "//components/live_tab_count_metrics:unit_tests", "//components/metrics:unit_tests", "//components/navigation_metrics:unit_tests", "//components/net_log:unit_tests", @@ -152,6 +151,7 @@ "//components/sync_preferences:unit_tests", "//components/sync_sessions:unit_tests", "//components/sync_user_events:unit_tests", + "//components/tab_count_metrics:unit_tests", "//components/test:run_all_unittests", "//components/translate/core/browser:unit_tests", "//components/translate/core/common:unit_tests",
diff --git a/components/arc/clipboard/arc_clipboard_bridge.cc b/components/arc/clipboard/arc_clipboard_bridge.cc index e024b3d..fa49041a 100644 --- a/components/arc/clipboard/arc_clipboard_bridge.cc +++ b/components/arc/clipboard/arc_clipboard_bridge.cc
@@ -48,7 +48,7 @@ std::string url; uint32_t fragment_start, fragment_end; - clipboard->ReadHTML(ui::CLIPBOARD_TYPE_COPY_PASTE, &markup16, &url, + clipboard->ReadHTML(ui::ClipboardType::kCopyPaste, &markup16, &url, &fragment_start, &fragment_end); std::string text(base::UTF16ToUTF8( @@ -73,7 +73,7 @@ // present, only use Bookmark. clipboard->ReadBookmark(&title, &text); if (text.size() == 0) - clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text); + clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &text); return mojom::ClipRepresentation::New(mime_type, mojom::ClipValue::NewText(text)); @@ -84,7 +84,7 @@ std::vector<base::string16> mime_types; bool contains_files; - clipboard->ReadAvailableTypes(ui::CLIPBOARD_TYPE_COPY_PASTE, &mime_types, + clipboard->ReadAvailableTypes(ui::ClipboardType::kCopyPaste, &mime_types, &contains_files); mojom::ClipDataPtr clip_data(mojom::ClipData::New()); @@ -172,7 +172,7 @@ // Order is important. AutoReset should outlive ScopedClipboardWriter. base::AutoReset<bool> auto_reset(&event_originated_at_instance_, true); - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); for (const auto& repr : clip_data->representations) { const std::string& mime_type(repr->mime_type);
diff --git a/components/arc/clipboard/arc_clipboard_bridge_unittest.cc b/components/arc/clipboard/arc_clipboard_bridge_unittest.cc index bde4bc50..838de85 100644 --- a/components/arc/clipboard/arc_clipboard_bridge_unittest.cc +++ b/components/arc/clipboard/arc_clipboard_bridge_unittest.cc
@@ -84,7 +84,7 @@ TEST_F(ArcClipboardBridgeTest, GetClipContent_PlainText) { { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(base::UTF8ToUTF16(kSampleText)); } @@ -100,7 +100,7 @@ TEST_F(ArcClipboardBridgeTest, GetClipContent_Html) { { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteHTML(base::UTF8ToUTF16(kSampleHtml), std::string()); } @@ -121,13 +121,13 @@ std::vector<base::string16> mime_types; bool contains_files; - GetClipboard()->ReadAvailableTypes(ui::CLIPBOARD_TYPE_COPY_PASTE, &mime_types, + GetClipboard()->ReadAvailableTypes(ui::ClipboardType::kCopyPaste, &mime_types, &contains_files); ASSERT_EQ(1u, mime_types.size()); EXPECT_EQ(ui::kMimeTypeText, base::UTF16ToUTF8(mime_types[0])); base::string16 result; - GetClipboard()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + GetClipboard()->ReadText(ui::ClipboardType::kCopyPaste, &result); EXPECT_EQ(kSampleText, base::UTF16ToUTF8(result)); } @@ -138,7 +138,7 @@ std::vector<base::string16> mime_types; bool contains_files; - GetClipboard()->ReadAvailableTypes(ui::CLIPBOARD_TYPE_COPY_PASTE, &mime_types, + GetClipboard()->ReadAvailableTypes(ui::ClipboardType::kCopyPaste, &mime_types, &contains_files); ASSERT_EQ(1u, mime_types.size()); EXPECT_EQ(ui::kMimeTypeHTML, base::UTF16ToUTF8(mime_types[0])); @@ -146,7 +146,7 @@ base::string16 markup16; std::string url; uint32_t fragment_start, fragment_end; - GetClipboard()->ReadHTML(ui::CLIPBOARD_TYPE_COPY_PASTE, &markup16, &url, + GetClipboard()->ReadHTML(ui::ClipboardType::kCopyPaste, &markup16, &url, &fragment_start, &fragment_end); base::string16 result = markup16.substr(fragment_start, fragment_end - fragment_start);
diff --git a/components/bookmarks/browser/bookmark_node_data.cc b/components/bookmarks/browser/bookmark_node_data.cc index 6801c22..f0539f91 100644 --- a/components/bookmarks/browser/bookmark_node_data.cc +++ b/components/bookmarks/browser/bookmark_node_data.cc
@@ -139,7 +139,7 @@ bool BookmarkNodeData::ClipboardContainsBookmarks() { return ui::Clipboard::GetForCurrentThread()->IsFormatAvailable( ui::ClipboardFormatType::GetType(kClipboardFormatString), - ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardType::kCopyPaste); } #endif @@ -175,7 +175,7 @@ #if !defined(OS_MACOSX) void BookmarkNodeData::WriteToClipboard() { - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); #if defined(OS_WIN) const base::string16 kEOL(L"\r\n"); @@ -217,7 +217,7 @@ } bool BookmarkNodeData::ReadFromClipboard(ui::ClipboardType type) { - DCHECK_EQ(type, ui::CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ui::ClipboardType::kCopyPaste); std::string data; ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); clipboard->ReadData(ui::ClipboardFormatType::GetType(kClipboardFormatString),
diff --git a/components/bookmarks/browser/bookmark_node_data_mac.mm b/components/bookmarks/browser/bookmark_node_data_mac.mm index d2e699b..a651886 100644 --- a/components/bookmarks/browser/bookmark_node_data_mac.mm +++ b/components/bookmarks/browser/bookmark_node_data_mac.mm
@@ -29,13 +29,13 @@ // static bool BookmarkNodeData::ClipboardContainsBookmarks() { NSPasteboard* pb = - ui::ClipboardUtil::PasteboardFromType(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardUtil::PasteboardFromType(ui::ClipboardType::kCopyPaste); return PasteboardContainsBookmarks(pb); } void BookmarkNodeData::WriteToClipboard() { NSPasteboard* pb = - ui::ClipboardUtil::PasteboardFromType(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardUtil::PasteboardFromType(ui::ClipboardType::kCopyPaste); WriteBookmarksToPasteboard(pb, elements, profile_path_); }
diff --git a/components/bookmarks/browser/bookmark_node_data_unittest.cc b/components/bookmarks/browser/bookmark_node_data_unittest.cc index b12a447..2abbcde 100644 --- a/components/bookmarks/browser/bookmark_node_data_unittest.cc +++ b/components/bookmarks/browser/bookmark_node_data_unittest.cc
@@ -289,7 +289,7 @@ // Now read the data back in. base::string16 clipboard_result; - clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); + clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result); EXPECT_EQ(base::UTF8ToUTF16(url.spec()), clipboard_result); } @@ -319,7 +319,7 @@ combined_text = base::UTF8ToUTF16(url.spec()) + new_line + base::UTF8ToUTF16(url2.spec()); base::string16 clipboard_result; - clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); + clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result); EXPECT_EQ(combined_text, clipboard_result); } @@ -335,7 +335,7 @@ // Now read the data back in. base::string16 clipboard_result; - clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); + clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result); EXPECT_EQ(base::ASCIIToUTF16("g1"), clipboard_result); } @@ -354,7 +354,7 @@ // Now read the data back in. base::string16 clipboard_result; - clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); + clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result); EXPECT_EQ(base::ASCIIToUTF16("g1"), clipboard_result); } @@ -382,7 +382,7 @@ base::string16 folder_title = ASCIIToUTF16("g1"); combined_text = base::ASCIIToUTF16(url.spec()) + new_line + folder_title; base::string16 clipboard_result; - clipboard().ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); + clipboard().ReadText(ui::ClipboardType::kCopyPaste, &clipboard_result); EXPECT_EQ(combined_text, clipboard_result); }
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc index 9879555..69e2d90 100644 --- a/components/bookmarks/browser/bookmark_utils.cc +++ b/components/bookmarks/browser/bookmark_utils.cc
@@ -160,7 +160,7 @@ GURL GetUrlFromClipboard() { base::string16 url_text; #if !defined(OS_IOS) - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &url_text); #endif return GURL(url_text); @@ -307,7 +307,7 @@ return; BookmarkNodeData bookmark_data; - if (!bookmark_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE)) { + if (!bookmark_data.ReadFromClipboard(ui::ClipboardType::kCopyPaste)) { GURL url = GetUrlFromClipboard(); if (!url.is_valid()) return;
diff --git a/components/bookmarks/browser/bookmark_utils_unittest.cc b/components/bookmarks/browser/bookmark_utils_unittest.cc index 60884f1a..cac122e 100644 --- a/components/bookmarks/browser/bookmark_utils_unittest.cc +++ b/components/bookmarks/browser/bookmark_utils_unittest.cc
@@ -270,7 +270,7 @@ // Write blank text to clipboard. { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(base::string16()); } // Now we shouldn't be able to paste from the clipboard. @@ -278,7 +278,7 @@ // Write some valid url to the clipboard. { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(url_text); } // Now we should be able to paste from the clipboard. @@ -308,8 +308,7 @@ // Write some text to the clipboard. { - ui::ScopedClipboardWriter clipboard_writer( - ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(ASCIIToUTF16("foo")); }
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h index e8bf909..b8d9c29d 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
@@ -209,8 +209,6 @@ AreProxiesBypassedRetryDelay); FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest, WarmupURL); FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest, - ShouldAcceptServerLoFi); - FRIEND_TEST_ALL_PREFIXES(DataReductionProxyConfigTest, ShouldAcceptServerPreview); // Values of the estimated network quality at the beginning of the most
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h index 4dd49de..41fe16c9 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h
@@ -58,9 +58,6 @@ // TODO(jeremyim): Rationalize with test_params(). DataReductionProxyConfigValues* config_values(); - // Resets the Lo-Fi status to default state. - void ResetLoFiStatusForTest(); - // Sets the |tick_clock_| to |tick_clock|. Ownership of |tick_clock| is not // passed to the callee. void SetTickClock(const base::TickClock* tick_clock);
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc index a52c12b..2056849 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_unittest.cc
@@ -81,7 +81,7 @@ TEST_F(DataReductionProxyDataTest, DeepCopy) { const struct { bool data_reduction_used; - bool lofi_test_value; + bool lite_page_test_value; } tests[] = { { false, true, @@ -102,16 +102,16 @@ static const GURL kTestURL("test-url"); std::unique_ptr<DataReductionProxyData> data(new DataReductionProxyData()); data->set_used_data_reduction_proxy(tests[i].data_reduction_used); - data->set_lite_page_received(tests[i].lofi_test_value); - data->set_black_listed(tests[i].lofi_test_value); + data->set_lite_page_received(tests[i].lite_page_test_value); + data->set_black_listed(tests[i].lite_page_test_value); data->set_session_key(kSessionKey); data->set_request_url(kTestURL); data->set_effective_connection_type(net::EFFECTIVE_CONNECTION_TYPE_OFFLINE); data->set_connection_type(net::NetworkChangeNotifier::CONNECTION_WIFI); data->set_page_id(2u); std::unique_ptr<DataReductionProxyData> copy = data->DeepCopy(); - EXPECT_EQ(tests[i].lofi_test_value, copy->lite_page_received()); - EXPECT_EQ(tests[i].lofi_test_value, copy->black_listed()); + EXPECT_EQ(tests[i].lite_page_test_value, copy->lite_page_received()); + EXPECT_EQ(tests[i].lite_page_test_value, copy->black_listed()); EXPECT_EQ(tests[i].data_reduction_used, copy->used_data_reduction_proxy()); EXPECT_EQ(kSessionKey, copy->session_key()); EXPECT_EQ(kTestURL, copy->request_url());
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h index 46405a3f..81210891c 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
@@ -184,9 +184,6 @@ } private: - FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, - TestLoFiSessionStateHistograms); - void OnEffectiveConnectionTypeChanged( net::EffectiveConnectionType type) override;
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h index d9ca072..2a75c57 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h
@@ -94,8 +94,7 @@ std::unique_ptr<DataReductionProxyService> data_reduction_proxy_service); // Sets the |register_synthetic_field_trial_| callback and runs to register - // the DataReductionProxyEnabled and the DataReductionProxyLoFiEnabled - // synthetic field trial. + // the DataReductionProxyEnabled synthetic field trial. void SetCallbackToRegisterSyntheticFieldTrial( const SyntheticFieldTrialRegistrationCallback& on_data_reduction_proxy_enabled); @@ -247,14 +246,6 @@ FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, CheckInitMetricsWhenNotAllowed); FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, - TestLoFiImplicitOptOutClicksPerSession); - FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, - TestLoFiImplicitOptOutConsecutiveSessions); - FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, - TestLoFiImplicitOptOutHistograms); - FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, - TestLoFiSessionStateHistograms); - FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, TestSettingsEnabledStateHistograms); FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, TestDaysSinceEnabled);
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc index 72fde576..0d05569a 100644 --- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc +++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
@@ -39,8 +39,7 @@ const char kQuicFieldTrial[] = "DataReductionProxyUseQuic"; -const char kLoFiFieldTrial[] = "DataCompressionProxyLoFi"; -const char kLoFiFlagFieldTrial[] = "DataCompressionProxyLoFiFlag"; +const char kLitePageFieldTrial[] = "DataCompressionProxyLoFi"; // Default URL for retrieving the Data Reduction Proxy configuration. const char kClientConfigURL[] = @@ -114,15 +113,6 @@ return base::FieldTrialList::FindFullName("DataCompressionProxyHoldback"); } -const char* GetLoFiFieldTrialName() { - return kLoFiFieldTrial; -} - -const char* GetLoFiFlagFieldTrialName() { - return kLoFiFlagFieldTrial; -} - - bool FetchWarmupProbeURLEnabled() { return !base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableDataReductionProxyWarmupURLFetch); @@ -242,9 +232,8 @@ } int LitePageVersion() { - return GetFieldTrialParameterAsInteger( - data_reduction_proxy::params::GetLoFiFieldTrialName(), - kLitePageBlackListVersion, 0, 0); + return GetFieldTrialParameterAsInteger(kLitePageFieldTrial, + kLitePageBlackListVersion, 0, 0); } int GetFieldTrialParameterAsInteger(const std::string& group,
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h index 5228343e..e79a7b7 100644 --- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h +++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.h
@@ -48,15 +48,6 @@ // not included in a group. std::string HoldbackFieldTrialGroup(); -// Returns the name of the Lo-Fi field trial. -// TODO(ryansturm): crbug.com/759052 Cleanup once fully cutover to new blacklist -const char* GetLoFiFieldTrialName(); - -// Returns the name of the Lo-Fi field trial that configures LoFi flags when it -// is force enabled through flags. -// TODO(ryansturm): crbug.com/759052 Cleanup once fully cutover to new blacklist -const char* GetLoFiFlagFieldTrialName(); - // Returns true if this client has the command line switch to enable forced // pageload metrics pingbacks on every page load. bool IsForcePingbackEnabledViaFlags();
diff --git a/components/exo/data_offer.cc b/components/exo/data_offer.cc index d30a1ec..f288f40 100644 --- a/components/exo/data_offer.cc +++ b/components/exo/data_offer.cc
@@ -110,7 +110,7 @@ void ReadTextFromClipboard(const std::string& charset, base::ScopedFD fd) { base::string16 text; std::string encoded_text; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &text); base::UTF16ToCodepage(text, charset.c_str(), base::OnStringConversionError::SUBSTITUTE, @@ -124,7 +124,7 @@ std::string url; uint32_t start, end; std::string encoded_text; - ui::Clipboard::GetForCurrentThread()->ReadHTML(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadHTML(ui::ClipboardType::kCopyPaste, &text, &url, &start, &end); base::UTF16ToCodepage(text, charset.c_str(), base::OnStringConversionError::SUBSTITUTE, @@ -135,7 +135,7 @@ void ReadRTFFromClipboard(base::ScopedFD fd) { std::string text; - ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::ClipboardType::kCopyPaste, &text); WriteFileDescriptor(std::move(fd), base::RefCountedString::TakeString(&text)); } @@ -155,7 +155,7 @@ void ReadPNGFromClipboard(base::ScopedFD fd) { const SkBitmap sk_bitmap = ui::Clipboard::GetForCurrentThread()->ReadImage( - ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardType::kCopyPaste); base::PostTaskWithTraits( FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING}, base::BindOnce(&SendAsPNGOnWorkerThread, std::move(fd), @@ -266,7 +266,7 @@ const ui::Clipboard& data) { DCHECK_EQ(0u, data_.size()); if (data.IsFormatAvailable(ui::ClipboardFormatType::GetPlainTextWType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)) { + ui::ClipboardType::kCopyPaste)) { auto utf8_callback = base::BindRepeating(&ReadTextFromClipboard, std::string(kUTF8)); delegate_->OnOffer(std::string(kTextMimeTypeUtf8)); @@ -279,7 +279,7 @@ base::BindRepeating(&ReadTextFromClipboard, std::string(kUTF16))); } if (data.IsFormatAvailable(ui::ClipboardFormatType::GetHtmlType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)) { + ui::ClipboardType::kCopyPaste)) { delegate_->OnOffer(std::string(kTextHtmlMimeTypeUtf8)); data_callbacks_.emplace( std::string(kTextHtmlMimeTypeUtf8), @@ -290,13 +290,13 @@ base::BindRepeating(&ReadHTMLFromClipboard, std::string(kUTF16))); } if (data.IsFormatAvailable(ui::ClipboardFormatType::GetRtfType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)) { + ui::ClipboardType::kCopyPaste)) { delegate_->OnOffer(std::string(kTextRtfMimeType)); data_callbacks_.emplace(std::string(kTextRtfMimeType), base::BindRepeating(&ReadRTFFromClipboard)); } if (data.IsFormatAvailable(ui::ClipboardFormatType::GetBitmapType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)) { + ui::ClipboardType::kCopyPaste)) { delegate_->OnOffer(std::string(kImagePngMimeType)); data_callbacks_.emplace(std::string(kImagePngMimeType), base::BindRepeating(&ReadPNGFromClipboard));
diff --git a/components/exo/data_offer_unittest.cc b/components/exo/data_offer_unittest.cc index c09e9466..3b815ac8 100644 --- a/components/exo/data_offer_unittest.cc +++ b/components/exo/data_offer_unittest.cc
@@ -346,7 +346,7 @@ TestFileHelper file_helper; { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(base::UTF8ToUTF16("Test data")); } data_offer.SetClipboardData(&file_helper, @@ -379,7 +379,7 @@ TestFileHelper file_helper; { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteHTML(base::UTF8ToUTF16("Test data"), ""); } data_offer.SetClipboardData(&file_helper, @@ -411,7 +411,7 @@ TestFileHelper file_helper; { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteRTF("Test data"); } data_offer.SetClipboardData(&file_helper,
diff --git a/components/exo/seat.cc b/components/exo/seat.cc index f54eb41..770ab19 100644 --- a/components/exo/seat.cc +++ b/components/exo/seat.cc
@@ -129,7 +129,7 @@ void Seat::SetSelection(DataSource* source) { if (!source) { - ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardType::kCopyPaste); // selection_source_ is Cancelled() and reset() in OnClipboardDataChanged(). return; } @@ -142,7 +142,7 @@ selection_source_ = std::make_unique<ScopedDataSource>(source, this); scoped_refptr<RefCountedScopedClipboardWriter> writer = base::MakeRefCounted<RefCountedScopedClipboardWriter>( - ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ClipboardType::kCopyPaste); base::RepeatingClosure data_read_callback = base::BarrierClosure( kMaxClipboardDataTypes,
diff --git a/components/exo/seat_unittest.cc b/components/exo/seat_unittest.cc index dbb93d5..e5959687 100644 --- a/components/exo/seat_unittest.cc +++ b/components/exo/seat_unittest.cc
@@ -105,7 +105,7 @@ std::string clipboard; ui::Clipboard::GetForCurrentThread()->ReadAsciiText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard); + ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, std::string("TestData")); } @@ -132,14 +132,14 @@ RunReadingTask(); base::string16 clipboard; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, converted_data); std::string url; uint32_t start, end; ui::Clipboard::GetForCurrentThread()->ReadHTML( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end); + ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end); EXPECT_EQ(clipboard, converted_data); } @@ -167,14 +167,14 @@ RunReadingTask(); base::string16 clipboard; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, converted_data); std::string url; uint32_t start, end; ui::Clipboard::GetForCurrentThread()->ReadHTML( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end); + ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end); EXPECT_EQ(clipboard, converted_data); } @@ -202,14 +202,14 @@ RunReadingTask(); base::string16 clipboard; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, converted_data); std::string url; uint32_t start, end; ui::Clipboard::GetForCurrentThread()->ReadHTML( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end); + ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end); EXPECT_EQ(clipboard, converted_data); } @@ -228,14 +228,14 @@ RunReadingTask(); base::string16 clipboard; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard.size(), 0u); std::string url; uint32_t start, end; ui::Clipboard::GetForCurrentThread()->ReadHTML( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard, &url, &start, &end); + ui::ClipboardType::kCopyPaste, &clipboard, &url, &start, &end); EXPECT_EQ(clipboard.size(), 0u); } @@ -250,7 +250,7 @@ RunReadingTask(); std::string clipboard; - ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadRTF(ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, std::string("TestData")); @@ -296,7 +296,7 @@ seat.SetSelection(&source); { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(base::UTF8ToUTF16("New data")); } @@ -307,7 +307,7 @@ std::string clipboard; ui::Clipboard::GetForCurrentThread()->ReadAsciiText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard); + ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, "New data"); } @@ -320,7 +320,7 @@ RunReadingTask(); { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(base::UTF8ToUTF16("New data")); } @@ -329,7 +329,7 @@ std::string clipboard; ui::Clipboard::GetForCurrentThread()->ReadAsciiText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard); + ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, "New data"); } @@ -337,7 +337,7 @@ Seat seat; { - ui::ScopedClipboardWriter writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter writer(ui::ClipboardType::kCopyPaste); writer.WriteText(base::UTF8ToUTF16("Original data")); } @@ -352,7 +352,7 @@ std::string clipboard; ui::Clipboard::GetForCurrentThread()->ReadAsciiText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard); + ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, "Original data"); } @@ -401,7 +401,7 @@ std::string clipboard; ui::Clipboard::GetForCurrentThread()->ReadAsciiText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard); + ui::ClipboardType::kCopyPaste, &clipboard); EXPECT_EQ(clipboard, ""); }
diff --git a/components/heap_profiling/client_connection_manager.cc b/components/heap_profiling/client_connection_manager.cc index 3aa5383..1c5d77a 100644 --- a/components/heap_profiling/client_connection_manager.cc +++ b/components/heap_profiling/client_connection_manager.cc
@@ -5,9 +5,11 @@ #include "components/heap_profiling/client_connection_manager.h" #include "base/bind.h" +#include "base/no_destructor.h" #include "base/rand_util.h" #include "base/task/post_task.h" #include "components/services/heap_profiling/public/cpp/controller.h" +#include "components/services/heap_profiling/public/cpp/profiling_client.h" #include "components/services/heap_profiling/public/cpp/settings.h" #include "components/services/heap_profiling/public/mojom/heap_profiling_client.mojom.h" #include "components/services/heap_profiling/public/mojom/heap_profiling_service.mojom.h" @@ -46,13 +48,6 @@ content::BindInterface(host, std::move(request_)); } - // Binds to the local connector to get the browser process' ProfilingClient. - explicit ProfilingClientBinder(service_manager::Connector* connector) - : ProfilingClientBinder() { - connector->BindInterface(content::mojom::kSystemServiceName, - std::move(request_)); - } - mojom::ProfilingClientPtr take() { return std::move(memlog_client_); } private: @@ -153,10 +148,11 @@ if (!controller) return; - ProfilingClientBinder client(controller->GetConnector()); - StartProfilingClientOnIOThread(controller, std::move(client), - base::GetCurrentProcId(), - mojom::ProcessType::BROWSER); + static base::NoDestructor<ProfilingClient> client; + mojom::ProfilingClientPtr proxy; + client->BindToInterface(mojo::MakeRequest(&proxy)); + controller->StartProfilingClient(std::move(proxy), base::GetCurrentProcId(), + mojom::ProcessType::BROWSER); } void StartProfilingPidOnIOThread(base::WeakPtr<Controller> controller, @@ -168,9 +164,7 @@ // Check if the request is for the current process. if (pid == base::GetCurrentProcId()) { - ProfilingClientBinder client(controller->GetConnector()); - StartProfilingClientOnIOThread(controller, std::move(client), pid, - mojom::ProcessType::BROWSER); + StartProfilingBrowserProcessOnIOThread(std::move(controller)); return; }
diff --git a/components/live_tab_count_metrics/README b/components/live_tab_count_metrics/README deleted file mode 100644 index aa1dc62..0000000 --- a/components/live_tab_count_metrics/README +++ /dev/null
@@ -1,21 +0,0 @@ -This directory contains process-independent code for recording metrics bucketed -by the number of live tabs. - -We consider a tab to be alive (i.e. a live tab) if it is a UI tab (e.g. in a -tabstrip, as opposed to a prerenderer), and it has not been discarded and has -not crashed. Tabs can be discarded on desktop by TabManager to conserve -resources, and tabs crash when the corresponding renderer process is killed, -e.g. due to limited resources (OOM). - -Clients of this component must be able to count live tabs. The interface this -component exposes provides a way to help create metrics bucketed by live tab -count in a consistent manner, but this is dependent on the client knowing the -count. The code in this directory is meant to be shared between processes, and -so we do not count live tabs here. The live tab count is a browser concept, and -it can be computed there. To record metrics bucketed by live tab counts in -processes other than the browser, the live tab count would need to be plumbed -out of the browser. In some cases this may be more efficient than plumbing -metrics data out of the process to the browser, which is an alternative. - -This component should not have any dependencies other than //base as it -should be able to be used from any other place.
diff --git a/components/live_tab_count_metrics/live_tab_count_metrics.cc b/components/live_tab_count_metrics/live_tab_count_metrics.cc deleted file mode 100644 index f37a7c2..0000000 --- a/components/live_tab_count_metrics/live_tab_count_metrics.cc +++ /dev/null
@@ -1,85 +0,0 @@ -// Copyright 2018 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. - -#include "components/live_tab_count_metrics/live_tab_count_metrics.h" - -#include <limits> - -#include "base/logging.h" -#include "base/stl_util.h" - -namespace live_tab_count_metrics { - -// These values represent the lower bound for each bucket, and define the live -// tab count buckets. The final bucket has no upper bound, and each other -// bucket, i, is bounded above by the lower bound of bucket i + 1. -// -// The buckets were determined from the Tabs.MaxTabsInADay histogram, -// approximating the 25th, 50th, 75th, 95th, and 99th percentiles, but with the -// single and zero tab cases separated. -// -// If adding or removing a bucket, update |kNumLiveTabCountBuckets|, -// |kLiveTabCountBucketMins|, and |kLiveTabCountBucketNames|. If adding, -// removing, or changing bucket ranges, the existing metrics that use these -// functions for emitting histograms should be marked as obsolete, and new -// metrics should be created. This can be accomplished by versioning -// |kLiveTabCountBucketNames|, e.g. ".ByLiveTabCount2.0Tabs", etc., and -// updating the histogram suffixes section of histograms.xml, creating a new -// entry for the new suffixes and marking the old suffixes obsolete. -constexpr size_t kLiveTabCountBucketMins[] = {0, 1, 2, 3, 5, 8, 20, 40}; - -// Text for the live tab count portion of metric names. These need to be kept -// in sync with |kLiveTabCountBucketMins|. -constexpr const char* kLiveTabCountBucketNames[]{ - ".ByLiveTabCount.0Tabs", ".ByLiveTabCount.1Tab", - ".ByLiveTabCount.2Tabs", ".ByLiveTabCount.3To4Tabs", - ".ByLiveTabCount.5To7Tabs", ".ByLiveTabCount.8To19Tabs", - ".ByLiveTabCount.20To39Tabs", ".ByLiveTabCount.40OrMoreTabs"}; - -std::string HistogramName(const std::string prefix, size_t bucket) { - static_assert( - base::size(kLiveTabCountBucketMins) == kNumLiveTabCountBuckets, - "kLiveTabCountBucketMins must have kNumLiveTabCountBuckets elements."); - static_assert( - base::size(kLiveTabCountBucketNames) == kNumLiveTabCountBuckets, - "kLiveTabCountBucketNames must have kNumLiveTabCountBuckets elements."); - DCHECK_LT(bucket, kNumLiveTabCountBuckets); - DCHECK(prefix.length()); - return prefix + kLiveTabCountBucketNames[bucket]; -} - -size_t BucketForLiveTabCount(size_t num_live_tabs) { - for (size_t bucket = 0; bucket < kNumLiveTabCountBuckets; bucket++) { - if (internal::IsInBucket(num_live_tabs, bucket)) - return bucket; - } - // There should be a bucket for any number of tabs >= 0. - NOTREACHED(); - return kNumLiveTabCountBuckets; -} - -namespace internal { - -size_t BucketMin(size_t bucket) { - DCHECK_LT(bucket, kNumLiveTabCountBuckets); - return kLiveTabCountBucketMins[bucket]; -} - -size_t BucketMax(size_t bucket) { - DCHECK_LT(bucket, kNumLiveTabCountBuckets); - // The last bucket includes everything after the min bucket value. - if (bucket == kNumLiveTabCountBuckets - 1) - return std::numeric_limits<size_t>::max(); - return kLiveTabCountBucketMins[bucket + 1] - 1; -} - -bool IsInBucket(size_t num_live_tabs, size_t bucket) { - DCHECK_LT(bucket, kNumLiveTabCountBuckets); - return num_live_tabs >= BucketMin(bucket) && - num_live_tabs <= BucketMax(bucket); -} - -} // namespace internal - -} // namespace live_tab_count_metrics
diff --git a/components/live_tab_count_metrics/live_tab_count_metrics.h b/components/live_tab_count_metrics/live_tab_count_metrics.h deleted file mode 100644 index a990d0c..0000000 --- a/components/live_tab_count_metrics/live_tab_count_metrics.h +++ /dev/null
@@ -1,80 +0,0 @@ -// Copyright 2018 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. - -#ifndef COMPONENTS_LIVE_TAB_COUNT_METRICS_LIVE_TAB_COUNT_METRICS_H_ -#define COMPONENTS_LIVE_TAB_COUNT_METRICS_LIVE_TAB_COUNT_METRICS_H_ - -#include <string> - -#include "base/component_export.h" - -// This namespace contains functions for creating histograms bucketed by number -// of live tabs. -// -// All bucket parameters --- number of buckets, bucket sizes, bucket names --- -// are determined at compile time, and these methods are safe to call from any -// thread. -// -// A typical example of creating a histogram bucketed by live tab count using -// STATIC_HISTOGRAM_POINTER_GROUP looks something like this: -// const size_t live_tab_count = GetLiveTabCount(); -// const size_t bucket = -// live_tab_count_metrics::BucketForLiveTabCount(live_tab_count); -// STATIC_HISTOGRAM_POINTER_GROUP( -// live_tab_count_metrics::HistogramName(constant_histogram_prefix, -// bucket), -// static_cast<int>(bucket), -// static_cast<int>(live_tab_count_metrics::kNumLiveTabCountBuckets), -// Add(sample), -// base::Histogram::FactoryGet( -// live_tab_count_metrics::HistogramName(constant_histogram_prefix, -// bucket), -// MINIMUM_SAMPLE, MAXIMUM_SAMPLE, BUCKET_COUNT, -// base::HistogramBase::kUmaTargetedHistogramFlag)); -// } -namespace live_tab_count_metrics { - -// |kNumLiveTabCountBuckets| is used in various constexpr arrays and as a bound -// on the histogram array when using STATIC_HISTOGRAM_POINTER_GROUP. This value -// must be equal to the length of the array of live tab count bucket min values -// (|kLiveTabCountBucketMins|) and the array of bucket names -// (|kLiveTabCountBucketNames|) found in the corresponding .cc file. -constexpr size_t kNumLiveTabCountBuckets = 8; - -// Returns the histogram name for |bucket|. The histogram name is the -// concatenation of |prefix| and the name corresponding to |bucket|, which is of -// the form |prefix| + ".ByLiveTabCount." + <BucketRangeText>, where -// <BucketRangeText> is a string describing the bucket range, e.g. "1Tab", -// "3To4Tabs", etc. See |kLiveTabCountBucketNames| for all of the bucket names. -// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|). -COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS) -std::string HistogramName(const std::string prefix, size_t bucket); - -// Return the bucket index for the |num_live_tabs|. -COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS) -size_t BucketForLiveTabCount(size_t num_live_tabs); - -// These are exposed for unit tests. -namespace internal { - -// Returns the number of tabs corresponding to the minimum value of |bucket|. -// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|). -COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS) -size_t BucketMin(size_t bucket); - -// Returns the number of tabs corresponding to the maximum value of |bucket|. -// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|). -COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS) -size_t BucketMax(size_t bucket); - -// Returns true if |num_live_tabs| falls within |bucket|. -// |bucket| must be in the interval [0, |kNumLiveTabCountBuckets|). -COMPONENT_EXPORT(LIVE_TAB_COUNT_METRICS) -bool IsInBucket(size_t num_live_tabs, size_t bucket); - -} // namespace internal - -} // namespace live_tab_count_metrics - -#endif // COMPONENTS_LIVE_TAB_COUNT_METRICS_LIVE_TAB_COUNT_METRICS_H_
diff --git a/components/live_tab_count_metrics/live_tab_count_metrics_unittest.cc b/components/live_tab_count_metrics/live_tab_count_metrics_unittest.cc deleted file mode 100644 index 56b1337..0000000 --- a/components/live_tab_count_metrics/live_tab_count_metrics_unittest.cc +++ /dev/null
@@ -1,168 +0,0 @@ -// Copyright 2018 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. - -#include "components/live_tab_count_metrics/live_tab_count_metrics.h" - -#include <algorithm> -#include <array> -#include <string> - -#include "base/containers/flat_map.h" -#include "base/metrics/histogram.h" -#include "base/metrics/histogram_macros.h" -#include "base/test/metrics/histogram_tester.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace live_tab_count_metrics { - -namespace { - -// For unit tests, we create bucketed test enumeration histograms with a prefix -// of |kTestMetricPrefix| and a range of [0, |kMaxLiveTabCount|]. We want good -// test coverage in all buckets, but the overflow live tab count bucket is -// unbounded, so we cap the max number of live tabs at a reasonable value. -constexpr char kTestMetricPrefix[] = "TestMetric"; -constexpr size_t kMaxLiveTabCount = 400; - -// LiveTabCounts is a map of a live tab count to expected histogram counts, -// which is used to validate the test histogram. -// -// When we record a sample for test metrics, the number of live tabs is used as -// the bucket in the enumeration histogram. For example, if we record a sample -// with the number of live tabs equal to 10, we use 10 as the sample in the -// enumeration histogram. Suppose we have LiveTabCounts map, |expected_counts|. -// When recording the metric, we would increment the value of -// expected_counts[10]. |expected_counts| is then used to validate the -// histogram. -using LiveTabCounts = base::flat_map<size_t, size_t>; - -// Array of LiveTabCounts, indexed by live tab count bucket. -// -// Each value in this array corresponds to the expected counts for a different -// histogram, i.e. the histogram corresponding to the live tab count bucket -// equal to the array index. For example, given a -// HistogramCountsByLiveTabCountBucket array, |expected_counts_by_bucket|, -// expected_counts_by_bucket[1] are the expected counts for the histogram -// corresponding to live tab count bucket 1. -using HistogramCountsByLiveTabCountBucket = - std::array<LiveTabCounts, kNumLiveTabCountBuckets>; - -} // namespace - -class LiveTabCountMetricsTest : public testing::Test { - public: - LiveTabCountMetricsTest() = default; - ~LiveTabCountMetricsTest() override = default; - - void RecordLiveTabCountMetric(size_t live_tab_count) { - EXPECT_LE(live_tab_count, kMaxLiveTabCount); - const size_t bucket = BucketForLiveTabCount(live_tab_count); - STATIC_HISTOGRAM_POINTER_GROUP( - HistogramName(kTestMetricPrefix, bucket), static_cast<int>(bucket), - static_cast<int>(kNumLiveTabCountBuckets), Add(live_tab_count), - base::Histogram::FactoryGet( - HistogramName(kTestMetricPrefix, bucket), 1, kMaxLiveTabCount, - kMaxLiveTabCount + 1, - base::HistogramBase::kUmaTargetedHistogramFlag)); - } - - protected: - void ValidateHistograms( - const HistogramCountsByLiveTabCountBucket& expected_counts) { - for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { - size_t expected_total_count = 0; - std::string histogram_name = HistogramName(kTestMetricPrefix, bucket); - for (const auto& live_tab_counts : expected_counts[bucket]) { - histogram_tester_.ExpectBucketCount( - histogram_name, live_tab_counts.first, live_tab_counts.second); - expected_total_count += live_tab_counts.second; - } - histogram_tester_.ExpectTotalCount(histogram_name, expected_total_count); - } - } - - private: - base::HistogramTester histogram_tester_; -}; - -TEST_F(LiveTabCountMetricsTest, HistogramNames) { - // Testing with hard-coded strings to check that the concatenated names - // produced by HistogramName() are indeed what we expect. If the bucket ranges - // change, these strings will need to as well. - const std::string kTestMetricNameBucket1("TestMetric.ByLiveTabCount.1Tab"); - const std::string kTestMetricNameBucket3( - "TestMetric.ByLiveTabCount.3To4Tabs"); - EXPECT_EQ(kTestMetricNameBucket1, HistogramName(kTestMetricPrefix, 1)); - EXPECT_EQ(kTestMetricNameBucket3, HistogramName(kTestMetricPrefix, 3)); -} - -TEST_F(LiveTabCountMetricsTest, RecordMetricsForBucketLimits) { - // For each bucket, simulate recording metrics with the live tab count equal - // to the lower and upper bounds of each bucket. For the last bucket, we use - // an artificial upper bound since that bucket has no practical bound (max - // size_t value) and do not want to create a histogram with that many buckets. - HistogramCountsByLiveTabCountBucket expected_counts; - for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { - size_t num_live_tabs = internal::BucketMin(bucket); - RecordLiveTabCountMetric(num_live_tabs); - // Expect a count of 1 for the |num_live_tabs| case in the histogram - // corresponding to |bucket|. - expected_counts[bucket].emplace(num_live_tabs, 1); - - num_live_tabs = std::min(internal::BucketMax(bucket), kMaxLiveTabCount); - RecordLiveTabCountMetric(num_live_tabs); - // Ensure that we aren't setting the artificial maximum for the last bucket - // too low. - EXPECT_LE(internal::BucketMin(bucket), num_live_tabs); - - auto iter = expected_counts[bucket].find(num_live_tabs); - if (iter != expected_counts[bucket].end()) { - // If the lower bound for |bucket| is the same as the upper bound, we've - // already recorded a value for |num_live_tabs| in |bucket|. - EXPECT_EQ(iter->second, 1u); - ++iter->second; - } else { - expected_counts[bucket].emplace(num_live_tabs, 1); - } - - ValidateHistograms(expected_counts); - } -} - -TEST_F(LiveTabCountMetricsTest, RecordMetricsForAllBucketValues) { - // For each bucket, simulate recording metrics with the live tab count equal - // to each value in the bucket range, i.e. from BucketMin() to BucketMax(). - // For the last bucket, we use an artificial upper bound since that bucket has - // no practical bound (max size_t value) and do not want to create a histogram - // with that many buckets. - HistogramCountsByLiveTabCountBucket expected_counts; - for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { - size_t num_live_tabs_lower_bound = internal::BucketMin(bucket); - size_t num_live_tabs_upper_bound = - std::min(internal::BucketMax(bucket), kMaxLiveTabCount); - EXPECT_LE(num_live_tabs_lower_bound, num_live_tabs_upper_bound); - for (size_t live_tab_count = num_live_tabs_lower_bound; - live_tab_count <= num_live_tabs_upper_bound; live_tab_count++) { - RecordLiveTabCountMetric(live_tab_count); - expected_counts[bucket].emplace(live_tab_count, 1); - } - ValidateHistograms(expected_counts); - } -} - -TEST_F(LiveTabCountMetricsTest, BucketsDoNotOverlap) { - // For any number of tabs >= 0, the tab should belong to exactly one bucket. - for (size_t tab_count = 0; tab_count <= kMaxLiveTabCount; tab_count++) { - bool has_bucket_for_tab_count = false; - for (size_t bucket = 0; bucket < kNumLiveTabCountBuckets; bucket++) { - if (internal::IsInBucket(tab_count, bucket)) { - EXPECT_FALSE(has_bucket_for_tab_count); - has_bucket_for_tab_count = true; - } - } - EXPECT_TRUE(has_bucket_for_tab_count); - } -} - -} // namespace live_tab_count_metrics
diff --git a/components/open_from_clipboard/clipboard_recent_content_generic.cc b/components/open_from_clipboard/clipboard_recent_content_generic.cc index 0ca6a01..5fab0b9 100644 --- a/components/open_from_clipboard/clipboard_recent_content_generic.cc +++ b/components/open_from_clipboard/clipboard_recent_content_generic.cc
@@ -30,7 +30,7 @@ // Get and clean up the clipboard before processing. std::string gurl_string; ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); - clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &gurl_string); + clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &gurl_string); base::TrimWhitespaceASCII(gurl_string, base::TrimPositions::TRIM_ALL, &gurl_string); @@ -48,7 +48,7 @@ // Fall back to unicode / UTF16, as some URLs may use international domain // names, not punycode. base::string16 gurl_string16; - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &gurl_string16); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &gurl_string16); base::TrimWhitespace(gurl_string16, base::TrimPositions::TRIM_ALL, &gurl_string16); if (gurl_string16.find_first_of(base::kWhitespaceUTF16) !=
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 3f07770..49dc25d 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -3688,7 +3688,7 @@ 'properties': { 'installation_mode': { 'type': 'string', - 'enum': ['blocked', 'allowed'] + 'enum': ['blocked', 'allowed', 'removed'] }, 'blocked_permissions': { '$ref': 'ListOfPermissions', @@ -3705,7 +3705,7 @@ 'properties': { 'installation_mode': { 'type': 'string', - 'enum': ['blocked', 'allowed'] + 'enum': ['blocked', 'allowed', 'removed'] }, 'blocked_permissions': { '$ref': 'ListOfPermissions',
diff --git a/components/previews/content/previews_optimization_guide.cc b/components/previews/content/previews_optimization_guide.cc index 59ee2db..6599f60 100644 --- a/components/previews/content/previews_optimization_guide.cc +++ b/components/previews/content/previews_optimization_guide.cc
@@ -202,6 +202,10 @@ DCHECK(ui_task_runner_->BelongsToCurrentThread()); if (type == PreviewsType::LITE_PAGE_REDIRECT) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kIgnoreLitePageRedirectOptimizationBlacklist)) { + return false; + } if (!hints_) return true;
diff --git a/components/live_tab_count_metrics/BUILD.gn b/components/tab_count_metrics/BUILD.gn similarity index 61% rename from components/live_tab_count_metrics/BUILD.gn rename to components/tab_count_metrics/BUILD.gn index 5868db2..84b24ff 100644 --- a/components/live_tab_count_metrics/BUILD.gn +++ b/components/tab_count_metrics/BUILD.gn
@@ -2,13 +2,13 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -component("live_tab_count_metrics") { +component("tab_count_metrics") { sources = [ - "live_tab_count_metrics.cc", - "live_tab_count_metrics.h", + "tab_count_metrics.cc", + "tab_count_metrics.h", ] - defines = [ "IS_LIVE_TAB_COUNT_METRICS_IMPL" ] + defines = [ "IS_TAB_COUNT_METRICS_IMPL" ] public_deps = [ "//base", @@ -18,11 +18,11 @@ source_set("unit_tests") { testonly = true sources = [ - "live_tab_count_metrics_unittest.cc", + "tab_count_metrics_unittest.cc", ] deps = [ - ":live_tab_count_metrics", + ":tab_count_metrics", "//base/test:test_support", "//testing/gtest", ]
diff --git a/components/live_tab_count_metrics/OWNERS b/components/tab_count_metrics/OWNERS similarity index 100% rename from components/live_tab_count_metrics/OWNERS rename to components/tab_count_metrics/OWNERS
diff --git a/components/tab_count_metrics/README b/components/tab_count_metrics/README new file mode 100644 index 0000000..f9a70a0 --- /dev/null +++ b/components/tab_count_metrics/README
@@ -0,0 +1,21 @@ +This directory contains process-independent code for recording metrics bucketed +by the number of tabs or the number of live tabs. + +We consider a tab to be alive (i.e. a live tab) if it is a UI tab (e.g. in a +tabstrip, as opposed to a prerenderer), and it has not been discarded and has +not crashed. Tabs can be discarded on desktop by TabManager to conserve +resources, and tabs crash when the corresponding renderer process is killed, +e.g. due to limited resources (OOM). + +Clients of this component must be able to count live tabs. The interface this +component exposes provides a way to help create metrics bucketed by live/ or all +tab count in a consistent manner, but this is dependent on the client knowing +the count. The code in this directory is meant to be shared between processes, +and so we do not count tabs here. The tab count is a browser concept, and it can +be computed there. To record metrics bucketed by tab counts in processes other +than the browser, the tab count would need to be plumbed out of the browser. In +some cases this may be more efficient than plumbing metrics data out of the +process to the browser, which is an alternative. + +This component should not have any dependencies other than //base as it +should be able to be used from any other place.
diff --git a/components/tab_count_metrics/tab_count_metrics.cc b/components/tab_count_metrics/tab_count_metrics.cc new file mode 100644 index 0000000..068a0b3 --- /dev/null +++ b/components/tab_count_metrics/tab_count_metrics.cc
@@ -0,0 +1,86 @@ +// Copyright 2018 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. + +#include "components/tab_count_metrics/tab_count_metrics.h" + +#include <limits> + +#include "base/logging.h" +#include "base/stl_util.h" + +namespace tab_count_metrics { + +// These values represent the lower bound for each bucket, and define the +// tab count buckets. The final bucket has no upper bound, and each other +// bucket, i, is bounded above by the lower bound of bucket i + 1. +// +// The buckets were determined from the Tabs.MaxTabsInADay histogram, +// approximating the 25th, 50th, 75th, 95th, and 99th percentiles, but with the +// single and zero tab cases separated. +// +// If adding or removing a bucket, update |kNumTabCountBuckets|, +// |kTabCountBucketMins|, and |kTabCountBucketNames|. If adding, +// removing, or changing bucket ranges, the existing metrics that use these +// functions for emitting histograms should be marked as obsolete, and new +// metrics should be created. This can be accomplished by versioning +// |kTabCountBucketNames|, e.g. ".ByTabCount2.0Tabs", etc., and +// updating the histogram suffixes section of histograms.xml, creating a new +// entry for the new suffixes and marking the old suffixes obsolete. +constexpr size_t kTabCountBucketMins[] = {0, 1, 2, 3, 5, 8, 20, 40}; + +constexpr const char* kTabBucketNamePrefix[]{".ByTabCount", ".ByLiveTabCount"}; + +// Text for the tab count portion of metric names. These need to be kept +// in sync with |kTabCountBucketMins|. +constexpr const char* kTabCountBucketNames[]{ + ".0Tabs", ".1Tab", ".2Tabs", ".3To4Tabs", + ".5To7Tabs", ".8To19Tabs", ".20To39Tabs", ".40OrMoreTabs"}; + +std::string HistogramName(const std::string prefix, + bool live_tabs_only, + size_t bucket) { + DCHECK(live_tabs_only); + static_assert(base::size(kTabCountBucketMins) == kNumTabCountBuckets, + "kTabCountBucketMins must have kNumTabCountBuckets elements."); + static_assert(base::size(kTabCountBucketNames) == kNumTabCountBuckets, + "kTabCountBucketNames must have kNumTabCountBuckets elements."); + DCHECK_LT(bucket, kNumTabCountBuckets); + DCHECK(prefix.length()); + return prefix + kTabBucketNamePrefix[live_tabs_only ? 1u : 0u] + + kTabCountBucketNames[bucket]; +} + +size_t BucketForTabCount(size_t num_tabs) { + for (size_t bucket = 0; bucket < kNumTabCountBuckets; bucket++) { + if (internal::IsInBucket(num_tabs, bucket)) + return bucket; + } + // There should be a bucket for any number of tabs >= 0. + NOTREACHED(); + return kNumTabCountBuckets; +} + +namespace internal { + +size_t BucketMin(size_t bucket) { + DCHECK_LT(bucket, kNumTabCountBuckets); + return kTabCountBucketMins[bucket]; +} + +size_t BucketMax(size_t bucket) { + DCHECK_LT(bucket, kNumTabCountBuckets); + // The last bucket includes everything after the min bucket value. + if (bucket == kNumTabCountBuckets - 1) + return std::numeric_limits<size_t>::max(); + return kTabCountBucketMins[bucket + 1] - 1; +} + +bool IsInBucket(size_t num_tabs, size_t bucket) { + DCHECK_LT(bucket, kNumTabCountBuckets); + return num_tabs >= BucketMin(bucket) && num_tabs <= BucketMax(bucket); +} + +} // namespace internal + +} // namespace tab_count_metrics
diff --git a/components/tab_count_metrics/tab_count_metrics.h b/components/tab_count_metrics/tab_count_metrics.h new file mode 100644 index 0000000..5a573d8 --- /dev/null +++ b/components/tab_count_metrics/tab_count_metrics.h
@@ -0,0 +1,82 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_TAB_COUNT_METRICS_TAB_COUNT_METRICS_H_ +#define COMPONENTS_TAB_COUNT_METRICS_TAB_COUNT_METRICS_H_ + +#include <string> + +#include "base/component_export.h" + +// This namespace contains functions for creating histograms bucketed by number +// of tabs. +// +// All bucket parameters --- number of buckets, bucket sizes, bucket names --- +// are determined at compile time, and these methods are safe to call from any +// thread. +// +// A typical example of creating a histogram bucketed by tab count using +// STATIC_HISTOGRAM_POINTER_GROUP looks something like this: +// const size_t live_tab_count = GetLiveTabCount(); +// const size_t bucket = +// tab_count_metrics::BucketForTabCount(live_tab_count); +// STATIC_HISTOGRAM_POINTER_GROUP( +// tab_count_metrics::HistogramName(constant_histogram_prefix, +// live_tabs_only, bucket), +// static_cast<int>(bucket), +// static_cast<int>(tab_count_metrics::kNumTabCountBuckets), +// Add(sample), +// base::Histogram::FactoryGet( +// tab_count_metrics::HistogramName(constant_histogram_prefix, +// live_tabs_only, bucket), +// MINIMUM_SAMPLE, MAXIMUM_SAMPLE, BUCKET_COUNT, +// base::HistogramBase::kUmaTargetedHistogramFlag)); +// } +namespace tab_count_metrics { + +// |kNumTabCountBuckets| is used in various constexpr arrays and as a bound +// on the histogram array when using STATIC_HISTOGRAM_POINTER_GROUP. This value +// must be equal to the length of the array of tab count bucket min values +// (|kTabCountBucketMins|) and the array of bucket names +// (|kTabCountBucketNames|) found in the corresponding .cc file. +constexpr size_t kNumTabCountBuckets = 8; + +// Returns the histogram name for |bucket|. The histogram name is the +// concatenation of |prefix| and the name corresponding to |bucket|, which is of +// the form |prefix| + ".ByTabCount."/".ByLiveTabCount." + <BucketRangeText>, +// where <BucketRangeText> is a string describing the bucket range, e.g. "1Tab", +// "3To4Tabs", etc. See |kTabCountBucketNames| for all of the bucket names. +// |bucket| must be in the interval [0, |kNumTabCountBuckets|). +COMPONENT_EXPORT(TAB_COUNT_METRICS) +std::string HistogramName(const std::string prefix, + bool live_tabs_only, + size_t bucket); + +// Return the bucket index for the |num_tabs|. +COMPONENT_EXPORT(TAB_COUNT_METRICS) +size_t BucketForTabCount(size_t num_tabs); + +// These are exposed for unit tests. +namespace internal { + +// Returns the number of tabs corresponding to the minimum value of |bucket|. +// |bucket| must be in the interval [0, |kNumTabCountBuckets|). +COMPONENT_EXPORT(TAB_COUNT_METRICS) +size_t BucketMin(size_t bucket); + +// Returns the number of tabs corresponding to the maximum value of |bucket|. +// |bucket| must be in the interval [0, |kNumTabCountBuckets|). +COMPONENT_EXPORT(TAB_COUNT_METRICS) +size_t BucketMax(size_t bucket); + +// Returns true if |num_tabs| falls within |bucket|. +// |bucket| must be in the interval [0, |kNumTabCountBuckets|). +COMPONENT_EXPORT(TAB_COUNT_METRICS) +bool IsInBucket(size_t num_tabs, size_t bucket); + +} // namespace internal + +} // namespace tab_count_metrics + +#endif // COMPONENTS_TAB_COUNT_METRICS_TAB_COUNT_METRICS_H_
diff --git a/components/tab_count_metrics/tab_count_metrics_unittest.cc b/components/tab_count_metrics/tab_count_metrics_unittest.cc new file mode 100644 index 0000000..987452dc --- /dev/null +++ b/components/tab_count_metrics/tab_count_metrics_unittest.cc
@@ -0,0 +1,173 @@ +// Copyright 2018 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. + +#include "components/tab_count_metrics/tab_count_metrics.h" + +#include <algorithm> +#include <array> +#include <string> + +#include "base/containers/flat_map.h" +#include "base/metrics/histogram.h" +#include "base/metrics/histogram_macros.h" +#include "base/test/metrics/histogram_tester.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace tab_count_metrics { + +namespace { + +// For unit tests, we create bucketed test enumeration histograms with a prefix +// of |kTestMetricPrefix| and a range of [0, |kMaxTabCount|]. We want good +// test coverage in all buckets, but the overflow tab count bucket is +// unbounded, so we cap the max number of tabs at a reasonable value. +constexpr char kTestMetricPrefix[] = "TestMetric"; +constexpr size_t kMaxTabCount = 400; + +// TabCounts is a map of a tab count to expected histogram counts, +// which is used to validate the test histogram. +// +// When we record a sample for test metrics, the number of tabs is used as +// the bucket in the enumeration histogram. For example, if we record a sample +// with the number of tabs equal to 10, we use 10 as the sample in the +// enumeration histogram. Suppose we have TabCounts map, |expected_counts|. +// When recording the metric, we would increment the value of +// expected_counts[10]. |expected_counts| is then used to validate the +// histogram. +using TabCounts = base::flat_map<size_t, size_t>; + +// Array of TabCounts, indexed by tab count bucket. +// +// Each value in this array corresponds to the expected counts for a different +// histogram, i.e. the histogram corresponding to the live tab count bucket +// equal to the array index. For example, given a +// HistogramCountsByTabCountBucket array, |expected_counts_by_bucket|, +// expected_counts_by_bucket[1] are the expected counts for the histogram +// corresponding to live tab count bucket 1. +using HistogramCountsByTabCountBucket = + std::array<TabCounts, kNumTabCountBuckets>; + +} // namespace + +class TabCountMetricsTest : public testing::Test { + public: + TabCountMetricsTest() = default; + ~TabCountMetricsTest() override = default; + + void RecordTabCountMetric(size_t tab_count) { + EXPECT_LE(tab_count, kMaxTabCount); + const size_t bucket = BucketForTabCount(tab_count); + STATIC_HISTOGRAM_POINTER_GROUP( + HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, bucket), + static_cast<int>(bucket), static_cast<int>(kNumTabCountBuckets), + Add(tab_count), + base::Histogram::FactoryGet( + HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, + bucket), + 1, kMaxTabCount, kMaxTabCount + 1, + base::HistogramBase::kUmaTargetedHistogramFlag)); + } + + protected: + void ValidateHistograms( + const HistogramCountsByTabCountBucket& expected_counts) { + for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { + size_t expected_total_count = 0; + std::string histogram_name = + HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, bucket); + for (const auto& tab_counts : expected_counts[bucket]) { + histogram_tester_.ExpectBucketCount(histogram_name, tab_counts.first, + tab_counts.second); + expected_total_count += tab_counts.second; + } + histogram_tester_.ExpectTotalCount(histogram_name, expected_total_count); + } + } + + private: + base::HistogramTester histogram_tester_; +}; + +TEST_F(TabCountMetricsTest, HistogramNames) { + // Testing with hard-coded strings to check that the concatenated names + // produced by HistogramName() are indeed what we expect. If the bucket ranges + // change, these strings will need to as well. + const std::string kTestMetricNameBucket1("TestMetric.ByLiveTabCount.1Tab"); + const std::string kTestMetricNameBucket3( + "TestMetric.ByLiveTabCount.3To4Tabs"); + EXPECT_EQ(kTestMetricNameBucket1, + HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, 1)); + EXPECT_EQ(kTestMetricNameBucket3, + HistogramName(kTestMetricPrefix, /* live_tabs_only = */ true, 3)); +} + +TEST_F(TabCountMetricsTest, RecordMetricsForBucketLimits) { + // For each bucket, simulate recording metrics with the tab count equal + // to the lower and upper bounds of each bucket. For the last bucket, we use + // an artificial upper bound since that bucket has no practical bound (max + // size_t value) and do not want to create a histogram with that many buckets. + HistogramCountsByTabCountBucket expected_counts; + for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { + size_t num_tabs = internal::BucketMin(bucket); + RecordTabCountMetric(num_tabs); + // Expect a count of 1 for the |num_tabs| case in the histogram + // corresponding to |bucket|. + expected_counts[bucket].emplace(num_tabs, 1); + + num_tabs = std::min(internal::BucketMax(bucket), kMaxTabCount); + RecordTabCountMetric(num_tabs); + // Ensure that we aren't setting the artificial maximum for the last bucket + // too low. + EXPECT_LE(internal::BucketMin(bucket), num_tabs); + + auto iter = expected_counts[bucket].find(num_tabs); + if (iter != expected_counts[bucket].end()) { + // If the lower bound for |bucket| is the same as the upper bound, we've + // already recorded a value for |num_tabs| in |bucket|. + EXPECT_EQ(iter->second, 1u); + ++iter->second; + } else { + expected_counts[bucket].emplace(num_tabs, 1); + } + + ValidateHistograms(expected_counts); + } +} + +TEST_F(TabCountMetricsTest, RecordMetricsForAllBucketValues) { + // For each bucket, simulate recording metrics with the tab count equal + // to each value in the bucket range, i.e. from BucketMin() to BucketMax(). + // For the last bucket, we use an artificial upper bound since that bucket has + // no practical bound (max size_t value) and do not want to create a histogram + // with that many buckets. + HistogramCountsByTabCountBucket expected_counts; + for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { + size_t num_tabs_lower_bound = internal::BucketMin(bucket); + size_t num_tabs_upper_bound = + std::min(internal::BucketMax(bucket), kMaxTabCount); + EXPECT_LE(num_tabs_lower_bound, num_tabs_upper_bound); + for (size_t tab_count = num_tabs_lower_bound; + tab_count <= num_tabs_upper_bound; tab_count++) { + RecordTabCountMetric(tab_count); + expected_counts[bucket].emplace(tab_count, 1); + } + ValidateHistograms(expected_counts); + } +} + +TEST_F(TabCountMetricsTest, BucketsDoNotOverlap) { + // For any number of tabs >= 0, the tab should belong to exactly one bucket. + for (size_t tab_count = 0; tab_count <= kMaxTabCount; tab_count++) { + bool has_bucket_for_tab_count = false; + for (size_t bucket = 0; bucket < kNumTabCountBuckets; bucket++) { + if (internal::IsInBucket(tab_count, bucket)) { + EXPECT_FALSE(has_bucket_for_tab_count); + has_bucket_for_tab_count = true; + } + } + EXPECT_TRUE(has_bucket_for_tab_count); + } +} + +} // namespace tab_count_metrics
diff --git a/components/url_formatter/idn_spoof_checker.cc b/components/url_formatter/idn_spoof_checker.cc index 3979bf1..eafc6bb 100644 --- a/components/url_formatter/idn_spoof_checker.cc +++ b/components/url_formatter/idn_spoof_checker.cc
@@ -305,42 +305,61 @@ icu::RegexMatcher* dangerous_pattern = reinterpret_cast<icu::RegexMatcher*>(DangerousPatternTLS().Get()); if (!dangerous_pattern) { - // Disallow the katakana no, so, zo, or n, as they may be mistaken for - // slashes when they're surrounded by non-Japanese scripts (i.e. scripts - // other than Katakana, Hiragana or Han). If {no, so, zo, n} next to a - // non-Japanese script on either side is disallowed, legitimate cases like - // '{vitamin in Katakana}b6' are blocked. Note that trying to block those - // characters when used alone as a label is futile because those cases - // would not reach here. - // Also disallow what used to be blocked by mixed-script-confusable (MSC) - // detection. ICU 58 does not detect MSC any more for a single input string. - // See http://bugs.icu-project.org/trac/ticket/12823 . - // TODO(jshin): adjust the pattern once the above ICU bug is fixed. - // - Disallow U+30FB (Katakana Middle Dot) and U+30FC (Hiragana-Katakana - // Prolonged Sound) used out-of-context. - // - Dislallow U+30FD/E (Katakana iteration mark/voiced iteration mark) - // unless they're preceded by a Katakana. - // - Disallow three Hiragana letters (U+307[8-A]) or Katakana letters - // (U+30D[8-A]) that look exactly like each other when they're used in a - // label otherwise entirely in Katakna or Hiragana. - // - Disallow combining diacritical mark (U+0300-U+0339) after a non-LGC - // character. Other combining diacritical marks are not in the allowed - // character set. - // - Disallow dotless i (U+0131) followed by a combining mark. - // - Disallow U+0307 (dot above) after 'i', 'j', 'l' or dotless i (U+0131). - // Dotless j (U+0237) is not in the allowed set to begin with. + // The parentheses in the below strings belong to the raw string sequence + // R("..."). They are NOT part of the regular expression. Each sub + // regex is OR'ed with the | operator. dangerous_pattern = new icu::RegexMatcher( icu::UnicodeString( + // Disallow the katakana no (U+30ce), so (U+30bd), zo (U+30be), or + // n (U+30f3), as they may be mistaken for slashes when they're + // surrounded by non-Japanese scripts (i.e. scripts other than + // Katakana, Hiragana or Han). If {no, so, zo, n} next to a + // non-Japanese script on either side is disallowed, legitimate + // cases like '{vitamin in Katakana}b6' are blocked. Note that + // trying to block those characters when used alone as a label is + // futile because those cases would not reach here. Also disallow + // what used to be blocked by mixed-script-confusable (MSC) + // detection. ICU 58 does not detect MSC any more for a single input + // string. See http://bugs.icu-project.org/trac/ticket/12823 . + // TODO(jshin): adjust the pattern once the above ICU bug is fixed. R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}])" R"([\u30ce\u30f3\u30bd\u30be])" R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}]|)" - R"([^\p{scx=kana}\p{scx=hira}]\u30fc|^\u30fc|)" + + // Disallow U+30FD (Katakana iteration mark) and U+30FE (Katakana + // voiced iteration mark) unless they're preceded by a Katakana. R"([^\p{scx=kana}][\u30fd\u30fe]|^[\u30fd\u30fe]|)" + + // Disallow three Hiragana letters (U+307[8-A]) or Katakana letters + // (U+30D[8-A]) that look exactly like each other when they're used + // in a label otherwise entirely in Katakana or Hiragana. R"(^[\p{scx=kana}]+[\u3078-\u307a][\p{scx=kana}]+$|)" R"(^[\p{scx=hira}]+[\u30d8-\u30da][\p{scx=hira}]+$|)" + + // Disallow U+30FB (Katakana Middle Dot) and U+30FC (Hiragana- + // Katakana Prolonged Sound) used out-of-context. + R"([^\p{scx=kana}\p{scx=hira}]\u30fc|^\u30fc|)" R"([a-z]\u30fb|\u30fb[a-z]|)" + + // Disallow U+4E00 (CJK unified ideograph) and U+3127 (Bopomofo + // Letter I) unless they are next to Hiragana, Katagana or Han. + // U+2F00 (Kangxi Radical One) is similar, but it's normalized to + // U+4E00 so it's not explicitly checked here. + R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}])" + R"([\u4e00\u3127])" + R"([^\p{scx=kana}\p{scx=hira}\p{scx=hani}]|)" + + // Disallow combining diacritical mark (U+0300-U+0339) after a + // non-LGC character. Other combining diacritical marks are not in + // the allowed character set. R"([^\p{scx=latn}\p{scx=grek}\p{scx=cyrl}][\u0300-\u0339]|)" + + // Disallow dotless i (U+0131) followed by a combining mark. R"(\u0131[\u0300-\u0339]|)" + + // Disallow U+0307 (dot above) after 'i', 'j', 'l' or dotless i + // (U+0131). Dotless j (U+0237) is not in the allowed set to begin + // with. R"([ijl]\u0307)", -1, US_INV), 0, status); @@ -355,8 +374,9 @@ for (const std::string& skeleton : GetSkeletons(hostname)) { DCHECK(!skeleton.empty()); std::string matching_top_domain = LookupSkeletonInTopDomains(skeleton); - if (!matching_top_domain.empty()) + if (!matching_top_domain.empty()) { return matching_top_domain; + } } return std::string(); }
diff --git a/components/url_formatter/url_formatter_unittest.cc b/components/url_formatter/url_formatter_unittest.cc index 383d2ec..3f7f0102 100644 --- a/components/url_formatter/url_formatter_unittest.cc +++ b/components/url_formatter/url_formatter_unittest.cc
@@ -1033,6 +1033,17 @@ // oĸ.com: Not a top domain, should be blocked because of Kra. {"xn--o-tka.com", L"o\x0138.com", false}, + + // U+4E00 and U+3127 should be blocked when next to non-CJK. + {"xn--ipaddress-w75n.com", L"ip一address.com", false}, + {"xn--ipaddress-wx5h.com", L"ipㄧaddress.com", false}, + // These are allowed because 一 is not immediately next to non-CJK. + {"xn--gamer-fg1hz05u.com", L"一生gamer.com", true}, + {"xn--gamer-kg1hy05u.com", L"gamer生一.com", true}, + {"xn--4gqz91g.com", L"一猫.com", true}, + {"xn--4fkv10r.com", L"ㄧ猫.com", true}, + // U+4E00 with another ideograph. + {"xn--4gqc.com", L"一丁.com", true}, }; struct AdjustOffsetCase {
diff --git a/components/viz/service/display/direct_renderer.cc b/components/viz/service/display/direct_renderer.cc index 00a188f2..fd4dbff3 100644 --- a/components/viz/service/display/direct_renderer.cc +++ b/components/viz/service/display/direct_renderer.cc
@@ -109,19 +109,17 @@ DisplayResourceProvider* resource_provider) : settings_(settings), output_surface_(output_surface), - resource_provider_(resource_provider), - overlay_processor_(std::make_unique<OverlayProcessor>( - output_surface->context_provider())) {} + resource_provider_(resource_provider) {} DirectRenderer::~DirectRenderer() = default; void DirectRenderer::Initialize() { - // Create overlay validator and set it. This would initialize the strategies - // on the validator as well. + // Create overlay validator based on the platform and set it on the newly + // created processor. This would initialize the strategies on the validator as + // well. gpu::SurfaceHandle surface_handle = output_surface_->GetSurfaceHandle(); - overlay_processor_->SetOverlayCandidateValidator( - OverlayCandidateValidator::Create( - surface_handle, output_surface_->context_provider(), *settings_)); + overlay_processor_ = OverlayProcessor::CreateOverlayProcessor( + output_surface_->context_provider(), surface_handle, *settings_); auto* context_provider = output_surface_->context_provider();
diff --git a/components/viz/service/display/gl_renderer_unittest.cc b/components/viz/service/display/gl_renderer_unittest.cc index 50d2cf2..968012c 100644 --- a/components/viz/service/display/gl_renderer_unittest.cc +++ b/components/viz/service/display/gl_renderer_unittest.cc
@@ -2175,8 +2175,12 @@ } }; - explicit TestOverlayProcessor(ContextProvider* context_provider) - : OverlayProcessor(context_provider) {} + explicit TestOverlayProcessor( + ContextProvider* context_provider, + std::unique_ptr<OverlayCandidateValidator> overlay_validator) + : OverlayProcessor(context_provider) { + SetOverlayCandidateValidator(std::move(overlay_validator)); + } ~TestOverlayProcessor() override = default; const Validator* GetTestValidator() const { @@ -2245,8 +2249,7 @@ renderer.SetVisible(true); TestOverlayProcessor* processor = new TestOverlayProcessor( - output_surface->context_provider()); - processor->SetOverlayCandidateValidator( + output_surface->context_provider(), std::make_unique<TestOverlayProcessor::Validator>()); renderer.SetOverlayProcessor(processor); const TestOverlayProcessor::Validator* validator = @@ -2843,9 +2846,8 @@ parent_resource_provider.get()); renderer.Initialize(); renderer.SetVisible(true); - TestOverlayProcessor* processor = - new TestOverlayProcessor(output_surface->context_provider()); - processor->SetOverlayCandidateValidator(std::make_unique<DCLayerValidator>()); + TestOverlayProcessor* processor = new TestOverlayProcessor( + output_surface->context_provider(), std::make_unique<DCLayerValidator>()); processor->SetDCHasHwOverlaySupportForTesting(); renderer.SetOverlayProcessor(processor); @@ -3146,9 +3148,8 @@ // quads can be turned into CALayer overlays, then all damage is removed and // we can skip the root RenderPass, swapping empty. TestOverlayProcessor* processor = - new TestOverlayProcessor(output_surface_->context_provider()); - processor->SetOverlayCandidateValidator( - std::make_unique<CALayerValidator>()); + new TestOverlayProcessor(output_surface_->context_provider(), + std::make_unique<CALayerValidator>()); renderer_->SetOverlayProcessor(processor); }
diff --git a/components/viz/service/display/overlay_candidate_validator.h b/components/viz/service/display/overlay_candidate_validator.h index daf72d5..aa8612b 100644 --- a/components/viz/service/display/overlay_candidate_validator.h +++ b/components/viz/service/display/overlay_candidate_validator.h
@@ -10,7 +10,6 @@ #include "components/viz/service/display/overlay_candidate.h" #include "components/viz/service/display/overlay_processor.h" #include "components/viz/service/viz_service_export.h" -#include "gpu/ipc/common/surface_handle.h" namespace viz { class RendererSettings;
diff --git a/components/viz/service/display/overlay_processor.cc b/components/viz/service/display/overlay_processor.cc index 505d693..545f2c9 100644 --- a/components/viz/service/display/overlay_processor.cc +++ b/components/viz/service/display/overlay_processor.cc
@@ -98,6 +98,19 @@ return OverlayStrategy::kUnknown; } +std::unique_ptr<OverlayProcessor> OverlayProcessor::CreateOverlayProcessor( + const ContextProvider* context_provider, + gpu::SurfaceHandle surface_handle, + const RendererSettings& renderer_settings) { + std::unique_ptr<OverlayProcessor> processor( + new OverlayProcessor(context_provider)); + + processor->SetOverlayCandidateValidator(OverlayCandidateValidator::Create( + surface_handle, context_provider, renderer_settings)); + + return processor; +} + OverlayProcessor::OverlayProcessor(const ContextProvider* context_provider) : dc_processor_( std::make_unique<DCLayerOverlayProcessor>(context_provider)) {}
diff --git a/components/viz/service/display/overlay_processor.h b/components/viz/service/display/overlay_processor.h index 3eac218..008a3dc9 100644 --- a/components/viz/service/display/overlay_processor.h +++ b/components/viz/service/display/overlay_processor.h
@@ -15,6 +15,7 @@ #include "components/viz/service/display/dc_layer_overlay.h" #include "components/viz/service/display/overlay_candidate.h" #include "components/viz/service/viz_service_export.h" +#include "gpu/ipc/common/surface_handle.h" namespace cc { class DisplayResourceProvider; @@ -22,6 +23,8 @@ namespace viz { class OverlayCandidateValidator; +class RendererSettings; +class ContextProvider; class VIZ_SERVICE_EXPORT OverlayProcessor { public: @@ -54,11 +57,12 @@ }; using StrategyList = std::vector<std::unique_ptr<Strategy>>; - explicit OverlayProcessor(const ContextProvider* context_provider); - virtual ~OverlayProcessor(); + static std::unique_ptr<OverlayProcessor> CreateOverlayProcessor( + const ContextProvider* context_provider, + gpu::SurfaceHandle surface_handle, + const RendererSettings& renderer_settings); - void SetOverlayCandidateValidator( - std::unique_ptr<OverlayCandidateValidator> overlay_validator); + virtual ~OverlayProcessor(); gfx::Rect GetAndResetOverlayDamage(); void SetSoftwareMirrorMode(bool software_mirror_mode); @@ -90,6 +94,10 @@ } protected: + explicit OverlayProcessor(const ContextProvider* context_provider); + void SetOverlayCandidateValidator( + std::unique_ptr<OverlayCandidateValidator> overlay_validator); + StrategyList strategies_; std::unique_ptr<OverlayCandidateValidator> overlay_validator_; gfx::Rect overlay_damage_rect_;
diff --git a/components/viz/service/display/overlay_unittest.cc b/components/viz/service/display/overlay_unittest.cc index a24866d..985afcc 100644 --- a/components/viz/service/display/overlay_unittest.cc +++ b/components/viz/service/display/overlay_unittest.cc
@@ -187,13 +187,15 @@ class DefaultOverlayProcessor : public OverlayProcessor { public: - DefaultOverlayProcessor(ContextProvider* context_provider); + explicit DefaultOverlayProcessor(ContextProvider* context_provider); size_t GetStrategyCount() const; }; DefaultOverlayProcessor::DefaultOverlayProcessor( ContextProvider* context_provider) - : OverlayProcessor(context_provider) {} + : OverlayProcessor(context_provider) { + SetOverlayCandidateValidator(std::make_unique<SingleOverlayValidator>()); +} size_t DefaultOverlayProcessor::GetStrategyCount() const { if (auto* validator = overlay_validator_.get()) @@ -258,8 +260,12 @@ template <typename OverlayCandidateValidatorType> class TypedOverlayProcessor : public OverlayProcessor { public: - explicit TypedOverlayProcessor(const ContextProvider* context_provider) - : OverlayProcessor(context_provider) {} + explicit TypedOverlayProcessor( + const ContextProvider* context_provider, + std::unique_ptr<OverlayCandidateValidatorType> validator) + : OverlayProcessor(context_provider) { + SetOverlayCandidateValidator(std::move(validator)); + } OverlayCandidateValidatorType* GetTypedOverlayCandidateValidator() { const OverlayCandidateValidator* const_base_validator = @@ -562,8 +568,7 @@ child_resource_provider_ = std::make_unique<ClientResourceProvider>(true); overlay_processor_ = std::make_unique<OverlayProcessorType>( - output_surface_->context_provider()); - overlay_processor_->SetOverlayCandidateValidator( + output_surface_->context_provider(), std::make_unique<OverlayCandidateValidatorType>()); overlay_processor_->SetDCHasHwOverlaySupportForTesting(); } @@ -619,8 +624,6 @@ auto overlay_processor = std::make_unique<DefaultOverlayProcessor>( output_surface.context_provider()); - overlay_processor->SetOverlayCandidateValidator( - std::make_unique<SingleOverlayValidator>()); EXPECT_GE(2U, overlay_processor->GetStrategyCount()); } @@ -3069,12 +3072,6 @@ bool use_validator) : GLRenderer(settings, output_surface, resource_provider, nullptr), expect_overlays_(false) { - if (use_validator) { - overlay_processor_ = std::make_unique<OverlayProcessorType>( - output_surface_->context_provider()); - overlay_processor_->SetOverlayCandidateValidator( - std::make_unique<SingleOverlayValidator>()); - } } MOCK_METHOD2(DoDrawQuad, @@ -3099,6 +3096,7 @@ } void AddExpectedRectToOverlayValidator(const gfx::RectF& rect) { + DCHECK(overlay_processor_); static_cast<OverlayProcessorType*>(overlay_processor_.get()) ->GetTypedOverlayCandidateValidator() ->AddExpectedRect(rect); @@ -3108,10 +3106,10 @@ expect_overlays_ = expect_overlays; } - void SetOverlayCandidateValidator( - std::unique_ptr<OverlayCandidateValidator> validator) { - static_cast<OverlayProcessorType*>(overlay_processor_.get()) - ->SetOverlayCandidateValidator(std::move(validator)); + void SetOverlayProcessorWithValidator( + std::unique_ptr<SingleOverlayValidator> validator) { + overlay_processor_.reset(new OverlayProcessorType( + output_surface_->context_provider(), std::move(validator))); } private: @@ -3161,7 +3159,7 @@ renderer_->Initialize(); renderer_->SetVisible(true); if (use_validator) { - renderer_->SetOverlayCandidateValidator( + renderer_->SetOverlayProcessorWithValidator( std::make_unique<SingleOverlayValidator>()); } }
diff --git a/components/viz/service/display/renderer_pixeltest.cc b/components/viz/service/display/renderer_pixeltest.cc index f745b05..47cd67b 100644 --- a/components/viz/service/display/renderer_pixeltest.cc +++ b/components/viz/service/display/renderer_pixeltest.cc
@@ -1359,17 +1359,9 @@ this->shared_bitmap_manager_.get(), this->child_context_provider_, this->render_pass_.get()); - std::unique_ptr<cc::FuzzyPixelComparator> comparator; - if (this->use_vulkan()) { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 45.f, 0.f, - 1.2f, 50, 0.f); - } else { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f, - 256.f, 256, 0.f); - } - this->AppendBackgroundAndRunTest( - *comparator, FILE_PATH_LITERAL("intersecting_blue_green_squares.png")); + cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f), + FILE_PATH_LITERAL("intersecting_blue_green_squares.png")); } TYPED_TEST(IntersectingQuadPixelTest, NonFlippedTexturedQuads) { @@ -1391,17 +1383,8 @@ this->shared_bitmap_manager_.get(), this->child_context_provider_, this->render_pass_.get()); - std::unique_ptr<cc::FuzzyPixelComparator> comparator; - if (this->use_vulkan()) { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 40.f, 0.f, - 2.5f, 130, 0.f); - } else { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f, - 256.f, 256, 0.f); - } - this->AppendBackgroundAndRunTest( - *comparator, + cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f), FILE_PATH_LITERAL( "intersecting_non_flipped_blue_green_half_size_rectangles.png")); } @@ -1425,17 +1408,8 @@ this->shared_bitmap_manager_.get(), this->child_context_provider_, this->render_pass_.get()); - std::unique_ptr<cc::FuzzyPixelComparator> comparator; - if (this->use_vulkan()) { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 50.f, 0.f, - 2.5f, 130, 0.f); - } else { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f, - 256.f, 256, 0.f); - } - this->AppendBackgroundAndRunTest( - *comparator, + cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f), FILE_PATH_LITERAL( "intersecting_flipped_blue_green_half_size_rectangles.png")); } @@ -1530,18 +1504,9 @@ this->pass_list_.push_back(std::move(child_pass1)); this->pass_list_.push_back(std::move(child_pass2)); - - std::unique_ptr<cc::FuzzyPixelComparator> comparator; - if (this->use_vulkan()) { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 45.f, 0.f, - 2.f, 50, 0.f); - } else { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 2.f, 0.f, - 256.f, 256, 0.f); - } - this->AppendBackgroundAndRunTest( - *comparator, FILE_PATH_LITERAL("intersecting_blue_green_squares.png")); + cc::FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f), + FILE_PATH_LITERAL("intersecting_blue_green_squares.png")); } TYPED_TEST(IntersectingVideoQuadPixelTest, YUVVideoQuads) { @@ -2133,7 +2098,7 @@ // renderer so use a fuzzy comparator. EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), - cc::FuzzyPixelOffByOneComparator(false))); + FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); } TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) { @@ -2193,7 +2158,7 @@ // renderer so use a fuzzy comparator. EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha.png")), - cc::FuzzyPixelOffByOneComparator(false))); + FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); } TYPED_TEST(RendererPixelTest, FastPassFilterChain) { @@ -2255,7 +2220,7 @@ EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_filter_chain.png")), - cc::FuzzyPixelOffByOneComparator(false))); + FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); } TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) { @@ -2338,7 +2303,7 @@ EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("blue_yellow_alpha_translate.png")), - cc::FuzzyPixelOffByOneComparator(false))); + FuzzyForSoftwareOnlyPixelComparator<TypeParam>(false))); } TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) { @@ -2532,7 +2497,7 @@ EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("mask_bottom_right.png")), - cc::FuzzyPixelOffByOneComparator(false))); + cc::ExactPixelComparator(true))); } // This tests the case where we have a RenderPass with a mask, but the quad @@ -2629,7 +2594,7 @@ EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("mask_middle.png")), - cc::FuzzyPixelOffByOneComparator(false))); + cc::ExactPixelComparator(true))); } TYPED_TEST(RendererPixelTest, RenderPassAndMaskForRoundedCorner) { @@ -2715,19 +2680,10 @@ // The rounded corners generated by masks should be very close to the rounded // corners generated by the fragment shader approach. The percentage of pixel // mismatch is around 0.52%. - std::unique_ptr<cc::FuzzyPixelComparator> comparator; - if (this->use_vulkan()) { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 64.f, 0.f, - 1.3f, 65, 0); - } else { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 0.6f, 0.f, - 255.f, 255, 0); - } - EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("rounded_corner_simple.png")), - *comparator)); + cc::FuzzyPixelComparator(true, 0.6f, 0.f, 255.f, 255, 0))); } TYPED_TEST(RendererPixelTest, RenderPassAndMaskForRoundedCornerMultiRadii) { @@ -2825,19 +2781,10 @@ pass_list.push_back(std::move(child_pass)); pass_list.push_back(std::move(root_pass)); - std::unique_ptr<cc::FuzzyPixelComparator> comparator; - if (this->use_vulkan()) { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 64.f, 0, - 0.8f, 80.f, 0); - } else { - comparator = std::make_unique<cc::FuzzyPixelComparator>(false, 0.6f, 0.f, - 255.f, 255, 0); - } - EXPECT_TRUE(this->RunPixelTest( &pass_list, base::FilePath(FILE_PATH_LITERAL("rounded_corner_multi_radii.png")), - *comparator)); + cc::FuzzyPixelComparator(true, 0.6f, 0.f, 255.f, 255, 0))); } template <typename RendererType>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 0cb96497..9aa7ce7 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1314,8 +1314,6 @@ "memory/memory_monitor_android.h", "memory/memory_monitor_win.cc", "memory/memory_monitor_win.h", - "memory/swap_metrics_delegate_uma.cc", - "memory/swap_metrics_delegate_uma.h", "memory/swap_metrics_driver_impl.cc", "memory/swap_metrics_driver_impl.h", "memory/swap_metrics_driver_impl_linux.cc", @@ -1328,6 +1326,8 @@ "mime_registry_impl.h", "native_file_system/file_system_chooser.cc", "native_file_system/file_system_chooser.h", + "native_file_system/fixed_native_file_system_permission_grant.cc", + "native_file_system/fixed_native_file_system_permission_grant.h", "native_file_system/native_file_system_directory_handle_impl.cc", "native_file_system/native_file_system_directory_handle_impl.h", "native_file_system/native_file_system_file_handle_impl.cc", @@ -1821,12 +1821,12 @@ "service_worker/service_worker_version.h", "site_instance_impl.cc", "site_instance_impl.h", - "sms/sms_manager_impl.cc", - "sms/sms_manager_impl.h", "sms/sms_parser.cc", "sms/sms_parser.h", "sms/sms_provider.cc", "sms/sms_provider.h", + "sms/sms_receiver_impl.cc", + "sms/sms_receiver_impl.h", "sms/sms_service_impl.cc", "sms/sms_service_impl.h", "speech/speech_recognition_dispatcher_host.cc",
diff --git a/content/browser/DEPS b/content/browser/DEPS index 405ebb2..2103991 100644 --- a/content/browser/DEPS +++ b/content/browser/DEPS
@@ -110,7 +110,7 @@ "+third_party/blink/public/platform/modules/indexeddb/web_idb_database_exception.h", "+third_party/blink/public/platform/modules/notifications/web_notification_constants.h", "+third_party/blink/public/platform/modules/service_worker/web_service_worker_error.h", - "+third_party/blink/public/platform/modules/sms/sms_manager.mojom.h", + "+third_party/blink/public/platform/modules/sms/sms_receiver.mojom.h", "+third_party/blink/public/public_buildflags.h", "+third_party/blink/public/web/web_ax_enums.h", "+third_party/blink/public/web/web_console_message.h",
diff --git a/content/browser/accessibility/accessibility_event_recorder_uia_win.cc b/content/browser/accessibility/accessibility_event_recorder_uia_win.cc index ac57093..27a2c8a 100644 --- a/content/browser/accessibility/accessibility_event_recorder_uia_win.cc +++ b/content/browser/accessibility/accessibility_event_recorder_uia_win.cc
@@ -14,6 +14,7 @@ #include "base/win/scoped_bstr.h" #include "base/win/scoped_com_initializer.h" #include "base/win/scoped_variant.h" +#include "base/win/windows_version.h" #include "content/browser/accessibility/accessibility_tree_formatter_utils_win.h" #include "content/browser/accessibility/browser_accessibility_com_win.h" #include "content/browser/accessibility/browser_accessibility_manager.h" @@ -185,11 +186,9 @@ // Wait for shutdown signal shutdown_signal_.Wait(); - // Due to a bug in Windows, events are raised exactly twice for any in-proc - // off-thread event listeners. (The bug has been acknowledged by the Windows - // team, but it's a lower priority since the scenario is rare outside of - // testing.) We filter out the duplicate events here, and forward the - // remaining events to our owner. + // Due to a bug in Windows (fixed in Windows 10 19H1), events are raised + // exactly twice for any in-proc off-thread event listeners. We filter out the + // duplicate events here, and forward the remaining events to our owner. { base::AutoLock lock{on_event_lock_}; if (event_logs_.size() == 1) { @@ -264,9 +263,10 @@ void AccessibilityEventRecorderUia::Thread::SendShutdownSignal() { // We expect to see the shutdown sentinel exactly twice (due to the Windows - // bug detailed in |ThreadMain|), so don't actually shut down the thread until - // the second call. - if (shutdown_sentinel_received_) + // bug detailed in |ThreadMain| and fixed in 19H1), so don't actually shut + // down the thread until the second call. + if (shutdown_sentinel_received_ || + base::win::GetVersion() >= base::win::Version::WIN10_19H1) shutdown_signal_.Signal(); else shutdown_sentinel_received_ = true;
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc b/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc index cafe63f..b39ea00 100644 --- a/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc +++ b/content/browser/bluetooth/web_bluetooth_service_impl_unittest.cc
@@ -4,6 +4,8 @@ #include "content/browser/bluetooth/web_bluetooth_service_impl.h" +#include <utility> + #include "base/macros.h" #include "base/test/bind_test_util.h" #include "content/public/browser/web_contents_delegate.h" @@ -144,7 +146,7 @@ name_prefix); } - void RequestScanningStart( + blink::mojom::RequestScanningStartResultPtr RequestScanningStart( const blink::mojom::WebBluetoothLeScanFilter& filter, FakeWebBluetoothScanClientImpl* client_impl) { blink::mojom::WebBluetoothScanClientAssociatedPtrInfo client_info; @@ -154,13 +156,16 @@ auto filter_ptr = blink::mojom::WebBluetoothLeScanFilter::New(filter); options->filters->push_back(std::move(filter_ptr)); base::RunLoop loop; + blink::mojom::RequestScanningStartResultPtr result; service_->RequestScanningStart( std::move(client_info), std::move(options), base::BindLambdaForTesting( [&](blink::mojom::RequestScanningStartResultPtr p) { + result = std::move(p); loop.Quit(); })); loop.Run(); + return result; } WebBluetoothServiceImpl* service_; @@ -178,7 +183,9 @@ EXPECT_FALSE(service_->AreScanFiltersAllowed(filters)); FakeWebBluetoothScanClientImpl client_impl; - RequestScanningStart(*filter, &client_impl); + blink::mojom::RequestScanningStartResultPtr result = + RequestScanningStart(*filter, &client_impl); + EXPECT_FALSE(result->is_error_result()); // |filters| should be allowed. EXPECT_TRUE(service_->AreScanFiltersAllowed(filters)); } @@ -196,7 +203,11 @@ delegate_.set_event(content::BluetoothScanningPrompt::Event::kCanceled); FakeWebBluetoothScanClientImpl client_impl; - RequestScanningStart(*filter, &client_impl); + blink::mojom::RequestScanningStartResultPtr result = + RequestScanningStart(*filter, &client_impl); + EXPECT_TRUE(result->is_error_result()); + EXPECT_EQ(blink::mojom::WebBluetoothResult::PROMPT_CANCELED, + result->get_error_result()); // |filters| should still not be allowed. EXPECT_FALSE(service_->AreScanFiltersAllowed(filters)); } @@ -208,7 +219,9 @@ filters.emplace(); filters->push_back(filter.Clone()); FakeWebBluetoothScanClientImpl client_impl; - RequestScanningStart(*filter, &client_impl); + blink::mojom::RequestScanningStartResultPtr result = + RequestScanningStart(*filter, &client_impl); + EXPECT_FALSE(result->is_error_result()); EXPECT_TRUE(service_->AreScanFiltersAllowed(filters)); contents()->SetVisibility(content::Visibility::HIDDEN); @@ -241,7 +254,9 @@ filters_1.emplace(); filters_1->push_back(filter_1.Clone()); FakeWebBluetoothScanClientImpl client_impl_1; - RequestScanningStart(*filter_1, &client_impl_1); + blink::mojom::RequestScanningStartResultPtr result_1 = + RequestScanningStart(*filter_1, &client_impl_1); + EXPECT_FALSE(result_1->is_error_result()); EXPECT_TRUE(service_->AreScanFiltersAllowed(filters_1)); EXPECT_FALSE(client_impl_1.on_connection_error_called()); @@ -251,7 +266,9 @@ filters_2.emplace(); filters_2->push_back(filter_2.Clone()); FakeWebBluetoothScanClientImpl client_impl_2; - RequestScanningStart(*filter_2, &client_impl_2); + blink::mojom::RequestScanningStartResultPtr result_2 = + RequestScanningStart(*filter_2, &client_impl_2); + EXPECT_FALSE(result_2->is_error_result()); EXPECT_TRUE(service_->AreScanFiltersAllowed(filters_2)); EXPECT_FALSE(client_impl_2.on_connection_error_called()); @@ -266,7 +283,11 @@ filters_3.emplace(); filters_3->push_back(filter_3.Clone()); FakeWebBluetoothScanClientImpl client_impl_3; - RequestScanningStart(*filter_3, &client_impl_3); + blink::mojom::RequestScanningStartResultPtr result_3 = + RequestScanningStart(*filter_3, &client_impl_3); + EXPECT_TRUE(result_3->is_error_result()); + EXPECT_EQ(blink::mojom::WebBluetoothResult::SCANNING_BLOCKED, + result_3->get_error_result()); EXPECT_FALSE(service_->AreScanFiltersAllowed(filters_3)); // The previously granted Bluetooth scanning permission should be revoked.
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc index 0d95af0..bd5d10b9 100644 --- a/content/browser/browser_context.cc +++ b/content/browser/browser_context.cc
@@ -339,8 +339,8 @@ BrowserContext* browser_context, const GURL& site, const base::Closure& on_gc_required) { - GetStoragePartitionMap(browser_context)->AsyncObliterate(site, - on_gc_required); + GetStoragePartitionMap(browser_context) + ->AsyncObliterate(site, on_gc_required); } // static @@ -352,8 +352,7 @@ ->GarbageCollect(std::move(active_paths), done); } -DownloadManager* BrowserContext::GetDownloadManager( - BrowserContext* context) { +DownloadManager* BrowserContext::GetDownloadManager(BrowserContext* context) { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (!context->GetUserData(kDownloadManagerKeyName)) { DownloadManager* download_manager = new DownloadManagerImpl(context); @@ -431,8 +430,8 @@ if (site_instance) { GetContentClient()->browser()->GetStoragePartitionConfigForSite( - browser_context, site_instance->GetSiteURL(), true, - &partition_domain, &partition_name, &in_memory); + browser_context, site_instance->GetSiteURL(), true, &partition_domain, + &partition_name, &in_memory); } return GetStoragePartitionFromConfig(browser_context, partition_domain, @@ -633,9 +632,8 @@ } // static -void BrowserContext::Initialize( - BrowserContext* browser_context, - const base::FilePath& path) { +void BrowserContext::Initialize(BrowserContext* browser_context, + const base::FilePath& path) { const base::Token new_group = base::Token::CreateRandom(); ServiceInstanceGroupHolder* holder = static_cast<ServiceInstanceGroupHolder*>( browser_context->GetUserData(kServiceInstanceGroup)); @@ -839,4 +837,9 @@ return nullptr; } +NativeFileSystemPermissionContext* +BrowserContext::GetNativeFileSystemPermissionContext() { + return nullptr; +} + } // namespace content
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc index d9638f5a..d18d386 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc
@@ -80,7 +80,6 @@ #include "content/browser/media/capture/audio_mirroring_manager.h" #include "content/browser/media/media_internals.h" #include "content/browser/media/media_keys_listener_manager_impl.h" -#include "content/browser/memory/swap_metrics_delegate_uma.h" #include "content/browser/net/browser_online_state_observer.h" #include "content/browser/renderer_host/media/media_stream_manager.h" #include "content/browser/renderer_host/render_process_host_impl.h" @@ -98,7 +97,6 @@ #include "content/browser/webui/content_web_ui_controller_factory.h" #include "content/browser/webui/url_data_manager.h" #include "content/common/content_switches_internal.h" -#include "content/common/service_manager/service_manager_connection_impl.h" #include "content/common/thread_pool_util.h" #include "content/public/browser/browser_main_parts.h" #include "content/public/browser/browser_task_traits.h" @@ -107,7 +105,6 @@ #include "content/public/browser/gpu_data_manager_observer.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/site_isolation_policy.h" -#include "content/public/browser/swap_metrics_driver.h" #include "content/public/browser/system_connector.h" #include "content/public/common/content_client.h" #include "content/public/common/content_features.h" @@ -321,12 +318,6 @@ WORKER_POOL_COUNT // Always last. }; -#if !defined(OS_FUCHSIA) -// Time between updating and recording swap rates. -constexpr base::TimeDelta kSwapMetricsInterval = - base::TimeDelta::FromSeconds(60); -#endif // !defined(OS_FUCHSIA) - #if defined(OS_FUCHSIA) // Create and register the job which will contain all child processes // of the browser process as well as their descendents. @@ -1477,17 +1468,6 @@ void BrowserMainLoop::InitializeMemoryManagementComponent() { memory_pressure_monitor_ = CreateMemoryPressureMonitor(parsed_command_line_); - - std::unique_ptr<SwapMetricsDriver::Delegate> delegate( - base::WrapUnique<SwapMetricsDriver::Delegate>( - new SwapMetricsDelegateUma())); - -#if !defined(OS_FUCHSIA) - swap_metrics_driver_ = - SwapMetricsDriver::Create(std::move(delegate), kSwapMetricsInterval); - if (swap_metrics_driver_) - swap_metrics_driver_->Start(); -#endif // !defined(OS_FUCHSIA) } bool BrowserMainLoop::InitializeToolkit() { @@ -1554,9 +1534,6 @@ mojo::SyncCallRestrictions::DisallowSyncCall(); } - GetContentClient()->OnServiceManagerConnected( - ServiceManagerConnection::GetForProcess()); - // Ensure that any NavigableContentsViews constructed in the browser process // know they're running in the same process as the service. content::NavigableContentsView::SetClientRunningInServiceProcess();
diff --git a/content/browser/browser_main_loop.h b/content/browser/browser_main_loop.h index 4fab39d4..fd6a36dce 100644 --- a/content/browser/browser_main_loop.h +++ b/content/browser/browser_main_loop.h
@@ -95,7 +95,6 @@ class ScreenlockMonitor; class SpeechRecognitionManagerImpl; class StartupTaskRunner; -class SwapMetricsDriver; class TracingControllerImpl; struct MainFunctionParams; @@ -339,7 +338,6 @@ // Members initialized in |PreCreateThreads()| ------------------------------- // Torn down in ShutdownThreadsAndCleanUp. std::unique_ptr<base::MemoryPressureMonitor> memory_pressure_monitor_; - std::unique_ptr<SwapMetricsDriver> swap_metrics_driver_; #if defined(USE_X11) std::unique_ptr<internal::GpuDataManagerVisualProxy> gpu_data_manager_visual_proxy_;
diff --git a/content/browser/browsing_instance.cc b/content/browser/browsing_instance.cc index cfcf10a6..094629d 100644 --- a/content/browser/browsing_instance.cc +++ b/content/browser/browsing_instance.cc
@@ -110,8 +110,14 @@ // have multiple unisolated sites share a process. We don't use the default // instance when kProcessSharingWithStrictSiteInstances is enabled because in // that case we want each site to have their own SiteInstance object and logic - // elsewhere ensures that those SiteInstances share a process. + // elsewhere ensures that those SiteInstances share a process. We also don't + // use default SiteInstances when SiteInstance doesn't assign a site URL for + // |url|, since in that case the SiteInstance should remain unused, and a + // subsequent navigation should always be able to reuse it, whether or not + // it's to a site requiring a dedicated process or to a site that will use + // the default SiteInstance. if (allow_default_instance && !url.SchemeIs(kGuestScheme) && + SiteInstanceImpl::ShouldAssignSiteForURL(url) && !base::FeatureList::IsEnabled( features::kProcessSharingWithStrictSiteInstances) && !SiteInstanceImpl::DoesSiteRequireDedicatedProcess(isolation_context_,
diff --git a/content/browser/compositor/reflector_impl_unittest.cc b/content/browser/compositor/reflector_impl_unittest.cc index c5f9e48..2a51a1b 100644 --- a/content/browser/compositor/reflector_impl_unittest.cc +++ b/content/browser/compositor/reflector_impl_unittest.cc
@@ -64,12 +64,38 @@ }; #endif // defined(USE_OZONE) -std::unique_ptr<viz::OverlayCandidateValidator> CreateTestValidatorOzone() { #if defined(USE_OZONE) +std::unique_ptr<viz::OverlayCandidateValidator> CreateTestValidatorOzone() { std::vector<viz::OverlayStrategy> strategies = { viz::OverlayStrategy::kSingleOnTop, viz::OverlayStrategy::kUnderlay}; return std::make_unique<viz::OverlayCandidateValidatorOzone>( std::make_unique<TestOverlayCandidatesOzone>(), std::move(strategies)); +} +#endif // defined(USE_OZONE) + +class TestOverlayProcessor : public viz::OverlayProcessor { + public: + explicit TestOverlayProcessor(const viz::ContextProvider* context_provider) + : OverlayProcessor(context_provider) { +#if defined(USE_OZONE) + auto validator = CreateTestValidatorOzone(); + overlay_validator_ = validator.get(); + SetOverlayCandidateValidator(std::move(validator)); +#endif // defined(USE_OZONE) + } + + viz::OverlayCandidateValidator* get_overlay_validator() const { + return overlay_validator_; + } + + private: + viz::OverlayCandidateValidator* overlay_validator_; +}; + +std::unique_ptr<TestOverlayProcessor> CreateTestOverlayProcessor( + const viz::ContextProvider* context_provider) { +#if defined(USE_OZONE) + return std::make_unique<TestOverlayProcessor>(context_provider); #else return nullptr; #endif // defined(USE_OZONE) @@ -146,12 +172,8 @@ context_provider->BindToCurrentThread(); output_surface_ = std::make_unique<TestOutputSurface>(std::move(context_provider)); - overlay_processor_ = std::make_unique<viz::OverlayProcessor>( - output_surface_->context_provider()); - auto overlay_validator = CreateTestValidatorOzone(); - overlay_validator_ = overlay_validator.get(); - overlay_processor_->SetOverlayCandidateValidator( - std::move(overlay_validator)); + overlay_processor_ = + CreateTestOverlayProcessor(output_surface_->context_provider()); root_layer_.reset(new ui::Layer(ui::LAYER_SOLID_COLOR)); compositor_->SetRootLayer(root_layer_.get()); @@ -190,7 +212,8 @@ void ProcessForOverlays(viz::OverlayCandidateList* surfaces) { overlay_processor_->SetSoftwareMirrorMode( output_surface_->IsSoftwareMirrorMode()); - overlay_validator_->CheckOverlaySupport(surfaces); + DCHECK(overlay_processor_->get_overlay_validator()); + overlay_processor_->get_overlay_validator()->CheckOverlaySupport(surfaces); } #endif // defined(USE_OZONE) @@ -205,8 +228,7 @@ std::unique_ptr<ui::Layer> mirroring_layer_; std::unique_ptr<ReflectorImpl> reflector_; std::unique_ptr<TestOutputSurface> output_surface_; - std::unique_ptr<viz::OverlayProcessor> overlay_processor_; - viz::OverlayCandidateValidator* overlay_validator_; + std::unique_ptr<TestOverlayProcessor> overlay_processor_; }; namespace {
diff --git a/content/browser/devtools/protocol/DEPS b/content/browser/devtools/protocol/DEPS index caed9f1..4d8e52aa 100644 --- a/content/browser/devtools/protocol/DEPS +++ b/content/browser/devtools/protocol/DEPS
@@ -4,4 +4,6 @@ "+device/fido/fido_transport_protocol.h", # For VirtualFidoDevice::RegistrationData used in protocol/webauthn_handler.cc. "+device/fido/virtual_fido_device.h", + # For VirtualU2fDevice::IsTransportSupported used in protocol/webauthn_handler.cc. + "+device/fido/virtual_u2f_device.h", ]
diff --git a/content/browser/devtools/protocol/webauthn_handler.cc b/content/browser/devtools/protocol/webauthn_handler.cc index 432e1de..70e469b 100644 --- a/content/browser/devtools/protocol/webauthn_handler.cc +++ b/content/browser/devtools/protocol/webauthn_handler.cc
@@ -16,6 +16,7 @@ #include "device/fido/fido_constants.h" #include "device/fido/fido_transport_protocol.h" #include "device/fido/virtual_fido_device.h" +#include "device/fido/virtual_u2f_device.h" namespace content { namespace protocol { @@ -23,10 +24,14 @@ namespace { static constexpr char kAuthenticatorNotFound[] = "Could not find a Virtual Authenticator matching the ID"; +static constexpr char kCableNotSupportedOnU2f[] = + "U2F only supports the \"usb\", \"ble\" and \"nfc\" transports"; static constexpr char kCouldNotCreateCredential[] = "An error occurred trying to create the credential"; static constexpr char kDevToolsNotAttached[] = "The DevTools session is not attached to a frame"; +static constexpr char kErrorCreatingAuthenticator[] = + "An error occurred when trying to create the authenticator"; static constexpr char kInvalidProtocol[] = "The protocol is not valid"; static constexpr char kInvalidRpIdHash[] = "The Relying Party ID hash must have a size of "; @@ -102,12 +107,20 @@ if (protocol == device::ProtocolVersion::kUnknown) return Response::InvalidParams(kInvalidProtocol); + if (protocol == device::ProtocolVersion::kU2f && + !device::VirtualU2fDevice::IsTransportSupported(*transport)) { + return Response::InvalidParams(kCableNotSupportedOnU2f); + } + auto* authenticator = virtual_discovery_factory_->CreateAuthenticator( protocol, *transport, transport == device::FidoTransportProtocol::kInternal ? device::AuthenticatorAttachment::kPlatform : device::AuthenticatorAttachment::kCrossPlatform, options->GetHasResidentKey(), options->GetHasUserVerification()); + if (!authenticator) + return Response::Error(kErrorCreatingAuthenticator); + authenticator->SetUserPresence( options->GetAutomaticPresenceSimulation(true /* default */));
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc index abbe6a24..c29790a 100644 --- a/content/browser/frame_host/navigation_controller_impl.cc +++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -40,7 +40,6 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/logging.h" -#include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" #include "base/strings/string_number_conversions.h" // Temporary #include "base/strings/string_util.h" @@ -476,7 +475,7 @@ RewriteUrlForNavigation(url, browser_context, &url_to_load, &virtual_url, &reverse_on_redirect); - NavigationEntryImpl* entry = new NavigationEntryImpl( + auto entry = std::make_unique<NavigationEntryImpl>( nullptr, // The site instance for tabs is sent on navigation // (WebContents::GetSiteInstance). url_to_load, referrer, base::string16(), transition, @@ -485,7 +484,7 @@ entry->set_user_typed_url(virtual_url); entry->set_update_virtual_url_with_url(reverse_on_redirect); entry->set_extra_headers(extra_headers); - return base::WrapUnique(entry); + return entry; } // static @@ -1425,7 +1424,7 @@ // For non-in-page commits with no matching pending entry, create a new entry. if (!new_entry) { - new_entry = base::WrapUnique(new NavigationEntryImpl); + new_entry = std::make_unique<NavigationEntryImpl>(); // Find out whether the new entry needs to update its virtual URL on URL // change and set up the entry accordingly. This is needed to correctly
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc index e226a60..3212f8e3 100644 --- a/content/browser/frame_host/navigation_entry_impl.cc +++ b/content/browser/frame_host/navigation_entry_impl.cc
@@ -174,10 +174,9 @@ // Clone this TreeNode, possibly replacing its FrameNavigationEntry. bool is_target_frame = target_frame_tree_node && MatchesFrame(target_frame_tree_node); - std::unique_ptr<NavigationEntryImpl::TreeNode> copy( - new NavigationEntryImpl::TreeNode( - parent_node, - is_target_frame ? frame_navigation_entry : frame_entry->Clone())); + auto copy = std::make_unique<NavigationEntryImpl::TreeNode>( + parent_node, + is_target_frame ? frame_navigation_entry : frame_entry->Clone()); // Recursively clone the children if needed. if (!is_target_frame || clone_children_of_target) { @@ -224,7 +223,7 @@ } std::unique_ptr<NavigationEntry> NavigationEntry::Create() { - return base::WrapUnique(new NavigationEntryImpl()); + return std::make_unique<NavigationEntryImpl>(); } NavigationEntryImpl* NavigationEntryImpl::FromNavigationEntry( @@ -259,21 +258,22 @@ ui::PageTransition transition_type, bool is_renderer_initiated, scoped_refptr<network::SharedURLLoaderFactory> blob_url_loader_factory) - : frame_tree_(new TreeNode(nullptr, - base::MakeRefCounted<FrameNavigationEntry>( - "", - -1, - -1, - std::move(instance), - nullptr, - url, - nullptr /* origin */, - referrer, - std::vector<GURL>(), - PageState(), - "GET", - -1, - std::move(blob_url_loader_factory)))), + : frame_tree_( + std::make_unique<TreeNode>(nullptr, + base::MakeRefCounted<FrameNavigationEntry>( + "", + -1, + -1, + std::move(instance), + nullptr, + url, + nullptr /* origin */, + referrer, + std::vector<GURL>(), + PageState(), + "GET", + -1, + std::move(blob_url_loader_factory)))), unique_id_(CreateUniqueEntryID()), bindings_(kInvalidBindings), page_type_(PAGE_TYPE_NORMAL), @@ -614,8 +614,7 @@ bool clone_children_of_target, FrameTreeNode* target_frame_tree_node, FrameTreeNode* root_frame_tree_node) const { - std::unique_ptr<NavigationEntryImpl> copy = - base::WrapUnique(new NavigationEntryImpl()); + auto copy = std::make_unique<NavigationEntryImpl>(); // TODO(creis): Only share the same FrameNavigationEntries if cloning within // the same tab.
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index cc766f9..bcd8236 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -196,6 +196,7 @@ #include "third_party/blink/public/mojom/loader/pause_subresource_loading_handle.mojom.h" #include "third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h" #include "third_party/blink/public/mojom/usb/web_usb_service.mojom.h" #include "third_party/blink/public/mojom/webauthn/virtual_authenticator.mojom.h" #include "ui/accessibility/ax_tree.h" @@ -4245,7 +4246,7 @@ base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableExperimentalWebPlatformFeatures)) { registry_->AddInterface(base::BindRepeating( - &RenderFrameHostImpl::BindSmsManagerRequest, base::Unretained(this))); + &RenderFrameHostImpl::BindSmsReceiverRequest, base::Unretained(this))); } } @@ -6010,8 +6011,8 @@ return chooser; } -void RenderFrameHostImpl::BindSmsManagerRequest( - blink::mojom::SmsManagerRequest request) { +void RenderFrameHostImpl::BindSmsReceiverRequest( + blink::mojom::SmsReceiverRequest request) { if (GetParent()) { mojo::ReportBadMessage("Must be in top-level browser context."); return;
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h index 358814f..34ca3ed 100644 --- a/content/browser/frame_host/render_frame_host_impl.h +++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -77,7 +77,7 @@ #include "third_party/blink/public/mojom/idle/idle_manager.mojom.h" #include "third_party/blink/public/mojom/presentation/presentation.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom-forward.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-forward.h" #include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h" #include "third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom.h" #include "third_party/blink/public/platform/web_focus_type.h" @@ -1392,7 +1392,7 @@ void BindIdleManagerRequest(blink::mojom::IdleManagerRequest request); - void BindSmsManagerRequest(blink::mojom::SmsManagerRequest request); + void BindSmsReceiverRequest(blink::mojom::SmsReceiverRequest request); // service_manager::mojom::InterfaceProvider: void GetInterface(const std::string& interface_name,
diff --git a/content/browser/frame_host/render_frame_host_manager_browsertest.cc b/content/browser/frame_host/render_frame_host_manager_browsertest.cc index 185948e..7d4cc74 100644 --- a/content/browser/frame_host/render_frame_host_manager_browsertest.cc +++ b/content/browser/frame_host/render_frame_host_manager_browsertest.cc
@@ -21,7 +21,9 @@ #include "base/single_thread_task_runner.h" #include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" +#include "base/synchronization/lock.h" #include "base/test/bind_test_util.h" +#include "base/thread_annotations.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "base/values.h" @@ -62,6 +64,7 @@ #include "content/public/test/url_loader_interceptor.h" #include "content/shell/browser/shell.h" #include "content/test/content_browser_test_utils_internal.h" +#include "content/test/did_commit_navigation_interceptor.h" #include "content/test/test_content_browser_client.h" #include "net/dns/mock_host_resolver.h" #include "net/test/embedded_test_server/controllable_http_response.h" @@ -5179,6 +5182,7 @@ // Starts monitoring requests made to the embedded_http_server() looking for // one made to |url|. To be used together with WaitForMonitoredRequest(). void StartMonitoringRequestsFor(const GURL& url) { + base::AutoLock lock(lock_); request_url_ = url; saw_request_url_ = false; } @@ -5186,16 +5190,24 @@ // Waits for a request to a URL set earlier via StartMonitoringRequestsFor(). // Returns right away if that request was already made. void WaitForMonitoredRequest() { + base::AutoLock lock(lock_); if (saw_request_url_) return; run_loop_.reset(new base::RunLoop()); - run_loop_->Run(); + { + base::RunLoop* run_loop = run_loop_.get(); + base::AutoUnlock unlock(lock_); + run_loop->Run(); + } run_loop_.reset(); } // Returns the body of the monitored request if it was a POST. - const std::string& GetRequestContent() { return request_content_; } + const std::string& GetRequestContent() { + base::AutoLock lock(lock_); + return request_content_; + } // Adds an unload handler to |rfh| and verifies that the unload state // bookkeeping on |rfh| is updated properly. @@ -5237,6 +5249,7 @@ if (it != request.headers.end()) requested_url = GURL("http://" + it->second + request.relative_url); + base::AutoLock lock(lock_); if (!saw_request_url_ && request_url_ == requested_url) { saw_request_url_ = true; request_content_ = request.content; @@ -5245,10 +5258,11 @@ } } - GURL request_url_; - std::string request_content_; - bool saw_request_url_ = false; - std::unique_ptr<base::RunLoop> run_loop_; + base::Lock lock_; + GURL request_url_ GUARDED_BY(lock_); + std::string request_content_ GUARDED_BY(lock_); + bool saw_request_url_ GUARDED_BY(lock_) = false; + std::unique_ptr<base::RunLoop> run_loop_ GUARDED_BY(lock_); DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManagerUnloadBrowserTest); }; @@ -5713,7 +5727,8 @@ EXPECT_EQ(speculative_rph, web_contents->GetMainFrame()->GetProcess()); } -// ContentBrowserClient that skips assigning a site URL for a given URL. +// ContentBrowserClient that skips assigning a site URL for all URLs that match +// a given URL's scheme and host. class DontAssignSiteContentBrowserClient : public TestContentBrowserClient { public: // Any visit to |url_to_skip| will not cause the site to be assigned to the @@ -5722,7 +5737,8 @@ : url_to_skip_(url_to_skip) {} bool ShouldAssignSiteForURL(const GURL& url) override { - return url != url_to_skip_; + return url.host() != url_to_skip_.host() || + url.scheme() != url_to_skip_.scheme(); } private: @@ -5807,4 +5823,172 @@ SetBrowserClientForTesting(old_client); } +namespace { + +// A helper class to run a predefined callback just before processing the +// DidCommitProvisionalLoad IPC for |deferred_url|. +class CommitMessageDelayer : public DidCommitNavigationInterceptor { + public: + using DidCommitCallback = base::OnceCallback<void(RenderFrameHost*)>; + + explicit CommitMessageDelayer(WebContents* web_contents, + const GURL& deferred_url, + DidCommitCallback deferred_action) + : DidCommitNavigationInterceptor(web_contents), + deferred_url_(deferred_url), + deferred_action_(std::move(deferred_action)) {} + + void Wait() { + run_loop_.reset(new base::RunLoop()); + run_loop_->Run(); + run_loop_.reset(); + } + + private: + // DidCommitNavigationInterceptor: + bool WillProcessDidCommitNavigation( + RenderFrameHost* render_frame_host, + NavigationRequest* navigation_request, + ::FrameHostMsg_DidCommitProvisionalLoad_Params* params, + mojom::DidCommitProvisionalLoadInterfaceParamsPtr* interface_params) + override { + if (params->url == deferred_url_) { + std::move(deferred_action_).Run(render_frame_host); + if (run_loop_) + run_loop_->Quit(); + } + return true; + } + + std::unique_ptr<base::RunLoop> run_loop_; + + const GURL deferred_url_; + DidCommitCallback deferred_action_; + + DISALLOW_COPY_AND_ASSIGN(CommitMessageDelayer); +}; + +} // namespace + +// Check that when a navigation to a URL that doesn't require assigning a site +// URL is in progress, another navigation can't reuse the same process in the +// meantime. Such reuse previously led to a renderer kill when the siteless +// URL later committed; a real-world example of the siteless URL was +// chrome-native://newtab. See https://crbug.com/970046. +IN_PROC_BROWSER_TEST_F(RenderFrameHostManagerTest, + NavigationRacesWithCommitInUnassignedSiteInstance) { + ASSERT_TRUE(embedded_test_server()->Start()); + WebContentsImpl* web_contents = + static_cast<WebContentsImpl*>(shell()->web_contents()); + FrameTreeNode* root = web_contents->GetFrameTree()->root(); + + // Set up a URL for which ShouldAssignSiteForURL will return false. The + // corresponding SiteInstance's site will be left unassigned, and its process + // won't be locked. The test will navigate to this URL first. + GURL siteless_url( + embedded_test_server()->GetURL("siteless.com", "/title1.html")); + DontAssignSiteContentBrowserClient content_browser_client(siteless_url); + ContentBrowserClient* old_client = + SetBrowserClientForTesting(&content_browser_client); + + // Prepare for a second navigation to a normal URL. Ensure it's isolated so + // that it requires a process lock on all platforms. + GURL foo_url(embedded_test_server()->GetURL("foo.com", "/title1.html")); + TestNavigationManager foo_manager(web_contents, foo_url); + auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); + policy->AddIsolatedOrigins( + {url::Origin::Create(foo_url)}, + ChildProcessSecurityPolicy::IsolatedOriginSource::TEST); + RenderProcessHost* foo_process = nullptr; + base::HistogramTester histograms; + + // Set up the work to be done after the renderer is asked to commit + // |siteless_url|, but before the corresponding DidCommitProvisionalLoad IPC + // is processed. This will start a navigation to |foo_url| and wait for its + // response. + auto did_commit_callback = + base::BindLambdaForTesting([&](RenderFrameHost* rfh) { + // The navigation should stay in the initial empty SiteInstance, with + // the site still unassigned. + EXPECT_FALSE( + static_cast<SiteInstanceImpl*>(rfh->GetSiteInstance())->HasSite()); + EXPECT_FALSE(root->render_manager()->speculative_frame_host()); + + shell()->LoadURL(foo_url); + + // The foo.com navigation should swap to a new process, since it is not + // safe to reuse |siteless_url|'s process before |siteless_url| + // commits. + EXPECT_TRUE(root->render_manager()->speculative_frame_host()); + foo_process = + root->render_manager()->speculative_frame_host()->GetProcess(); + + // Wait for response. This will cause |foo_manager| to spin up a + // nested message loop while we're blocked in the current message loop + // (within DidCommitNavigationInterceptor). Thus, it's important to + // allow nestable tasks in |foo_manager|'s message loop, so that it can + // process the response before we unblock the + // DidCommitNavigationInterceptor's message loop and finish processing + // the commit. + foo_manager.AllowNestableTasks(); + EXPECT_TRUE(foo_manager.WaitForResponse()); + + foo_manager.ResumeNavigation(); + // After returning here, the commit for |siteless_url| will be + // processed. + }); + + CommitMessageDelayer commit_delayer(web_contents, + siteless_url /* deferred_url */, + std::move(did_commit_callback)); + + // Start the first navigation, which does not assign a site URL. + shell()->LoadURL(siteless_url); + + // The navigation should stay in the initial empty SiteInstance, so there + // shouldn't be a speculative RFH at this point. + EXPECT_FALSE(root->render_manager()->speculative_frame_host()); + + // Wait for the DidCommit IPC for |siteless_url|, and before processing it, + // trigger a navigation to |foo_url| and wait for its response. + commit_delayer.Wait(); + + // Check that the renderer hasn't been killed. At this point, it should've + // successfully committed the navigation to |siteless_url|, and it shouldn't + // be locked. + EXPECT_TRUE(web_contents->GetMainFrame()->IsRenderFrameLive()); + EXPECT_EQ(siteless_url, web_contents->GetMainFrame()->GetLastCommittedURL()); + RenderProcessHost* process1 = web_contents->GetMainFrame()->GetProcess(); + EXPECT_FALSE(web_contents->GetMainFrame()->GetSiteInstance()->HasSite()); + EXPECT_EQ(GURL(), policy->GetOriginLock(process1->GetID())); + + // Now wait for second navigation to finish and ensure it also succeeds. + foo_manager.WaitForNavigationFinished(); + EXPECT_TRUE(foo_manager.was_successful()); + EXPECT_TRUE(web_contents->GetMainFrame()->IsRenderFrameLive()); + EXPECT_EQ(foo_url, web_contents->GetMainFrame()->GetLastCommittedURL()); + + // The foo.com navigation should've used a different process, locked to + // foo.com. + RenderProcessHost* process2 = web_contents->GetMainFrame()->GetProcess(); + EXPECT_NE(process1, process2); + EXPECT_EQ(GURL("http://foo.com"), + web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL()); + EXPECT_EQ(GURL("http://foo.com"), policy->GetOriginLock(process2->GetID())); + + // Ensure also that the foo.com process didn't change midway through the + // navigation. + EXPECT_EQ(foo_process, process2); + + // Ensure we've logged the UMA for disallowing problematic process reuse. + // Since IsSuitableHost() is checked multiple times during a particular + // navigation, just make sure that this is logged at least once. + EXPECT_GE(histograms.GetBucketCount( + "SiteIsolation.PendingSitelessNavigationDisallowsProcessReuse", + 1 /* has_disqualifying_pending_navigation */), + 1); + + SetBrowserClientForTesting(old_client); +} + } // namespace content
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc index e1259dc0..77f86114 100644 --- a/content/browser/gpu/gpu_data_manager_impl_private.cc +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -841,18 +841,10 @@ } if (num_resets_within_timeframe >= kNumResetsWithinDuration) { - UMA_HISTOGRAM_ENUMERATION("GPU.BlockStatusForClient3DAPIs", - BLOCK_STATUS_ALL_DOMAINS_BLOCKED, - BLOCK_STATUS_MAX); - return DomainBlockStatus::kAllDomainsBlocked; } } - UMA_HISTOGRAM_ENUMERATION("GPU.BlockStatusForClient3DAPIs", - BLOCK_STATUS_NOT_BLOCKED, - BLOCK_STATUS_MAX); - return DomainBlockStatus::kNotBlocked; }
diff --git a/content/browser/memory/swap_metrics_delegate_uma.cc b/content/browser/memory/swap_metrics_delegate_uma.cc deleted file mode 100644 index 7745eab..0000000 --- a/content/browser/memory/swap_metrics_delegate_uma.cc +++ /dev/null
@@ -1,43 +0,0 @@ -// Copyright 2017 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. - -#include "content/browser/memory/swap_metrics_delegate_uma.h" - -#include "base/metrics/histogram_macros.h" - -namespace content { - -SwapMetricsDelegateUma::SwapMetricsDelegateUma() = default; - -SwapMetricsDelegateUma::~SwapMetricsDelegateUma() = default; - -void SwapMetricsDelegateUma::OnSwapInCount(uint64_t count, - base::TimeDelta interval) { - UMA_HISTOGRAM_COUNTS_10000( - "Memory.Experimental.SwapInPerSecond", - static_cast<double>(count) / interval.InSecondsF()); -} - -void SwapMetricsDelegateUma::OnSwapOutCount(uint64_t count, - base::TimeDelta interval) { - UMA_HISTOGRAM_COUNTS_10000( - "Memory.Experimental.SwapOutPerSecond", - static_cast<double>(count) / interval.InSecondsF()); -} - -void SwapMetricsDelegateUma::OnDecompressedPageCount(uint64_t count, - base::TimeDelta interval) { - UMA_HISTOGRAM_COUNTS_10000( - "Memory.Experimental.DecompressedPagesPerSecond", - static_cast<double>(count) / interval.InSecondsF()); -} - -void SwapMetricsDelegateUma::OnCompressedPageCount(uint64_t count, - base::TimeDelta interval) { - UMA_HISTOGRAM_COUNTS_10000( - "Memory.Experimental.CompressedPagesPerSecond", - static_cast<double>(count) / interval.InSecondsF()); -} - -} // namespace content
diff --git a/content/browser/memory/swap_metrics_delegate_uma.h b/content/browser/memory/swap_metrics_delegate_uma.h deleted file mode 100644 index 33b55f5..0000000 --- a/content/browser/memory/swap_metrics_delegate_uma.h +++ /dev/null
@@ -1,33 +0,0 @@ -// Copyright 2017 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. - -#ifndef CONTENT_BROWSER_MEMORY_SWAP_METRICS_DELEGATE_UMA_H_ -#define CONTENT_BROWSER_MEMORY_SWAP_METRICS_DELEGATE_UMA_H_ - -#include "content/public/browser/swap_metrics_driver.h" - -#include "base/time/time.h" - -namespace content { - -// This class records metrics related to the system's swapping behavior. -// Metrics can be platform-specific. -class SwapMetricsDelegateUma : public SwapMetricsDriver::Delegate { - public: - SwapMetricsDelegateUma(); - ~SwapMetricsDelegateUma() override; - - void OnSwapInCount(uint64_t count, base::TimeDelta interval) override; - void OnSwapOutCount(uint64_t count, base::TimeDelta interval) override; - void OnDecompressedPageCount(uint64_t count, - base::TimeDelta interval) override; - void OnCompressedPageCount(uint64_t count, base::TimeDelta interval) override; - - private: - DISALLOW_COPY_AND_ASSIGN(SwapMetricsDelegateUma); -}; - -} // namespace content - -#endif // CONTENT_BROWSER_MEMORY_SWAP_METRICS_DELEGATE_UMA_H_
diff --git a/content/browser/native_file_system/fixed_native_file_system_permission_grant.cc b/content/browser/native_file_system/fixed_native_file_system_permission_grant.cc new file mode 100644 index 0000000..ead66ea --- /dev/null +++ b/content/browser/native_file_system/fixed_native_file_system_permission_grant.cc
@@ -0,0 +1,28 @@ +// Copyright 2019 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. + +#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h" + +namespace content { + +FixedNativeFileSystemPermissionGrant::FixedNativeFileSystemPermissionGrant( + PermissionStatus status) + : status_(status) {} + +FixedNativeFileSystemPermissionGrant::~FixedNativeFileSystemPermissionGrant() = + default; + +FixedNativeFileSystemPermissionGrant::PermissionStatus +FixedNativeFileSystemPermissionGrant::GetStatus() const { + return status_; +} + +void FixedNativeFileSystemPermissionGrant::RequestPermission( + int process_id, + int frame_id, + base::OnceClosure callback) { + std::move(callback).Run(); +} + +} // namespace content
diff --git a/content/browser/native_file_system/fixed_native_file_system_permission_grant.h b/content/browser/native_file_system/fixed_native_file_system_permission_grant.h new file mode 100644 index 0000000..4664d0c --- /dev/null +++ b/content/browser/native_file_system/fixed_native_file_system_permission_grant.h
@@ -0,0 +1,39 @@ +// Copyright 2019 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. + +#ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FIXED_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_ +#define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FIXED_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_ + +#include "content/public/browser/native_file_system_permission_grant.h" + +#include "content/common/content_export.h" + +namespace content { + +// NativeFileSystemPermissionGrant implementation that returns a fixed value as +// permission status. Used for example to model the permissions for sandboxed +// file systems (which can't change), as well as in tests. +// RequestPermission will immediately call the callback, leaving the status +// unchanged. +class CONTENT_EXPORT FixedNativeFileSystemPermissionGrant + : public NativeFileSystemPermissionGrant { + public: + explicit FixedNativeFileSystemPermissionGrant(PermissionStatus status); + + // NativeFileSystemPermissionContext::PermissionGrant: + PermissionStatus GetStatus() const override; + void RequestPermission(int process_id, + int frame_id, + base::OnceClosure callback) override; + + protected: + ~FixedNativeFileSystemPermissionGrant() override; + + private: + const PermissionStatus status_; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_NATIVE_FILE_SYSTEM_FIXED_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
diff --git a/content/browser/native_file_system/mock_native_file_system_permission_grant.cc b/content/browser/native_file_system/mock_native_file_system_permission_grant.cc new file mode 100644 index 0000000..b570830 --- /dev/null +++ b/content/browser/native_file_system/mock_native_file_system_permission_grant.cc
@@ -0,0 +1,21 @@ +// Copyright 2019 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. + +#include "content/browser/native_file_system/mock_native_file_system_permission_grant.h" + +namespace content { + +MockNativeFileSystemPermissionGrant::MockNativeFileSystemPermissionGrant() = + default; +MockNativeFileSystemPermissionGrant::~MockNativeFileSystemPermissionGrant() = + default; + +void MockNativeFileSystemPermissionGrant::RequestPermission( + int process_id, + int frame_id, + base::OnceClosure callback) { + RequestPermission_(process_id, frame_id, callback); +} + +} // namespace content
diff --git a/content/browser/native_file_system/mock_native_file_system_permission_grant.h b/content/browser/native_file_system/mock_native_file_system_permission_grant.h new file mode 100644 index 0000000..2540e6cc --- /dev/null +++ b/content/browser/native_file_system/mock_native_file_system_permission_grant.h
@@ -0,0 +1,32 @@ +// Copyright 2019 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. + +#ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_ +#define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_ + +#include "content/public/browser/native_file_system_permission_grant.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace content { + +// Mock NativeFileSystemPermissionGrant implementation. +class MockNativeFileSystemPermissionGrant + : public NativeFileSystemPermissionGrant { + public: + MockNativeFileSystemPermissionGrant(); + + MOCK_CONST_METHOD0(GetStatus, PermissionStatus()); + void RequestPermission(int process_id, + int frame_id, + base::OnceClosure callback) override; + MOCK_METHOD3(RequestPermission_, + void(int process_id, int frame_id, base::OnceClosure& callback)); + + protected: + ~MockNativeFileSystemPermissionGrant(); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
diff --git a/content/browser/native_file_system/native_file_system_directory_handle_impl.cc b/content/browser/native_file_system/native_file_system_directory_handle_impl.cc index 6da991297..56c4f07 100644 --- a/content/browser/native_file_system/native_file_system_directory_handle_impl.cc +++ b/content/browser/native_file_system/native_file_system_directory_handle_impl.cc
@@ -56,11 +56,8 @@ NativeFileSystemManagerImpl* manager, const BindingContext& context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system) - : NativeFileSystemHandleBase(manager, - context, - url, - std::move(file_system)) {} + const SharedHandleState& handle_state) + : NativeFileSystemHandleBase(manager, context, url, handle_state) {} NativeFileSystemDirectoryHandleImpl::~NativeFileSystemDirectoryHandleImpl() = default; @@ -221,7 +218,7 @@ std::move(callback).Run( NativeFileSystemError::New(base::File::FILE_OK), - manager()->CreateFileHandle(context(), url, file_system())); + manager()->CreateFileHandle(context(), url, handle_state())); } void NativeFileSystemDirectoryHandleImpl::GetDirectoryWithWritePermission( @@ -251,7 +248,7 @@ std::move(callback).Run( NativeFileSystemError::New(base::File::FILE_OK), - manager()->CreateDirectoryHandle(context(), url, file_system())); + manager()->CreateDirectoryHandle(context(), url, handle_state())); } void NativeFileSystemDirectoryHandleImpl::DidReadDirectory( @@ -343,16 +340,21 @@ return NativeFileSystemEntry::New( NativeFileSystemHandle::NewDirectory( manager() - ->CreateDirectoryHandle(context(), url, file_system()) + ->CreateDirectoryHandle(context(), url, handle_state()) .PassInterface()), name); } return NativeFileSystemEntry::New( NativeFileSystemHandle::NewFile( manager() - ->CreateFileHandle(context(), url, file_system()) + ->CreateFileHandle(context(), url, handle_state()) .PassInterface()), name); } +base::WeakPtr<NativeFileSystemHandleBase> +NativeFileSystemDirectoryHandleImpl::AsWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + } // namespace content
diff --git a/content/browser/native_file_system/native_file_system_directory_handle_impl.h b/content/browser/native_file_system/native_file_system_directory_handle_impl.h index 8066a95..66ebb08 100644 --- a/content/browser/native_file_system/native_file_system_directory_handle_impl.h +++ b/content/browser/native_file_system/native_file_system_directory_handle_impl.h
@@ -25,11 +25,10 @@ : public NativeFileSystemHandleBase, public blink::mojom::NativeFileSystemDirectoryHandle { public: - NativeFileSystemDirectoryHandleImpl( - NativeFileSystemManagerImpl* manager, - const BindingContext& context, - const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system); + NativeFileSystemDirectoryHandleImpl(NativeFileSystemManagerImpl* manager, + const BindingContext& context, + const storage::FileSystemURL& url, + const SharedHandleState& handle_state); ~NativeFileSystemDirectoryHandleImpl() override; // blink::mojom::NativeFileSystemDirectoryHandle: @@ -86,6 +85,8 @@ const storage::FileSystemURL& url, bool is_directory); + base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override; + base::WeakPtrFactory<NativeFileSystemDirectoryHandleImpl> weak_factory_{this}; DISALLOW_COPY_AND_ASSIGN(NativeFileSystemDirectoryHandleImpl); };
diff --git a/content/browser/native_file_system/native_file_system_file_handle_impl.cc b/content/browser/native_file_system/native_file_system_file_handle_impl.cc index 9d95d5b..5c1f6dc 100644 --- a/content/browser/native_file_system/native_file_system_file_handle_impl.cc +++ b/content/browser/native_file_system/native_file_system_file_handle_impl.cc
@@ -30,11 +30,8 @@ NativeFileSystemManagerImpl* manager, const BindingContext& context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system) - : NativeFileSystemHandleBase(manager, - context, - url, - std::move(file_system)) {} + const SharedHandleState& handle_state) + : NativeFileSystemHandleBase(manager, context, url, handle_state) {} NativeFileSystemFileHandleImpl::~NativeFileSystemFileHandleImpl() = default; @@ -263,4 +260,9 @@ std::move(callback))); } +base::WeakPtr<NativeFileSystemHandleBase> +NativeFileSystemFileHandleImpl::AsWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + } // namespace content
diff --git a/content/browser/native_file_system/native_file_system_file_handle_impl.h b/content/browser/native_file_system/native_file_system_file_handle_impl.h index 75ab721..f2801fb 100644 --- a/content/browser/native_file_system/native_file_system_file_handle_impl.h +++ b/content/browser/native_file_system/native_file_system_file_handle_impl.h
@@ -35,11 +35,10 @@ : public NativeFileSystemHandleBase, public blink::mojom::NativeFileSystemFileHandle { public: - NativeFileSystemFileHandleImpl( - NativeFileSystemManagerImpl* manager, - const BindingContext& context, - const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system); + NativeFileSystemFileHandleImpl(NativeFileSystemManagerImpl* manager, + const BindingContext& context, + const storage::FileSystemURL& url, + const SharedHandleState& handle_state); ~NativeFileSystemFileHandleImpl() override; // blink::mojom::NativeFileSystemFileHandle: @@ -86,6 +85,8 @@ void TruncateImpl(uint64_t length, TruncateCallback callback); + base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override; + base::WeakPtrFactory<NativeFileSystemFileHandleImpl> weak_factory_{this}; DISALLOW_COPY_AND_ASSIGN(NativeFileSystemFileHandleImpl); };
diff --git a/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc b/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc index 56fba97..0192416 100644 --- a/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc +++ b/content/browser/native_file_system/native_file_system_file_handle_impl_unittest.cc
@@ -12,6 +12,7 @@ #include "base/test/bind_test_util.h" #include "base/test/scoped_feature_list.h" #include "base/test/scoped_task_environment.h" +#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h" #include "content/public/test/test_browser_thread_bundle.h" #include "mojo/public/cpp/system/string_data_pipe_producer.h" #include "net/base/io_buffer.h" @@ -56,14 +57,17 @@ blob_context_ = chrome_blob_context_->context(); manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>( - file_system_context_, chrome_blob_context_); + file_system_context_, chrome_blob_context_, + /*permission_context=*/nullptr); handle_ = std::make_unique<NativeFileSystemFileHandleImpl>( manager_.get(), NativeFileSystemManagerImpl::BindingContext( test_url_.origin(), /*process_id=*/1, /*frame_id=*/MSG_ROUTING_NONE), - test_url_, storage::IsolatedContext::ScopedFSHandle()); + test_url_, + NativeFileSystemManagerImpl::SharedHandleState( + permission_grant_, permission_grant_, /*file_system=*/{})); } blink::mojom::BlobPtr CreateBlob(const std::string& contents) { @@ -192,6 +196,9 @@ FileSystemURL test_url_; + scoped_refptr<FixedNativeFileSystemPermissionGrant> permission_grant_ = + base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + FixedNativeFileSystemPermissionGrant::PermissionStatus::GRANTED); std::unique_ptr<NativeFileSystemFileHandleImpl> handle_; };
diff --git a/content/browser/native_file_system/native_file_system_handle_base.cc b/content/browser/native_file_system/native_file_system_handle_base.cc index f8be556..28aa2d8 100644 --- a/content/browser/native_file_system/native_file_system_handle_base.cc +++ b/content/browser/native_file_system/native_file_system_handle_base.cc
@@ -4,22 +4,20 @@ #include "content/browser/native_file_system/native_file_system_handle_base.h" -#include "content/public/common/content_switches.h" - namespace content { NativeFileSystemHandleBase::NativeFileSystemHandleBase( NativeFileSystemManagerImpl* manager, const BindingContext& context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system) + const SharedHandleState& handle_state) : manager_(manager), context_(context), url_(url), - file_system_(std::move(file_system)) { + handle_state_(handle_state) { DCHECK(manager_); DCHECK_EQ(url_.mount_type() == storage::kFileSystemTypeIsolated, - file_system_.is_valid()) + handle_state_.file_system.is_valid()) << url_.mount_type(); // For now only support sandboxed file system and native file system. DCHECK(url_.type() == storage::kFileSystemTypeNativeLocal || @@ -27,24 +25,25 @@ url_.type() == storage::kFileSystemTypeTemporary || url_.type() == storage::kFileSystemTypeTest) << url_.type(); - // Sandboxed and test file systems should always be writable. - if (url_.type() == storage::kFileSystemTypePersistent || - url_.type() == storage::kFileSystemTypeTemporary || - url_.type() == storage::kFileSystemTypeTest) { - write_permission_status_ = PermissionStatus::GRANTED; - } } NativeFileSystemHandleBase::~NativeFileSystemHandleBase() = default; NativeFileSystemHandleBase::PermissionStatus -NativeFileSystemHandleBase::GetWritePermissionStatus() const { +NativeFileSystemHandleBase::GetReadPermissionStatus() { + return handle_state_.read_grant->GetStatus(); +} + +NativeFileSystemHandleBase::PermissionStatus +NativeFileSystemHandleBase::GetWritePermissionStatus() { // It is not currently possible to have write only handles, so first check the // read permission status. See also: // http://wicg.github.io/native-file-system/#api-filesystemhandle-querypermission - if (read_permission_status_ != PermissionStatus::GRANTED) - return read_permission_status_; - return write_permission_status_; + PermissionStatus read_status = GetReadPermissionStatus(); + if (read_status != PermissionStatus::GRANTED) + return read_status; + + return handle_state_.write_grant->GetStatus(); } void NativeFileSystemHandleBase::DoGetPermissionStatus( @@ -64,24 +63,21 @@ return; } if (!writable) { - // TODO(https://crbug.com/971401): Implement prompt. Currently unreachable, - // since read permission isn't revokable yet. - std::move(callback).Run(read_permission_status_); + handle_state_.read_grant->RequestPermission( + context().process_id, context().frame_id, + base::BindOnce(&NativeFileSystemHandleBase::DoGetPermissionStatus, + AsWeakPtr(), writable, std::move(callback))); return; } + // TODO(https://crbug.com/971401): Today read permission isn't revokable, so // current status should always be GRANTED. DCHECK_EQ(GetReadPermissionStatus(), PermissionStatus::GRANTED); - // TODO(https://crbug.com/878585): Actually prompt for write permission. For - // now we're just always denying requests, unless Experimental Web Platform - // features are enabled. - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableExperimentalWebPlatformFeatures)) { - write_permission_status_ = PermissionStatus::GRANTED; - } else { - write_permission_status_ = PermissionStatus::DENIED; - } - std::move(callback).Run(write_permission_status_); + + handle_state_.write_grant->RequestPermission( + context().process_id, context().frame_id, + base::BindOnce(&NativeFileSystemHandleBase::DoGetPermissionStatus, + AsWeakPtr(), writable, std::move(callback))); } } // namespace content
diff --git a/content/browser/native_file_system/native_file_system_handle_base.h b/content/browser/native_file_system/native_file_system_handle_base.h index 336c8acf..8da0b11a 100644 --- a/content/browser/native_file_system/native_file_system_handle_base.h +++ b/content/browser/native_file_system/native_file_system_handle_base.h
@@ -7,6 +7,7 @@ #include <vector> +#include "base/memory/weak_ptr.h" #include "content/browser/native_file_system/native_file_system_manager_impl.h" #include "content/common/content_export.h" #include "storage/browser/fileapi/file_system_url.h" @@ -33,24 +34,23 @@ class CONTENT_EXPORT NativeFileSystemHandleBase { public: using BindingContext = NativeFileSystemManagerImpl::BindingContext; + using SharedHandleState = NativeFileSystemManagerImpl::SharedHandleState; using PermissionStatus = blink::mojom::PermissionStatus; - NativeFileSystemHandleBase( - NativeFileSystemManagerImpl* manager, - const BindingContext& context, - const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system); + NativeFileSystemHandleBase(NativeFileSystemManagerImpl* manager, + const BindingContext& context, + const storage::FileSystemURL& url, + const SharedHandleState& handle_state); virtual ~NativeFileSystemHandleBase(); const storage::FileSystemURL& url() const { return url_; } + const SharedHandleState& handle_state() const { return handle_state_; } const storage::IsolatedContext::ScopedFSHandle& file_system() const { - return file_system_; + return handle_state_.file_system; } - PermissionStatus GetReadPermissionStatus() const { - return read_permission_status_; - } - PermissionStatus GetWritePermissionStatus() const; + PermissionStatus GetReadPermissionStatus(); + PermissionStatus GetWritePermissionStatus(); // Implementation for the GetPermissionStatus method in the // blink::mojom::NativeFileSystemFileHandle and DirectoryHandle interfaces. @@ -84,17 +84,14 @@ return manager()->blob_context(); } + virtual base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() = 0; + private: // The NativeFileSystemManagerImpl that owns this instance. NativeFileSystemManagerImpl* const manager_; const BindingContext context_; const storage::FileSystemURL url_; - const storage::IsolatedContext::ScopedFSHandle file_system_; - - // TODO(mek): We'll likely end up with something more complicated than simple - // fields like this, but this will do for now. - PermissionStatus read_permission_status_ = PermissionStatus::GRANTED; - PermissionStatus write_permission_status_ = PermissionStatus::ASK; + const SharedHandleState handle_state_; DISALLOW_COPY_AND_ASSIGN(NativeFileSystemHandleBase); };
diff --git a/content/browser/native_file_system/native_file_system_handle_base_unittest.cc b/content/browser/native_file_system/native_file_system_handle_base_unittest.cc index dc12427..101bd42 100644 --- a/content/browser/native_file_system/native_file_system_handle_base_unittest.cc +++ b/content/browser/native_file_system/native_file_system_handle_base_unittest.cc
@@ -6,8 +6,10 @@ #include "base/files/scoped_temp_dir.h" #include "base/test/bind_test_util.h" +#include "base/test/gmock_callback_support.h" #include "base/test/scoped_feature_list.h" #include "base/test/scoped_task_environment.h" +#include "content/browser/native_file_system/mock_native_file_system_permission_grant.h" #include "content/public/test/test_browser_thread_bundle.h" #include "storage/browser/blob/blob_storage_context.h" #include "storage/browser/test/test_file_system_context.h" @@ -16,9 +18,25 @@ namespace content { +using base::test::RunOnceCallback; using blink::mojom::PermissionStatus; using storage::FileSystemURL; +class TestNativeFileSystemHandle : public NativeFileSystemHandleBase { + public: + TestNativeFileSystemHandle(NativeFileSystemManagerImpl* manager, + const BindingContext& context, + const storage::FileSystemURL& url, + const SharedHandleState& handle_state) + : NativeFileSystemHandleBase(manager, context, url, handle_state) {} + + private: + base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override { + return weak_factory_.GetWeakPtr(); + } + base::WeakPtrFactory<TestNativeFileSystemHandle> weak_factory_{this}; +}; + class NativeFileSystemHandleBaseTest : public testing::Test { public: NativeFileSystemHandleBaseTest() @@ -37,7 +55,8 @@ chrome_blob_context_->InitializeOnIOThread(base::FilePath(), nullptr); manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>( - file_system_context_, chrome_blob_context_); + file_system_context_, chrome_blob_context_, + /*permission_context=*/nullptr); } protected: @@ -49,74 +68,136 @@ base::ScopedTempDir dir_; scoped_refptr<storage::FileSystemContext> file_system_context_; scoped_refptr<ChromeBlobStorageContext> chrome_blob_context_; + + scoped_refptr<MockNativeFileSystemPermissionGrant> read_grant_ = + base::MakeRefCounted< + testing::StrictMock<MockNativeFileSystemPermissionGrant>>(); + scoped_refptr<MockNativeFileSystemPermissionGrant> write_grant_ = + base::MakeRefCounted< + testing::StrictMock<MockNativeFileSystemPermissionGrant>>(); + scoped_refptr<NativeFileSystemManagerImpl> manager_; + + NativeFileSystemManagerImpl::SharedHandleState handle_state_ = {read_grant_, + write_grant_, + {}}; }; -TEST_F(NativeFileSystemHandleBaseTest, InitialPermissionStatus_TestURL) { +TEST_F(NativeFileSystemHandleBaseTest, GetReadPermissionStatus) { auto url = FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest, - base::FilePath::FromUTF8Unsafe("test")); - NativeFileSystemHandleBase handle(manager_.get(), + base::FilePath::FromUTF8Unsafe("/test")); + TestNativeFileSystemHandle handle(manager_.get(), NativeFileSystemManagerImpl::BindingContext( kTestOrigin, /*process_id=*/1, /*frame_id=*/MSG_ROUTING_NONE), - url, - storage::IsolatedContext::ScopedFSHandle()); + url, handle_state_); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::ASK)); + EXPECT_EQ(PermissionStatus::ASK, handle.GetReadPermissionStatus()); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::GRANTED)); EXPECT_EQ(PermissionStatus::GRANTED, handle.GetReadPermissionStatus()); - EXPECT_EQ(PermissionStatus::GRANTED, handle.GetWritePermissionStatus()); } -TEST_F(NativeFileSystemHandleBaseTest, InitialPermissionStatus_SandboxedURL) { - auto url = FileSystemURL::CreateForTest( - kTestOrigin, storage::kFileSystemTypeTemporary, - base::FilePath::FromUTF8Unsafe("test")); - - NativeFileSystemHandleBase handle(manager_.get(), +TEST_F(NativeFileSystemHandleBaseTest, + GetWritePermissionStatus_ReadStatusNotGranted) { + auto url = + FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest, + base::FilePath::FromUTF8Unsafe("/test")); + TestNativeFileSystemHandle handle(manager_.get(), NativeFileSystemManagerImpl::BindingContext( kTestOrigin, /*process_id=*/1, /*frame_id=*/MSG_ROUTING_NONE), - url, - storage::IsolatedContext::ScopedFSHandle()); - EXPECT_EQ(PermissionStatus::GRANTED, handle.GetReadPermissionStatus()); - EXPECT_EQ(PermissionStatus::GRANTED, handle.GetWritePermissionStatus()); + url, handle_state_); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::ASK)); + EXPECT_EQ(PermissionStatus::ASK, handle.GetWritePermissionStatus()); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::DENIED)); + EXPECT_EQ(PermissionStatus::DENIED, handle.GetWritePermissionStatus()); } -TEST_F(NativeFileSystemHandleBaseTest, InitialPermissionStatus_NativeFSURL) { - auto url = FileSystemURL::CreateForTest( - kTestOrigin, storage::kFileSystemTypeNativeLocal, - base::FilePath::FromUTF8Unsafe("test")); - - NativeFileSystemHandleBase handle(manager_.get(), +TEST_F(NativeFileSystemHandleBaseTest, + GetWritePermissionStatus_ReadStatusGranted) { + auto url = + FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest, + base::FilePath::FromUTF8Unsafe("/test")); + TestNativeFileSystemHandle handle(manager_.get(), NativeFileSystemManagerImpl::BindingContext( kTestOrigin, /*process_id=*/1, /*frame_id=*/MSG_ROUTING_NONE), - url, - storage::IsolatedContext::ScopedFSHandle()); - EXPECT_EQ(PermissionStatus::GRANTED, handle.GetReadPermissionStatus()); + url, handle_state_); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::GRANTED)); + EXPECT_CALL(*write_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::ASK)); EXPECT_EQ(PermissionStatus::ASK, handle.GetWritePermissionStatus()); } -TEST_F(NativeFileSystemHandleBaseTest, RequestWritePermission_NativeFSURL) { - auto url = FileSystemURL::CreateForTest( - kTestOrigin, storage::kFileSystemTypeNativeLocal, - base::FilePath::FromUTF8Unsafe("test")); - - NativeFileSystemHandleBase handle(manager_.get(), +TEST_F(NativeFileSystemHandleBaseTest, RequestWritePermission_AlreadyGranted) { + auto url = + FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest, + base::FilePath::FromUTF8Unsafe("/test")); + TestNativeFileSystemHandle handle(manager_.get(), NativeFileSystemManagerImpl::BindingContext( kTestOrigin, /*process_id=*/1, /*frame_id=*/MSG_ROUTING_NONE), - url, - storage::IsolatedContext::ScopedFSHandle()); + url, handle_state_); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::GRANTED)); + EXPECT_CALL(*write_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::GRANTED)); base::RunLoop loop; handle.DoRequestPermission( /*writable=*/true, base::BindLambdaForTesting([&](PermissionStatus result) { - EXPECT_EQ(PermissionStatus::DENIED, result); + EXPECT_EQ(PermissionStatus::GRANTED, result); loop.Quit(); })); loop.Run(); - EXPECT_EQ(PermissionStatus::DENIED, handle.GetWritePermissionStatus()); +} + +TEST_F(NativeFileSystemHandleBaseTest, RequestWritePermission) { + const int kProcessId = 1; + const int kFrameId = 2; + + auto url = + FileSystemURL::CreateForTest(kTestOrigin, storage::kFileSystemTypeTest, + base::FilePath::FromUTF8Unsafe("/test")); + TestNativeFileSystemHandle handle(manager_.get(), + NativeFileSystemManagerImpl::BindingContext( + kTestOrigin, kProcessId, kFrameId), + url, handle_state_); + + EXPECT_CALL(*read_grant_, GetStatus()) + .WillRepeatedly(testing::Return(PermissionStatus::GRANTED)); + { + testing::InSequence sequence; + EXPECT_CALL(*write_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::ASK)); + EXPECT_CALL(*write_grant_, + RequestPermission_(kProcessId, kFrameId, testing::_)) + .WillOnce(RunOnceCallback<2>()); + EXPECT_CALL(*write_grant_, GetStatus()) + .WillOnce(testing::Return(PermissionStatus::GRANTED)); + } + + base::RunLoop loop; + handle.DoRequestPermission( + /*writable=*/true, + base::BindLambdaForTesting([&](PermissionStatus result) { + EXPECT_EQ(PermissionStatus::GRANTED, result); + loop.Quit(); + })); + loop.Run(); } } // namespace content
diff --git a/content/browser/native_file_system/native_file_system_manager_impl.cc b/content/browser/native_file_system/native_file_system_manager_impl.cc index 24313daa..f3aa7aed 100644 --- a/content/browser/native_file_system/native_file_system_manager_impl.cc +++ b/content/browser/native_file_system/native_file_system_manager_impl.cc
@@ -7,13 +7,13 @@ #include "base/files/file_path.h" #include "base/task/post_task.h" #include "content/browser/native_file_system/file_system_chooser.h" +#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h" #include "content/browser/native_file_system/native_file_system_directory_handle_impl.h" #include "content/browser/native_file_system/native_file_system_file_handle_impl.h" #include "content/browser/native_file_system/native_file_system_transfer_token_impl.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/content_browser_client.h" -#include "content/public/common/content_client.h" +#include "content/public/common/content_switches.h" #include "mojo/public/cpp/bindings/callback_helpers.h" #include "storage/browser/fileapi/file_system_context.h" #include "storage/browser/fileapi/file_system_operation_runner.h" @@ -24,14 +24,33 @@ #include "third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom.h" #include "url/origin.h" -using blink::mojom::NativeFileSystemError; - namespace content { +using blink::mojom::NativeFileSystemError; +using PermissionStatus = NativeFileSystemPermissionGrant::PermissionStatus; + +NativeFileSystemManagerImpl::SharedHandleState::SharedHandleState( + scoped_refptr<NativeFileSystemPermissionGrant> read_grant, + scoped_refptr<NativeFileSystemPermissionGrant> write_grant, + storage::IsolatedContext::ScopedFSHandle file_system) + : read_grant(std::move(read_grant)), + write_grant(std::move(write_grant)), + file_system(std::move(file_system)) { + DCHECK(this->read_grant); + DCHECK(this->write_grant); +} + +NativeFileSystemManagerImpl::SharedHandleState::SharedHandleState( + const SharedHandleState& other) = default; +NativeFileSystemManagerImpl::SharedHandleState::~SharedHandleState() = default; + NativeFileSystemManagerImpl::NativeFileSystemManagerImpl( scoped_refptr<storage::FileSystemContext> context, - scoped_refptr<ChromeBlobStorageContext> blob_context) - : context_(std::move(context)), blob_context_(std::move(blob_context)) { + scoped_refptr<ChromeBlobStorageContext> blob_context, + NativeFileSystemPermissionContext* permission_context) + : context_(std::move(context)), + blob_context_(std::move(blob_context)), + permission_context_(permission_context) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(context_); DCHECK(blob_context_); @@ -87,18 +106,17 @@ NativeFileSystemManagerImpl::CreateFileHandle( const BindingContext& binding_context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system) { + const SharedHandleState& handle_state) { DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK(url.is_valid()); DCHECK_EQ(url.mount_type() == storage::kFileSystemTypeIsolated, - file_system.is_valid()) + handle_state.file_system.is_valid()) << url.mount_type(); blink::mojom::NativeFileSystemFileHandlePtr result; - file_bindings_.AddBinding( - std::make_unique<NativeFileSystemFileHandleImpl>( - this, binding_context, url, std::move(file_system)), - mojo::MakeRequest(&result)); + file_bindings_.AddBinding(std::make_unique<NativeFileSystemFileHandleImpl>( + this, binding_context, url, handle_state), + mojo::MakeRequest(&result)); return result; } @@ -106,17 +124,17 @@ NativeFileSystemManagerImpl::CreateDirectoryHandle( const BindingContext& binding_context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system) { + const SharedHandleState& handle_state) { DCHECK_CURRENTLY_ON(BrowserThread::IO); DCHECK(url.is_valid()); DCHECK_EQ(url.mount_type() == storage::kFileSystemTypeIsolated, - file_system.is_valid()) + handle_state.file_system.is_valid()) << url.mount_type(); blink::mojom::NativeFileSystemDirectoryHandlePtr result; directory_bindings_.AddBinding( std::make_unique<NativeFileSystemDirectoryHandleImpl>( - this, binding_context, url, std::move(file_system)), + this, binding_context, url, handle_state), mojo::MakeRequest(&result)); return result; } @@ -128,9 +146,30 @@ DCHECK_CURRENTLY_ON(BrowserThread::IO); auto url = CreateFileSystemURLFromPath(binding_context.origin, file_path); + auto read_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + PermissionStatus::GRANTED); + scoped_refptr<NativeFileSystemPermissionGrant> write_grant; + if (permission_context_) { + write_grant = permission_context_->GetWritePermissionGrant( + binding_context.origin, file_path, /*is_directory=*/false); + } else { + // Auto-deny all write grants if no permisson context is available, unless + // Experimental Web Platform features are enabled. + // TODO(mek): Remove experimental web platform check when permission UI is + // implemented. + write_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableExperimentalWebPlatformFeatures) + ? PermissionStatus::GRANTED + : PermissionStatus::DENIED); + } + return blink::mojom::NativeFileSystemEntry::New( blink::mojom::NativeFileSystemHandle::NewFile( - CreateFileHandle(binding_context, url.url, std::move(url.file_system)) + CreateFileHandle( + binding_context, url.url, + SharedHandleState(std::move(read_grant), std::move(write_grant), + std::move(url.file_system))) .PassInterface()), url.base_name); } @@ -143,10 +182,30 @@ auto url = CreateFileSystemURLFromPath(binding_context.origin, directory_path); + auto read_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + PermissionStatus::GRANTED); + scoped_refptr<NativeFileSystemPermissionGrant> write_grant; + if (permission_context_) { + write_grant = permission_context_->GetWritePermissionGrant( + binding_context.origin, directory_path, /*is_directory=*/true); + } else { + // Auto-deny all write grants if no permisson context is available, unless + // Experimental Web Platform features are enabled. + // TODO(mek): Remove experimental web platform check when permission UI is + // implemented. + write_grant = base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableExperimentalWebPlatformFeatures) + ? PermissionStatus::GRANTED + : PermissionStatus::DENIED); + } + return blink::mojom::NativeFileSystemEntry::New( blink::mojom::NativeFileSystemHandle::NewDirectory( - CreateDirectoryHandle(binding_context, url.url, - std::move(url.file_system)) + CreateDirectoryHandle( + binding_context, url.url, + SharedHandleState(std::move(read_grant), std::move(write_grant), + std::move(url.file_system))) .PassInterface()), url.base_name); } @@ -154,14 +213,14 @@ void NativeFileSystemManagerImpl::CreateTransferToken( const NativeFileSystemFileHandleImpl& file, blink::mojom::NativeFileSystemTransferTokenRequest request) { - return CreateTransferTokenImpl(file.url(), file.file_system(), + return CreateTransferTokenImpl(file.url(), file.handle_state(), /*is_directory=*/false, std::move(request)); } void NativeFileSystemManagerImpl::CreateTransferToken( const NativeFileSystemDirectoryHandleImpl& directory, blink::mojom::NativeFileSystemTransferTokenRequest request) { - return CreateTransferTokenImpl(directory.url(), directory.file_system(), + return CreateTransferTokenImpl(directory.url(), directory.handle_state(), /*is_directory=*/true, std::move(request)); } @@ -198,10 +257,16 @@ return; } + auto permission_grant = + base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + PermissionStatus::GRANTED); + std::move(callback).Run( NativeFileSystemError::New(base::File::FILE_OK), - CreateDirectoryHandle(binding_context, context()->CrackURL(root), - /*file_system=*/{})); + CreateDirectoryHandle( + binding_context, context()->CrackURL(root), + SharedHandleState(permission_grant, permission_grant, + /*file_system=*/{}))); } void NativeFileSystemManagerImpl::DidChooseEntries( @@ -224,18 +289,20 @@ result_entries.push_back(CreateFileEntryFromPath(binding_context, entry)); } } + // TODO(mek): Auto-grant write permission if this was a file as a result of a + // save dialog. std::move(callback).Run(std::move(result), std::move(result_entries)); } void NativeFileSystemManagerImpl::CreateTransferTokenImpl( const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system, + const SharedHandleState& handle_state, bool is_directory, blink::mojom::NativeFileSystemTransferTokenRequest request) { DCHECK_CURRENTLY_ON(BrowserThread::IO); auto token_impl = std::make_unique<NativeFileSystemTransferTokenImpl>( - url, std::move(file_system), + url, handle_state, is_directory ? NativeFileSystemTransferTokenImpl::HandleType::kDirectory : NativeFileSystemTransferTokenImpl::HandleType::kFile); auto token = token_impl->token();
diff --git a/content/browser/native_file_system/native_file_system_manager_impl.h b/content/browser/native_file_system/native_file_system_manager_impl.h index d3e41e2..9ec1aed2f 100644 --- a/content/browser/native_file_system/native_file_system_manager_impl.h +++ b/content/browser/native_file_system/native_file_system_manager_impl.h
@@ -12,10 +12,12 @@ #include "content/browser/native_file_system/file_system_chooser.h" #include "content/common/content_export.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/native_file_system_permission_context.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding_set.h" #include "storage/browser/fileapi/file_system_url.h" #include "third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom.h" +#include "third_party/blink/public/mojom/permissions/permission_status.mojom.h" namespace storage { class FileSystemContext; @@ -43,7 +45,7 @@ BrowserThread::DeleteOnIOThread>, public blink::mojom::NativeFileSystemManager { public: - struct BindingContext { + struct CONTENT_EXPORT BindingContext { BindingContext(const url::Origin& origin, int process_id, int frame_id) : origin(origin), process_id(process_id), frame_id(frame_id) {} url::Origin origin; @@ -51,9 +53,33 @@ int frame_id; }; + // State that is shared between handles that are derived from each other. + // Handles that are created through ChooseEntries or GetSandboxedFileSystem + // get new values for these properties, while any handles derived from those + // (i.e. children of a directory) will inherit these properties from their + // parent. + struct CONTENT_EXPORT SharedHandleState { + SharedHandleState( + scoped_refptr<NativeFileSystemPermissionGrant> read_grant, + scoped_refptr<NativeFileSystemPermissionGrant> write_grant, + storage::IsolatedContext::ScopedFSHandle file_system); + SharedHandleState(const SharedHandleState& other); + ~SharedHandleState(); + + // Should never be null. These are the read and write permissions for this + // handle. + const scoped_refptr<NativeFileSystemPermissionGrant> read_grant; + const scoped_refptr<NativeFileSystemPermissionGrant> write_grant; + // Can be empty, if this handle is not backed by an isolated file system. + const storage::IsolatedContext::ScopedFSHandle file_system; + }; + + // The caller is responsible for ensuring that |permission_context| outlives + // this instance. NativeFileSystemManagerImpl( scoped_refptr<storage::FileSystemContext> context, - scoped_refptr<ChromeBlobStorageContext> blob_context); + scoped_refptr<ChromeBlobStorageContext> blob_context, + NativeFileSystemPermissionContext* permission_context); void BindRequest(const BindingContext& binding_context, blink::mojom::NativeFileSystemManagerRequest request); @@ -71,14 +97,14 @@ blink::mojom::NativeFileSystemFileHandlePtr CreateFileHandle( const BindingContext& binding_context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system); + const SharedHandleState& handle_state); // Creates a new NativeFileSystemDirectoryHandleImpl for a given url. Assumes // the passed in URL is valid and represents a directory. blink::mojom::NativeFileSystemDirectoryHandlePtr CreateDirectoryHandle( const BindingContext& context, const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system); + const SharedHandleState& handle_state); // Creates a new NativeFileSystemEntryPtr from the path to a file. Assumes the // passed in path is valid and represents a file. @@ -137,7 +163,7 @@ void CreateTransferTokenImpl( const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system, + const SharedHandleState& handle_state, bool is_directory, blink::mojom::NativeFileSystemTransferTokenRequest request); void TransferTokenConnectionErrorHandler(const base::UnguessableToken& token); @@ -158,6 +184,7 @@ const scoped_refptr<storage::FileSystemContext> context_; const scoped_refptr<ChromeBlobStorageContext> blob_context_; std::unique_ptr<storage::FileSystemOperationRunner> operation_runner_; + NativeFileSystemPermissionContext* const permission_context_; // All the mojo bindings for this NativeFileSystemManager itself. Keeps track // of associated origin and other state as well to not have to rely on the
diff --git a/content/browser/native_file_system/native_file_system_manager_impl_unittest.cc b/content/browser/native_file_system/native_file_system_manager_impl_unittest.cc new file mode 100644 index 0000000..ddf45d21 --- /dev/null +++ b/content/browser/native_file_system/native_file_system_manager_impl_unittest.cc
@@ -0,0 +1,152 @@ +// Copyright 2019 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. + +#include "content/browser/native_file_system/native_file_system_manager_impl.h" + +#include "base/files/scoped_temp_dir.h" +#include "base/test/bind_test_util.h" +#include "base/test/gmock_callback_support.h" +#include "base/test/scoped_feature_list.h" +#include "base/test/scoped_task_environment.h" +#include "content/browser/native_file_system/fixed_native_file_system_permission_grant.h" +#include "content/public/test/test_browser_thread_bundle.h" +#include "storage/browser/blob/blob_storage_context.h" +#include "storage/browser/test/test_file_system_context.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/features.h" + +namespace content { + +using base::test::RunOnceCallback; +using blink::mojom::PermissionStatus; +using storage::FileSystemURL; + +// Mock NativeFileSystemPermissionContext implementation. +class MockNativeFileSystemPermissionContext + : public NativeFileSystemPermissionContext { + public: + MOCK_METHOD3( + GetWritePermissionGrant, + scoped_refptr<NativeFileSystemPermissionGrant>(const url::Origin& origin, + const base::FilePath& path, + bool is_directory)); +}; + +class NativeFileSystemManagerImplTest : public testing::Test { + public: + NativeFileSystemManagerImplTest() + : scoped_task_environment_( + base::test::ScopedTaskEnvironment::MainThreadType::IO) { + scoped_feature_list_.InitAndEnableFeature( + blink::features::kNativeFileSystemAPI); + } + + void SetUp() override { + ASSERT_TRUE(dir_.CreateUniqueTempDir()); + ASSERT_TRUE(dir_.GetPath().IsAbsolute()); + file_system_context_ = CreateFileSystemContextForTesting( + /*quota_manager_proxy=*/nullptr, dir_.GetPath()); + + chrome_blob_context_ = base::MakeRefCounted<ChromeBlobStorageContext>(); + chrome_blob_context_->InitializeOnIOThread(base::FilePath(), nullptr); + + manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>( + file_system_context_, chrome_blob_context_, &permission_context_); + + manager_->BindRequest(kBindingContext, mojo::MakeRequest(&manager_ptr_)); + } + + template <typename HandleType> + PermissionStatus GetPermissionStatusSync(bool writable, HandleType* handle) { + PermissionStatus result; + base::RunLoop loop; + handle->GetPermissionStatus( + writable, base::BindLambdaForTesting([&](PermissionStatus status) { + result = status; + loop.Quit(); + })); + loop.Run(); + return result; + } + + protected: + const url::Origin kTestOrigin = + url::Origin::Create(GURL("https://example.com")); + const int kProcessId = 1; + const int kFrameId = 2; + const NativeFileSystemManagerImpl::BindingContext kBindingContext = { + kTestOrigin, kProcessId, kFrameId}; + + base::test::ScopedFeatureList scoped_feature_list_; + TestBrowserThreadBundle scoped_task_environment_; + + base::ScopedTempDir dir_; + scoped_refptr<storage::FileSystemContext> file_system_context_; + scoped_refptr<ChromeBlobStorageContext> chrome_blob_context_; + + testing::StrictMock<MockNativeFileSystemPermissionContext> + permission_context_; + scoped_refptr<NativeFileSystemManagerImpl> manager_; + blink::mojom::NativeFileSystemManagerPtr manager_ptr_; + + scoped_refptr<FixedNativeFileSystemPermissionGrant> ask_grant_ = + base::MakeRefCounted<FixedNativeFileSystemPermissionGrant>( + FixedNativeFileSystemPermissionGrant::PermissionStatus::ASK); +}; + +TEST_F(NativeFileSystemManagerImplTest, GetSandboxedFileSystem_Permissions) { + blink::mojom::NativeFileSystemDirectoryHandlePtr root; + base::RunLoop loop; + manager_ptr_->GetSandboxedFileSystem(base::BindLambdaForTesting( + [&](blink::mojom::NativeFileSystemErrorPtr result, + blink::mojom::NativeFileSystemDirectoryHandlePtr handle) { + EXPECT_EQ(base::File::FILE_OK, result->error_code); + root = std::move(handle); + loop.Quit(); + })); + loop.Run(); + ASSERT_TRUE(root); + EXPECT_EQ(PermissionStatus::GRANTED, + GetPermissionStatusSync(/*writable=*/false, root.get())); + EXPECT_EQ(PermissionStatus::GRANTED, + GetPermissionStatusSync(/*writable=*/true, root.get())); +} + +TEST_F(NativeFileSystemManagerImplTest, CreateFileEntryFromPath_Permissions) { + const base::FilePath kTestPath(dir_.GetPath().AppendASCII("foo")); + + EXPECT_CALL(permission_context_, + GetWritePermissionGrant(kTestOrigin, kTestPath, false)) + .WillOnce(testing::Return(ask_grant_)); + + blink::mojom::NativeFileSystemEntryPtr entry = + manager_->CreateFileEntryFromPath(kBindingContext, kTestPath); + blink::mojom::NativeFileSystemFileHandlePtr handle( + std::move(entry->entry_handle->get_file())); + + EXPECT_EQ(PermissionStatus::GRANTED, + GetPermissionStatusSync(/*writable=*/false, handle.get())); + EXPECT_EQ(PermissionStatus::ASK, + GetPermissionStatusSync(/*writable=*/true, handle.get())); +} + +TEST_F(NativeFileSystemManagerImplTest, + CreateDirectoryEntryFromPath_Permissions) { + const base::FilePath kTestPath(dir_.GetPath().AppendASCII("foo")); + + EXPECT_CALL(permission_context_, + GetWritePermissionGrant(kTestOrigin, kTestPath, true)) + .WillOnce(testing::Return(ask_grant_)); + + blink::mojom::NativeFileSystemEntryPtr entry = + manager_->CreateDirectoryEntryFromPath(kBindingContext, kTestPath); + blink::mojom::NativeFileSystemDirectoryHandlePtr handle( + std::move(entry->entry_handle->get_directory())); + EXPECT_EQ(PermissionStatus::GRANTED, + GetPermissionStatusSync(/*writable=*/false, handle.get())); + EXPECT_EQ(PermissionStatus::ASK, + GetPermissionStatusSync(/*writable=*/true, handle.get())); +} + +} // namespace content
diff --git a/content/browser/native_file_system/native_file_system_transfer_token_impl.cc b/content/browser/native_file_system/native_file_system_transfer_token_impl.cc index 1fe718c..8dd98bb 100644 --- a/content/browser/native_file_system/native_file_system_transfer_token_impl.cc +++ b/content/browser/native_file_system/native_file_system_transfer_token_impl.cc
@@ -8,14 +8,14 @@ NativeFileSystemTransferTokenImpl::NativeFileSystemTransferTokenImpl( const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system, + const SharedHandleState& handle_state, HandleType type) : token_(base::UnguessableToken::Create()), url_(url), - file_system_(std::move(file_system)), + handle_state_(handle_state), type_(type) { DCHECK_EQ(url_.mount_type() == storage::kFileSystemTypeIsolated, - file_system_.is_valid()) + handle_state_.file_system.is_valid()) << url_.mount_type(); }
diff --git a/content/browser/native_file_system/native_file_system_transfer_token_impl.h b/content/browser/native_file_system/native_file_system_transfer_token_impl.h index 473d60f..0c1e3a3 100644 --- a/content/browser/native_file_system/native_file_system_transfer_token_impl.h +++ b/content/browser/native_file_system/native_file_system_transfer_token_impl.h
@@ -5,6 +5,7 @@ #ifndef CONTENT_BROWSER_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_TRANSFER_TOKEN_IMPL_H_ #define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_NATIVE_FILE_SYSTEM_TRANSFER_TOKEN_IMPL_H_ +#include "content/browser/native_file_system/native_file_system_manager_impl.h" #include "storage/browser/fileapi/file_system_url.h" #include "storage/browser/fileapi/isolated_context.h" #include "third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom.h" @@ -19,12 +20,13 @@ class NativeFileSystemTransferTokenImpl : public blink::mojom::NativeFileSystemTransferToken { public: + using SharedHandleState = NativeFileSystemManagerImpl::SharedHandleState; + enum class HandleType { kFile, kDirectory }; - NativeFileSystemTransferTokenImpl( - const storage::FileSystemURL& url, - storage::IsolatedContext::ScopedFSHandle file_system, - HandleType type); + NativeFileSystemTransferTokenImpl(const storage::FileSystemURL& url, + const SharedHandleState& handle_state, + HandleType type); const base::UnguessableToken& token() const { return token_; } const storage::FileSystemURL& url() const { return url_; } @@ -36,7 +38,7 @@ private: const base::UnguessableToken token_; const storage::FileSystemURL url_; - const storage::IsolatedContext::ScopedFSHandle file_system_; + const SharedHandleState handle_state_; const HandleType type_; DISALLOW_COPY_AND_ASSIGN(NativeFileSystemTransferTokenImpl);
diff --git a/content/browser/network_service_restart_browsertest.cc b/content/browser/network_service_restart_browsertest.cc index 2aca979f..59ba0a17 100644 --- a/content/browser/network_service_restart_browsertest.cc +++ b/content/browser/network_service_restart_browsertest.cc
@@ -5,9 +5,11 @@ #include "base/bind.h" #include "base/callback.h" #include "base/run_loop.h" +#include "base/synchronization/lock.h" #include "base/test/bind_test_util.h" #include "base/test/scoped_feature_list.h" #include "base/test/test_timeouts.h" +#include "base/thread_annotations.h" #include "base/threading/thread_restrictions.h" #include "build/build_config.h" #include "content/browser/frame_host/render_frame_host_impl.h" @@ -289,15 +291,18 @@ // Called by |embedded_test_server()|. void MonitorRequest(const net::test_server::HttpRequest& request) { + base::AutoLock lock(last_request_lock_); last_request_relative_url_ = request.relative_url; } std::string last_request_relative_url() const { + base::AutoLock lock(last_request_lock_); return last_request_relative_url_; } private: - std::string last_request_relative_url_; + mutable base::Lock last_request_lock_; + std::string last_request_relative_url_ GUARDED_BY(last_request_lock_); base::test::ScopedFeatureList scoped_feature_list_; DISALLOW_COPY_AND_ASSIGN(NetworkServiceRestartBrowserTest);
diff --git a/content/browser/renderer_host/clipboard_host_impl.cc b/content/browser/renderer_host/clipboard_host_impl.cc index a000b88..610592d 100644 --- a/content/browser/renderer_host/clipboard_host_impl.cc +++ b/content/browser/renderer_host/clipboard_host_impl.cc
@@ -28,7 +28,7 @@ : binding_(this, std::move(request)), clipboard_(ui::Clipboard::GetForCurrentThread()), clipboard_writer_( - new ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)) {} + new ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)) {} void ClipboardHostImpl::Create(blink::mojom::ClipboardHostRequest request) { // Clipboard implementations do interesting things, like run nested message @@ -173,7 +173,7 @@ void ClipboardHostImpl::CommitWrite() { clipboard_writer_.reset( - new ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE)); + new ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste)); } } // namespace content
diff --git a/content/browser/renderer_host/clipboard_host_impl_unittest.cc b/content/browser/renderer_host/clipboard_host_impl_unittest.cc index 62ee689..b50470e 100644 --- a/content/browser/renderer_host/clipboard_host_impl_unittest.cc +++ b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
@@ -49,20 +49,20 @@ bitmap.eraseARGB(255, 0, 255, 0); mojo_clipboard()->WriteImage(bitmap); uint64_t sequence_number = - system_clipboard()->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE); + system_clipboard()->GetSequenceNumber(ui::ClipboardType::kCopyPaste); mojo_clipboard()->CommitWrite(); base::RunLoop().RunUntilIdle(); EXPECT_NE(sequence_number, system_clipboard()->GetSequenceNumber( - ui::CLIPBOARD_TYPE_COPY_PASTE)); + ui::ClipboardType::kCopyPaste)); EXPECT_FALSE(system_clipboard()->IsFormatAvailable( ui::ClipboardFormatType::GetPlainTextType(), - ui::CLIPBOARD_TYPE_COPY_PASTE)); + ui::ClipboardType::kCopyPaste)); EXPECT_TRUE(system_clipboard()->IsFormatAvailable( - ui::ClipboardFormatType::GetBitmapType(), ui::CLIPBOARD_TYPE_COPY_PASTE)); + ui::ClipboardFormatType::GetBitmapType(), ui::ClipboardType::kCopyPaste)); SkBitmap actual = - system_clipboard()->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE); + system_clipboard()->ReadImage(ui::ClipboardType::kCopyPaste); EXPECT_TRUE(gfx::BitmapsAreEqual(bitmap, actual)); } @@ -75,7 +75,7 @@ // ReadText() is a sync method, so normally, one wouldn't call this method // directly. These are not normal times though... - mojo_clipboard()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, base::DoNothing()); + mojo_clipboard()->ReadText(ui::ClipboardType::kCopyPaste, base::DoNothing()); // Now purposely write a raw message which (hopefully) won't deserialize to // anything valid. The receiver side should still be in the midst of
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 be65d1a..84dfe74 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
@@ -439,7 +439,7 @@ case IDS_APP_PASTE: { base::string16 result; ui::Clipboard::GetForCurrentThread()->ReadText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + ui::ClipboardType::kCopyPaste, &result); return editable && !result.empty(); } default:
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc b/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc index 420fd4f..dbd4c35 100644 --- a/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc +++ b/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc
@@ -147,7 +147,7 @@ case IDS_APP_PASTE: { base::string16 result; ui::Clipboard::GetForCurrentThread()->ReadText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + ui::ClipboardType::kCopyPaste, &result); return editable && !result.empty(); } default:
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index b50b565..568f32799 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -867,6 +867,26 @@ } } + // Check whether |host| is associated with at least one URL for which + // SiteInstance does not assign site URLs. This is used to disqualify |host| + // from being reused if it has pending navigations to such URLs. + bool ContainsNonReusableSiteForHost(RenderProcessHost* host) { + for (auto iter : map_) { + // If SiteInstance doesn't assign a site URL for the current entry, check + // whether |host| is on the list of processes the entry is associated + // with. + // + // TODO(alexmos): ShouldAssignSiteForURL() expects a full URL, whereas we + // only have a site URL here. For now, this mismatch is ok since + // ShouldAssignSiteForURL() only cares about schemes in practice, but + // this should be cleaned up. + if (!SiteInstanceImpl::ShouldAssignSiteForURL(iter.first) && + base::Contains(iter.second, host->GetID())) + return true; + } + return false; + } + private: void RenderProcessHostDestroyed(RenderProcessHost* host) override { #ifndef NDEBUG @@ -3699,7 +3719,30 @@ } } - return GetContentClient()->browser()->IsSuitableHost(host, site_url); + if (!GetContentClient()->browser()->IsSuitableHost(host, site_url)) + return false; + + // Check whether this process has a pending navigation to a URL for + // which SiteInstance does not assign site URLs. If this is the case, it is + // not safe to reuse this process for a navigation which itself assigns site + // URLs, since in that case the latter navigation could lock this process + // before the commit for the siteless URL arrives, resulting in a renderer + // kill. See https://crbug.com/970046. + if (SiteInstanceImpl::ShouldAssignSiteForURL(site_url)) { + SiteProcessCountTracker* pending_tracker = + static_cast<SiteProcessCountTracker*>( + browser_context->GetUserData(kPendingSiteProcessCountTrackerKey)); + bool has_disqualifying_pending_navigation = + pending_tracker && + pending_tracker->ContainsNonReusableSiteForHost(host); + UMA_HISTOGRAM_BOOLEAN( + "SiteIsolation.PendingSitelessNavigationDisallowsProcessReuse", + has_disqualifying_pending_navigation); + if (has_disqualifying_pending_navigation) + return false; + } + + return true; } // static
diff --git a/content/browser/renderer_host/render_view_host_delegate.cc b/content/browser/renderer_host/render_view_host_delegate.cc index 89feeaf..f8c11d0 100644 --- a/content/browser/renderer_host/render_view_host_delegate.cc +++ b/content/browser/renderer_host/render_view_host_delegate.cc
@@ -61,6 +61,10 @@ return false; } +bool RenderViewHostDelegate::IsSpatialNavigationDisabled() const { + return false; +} + RenderFrameHost* RenderViewHostDelegate::GetPendingMainFrame() { return nullptr; }
diff --git a/content/browser/renderer_host/render_view_host_delegate.h b/content/browser/renderer_host/render_view_host_delegate.h index 3d15672..7ecbec7 100644 --- a/content/browser/renderer_host/render_view_host_delegate.h +++ b/content/browser/renderer_host/render_view_host_delegate.h
@@ -184,6 +184,9 @@ // Whether the WebContents as a persistent video. virtual bool HasPersistentVideo() const; + // Whether spatial navigation is permitted. + virtual bool IsSpatialNavigationDisabled() const; + // Returns the RenderFrameHost for a pending or speculative main frame // navigation for the page. Returns nullptr if there is no such navigation. virtual RenderFrameHost* GetPendingMainFrame();
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index d54af22..f717ea4 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -556,6 +556,9 @@ prefs.spatial_navigation_enabled = command_line.HasSwitch( switches::kEnableSpatialNavigation); + if (delegate_ && delegate_->IsSpatialNavigationDisabled()) + prefs.spatial_navigation_enabled = false; + prefs.disable_reading_from_canvas = command_line.HasSwitch( switches::kDisableReadingFromCanvas);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc index bb2de3d..ff75742 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -2540,8 +2540,8 @@ const TextInputManager::TextSelection* selection = GetTextInputManager()->GetTextSelection(focused_view); if (selection->selected_text().length()) { - // Set the CLIPBOARD_TYPE_SELECTION to the ui::Clipboard. - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_SELECTION); + // Set the ClipboardType::kSelection to the ui::Clipboard. + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kSelection); clipboard_writer.WriteText(selection->selected_text()); } #endif // defined(USE_X11)
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc index 0023fe4..781c2ee4 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -6398,7 +6398,7 @@ EXPECT_TRUE(!!clipboard); std::vector<std::string> texts = {"text0", "text1", "text2", "text3"}; for (auto index : active_view_sequence_) { - clipboard->Clear(ui::CLIPBOARD_TYPE_SELECTION); + clipboard->Clear(ui::ClipboardType::kSelection); // Focus the corresponding widget. render_widget_host_delegate()->set_focused_widget( @@ -6411,7 +6411,7 @@ // Retrieve the selected text from clipboard and verify it is as expected. base::string16 result_text; - clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); + clipboard->ReadText(ui::ClipboardType::kSelection, &result_text); EXPECT_EQ(expected_text, result_text); } }
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc index f346b89..600799b 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc
@@ -766,6 +766,7 @@ if (allow_default_site_url && !base::FeatureList::IsEnabled( features::kProcessSharingWithStrictSiteInstances) && + SiteInstanceImpl::ShouldAssignSiteForURL(url) && !DoesSiteURLRequireDedicatedProcess(isolation_context, site_url)) { return GetDefaultSiteURL(); }
diff --git a/content/browser/sms/sms_manager_impl.cc b/content/browser/sms/sms_manager_impl.cc deleted file mode 100644 index d47ea1ec..0000000 --- a/content/browser/sms/sms_manager_impl.cc +++ /dev/null
@@ -1,73 +0,0 @@ -// Copyright 2019 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. - -#include <iterator> -#include <queue> -#include <utility> - -#include "content/browser/sms/sms_manager_impl.h" - -#include "base/bind.h" -#include "base/callback_helpers.h" - -namespace content { - -SmsManagerImpl::SmsManagerImpl(SmsProvider* sms_provider, - const url::Origin& origin) - : sms_provider_(sms_provider), origin_(origin) {} - -SmsManagerImpl::~SmsManagerImpl() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -} - -void SmsManagerImpl::GetNextMessage(base::TimeDelta timeout, - GetNextMessageCallback callback) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - Push(std::move(callback)); -} - -void SmsManagerImpl::Push(GetNextMessageCallback callback) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (callbacks_.empty()) { - sms_provider_->AddObserver(this); - } - - callbacks_.push(std::move(callback)); - sms_provider_->Retrieve(); -} - -blink::mojom::SmsManager::GetNextMessageCallback SmsManagerImpl::Pop() { - DCHECK(!callbacks_.empty()) << "Unexpected SMS received"; - - GetNextMessageCallback callback = std::move(callbacks_.front()); - callbacks_.pop(); - - if (callbacks_.empty()) { - sms_provider_->RemoveObserver(this); - } - - return callback; -} - -bool SmsManagerImpl::OnReceive(const url::Origin& origin, - const std::string& sms) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (origin_ != origin) { - return false; - } - - Pop().Run( - blink::mojom::SmsMessage::New(blink::mojom::SmsStatus::kSuccess, sms)); - - return true; -} - -void SmsManagerImpl::OnTimeout() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - - Pop().Run(blink::mojom::SmsMessage::New(blink::mojom::SmsStatus::kTimeout, - base::nullopt)); -} - -} // namespace content
diff --git a/content/browser/sms/sms_manager_impl.h b/content/browser/sms/sms_manager_impl.h deleted file mode 100644 index d3bafa6..0000000 --- a/content/browser/sms/sms_manager_impl.h +++ /dev/null
@@ -1,54 +0,0 @@ -// Copyright 2019 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. - -#ifndef CONTENT_BROWSER_SMS_SMS_MANAGER_IMPL_H_ -#define CONTENT_BROWSER_SMS_SMS_MANAGER_IMPL_H_ - -#include <memory> -#include <queue> - -#include "base/callback_forward.h" -#include "base/macros.h" -#include "base/memory/weak_ptr.h" -#include "base/sequence_checker.h" -#include "base/time/time.h" -#include "content/browser/sms/sms_provider.h" -#include "content/common/content_export.h" -#include "mojo/public/cpp/bindings/binding_set.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h" -#include "url/origin.h" - -namespace content { - -class CONTENT_EXPORT SmsManagerImpl : public blink::mojom::SmsManager, - public content::SmsProvider::Observer { - public: - SmsManagerImpl(SmsProvider*, const url::Origin&); - ~SmsManagerImpl() override; - - // content::SmsProvider::Observer - bool OnReceive(const url::Origin&, const std::string& message) override; - void OnTimeout() override; - - // blink::mojom::SmsManager - void GetNextMessage(base::TimeDelta timeout, GetNextMessageCallback) override; - - private: - // Manages the queue of callbacks. - void Push(GetNextMessageCallback); - blink::mojom::SmsManager::GetNextMessageCallback Pop(); - - // |sms_provider_| is safe because all instances of SmsManagerImpl are owned - // by SmsServiceImpl through a StrongBindingSet. - SmsProvider* sms_provider_; - const url::Origin origin_; - std::queue<GetNextMessageCallback> callbacks_; - - SEQUENCE_CHECKER(sequence_checker_); - DISALLOW_COPY_AND_ASSIGN(SmsManagerImpl); -}; - -} // namespace content - -#endif // CONTENT_BROWSER_SMS_SMS_MANAGER_IMPL_H_
diff --git a/content/browser/sms/sms_receiver_impl.cc b/content/browser/sms/sms_receiver_impl.cc new file mode 100644 index 0000000..56b7f1d --- /dev/null +++ b/content/browser/sms/sms_receiver_impl.cc
@@ -0,0 +1,68 @@ +// Copyright 2019 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. + +#include <iterator> +#include <queue> +#include <utility> + +#include "content/browser/sms/sms_receiver_impl.h" + +#include "base/bind.h" +#include "base/callback_helpers.h" + +namespace content { + +SmsReceiverImpl::SmsReceiverImpl(SmsProvider* sms_provider, + const url::Origin& origin) + : sms_provider_(sms_provider), origin_(origin) {} + +SmsReceiverImpl::~SmsReceiverImpl() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +} + +void SmsReceiverImpl::Receive(base::TimeDelta timeout, + ReceiveCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + Push(std::move(callback)); +} + +void SmsReceiverImpl::Push(ReceiveCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (callbacks_.empty()) + sms_provider_->AddObserver(this); + + callbacks_.push(std::move(callback)); + sms_provider_->Retrieve(); +} + +blink::mojom::SmsReceiver::ReceiveCallback SmsReceiverImpl::Pop() { + DCHECK(!callbacks_.empty()) << "Unexpected SMS received"; + + ReceiveCallback callback = std::move(callbacks_.front()); + callbacks_.pop(); + + if (callbacks_.empty()) + sms_provider_->RemoveObserver(this); + + return callback; +} + +bool SmsReceiverImpl::OnReceive(const url::Origin& origin, + const std::string& sms) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (origin_ != origin) + return false; + + Pop().Run(blink::mojom::SmsStatus::kSuccess, sms); + + return true; +} + +void SmsReceiverImpl::OnTimeout() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + Pop().Run(blink::mojom::SmsStatus::kTimeout, base::nullopt); +} + +} // namespace content
diff --git a/content/browser/sms/sms_receiver_impl.h b/content/browser/sms/sms_receiver_impl.h new file mode 100644 index 0000000..cf0298c8 --- /dev/null +++ b/content/browser/sms/sms_receiver_impl.h
@@ -0,0 +1,52 @@ +// Copyright 2019 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. + +#ifndef CONTENT_BROWSER_SMS_SMS_RECEIVER_IMPL_H_ +#define CONTENT_BROWSER_SMS_SMS_RECEIVER_IMPL_H_ + +#include <memory> +#include <queue> + +#include "base/callback_forward.h" +#include "base/macros.h" +#include "base/sequence_checker.h" +#include "base/time/time.h" +#include "content/browser/sms/sms_provider.h" +#include "content/common/content_export.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h" +#include "url/origin.h" + +namespace content { + +class CONTENT_EXPORT SmsReceiverImpl : public blink::mojom::SmsReceiver, + public content::SmsProvider::Observer { + public: + SmsReceiverImpl(SmsProvider*, const url::Origin&); + ~SmsReceiverImpl() override; + + // content::SmsProvider::Observer: + bool OnReceive(const url::Origin&, const std::string& message) override; + void OnTimeout() override; + + // blink::mojom::SmsReceiver: + void Receive(base::TimeDelta timeout, ReceiveCallback) override; + + private: + // Manages the queue of callbacks. + void Push(ReceiveCallback); + ReceiveCallback Pop(); + + // |sms_provider_| is safe because all instances of SmsReceiverImpl are owned + // by SmsServiceImpl through a StrongBindingSet. + SmsProvider* sms_provider_; + const url::Origin origin_; + std::queue<ReceiveCallback> callbacks_; + + SEQUENCE_CHECKER(sequence_checker_); + DISALLOW_COPY_AND_ASSIGN(SmsReceiverImpl); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_SMS_SMS_RECEIVER_IMPL_H_
diff --git a/content/browser/sms/sms_service_impl.cc b/content/browser/sms/sms_service_impl.cc index f98021b3..fe84d90d 100644 --- a/content/browser/sms/sms_service_impl.cc +++ b/content/browser/sms/sms_service_impl.cc
@@ -8,7 +8,7 @@ #include "base/bind.h" #include "base/callback_helpers.h" -#include "content/browser/sms/sms_manager_impl.h" +#include "content/browser/sms/sms_receiver_impl.h" namespace content { @@ -23,12 +23,12 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } -void SmsServiceImpl::Bind(blink::mojom::SmsManagerRequest request, +void SmsServiceImpl::Bind(blink::mojom::SmsReceiverRequest request, const url::Origin& origin) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); bindings_.AddBinding( - std::make_unique<SmsManagerImpl>(sms_provider_.get(), origin), + std::make_unique<SmsReceiverImpl>(sms_provider_.get(), origin), std::move(request)); }
diff --git a/content/browser/sms/sms_service_impl.h b/content/browser/sms/sms_service_impl.h index 571f9ed..caeee50 100644 --- a/content/browser/sms/sms_service_impl.h +++ b/content/browser/sms/sms_service_impl.h
@@ -11,12 +11,11 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" -#include "content/browser/sms/sms_manager_impl.h" #include "content/browser/sms/sms_provider.h" #include "content/common/content_export.h" #include "content/public/browser/sms_service.h" #include "mojo/public/cpp/bindings/strong_binding_set.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h" namespace url { class Origin; @@ -32,8 +31,8 @@ SmsServiceImpl(); ~SmsServiceImpl() override; - // content::SmsService - void Bind(blink::mojom::SmsManagerRequest, const url::Origin&) override; + // content::SmsService: + void Bind(blink::mojom::SmsReceiverRequest, const url::Origin&) override; // Testing helpers. void SetSmsProviderForTest(std::unique_ptr<SmsProvider>); @@ -42,7 +41,7 @@ std::unique_ptr<SmsProvider> sms_provider_; // Registered clients. - mojo::StrongBindingSet<blink::mojom::SmsManager> bindings_; + mojo::StrongBindingSet<blink::mojom::SmsReceiver> bindings_; SEQUENCE_CHECKER(sequence_checker_); DISALLOW_COPY_AND_ASSIGN(SmsServiceImpl);
diff --git a/content/browser/sms/sms_service_impl_unittest.cc b/content/browser/sms/sms_service_impl_unittest.cc index 154218a..abcff269 100644 --- a/content/browser/sms/sms_service_impl_unittest.cc +++ b/content/browser/sms/sms_service_impl_unittest.cc
@@ -25,9 +25,9 @@ #include "services/service_manager/public/cpp/connector.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom.h" -using blink::mojom::SmsManagerPtr; +using blink::mojom::SmsReceiverPtr; using ::testing::_; using ::testing::Invoke; using ::testing::NiceMock; @@ -65,7 +65,7 @@ impl->SetSmsProviderForTest(base::WrapUnique(mock)); - blink::mojom::SmsManagerPtr service_ptr; + blink::mojom::SmsReceiverPtr service_ptr; GURL url("http://google.com"); impl->Bind(mojo::MakeRequest(&service_ptr), url::Origin::Create(url)); base::RunLoop loop; @@ -74,11 +74,12 @@ mock->NotifyReceive(url::Origin::Create(url), "hi"); })); - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - EXPECT_EQ("hi", sms->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms->status); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + EXPECT_EQ("hi", sms.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, status); loop.Quit(); })); @@ -103,17 +104,18 @@ mock->NotifyReceive(url::Origin::Create(url), "second"); })); - blink::mojom::SmsManagerPtr service_ptr; + blink::mojom::SmsReceiverPtr service_ptr; impl->Bind(mojo::MakeRequest(&service_ptr), url::Origin::Create(url)); { base::RunLoop loop; - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - EXPECT_EQ("first", sms->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms->status); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + EXPECT_EQ("first", sms.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, status); loop.Quit(); })); @@ -123,11 +125,12 @@ { base::RunLoop loop; - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - EXPECT_EQ("second", sms->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms->status); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + EXPECT_EQ("second", sms.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, status); loop.Quit(); })); @@ -141,12 +144,13 @@ impl->SetSmsProviderForTest(base::WrapUnique(mock)); - blink::mojom::SmsManagerPtr service_ptr; + blink::mojom::SmsReceiverPtr service_ptr; GURL url("http://a.com"); url::Origin origin = url::Origin::Create(url); impl->Bind(mojo::MakeRequest(&service_ptr), origin); - blink::mojom::SmsMessagePtr response; + blink::mojom::SmsStatus sms_status; + base::Optional<std::string> response; base::RunLoop listen_loop, sms_loop; @@ -154,16 +158,18 @@ listen_loop.Quit(); })); - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - response = std::move(sms); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + sms_status = status; + response = sms; sms_loop.Quit(); })); listen_loop.Run(); - // Delivers an SMS from an unrelated origin first and expect the manager to + // Delivers an SMS from an unrelated origin first and expect the receiver to // ignore it. GURL another_url("http://b.com"); mock->NotifyReceive(url::Origin::Create(another_url), "wrong"); @@ -172,8 +178,8 @@ sms_loop.Run(); - EXPECT_EQ("right", response->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response->status); + EXPECT_EQ("right", response.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status); } TEST_F(SmsServiceImplTest, ExpectOneReceiveTwo) { @@ -182,12 +188,13 @@ impl->SetSmsProviderForTest(base::WrapUnique(mock)); - blink::mojom::SmsManagerPtr service_ptr; + blink::mojom::SmsReceiverPtr service_ptr; GURL url("http://a.com"); url::Origin origin = url::Origin::Create(url); impl->Bind(mojo::MakeRequest(&service_ptr), origin); - blink::mojom::SmsMessagePtr response; + blink::mojom::SmsStatus sms_status; + base::Optional<std::string> response; base::RunLoop listen_loop, sms_loop; @@ -195,10 +202,12 @@ listen_loop.Quit(); })); - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - response = std::move(sms); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + sms_status = status; + response = sms; sms_loop.Quit(); })); @@ -211,8 +220,8 @@ sms_loop.Run(); - EXPECT_EQ("first", response->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response->status); + EXPECT_EQ("first", response.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status); } TEST_F(SmsServiceImplTest, ExpectTwoReceiveTwoConcurrently) { @@ -221,33 +230,39 @@ impl->SetSmsProviderForTest(base::WrapUnique(mock)); - blink::mojom::SmsManagerPtr service_ptr; + blink::mojom::SmsReceiverPtr service_ptr; GURL url("http://a.com"); url::Origin origin = url::Origin::Create(url); impl->Bind(mojo::MakeRequest(&service_ptr), origin); - blink::mojom::SmsMessagePtr response1; - blink::mojom::SmsMessagePtr response2; + blink::mojom::SmsStatus sms_status1; + base::Optional<std::string> response1; + blink::mojom::SmsStatus sms_status2; + base::Optional<std::string> response2; base::RunLoop listen_loop, sms1_loop, sms2_loop; - // Expects two GetNextMessage() calls to be made before any of them gets + // Expects two Receive() calls to be made before any of them gets // an SMS to resolve them. EXPECT_CALL(*mock, Retrieve()) .WillOnce(testing::Return()) .WillOnce(Invoke([&listen_loop]() { listen_loop.Quit(); })); - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - response1 = std::move(sms); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + sms_status1 = status; + response1 = sms; sms1_loop.Quit(); })); - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - response2 = std::move(sms); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + sms_status2 = status; + response2 = sms; sms2_loop.Quit(); })); @@ -259,8 +274,8 @@ sms1_loop.Run(); - EXPECT_EQ("first", response1->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response1->status); + EXPECT_EQ("first", response1.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status1); // Delivers the second SMS. @@ -268,8 +283,8 @@ sms2_loop.Run(); - EXPECT_EQ("second", response2->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response2->status); + EXPECT_EQ("second", response2.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status2); } TEST_F(SmsServiceImplTest, Timeout) { @@ -278,7 +293,7 @@ impl->SetSmsProviderForTest(base::WrapUnique(mock)); - blink::mojom::SmsManagerPtr service_ptr; + blink::mojom::SmsReceiverPtr service_ptr; GURL url("http://a.com"); impl->Bind(mojo::MakeRequest(&service_ptr), url::Origin::Create(url)); @@ -288,10 +303,11 @@ mock->NotifyTimeout(); })); - service_ptr->GetNextMessage( + service_ptr->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, sms->status); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, status); loop.Quit(); })); @@ -304,16 +320,18 @@ impl->SetSmsProviderForTest(base::WrapUnique(mock)); - blink::mojom::SmsManagerPtr service_ptr1; + blink::mojom::SmsReceiverPtr service_ptr1; GURL url1("http://a.com"); impl->Bind(mojo::MakeRequest(&service_ptr1), url::Origin::Create(url1)); - blink::mojom::SmsManagerPtr service_ptr2; + blink::mojom::SmsReceiverPtr service_ptr2; GURL url2("http://b.com"); impl->Bind(mojo::MakeRequest(&service_ptr2), url::Origin::Create(url2)); - blink::mojom::SmsMessagePtr response1; - blink::mojom::SmsMessagePtr response2; + blink::mojom::SmsStatus sms_status1; + base::Optional<std::string> response1; + blink::mojom::SmsStatus sms_status2; + base::Optional<std::string> response2; base::RunLoop listen, sms_loop1, sms_loop2; @@ -321,17 +339,21 @@ .WillOnce(testing::Return()) .WillOnce(Invoke([&listen]() { listen.Quit(); })); - service_ptr1->GetNextMessage( + service_ptr1->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - response1 = std::move(sms); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + sms_status1 = status; + response1 = sms; sms_loop1.Quit(); })); - service_ptr2->GetNextMessage( + service_ptr2->Receive( base::TimeDelta::FromSeconds(10), - base::BindLambdaForTesting([&](blink::mojom::SmsMessagePtr sms) { - response2 = std::move(sms); + base::BindLambdaForTesting([&](blink::mojom::SmsStatus status, + const base::Optional<std::string>& sms) { + sms_status2 = status; + response2 = sms; sms_loop2.Quit(); })); @@ -343,7 +365,7 @@ sms_loop1.Run(); - EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, response1->status); + EXPECT_EQ(blink::mojom::SmsStatus::kTimeout, sms_status1); // Delivers the second SMS. @@ -351,8 +373,8 @@ sms_loop2.Run(); - EXPECT_EQ("second", response2->content); - EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, response2->status); + EXPECT_EQ("second", response2.value()); + EXPECT_EQ(blink::mojom::SmsStatus::kSuccess, sms_status2); } } // namespace content
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc index 6f533db1..fa2bc37 100644 --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc
@@ -813,7 +813,8 @@ partition->native_file_system_manager_ = base::MakeRefCounted<NativeFileSystemManagerImpl>( - partition->filesystem_context_, blob_context); + partition->filesystem_context_, blob_context, + context->GetNativeFileSystemPermissionContext()); GeneratedCodeCacheSettings settings = GetContentClient()->browser()->GetGeneratedCodeCacheSettings(context);
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc index f56aafc..7d469fd 100644 --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc
@@ -688,6 +688,13 @@ overscroll_refresh_handler)); } +void WebContentsAndroid::SetSpatialNavigationDisabled( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& obj, + bool disabled) { + web_contents_->SetSpatialNavigationDisabled(disabled); +} + void WebContentsAndroid::WriteContentBitmapToDisk( JNIEnv* env, const JavaParamRef<jobject>& obj,
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h index 594fe7e..e8ee623 100644 --- a/content/browser/web_contents/web_contents_android.h +++ b/content/browser/web_contents/web_contents_android.h
@@ -184,6 +184,11 @@ const base::android::JavaParamRef<jobject>& obj, const base::android::JavaParamRef<jobject>& overscroll_refresh_handler); + void SetSpatialNavigationDisabled( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& obj, + bool disabled); + // Relay the access from Java layer to RWHV::CopyFromSurface() through JNI. void WriteContentBitmapToDisk( JNIEnv* env,
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 8713403..970def0 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5500,6 +5500,10 @@ return has_persistent_video_; } +bool WebContentsImpl::IsSpatialNavigationDisabled() const { + return is_spatial_navigation_disabled_; +} + RenderFrameHost* WebContentsImpl::GetPendingMainFrame() { return GetRenderManager()->speculative_frame_host(); } @@ -6800,6 +6804,14 @@ media_web_contents_observer()->RequestPersistentVideo(has_persistent_video); } +void WebContentsImpl::SetSpatialNavigationDisabled(bool disabled) { + if (is_spatial_navigation_disabled_ == disabled) + return; + + is_spatial_navigation_disabled_ = disabled; + NotifyPreferencesChanged(); +} + void WebContentsImpl::BrowserPluginGuestWillDetach() { WebContentsImpl* outermost = GetOutermostWebContents(); if (this != outermost && ContainsOrIsFocusedWebContents())
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h index 7171fb4a..a6513ded 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h
@@ -668,6 +668,7 @@ bool ShouldIgnoreUnresponsiveRenderer() override; bool HideDownloadUI() const override; bool HasPersistentVideo() const override; + bool IsSpatialNavigationDisabled() const override; RenderFrameHost* GetPendingMainFrame() override; void DidFirstVisuallyNonEmptyPaint(RenderViewHostImpl* source) override; void DidCommitAndDrawCompositorFrame(RenderViewHostImpl* source) override; @@ -996,6 +997,9 @@ // a video currently in Picture-in-Picture mode. void SetHasPictureInPictureVideo(bool has_picture_in_picture_video); + // Sets the spatial navigation state. + void SetSpatialNavigationDisabled(bool disabled); + #if defined(OS_ANDROID) // Called by FindRequestManager when all of the find match rects are in. void NotifyFindMatchRectsReply(int version, @@ -1838,6 +1842,8 @@ bool has_persistent_video_ = false; + bool is_spatial_navigation_disabled_ = false; + bool is_currently_audible_ = false; bool was_ever_audible_ = false;
diff --git a/content/browser/webauth/virtual_fido_discovery_factory.cc b/content/browser/webauth/virtual_fido_discovery_factory.cc index 241d3ac..548f972 100644 --- a/content/browser/webauth/virtual_fido_discovery_factory.cc +++ b/content/browser/webauth/virtual_fido_discovery_factory.cc
@@ -13,6 +13,7 @@ #include "content/browser/webauth/virtual_discovery.h" #include "device/fido/fido_discovery_base.h" #include "device/fido/virtual_ctap2_device.h" +#include "device/fido/virtual_u2f_device.h" namespace content { @@ -38,6 +39,10 @@ device::AuthenticatorAttachment attachment, bool has_resident_key, bool has_user_verification) { + if (protocol == device::ProtocolVersion::kU2f && + !device::VirtualU2fDevice::IsTransportSupported(transport)) { + return nullptr; + } auto authenticator = std::make_unique<VirtualAuthenticator>( protocol, transport, attachment, has_resident_key, has_user_verification); auto* authenticator_ptr = authenticator.get();
diff --git a/content/browser/webauth/virtual_fido_discovery_factory.h b/content/browser/webauth/virtual_fido_discovery_factory.h index 6fb6ec40d..44049ed 100644 --- a/content/browser/webauth/virtual_fido_discovery_factory.h +++ b/content/browser/webauth/virtual_fido_discovery_factory.h
@@ -38,7 +38,8 @@ ~VirtualFidoDiscoveryFactory() override; // Create an authenticator that will generate virtual devices for the given - // parameters. + // parameters. Returns nullptr if an error occurs when trying to create the + // authenticator. VirtualAuthenticator* CreateAuthenticator( device::ProtocolVersion protocol, device::FidoTransportProtocol transport,
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc index 4e9146e0..691259ba 100644 --- a/content/child/child_thread_impl.cc +++ b/content/child/child_thread_impl.cc
@@ -260,6 +260,23 @@ DISALLOW_COPY_AND_ASSIGN(ChannelBootstrapFilter); }; +class ContentClientConnectionFilter : public ConnectionFilter { + public: + ContentClientConnectionFilter() = default; + + private: + // ConnectionFilter: + void OnBindInterface(const service_manager::BindSourceInfo& source_info, + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* interface_pipe, + service_manager::Connector* connector) override { + GetContentClient()->BindChildProcessInterface(interface_name, + interface_pipe); + } + + DISALLOW_COPY_AND_ASSIGN(ContentClientConnectionFilter); +}; + } // namespace ChildThread* ChildThread::Get() { @@ -442,6 +459,9 @@ thread_safe_sender_ = new ThreadSafeSender(main_thread_runner_, sync_message_filter_.get()); + GetServiceManagerConnection()->AddConnectionFilter( + std::make_unique<ContentClientConnectionFilter>()); + auto registry = std::make_unique<service_manager::BinderRegistry>(); registry->AddInterface(base::Bind(&ChildHistogramFetcherFactoryImpl::Create), GetIOTaskRunner()); @@ -676,8 +696,6 @@ void ChildThreadImpl::StartServiceManagerConnection() { DCHECK(service_manager_connection_); - GetContentClient()->OnServiceManagerConnected( - service_manager_connection_.get()); // NOTE: You must register any ConnectionFilter instances on // |service_manager_connection_| *before* this call to |Start()|, otherwise
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java index 425b433..edc7f97 100644 --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -745,6 +745,12 @@ } @Override + public void setSpatialNavigationDisabled(boolean disabled) { + checkNotDestroyed(); + nativeSetSpatialNavigationDisabled(mNativeWebContentsAndroid, disabled); + } + + @Override public void writeContentBitmapToDiskAsync( int width, int height, String path, Callback<String> callback) { checkNotDestroyed(); @@ -1030,6 +1036,8 @@ long nativeWebContentsAndroid, AccessibilitySnapshotCallback callback); private native void nativeSetOverscrollRefreshHandler( long nativeWebContentsAndroid, OverscrollRefreshHandler nativeOverscrollRefreshHandler); + private native void nativeSetSpatialNavigationDisabled( + long nativeWebContentsAndroid, boolean disabled); private native void nativeWriteContentBitmapToDisk(long nativeWebContentsAndroid, int width, int height, String path, Callback<String> callback); private native void nativeReloadLoFiImages(long nativeWebContentsAndroid);
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java index 6696c90..cdfff84 100644 --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -400,6 +400,12 @@ void setOverscrollRefreshHandler(OverscrollRefreshHandler handler); /** + * Controls use of spatial-navigation mode. + * @param disable True if spatial navigation should never be used. + */ + void setSpatialNavigationDisabled(boolean disabled); + + /** * Requests an image snapshot of the content and stores it in the specified folder. * * @param width The width of the resulting bitmap, or 0 for "auto."
diff --git a/content/public/app/content_browser_manifest.cc b/content/public/app/content_browser_manifest.cc index c36f884c..44a2e08 100644 --- a/content/public/app/content_browser_manifest.cc +++ b/content/public/app/content_browser_manifest.cc
@@ -178,7 +178,7 @@ "blink.mojom.PermissionService", "blink.mojom.QuotaDispatcherHost", "blink.mojom.SerialService", "blink.mojom.WebUsbService", - "blink.mojom.SmsManager", "network.mojom.WebSocket", + "blink.mojom.SmsReceiver", "network.mojom.WebSocket", "media.mojom.VideoDecodePerfHistory", "payments.mojom.PaymentManager", "shape_detection.mojom.BarcodeDetectionProvider", @@ -235,7 +235,7 @@ "blink.mojom.QuotaDispatcherHost", "blink.mojom.SerialService", "blink.mojom.SharedWorkerConnector", - "blink.mojom.SmsManager", + "blink.mojom.SmsReceiver", "blink.mojom.SpeechRecognizer", "blink.mojom.TextSuggestionHost", "blink.mojom.UnhandledTapNotifier",
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn index 253dcfc..4fc6ba6 100644 --- a/content/public/browser/BUILD.gn +++ b/content/public/browser/BUILD.gn
@@ -194,6 +194,8 @@ "native_event_processor_mac.h", "native_event_processor_observer_mac.h", "native_event_processor_observer_mac.mm", + "native_file_system_permission_context.h", + "native_file_system_permission_grant.h", "native_web_keyboard_event.h", "navigation_controller.cc", "navigation_controller.h",
diff --git a/content/public/browser/browser_context.h b/content/public/browser/browser_context.h index 5c20c891e..1d65e03 100644 --- a/content/public/browser/browser_context.h +++ b/content/public/browser/browser_context.h
@@ -81,6 +81,7 @@ class DownloadManager; class ClientHintsControllerDelegate; class DownloadManagerDelegate; +class NativeFileSystemPermissionContext; class PermissionController; class PermissionControllerDelegate; class PushMessagingService; @@ -356,6 +357,11 @@ // nullptr otherwise. virtual SmsService* GetSmsService(); + // Returns the NativeFileSystemPermissionContext associated with this context + // if any, nullptr otherwise. + virtual NativeFileSystemPermissionContext* + GetNativeFileSystemPermissionContext(); + private: const std::string unique_id_; bool was_notify_will_be_destroyed_called_ = false;
diff --git a/content/public/browser/native_file_system_permission_context.h b/content/public/browser/native_file_system_permission_context.h new file mode 100644 index 0000000..f7af7aa --- /dev/null +++ b/content/public/browser/native_file_system_permission_context.h
@@ -0,0 +1,38 @@ +// Copyright 2019 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. + +#ifndef CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_ +#define CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_ + +#include "base/files/file_path.h" +#include "content/public/browser/native_file_system_permission_grant.h" +#include "url/origin.h" + +namespace content { + +// Entry point to an embedder implemented permission context for the Native File +// System API. Instances of this class can be retrieved via a BrowserContext. +// All these methods should always be called on the same sequence. +class NativeFileSystemPermissionContext { + public: + // TODO(mek): Add methods related to read permissions as well, when revoking + // and re-prompting for those gets implemented. + + // Returns the permission grant to use for a particular path. This could be a + // grant that applies to more than just the path passed in, for example if a + // user has already granted write access to a directory, this method could + // return that existing grant when figuring the grant to use for a file in + // that directory. + virtual scoped_refptr<NativeFileSystemPermissionGrant> + GetWritePermissionGrant(const url::Origin& origin, + const base::FilePath& path, + bool is_directory) = 0; + + protected: + virtual ~NativeFileSystemPermissionContext() = default; +}; + +} // namespace content + +#endif // CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
diff --git a/content/public/browser/native_file_system_permission_grant.h b/content/public/browser/native_file_system_permission_grant.h new file mode 100644 index 0000000..98961dd3 --- /dev/null +++ b/content/public/browser/native_file_system_permission_grant.h
@@ -0,0 +1,47 @@ +// Copyright 2019 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. + +#ifndef CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_ +#define CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_ + +#include "base/callback.h" +#include "base/memory/ref_counted.h" +#include "third_party/blink/public/mojom/permissions/permission_status.mojom-forward.h" + +namespace content { + +// A ref-counted permission grant. This is needed so the implementation of +// this class can keep track of references to permissions, and clean up state +// when no more references remain. Multiple NativeFileSystemHandle instances +// can share the same permission grant. For example a directory and all its +// children will use the same grant. +// +// Instances of this class can be retrieved via a +// NativeFileSystemPermissionContext instance. +// +// NativeFileSystemPermissionGrant instances are not thread safe, and should +// only be used (and referenced) on the same sequence as the PermssionContext +// that created them. +class NativeFileSystemPermissionGrant + : public base::RefCounted<NativeFileSystemPermissionGrant> { + public: + using PermissionStatus = blink::mojom::PermissionStatus; + + virtual PermissionStatus GetStatus() const = 0; + + // Call this method to request permission for this grant. The |callback| + // should be called after the status of this grant has been updated with + // the outcome of the request. + virtual void RequestPermission(int process_id, + int frame_id, + base::OnceClosure callback) = 0; + + protected: + friend class base::RefCounted<NativeFileSystemPermissionGrant>; + virtual ~NativeFileSystemPermissionGrant() = default; +}; + +} // namespace content + +#endif // CONTENT_PUBLIC_BROWSER_NATIVE_FILE_SYSTEM_PERMISSION_GRANT_H_
diff --git a/content/public/browser/sms_service.h b/content/public/browser/sms_service.h index 39e0c99..42066c1 100644 --- a/content/public/browser/sms_service.h +++ b/content/public/browser/sms_service.h
@@ -6,7 +6,7 @@ #define CONTENT_PUBLIC_BROWSER_SMS_SERVICE_H_ #include "content/common/content_export.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-forward.h" namespace url { class Origin; @@ -23,7 +23,7 @@ static std::unique_ptr<SmsService> Create(); - virtual void Bind(blink::mojom::SmsManagerRequest request, + virtual void Bind(blink::mojom::SmsReceiverRequest request, const url::Origin& origin) = 0; };
diff --git a/content/public/common/content_client.cc b/content/public/common/content_client.cc index b738513..338ec48 100644 --- a/content/public/common/content_client.cc +++ b/content/public/common/content_client.cc
@@ -129,7 +129,8 @@ } #endif // OS_ANDROID -void ContentClient::OnServiceManagerConnected( - ServiceManagerConnection* connection) {} +void ContentClient::BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle) {} } // namespace content
diff --git a/content/public/common/content_client.h b/content/public/common/content_client.h index 83c2abb..d5aa585 100644 --- a/content/public/common/content_client.h +++ b/content/public/common/content_client.h
@@ -13,6 +13,7 @@ #include "base/strings/string_piece.h" #include "build/build_config.h" #include "content/common/content_export.h" +#include "mojo/public/cpp/system/message_pipe.h" #include "ui/base/layout.h" #include "url/gurl.h" #include "url/origin.h" @@ -51,7 +52,6 @@ class ContentGpuClient; class ContentRendererClient; class ContentUtilityClient; -class ServiceManagerConnection; struct CdmInfo; struct PepperPluginInfo; @@ -205,7 +205,11 @@ virtual media::MediaDrmBridgeClient* GetMediaDrmBridgeClient(); #endif // OS_ANDROID - virtual void OnServiceManagerConnected(ServiceManagerConnection* connection); + // Allows the embedder to handle incoming interface binding requests from + // the browser process to any type of child process. + virtual void BindChildProcessInterface( + const std::string& interface_name, + mojo::ScopedMessagePipeHandle* receiving_handle); private: friend class ContentClientInitializer; // To set these pointers.
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java index 8e8e53e1..59d9426f 100644 --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
@@ -229,6 +229,9 @@ public void setOverscrollRefreshHandler(OverscrollRefreshHandler handler) {} @Override + public void setSpatialNavigationDisabled(boolean disabled) {} + + @Override public void writeContentBitmapToDiskAsync( int width, int height, String path, Callback<String> callback) {}
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc index 21470c4..2947bc8e 100644 --- a/content/public/test/browser_test_utils.cc +++ b/content/public/test/browser_test_utils.cc
@@ -2593,18 +2593,18 @@ } void BrowserTestClipboardScope::SetRtf(const std::string& rtf) { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteRTF(rtf); } void BrowserTestClipboardScope::SetText(const std::string& text) { - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(base::ASCIIToUTF16(text)); } void BrowserTestClipboardScope::GetText(std::string* result) { ui::Clipboard::GetForCurrentThread()->ReadAsciiText( - ui::CLIPBOARD_TYPE_COPY_PASTE, result); + ui::ClipboardType::kCopyPaste, result); } class FrameFocusedObserver::FrameTreeNodeObserverImpl @@ -2765,7 +2765,7 @@ // Wait for the desired state if needed. if (current_state_ < desired_state_) { DCHECK(!quit_closure_); - base::RunLoop run_loop; + base::RunLoop run_loop(message_loop_type_); quit_closure_ = run_loop.QuitClosure(); run_loop.Run(); } @@ -2797,6 +2797,10 @@ return true; } +void TestNavigationManager::AllowNestableTasks() { + message_loop_type_ = base::RunLoop::Type::kNestableTasksAllowed; +} + NavigationHandleCommitObserver::NavigationHandleCommitObserver( content::WebContents* web_contents, const GURL& url)
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h index 8ba8639..8456549 100644 --- a/content/public/test/browser_test_utils.h +++ b/content/public/test/browser_test_utils.h
@@ -1380,6 +1380,10 @@ // Whether the navigation successfully committed. bool was_successful() const { return was_successful_; } + // Allows nestable tasks when running a message loop in the Wait* functions. + // This is useful for utilizing this class from within another message loop. + void AllowNestableTasks(); + protected: // Derived classes can override if they want to filter out navigations. This // is called from DidStartNavigation. @@ -1421,6 +1425,7 @@ NavigationState desired_state_; bool was_successful_ = false; base::OnceClosure quit_closure_; + base::RunLoop::Type message_loop_type_ = base::RunLoop::Type::kDefault; base::WeakPtrFactory<TestNavigationManager> weak_factory_;
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index 689d160..b83c912 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -305,8 +305,6 @@ "media/webrtc/webrtc_util.h", "media/webrtc/webrtc_video_track_source.cc", "media/webrtc/webrtc_video_track_source.h", - "media/webrtc/webrtc_video_utils.cc", - "media/webrtc/webrtc_video_utils.h", "menu_item_builder.cc", "menu_item_builder.h", "mhtml_handle_writer.cc",
diff --git a/content/renderer/media/webrtc/media_stream_remote_video_source.cc b/content/renderer/media/webrtc/media_stream_remote_video_source.cc index ac476586..359ab17 100644 --- a/content/renderer/media/webrtc/media_stream_remote_video_source.cc +++ b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
@@ -11,7 +11,6 @@ #include "base/callback_helpers.h" #include "base/location.h" #include "base/trace_event/trace_event.h" -#include "content/renderer/media/webrtc/webrtc_video_utils.h" #include "media/base/bind_to_current_loop.h" #include "media/base/timestamp_constants.h" #include "media/base/video_frame.h" @@ -19,6 +18,7 @@ #include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h" #include "third_party/blink/public/platform/modules/webrtc/track_observer.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_video_frame_adapter.h" +#include "third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h" #include "third_party/webrtc/api/video/i420_buffer.h" #include "third_party/webrtc/api/video/video_sink_interface.h" #include "third_party/webrtc/rtc_base/time_utils.h" // for TimeMicros @@ -174,12 +174,12 @@ if (incoming_frame.rotation() != webrtc::kVideoRotation_0) { video_frame->metadata()->SetRotation( media::VideoFrameMetadata::ROTATION, - WebRtcToMediaVideoRotation(incoming_frame.rotation())); + blink::WebRtcToMediaVideoRotation(incoming_frame.rotation())); } if (incoming_frame.color_space()) { video_frame->set_color_space( - WebRtcToMediaVideoColorSpace(*incoming_frame.color_space()) + blink::WebRtcToMediaVideoColorSpace(*incoming_frame.color_space()) .ToGfxColorSpace()); }
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc index 1108c07e..9df2383 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc
@@ -23,7 +23,6 @@ #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" #include "content/renderer/media/render_media_log.h" -#include "content/renderer/media/webrtc/webrtc_video_utils.h" #include "media/base/media_log.h" #include "media/base/media_util.h" #include "media/base/overlay_info.h" @@ -31,6 +30,7 @@ #include "media/video/gpu_video_accelerator_factories.h" #include "media/video/video_decode_accelerator.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_video_frame_adapter.h" +#include "third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h" #include "third_party/webrtc/api/video/video_frame.h" #include "third_party/webrtc/media/base/vp9_profile.h" #include "third_party/webrtc/modules/video_coding/codecs/h264/include/h264.h" @@ -274,7 +274,7 @@ if (ShouldReinitializeForSettingHDRColorSpace(input_image)) { config_.set_color_space_info( - WebRtcToMediaVideoColorSpace(*input_image.ColorSpace())); + blink::WebRtcToMediaVideoColorSpace(*input_image.ColorSpace())); if (!ReinitializeSync(config_)) return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE; if (input_image._frameType != webrtc::VideoFrameType::kVideoFrameKey) @@ -459,7 +459,7 @@ if (config_.profile() == media::VP9PROFILE_PROFILE2 && input_image.ColorSpace()) { const media::VideoColorSpace& new_color_space = - WebRtcToMediaVideoColorSpace(*input_image.ColorSpace()); + blink::WebRtcToMediaVideoColorSpace(*input_image.ColorSpace()); if (!config_.color_space_info().IsSpecified() || new_color_space != config_.color_space_info()) { return true;
diff --git a/content/renderer/media/webrtc/webrtc_video_utils.h b/content/renderer/media/webrtc/webrtc_video_utils.h deleted file mode 100644 index 5bcfcf0..0000000 --- a/content/renderer/media/webrtc/webrtc_video_utils.h +++ /dev/null
@@ -1,25 +0,0 @@ -// Copyright 2018 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. - -#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_VIDEO_UTILS_H_ -#define CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_VIDEO_UTILS_H_ - -#include "media/base/video_color_space.h" -#include "media/base/video_transformation.h" -#include "third_party/webrtc/api/video/color_space.h" -#include "third_party/webrtc/api/video/video_rotation.h" - -namespace content { - -// This file has helper methods for conversion between chromium types and -// webrtc/api/video types. - -media::VideoRotation WebRtcToMediaVideoRotation(webrtc::VideoRotation rotation); - -media::VideoColorSpace WebRtcToMediaVideoColorSpace( - const webrtc::ColorSpace& color_space); - -} // namespace content - -#endif // CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_VIDEO_UTILS_H_
diff --git a/content/renderer/pepper/pepper_webplugin_impl.cc b/content/renderer/pepper/pepper_webplugin_impl.cc index f5d60db..dd5d616 100644 --- a/content/renderer/pepper/pepper_webplugin_impl.cc +++ b/content/renderer/pepper/pepper_webplugin_impl.cc
@@ -351,7 +351,7 @@ blink::Platform::Current()->GetBrowserServiceName(), &clipboard_); } base::string16 text; - clipboard_->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text); + clipboard_->ReadText(ui::ClipboardType::kCopyPaste, &text); instance_->ReplaceSelection(base::UTF16ToUTF8(text)); return true;
diff --git a/content/shell/test_runner/pixel_dump.cc b/content/shell/test_runner/pixel_dump.cc index 62e102b..f5caf4f 100644 --- a/content/shell/test_runner/pixel_dump.cc +++ b/content/shell/test_runner/pixel_dump.cc
@@ -94,17 +94,17 @@ blink::Platform::Current()->GetBrowserServiceName(), &clipboard); uint64_t sequence_number_before = 0; - clipboard->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE, + clipboard->GetSequenceNumber(ui::ClipboardType::kCopyPaste, &sequence_number_before); web_frame->CopyImageAt(blink::WebPoint(x, y)); uint64_t sequence_number_after = 0; while (sequence_number_before == sequence_number_after) { - clipboard->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE, + clipboard->GetSequenceNumber(ui::ClipboardType::kCopyPaste, &sequence_number_after); } SkBitmap bitmap; - clipboard->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE, &bitmap); + clipboard->ReadImage(ui::ClipboardType::kCopyPaste, &bitmap); std::move(callback).Run(bitmap); }
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index ff0808b..1c87c41 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -54,6 +54,8 @@ "../browser/media/session/mock_media_session_service_impl.h", "../browser/native_file_system/file_system_chooser_test_helpers.cc", "../browser/native_file_system/file_system_chooser_test_helpers.h", + "../browser/native_file_system/mock_native_file_system_permission_grant.cc", + "../browser/native_file_system/mock_native_file_system_permission_grant.h", "../browser/renderer_host/input/mock_input_router.cc", "../browser/renderer_host/input/mock_input_router.h", "../browser/renderer_host/mock_render_widget_host.cc", @@ -1620,6 +1622,7 @@ "../browser/native_file_system/file_system_chooser_unittest.cc", "../browser/native_file_system/native_file_system_file_handle_impl_unittest.cc", "../browser/native_file_system/native_file_system_handle_base_unittest.cc", + "../browser/native_file_system/native_file_system_manager_impl_unittest.cc", "../browser/net/network_quality_observer_impl_unittest.cc", "../browser/net/quota_policy_cookie_store_unittest.cc", "../browser/network_service_client_unittest.cc",
diff --git a/content/test/gpu/gather_power_measurement_results.py b/content/test/gpu/gather_power_measurement_results.py index 0a95b803..cb2933fa 100755 --- a/content/test/gpu/gather_power_measurement_results.py +++ b/content/test/gpu/gather_power_measurement_results.py
@@ -85,8 +85,7 @@ builds_json = GetBuildData('SearchBuilds', request) builds = builds_json['builds'] if len(builds) != build_count: - raise ValueError('Asked %d builds, got %d builds' % ( - len(builds, build_count))) + logging.warn('Asked %d builds, got %d builds', build_count, len(builds)) return builds @@ -266,9 +265,13 @@ builds = [] for build_id in range(last_build, first_build - 1, -1): logging.debug('Pull data for build %d' % build_id) - build_json = GetJsonForBuildSteps(options.bot, build_id) - build_json['number'] = build_id - builds.append(build_json) + try: + build_json = GetJsonForBuildSteps(options.bot, build_id) + build_json['number'] = build_id + builds.append(build_json) + except urllib2.HTTPError: + logging.warn('HTTPError raised, failed to load data from build %d', + build_id) logging.debug('Start processing stdout data') results = { 'builds': [] }
diff --git a/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py b/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py index f6b97ce..5b0ae9e 100644 --- a/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py +++ b/content/test/gpu/gpu_tests/gpu_integration_test_unittest.py
@@ -17,6 +17,7 @@ from collections import defaultdict from telemetry.testing import browser_test_runner +from telemetry.testing import fakes from telemetry.internal.platform import system_info from gpu_tests import context_lost_integration_test @@ -60,117 +61,77 @@ ResultType = json_results.ResultType -class MockPlatform(object): - def __init__(self, os_name, os_version_name=None): - self.os_name = os_name - self.os_version_name = os_version_name - - def GetOSName(self): - return self.os_name - - def GetOSVersionName(self): - return self.os_version_name +def _GetMockArgs(is_asan=False, webgl_version='1.0.0'): + args = mock.MagicMock() + args.is_asan = is_asan + args.webgl_conformance_version = webgl_version + args.webgl2_only = False + args.url = 'https://www.google.com' + args.duration = 10 + args.delay = 10 + args.resolution = 100 + args.fullscreen = False + args.underlay = False + args.logdir = '/tmp' + args.repeat = 1 + args.outliers = 0 + args.bypass_ipg = False + args.expected_vendor_id = 0 + args.expected_device_id = 0 + args.browser_options = [] + return args -class MockBrowser(object): - def __init__(self, platform, gpu='', device='', vendor_string='', - device_string='', browser_type=None, gl_renderer=None, - passthrough=False): - self.platform = platform - self.browser_type = browser_type - sys_info = { - 'model_name': '', - 'gpu': { - 'devices': [ - {'vendor_id': gpu, 'device_id': device, - 'vendor_string': vendor_string, 'device_string': device_string}, - ], - 'aux_attributes': {'passthrough_cmd_decoder': passthrough} - } +def _GetSystemInfo( + gpu='', device='', vendor_string='', + device_string='', passthrough=False, gl_renderer=''): + sys_info = { + 'model_name': '', + 'gpu': { + 'devices': [ + {'vendor_id': gpu, 'device_id': device, + 'vendor_string': vendor_string, 'device_string': device_string}, + ], + 'aux_attributes': {'passthrough_cmd_decoder': passthrough} } - if gl_renderer: - sys_info['gpu']['aux_attributes']['gl_renderer'] = gl_renderer - self.system_info = system_info.SystemInfo.FromDict(sys_info) - - def GetSystemInfo(self): - return self.system_info - - def __enter__(self): - return self - - def __exit__(self, *args): - pass + } + if gl_renderer: + sys_info['gpu']['aux_attributes']['gl_renderer'] = gl_renderer + return system_info.SystemInfo.FromDict(sys_info) -class MockArgs(object): - - def __init__(self, is_asan=False, webgl_version='1.0.0'): - self.is_asan = is_asan - self.webgl_conformance_version = webgl_version - self.webgl2_only = False - self.url = 'https://www.google.com' - self.duration = 10 - self.delay = 10 - self.resolution = 100 - self.fullscreen = False - self.underlay = False - self.logdir = '/tmp' - self.repeat = 1 - self.outliers = 0 - self.bypass_ipg = False - self.expected_vendor_id = 0 - self.expected_device_id = 0 - self.browser_options = [] +def _GetTagsToTest(browser, test_class=None, args=None): + gpu_tests = test_class or gpu_integration_test.GpuIntegrationTest + expectations_fn = gpu_tests.ExpectationsFiles + gpu_tests.ExpectationsFiles = mock.MagicMock(return_value=['exp.txt']) + ret = None + try: + possible_browser = fakes.FakePossibleBrowser() + possible_browser._returned_browser = browser + args = args or _GetMockArgs() + ret = set(gpu_tests.GenerateTags(args, possible_browser)) + finally: + gpu_tests.ExpectationsFiles = expectations_fn + return ret -class MockAbstractGpuTestClass(gpu_integration_test.GpuIntegrationTest): - - @classmethod - def GenerateGpuTests(cls, options): - return [] - - def RunActualGpuTest(self, test_path, *args): - pass +def _GenerateNvidiaExampleTagsForTestClassAndArgs(test_class, args): + exp_files_fn = test_class.ExpectationsFiles + ret = None + try: + test_class.ExpectationsFiles = mock.MagicMock(return_value=['exp.txt']) + _ = [_ for _ in test_class.GenerateGpuTests(args)] + platform = fakes.FakePlatform('win', 'win10') + browser = fakes.FakeBrowser(platform, 'release') + browser._returned_system_info = _GetSystemInfo( + gpu=VENDOR_NVIDIA, device=0x1cb3, gl_renderer='ANGLE Direct3D9') + ret = _GetTagsToTest(browser, test_class) + finally: + test_class.ExpectationsFiles = exp_files_fn + return ret -class MockTestCaseWithoutExpectationsFile(MockAbstractGpuTestClass): - pass - - -class MockTestCaseWithExpectationsFile(MockAbstractGpuTestClass): - - @classmethod - def ExpectationsFiles(cls): - return ['example_test_expectations.txt'] - - -class MockPossibleBrowser(object): - - def __init__(self, browser=None): - self._returned_browser = browser - - def BrowserSession(self, options): - del options - return self._returned_browser - - -def _generateNvidiaExampleTagsForTestClassAndArgs(test_class, args): - class MockTestCase(test_class, MockAbstractGpuTestClass): - - @classmethod - def ExpectationsFiles(cls): - return ['example_test_expectations.txt'] - - _ = [_ for _ in MockTestCase.GenerateGpuTests(args)] - platform = MockPlatform('win', 'win10') - browser = MockBrowser( - platform, VENDOR_NVIDIA, 0x1cb3, browser_type='release', - gl_renderer='ANGLE Direct3D9') - possible_browser = MockPossibleBrowser(browser) - return set(MockTestCase.GenerateTags(args, possible_browser)) - - -def _checkTestExpectationsAreForExistingTests( +def _CheckTestExpectationsAreForExistingTests( test_class, mock_options, test_names=None): test_names = test_names or [ args[0] for args in @@ -197,7 +158,7 @@ _trie = _trie[l] -def is_collision(s1, s2): +def _IsCollision(s1, s2): # s1 collides with s2 when s1 is a subset of s2 # A tag is in both sets if its a generic tag # and its in one set while a specifc tag covered by the generic tag is in @@ -211,7 +172,7 @@ return True -def _glob_conflicts_with_exp(possible_collision, exp): +def _ConflictLeaksRegression(possible_collision, exp): reason_template = ( 'Pattern \'{0}\' on line {1} has the %s expectation however the ' 'the pattern on \'{2}\' line {3} has the Pass expectation'). format( @@ -228,7 +189,7 @@ return '' -def _map_gpu_devices_to_vendors(tag_sets): +def _MapGpuDevicesToVendors(tag_sets): for tag_set in tag_sets: if any(gpu in tag_set for gpu in GPU_CONDITIONS): _map_specific_to_generic.update( @@ -237,7 +198,7 @@ break -def _checkTestExpectationGlobsForCollision(expectations, file_name): +def _CheckTestExpectationGlobsForCollision(expectations, file_name): """This function looks for collisions between test expectations with patterns that match with test expectation patterns that are globs. A test expectation collides with another if its pattern matches with another's glob and if its @@ -256,7 +217,7 @@ parser = expectations_parser.TaggedTestListParser(expectations) globs_to_expectations = defaultdict(list) - _map_gpu_devices_to_vendors(parser.tag_sets) + _MapGpuDevicesToVendors(parser.tag_sets) for exp in parser.expectations: _trie = trie.setdefault(exp.test[0], {}) @@ -284,9 +245,9 @@ matched_to_globs = [e for e in expectations if e.test != glob] for match in matched_to_globs: for possible_collision in globs_to_match: - reason = _glob_conflicts_with_exp(possible_collision, match) + reason = _ConflictLeaksRegression(possible_collision, match) if (reason and - is_collision(possible_collision.tags, match.tags)): + _IsCollision(possible_collision.tags, match.tags)): if not conflicts_found: error_msg += ('\n\nFound conflicts for pattern %s in %s:\n' % (glob, file_name)) @@ -296,7 +257,7 @@ assert not master_conflicts_found, error_msg -def _checkTestExpectationPatternsForCollision(expectations, file_name): +def _CheckTestExpectationPatternsForCollision(expectations, file_name): """This function makes sure that any test expectations that have the same pattern do not collide with each other. They collide when one expectation's tags are a subset of the other expectation's tags. If the expectation with @@ -311,14 +272,14 @@ tests_to_exps = defaultdict(list) master_conflicts_found = False error_msg = '' - _map_gpu_devices_to_vendors(parser.tag_sets) + _MapGpuDevicesToVendors(parser.tag_sets) for exp in parser.expectations: tests_to_exps[exp.test].append(exp) for pattern, exps in tests_to_exps.items(): conflicts_found = False for e1, e2 in itertools.combinations(exps, 2): - if is_collision(e1.tags, e2.tags) or is_collision(e2.tags, e1.tags): + if _IsCollision(e1.tags, e2.tags) or _IsCollision(e2.tags, e1.tags): if not conflicts_found: error_msg += ('\n\nFound conflicts for test %s in %s:\n' % (pattern, file_name)) @@ -337,28 +298,22 @@ 'expectation does not exist: ' + full_path) -def _testCheckTestExpectationsAreForExistingTests(expectations): - options = MockArgs() +def _TestCheckTestExpectationsAreForExistingTests(expectations): + options = _GetMockArgs() expectations_file = tempfile.NamedTemporaryFile(delete=False) expectations_file.write(expectations) expectations_file.close() - - class _MockTestCase(object): - @classmethod - def Name(cls): - return '_MockTestCase' - - @classmethod - def GenerateGpuTests(cls, options): - tests = [('a/b/c', ())] - for t in tests: - yield t - - @classmethod - def ExpectationsFiles(cls): - return [expectations_file.name] - - _checkTestExpectationsAreForExistingTests(_MockTestCase, options) + gpu_tests = gpu_integration_test.GpuIntegrationTest + generate_gpu_fn = gpu_tests.GenerateGpuTests + expectations_files_fn = gpu_tests.ExpectationsFiles + gpu_tests.GenerateGpuTests = mock.MagicMock(return_value=[('a/b/c', ())]) + gpu_tests.ExpectationsFiles = mock.MagicMock( + return_value=[expectations_file.name]) + try: + _CheckTestExpectationsAreForExistingTests(gpu_tests, options) + finally: + gpu_tests.GenerateGpuTests = generate_gpu_fn + gpu_tests.ExpectationsFiles = expectations_files_fn def _FindTestCases(): @@ -405,7 +360,7 @@ [ intel xp debug ] a/b/c/d [ Skip ] ''' with self.assertRaises(AssertionError): - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testNoCollisionBetweenSpecificOsTags(self): test_expectations = '''# tags: [ mac win linux xp win7 ] @@ -414,7 +369,7 @@ [ intel win7 ] a/b/c/d [ Failure ] [ intel xp debug ] a/b/c/d [ Skip ] ''' - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testCollisionInTestExpectationsWithGpuVendorAndDeviceTags(self): test_expectations = '''# tags: [ mac win linux xp ] @@ -424,7 +379,7 @@ [ nvidia-0x01 xp debug ] a/b/c/d [ Skip ] ''' with self.assertRaises(AssertionError): - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testCollisionInTestExpectationsWithGpuVendorAndDeviceTags2(self): test_expectations = '''# tags: [ mac win linux xp win7 ] @@ -434,7 +389,7 @@ [ nvidia win7 debug ] a/b/c/* [ Skip ] ''' with self.assertRaises(AssertionError): - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testNoCollisionBetweenGpuDeviceTags(self): test_expectations = '''# tags: [ mac win linux xp win7 ] @@ -444,7 +399,7 @@ [ nvidia-0x02 win7 debug ] a/b/c/d [ Skip ] [ nvidia win debug ] a/b/c/* [ Skip ] ''' - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testMixGenericandSpecificTagsInCollidingSets(self): test_expectations = '''# tags: [ mac win linux xp win7 ] @@ -454,7 +409,7 @@ [ nvidia win7 debug ] a/b/c/d [ Skip ] ''' with self.assertRaises(AssertionError): - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testCollisionInTestExpectationCausesAssertion(self): test_expectations = '''# tags: [ mac win linux ] @@ -469,7 +424,7 @@ [ intel mac ] a/b/c [ Failure ] ''' with self.assertRaises(AssertionError) as context: - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') self.assertIn("Found conflicts for test a/b/c/d in test.txt:", str(context.exception)) self.assertIn('line 4 conflicts with line 5', @@ -494,7 +449,7 @@ [ intel debug mac ] a/b/c/d/e [ Failure ] ''' with self.assertRaises(AssertionError) as context: - _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt') self.assertIn('Found conflicts for pattern a/b/c/d* in test.txt:', str(context.exception)) self.assertIn(("line 4 conflicts with line 5: Pattern 'a/b/c/d*' on line 4 " @@ -512,7 +467,7 @@ [ intel debug ] a/b/c/d [ Failure ] [ intel debug ] a/b/c/d [ Skip ] ''' - _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt') def testCollisionWithGlobsWithSkipExpectation(self): test_expectations = '''# tags: [ mac win linux ] @@ -523,7 +478,7 @@ [ intel debug mac ] a/b/c/d/e [ RetryOnFailure ] ''' with self.assertRaises(AssertionError) as context: - _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt') self.assertIn('Found conflicts for pattern a/b/c/d* in test.txt:', str(context.exception)) self.assertNotIn('line 4 conflicts with line 5', @@ -543,7 +498,7 @@ [ intel debug ] a/b/c/d [ Skip ] [ intel debug ] a/b/c/d [ Skip ] ''' - _checkTestExpectationGlobsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationGlobsForCollision(test_expectations, 'test.txt') def testNoCollisionInTestExpectations(self): test_expectations = '''# tags: [ mac win linux ] @@ -553,7 +508,7 @@ [ intel debug ] a/b/c/d [ Failure ] [ nvidia debug ] a/b/c/d [ Failure ] ''' - _checkTestExpectationPatternsForCollision(test_expectations, 'test.txt') + _CheckTestExpectationPatternsForCollision(test_expectations, 'test.txt') def testNoCollisionsForSameTestsInGpuTestExpectations(self): webgl_conformance_test_class = ( @@ -562,10 +517,10 @@ if 'gpu_tests.gpu_integration_test_unittest' not in test_case.__module__: for i in xrange(1, 2 + (test_case == webgl_conformance_test_class)): _ = list(test_case.GenerateGpuTests( - MockArgs(webgl_version=('%d.0.0' % i)))) + _GetMockArgs(webgl_version=('%d.0.0' % i)))) if test_case.ExpectationsFiles(): with open(test_case.ExpectationsFiles()[0]) as f: - _checkTestExpectationPatternsForCollision(f.read(), + _CheckTestExpectationPatternsForCollision(f.read(), os.path.basename(f.name)) def testNoCollisionsWithGlobsInGpuTestExpectations(self): @@ -575,19 +530,19 @@ if 'gpu_tests.gpu_integration_test_unittest' not in test_case.__module__: for i in xrange(1, 2 + (test_case == webgl_conformance_test_class)): _ = list(test_case.GenerateGpuTests( - MockArgs(webgl_version=('%d.0.0' % i)))) + _GetMockArgs(webgl_version=('%d.0.0' % i)))) if test_case.ExpectationsFiles(): with open(test_case.ExpectationsFiles()[0]) as f: - _checkTestExpectationGlobsForCollision(f.read(), + _CheckTestExpectationGlobsForCollision(f.read(), os.path.basename(f.name)) def testGpuTestExpectationsAreForExistingTests(self): - options = MockArgs() + options = _GetMockArgs() for test_case in _FindTestCases(): if 'gpu_tests.gpu_integration_test_unittest' not in test_case.__module__: if (test_case.Name() not in ('pixel', 'webgl_conformance') and test_case.ExpectationsFiles()): - _checkTestExpectationsAreForExistingTests(test_case, options) + _CheckTestExpectationsAreForExistingTests(test_case, options) def testWebglTestPathsExist(self): webgl_test_class = ( @@ -596,7 +551,7 @@ if test_case == webgl_test_class: for i in xrange(1, 3): _ = list(test_case.GenerateGpuTests( - MockArgs(webgl_version='%d.0.0' % i))) + _GetMockArgs(webgl_version='%d.0.0' % i))) with open(test_case.ExpectationsFiles()[0], 'r') as f: expectations = expectations_parser.TaggedTestListParser(f.read()) for exp in expectations.expectations: @@ -609,19 +564,19 @@ pixel_test_names.extend( [p.name for p in method( pixel_integration_test.PixelIntegrationTest.test_base_name)]) - _checkTestExpectationsAreForExistingTests( + _CheckTestExpectationsAreForExistingTests( pixel_integration_test.PixelIntegrationTest, - MockArgs(), pixel_test_names) + _GetMockArgs(), pixel_test_names) def testExpectationPatternNotInGeneratedTests(self): with self.assertRaises(AssertionError) as context: - _testCheckTestExpectationsAreForExistingTests('a/b/d [ Failure ]') + _TestCheckTestExpectationsAreForExistingTests('a/b/d [ Failure ]') self.assertIn(("1: Glob 'a/b/d' does not match with any" - " tests in the _MockTestCase test suite"), + " tests in the GpuIntegrationTest test suite"), str(context.exception)) def testGlobMatchesTestName(self): - _testCheckTestExpectationsAreForExistingTests('a/b* [ Failure ]') + _TestCheckTestExpectationsAreForExistingTests('a/b* [ Failure ]') def testOverrideDefaultRetryArgumentsinRunGpuIntegrationTests(self): self._RunGpuIntegrationTests( @@ -645,13 +600,13 @@ # we need to make sure that GenerateTags() returns an empty list if # there are no expectations files returned from ExpectationsFiles() or # else Typ will raise an exception - args = MockArgs() - possible_browser = MockPossibleBrowser() - self.assertFalse(MockTestCaseWithoutExpectationsFile.GenerateTags( + args = _GetMockArgs() + possible_browser = mock.MagicMock() + self.assertFalse(gpu_integration_test.GpuIntegrationTest.GenerateTags( args, possible_browser)) def _TestTagGenerationForMockPlatform(self, test_class, args): - tag_set = _generateNvidiaExampleTagsForTestClassAndArgs( + tag_set = _GenerateNvidiaExampleTagsForTestClassAndArgs( webgl_conformance_integration_test.WebGLConformanceIntegrationTest, args) self.assertTrue( @@ -660,7 +615,7 @@ return tag_set def testGenerateContextLostExampleTagsForAsan(self): - args = MockArgs(is_asan=True) + args = _GetMockArgs(is_asan=True) tag_set = self._TestTagGenerationForMockPlatform( context_lost_integration_test.ContextLostIntegrationTest, args) @@ -668,7 +623,7 @@ self.assertNotIn('no-asan', tag_set) def testGenerateContextLostExampleTagsForNoAsan(self): - args = MockArgs() + args = _GetMockArgs() tag_set = self._TestTagGenerationForMockPlatform( context_lost_integration_test.ContextLostIntegrationTest, args) @@ -676,7 +631,7 @@ self.assertNotIn('asan', tag_set) def testGenerateWebglConformanceExampleTagsForWebglVersion1andAsan(self): - args = MockArgs(is_asan=True, webgl_version='1.0.0') + args = _GetMockArgs(is_asan=True, webgl_version='1.0.0') tag_set = self._TestTagGenerationForMockPlatform( webgl_conformance_integration_test.WebGLConformanceIntegrationTest, args) @@ -684,7 +639,7 @@ self.assertFalse(set(['no-asan', 'webgl-version-2']) & tag_set) def testGenerateWebglConformanceExampleTagsForWebglVersion2andNoAsan(self): - args = MockArgs(is_asan=False, webgl_version='2.0.0') + args = _GetMockArgs(is_asan=False, webgl_version='2.0.0') tag_set = self._TestTagGenerationForMockPlatform( webgl_conformance_integration_test.WebGLConformanceIntegrationTest, args) @@ -692,45 +647,36 @@ self.assertFalse(set(['asan', 'webgl-version-1']) & tag_set) def testGenerateNvidiaExampleTags(self): - args = MockArgs() - platform = MockPlatform('win', 'win10') - browser = MockBrowser( - platform, VENDOR_NVIDIA, 0x1cb3, browser_type='release', - gl_renderer='ANGLE Direct3D9') - possible_browser = MockPossibleBrowser(browser) + platform = fakes.FakePlatform('win', 'win10') + browser = fakes.FakeBrowser(platform, 'release') + browser._returned_system_info = _GetSystemInfo( + gpu=VENDOR_NVIDIA, device=0x1cb3, gl_renderer='ANGLE Direct3D9') self.assertEqual( - set(MockTestCaseWithExpectationsFile.GenerateTags( - args, possible_browser)), + _GetTagsToTest(browser), set(['win', 'win10', 'release', 'nvidia', 'nvidia-0x1cb3', 'd3d9', 'no-passthrough'])) def testGenerateVendorTagUsingVendorString(self): - args = MockArgs() - platform = MockPlatform('mac', 'mojave') - browser = MockBrowser( - platform, browser_type='release', - gl_renderer='ANGLE OpenGL ES', passthrough=True, + platform = fakes.FakePlatform('mac', 'mojave') + browser = fakes.FakeBrowser(platform, 'release') + browser._returned_system_info = _GetSystemInfo( vendor_string=VENDOR_STRING_IMAGINATION, - device_string=DEVICE_STRING_SGX) - possible_browser = MockPossibleBrowser(browser) + device_string=DEVICE_STRING_SGX, + passthrough=True, gl_renderer='ANGLE OpenGL ES') self.assertEqual( - set(MockTestCaseWithExpectationsFile.GenerateTags( - args, possible_browser)), + _GetTagsToTest(browser), set(['mac', 'mojave', 'release', 'imagination', 'imagination-powervr-sgx-554', 'opengles', 'passthrough'])) def testGenerateVendorTagUsingDeviceString(self): - args = MockArgs() - platform = MockPlatform('mac', 'mojave') - browser = MockBrowser( - platform, browser_type='release', + platform = fakes.FakePlatform('mac', 'mojave') + browser = fakes.FakeBrowser(platform, 'release') + browser._returned_system_info = _GetSystemInfo( vendor_string='illegal vendor string', device_string='ANGLE (Imagination, Triangle Monster 3000, 1.0)') - possible_browser = MockPossibleBrowser(browser) self.assertEqual( - set(MockTestCaseWithExpectationsFile.GenerateTags( - args, possible_browser)), + _GetTagsToTest(browser), set(['mac', 'mojave', 'release', 'imagination', 'imagination-triangle-monster-3000', 'no-angle', 'no-passthrough']))
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index f594a24..8947ac82 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -1,7 +1,7 @@ # tags: [ android chromeos highsierra linux mac mojave win ] # tags: [ android-chromium android-webview-instrumentation debug ] # tags: [ skia-renderer no-skia-renderer ] -# tags: [ amd amd-0x6613 amd-0x679e amd-0x6821 intel intel-0xa2e +# tags: [ amd amd-0x6613 amd-0x679e amd-0x6821 intel intel-0xa2e intel-0x5912 # nvidia nvidia-0xfe9 qualcomm-adreno-(tm)-330 qualcomm-adreno-(tm)-418 # qualcomm-adreno-(tm)-420 qualcomm-adreno-(tm)-430 # qualcomm-adreno-(tm)-540 @@ -192,3 +192,6 @@ # Fails when the browser feature SkiaRenderer is enabled crbug.com/976370 [ skia-renderer ] Pixel_CSS3DBlueBox [ Skip ] + +# Produces blank images on Intel HD 630 w/ Mesa 19.0.2 +crbug.com/976861 [ linux intel-0x5912 ] Pixel_OffscreenCanvasTransferToImageBitmap [ Failure ]
diff --git a/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.csv b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.csv new file mode 100644 index 0000000..8c990cf --- /dev/null +++ b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.csv Binary files differ
diff --git a/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.json b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.json new file mode 100644 index 0000000..3ac2e08 --- /dev/null +++ b/content/test/gpu/power_measurement_results/win10_intel_hd_630/build_4759_4426_repeat3.json
@@ -0,0 +1,53494 @@ +{ + "builds": [ + { + "bot": "BUILD132-A9", + "number": 4759, + "tests": [ + { + "DRAM Power_0": [ + 0.5823866666666666, + 0.5764533333333333, + 0.5718724832214762 + ], + "GT Power_0": [ + 0.038879999999999984, + 0.010326666666666666, + 0.009966442953020132 + ], + "IA Power_0": [ + 3.220493333333332, + 3.845860000000002, + 3.0313087248322153 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5699533333333346, + 4.1070600000000015, + 3.2882953020134207 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7202533333333326, + 0.7361192052980128, + 0.7117682119205297 + ], + "GT Power_0": [ + 0.09264666666666667, + 0.09566225165562914, + 0.09649668874172185 + ], + "IA Power_0": [ + 6.829333333333333, + 6.263350993377485, + 6.28644370860927 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.163753333333331, + 6.768185430463577, + 6.646503311258278 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7309072847682114, + 0.7160599999999994, + 0.7382933333333328 + ], + "GT Power_0": [ + 0.09303311258278145, + 0.0916, + 0.09156666666666674 + ], + "IA Power_0": [ + 6.678125827814571, + 6.522126666666667, + 6.277859999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.173092715231789, + 6.791979999999997, + 7.142326666666671 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7715960264900664, + 0.7703666666666666, + 0.7722266666666668 + ], + "GT Power_0": [ + 0.20318543046357612, + 0.20220000000000005, + 0.20260666666666668 + ], + "IA Power_0": [ + 6.877768211920529, + 6.509946666666665, + 6.863893333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.3702450331125835, + 6.98878, + 7.313619999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7365562913907282, + 0.7198145695364232, + 0.7200199999999997 + ], + "GT Power_0": [ + 0.09627814569536429, + 0.09611920529801327, + 0.09822666666666666 + ], + "IA Power_0": [ + 7.0789668874172165, + 6.366079470198675, + 6.65 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4248145695364265, + 6.695635761589402, + 6.969120000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD169-A9", + "number": 4758, + "tests": [ + { + "DRAM Power_0": [ + 0.5789866666666664, + 0.5723377483443711, + 0.571973333333333 + ], + "GT Power_0": [ + 0.03306666666666665, + 0.011781456953642381, + 0.011479999999999997 + ], + "IA Power_0": [ + 3.008753333333334, + 3.3222516556291386, + 2.9635266666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3194599999999976, + 3.574940397350993, + 3.190746666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7109333333333331, + 0.7112266666666662, + 0.710833333333333 + ], + "GT Power_0": [ + 0.10583999999999999, + 0.10608666666666673, + 0.10608000000000002 + ], + "IA Power_0": [ + 5.683573333333331, + 5.998953333333331, + 5.730679999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.063626666666667, + 6.3839066666666655, + 6.106126666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7123399999999996, + 0.7103466666666659, + 0.709793333333333 + ], + "GT Power_0": [ + 0.10800666666666663, + 0.10845333333333332, + 0.10656666666666671 + ], + "IA Power_0": [ + 5.760346666666667, + 5.778360000000003, + 5.758066666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.116973333333336, + 6.120046666666669, + 6.108473333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7891390728476821, + 0.7877333333333337, + 0.7713266666666668 + ], + "GT Power_0": [ + 0.23634437086092713, + 0.23479333333333324, + 0.23487999999999995 + ], + "IA Power_0": [ + 6.737880794701986, + 6.023453333333335, + 6.132913333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.362735099337748, + 6.688939999999998, + 6.65094 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7187999999999998, + 0.71782119205298, + 0.7157533333333331 + ], + "GT Power_0": [ + 0.11425333333333339, + 0.11662251655629138, + 0.11318666666666673 + ], + "IA Power_0": [ + 6.280133333333334, + 5.8874900662251655, + 5.840966666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6627266666666705, + 6.263105960264898, + 6.240113333333336 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD138-A9", + "number": 4757, + "tests": [ + { + "DRAM Power_0": [ + 0.5878999999999994, + 0.5735933333333334, + 0.5866333333333333 + ], + "GT Power_0": [ + 0.011219999999999999, + 0.011326666666666665, + 0.011179999999999997 + ], + "IA Power_0": [ + 2.576366666666667, + 2.6314733333333336, + 2.526793333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.9590666666666645, + 2.887373333333335, + 2.879413333333334 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7398333333333333, + 0.7118874172185429, + 0.7326688741721848 + ], + "GT Power_0": [ + 0.10132, + 0.09700662251655634, + 0.10141059602649007 + ], + "IA Power_0": [ + 4.9895533333333315, + 4.888629139072847, + 5.033490066225166 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.32817333333333, + 5.270715231788076, + 5.52646357615894 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.71328476821192, + 0.7338066666666659, + 0.7123399999999993 + ], + "GT Power_0": [ + 0.10396688741721859, + 0.10222666666666669, + 0.09973333333333337 + ], + "IA Power_0": [ + 4.964834437086094, + 4.950780000000001, + 5.003713333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.35954966887417, + 5.551706666666665, + 5.376233333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7872333333333336, + 0.7779933774834438, + 0.7720132450331131 + ], + "GT Power_0": [ + 0.21635999999999997, + 0.21862913907284773, + 0.21818543046357625 + ], + "IA Power_0": [ + 5.150620000000001, + 5.156086092715233, + 5.097158940397353 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7902666666666684, + 5.676152317880794, + 5.6251788079470195 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7192999999999995, + 0.7179999999999995, + 0.7202133333333326 + ], + "GT Power_0": [ + 0.12082666666666668, + 0.10544000000000003, + 0.10440000000000005 + ], + "IA Power_0": [ + 5.039733333333334, + 5.0146733333333335, + 4.986966666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.450046666666666, + 5.374686666666665, + 5.372499999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD177-A9", + "number": 4756, + "tests": [ + { + "DRAM Power_0": [ + 0.5738133333333333, + 0.5735933333333332, + 0.5726026490066224 + ], + "GT Power_0": [ + 0.026459999999999984, + 0.010566666666666663, + 0.011284768211920527 + ], + "IA Power_0": [ + 3.261306666666667, + 3.230279999999999, + 3.172629139072847 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4948333333333337, + 3.4458800000000003, + 3.406543046357616 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7455800000000002, + 0.7111799999999998, + 0.7113066666666664 + ], + "GT Power_0": [ + 0.09537999999999998, + 0.09700666666666669, + 0.09674666666666668 + ], + "IA Power_0": [ + 7.350939999999999, + 6.191686666666667, + 6.237113333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.726653333333334, + 6.54614, + 6.564153333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7116866666666661, + 0.7297549668874171, + 0.7118799999999996 + ], + "GT Power_0": [ + 0.09612666666666672, + 0.09731125827814568, + 0.09772666666666663 + ], + "IA Power_0": [ + 6.527313333333334, + 6.285304635761589, + 6.303986666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.904506666666668, + 6.910860927152316, + 6.627700000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7705562913907291, + 0.7708333333333341, + 0.7846133333333335 + ], + "GT Power_0": [ + 0.22288079470198677, + 0.22071333333333332, + 0.22292666666666658 + ], + "IA Power_0": [ + 6.515754966887419, + 6.6994, + 6.842313333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.984834437086093, + 7.181699999999999, + 7.489779999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7159602649006621, + 0.716233333333333, + 0.7164304635761585 + ], + "GT Power_0": [ + 0.10542384105960267, + 0.10538000000000004, + 0.10627152317880802 + ], + "IA Power_0": [ + 6.5072052980132415, + 6.408833333333333, + 6.7672119205298005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.788397350993375, + 6.795193333333334, + 7.159238410596027 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD138-A9", + "number": 4755, + "tests": [ + { + "DRAM Power_0": [ + 0.5876199999999998, + 0.58817880794702, + 0.5727466666666666 + ], + "GT Power_0": [ + 0.0416133333333333, + 0.012072847682119204, + 0.010886666666666666 + ], + "IA Power_0": [ + 3.2445800000000022, + 2.604423841059602, + 2.5081333333333347 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.56178, + 2.914973509933777, + 2.8013533333333323 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7289599999999999, + 0.7121324503311252, + 0.7137086092715226 + ], + "GT Power_0": [ + 0.10280666666666669, + 0.09996688741721854, + 0.10031788079470201 + ], + "IA Power_0": [ + 5.0784733333333305, + 4.934735099337746, + 4.980549668874171 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.616066666666666, + 5.328927152317882, + 5.3744105960264905 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7128278145695359, + 0.7116533333333334, + 0.7139399999999994 + ], + "GT Power_0": [ + 0.0984039735099338, + 0.10123999999999997, + 0.10177333333333333 + ], + "IA Power_0": [ + 4.978086092715231, + 4.938526666666666, + 4.988733333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.350602649006623, + 5.307026666666665, + 5.376333333333331 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.807993377483444, + 0.7712000000000008, + 0.8057000000000006 + ], + "GT Power_0": [ + 0.2300794701986756, + 0.21913999999999986, + 0.21979333333333342 + ], + "IA Power_0": [ + 5.178264900662254, + 5.110146666666664, + 5.826126666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.214152317880796, + 5.628219999999998, + 6.460399999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7178933333333328, + 0.719165562913907, + 0.7187086092715234 + ], + "GT Power_0": [ + 0.10734000000000002, + 0.10976821192052977, + 0.10992052980132454 + ], + "IA Power_0": [ + 4.95864, + 5.049695364238413, + 5.046927152317882 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.395413333333334, + 5.420039735099338, + 5.41330463576159 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4754, + "tests": [ + { + "DRAM Power_0": [ + 0.5739666666666667, + 0.5837933333333334, + 0.5721533333333332 + ], + "GT Power_0": [ + 0.03297999999999999, + 0.012480000000000002, + 0.01227333333333333 + ], + "IA Power_0": [ + 3.386600000000001, + 3.384633333333332, + 3.7326266666666683 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6371933333333355, + 3.6814533333333337, + 3.933553333333334 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7092866666666664, + 0.7110728476821188, + 0.711533333333333 + ], + "GT Power_0": [ + 0.11427333333333335, + 0.11711258278145706, + 0.11527333333333335 + ], + "IA Power_0": [ + 6.679999999999999, + 6.739913907284771, + 6.658366666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.023959999999996, + 7.068774834437088, + 7.022913333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7117019867549665, + 0.7122913907284762, + 0.7102066666666661 + ], + "GT Power_0": [ + 0.11410596026490066, + 0.11244370860927157, + 0.11417333333333332 + ], + "IA Power_0": [ + 6.693649006622514, + 7.116205298013249, + 6.736553333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.079476821192053, + 7.460311258278146, + 7.071093333333328 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7892400000000003, + 0.7679733333333335, + 0.7680529801324505 + ], + "GT Power_0": [ + 0.25254, + 0.2528733333333333, + 0.2549470198675497 + ], + "IA Power_0": [ + 6.941319999999999, + 7.392359999999999, + 7.0008013245033105 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.612746666666668, + 7.842033333333332, + 7.515410596026491 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7175629139072843, + 0.7161733333333332, + 0.7298799999999999 + ], + "GT Power_0": [ + 0.12354966887417218, + 0.12163999999999998, + 0.12217333333333334 + ], + "IA Power_0": [ + 6.845132450331123, + 6.846826666666668, + 6.792659999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.20219867549669, + 7.192106666666671, + 7.349913333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4753, + "tests": [ + { + "DRAM Power_0": [ + 0.6028533333333335, + 0.5721533333333335, + 0.5730266666666662 + ], + "GT Power_0": [ + 0.013346666666666665, + 0.012086666666666664, + 0.012679999999999999 + ], + "IA Power_0": [ + 4.535293333333334, + 4.097319999999999, + 3.739066666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.954773333333335, + 4.314373333333335, + 3.9294799999999994 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7114066666666661, + 0.7127466666666663, + 0.7120529801324501 + ], + "GT Power_0": [ + 0.1391, + 0.10658666666666669, + 0.10642384105960265 + ], + "IA Power_0": [ + 7.212833333333331, + 7.17062666666667, + 7.206357615894039 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.475873333333331, + 7.489346666666665, + 7.567046357615891 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7124768211920524, + 0.7128399999999995, + 0.713304635761589 + ], + "GT Power_0": [ + 0.1050264900662252, + 0.10310666666666674, + 0.10762251655629138 + ], + "IA Power_0": [ + 7.5675099337748355, + 7.26802, + 7.222112582781455 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.884821192052979, + 7.581733333333333, + 7.520688741721856 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.76858940397351, + 0.7696953642384108, + 0.7698533333333332 + ], + "GT Power_0": [ + 0.2346423841059603, + 0.2360331125827814, + 0.24752666666666662 + ], + "IA Power_0": [ + 7.839827814569545, + 7.445814569536419, + 7.520966666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.301880794701994, + 7.949006622516562, + 7.988466666666664 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7343933333333329, + 0.7254569536423837, + 0.7191333333333331 + ], + "GT Power_0": [ + 0.11733333333333332, + 0.11387417218543056, + 0.12450666666666668 + ], + "IA Power_0": [ + 7.32480666666667, + 7.362596026490072, + 7.656486666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.846999999999998, + 7.783112582781457, + 8.029000000000002 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4752, + "tests": [ + { + "DRAM Power_0": [ + 0.5775369127516777, + 0.57524, + 0.5864466666666662 + ], + "GT Power_0": [ + 0.028798657718120773, + 0.010159999999999999, + 0.009999999999999998 + ], + "IA Power_0": [ + 2.710496644295305, + 3.1782933333333343, + 2.7063266666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0592416107382547, + 3.413126666666667, + 3.1026866666666666 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7331266666666661, + 0.7128609271523171, + 0.7223576158940395 + ], + "GT Power_0": [ + 0.08146000000000003, + 0.07927152317880791, + 0.08099337748344367 + ], + "IA Power_0": [ + 5.59878666666667, + 5.478874172185428, + 5.5448344370860925 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.097079999999997, + 5.814192052980133, + 5.967788079470197 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7150133333333332, + 0.7334066666666662, + 0.713079999999999 + ], + "GT Power_0": [ + 0.08148666666666667, + 0.08369999999999998, + 0.08217333333333333 + ], + "IA Power_0": [ + 5.839099999999997, + 5.588286666666665, + 5.493573333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.31092, + 6.063733333333335, + 5.820159999999996 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7727533333333337, + 0.772226666666667, + 0.7705000000000002 + ], + "GT Power_0": [ + 0.19367333333333334, + 0.1915333333333333, + 0.1871466666666667 + ], + "IA Power_0": [ + 5.99068, + 5.705260000000001, + 5.701086666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.463680000000002, + 6.154559999999999, + 6.211100000000002 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7206622516556291, + 0.7197748344370859, + 0.7297866666666665 + ], + "GT Power_0": [ + 0.10397350993377483, + 0.08690728476821191, + 0.08537333333333336 + ], + "IA Power_0": [ + 5.906609271523178, + 5.614470198675494, + 6.1769799999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.196602649006624, + 5.96875496688742, + 6.530006666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4751, + "tests": [ + { + "DRAM Power_0": [ + 0.5737799999999996, + 0.5729337748344367, + 0.5727599999999996 + ], + "GT Power_0": [ + 0.04270666666666665, + 0.01342384105960265, + 0.012233333333333334 + ], + "IA Power_0": [ + 3.124939999999999, + 3.335059602649006, + 3.040193333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3770600000000015, + 3.5984966887417213, + 3.2896733333333334 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7270397350993376, + 0.7105799999999993, + 0.7089466666666664 + ], + "GT Power_0": [ + 0.11294039735099337, + 0.10954666666666672, + 0.11266666666666668 + ], + "IA Power_0": [ + 5.8938609271523195, + 5.838006666666665, + 5.947919999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.307516556291392, + 6.21263333333333, + 6.284986666666664 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712126666666666, + 0.7103066666666659, + 0.7255231788079463 + ], + "GT Power_0": [ + 0.1136666666666667, + 0.11309333333333337, + 0.11105298013245037 + ], + "IA Power_0": [ + 6.310986666666666, + 5.9176133333333345, + 5.956013245033112 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.647633333333332, + 6.2807066666666636, + 6.448913907284768 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7668000000000004, + 0.7672200000000001, + 0.7670927152317889 + ], + "GT Power_0": [ + 0.2707666666666667, + 0.26932666666666666, + 0.2689205298013246 + ], + "IA Power_0": [ + 6.379473333333336, + 6.14768, + 6.137417218543046 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.928080000000003, + 6.701186666666667, + 6.704900662251655 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7310993377483438, + 0.7326225165562914, + 0.7150993377483439 + ], + "GT Power_0": [ + 0.11935761589403976, + 0.12361589403973505, + 0.12167549668874171 + ], + "IA Power_0": [ + 6.027456953642385, + 6.038741721854303, + 6.297920529801321 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.600986754966889, + 6.570496688741724, + 6.662390728476823 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD161-A9", + "number": 4750, + "tests": [ + { + "DRAM Power_0": [ + 0.5771879194630871, + 0.5724133333333332, + 0.5724333333333332 + ], + "GT Power_0": [ + 0.041221476510067086, + 0.011953333333333331, + 0.011366666666666666 + ], + "IA Power_0": [ + 2.721161073825504, + 2.7990066666666658, + 2.5301466666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.996395973154364, + 3.044720000000001, + 2.7833933333333336 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7114370860927147, + 0.7172799999999995, + 0.7298066666666663 + ], + "GT Power_0": [ + 0.1046622516556292, + 0.10454000000000001, + 0.10608666666666666 + ], + "IA Power_0": [ + 4.93362913907285, + 4.995753333333335, + 5.19758 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.294523178807949, + 5.37066, + 5.615373333333339 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7269733333333329, + 0.7258933333333332, + 0.7115466666666658 + ], + "GT Power_0": [ + 0.10566666666666671, + 0.11227333333333339, + 0.10277333333333336 + ], + "IA Power_0": [ + 5.058053333333328, + 5.004806666666667, + 4.895859999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.542960000000002, + 5.50124, + 5.299980000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7694768211920532, + 0.768860927152318, + 0.7847866666666672 + ], + "GT Power_0": [ + 0.22829139072847673, + 0.22476158940397342, + 0.2272800000000001 + ], + "IA Power_0": [ + 5.34362251655629, + 5.107092715231787, + 5.129593333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.845927152317876, + 5.617211920529799, + 5.756233333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7171599999999992, + 0.7179867549668869, + 0.7162266666666666 + ], + "GT Power_0": [ + 0.11317999999999998, + 0.11141721854304634, + 0.11191333333333339 + ], + "IA Power_0": [ + 4.9553866666666675, + 5.0708807947019885, + 5.172700000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.339533333333334, + 5.426417218543048, + 5.544699999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4749, + "tests": [ + { + "DRAM Power_0": [ + 0.5802800000000001, + 0.571933333333333, + 0.5730993377483444 + ], + "GT Power_0": [ + 0.037626666666666655, + 0.010486666666666665, + 0.010079470198675496 + ], + "IA Power_0": [ + 2.753733333333333, + 2.688706666666668, + 2.7560728476821197 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.129713333333334, + 2.956573333333334, + 2.983655629139072 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7133399999999992, + 0.7141456953642374, + 0.7136754966887413 + ], + "GT Power_0": [ + 0.08752000000000001, + 0.09245695364238413, + 0.0910397350993377 + ], + "IA Power_0": [ + 5.565806666666666, + 5.425218543046358, + 5.3888874172185455 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.949226666666668, + 5.751112582781455, + 5.752052980132456 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7142799999999996, + 0.7128741721854299, + 0.7128866666666661 + ], + "GT Power_0": [ + 0.09142666666666668, + 0.09076821192052979, + 0.09130666666666672 + ], + "IA Power_0": [ + 5.630673333333332, + 5.397291390728481, + 5.425633333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.980633333333337, + 5.744708609271524, + 5.723479999999999 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7710993377483447, + 0.784093333333334, + 0.7722600000000004 + ], + "GT Power_0": [ + 0.19949006622516563, + 0.19997333333333345, + 0.19882 + ], + "IA Power_0": [ + 5.56413907284768, + 5.5095133333333335, + 5.856086666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.038331125827815, + 6.020786666666669, + 6.322613333333336 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7342913907284765, + 0.7185298013245033, + 0.7355562913907283 + ], + "GT Power_0": [ + 0.09565562913907286, + 0.09366887417218539, + 0.09284768211920531 + ], + "IA Power_0": [ + 5.4469933774834445, + 5.432172185430463, + 5.704178807947022 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.942701986754971, + 5.792046357615892, + 6.141337748344373 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4748, + "tests": [ + { + "DRAM Power_0": [ + 0.5761476510067113, + 0.5706133333333333, + 0.571846666666667 + ], + "GT Power_0": [ + 0.04175838926174494, + 0.012853333333333331, + 0.012186666666666665 + ], + "IA Power_0": [ + 3.1962483221476505, + 2.98606, + 3.1094 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.444577181208056, + 3.232513333333334, + 3.3306199999999992 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7097999999999992, + 0.709370860927152, + 0.7104238410596023 + ], + "GT Power_0": [ + 0.11116666666666669, + 0.11605960264900661, + 0.11596026490066232 + ], + "IA Power_0": [ + 5.834853333333334, + 6.147947019867547, + 5.889397350993376 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.213593333333334, + 6.566225165562912, + 6.215841059602646 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7092733333333331, + 0.7245266666666667, + 0.711172185430463 + ], + "GT Power_0": [ + 0.11260000000000008, + 0.11325333333333333, + 0.11696688741721849 + ], + "IA Power_0": [ + 5.892073333333332, + 6.138579999999998, + 5.858019867549671 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.246886666666667, + 6.633933333333332, + 6.256311258278147 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7835933333333338, + 0.7655562913907291, + 0.767127516778524 + ], + "GT Power_0": [ + 0.27390666666666685, + 0.2736158940397352, + 0.2741409395973155 + ], + "IA Power_0": [ + 5.958946666666668, + 6.012721854304636, + 5.989577181208054 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7111133333333335, + 6.5811788079470235, + 6.554174496644294 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7143066666666661, + 0.7145266666666663, + 0.732913333333333 + ], + "GT Power_0": [ + 0.12320666666666673, + 0.11959333333333333, + 0.12198666666666674 + ], + "IA Power_0": [ + 6.197953333333336, + 5.872653333333335, + 5.975706666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.606139999999999, + 6.248659999999997, + 6.4439199999999985 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4747, + "tests": [ + { + "DRAM Power_0": [ + 0.5857133333333331, + 0.5720198675496692, + 0.5715827814569535 + ], + "GT Power_0": [ + 0.03230666666666664, + 0.01151655629139073, + 0.011430463576158937 + ], + "IA Power_0": [ + 3.3807066666666654, + 3.0497019867549673, + 3.0257417218543035 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6446866666666664, + 3.275092715231788, + 3.2572582781456956 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7112847682119199, + 0.7115960264900659, + 0.7106666666666667 + ], + "GT Power_0": [ + 0.10202649006622516, + 0.10021854304635769, + 0.10131333333333335 + ], + "IA Power_0": [ + 6.234629139072849, + 5.922079470198674, + 5.92483333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.596397350993374, + 6.2686953642384085, + 6.251159999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7128999999999996, + 0.7126066666666662, + 0.7135033112582778 + ], + "GT Power_0": [ + 0.10317333333333328, + 0.10110000000000005, + 0.10158278145695365 + ], + "IA Power_0": [ + 6.302146666666666, + 5.953679999999997, + 5.915476821192053 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.636660000000004, + 6.333693333333334, + 6.27262251655629 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7709866666666672, + 0.7825733333333337, + 0.77053642384106 + ], + "GT Power_0": [ + 0.22585333333333332, + 0.24111999999999995, + 0.22322516556291397 + ], + "IA Power_0": [ + 6.231339999999999, + 6.17029333333333, + 6.381430463576155 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7031066666666606, + 6.805673333333334, + 6.91496026490066 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7182781456953639, + 0.7171125827814568, + 0.7167466666666661 + ], + "GT Power_0": [ + 0.11357615894039741, + 0.1091788079470199, + 0.10334666666666667 + ], + "IA Power_0": [ + 5.99353642384106, + 6.06048344370861, + 6.037759999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.394821192052982, + 6.420026490066225, + 6.37262 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD138-A9", + "number": 4746, + "tests": [ + { + "DRAM Power_0": [ + 0.5722953020134228, + 0.5878600000000002, + 0.5995167785234896 + ], + "GT Power_0": [ + 0.010785234899328857, + 0.012206666666666668, + 0.011644295302013424 + ], + "IA Power_0": [ + 2.593953020134227, + 2.6526199999999993, + 3.1091409395973164 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.834691275167785, + 2.9666200000000007, + 3.4234429530201362 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7145629139072845, + 0.733213333333333, + 0.718946308724832 + ], + "GT Power_0": [ + 0.09717880794701986, + 0.1000666666666667, + 0.10208053691275168 + ], + "IA Power_0": [ + 5.027841059602649, + 5.628300000000001, + 5.549751677852349 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.388139072847685, + 6.005126666666667, + 5.937577181208054 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7310399999999995, + 0.7169735099337742, + 0.727626666666666 + ], + "GT Power_0": [ + 0.10059333333333334, + 0.10118543046357618, + 0.09754666666666667 + ], + "IA Power_0": [ + 5.038226666666668, + 5.108913907284766, + 5.023700000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.534126666666666, + 5.420576158940396, + 5.509046666666668 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.771629139072848, + 0.7705695364238414, + 0.7719933333333335 + ], + "GT Power_0": [ + 0.2126291390728478, + 0.2108741721854304, + 0.21138666666666667 + ], + "IA Power_0": [ + 5.156900662251656, + 5.22074834437086, + 5.179799999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.668158940397355, + 5.711596026490068, + 5.687306666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.719754966887417, + 0.7206092715231786, + 0.8378791946308719 + ], + "GT Power_0": [ + 0.1053112582781458, + 0.10429801324503316, + 0.105013422818792 + ], + "IA Power_0": [ + 5.191907284768213, + 5.1217483443708645, + 8.504751677852347 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.606304635761585, + 5.488192052980132, + 8.86422147651007 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 149 + ] + } + ] + }, + { + "bot": "BUILD142-A9", + "number": 4745, + "tests": [ + { + "DRAM Power_0": [ + 0.5740799999999998, + 0.5733533333333334, + 0.5715666666666662 + ], + "GT Power_0": [ + 0.04374666666666663, + 0.01344666666666667, + 0.012026666666666665 + ], + "IA Power_0": [ + 3.079246666666668, + 3.0519933333333333, + 3.0144066666666656 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3155333333333323, + 3.287473333333333, + 3.22186 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7220999999999999, + 0.7135600000000001, + 0.7119072847682112 + ], + "GT Power_0": [ + 0.11915999999999997, + 0.12065333333333338, + 0.12209933774834437 + ], + "IA Power_0": [ + 6.36762, + 5.962393333333336, + 5.9138940397351005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7312266666666645, + 6.3049066666666675, + 6.422668874172187 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7222266666666661, + 0.7132781456953637, + 0.7131059602649008 + ], + "GT Power_0": [ + 0.11912666666666664, + 0.11509933774834437, + 0.11840397350993383 + ], + "IA Power_0": [ + 6.3177, + 6.314218543046354, + 5.976596026490067 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.695726666666664, + 6.685185430463576, + 6.343794701986755 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7787152317880801, + 0.7687516778523495, + 0.8207866666666674 + ], + "GT Power_0": [ + 0.26543046357615896, + 0.2592348993288591, + 0.27895333333333333 + ], + "IA Power_0": [ + 6.613529801324502, + 6.204295302013419, + 6.236393333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.138390728476822, + 6.669845637583893, + 7.330793333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7451533333333332, + 0.7362715231788076, + 0.7172466666666665 + ], + "GT Power_0": [ + 0.12738, + 0.12949668874172188, + 0.12163333333333334 + ], + "IA Power_0": [ + 7.259639999999999, + 6.0482847682119205, + 6.026699999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.61464, + 6.5707019867549645, + 6.409906666666664 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD153-A9", + "number": 4744, + "tests": [ + { + "DRAM Power_0": [ + 0.5801800000000001, + 0.5845430463576159, + 0.5865562913907286 + ], + "GT Power_0": [ + 0.039606666666666644, + 0.010854304635761584, + 0.010887417218543045 + ], + "IA Power_0": [ + 2.751373333333334, + 2.667490066225165, + 3.086165562913907 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.069726666666666, + 2.950602649006624, + 3.3878741721854295 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7120066666666661, + 0.711715231788079, + 0.7291059602648998 + ], + "GT Power_0": [ + 0.08508666666666669, + 0.08486754966887415, + 0.08849668874172191 + ], + "IA Power_0": [ + 5.067886666666669, + 5.15251655629139, + 5.148986754966888 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.426593333333332, + 5.504364238410596, + 5.575933774834441 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7263133333333329, + 0.7134039735099336, + 0.7113841059602644 + ], + "GT Power_0": [ + 0.08603333333333332, + 0.08735099337748345, + 0.08705960264900663 + ], + "IA Power_0": [ + 5.106746666666665, + 5.349543046357612, + 5.143456953642384 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.53146, + 5.692165562913908, + 5.480099337748345 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7700933333333332, + 0.7708410596026494, + 0.7681866666666672 + ], + "GT Power_0": [ + 0.19640000000000002, + 0.19181456953642378, + 0.1959733333333333 + ], + "IA Power_0": [ + 5.231133333333335, + 5.310635761589402, + 5.246066666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.718873333333333, + 5.779953642384103, + 5.711613333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.727913333333333, + 0.7192599999999997, + 0.7163245033112577 + ], + "GT Power_0": [ + 0.10087333333333338, + 0.09236666666666665, + 0.09147019867549669 + ], + "IA Power_0": [ + 5.7794533333333336, + 5.169446666666667, + 5.144960264900662 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2155933333333335, + 5.524613333333331, + 5.511456953642385 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD143-A9", + "number": 4743, + "tests": [ + { + "DRAM Power_0": [ + 0.6030866666666668, + 0.5878133333333331, + 0.5712466666666665 + ], + "GT Power_0": [ + 0.039573333333333315, + 0.012306666666666664, + 0.011899999999999999 + ], + "IA Power_0": [ + 3.5318066666666654, + 2.79248, + 2.7649666666666683 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8484066666666674, + 3.12616, + 2.9777799999999996 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7129139072847681, + 0.7111999999999995, + 0.7294900662251653 + ], + "GT Power_0": [ + 0.11463576158940399, + 0.1129866666666667, + 0.11443046357615894 + ], + "IA Power_0": [ + 5.520867549668877, + 5.207533333333335, + 5.269331125827816 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.885430463576162, + 5.610966666666667, + 5.717456953642384 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7118543046357613, + 0.7142933333333326, + 0.7277133333333329 + ], + "GT Power_0": [ + 0.12360264900662254, + 0.11246000000000002, + 0.11304666666666673 + ], + "IA Power_0": [ + 5.295158940397353, + 5.277926666666669, + 5.5849866666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.707503311258277, + 5.676373333333337, + 6.081273333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7708733333333339, + 0.8160266666666672, + 0.7708211920529807 + ], + "GT Power_0": [ + 0.24037333333333336, + 0.27036666666666664, + 0.2413708609271525 + ], + "IA Power_0": [ + 5.396639999999999, + 5.527593333333334, + 5.717198675496689 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.942393333333334, + 6.352633333333335, + 6.243251655629143 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7189602649006619, + 0.7175799999999997, + 0.7177266666666661 + ], + "GT Power_0": [ + 0.12170860927152313, + 0.12811333333333327, + 0.12037999999999997 + ], + "IA Power_0": [ + 5.364033112582781, + 5.439999999999998, + 5.443460000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.756933774834437, + 5.7677466666666675, + 5.8236399999999975 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD136-A9", + "number": 4742, + "tests": [ + { + "DRAM Power_0": [ + 0.5734666666666667, + 0.5874266666666669, + 0.572033333333333 + ], + "GT Power_0": [ + 0.03801999999999999, + 0.011539999999999995, + 0.010106666666666668 + ], + "IA Power_0": [ + 2.7727399999999993, + 2.732326666666667, + 2.690886666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.031733333333332, + 3.049600000000001, + 2.9523666666666655 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7102333333333332, + 0.7114533333333329, + 0.7115999999999996 + ], + "GT Power_0": [ + 0.09550666666666664, + 0.09436666666666668, + 0.09496000000000003 + ], + "IA Power_0": [ + 5.207879999999998, + 5.258793333333335, + 5.254426666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.555433333333334, + 5.607406666666668, + 5.552766666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7296599999999996, + 0.8572550335570467, + 0.7343733333333328 + ], + "GT Power_0": [ + 0.09373333333333338, + 0.09271812080536913, + 0.09208666666666672 + ], + "IA Power_0": [ + 5.42222, + 8.907342281879195, + 6.302359999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.870473333333334, + 9.661718120805372, + 6.652013333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7741933333333337, + 0.7686225165562921, + 0.7916040268456382 + ], + "GT Power_0": [ + 0.20254000000000008, + 0.20380132450331126, + 0.20685906040268465 + ], + "IA Power_0": [ + 5.714733333333332, + 5.4856225165562895, + 5.5084630872483205 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.242373333333331, + 5.976662251655632, + 6.26645637583893 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7174503311258273, + 0.7322847682119205, + 0.7166423841059598 + ], + "GT Power_0": [ + 0.09908609271523182, + 0.09881456953642385, + 0.10031788079470201 + ], + "IA Power_0": [ + 5.407596026490066, + 5.398768211920531, + 5.509496688741723 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.782807947019867, + 5.847715231788082, + 5.800602649006622 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD178-A9", + "number": 4741, + "tests": [ + { + "DRAM Power_0": [ + 0.5719666666666665, + 0.586946666666667, + 0.5707549668874172 + ], + "GT Power_0": [ + 0.0375, + 0.010020000000000001, + 0.009503311258278142 + ], + "IA Power_0": [ + 2.9898266666666657, + 2.86814, + 3.213238410596027 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3660266666666665, + 3.215713333333333, + 3.4341854304635753 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7106688741721849, + 0.7113266666666663, + 0.7251324503311253 + ], + "GT Power_0": [ + 0.07356953642384108, + 0.07300000000000002, + 0.07415894039735098 + ], + "IA Power_0": [ + 5.748781456953642, + 5.789466666666667, + 5.812986754966887 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.078920529801327, + 6.106226666666667, + 6.219403973509936 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7122799999999994, + 0.7125496688741716, + 0.7105733333333333 + ], + "GT Power_0": [ + 0.07389333333333331, + 0.07607284768211918, + 0.07246000000000001 + ], + "IA Power_0": [ + 5.801273333333332, + 6.068735099337749, + 5.759986666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.114033333333334, + 6.390119205298013, + 6.068020000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7692600000000003, + 0.7687466666666664, + 0.7695800000000003 + ], + "GT Power_0": [ + 0.17743333333333325, + 0.17811333333333337, + 0.17899333333333337 + ], + "IA Power_0": [ + 5.942099999999996, + 6.232620000000003, + 5.946213333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.385793333333337, + 6.705906666666665, + 6.417626666666662 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.738251655629139, + 0.7275298013245032, + 0.7180133333333332 + ], + "GT Power_0": [ + 0.08116556291390728, + 0.0793046357615894, + 0.07880666666666664 + ], + "IA Power_0": [ + 5.949185430463575, + 6.5631523178807925, + 5.84145333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.5070529801324515, + 6.879231788079465, + 6.2106333333333374 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD143-A9", + "number": 4740, + "tests": [ + { + "DRAM Power_0": [ + 0.584453333333333, + 0.5851390728476823, + 0.5734333333333331 + ], + "GT Power_0": [ + 0.030159999999999996, + 0.01239072847682119, + 0.012359999999999998 + ], + "IA Power_0": [ + 3.0867866666666655, + 2.6792317880794694, + 3.0714066666666677 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.400153333333335, + 3.034476821192053, + 3.323806666666669 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7139668874172178, + 0.7297880794701983, + 0.7298079470198672 + ], + "GT Power_0": [ + 0.11295364238410596, + 0.11207947019867552, + 0.11185430463576157 + ], + "IA Power_0": [ + 5.317913907284769, + 5.302350993377484, + 5.530298013245031 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.701, + 5.951867549668871, + 6.049046357615893 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7292933333333326, + 0.7115333333333326, + 0.711893333333333 + ], + "GT Power_0": [ + 0.10857333333333337, + 0.10947333333333335, + 0.1061266666666667 + ], + "IA Power_0": [ + 5.369260000000001, + 5.332613333333334, + 5.390593333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.830619999999998, + 5.708079999999996, + 5.739593333333337 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7696400000000004, + 0.7690397350993381, + 0.7774533333333338 + ], + "GT Power_0": [ + 0.23507333333333344, + 0.23829139072847685, + 0.23152666666666677 + ], + "IA Power_0": [ + 5.527233333333335, + 5.731927152317881, + 6.066599999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.008733333333336, + 6.273529801324503, + 6.592253333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.729496688741721, + 0.7186466666666661, + 0.7172999999999994 + ], + "GT Power_0": [ + 0.11481456953642387, + 0.11542666666666672, + 0.11372666666666674 + ], + "IA Power_0": [ + 5.3675231788079465, + 5.64598, + 5.337366666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.862668874172183, + 6.047859999999999, + 5.752546666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD166-A9", + "number": 4739, + "tests": [ + { + "DRAM Power_0": [ + 0.5725933333333332, + 0.5723333333333331, + 0.5718933333333337 + ], + "GT Power_0": [ + 0.039746666666666645, + 0.01226, + 0.012340000000000002 + ], + "IA Power_0": [ + 2.965806666666664, + 2.930133333333333, + 2.853086666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2078, + 3.172180000000001, + 3.103913333333334 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712073333333333, + 0.7292599999999996, + 0.7298866666666665 + ], + "GT Power_0": [ + 0.11999333333333335, + 0.1214066666666668, + 0.11652666666666668 + ], + "IA Power_0": [ + 5.7868466666666665, + 6.511613333333336, + 5.824513333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.132186666666666, + 6.953733333333333, + 6.329580000000005 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7124172185430461, + 0.7302599999999995, + 0.7118145695364232 + ], + "GT Power_0": [ + 0.11696688741721852, + 0.11641333333333333, + 0.11450331125827815 + ], + "IA Power_0": [ + 5.773390728476821, + 5.83932, + 5.81069536423841 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.190251655629139, + 6.200066666666671, + 6.205854304635762 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7689205298013246, + 0.7791125827814573, + 0.7682317880794707 + ], + "GT Power_0": [ + 0.25747019867549664, + 0.2619271523178808, + 0.259337748344371 + ], + "IA Power_0": [ + 6.395390728476818, + 6.5026291390728455, + 6.026390728476821 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.940079470198673, + 7.04015894039735, + 6.592701986754967 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7171333333333328, + 0.7308933333333332, + 0.7303178807947017 + ], + "GT Power_0": [ + 0.12328, + 0.12164000000000007, + 0.1235165562913908 + ], + "IA Power_0": [ + 6.183753333333332, + 5.879393333333334, + 5.888145695364239 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.5814933333333325, + 6.437866666666664, + 6.295423841059605 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD177-A9", + "number": 4738, + "tests": [ + { + "DRAM Power_0": [ + 0.5793509933774836, + 0.5712666666666665, + 0.571333333333333 + ], + "GT Power_0": [ + 0.02767549668874171, + 0.010666666666666665, + 0.010546666666666666 + ], + "IA Power_0": [ + 3.233523178807946, + 3.1098533333333354, + 3.0886466666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.531900662251655, + 3.3239000000000005, + 3.3005866666666677 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7116599999999994, + 0.7326666666666661, + 0.7135999999999999 + ], + "GT Power_0": [ + 0.09874666666666669, + 0.09194000000000005, + 0.09696000000000003 + ], + "IA Power_0": [ + 6.135193333333334, + 6.366340000000001, + 6.134533333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.419540000000002, + 7.133793333333333, + 6.470326666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7263907284768207, + 0.7130728476821188, + 0.727873333333333 + ], + "GT Power_0": [ + 0.09552980132450335, + 0.09139072847682125, + 0.09340000000000007 + ], + "IA Power_0": [ + 6.119311258278145, + 6.642913907284767, + 6.122119999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.562410596026489, + 6.934364238410593, + 6.547673333333331 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8027866666666673, + 0.7693600000000004, + 0.7692000000000005 + ], + "GT Power_0": [ + 0.21595333333333333, + 0.21319333333333343, + 0.2138933333333335 + ], + "IA Power_0": [ + 7.5210333333333335, + 6.288366666666666, + 6.3487333333333344 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.169686666666665, + 6.80421333333333, + 6.803773333333336 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172999999999994, + 0.7173666666666665, + 0.7381721854304633 + ], + "GT Power_0": [ + 0.10230000000000007, + 0.09841333333333332, + 0.10090728476821194 + ], + "IA Power_0": [ + 6.531706666666668, + 6.158246666666666, + 6.158198675496689 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.889233333333333, + 6.520633333333335, + 6.99978145695364 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD174-A9", + "number": 4737, + "tests": [ + { + "DRAM Power_0": [ + 0.5808000000000001, + 0.5787718120805365, + 0.5728013245033111 + ], + "GT Power_0": [ + 0.03706666666666666, + 0.012738255033557046, + 0.013059602649006625 + ], + "IA Power_0": [ + 3.7926466666666663, + 3.943516778523489, + 3.1746821192052987 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.0521933333333315, + 4.1853758389261735, + 3.4006754966887414 + ], + "name": "Basic", + "samples": [ + 150, + 149, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7112582781456949, + 0.712258278145695, + 0.7117466666666662 + ], + "GT Power_0": [ + 0.11218543046357614, + 0.11360927152317879, + 0.11456666666666673 + ], + "IA Power_0": [ + 6.56280794701987, + 6.236390728476826, + 6.306413333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.944052980132454, + 6.628715231788081, + 6.691599999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7250999999999995, + 0.7118933333333332, + 0.7124133333333327 + ], + "GT Power_0": [ + 0.11410666666666672, + 0.11350666666666666, + 0.12134000000000005 + ], + "IA Power_0": [ + 7.112720000000001, + 6.264046666666665, + 6.675046666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.418386666666667, + 6.6112666666666655, + 7.003520000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7704503311258281, + 0.7702781456953647, + 0.7710066225165565 + ], + "GT Power_0": [ + 0.246271523178808, + 0.2539801324503312, + 0.24968874172185432 + ], + "IA Power_0": [ + 6.49922516556291, + 6.4752781456953645, + 6.863463576158944 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.98615894039735, + 7.003854304635759, + 7.373735099337754 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7167466666666662, + 0.7254768211920524, + 0.7185099337748339 + ], + "GT Power_0": [ + 0.11785333333333341, + 0.12108609271523178, + 0.1214966887417219 + ], + "IA Power_0": [ + 6.334040000000003, + 6.527582781456956, + 6.389668874172188 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.717386666666667, + 6.885337748344368, + 6.736350993377483 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4736, + "tests": [ + { + "DRAM Power_0": [ + 0.5990399999999996, + 0.5718933333333333, + 0.578786666666667 + ], + "GT Power_0": [ + 0.033766666666666646, + 0.010366666666666665, + 0.010039999999999999 + ], + "IA Power_0": [ + 3.2036000000000007, + 2.692353333333334, + 3.244640000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5325133333333354, + 2.944859999999999, + 3.4569733333333343 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7155733333333333, + 0.7287549668874168, + 0.71328 + ], + "GT Power_0": [ + 0.08673999999999998, + 0.08589403973509933, + 0.08685333333333332 + ], + "IA Power_0": [ + 5.952913333333333, + 5.545649006622513, + 5.551720000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.314593333333336, + 6.040490066225165, + 5.874120000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7123533333333333, + 0.711827814569536, + 0.7128599999999995 + ], + "GT Power_0": [ + 0.08149333333333338, + 0.08245695364238413, + 0.08132000000000003 + ], + "IA Power_0": [ + 5.462033333333332, + 5.521311258278145, + 5.830666666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.807733333333332, + 5.8594304635761585, + 6.157653333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7825133333333336, + 0.7686000000000011, + 0.7706556291390735 + ], + "GT Power_0": [ + 0.19236666666666669, + 0.19260000000000005, + 0.192748344370861 + ], + "IA Power_0": [ + 5.744520000000002, + 5.63158, + 5.762132450331125 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.396760000000003, + 6.141406666666666, + 6.256238410596026 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7205999999999997, + 0.7189602649006617, + 0.7176733333333328 + ], + "GT Power_0": [ + 0.08726666666666666, + 0.0891523178807947, + 0.09055333333333337 + ], + "IA Power_0": [ + 5.6589866666666655, + 5.881781456953642, + 5.6212599999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.010439999999999, + 6.234854304635763, + 5.973153333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4735, + "tests": [ + { + "DRAM Power_0": [ + 0.6170133333333333, + 0.6069133333333334, + 0.6120827586206893 + ], + "GT Power_0": [ + 0.029126666666666648, + 0.011459999999999998, + 0.01082068965517241 + ], + "IA Power_0": [ + 4.8066533333333314, + 4.817380000000001, + 5.587220689655174 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.141299999999998, + 5.029340000000001, + 5.899627586206898 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 145 + ] + }, + { + "DRAM Power_0": [ + 0.7016174496644287, + 0.7542770270270268, + 0.7062123287671231 + ], + "GT Power_0": [ + 0.09318791946308731, + 0.09296621621621622, + 0.09076027397260278 + ], + "IA Power_0": [ + 10.566308724832215, + 8.44235810810811, + 9.037465753424657 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 11.01642953020134, + 8.920283783783784, + 9.450979452054794 + ], + "name": "Video_720_MP4", + "samples": [ + 149, + 148, + 146 + ] + }, + { + "DRAM Power_0": [ + 0.7768410596026492, + 0.7693800000000003, + 0.7277066666666666 + ], + "GT Power_0": [ + 0.09335099337748348, + 0.0944866666666667, + 0.09651333333333335 + ], + "IA Power_0": [ + 7.7776357615894, + 7.95486, + 6.755960000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.744827814569538, + 8.74272, + 7.242633333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7708066666666669, + 0.7693200000000003, + 0.7752800000000005 + ], + "GT Power_0": [ + 0.22034000000000006, + 0.22338000000000008, + 0.22107333333333334 + ], + "IA Power_0": [ + 6.554566666666667, + 6.503540000000001, + 6.652733333333329 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.035253333333332, + 6.977713333333331, + 7.250946666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172781456953641, + 0.7244039735099336, + 0.7176066666666663 + ], + "GT Power_0": [ + 0.10523178807947021, + 0.1119470198675497, + 0.10494666666666663 + ], + "IA Power_0": [ + 6.377781456953644, + 6.811735099337745, + 6.429033333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7680927152317905, + 7.134721854304637, + 6.755259999999998 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD176-A9", + "number": 4734, + "tests": [ + { + "DRAM Power_0": [ + 0.5860133333333329, + 0.5870066225165566, + 0.5853112582781459 + ], + "GT Power_0": [ + 0.03277333333333331, + 0.011801324503311257, + 0.011953642384105961 + ], + "IA Power_0": [ + 3.07366, + 2.6181721854304625, + 2.6531986754966894 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3930533333333326, + 2.9790264900662247, + 2.9657350993377483 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7104399999999998, + 0.711346666666666, + 0.7109139072847679 + ], + "GT Power_0": [ + 0.10376666666666673, + 0.1045666666666667, + 0.10137748344370863 + ], + "IA Power_0": [ + 5.394686666666668, + 5.087446666666666, + 5.454417218543051 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.749979999999997, + 5.468346666666663, + 5.781741721854304 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7264768211920527, + 0.7123377483443704, + 0.7282185430463574 + ], + "GT Power_0": [ + 0.10230463576158944, + 0.10305960264900663, + 0.10393377483443716 + ], + "IA Power_0": [ + 5.132033112582783, + 5.161814569536423, + 5.366576158940398 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.5974370860927145, + 5.521847682119203, + 5.766139072847681 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.769086092715232, + 0.7704370860927158, + 0.7690733333333334 + ], + "GT Power_0": [ + 0.22764238410596038, + 0.22027814569536427, + 0.22182666666666667 + ], + "IA Power_0": [ + 5.3509801324503306, + 5.276655629139071, + 5.497033333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.822403973509933, + 5.766192052980132, + 6.024693333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7178799999999994, + 0.7333266666666661, + 0.7173933333333328 + ], + "GT Power_0": [ + 0.10786666666666664, + 0.10676000000000005, + 0.11396666666666673 + ], + "IA Power_0": [ + 5.139606666666666, + 5.243633333333332, + 5.37410666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.5210199999999965, + 5.790613333333331, + 5.754213333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD178-A9", + "number": 4733, + "tests": [ + { + "DRAM Power_0": [ + 0.6150399999999995, + 0.5715960264900664, + 0.571311258278146 + ], + "GT Power_0": [ + 0.03607999999999997, + 0.009655629139072848, + 0.009384105960264897 + ], + "IA Power_0": [ + 4.36113333333333, + 2.9575430463576162, + 2.8314635761589404 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.625040000000001, + 3.1499602649006615, + 3.1148940397350993 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7133266666666664, + 0.726806666666666, + 0.7318199999999995 + ], + "GT Power_0": [ + 0.07391333333333336, + 0.07604666666666668, + 0.07479999999999998 + ], + "IA Power_0": [ + 6.094506666666667, + 5.787926666666664, + 6.368206666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.422633333333334, + 6.2308133333333355, + 6.772393333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7224569536423835, + 0.7143046357615884, + 0.731993333333333 + ], + "GT Power_0": [ + 0.08616556291390723, + 0.07546357615894037, + 0.07526000000000001 + ], + "IA Power_0": [ + 6.073350993377485, + 5.793503311258279, + 6.294300000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.541046357615892, + 6.10047682119205, + 6.772519999999999 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7692317880794702, + 0.7861192052980133, + 0.7699333333333336 + ], + "GT Power_0": [ + 0.182, + 0.1800794701986755, + 0.18027333333333334 + ], + "IA Power_0": [ + 5.8929801324503295, + 5.9391125827814575, + 6.208873333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.388099337748346, + 6.531814569536421, + 6.64689333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7183178807947015, + 0.7190662251655625, + 0.7165033112582775 + ], + "GT Power_0": [ + 0.07968874172185438, + 0.08039072847682122, + 0.07984768211920529 + ], + "IA Power_0": [ + 5.960562913907285, + 5.843463576158941, + 5.789536423841061 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.291357615894042, + 6.168827814569536, + 6.126920529801324 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD136-A9", + "number": 4732, + "tests": [ + { + "DRAM Power_0": [ + 0.6045866666666667, + 0.6138590604026839, + 0.5731133333333331 + ], + "GT Power_0": [ + 0.035846666666666645, + 0.010993288590604024, + 0.010146666666666663 + ], + "IA Power_0": [ + 3.9193200000000026, + 5.004684563758385, + 2.7837866666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.280273333333332, + 5.283557046979864, + 3.053406666666666 + ], + "name": "Basic", + "samples": [ + 150, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7366933333333332, + 0.7143973509933769, + 0.712834437086092 + ], + "GT Power_0": [ + 0.09737333333333335, + 0.09434437086092717, + 0.09476821192052988 + ], + "IA Power_0": [ + 5.553420000000004, + 5.28719205298013, + 5.279860927152319 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.988373333333339, + 5.643993377483443, + 5.656748344370862 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7130533333333325, + 0.7128399999999994, + 0.713493333333333 + ], + "GT Power_0": [ + 0.09416666666666665, + 0.09342666666666671, + 0.09007333333333332 + ], + "IA Power_0": [ + 5.261186666666665, + 5.335453333333334, + 5.331786666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.662766666666667, + 5.70496, + 5.636806666666662 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7700331125827818, + 0.7853733333333337, + 0.768913333333334 + ], + "GT Power_0": [ + 0.20062251655629132, + 0.2032000000000001, + 0.2040466666666667 + ], + "IA Power_0": [ + 5.449271523178809, + 5.459753333333334, + 5.48554666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9701788079470175, + 6.0597466666666655, + 6.006726666666671 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7167733333333327, + 0.7259799999999993, + 0.7347866666666664 + ], + "GT Power_0": [ + 0.10309333333333334, + 0.09922000000000003, + 0.09902666666666668 + ], + "IA Power_0": [ + 5.287493333333331, + 5.389573333333336, + 5.353866666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.689859999999997, + 5.783373333333332, + 5.932653333333331 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4731, + "tests": [ + { + "DRAM Power_0": [ + 0.5809599999999997, + 0.5824066666666667, + 0.5838940397350992 + ], + "GT Power_0": [ + 0.027979999999999984, + 0.010559999999999998, + 0.01086754966887417 + ], + "IA Power_0": [ + 2.738846666666666, + 2.7268999999999983, + 3.0096953642384126 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0390866666666656, + 2.9889066666666677, + 3.2510198675496684 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7115999999999993, + 0.7214266666666662, + 0.7132399999999997 + ], + "GT Power_0": [ + 0.09184666666666662, + 0.08994000000000003, + 0.08718666666666668 + ], + "IA Power_0": [ + 5.325753333333334, + 5.377593333333332, + 5.636939999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.690293333333329, + 5.767213333333336, + 5.988873333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7110666666666661, + 0.7260666666666664, + 0.712866666666666 + ], + "GT Power_0": [ + 0.08645333333333337, + 0.0877400000000001, + 0.0859 + ], + "IA Power_0": [ + 5.361333333333333, + 5.312053333333337, + 5.40402666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.724006666666665, + 5.7018666666666675, + 5.754839999999999 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7685133333333336, + 0.7857218543046364, + 0.7692266666666673 + ], + "GT Power_0": [ + 0.1970733333333334, + 0.1968145695364239, + 0.19746000000000008 + ], + "IA Power_0": [ + 5.55394, + 5.825350993377483, + 5.554113333333329 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.033433333333336, + 6.360841059602647, + 6.003533333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7164399999999995, + 0.736059999999999, + 0.7163841059602647 + ], + "GT Power_0": [ + 0.09125999999999995, + 0.09391333333333332, + 0.09456953642384106 + ], + "IA Power_0": [ + 5.421353333333333, + 5.785473333333335, + 5.427827814569536 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.777479999999997, + 6.223106666666667, + 5.7825894039735095 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4730, + "tests": [ + { + "DRAM Power_0": [ + 0.5812199999999998, + 0.5720993377483442, + 0.5704466666666663 + ], + "GT Power_0": [ + 0.04189333333333332, + 0.013072847682119205, + 0.011553333333333332 + ], + "IA Power_0": [ + 3.3123799999999997, + 3.3232384105960278, + 3.2467133333333322 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.655873333333333, + 3.5501192052980137, + 3.470079999999999 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.711258278145695, + 0.7316733333333332, + 0.7206266666666664 + ], + "GT Power_0": [ + 0.11876158940397348, + 0.11550666666666672, + 0.11867999999999998 + ], + "IA Power_0": [ + 6.504999999999997, + 7.236320000000002, + 7.2916799999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.830086092715235, + 7.791066666666668, + 7.636973333333329 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7128013245033109, + 0.7114199999999994, + 0.7107417218543044 + ], + "GT Power_0": [ + 0.1152781456953642, + 0.11626666666666673, + 0.11844370860927156 + ], + "IA Power_0": [ + 6.617807947019868, + 6.7412600000000005, + 6.459198675496689 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.888251655629136, + 7.151026666666668, + 6.847821192052979 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7685333333333336, + 0.7677814569536427, + 0.7294966887417218 + ], + "GT Power_0": [ + 0.2547533333333332, + 0.25775496688741717, + 0.26909933774834444 + ], + "IA Power_0": [ + 6.744179999999997, + 6.964417218543044, + 16.019291390728476 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.272959999999999, + 7.510854304635759, + 16.694178807947022 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.6495866666666669, + 0.7152066666666667, + 0.7327466666666667 + ], + "GT Power_0": [ + 0.12826000000000004, + 0.12480666666666655, + 0.12466 + ], + "IA Power_0": [ + 15.956133333333334, + 6.563380000000001, + 6.614993333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 16.276393333333328, + 6.958713333333335, + 7.2069866666666655 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD118-A9", + "number": 4729, + "tests": [ + { + "DRAM Power_0": [ + 0.5791333333333333, + 0.5721589403973508, + 0.5708278145695364 + ], + "GT Power_0": [ + 0.033073333333333316, + 0.012576158940397349, + 0.011377483443708609 + ], + "IA Power_0": [ + 3.203686666666668, + 2.8044569536423833, + 2.8024370860927137 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4590733333333326, + 3.051503311258279, + 3.0359072847682125 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7103178807947015, + 0.7240666666666665, + 0.7111655629139065 + ], + "GT Power_0": [ + 0.09776158940397352, + 0.10020666666666674, + 0.101523178807947 + ], + "IA Power_0": [ + 5.445364238410597, + 5.673373333333335, + 5.421549668874171 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.767900662251654, + 6.111100000000004, + 5.810794701986754 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.723331125827814, + 0.7105761589403968, + 0.7236158940397343 + ], + "GT Power_0": [ + 0.10162913907284774, + 0.09803311258278147, + 0.09847682119205299 + ], + "IA Power_0": [ + 5.4173046357615915, + 5.694000000000001, + 5.4542582781456925 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.84114569536424, + 6.052099337748341, + 5.930072847682121 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7677086092715236, + 0.7696953642384108, + 0.7692533333333339 + ], + "GT Power_0": [ + 0.22674834437086092, + 0.22584105960264908, + 0.22389999999999996 + ], + "IA Power_0": [ + 5.583225165562914, + 5.762980132450331, + 5.808519999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.1242781456953646, + 6.320894039735103, + 6.292893333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7163333333333326, + 0.7166622516556291, + 0.7448666666666665 + ], + "GT Power_0": [ + 0.10476666666666667, + 0.10561589403973506, + 0.12384666666666667 + ], + "IA Power_0": [ + 5.450773333333332, + 5.52066225165563, + 5.552620000000007 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.843953333333331, + 5.885596026490063, + 6.151186666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD164-A9", + "number": 4728, + "tests": [ + { + "DRAM Power_0": [ + 0.5728333333333334, + 0.5877399999999996, + 0.5716533333333336 + ], + "GT Power_0": [ + 0.025566666666666647, + 0.011046666666666668, + 0.011986666666666666 + ], + "IA Power_0": [ + 3.1413133333333336, + 3.6994799999999985, + 3.0769266666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.378753333333334, + 3.9163600000000005, + 3.3341066666666657 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7231799999999993, + 0.7240533333333327, + 0.7258199999999996 + ], + "GT Power_0": [ + 0.10775333333333335, + 0.10654666666666669, + 0.10734666666666669 + ], + "IA Power_0": [ + 6.286013333333334, + 5.917526666666669, + 6.008193333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.714039999999999, + 6.356626666666665, + 6.499813333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7126026490066225, + 0.727556291390728, + 0.7119060402684558 + ], + "GT Power_0": [ + 0.10798013245033115, + 0.11584105960264908, + 0.10808053691275174 + ], + "IA Power_0": [ + 6.3207880794702005, + 6.055443708609272, + 6.655114093959733 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.704933774834436, + 6.615675496688739, + 6.995845637583898 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7824333333333334, + 0.7683708609271529, + 0.7686799999999998 + ], + "GT Power_0": [ + 0.2367733333333335, + 0.23783443708609278, + 0.23758666666666664 + ], + "IA Power_0": [ + 6.156626666666667, + 6.252112582781451, + 6.57496 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.744113333333337, + 6.782947019867548, + 7.074013333333337 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.717397350993377, + 0.7143199999999997, + 0.7380199999999997 + ], + "GT Power_0": [ + 0.12078807947019873, + 0.11418666666666671, + 0.11365333333333337 + ], + "IA Power_0": [ + 6.137629139072845, + 6.063486666666667, + 6.166379999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4658476821192075, + 6.437146666666665, + 6.631846666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4727, + "tests": [ + { + "DRAM Power_0": [ + 0.5796600000000002, + 0.5780596026490068, + 0.5848666666666669 + ], + "GT Power_0": [ + 0.026673333333333316, + 0.011629139072847683, + 0.010766666666666667 + ], + "IA Power_0": [ + 2.6006133333333317, + 2.595754966887417, + 2.519866666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.8882266666666667, + 2.885986754966887, + 2.8943466666666673 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.711099337748344, + 0.7292066666666658, + 0.7239139072847676 + ], + "GT Power_0": [ + 0.09595364238410597, + 0.09982666666666667, + 0.09711258278145699 + ], + "IA Power_0": [ + 4.947715231788079, + 5.299333333333334, + 5.038099337748341 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.332178807947021, + 5.7488133333333336, + 5.449430463576159 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7119205298013243, + 0.7128666666666665, + 0.7316158940397347 + ], + "GT Power_0": [ + 0.09860264900662255, + 0.09668666666666667, + 0.09606622516556296 + ], + "IA Power_0": [ + 4.9632980132450335, + 4.938246666666666, + 5.047940397350992 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.328019867549669, + 5.35606, + 5.533039735099337 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7676333333333337, + 0.7702800000000004, + 0.7753066666666673 + ], + "GT Power_0": [ + 0.21680666666666676, + 0.21670000000000006, + 0.21859333333333333 + ], + "IA Power_0": [ + 5.102426666666671, + 5.100133333333336, + 5.475193333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.6196866666666665, + 5.627306666666665, + 5.9629400000000015 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7182980132450332, + 0.7616688741721851, + 0.7175199999999997 + ], + "GT Power_0": [ + 0.10401986754966888, + 0.10023841059602648, + 0.1017933333333334 + ], + "IA Power_0": [ + 5.320536423841064, + 6.212039735099338, + 5.035913333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.696609271523176, + 6.5663112582781435, + 5.405633333333336 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD177-A9", + "number": 4726, + "tests": [ + { + "DRAM Power_0": [ + 0.5733866666666667, + 0.5714900662251654, + 0.5742200000000002 + ], + "GT Power_0": [ + 0.03537333333333332, + 0.010549668874172186, + 0.011566666666666659 + ], + "IA Power_0": [ + 3.106513333333333, + 3.091019867549668, + 3.454053333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3537266666666663, + 3.3048741721854307, + 3.699806666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7279865771812073, + 0.722529801324503, + 0.7296423841059598 + ], + "GT Power_0": [ + 0.11376510067114098, + 0.09076821192052982, + 0.09175496688741723 + ], + "IA Power_0": [ + 6.505201342281882, + 6.687059602649007, + 6.187847682119203 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.93491275167785, + 7.024456953642384, + 6.609291390728475 + ], + "name": "Video_720_MP4", + "samples": [ + 149, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.713306666666666, + 0.7131258278145691, + 0.712933333333333 + ], + "GT Power_0": [ + 0.09254000000000007, + 0.09427152317880796, + 0.09343333333333338 + ], + "IA Power_0": [ + 6.162113333333336, + 6.522807947019867, + 6.136039999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.497840000000003, + 6.789364238410599, + 6.500279999999998 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7702733333333339, + 0.7707814569536428, + 0.7768675496688748 + ], + "GT Power_0": [ + 0.2148333333333333, + 0.21905298013245023, + 0.2200794701986755 + ], + "IA Power_0": [ + 6.294913333333335, + 6.785298013245031, + 6.500112582781456 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.74889333333333, + 7.254198675496688, + 6.998238410596029 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7177866666666664, + 0.7304266666666662, + 0.7299470198675494 + ], + "GT Power_0": [ + 0.10206666666666671, + 0.11702666666666671, + 0.10265562913907285 + ], + "IA Power_0": [ + 6.228226666666665, + 6.598786666666669, + 6.2214701986754966 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.574746666666665, + 7.112706666666668, + 6.5904039735099325 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4725, + "tests": [ + { + "DRAM Power_0": [ + 0.5719799999999999, + 0.57186, + 0.5758399999999998 + ], + "GT Power_0": [ + 0.044339999999999984, + 0.012013333333333332, + 0.0127 + ], + "IA Power_0": [ + 3.2774200000000007, + 3.306573333333333, + 4.0942599999999985 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5224199999999994, + 3.523753333333335, + 4.302933333333335 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.729713333333333, + 0.7307333333333327, + 0.7266754966887413 + ], + "GT Power_0": [ + 0.1444, + 0.11774666666666664, + 0.11960264900662244 + ], + "IA Power_0": [ + 6.553673333333332, + 6.547646666666667, + 6.498814569536422 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.083186666666663, + 7.043939999999999, + 7.023410596026495 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7131655629139068, + 0.7115894039735092, + 0.7242052980132445 + ], + "GT Power_0": [ + 0.11665562913907283, + 0.11447019867549671, + 0.11823178807947023 + ], + "IA Power_0": [ + 6.528470198675494, + 6.900933774834437, + 6.5404304635761585 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.878350993377484, + 7.241735099337746, + 6.974059602649004 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7756225165562911, + 0.7904238410596025, + 0.7700463576158939 + ], + "GT Power_0": [ + 0.25237748344370864, + 0.254225165562914, + 0.25335099337748324 + ], + "IA Power_0": [ + 7.20251655629139, + 7.13837748344371, + 6.834913907284769 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.732125827814572, + 7.777264900662253, + 7.337615894039733 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7179733333333329, + 0.715853333333333, + 0.7171854304635757 + ], + "GT Power_0": [ + 0.12494666666666668, + 0.11948000000000003, + 0.127271523178808 + ], + "IA Power_0": [ + 6.628746666666671, + 6.7221933333333315, + 6.70140397350993 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.001680000000004, + 7.050553333333331, + 7.072384105960269 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4724, + "tests": [ + { + "DRAM Power_0": [ + 0.5908999999999996, + 0.58778, + 0.5749536423841056 + ], + "GT Power_0": [ + 0.013119999999999998, + 0.012293333333333331, + 0.012999999999999998 + ], + "IA Power_0": [ + 2.7444199999999994, + 3.0597266666666654, + 2.7519536423841062 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.192593333333334, + 3.4509400000000006, + 3.004503311258278 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7141999999999995, + 0.7144768211920526, + 0.7134266666666662 + ], + "GT Power_0": [ + 0.08390666666666668, + 0.08300662251655631, + 0.08240000000000001 + ], + "IA Power_0": [ + 5.49558, + 5.850026490066223, + 5.520586666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.844113333333337, + 6.163357615894039, + 5.833273333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7139072847682113, + 0.7134172185430461, + 0.7117666666666668 + ], + "GT Power_0": [ + 0.0819867549668874, + 0.08521854304635766, + 0.08052000000000008 + ], + "IA Power_0": [ + 5.4562384105960255, + 5.597490066225164, + 5.521066666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.775039735099337, + 5.921145695364239, + 5.849479999999996 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7790268456375843, + 0.7726622516556293, + 0.7830866666666672 + ], + "GT Power_0": [ + 0.20818791946308726, + 0.19700662251655654, + 0.21816000000000013 + ], + "IA Power_0": [ + 5.996288590604027, + 5.708940397350994, + 5.786339999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.528812080536911, + 6.1913708609271545, + 6.284500000000003 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 149, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7403576158940395, + 0.7352933333333328, + 0.7194697986577177 + ], + "GT Power_0": [ + 0.09725827814569542, + 0.09214666666666665, + 0.08885906040268454 + ], + "IA Power_0": [ + 6.023119205298014, + 5.694899999999994, + 5.6551409395973185 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.470741721854304, + 6.185680000000003, + 6.000973154362415 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 149 + ] + } + ] + }, + { + "bot": "BUILD120-A9", + "number": 4723, + "tests": [ + { + "DRAM Power_0": [ + 0.5902399999999995, + 0.5892933333333332, + 0.5744733333333333 + ], + "GT Power_0": [ + 0.014479999999999998, + 0.015006666666666668, + 0.014820000000000005 + ], + "IA Power_0": [ + 3.0988800000000007, + 3.4709, + 3.1279999999999992 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.466446666666666, + 3.7824466666666647, + 3.331146666666667 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7263933333333332, + 0.7310733333333329, + 0.7130266666666661 + ], + "GT Power_0": [ + 0.11440000000000003, + 0.11376000000000003, + 0.11528000000000004 + ], + "IA Power_0": [ + 5.986979999999999, + 6.477286666666671, + 6.036926666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.395906666666667, + 6.824506666666668, + 6.366380000000003 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7279199999999996, + 0.7136821192052976, + 0.714813333333333 + ], + "GT Power_0": [ + 0.11217999999999996, + 0.11294701986754967, + 0.11721999999999996 + ], + "IA Power_0": [ + 6.3158933333333325, + 5.977019867549671, + 5.958733333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.776599999999999, + 6.379814569536424, + 6.376846666666665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.806153333333334, + 0.7717066666666672, + 0.7873973509933782 + ], + "GT Power_0": [ + 0.2518599999999998, + 0.25114666666666663, + 0.25240397350993365 + ], + "IA Power_0": [ + 6.555000000000001, + 6.120193333333333, + 6.1907152317880785 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.245773333333331, + 6.674573333333334, + 6.842264900662251 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7219271523178803, + 0.7188800000000002, + 0.7199999999999992 + ], + "GT Power_0": [ + 0.12103973509933773, + 0.11645999999999998, + 0.11750993377483453 + ], + "IA Power_0": [ + 6.190086092715235, + 6.138373333333332, + 6.363145695364238 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.558410596026493, + 6.506333333333334, + 6.704662251655629 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD124-A9", + "number": 4722, + "tests": [ + { + "DRAM Power_0": [ + 0.5757200000000002, + 0.5757066666666667, + 0.5772119205298012 + ], + "GT Power_0": [ + 0.043113333333333316, + 0.01726, + 0.016867549668874167 + ], + "IA Power_0": [ + 3.0735733333333317, + 3.035093333333335, + 3.4114238410596025 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3160399999999983, + 3.2858000000000005, + 3.6711456953642383 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7118066666666661, + 0.7115799999999997, + 0.7115733333333331 + ], + "GT Power_0": [ + 0.12153999999999997, + 0.12086000000000001, + 0.12846666666666662 + ], + "IA Power_0": [ + 5.873979999999998, + 5.973459999999998, + 5.903613333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.24696, + 6.315733333333332, + 6.276153333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7118609271523171, + 0.7282266666666665, + 0.711490066225165 + ], + "GT Power_0": [ + 0.12247019867549667, + 0.1233133333333334, + 0.11970198675496688 + ], + "IA Power_0": [ + 5.873377483443712, + 6.223126666666667, + 5.876993377483445 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.262072847682117, + 6.68562, + 6.2454966887417225 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7678333333333336, + 0.7694066666666672, + 0.7671733333333334 + ], + "GT Power_0": [ + 0.27042, + 0.27308, + 0.26886666666666686 + ], + "IA Power_0": [ + 6.157353333333331, + 6.436426666666666, + 6.126939999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.68772, + 6.973379999999996, + 6.674966666666666 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7176666666666661, + 0.7180662251655624, + 0.7355629139072846 + ], + "GT Power_0": [ + 0.1307066666666666, + 0.12679470198675502, + 0.13295364238410595 + ], + "IA Power_0": [ + 6.023013333333335, + 6.026463576158941, + 5.946774834437088 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.396766666666668, + 6.430490066225161, + 6.501655629139072 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD180-A9", + "number": 4721, + "tests": [ + { + "DRAM Power_0": [ + 0.5779466666666669, + 0.5740533333333331, + 0.5764834437086093 + ], + "GT Power_0": [ + 0.03045999999999997, + 0.015053333333333339, + 0.014715231788079475 + ], + "IA Power_0": [ + 3.16766, + 3.5942333333333347, + 3.270973509933775 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.47638, + 3.863266666666666, + 3.5204569536423853 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7245165562913902, + 0.7135827814569531, + 0.7111266666666665 + ], + "GT Power_0": [ + 0.11346357615894039, + 0.11438410596026494, + 0.1147733333333333 + ], + "IA Power_0": [ + 6.193099337748346, + 6.477814569536425, + 6.304860000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.69698675496689, + 6.832337748344371, + 6.667466666666669 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7253199999999993, + 0.7165666666666659, + 0.7127799999999996 + ], + "GT Power_0": [ + 0.11475999999999999, + 0.11279333333333336, + 0.11499333333333338 + ], + "IA Power_0": [ + 6.283939999999998, + 6.349573333333332, + 6.293466666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.735640000000001, + 6.731999999999999, + 6.652586666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7749333333333339, + 0.7711192052980134, + 0.7823266666666666 + ], + "GT Power_0": [ + 0.24997999999999995, + 0.2500397350993377, + 0.25096 + ], + "IA Power_0": [ + 6.915620000000003, + 6.590211920529802, + 6.4352 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.43784, + 7.122463576158939, + 7.04311333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7327748344370857, + 0.7166291390728474, + 0.7163377483443706 + ], + "GT Power_0": [ + 0.11876158940397355, + 0.11590728476821198, + 0.12090728476821196 + ], + "IA Power_0": [ + 6.285119205298011, + 6.387841059602651, + 6.626364238410596 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.79633774834437, + 6.753503311258278, + 6.980953642384103 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD141-A9", + "number": 4720, + "tests": [ + { + "DRAM Power_0": [ + 0.5817933333333334, + 0.5730400000000001, + 0.5874370860927153 + ], + "GT Power_0": [ + 0.0452133333333333, + 0.015340000000000001, + 0.014278145695364236 + ], + "IA Power_0": [ + 3.3877600000000005, + 3.269520000000001, + 3.2646887417218555 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.680766666666665, + 3.4770866666666667, + 3.640165562913907 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7127866666666659, + 0.7183841059602644, + 0.7138066666666663 + ], + "GT Power_0": [ + 0.11112000000000007, + 0.1100264900662252, + 0.11221333333333341 + ], + "IA Power_0": [ + 6.799380000000001, + 6.644847682119207, + 6.536973333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.18306, + 7.003854304635762, + 6.901386666666669 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7481788079470194, + 0.7133443708609263, + 0.7126357615894038 + ], + "GT Power_0": [ + 0.11348344370860924, + 0.11186754966887419, + 0.11225827814569544 + ], + "IA Power_0": [ + 6.836947019867549, + 6.617887417218544, + 6.943549668874173 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.620642384105962, + 6.95848344370861, + 7.320900662251658 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7702384105960273, + 0.7710400000000008, + 0.7708543046357622 + ], + "GT Power_0": [ + 0.2383245033112583, + 0.23271999999999993, + 0.23160927152317895 + ], + "IA Power_0": [ + 6.855403973509935, + 6.794486666666671, + 7.170443708609275 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.282258278145695, + 7.31526666666667, + 7.698225165562917 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7170728476821193, + 0.735788079470198, + 0.718993377483443 + ], + "GT Power_0": [ + 0.11902649006622525, + 0.12576821192052984, + 0.11590728476821197 + ], + "IA Power_0": [ + 6.719205298013245, + 6.662211920529805, + 6.809225165562912 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0515165562913875, + 7.064529801324501, + 7.165350993377484 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD178-A9", + "number": 4719, + "tests": [ + { + "DRAM Power_0": [ + 0.5833200000000001, + 0.5747880794701984, + 0.5725562913907287 + ], + "GT Power_0": [ + 0.03469333333333332, + 0.012357615894039733, + 0.010953642384105958 + ], + "IA Power_0": [ + 3.499493333333333, + 2.9119933774834434, + 3.1525894039735083 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7451133333333346, + 3.181192052980133, + 3.4078344370860925 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7145599999999996, + 0.7130866666666663, + 0.712827814569536 + ], + "GT Power_0": [ + 0.07428000000000001, + 0.07617999999999996, + 0.07505298013245035 + ], + "IA Power_0": [ + 5.7071466666666675, + 5.698606666666664, + 5.910105960264902 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9911400000000015, + 6.020973333333333, + 6.295735099337746 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7113733333333327, + 0.713713333333333, + 0.7125999999999991 + ], + "GT Power_0": [ + 0.07309333333333337, + 0.07375333333333334, + 0.07436000000000004 + ], + "IA Power_0": [ + 5.631073333333333, + 5.717200000000001, + 5.623626666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.970166666666669, + 6.013486666666668, + 5.97662 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7709867549668881, + 0.7700000000000006, + 0.7898933333333338 + ], + "GT Power_0": [ + 0.1805562913907284, + 0.17978807947019868, + 0.1959599999999999 + ], + "IA Power_0": [ + 5.853086092715234, + 6.17537086092715, + 5.879760000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.299192052980132, + 6.632344370860927, + 6.425579999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7177599999999995, + 0.7175399999999998, + 0.7193066666666664 + ], + "GT Power_0": [ + 0.07748000000000001, + 0.07944000000000002, + 0.09532666666666673 + ], + "IA Power_0": [ + 5.698993333333334, + 5.9755666666666665, + 5.848906666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.074493333333334, + 6.361786666666668, + 6.113473333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD178-A9", + "number": 4718, + "tests": [ + { + "DRAM Power_0": [ + 0.5764768211920532, + 0.5759466666666669, + 0.5745066666666668 + ], + "GT Power_0": [ + 0.012205298013245028, + 0.011739999999999999, + 0.011866666666666666 + ], + "IA Power_0": [ + 3.0495099337748344, + 3.3670466666666687, + 2.9247933333333354 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.297403973509934, + 3.59026, + 3.1716266666666653 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7159866666666663, + 0.7129866666666661, + 0.7145430463576156 + ], + "GT Power_0": [ + 0.07513333333333337, + 0.07556000000000002, + 0.07397350993377484 + ], + "IA Power_0": [ + 5.746246666666668, + 6.064039999999996, + 5.843132450331125 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.090266666666668, + 6.372406666666669, + 6.168317880794704 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7133399999999998, + 0.7163266666666667, + 0.7159403973509931 + ], + "GT Power_0": [ + 0.07230666666666667, + 0.07580666666666669, + 0.07611258278145693 + ], + "IA Power_0": [ + 5.733906666666668, + 6.064040000000001, + 5.882066225165563 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.078273333333334, + 6.407433333333336, + 6.2492649006622525 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7819072847682123, + 0.7706800000000005, + 0.7747266666666671 + ], + "GT Power_0": [ + 0.2050728476821192, + 0.1817466666666666, + 0.18180000000000002 + ], + "IA Power_0": [ + 5.971562913907283, + 6.016480000000001, + 6.1033866666666645 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.476119205298012, + 6.478006666666667, + 6.563139999999996 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7193774834437081, + 0.7205799999999998, + 0.7198807947019864 + ], + "GT Power_0": [ + 0.07981456953642388, + 0.08226000000000003, + 0.0817086092715232 + ], + "IA Power_0": [ + 6.135218543046357, + 5.870599999999998, + 5.882099337748345 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.474503311258279, + 6.167546666666667, + 6.217205298013249 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD123-A9", + "number": 4717, + "tests": [ + { + "DRAM Power_0": [ + 0.5815666666666663, + 0.5737615894039738, + 0.5736199999999999 + ], + "GT Power_0": [ + 0.01466, + 0.015172185430463572, + 0.014966666666666665 + ], + "IA Power_0": [ + 3.2220999999999993, + 3.0602582781456977, + 3.014786666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4843133333333336, + 3.2683046357615897, + 3.246880000000001 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7137666666666661, + 0.7128199999999996, + 0.7268133333333328 + ], + "GT Power_0": [ + 0.1143266666666666, + 0.10880666666666668, + 0.1137533333333334 + ], + "IA Power_0": [ + 6.421140000000002, + 6.018226666666665, + 6.050733333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.783933333333334, + 6.370626666666671, + 6.49811333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.71378, + 0.7125364238410592, + 0.7171266666666664 + ], + "GT Power_0": [ + 0.11228000000000003, + 0.11129801324503312, + 0.11272666666666675 + ], + "IA Power_0": [ + 6.1437199999999965, + 6.0962715231788085, + 6.575793333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.45146666666667, + 6.461463576158941, + 6.949733333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7857333333333338, + 0.7806000000000006, + 0.770626666666667 + ], + "GT Power_0": [ + 0.24307333333333342, + 0.27169333333333334, + 0.24456000000000003 + ], + "IA Power_0": [ + 6.34056, + 6.314553333333334, + 6.67878 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9699333333333335, + 6.893839999999997, + 7.198646666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7421059602649005, + 0.7389536423841054, + 0.7186266666666663 + ], + "GT Power_0": [ + 0.12487417218543047, + 0.1266158940397351, + 0.12603333333333336 + ], + "IA Power_0": [ + 7.104768211920533, + 6.267066225165565, + 6.169533333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.463225165562918, + 6.76169536423841, + 6.541619999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD121-A9", + "number": 4716, + "tests": [ + { + "DRAM Power_0": [ + 0.5899733333333333, + 0.5878399999999999, + 0.5859801324503313 + ], + "GT Power_0": [ + 0.049006666666666636, + 0.015839999999999993, + 0.016145695364238412 + ], + "IA Power_0": [ + 3.31486, + 3.1899866666666656, + 3.1728476821192078 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7147466666666666, + 3.555586666666666, + 3.460278145695363 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7159602649006616, + 0.7127866666666663, + 0.712946666666666 + ], + "GT Power_0": [ + 0.11011920529801332, + 0.1119266666666667, + 0.12058000000000002 + ], + "IA Power_0": [ + 6.732033112582781, + 6.338953333333334, + 6.359086666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0876821192053, + 6.692373333333336, + 6.753286666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145761589403967, + 0.7134966887417215, + 0.7145266666666666 + ], + "GT Power_0": [ + 0.10816556291390732, + 0.10809933774834439, + 0.11221333333333343 + ], + "IA Power_0": [ + 6.393940397350991, + 6.335549668874176, + 6.786886666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.691172185430463, + 6.687556291390728, + 7.104906666666665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7837748344370862, + 0.7767666666666667, + 0.7873933333333336 + ], + "GT Power_0": [ + 0.24668874172185448, + 0.24584666666666655, + 0.24295333333333335 + ], + "IA Power_0": [ + 6.58673509933775, + 6.621866666666665, + 6.959959999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.204887417218543, + 7.112433333333334, + 7.612080000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7191788079470196, + 0.7330466666666663, + 0.7277549668874168 + ], + "GT Power_0": [ + 0.11402649006622519, + 0.11402000000000004, + 0.11672847682119204 + ], + "IA Power_0": [ + 6.422, + 6.6299666666666655, + 6.8389470198675495 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.789132450331129, + 6.970466666666665, + 7.2004105960264955 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD123-A9", + "number": 4715, + "tests": [ + { + "DRAM Power_0": [ + 0.5810733333333334, + 0.5738675496688737, + 0.5893907284768212 + ], + "GT Power_0": [ + 0.03805333333333332, + 0.014397350993377486, + 0.01447682119205298 + ], + "IA Power_0": [ + 3.350973333333333, + 3.4557615894039753, + 3.163403973509934 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.599493333333334, + 3.6896291390728493, + 3.474927152317881 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7143642384105955, + 0.7128333333333331, + 0.8070333333333332 + ], + "GT Power_0": [ + 0.11143708609271522, + 0.11278666666666669, + 0.11324000000000001 + ], + "IA Power_0": [ + 6.352960264900661, + 6.5741466666666675, + 9.79544666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.679529801324504, + 6.932506666666663, + 10.171033333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7140533333333333, + 0.7147814569536423, + 0.7290533333333328 + ], + "GT Power_0": [ + 0.11005333333333328, + 0.11339735099337754, + 0.10875333333333337 + ], + "IA Power_0": [ + 6.303959999999999, + 6.2977417218543055, + 6.281420000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.634066666666669, + 6.715178807947019, + 6.794939999999995 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7792533333333335, + 0.7770993377483445, + 0.7813311258278148 + ], + "GT Power_0": [ + 0.26128666666666667, + 0.26186092715231785, + 0.2687086092715232 + ], + "IA Power_0": [ + 6.871926666666668, + 6.456695364238412, + 6.5816622516556285 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.428199999999996, + 7.014317880794702, + 7.111602649006621 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7396357615894038, + 0.7159666666666665, + 0.7254333333333332 + ], + "GT Power_0": [ + 0.11852317880794701, + 0.12698, + 0.11724666666666662 + ], + "IA Power_0": [ + 6.747066225165562, + 6.3540666666666645, + 6.535806666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.308211920529803, + 6.709546666666664, + 6.8975 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4714, + "tests": [ + { + "DRAM Power_0": [ + 0.586893333333333, + 0.572993333333333, + 0.57354 + ], + "GT Power_0": [ + 0.04503999999999999, + 0.014526666666666669, + 0.015026666666666664 + ], + "IA Power_0": [ + 3.650473333333331, + 2.714973333333333, + 2.720053333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9220799999999993, + 2.9906666666666677, + 2.982839999999999 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7352399999999991, + 0.711786666666666, + 0.713286666666666 + ], + "GT Power_0": [ + 0.11775999999999999, + 0.11108000000000001, + 0.11457333333333333 + ], + "IA Power_0": [ + 5.464213333333333, + 5.1746599999999985, + 5.200119999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.129473333333333, + 5.554639999999999, + 5.585553333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7133333333333328, + 0.712373333333333, + 0.7295399999999991 + ], + "GT Power_0": [ + 0.11729333333333335, + 0.11955999999999999, + 0.11672666666666669 + ], + "IA Power_0": [ + 5.311706666666669, + 5.211879999999995, + 5.580233333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.656400000000002, + 5.603686666666667, + 6.0280000000000005 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.782973509933775, + 0.7708476821192058, + 0.7725133333333338 + ], + "GT Power_0": [ + 0.23764900662251665, + 0.23670198675496681, + 0.23714666666666667 + ], + "IA Power_0": [ + 5.838728476821193, + 5.492543046357616, + 5.715466666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.360132450331127, + 6.008443708609274, + 6.2516 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7185266666666664, + 0.7167466666666664, + 0.7190200000000001 + ], + "GT Power_0": [ + 0.12027333333333338, + 0.12248666666666667, + 0.11584666666666665 + ], + "IA Power_0": [ + 5.369339999999999, + 5.321820000000002, + 5.372166666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7536933333333335, + 5.679673333333335, + 5.7335400000000005 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD159-A9", + "number": 4713, + "tests": [ + { + "DRAM Power_0": [ + 0.5755799999999995, + 0.5743599999999998, + 0.5876866666666667 + ], + "GT Power_0": [ + 0.04402666666666666, + 0.01416, + 0.013893333333333329 + ], + "IA Power_0": [ + 3.0201333333333316, + 2.7091933333333347, + 2.7022066666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2739599999999993, + 2.9490466666666673, + 3.0330600000000003 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712213333333333, + 0.7286866666666659, + 0.7300331125827811 + ], + "GT Power_0": [ + 0.11741333333333333, + 0.1148466666666667, + 0.11484768211920539 + ], + "IA Power_0": [ + 5.187899999999997, + 5.190213333333336, + 5.493463576158943 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.558633333333334, + 5.666700000000002, + 5.972046357615895 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7131866666666662, + 0.7349666666666661, + 0.7124039735099336 + ], + "GT Power_0": [ + 0.11659333333333334, + 0.11787333333333332, + 0.11452317880794706 + ], + "IA Power_0": [ + 5.192633333333333, + 5.196539999999998, + 5.484953642384107 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.573520000000004, + 5.940006666666664, + 5.8594834437086085 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7790533333333338, + 0.781172185430464, + 0.7982516556291398 + ], + "GT Power_0": [ + 0.26433333333333336, + 0.26862251655629127, + 0.26158940397351005 + ], + "IA Power_0": [ + 5.3578133333333335, + 5.390867549668876, + 5.380847682119205 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.924733333333333, + 5.959754966887418, + 6.091980132450334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7340728476821188, + 0.7192266666666663, + 0.7169072847682112 + ], + "GT Power_0": [ + 0.12086754966887411, + 0.12184666666666664, + 0.12216556291390727 + ], + "IA Power_0": [ + 5.228543046357615, + 5.500946666666667, + 5.269350993377488 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.705476821192058, + 5.894046666666665, + 5.630821192052978 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4712, + "tests": [ + { + "DRAM Power_0": [ + 0.5757019867549666, + 0.5994569536423837, + 0.57546 + ], + "GT Power_0": [ + 0.0195364238410596, + 0.019450331125827815, + 0.019113333333333333 + ], + "IA Power_0": [ + 3.0930860927152315, + 3.687165562913909, + 2.8384133333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3775033112582777, + 3.946562913907286, + 3.0896066666666666 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7089139072847676, + 0.711033112582781, + 0.7095666666666665 + ], + "GT Power_0": [ + 0.141046357615894, + 0.1428543046357616, + 0.1379733333333333 + ], + "IA Power_0": [ + 5.468688741721854, + 5.559728476821192, + 5.851226666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.904682119205296, + 5.954397350993378, + 6.267346666666664 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7097417218543042, + 0.711072847682119, + 0.7100600000000001 + ], + "GT Power_0": [ + 0.13688741721854303, + 0.14055629139072837, + 0.1378066666666666 + ], + "IA Power_0": [ + 5.54649668874172, + 5.5814238410596015, + 5.725579999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.91571523178808, + 5.993960264900661, + 6.146073333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.76642, + 0.7623933333333336, + 0.8071523178807952 + ], + "GT Power_0": [ + 0.3275600000000001, + 0.3254466666666669, + 0.3235231788079471 + ], + "IA Power_0": [ + 5.889240000000004, + 5.6888266666666665, + 7.636483443708607 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.48575333333333, + 6.311866666666666, + 8.262728476821191 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7471600000000002, + 0.7459999999999999, + 0.7449199999999997 + ], + "GT Power_0": [ + 0.15046000000000004, + 0.14615333333333327, + 0.14656000000000002 + ], + "IA Power_0": [ + 6.397660000000001, + 7.0730333333333295, + 6.442166666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.828046666666667, + 7.473719999999998, + 6.8523666666666685 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD153-A9", + "number": 4711, + "tests": [ + { + "DRAM Power_0": [ + 0.5764733333333326, + 0.5894466666666667, + 0.5732715231788079 + ], + "GT Power_0": [ + 0.03765999999999997, + 0.01362, + 0.012715231788079472 + ], + "IA Power_0": [ + 2.7866199999999997, + 2.9844399999999984, + 2.713523178807946 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.058233333333334, + 3.35782, + 2.9650927152317865 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7390463576158935, + 0.7140331125827809, + 0.7127947019867544 + ], + "GT Power_0": [ + 0.09583443708609275, + 0.0896158940397351, + 0.09080132450331131 + ], + "IA Power_0": [ + 5.226350993377485, + 5.183503311258275, + 5.173867549668872 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.992019867549667, + 5.534907284768216, + 5.518052980132451 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7140463576158933, + 0.7303576158940394, + 0.7257748344370856 + ], + "GT Power_0": [ + 0.08860264900662249, + 0.08901324503311261, + 0.09092052980132452 + ], + "IA Power_0": [ + 5.42950331125828, + 5.175841059602647, + 5.229602649006621 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.810364238410591, + 5.622311258278144, + 5.718649006622516 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7787947019867558, + 0.7888133333333338, + 0.8620000000000001 + ], + "GT Power_0": [ + 0.20636423841059595, + 0.19562666666666673, + 0.21909333333333328 + ], + "IA Power_0": [ + 5.644503311258276, + 5.316746666666668, + 6.695219999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.161596026490069, + 5.91686666666667, + 7.5567199999999985 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7203933333333329, + 0.7208733333333328, + 0.7207284768211921 + ], + "GT Power_0": [ + 0.11102000000000004, + 0.09521333333333339, + 0.09445033112582782 + ], + "IA Power_0": [ + 5.389666666666665, + 5.214419999999999, + 5.540589403973508 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.707313333333336, + 5.641066666666668, + 5.852119205298011 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD145-A9", + "number": 4710, + "tests": [ + { + "DRAM Power_0": [ + 0.590019867549669, + 0.5886066666666667, + 0.5741192052980131 + ], + "GT Power_0": [ + 0.013370860927152313, + 0.013120000000000001, + 0.014086092715231787 + ], + "IA Power_0": [ + 2.857516556291392, + 2.769986666666666, + 2.724993377483443 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.211841059602651, + 3.0900266666666676, + 2.9956490066225183 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.713788079470198, + 0.7137086092715226, + 0.7304503311258272 + ], + "GT Power_0": [ + 0.09629139072847684, + 0.09531788079470199, + 0.09513245033112586 + ], + "IA Power_0": [ + 5.393052980132449, + 5.402874172185428, + 5.323238410596024 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.751880794701986, + 5.7300662251655625, + 5.760761589403971 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7351266666666663, + 0.7129470198675492, + 0.7149399999999998 + ], + "GT Power_0": [ + 0.09666666666666672, + 0.0983973509933775, + 0.09684000000000005 + ], + "IA Power_0": [ + 5.436333333333331, + 5.356960264900663, + 5.39082 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.856919999999994, + 5.714867549668876, + 5.713646666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7702533333333338, + 0.7708211920529802, + 0.7723400000000005 + ], + "GT Power_0": [ + 0.20923333333333338, + 0.2125894039735099, + 0.21644666666666665 + ], + "IA Power_0": [ + 5.546399999999999, + 5.540039735099337, + 5.599733333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.01176, + 6.015642384105957, + 6.043593333333337 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7188278145695361, + 0.716126666666666, + 0.7341466666666665 + ], + "GT Power_0": [ + 0.1020397350993378, + 0.10184666666666674, + 0.10188000000000001 + ], + "IA Power_0": [ + 5.423556291390728, + 5.349380000000003, + 5.8492266666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7532781456953614, + 5.742119999999999, + 6.229619999999998 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4709, + "tests": [ + { + "DRAM Power_0": [ + 0.5776490066225163, + 0.5851721854304636, + 0.590509933774834 + ], + "GT Power_0": [ + 0.01292715231788079, + 0.013503311258278146, + 0.013470198675496687 + ], + "IA Power_0": [ + 2.854006622516557, + 2.5943841059602666, + 2.809814569536423 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.085549668874174, + 2.9540397350993373, + 3.218331125827814 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7138066666666661, + 0.7547133333333329, + 0.7125562913907281 + ], + "GT Power_0": [ + 0.08803333333333335, + 0.08852666666666668, + 0.0924569536423841 + ], + "IA Power_0": [ + 5.792426666666664, + 6.3542200000000015, + 5.543271523178806 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.149646666666672, + 6.7357666666666685, + 5.819337748344374 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7164733333333327, + 0.8312684563758387, + 0.7135960264900657 + ], + "GT Power_0": [ + 0.09021333333333337, + 0.08718791946308725, + 0.08917218543046361 + ], + "IA Power_0": [ + 5.514780000000001, + 9.219637583892622, + 5.465304635761589 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.859486666666664, + 9.53270469798657, + 5.823960264900662 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 149, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7716200000000002, + 0.7803800000000004, + 0.7728476821192057 + ], + "GT Power_0": [ + 0.19672, + 0.2014666666666667, + 0.20898675496688754 + ], + "IA Power_0": [ + 5.7502266666666655, + 5.877833333333333, + 5.907741721854307 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.215346666666667, + 6.303826666666668, + 6.413913907284766 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7193245033112581, + 0.717513333333333, + 0.7200331125827811 + ], + "GT Power_0": [ + 0.09651655629139072, + 0.09272666666666672, + 0.09567549668874172 + ], + "IA Power_0": [ + 5.488774834437088, + 5.641373333333333, + 5.44814569536424 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.888682119205303, + 5.95774, + 5.856476821192054 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD155-A9", + "number": 4708, + "tests": [ + { + "DRAM Power_0": [ + 0.5914799999999998, + 0.5851866666666665, + 0.5751066666666668 + ], + "GT Power_0": [ + 0.013899999999999994, + 0.013506666666666669, + 0.0135 + ], + "IA Power_0": [ + 3.2680066666666647, + 3.3477199999999994, + 3.003613333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.648366666666666, + 3.6730866666666664, + 3.2451200000000004 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7162582781456948, + 0.7395399999999996, + 0.7324066666666662 + ], + "GT Power_0": [ + 0.10903973509933777, + 0.11429333333333334, + 0.10816666666666667 + ], + "IA Power_0": [ + 5.856708609271527, + 5.887200000000001, + 5.913093333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.209443708609274, + 6.537646666666664, + 6.3971866666666655 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7143799999999993, + 0.7220999999999995, + 0.7151390728476816 + ], + "GT Power_0": [ + 0.10408666666666662, + 0.10711333333333334, + 0.10476821192052983 + ], + "IA Power_0": [ + 6.180973333333335, + 5.9918466666666665, + 5.93998013245033 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.5613600000000005, + 6.3895599999999995, + 6.333761589403972 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7740133333333333, + 0.7728609271523179, + 0.7879600000000007 + ], + "GT Power_0": [ + 0.2329866666666667, + 0.22990728476821207, + 0.2320266666666667 + ], + "IA Power_0": [ + 6.368540000000001, + 6.142059602649005, + 6.070693333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.89416666666667, + 6.667324503311259, + 6.761373333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.722879999999999, + 0.7377199999999995, + 0.7202516556291388 + ], + "GT Power_0": [ + 0.11200000000000007, + 0.11506, + 0.1195562913907285 + ], + "IA Power_0": [ + 6.0213600000000005, + 6.0110600000000005, + 6.385331125827812 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.387053333333335, + 6.526653333333333, + 6.715298013245033 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD155-A9", + "number": 4707, + "tests": [ + { + "DRAM Power_0": [ + 0.5829328859060403, + 0.5877133333333336, + 0.5888400000000003 + ], + "GT Power_0": [ + 0.03131543624161072, + 0.013073333333333333, + 0.020046666666666667 + ], + "IA Power_0": [ + 3.1684295302013434, + 2.954493333333333, + 3.0542599999999984 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.521409395973154, + 3.262060000000002, + 3.3939666666666666 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7146556291390724, + 0.7271199999999998, + 0.7205066666666661 + ], + "GT Power_0": [ + 0.10585430463576158, + 0.10704666666666668, + 0.10663333333333336 + ], + "IA Power_0": [ + 5.892993377483442, + 6.2112066666666665, + 5.9445000000000014 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.258364238410598, + 6.678093333333332, + 6.318793333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.725006622516556, + 0.7534333333333333, + 0.716633333333333 + ], + "GT Power_0": [ + 0.10498675496688745, + 0.10903333333333338, + 0.10972000000000004 + ], + "IA Power_0": [ + 6.618675496688742, + 6.6069733333333325, + 5.944313333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9289999999999985, + 7.386520000000001, + 6.31212666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7730666666666669, + 0.7715866666666668, + 0.7851933333333337 + ], + "GT Power_0": [ + 0.23169333333333328, + 0.2275533333333333, + 0.23125333333333334 + ], + "IA Power_0": [ + 6.110333333333336, + 6.044713333333338, + 6.093153333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.591433333333331, + 6.593233333333333, + 6.768593333333331 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7181799999999993, + 0.7196799999999997, + 0.7195999999999996 + ], + "GT Power_0": [ + 0.11348000000000004, + 0.11560666666666668, + 0.11270666666666673 + ], + "IA Power_0": [ + 6.230066666666665, + 5.903573333333332, + 6.021160000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.629206666666665, + 6.280340000000001, + 6.379186666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD165-A9", + "number": 4706, + "tests": [ + { + "DRAM Power_0": [ + 0.5769333333333327, + 0.5734105960264899, + 0.5752582781456956 + ], + "GT Power_0": [ + 0.03313999999999998, + 0.01358940397350993, + 0.014602649006622514 + ], + "IA Power_0": [ + 3.233559999999999, + 3.406615894039735, + 3.1857350993377493 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.48762, + 3.6174039735099344, + 3.377774834437086 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7394599999999998, + 0.7118733333333328, + 0.7319403973509929 + ], + "GT Power_0": [ + 0.09948000000000003, + 0.10108666666666669, + 0.09996688741721858 + ], + "IA Power_0": [ + 6.541319999999998, + 6.124680000000004, + 6.157364238410593 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.971826666666668, + 6.456573333333335, + 6.498622516556291 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7293266666666663, + 0.7140133333333328, + 0.7146622516556286 + ], + "GT Power_0": [ + 0.09985333333333342, + 0.10046666666666668, + 0.09996688741721861 + ], + "IA Power_0": [ + 6.452633333333337, + 6.149419999999997, + 6.184072847682119 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.942393333333332, + 6.488320000000002, + 6.5517086092715235 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7720000000000005, + 0.7708200000000002, + 0.7732066666666666 + ], + "GT Power_0": [ + 0.23362251655629135, + 0.2248733333333333, + 0.2261333333333333 + ], + "IA Power_0": [ + 6.715827814569536, + 6.370053333333335, + 6.461040000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.240675496688739, + 6.860246666666667, + 6.938373333333329 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7187199999999994, + 0.7189536423841058, + 0.7179801324503309 + ], + "GT Power_0": [ + 0.10923333333333335, + 0.10578807947019869, + 0.10761589403973512 + ], + "IA Power_0": [ + 6.316606666666668, + 6.258039735099336, + 6.57547682119205 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6188133333333345, + 6.647609271523177, + 6.8752516556291425 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD157-A9", + "number": 4705, + "tests": [ + { + "DRAM Power_0": [ + 0.5890331125827809, + 0.5888543046357614, + 0.5962733333333332 + ], + "GT Power_0": [ + 0.032112582781456935, + 0.015516556291390728, + 0.015166666666666663 + ], + "IA Power_0": [ + 4.106496688741723, + 4.0483509933774835, + 4.366473333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.386933774834437, + 4.354019867549671, + 4.653686666666666 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7206999999999997, + 0.715093333333333, + 0.7222980132450327 + ], + "GT Power_0": [ + 0.1147733333333334, + 0.11342666666666669, + 0.1141920529801325 + ], + "IA Power_0": [ + 6.90638, + 6.985799999999999, + 7.134774834437085 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.299906666666664, + 7.419126666666664, + 7.484397350993376 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7244768211920527, + 0.72623178807947, + 0.7287284768211918 + ], + "GT Power_0": [ + 0.11267549668874169, + 0.1109205298013246, + 0.11195364238410599 + ], + "IA Power_0": [ + 6.570801324503311, + 6.794993377483447, + 6.999708609271524 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.042066225165562, + 7.195172185430463, + 7.500264900662251 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7764370860927154, + 0.7778211920529803, + 0.7798000000000008 + ], + "GT Power_0": [ + 0.24200662251655644, + 0.24339072847682122, + 0.24404 + ], + "IA Power_0": [ + 7.021271523178805, + 7.292185430463576, + 6.97238 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.615456953642388, + 7.882543046357623, + 7.575506666666664 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7249333333333329, + 0.7236533333333328, + 0.7281920529801322 + ], + "GT Power_0": [ + 0.11630000000000006, + 0.11574666666666664, + 0.12715231788079476 + ], + "IA Power_0": [ + 6.9087466666666675, + 7.4629600000000025, + 7.196854304635764 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.269753333333333, + 7.898373333333331, + 7.684841059602646 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD149-A9", + "number": 4704, + "tests": [ + { + "DRAM Power_0": [ + 0.5770666666666665, + 0.57464, + 0.5738543046357616 + ], + "GT Power_0": [ + 0.015680000000000003, + 0.01608, + 0.01457615894039735 + ], + "IA Power_0": [ + 3.949606666666667, + 3.3614533333333347, + 3.7459006622516564 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.168073333333333, + 3.6229733333333343, + 3.974543046357618 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7111456953642379, + 0.7127748344370856, + 0.7126821192052977 + ], + "GT Power_0": [ + 0.1067086092715232, + 0.10880132450331124, + 0.11446357615894041 + ], + "IA Power_0": [ + 6.6663311258278135, + 6.650708609271524, + 7.0728278145695365 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.012768211920532, + 6.985178807947021, + 7.464 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7204768211920527, + 0.7121599999999995, + 0.7127880794701981 + ], + "GT Power_0": [ + 0.11166887417218545, + 0.11782, + 0.11217218543046359 + ], + "IA Power_0": [ + 6.747834437086091, + 6.7280533333333326, + 6.767556291390728 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.207761589403974, + 7.053380000000001, + 7.106668874172185 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7708200000000002, + 0.7698466666666671, + 0.7691200000000002 + ], + "GT Power_0": [ + 0.26695333333333326, + 0.26447333333333356, + 0.2661333333333333 + ], + "IA Power_0": [ + 7.052186666666667, + 7.369280000000001, + 7.0279933333333355 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.521126666666669, + 7.836140000000003, + 7.5347599999999995 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7360933333333328, + 0.7188322147651005, + 0.7626666666666664 + ], + "GT Power_0": [ + 0.11816666666666667, + 0.11623489932885901, + 0.13949999999999999 + ], + "IA Power_0": [ + 6.797206666666669, + 7.375201342281876, + 6.86904 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.280473333333334, + 7.776704697986576, + 7.621126666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 149, + 150 + ] + } + ] + }, + { + "bot": "BUILD175-A9", + "number": 4703, + "tests": [ + { + "DRAM Power_0": [ + 0.6046133333333333, + 0.5749470198675498, + 0.5751266666666666 + ], + "GT Power_0": [ + 0.014913333333333329, + 0.015165562913907285, + 0.013926666666666664 + ], + "IA Power_0": [ + 3.708773333333334, + 2.9911920529801312, + 3.0185533333333328 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.0284999999999975, + 3.2277748344370885, + 3.2532133333333344 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7429466666666662, + 0.7133866666666663, + 0.7284437086092714 + ], + "GT Power_0": [ + 0.10592666666666667, + 0.10058666666666671, + 0.10352317880794705 + ], + "IA Power_0": [ + 6.157166666666665, + 5.74628, + 6.1875629139072865 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.736913333333333, + 6.132726666666666, + 6.679582781456956 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7138266666666663, + 0.7142185430463573, + 0.7362799999999997 + ], + "GT Power_0": [ + 0.10190666666666667, + 0.10301986754966887, + 0.10822 + ], + "IA Power_0": [ + 5.965226666666666, + 5.896854304635764, + 6.266153333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3337666666666665, + 6.229039735099336, + 6.782546666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7720666666666676, + 0.7694600000000003, + 0.7891986754966895 + ], + "GT Power_0": [ + 0.22535333333333332, + 0.22936666666666672, + 0.2324039735099337 + ], + "IA Power_0": [ + 6.057213333333335, + 6.004999999999998, + 6.148821192052982 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.563833333333334, + 6.517673333333334, + 6.817999999999997 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7327133333333329, + 0.8382348993288585, + 0.7172516556291391 + ], + "GT Power_0": [ + 0.10965333333333331, + 0.10846308724832215, + 0.10817218543046357 + ], + "IA Power_0": [ + 5.882053333333335, + 10.179590604026846, + 5.883549668874172 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3962, + 10.479798657718117, + 6.2427880794701975 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 149, + 151 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4702, + "tests": [ + { + "DRAM Power_0": [ + 0.5749933774834434, + 0.5765733333333335, + 0.6054238410596028 + ], + "GT Power_0": [ + 0.013609271523178803, + 0.014093333333333326, + 0.015218543046357613 + ], + "IA Power_0": [ + 3.177364238410595, + 3.900953333333334, + 3.8447086092715237 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4224635761589415, + 4.147673333333333, + 4.16844370860927 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7141199999999995, + 0.735291390728476, + 0.7139066666666657 + ], + "GT Power_0": [ + 0.10687333333333332, + 0.10782119205298014, + 0.10979333333333331 + ], + "IA Power_0": [ + 6.130293333333333, + 6.13458278145695, + 6.049386666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.453373333333334, + 6.635317880794703, + 6.4109733333333345 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7152715231788075, + 0.7139933333333331, + 0.7146399999999993 + ], + "GT Power_0": [ + 0.10692052980132458, + 0.10645333333333339, + 0.10832000000000001 + ], + "IA Power_0": [ + 6.4687880794701975, + 6.143186666666666, + 6.0600999999999985 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8539006622516565, + 6.487399999999995, + 6.432486666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7738940397351001, + 0.7724866666666667, + 0.7721456953642389 + ], + "GT Power_0": [ + 0.23300662251655624, + 0.2282533333333334, + 0.2281125827814569 + ], + "IA Power_0": [ + 6.594960264900662, + 6.257199999999998, + 6.293662251655629 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.093059602649009, + 6.766586666666669, + 6.815569536423843 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7292199999999994, + 0.7200264900662253, + 0.7266466666666663 + ], + "GT Power_0": [ + 0.13122, + 0.11354304635761592, + 0.12518000000000004 + ], + "IA Power_0": [ + 6.087166666666668, + 6.122582781456956, + 6.526506666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.526946666666667, + 6.5127483443708565, + 6.981726666666665 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD153-A9", + "number": 4701, + "tests": [ + { + "DRAM Power_0": [ + 0.5797181208053688, + 0.5713466666666667, + 0.5913311258278147 + ], + "GT Power_0": [ + 0.038402684563758366, + 0.013053333333333333, + 0.014039735099337753 + ], + "IA Power_0": [ + 2.6759530201342305, + 2.663293333333335, + 3.056701986754968 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.025255033557047, + 2.9423466666666664, + 3.391933774834438 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7142251655629135, + 0.7273489932885898, + 0.7275399999999999 + ], + "GT Power_0": [ + 0.08959602649006623, + 0.08906711409395973, + 0.08795999999999995 + ], + "IA Power_0": [ + 5.281827814569538, + 5.167697986577181, + 5.282533333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.567582781456957, + 5.6116241610738244, + 5.668273333333329 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7137133333333329, + 0.7164266666666662, + 0.7157748344370858 + ], + "GT Power_0": [ + 0.08867999999999998, + 0.08716666666666667, + 0.08645033112582787 + ], + "IA Power_0": [ + 5.247126666666665, + 5.562793333333336, + 5.324350993377484 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.595246666666662, + 5.870306666666665, + 5.660748344370866 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7813600000000003, + 0.772192052980133, + 0.7826866666666669 + ], + "GT Power_0": [ + 0.21118, + 0.1944834437086092, + 0.21521333333333337 + ], + "IA Power_0": [ + 5.419326666666669, + 5.416317880794701, + 5.396246666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.932106666666666, + 5.885158940397351, + 5.93298666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7340335570469795, + 0.7195866666666663, + 0.7200999999999995 + ], + "GT Power_0": [ + 0.09563087248322151, + 0.09445999999999999, + 0.09502000000000005 + ], + "IA Power_0": [ + 5.596825503355704, + 5.391819999999997, + 5.2705 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.022436241610738, + 5.711879999999999, + 5.64484666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 149, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD21-B1", + "number": 4700, + "tests": [ + { + "DRAM Power_0": [ + 0.5772466666666665, + 0.5756866666666663, + 0.5755800000000001 + ], + "GT Power_0": [ + 0.013899999999999997, + 0.014633333333333338, + 0.015086666666666667 + ], + "IA Power_0": [ + 2.9528000000000003, + 3.250226666666667, + 2.914353333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.356953333333334, + 4.68652, + 4.370293333333334 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7287800000000001, + 0.7127399999999997, + 0.7145999999999997 + ], + "GT Power_0": [ + 0.10702666666666669, + 0.10435333333333344, + 0.10528000000000003 + ], + "IA Power_0": [ + 5.5608933333333335, + 5.627786666666666, + 5.569966666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.256686666666666, + 7.137706666666666, + 7.110666666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7150333333333332, + 0.73078, + 0.7134199999999993 + ], + "GT Power_0": [ + 0.10287333333333336, + 0.10639333333333338, + 0.10449333333333334 + ], + "IA Power_0": [ + 5.905733333333333, + 5.614753333333333, + 5.565380000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.437033333333326, + 7.285019999999999, + 7.102959999999995 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7741523178807952, + 0.7881854304635763, + 0.7711258278145697 + ], + "GT Power_0": [ + 0.23668211920529794, + 0.23286092715231788, + 0.2419801324503313 + ], + "IA Power_0": [ + 6.072933774834436, + 5.833675496688743, + 5.815655629139073 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.783331125827815, + 7.86376821192053, + 7.481450331125825 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7248187919463082, + 0.7334266666666667, + 0.7303933333333329 + ], + "GT Power_0": [ + 0.11172483221476506, + 0.11281999999999999, + 0.11471999999999995 + ], + "IA Power_0": [ + 6.057543624161075, + 5.816060000000002, + 6.319933333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.612489932885907, + 7.39931333333333, + 7.886700000000002 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 149, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4699, + "tests": [ + { + "DRAM Power_0": [ + 0.5821599999999999, + 0.5737417218543044, + 0.5755466666666664 + ], + "GT Power_0": [ + 0.04163999999999998, + 0.01333774834437086, + 0.012866666666666669 + ], + "IA Power_0": [ + 2.6308999999999987, + 2.5949602649006636, + 2.895479999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.993113333333333, + 2.850066225165563, + 3.131246666666668 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7308874172185424, + 0.7161999999999995, + 0.7137866666666661 + ], + "GT Power_0": [ + 0.08644370860927154, + 0.08850666666666666, + 0.08884666666666668 + ], + "IA Power_0": [ + 5.549384105960262, + 5.285486666666668, + 5.2457866666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.967437086092717, + 5.620479999999998, + 5.616913333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7147152317880789, + 0.7140927152317879, + 0.7149337748344364 + ], + "GT Power_0": [ + 0.08613245033112586, + 0.0863973509933775, + 0.08799337748344375 + ], + "IA Power_0": [ + 5.507841059602647, + 5.186417218543044, + 5.278470198675498 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.843086092715232, + 5.578291390728476, + 5.588582781456952 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7720066666666671, + 0.7883311258278151, + 0.7724701986754967 + ], + "GT Power_0": [ + 0.19561999999999996, + 0.19398675496688741, + 0.19598675496688742 + ], + "IA Power_0": [ + 5.45292, + 5.3865231788079475, + 5.548324503311259 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.929239999999998, + 5.993357615894039, + 6.03003311258278 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7194569536423836, + 0.7193774834437084, + 0.7202516556291387 + ], + "GT Power_0": [ + 0.08917880794701996, + 0.09152317880794704, + 0.09201324503311258 + ], + "IA Power_0": [ + 5.264953642384106, + 5.340317880794702, + 5.556980132450332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.614278145695367, + 5.67937748344371, + 5.926483443708609 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4698, + "tests": [ + { + "DRAM Power_0": [ + 0.5884569536423839, + 0.5746711409395975, + 0.5745430463576157 + ], + "GT Power_0": [ + 0.012907284768211916, + 0.012127516778523487, + 0.013788079470198675 + ], + "IA Power_0": [ + 2.833192052980133, + 3.3179932885906047, + 2.7752516556291384 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.160927152317879, + 3.5824429530201343, + 3.032178807947019 + ], + "name": "Basic", + "samples": [ + 151, + 149, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7148741721854303, + 0.7134066666666662, + 0.7131589403973508 + ], + "GT Power_0": [ + 0.0851390728476821, + 0.08270000000000004, + 0.08576821192052979 + ], + "IA Power_0": [ + 5.8584370860927155, + 5.490513333333333, + 5.549291390728477 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.184821192052978, + 5.83652, + 5.884337748344367 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.714529801324503, + 0.7119533333333328, + 0.8399865771812077 + ], + "GT Power_0": [ + 0.08449006622516553, + 0.08322666666666668, + 0.0829060402684564 + ], + "IA Power_0": [ + 5.837973509933776, + 5.500780000000002, + 9.335489932885906 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.192576158940397, + 5.843999999999998, + 9.667489932885902 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7703000000000001, + 0.7705333333333334, + 0.7730397350993384 + ], + "GT Power_0": [ + 0.19200666666666658, + 0.19341999999999995, + 0.18882781456953635 + ], + "IA Power_0": [ + 5.734460000000002, + 5.694393333333332, + 6.031523178807949 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.208393333333333, + 6.171273333333333, + 6.5172649006622505 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7191324503311259, + 0.7175933333333334, + 0.7206866666666665 + ], + "GT Power_0": [ + 0.08701324503311257, + 0.08404666666666664, + 0.09374666666666667 + ], + "IA Power_0": [ + 5.598139072847683, + 5.631100000000001, + 5.926900000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.93919205298013, + 5.922126666666667, + 6.309400000000002 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD159-A9", + "number": 4697, + "tests": [ + { + "DRAM Power_0": [ + 0.5836666666666667, + 0.5854900662251658, + 0.5714238410596023 + ], + "GT Power_0": [ + 0.04333333333333333, + 0.014827814569536423, + 0.014821192052980133 + ], + "IA Power_0": [ + 2.834933333333333, + 2.920397350993377, + 2.6320463576158946 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.19076, + 3.248867549668873, + 2.8557615894039743 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7235562913907282, + 0.7343178807947018, + 0.7315933333333333 + ], + "GT Power_0": [ + 0.1219801324503312, + 0.12445033112582775, + 0.13603333333333334 + ], + "IA Power_0": [ + 5.3263178807947025, + 5.311278145695365, + 5.2821 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.78756953642384, + 5.756086092715236, + 5.976333333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7604866666666663, + 0.7281390728476819, + 0.7152649006622512 + ], + "GT Power_0": [ + 0.1206733333333333, + 0.1215960264900663, + 0.11996688741721857 + ], + "IA Power_0": [ + 6.379119999999998, + 5.214754966887416, + 5.291463576158939 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.853686666666665, + 5.774357615894041, + 5.670178807947024 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7904569536423843, + 0.7811866666666667, + 0.8026622516556295 + ], + "GT Power_0": [ + 0.2701523178807946, + 0.27608, + 0.2737417218543047 + ], + "IA Power_0": [ + 5.515649006622517, + 5.415666666666667, + 5.7738079470198675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.221092715231785, + 5.996060000000003, + 6.415781456953641 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7360662251655624, + 0.719073333333333, + 0.7191266666666661 + ], + "GT Power_0": [ + 0.12727152317880797, + 0.1259066666666667, + 0.12817333333333336 + ], + "IA Power_0": [ + 5.312198675496692, + 5.261653333333333, + 5.6152999999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.844364238410598, + 5.699560000000001, + 5.990493333333337 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4696, + "tests": [ + { + "DRAM Power_0": [ + 0.5772582781456946, + 0.5760866666666664, + 0.5905496688741717 + ], + "GT Power_0": [ + 0.01373509933774834, + 0.013026666666666667, + 0.014357615894039734 + ], + "IA Power_0": [ + 3.3616092715231805, + 3.556033333333333, + 3.1754768211920523 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5946158940397344, + 3.7862666666666662, + 3.5468278145695376 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7170397350993376, + 0.7291733333333327, + 0.7125298013245032 + ], + "GT Power_0": [ + 0.11111920529801324, + 0.10582666666666672, + 0.10721854304635758 + ], + "IA Power_0": [ + 6.213549668874175, + 6.091133333333333, + 6.145999999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.584251655629139, + 6.612753333333333, + 6.5111192052980105 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7133133333333329, + 0.7340927152317877, + 0.7239999999999995 + ], + "GT Power_0": [ + 0.10175999999999995, + 0.10541721854304642, + 0.10493959731543627 + ], + "IA Power_0": [ + 6.535106666666663, + 6.206993377483447, + 7.1738389261745 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.809526666666667, + 6.869688741721849, + 7.471892617449661 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7744133333333337, + 0.7728133333333338, + 0.7740198675496689 + ], + "GT Power_0": [ + 0.23237999999999986, + 0.23072666666666672, + 0.22757615894039743 + ], + "IA Power_0": [ + 6.766746666666666, + 6.412993333333331, + 6.495483443708613 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.2318066666666665, + 6.891173333333331, + 6.986112582781455 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7222913907284767, + 0.7261854304635758, + 0.7182649006622511 + ], + "GT Power_0": [ + 0.11262251655629134, + 0.11856953642384103, + 0.10623841059602653 + ], + "IA Power_0": [ + 6.431238410596024, + 6.233841059602645, + 6.541973509933776 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.795543046357614, + 6.671642384105955, + 6.900887417218545 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4695, + "tests": [ + { + "DRAM Power_0": [ + 0.5787133333333329, + 0.5903333333333334, + 0.5938600000000003 + ], + "GT Power_0": [ + 0.04201333333333333, + 0.01934666666666667, + 0.019066666666666666 + ], + "IA Power_0": [ + 3.557680000000001, + 3.117659999999999, + 3.1266999999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8145799999999994, + 3.5285066666666665, + 3.5300399999999996 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.714735099337748, + 0.7134105960264897, + 0.7132781456953641 + ], + "GT Power_0": [ + 0.10983443708609272, + 0.10892715231788082, + 0.10704635761589407 + ], + "IA Power_0": [ + 6.465569536423841, + 6.1197218543046334, + 6.1536754966887415 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.803973509933775, + 6.507887417218543, + 6.517887417218543 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7136999999999997, + 0.7135695364238406, + 0.7140266666666665 + ], + "GT Power_0": [ + 0.10722000000000004, + 0.1037218543046358, + 0.10133333333333337 + ], + "IA Power_0": [ + 6.148153333333337, + 6.178874172185429, + 6.4943533333333345 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.517880000000001, + 6.530880794701988, + 6.845686666666664 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.808473333333333, + 0.8072847682119206, + 0.8145799999999999 + ], + "GT Power_0": [ + 0.2790066666666667, + 0.2660463576158941, + 0.2718733333333333 + ], + "IA Power_0": [ + 6.670926666666666, + 6.827847682119205, + 6.890066666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.150086666666668, + 7.370284768211921, + 7.438860000000005 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7193866666666661, + 0.7376066666666663, + 0.719006622516556 + ], + "GT Power_0": [ + 0.12696000000000002, + 0.11275333333333336, + 0.11468874172185434 + ], + "IA Power_0": [ + 6.312400000000001, + 6.542279999999999, + 6.325794701986756 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.636779999999996, + 6.985146666666669, + 6.681245033112582 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD131-A9", + "number": 4694, + "tests": [ + { + "DRAM Power_0": [ + 0.5906133333333333, + 0.5819599999999998, + 0.5992582781456953 + ], + "GT Power_0": [ + 0.05267999999999999, + 0.019266666666666665, + 0.02036423841059603 + ], + "IA Power_0": [ + 3.5186400000000004, + 3.235426666666669, + 3.218668874172184 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.761906666666667, + 3.4054733333333327, + 3.569794701986755 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7168599999999992, + 0.7175866666666662, + 0.7199599999999995 + ], + "GT Power_0": [ + 0.10674000000000002, + 0.10471333333333338, + 0.10137999999999998 + ], + "IA Power_0": [ + 5.766526666666667, + 5.685713333333335, + 6.067926666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.081940000000003, + 6.0254199999999996, + 6.3492666666666695 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.740713333333333, + 0.7203199999999998, + 0.7176754966887412 + ], + "GT Power_0": [ + 0.10158000000000002, + 0.10001333333333334, + 0.0994701986754967 + ], + "IA Power_0": [ + 5.684413333333331, + 5.822126666666668, + 5.984410596026493 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.447886666666667, + 6.134446666666665, + 6.290430463576158 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8151920529801322, + 0.8198866666666665, + 0.8150402684563759 + ], + "GT Power_0": [ + 0.25813907284768217, + 0.2665133333333334, + 0.25803355704697994 + ], + "IA Power_0": [ + 6.090357615894037, + 6.122786666666667, + 6.0350536912751656 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.585006622516559, + 6.635433333333333, + 6.556456375838926 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7216533333333328, + 0.7269735099337747, + 0.7435133333333332 + ], + "GT Power_0": [ + 0.10770666666666669, + 0.10742384105960272, + 0.11319333333333335 + ], + "IA Power_0": [ + 5.840239999999998, + 6.290887417218545, + 5.915633333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.134340000000001, + 6.579450331125829, + 6.419106666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD169-A9", + "number": 4672, + "tests": [ + { + "DRAM Power_0": [ + 0.5761999999999999, + 0.5747066666666666, + 0.5743200000000002 + ], + "GT Power_0": [ + 0.030973333333333304, + 0.014919999999999998, + 0.01594 + ], + "IA Power_0": [ + 3.194366666666666, + 3.114146666666664, + 3.078293333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.442633333333334, + 3.376213333333334, + 3.3366733333333354 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7122466666666664, + 0.7123666666666664, + 0.7363178807947017 + ], + "GT Power_0": [ + 0.10875333333333335, + 0.11198666666666672, + 0.11596688741721851 + ], + "IA Power_0": [ + 6.19942, + 5.794986666666667, + 5.96048344370861 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.547673333333336, + 6.167373333333333, + 6.601516556291387 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7259668874172184, + 0.713026666666666, + 0.7131920529801319 + ], + "GT Power_0": [ + 0.11005960264900667, + 0.11803333333333335, + 0.12007284768211923 + ], + "IA Power_0": [ + 6.187562913907283, + 5.886346666666669, + 5.933165562913906 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.574092715231789, + 6.248653333333333, + 6.257185430463576 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7855666666666669, + 0.7678933333333336, + 0.7822450331125829 + ], + "GT Power_0": [ + 0.24063333333333334, + 0.24359333333333338, + 0.24403311258278162 + ], + "IA Power_0": [ + 6.098246666666671, + 6.134559999999997, + 6.4060331125827785 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.698459999999995, + 6.668353333333334, + 6.9702317880794675 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7182582781456949, + 0.7348599999999997, + 0.7182847682119201 + ], + "GT Power_0": [ + 0.11774834437086093, + 0.11564666666666663, + 0.11515231788079479 + ], + "IA Power_0": [ + 5.944350993377485, + 6.029193333333335, + 5.961801324503314 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3872251655629135, + 6.513560000000001, + 6.362847682119209 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD165-A9", + "number": 4671, + "tests": [ + { + "DRAM Power_0": [ + 0.5817866666666668, + 0.5747417218543045, + 0.5757682119205295 + ], + "GT Power_0": [ + 0.03286666666666665, + 0.015496688741721856, + 0.015152317880794703 + ], + "IA Power_0": [ + 3.62496, + 3.2081125827814576, + 3.186019867549668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9225, + 3.415172185430463, + 3.426920529801324 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7146092715231783, + 0.7110266666666661, + 0.7298940397350991 + ], + "GT Power_0": [ + 0.10368874172185436, + 0.10087333333333336, + 0.09784105960264905 + ], + "IA Power_0": [ + 6.6548079470198696, + 6.16424, + 6.20439735099338 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.967158940397352, + 6.502286666666666, + 6.843668874172185 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7272266666666661, + 0.7110533333333331, + 0.716233333333333 + ], + "GT Power_0": [ + 0.09806000000000005, + 0.09758666666666671, + 0.10132000000000004 + ], + "IA Power_0": [ + 6.191046666666666, + 6.211086666666666, + 6.972086666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.690593333333334, + 6.594460000000002, + 7.304146666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8134834437086096, + 0.76971523178808, + 0.77014 + ], + "GT Power_0": [ + 0.26088079470198683, + 0.23907947019867562, + 0.23561999999999994 + ], + "IA Power_0": [ + 6.431271523178808, + 6.533112582781459, + 6.827133333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.354311258278144, + 6.986139072847679, + 7.339253333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7177533333333328, + 0.7328466666666665, + 0.7204866666666667 + ], + "GT Power_0": [ + 0.10890000000000008, + 0.10717333333333336, + 0.1094866666666667 + ], + "IA Power_0": [ + 6.352373333333334, + 6.352233333333333, + 6.698400000000006 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.703853333333338, + 6.855046666666667, + 7.086133333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4670, + "tests": [ + { + "DRAM Power_0": [ + 0.575213333333333, + 0.5851655629139074, + 0.5923666666666668 + ], + "GT Power_0": [ + 0.030959999999999977, + 0.014125827814569534, + 0.012879999999999999 + ], + "IA Power_0": [ + 3.4536333333333324, + 3.2783708609271534, + 3.290566666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7059466666666676, + 3.5375761589403956, + 3.876386666666665 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7138609271523173, + 0.7142066666666663, + 0.7137066666666658 + ], + "GT Power_0": [ + 0.10069536423841062, + 0.10134000000000001, + 0.09716666666666667 + ], + "IA Power_0": [ + 6.524523178807948, + 6.702606666666662, + 6.420433333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.790754966887416, + 7.053506666666669, + 6.758806666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7278933333333328, + 0.7444266666666665, + 0.7137880794701982 + ], + "GT Power_0": [ + 0.10168000000000002, + 0.10074000000000005, + 0.10249668874172187 + ], + "IA Power_0": [ + 7.118666666666668, + 7.504620000000002, + 6.41370198675497 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5009, + 8.136806666666665, + 6.786814569536422 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7876291390728482, + 0.7728410596026493, + 0.7901920529801331 + ], + "GT Power_0": [ + 0.22780794701986745, + 0.22532450331125833, + 0.22638410596026493 + ], + "IA Power_0": [ + 6.554377483443707, + 6.6846821192052985, + 6.989543046357616 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.190562913907286, + 7.151913907284772, + 7.589139072847682 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7184635761589402, + 0.743993333333333, + 0.7179599999999996 + ], + "GT Power_0": [ + 0.10558278145695364, + 0.10642000000000004, + 0.10516666666666669 + ], + "IA Power_0": [ + 6.791291390728477, + 6.6067866666666655, + 6.412926666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.1556291390728495, + 7.046866666666665, + 6.777366666666671 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4669, + "tests": [ + { + "DRAM Power_0": [ + 0.5760799999999997, + 0.5752066666666666, + 0.5705894039735098 + ], + "GT Power_0": [ + 0.04247999999999999, + 0.015793333333333336, + 0.014503311258278149 + ], + "IA Power_0": [ + 2.829053333333333, + 2.740746666666665, + 2.5579735099337744 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.087179999999999, + 2.9960000000000004, + 2.792947019867549 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7154666666666665, + 0.7338609271523177, + 0.7138466666666663 + ], + "GT Power_0": [ + 0.11654666666666669, + 0.11411258278145692, + 0.11804000000000006 + ], + "IA Power_0": [ + 5.553586666666669, + 5.228132450331121, + 5.229393333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.909560000000001, + 5.751251655629138, + 5.597386666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7138874172185425, + 0.7169735099337742, + 0.7310529801324498 + ], + "GT Power_0": [ + 0.11631788079470198, + 0.11375496688741722, + 0.11747682119205297 + ], + "IA Power_0": [ + 5.484278145695363, + 5.364211920529804, + 5.281907284768214 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.851417218543043, + 5.740079470198678, + 5.800629139072848 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7904834437086095, + 0.7716490066225168, + 0.7859933333333338 + ], + "GT Power_0": [ + 0.235523178807947, + 0.23254304635761588, + 0.2370933333333333 + ], + "IA Power_0": [ + 5.4607019867549695, + 5.430523178807949, + 5.669273333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.134139072847685, + 5.954000000000002, + 6.3099000000000025 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7177284768211918, + 0.7192066666666663, + 0.7385234899328856 + ], + "GT Power_0": [ + 0.12424503311258286, + 0.12228666666666667, + 0.12146979865771815 + ], + "IA Power_0": [ + 5.324066225165562, + 5.31266, + 5.9093154362416085 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.675615894039738, + 5.707579999999999, + 6.409610738255032 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 149 + ] + } + ] + }, + { + "bot": "BUILD164-A9", + "number": 4668, + "tests": [ + { + "DRAM Power_0": [ + 0.5833355704697986, + 0.5816399999999998, + 0.5859801324503316 + ], + "GT Power_0": [ + 0.02968456375838925, + 0.014746666666666665, + 0.015211920529801328 + ], + "IA Power_0": [ + 3.2620872483221484, + 3.389486666666667, + 3.3754768211920534 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6323624161073815, + 3.630766666666668, + 3.715344370860926 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.714026666666666, + 0.7128199999999997, + 0.7121390728476815 + ], + "GT Power_0": [ + 0.11182000000000007, + 0.11363333333333336, + 0.1160397350993378 + ], + "IA Power_0": [ + 5.933619999999998, + 5.934553333333331, + 5.922463576158938 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.309073333333335, + 6.31702, + 6.284165562913906 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7141456953642379, + 0.7316821192052975, + 0.7126266666666661 + ], + "GT Power_0": [ + 0.11419867549668875, + 0.11282119205298013, + 0.11552666666666667 + ], + "IA Power_0": [ + 6.00088741721854, + 6.358536423841058, + 5.946713333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.355437086092718, + 6.849814569536422, + 6.309486666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7713666666666666, + 0.771132450331126, + 0.7847000000000003 + ], + "GT Power_0": [ + 0.2397, + 0.24481456953642364, + 0.2544733333333335 + ], + "IA Power_0": [ + 6.170526666666663, + 6.53796688741722, + 6.256386666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.674726666666664, + 7.047576158940399, + 6.908406666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7209006622516546, + 0.7297284768211917, + 0.7295866666666659 + ], + "GT Power_0": [ + 0.12380794701986758, + 0.1189403973509934, + 0.12329333333333341 + ], + "IA Power_0": [ + 6.238841059602654, + 6.045437086092714, + 6.193993333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.549403973509935, + 6.563185430463578, + 6.688673333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD178-A9", + "number": 4667, + "tests": [ + { + "DRAM Power_0": [ + 0.5811133333333335, + 0.5741599999999998, + 0.5732266666666668 + ], + "GT Power_0": [ + 0.032399999999999984, + 0.012659999999999998, + 0.012466666666666668 + ], + "IA Power_0": [ + 3.312446666666666, + 2.922313333333332, + 3.0337733333333325 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5996866666666665, + 3.179320000000002, + 3.3033600000000014 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7256556291390726, + 0.7142649006622512, + 0.7277852348993282 + ], + "GT Power_0": [ + 0.08286754966887418, + 0.07896026490066227, + 0.0754362416107383 + ], + "IA Power_0": [ + 5.703172185430464, + 5.677112582781455, + 5.8547046979865796 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.162185430463575, + 5.9988543046357625, + 6.251939597315435 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7126092715231784, + 0.7145799999999995, + 0.7147333333333331 + ], + "GT Power_0": [ + 0.07603973509933772, + 0.07796000000000003, + 0.07603333333333331 + ], + "IA Power_0": [ + 5.657172185430463, + 5.682246666666666, + 5.710813333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.02371523178808, + 6.031013333333332, + 6.039226666666665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7712980132450337, + 0.7702333333333335, + 0.7700466666666667 + ], + "GT Power_0": [ + 0.18005298013245044, + 0.18746666666666673, + 0.1797933333333333 + ], + "IA Power_0": [ + 5.917754966887415, + 6.2067, + 5.864946666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.371947019867551, + 6.6448466666666715, + 6.312066666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7332533333333326, + 0.7322582781456947, + 0.7185066666666658 + ], + "GT Power_0": [ + 0.07903333333333334, + 0.07948344370860927, + 0.07788666666666666 + ], + "IA Power_0": [ + 5.782146666666664, + 6.046880794701987, + 5.7974666666666685 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2333733333333345, + 6.454298013245035, + 6.0983 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4666, + "tests": [ + { + "DRAM Power_0": [ + 0.5738066666666665, + 0.5730066225165559, + 0.5740000000000002 + ], + "GT Power_0": [ + 0.037653333333333316, + 0.012503311258278145, + 0.012112582781456955 + ], + "IA Power_0": [ + 2.653973333333332, + 2.586397350993377, + 2.911390728476823 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.9122866666666676, + 2.8518940397350994, + 3.1668940397350984 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.737573333333333, + 0.7128733333333328, + 0.7126423841059601 + ], + "GT Power_0": [ + 0.08725333333333336, + 0.08704666666666669, + 0.09058940397350991 + ], + "IA Power_0": [ + 5.519106666666666, + 5.232753333333336, + 5.281026490066227 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.007293333333334, + 5.557193333333335, + 5.564907284768212 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7278666666666662, + 0.7148666666666662, + 0.7132866666666663 + ], + "GT Power_0": [ + 0.0881733333333334, + 0.08537333333333333, + 0.08735999999999998 + ], + "IA Power_0": [ + 5.248666666666667, + 5.549606666666663, + 5.216486666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.664153333333336, + 5.88054, + 5.5905666666666605 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7710662251655633, + 0.7789735099337753, + 0.7854000000000007 + ], + "GT Power_0": [ + 0.19701324503311254, + 0.19515894039735093, + 0.20168000000000008 + ], + "IA Power_0": [ + 5.428596026490065, + 5.531947019867551, + 5.595093333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.917456953642383, + 6.051390728476819, + 6.248426666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7751258278145695, + 0.7420599999999994, + 0.7190066225165559 + ], + "GT Power_0": [ + 0.09094039735099335, + 0.09609333333333339, + 0.09135761589403978 + ], + "IA Power_0": [ + 6.747920529801325, + 5.335620000000002, + 5.288761589403976 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.1749933774834425, + 5.924159999999998, + 5.681814569536424 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4665, + "tests": [ + { + "DRAM Power_0": [ + 0.5788733333333332, + 0.5891920529801323, + 0.5940933333333334 + ], + "GT Power_0": [ + 0.034473333333333314, + 0.01722516556291391, + 0.01621333333333333 + ], + "IA Power_0": [ + 3.3065133333333327, + 3.0357086092715235, + 3.2003733333333315 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6142066666666666, + 3.361105960264901, + 3.538526666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7104635761589397, + 0.7107880794701981, + 0.7109933333333329 + ], + "GT Power_0": [ + 0.11446357615894037, + 0.11299999999999998, + 0.11689333333333339 + ], + "IA Power_0": [ + 6.143768211920529, + 5.884304635761589, + 5.903813333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.500006622516554, + 6.26328476821192, + 6.273786666666668 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7117284768211916, + 0.7270266666666662, + 0.7119666666666661 + ], + "GT Power_0": [ + 0.11541059602649013, + 0.11400666666666669, + 0.12082666666666664 + ], + "IA Power_0": [ + 5.91328476821192, + 5.83578, + 6.152433333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.284708609271522, + 6.324686666666668, + 6.568153333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7855533333333338, + 0.769894039735099, + 0.7863866666666671 + ], + "GT Power_0": [ + 0.27370000000000017, + 0.275046357615894, + 0.2747400000000001 + ], + "IA Power_0": [ + 6.064546666666666, + 6.108536423841061, + 6.37792 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.739546666666666, + 6.655152317880791, + 7.088599999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7298940397350993, + 0.7172582781456951, + 0.7268013245033108 + ], + "GT Power_0": [ + 0.12506622516556293, + 0.12380794701986758, + 0.13490728476821193 + ], + "IA Power_0": [ + 5.923245033112581, + 6.041384105960268, + 5.883298013245031 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4472317880794705, + 6.375245033112583, + 6.394185430463574 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4664, + "tests": [ + { + "DRAM Power_0": [ + 0.5751800000000001, + 0.5876357615894042, + 0.5730733333333334 + ], + "GT Power_0": [ + 0.03283333333333332, + 0.014403973509933776, + 0.013039999999999996 + ], + "IA Power_0": [ + 2.630513333333335, + 2.570629139072848, + 2.7613000000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.8922666666666648, + 2.9434105960264887, + 3.006740000000001 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7287682119205295, + 0.7132384105960261, + 0.7314768211920527 + ], + "GT Power_0": [ + 0.11864900662251654, + 0.0980993377483444, + 0.09927152317880802 + ], + "IA Power_0": [ + 5.076801324503311, + 5.066960264900665, + 5.1558079470198654 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.5840529801324505, + 5.4240662251655625, + 5.640119205298014 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7151599999999995, + 0.7120529801324501, + 0.7145827814569535 + ], + "GT Power_0": [ + 0.09877333333333331, + 0.09694039735099334, + 0.09547019867549669 + ], + "IA Power_0": [ + 5.086019999999998, + 5.345536423841063, + 4.995384105960263 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.464419999999997, + 5.704761589403972, + 5.364867549668877 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7718666666666668, + 0.7722866666666665, + 0.7708013245033111 + ], + "GT Power_0": [ + 0.21473333333333333, + 0.2184266666666666, + 0.21790728476821208 + ], + "IA Power_0": [ + 5.195473333333333, + 5.469500000000001, + 5.278728476821192 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.71339333333333, + 5.9774199999999995, + 5.802350993377483 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7259865771812082, + 0.7358933333333326, + 0.7199735099337744 + ], + "GT Power_0": [ + 0.10002684563758393, + 0.10248000000000004, + 0.10164900662251657 + ], + "IA Power_0": [ + 5.775711409395973, + 5.22826, + 5.1029205298013265 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.129402684563759, + 5.641266666666664, + 5.501721854304631 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 149, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4663, + "tests": [ + { + "DRAM Power_0": [ + 0.5830799999999998, + 0.5884199999999996, + 0.5754093959731544 + ], + "GT Power_0": [ + 0.027559999999999984, + 0.01295333333333333, + 0.013919463087248321 + ], + "IA Power_0": [ + 2.8018533333333346, + 2.7097933333333346, + 3.2425503355704706 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1639666666666657, + 3.0525799999999994, + 3.4827046979865757 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.712293333333333, + 0.7122666666666663, + 0.7386533333333334 + ], + "GT Power_0": [ + 0.09336666666666674, + 0.09238000000000002, + 0.09106666666666668 + ], + "IA Power_0": [ + 5.297393333333332, + 5.363159999999999, + 5.368819999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.651866666666669, + 5.714106666666667, + 6.211320000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7232450331125828, + 0.7120133333333329, + 0.727593333333333 + ], + "GT Power_0": [ + 0.10323841059602651, + 0.09114666666666667, + 0.09083333333333334 + ], + "IA Power_0": [ + 5.31437748344371, + 5.547946666666665, + 5.516946666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.773198675496688, + 5.928593333333334, + 5.914226666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7879867549668879, + 0.7723377483443707, + 0.770920529801325 + ], + "GT Power_0": [ + 0.20389403973509926, + 0.19992052980132438, + 0.2023576158940397 + ], + "IA Power_0": [ + 6.37158940397351, + 5.785913907284766, + 5.57943046357616 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.861086092715232, + 6.287192052980131, + 6.082953642384108 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7455234899328855, + 0.7181333333333328, + 0.7161986754966887 + ], + "GT Power_0": [ + 0.09503355704697991, + 0.09830666666666667, + 0.09535099337748346 + ], + "IA Power_0": [ + 5.659161073825502, + 5.354013333333334, + 5.354801324503314 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.358939597315436, + 5.716626666666664, + 5.732635761589405 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 149, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD132-A9", + "number": 4662, + "tests": [ + { + "DRAM Power_0": [ + 0.5806066666666664, + 0.5894768211920529, + 0.5694370860927148 + ], + "GT Power_0": [ + 0.033366666666666656, + 0.013635761589403968, + 0.012807947019867549 + ], + "IA Power_0": [ + 3.197893333333332, + 3.218933774834437, + 3.1992913907284763 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4801200000000008, + 3.5729337748344387, + 3.4132649006622517 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7129801324503303, + 0.7140599999999993, + 0.7293999999999995 + ], + "GT Power_0": [ + 0.08961589403973513, + 0.0905866666666667, + 0.09292666666666669 + ], + "IA Power_0": [ + 6.308602649006625, + 6.326799999999997, + 6.289219999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.624410596026492, + 6.648320000000004, + 6.768720000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7345629139072842, + 0.7126821192052976, + 0.7140466666666664 + ], + "GT Power_0": [ + 0.09113245033112585, + 0.09239072847682121, + 0.08977333333333332 + ], + "IA Power_0": [ + 6.347966887417218, + 6.63890066225166, + 6.3628599999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.001225165562913, + 6.937033112582781, + 6.621706666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7713774834437092, + 0.7736158940397355, + 0.780688741721855 + ], + "GT Power_0": [ + 0.20310596026490074, + 0.22919205298013248, + 0.23087417218543038 + ], + "IA Power_0": [ + 6.541880794701987, + 6.51932450331126, + 6.485880794701985 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.976496688741721, + 7.007927152317883, + 7.012821192052981 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7380666666666663, + 0.7206092715231783, + 0.7192466666666665 + ], + "GT Power_0": [ + 0.09877999999999998, + 0.09980132450331128, + 0.09502666666666665 + ], + "IA Power_0": [ + 7.086553333333333, + 6.390152317880794, + 6.607666666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.540793333333327, + 6.73312582781457, + 6.977286666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4661, + "tests": [ + { + "DRAM Power_0": [ + 0.5837799999999997, + 0.5903266666666664, + 0.5874768211920526 + ], + "GT Power_0": [ + 0.03146666666666666, + 0.013279999999999993, + 0.013350993377483444 + ], + "IA Power_0": [ + 3.398093333333333, + 2.7966933333333333, + 2.7407549668874167 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.772626666666666, + 3.161986666666668, + 3.09823178807947 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7278266666666667, + 0.730653333333333, + 0.7125866666666659 + ], + "GT Power_0": [ + 0.08019333333333332, + 0.08213333333333338, + 0.08066666666666665 + ], + "IA Power_0": [ + 5.500953333333332, + 5.5100999999999996, + 5.750913333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.880946666666667, + 6.014973333333333, + 6.1304799999999995 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7128533333333327, + 0.7187350993377477, + 0.7312251655629133 + ], + "GT Power_0": [ + 0.08374000000000005, + 0.08399999999999998, + 0.08029801324503312 + ], + "IA Power_0": [ + 5.519980000000001, + 5.768410596026492, + 5.826536423841059 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.865133333333332, + 6.091529801324504, + 6.239052980132453 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.786926666666667, + 0.787046357615894, + 0.7716200000000004 + ], + "GT Power_0": [ + 0.19150666666666674, + 0.1929139072847683, + 0.19155999999999995 + ], + "IA Power_0": [ + 5.704966666666671, + 5.787013245033111, + 5.767439999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2784866666666685, + 6.356582781456951, + 6.231646666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7186666666666662, + 0.7179271523178804, + 0.7184333333333328 + ], + "GT Power_0": [ + 0.0872533333333333, + 0.10124503311258279, + 0.0884666666666667 + ], + "IA Power_0": [ + 5.622306666666666, + 5.875980132450329, + 5.583886666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.955393333333334, + 6.181410596026487, + 5.951333333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4660, + "tests": [ + { + "DRAM Power_0": [ + 0.5754599999999997, + 0.5763733333333334, + 0.5750397350993377 + ], + "GT Power_0": [ + 0.03184666666666666, + 0.013606666666666663, + 0.013622516556291391 + ], + "IA Power_0": [ + 2.7038933333333324, + 2.7335666666666683, + 2.630072847682119 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.966966666666666, + 2.960360000000002, + 2.899258278145695 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7147947019867545, + 0.7428999999999994, + 0.7146622516556287 + ], + "GT Power_0": [ + 0.0895496688741722, + 0.08757333333333335, + 0.08323841059602649 + ], + "IA Power_0": [ + 5.242192052980132, + 5.543726666666665, + 5.294384105960265 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.627271523178807, + 6.0138533333333335, + 5.644284768211923 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.72751655629139, + 0.7256026490066217, + 0.7307466666666663 + ], + "GT Power_0": [ + 0.08630463576158942, + 0.08333112582781463, + 0.08429333333333336 + ], + "IA Power_0": [ + 5.267112582781458, + 5.5733774834437115, + 5.270293333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.72771523178808, + 5.976523178807948, + 5.711573333333335 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7941324503311264, + 0.7741258278145702, + 0.7723377483443712 + ], + "GT Power_0": [ + 0.19203973509933772, + 0.19663576158940396, + 0.19452980132450332 + ], + "IA Power_0": [ + 5.514854304635762, + 5.435417218543047, + 5.507033112582784 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.091980132450332, + 5.953264900662257, + 5.98460264900662 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7182251655629133, + 0.7377986577181206, + 0.7292333333333328 + ], + "GT Power_0": [ + 0.08888741721854304, + 0.087510067114094, + 0.1042066666666667 + ], + "IA Power_0": [ + 5.587059602649009, + 5.6102416107382584, + 5.361666666666671 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.953788079470198, + 6.001812080536912, + 5.794039999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 149, + 150 + ] + } + ] + }, + { + "bot": "BUILD169-A9", + "number": 4659, + "tests": [ + { + "DRAM Power_0": [ + 0.5825733333333333, + 0.5739668874172184, + 0.5755033112582777 + ], + "GT Power_0": [ + 0.04555333333333332, + 0.014596026490066229, + 0.015258278145695364 + ], + "IA Power_0": [ + 3.0323466666666676, + 3.3065960264900642, + 3.065403973509936 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.325226666666667, + 3.548913907284769, + 3.283668874172186 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.711417218543046, + 0.7104635761589396, + 0.7392913907284764 + ], + "GT Power_0": [ + 0.10398013245033118, + 0.10360927152317881, + 0.10708609271523176 + ], + "IA Power_0": [ + 5.6796291390728495, + 6.0545099337748365, + 5.800278145695366 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.048079470198674, + 6.444913907284771, + 6.631927152317879 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7355695364238407, + 0.7125799999999992, + 0.7122399999999994 + ], + "GT Power_0": [ + 0.1096092715231788, + 0.10723999999999999, + 0.10445333333333337 + ], + "IA Power_0": [ + 5.774033112582781, + 5.831373333333332, + 5.845379999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.592635761589401, + 6.153133333333333, + 6.160206666666668 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7695894039735104, + 0.7705496688741726, + 0.7688466666666669 + ], + "GT Power_0": [ + 0.23297350993377486, + 0.23321192052980136, + 0.23292000000000015 + ], + "IA Power_0": [ + 6.243026490066224, + 6.00092715231788, + 5.984346666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.768119205298014, + 6.509238410596029, + 6.457086666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7170199999999997, + 0.7175199999999989, + 0.7175231788079466 + ], + "GT Power_0": [ + 0.11374666666666668, + 0.11633333333333336, + 0.1151059602649007 + ], + "IA Power_0": [ + 6.136919999999998, + 5.793466666666667, + 5.8621390728476825 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.524539999999999, + 6.203593333333331, + 6.263490066225166 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD170-A9", + "number": 4658, + "tests": [ + { + "DRAM Power_0": [ + 0.5814066666666664, + 0.574344370860927, + 0.5893774834437085 + ], + "GT Power_0": [ + 0.03721999999999999, + 0.014509933774834435, + 0.01398013245033112 + ], + "IA Power_0": [ + 2.7595200000000015, + 2.8775231788079485, + 2.6629602649006627 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0611533333333343, + 3.118662251655631, + 3.059794701986755 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.711912751677852, + 0.7111390728476817, + 0.7135231788079464 + ], + "GT Power_0": [ + 0.09265771812080542, + 0.09309271523178807, + 0.09609271523178814 + ], + "IA Power_0": [ + 5.3751677852349, + 5.146529801324501, + 5.181821192052979 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.744718120805367, + 5.53076821192053, + 5.527225165562914 + ], + "name": "Video_720_MP4", + "samples": [ + 149, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7129599999999996, + 0.7250794701986748, + 0.7133509933774829 + ], + "GT Power_0": [ + 0.09580666666666666, + 0.0953046357615894, + 0.09614569536423839 + ], + "IA Power_0": [ + 5.459853333333334, + 5.240933774834436, + 5.176291390728477 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.82853333333333, + 5.716642384105954, + 5.552264900662252 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7702133333333336, + 0.7703377483443713, + 0.7705600000000006 + ], + "GT Power_0": [ + 0.22074666666666667, + 0.22055629139072844, + 0.2178333333333334 + ], + "IA Power_0": [ + 5.30701333333333, + 5.3276953642384095, + 5.6141400000000035 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.81849333333333, + 5.851033112582782, + 6.11788 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7179735099337745, + 0.7340132450331125, + 0.7175430463576157 + ], + "GT Power_0": [ + 0.10119205298013245, + 0.10161589403973513, + 0.0980728476821192 + ], + "IA Power_0": [ + 5.254536423841063, + 5.2067284768211906, + 5.552258278145698 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.611609271523177, + 5.6698874172185425, + 5.903000000000002 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD156-A9", + "number": 4657, + "tests": [ + { + "DRAM Power_0": [ + 0.58166, + 0.5735364238410592, + 0.5733112582781459 + ], + "GT Power_0": [ + 0.03960666666666666, + 0.015536423841059601, + 0.01533774834437086 + ], + "IA Power_0": [ + 2.764773333333334, + 2.728807947019867, + 2.6752384105960276 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0998466666666666, + 2.9526622516556293, + 2.9238211920529813 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7284799999999996, + 0.7146266666666663, + 0.7277799999999993 + ], + "GT Power_0": [ + 0.11672000000000005, + 0.11960666666666671, + 0.12010666666666671 + ], + "IA Power_0": [ + 5.192886666666667, + 5.499460000000002, + 5.200940000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.655959999999999, + 5.8824933333333345, + 5.804459999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712753333333333, + 0.7134370860927148, + 0.711273333333333 + ], + "GT Power_0": [ + 0.11703333333333334, + 0.1189801324503312, + 0.11937333333333328 + ], + "IA Power_0": [ + 5.2568133333333344, + 5.241721854304636, + 5.230039999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.6029666666666635, + 5.644907284768214, + 5.598886666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7906000000000004, + 0.7702450331125827, + 0.7836066666666669 + ], + "GT Power_0": [ + 0.2522866666666667, + 0.24943708609271514, + 0.25144 + ], + "IA Power_0": [ + 5.627526666666666, + 5.423960264900661, + 5.386399999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.355379999999999, + 5.9561456953642375, + 6.049546666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7196933333333331, + 0.71882119205298, + 0.7378199999999996 + ], + "GT Power_0": [ + 0.12464666666666671, + 0.13235761589403977, + 0.12910666666666668 + ], + "IA Power_0": [ + 5.6210066666666645, + 5.258854304635756, + 5.404233333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.003373333333331, + 5.6584437086092745, + 5.928579999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD118-A9", + "number": 4656, + "tests": [ + { + "DRAM Power_0": [ + 0.58088, + 0.5737880794701986, + 0.5726333333333335 + ], + "GT Power_0": [ + 0.039753333333333314, + 0.014867549668874172, + 0.013486666666666668 + ], + "IA Power_0": [ + 2.9089799999999997, + 2.8422582781456964, + 3.071760000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2595666666666667, + 3.071860927152318, + 3.3236266666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7121192052980128, + 0.712833333333333, + 0.7133841059602647 + ], + "GT Power_0": [ + 0.10355629139072851, + 0.10442666666666668, + 0.10654966887417229 + ], + "IA Power_0": [ + 5.458344370860928, + 5.693459999999998, + 5.5531920529801315 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.838860927152316, + 6.0547866666666685, + 5.862066225165563 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7267350993377479, + 0.7109801324503305, + 0.7351133333333328 + ], + "GT Power_0": [ + 0.10066225165562913, + 0.098841059602649, + 0.1012333333333333 + ], + "IA Power_0": [ + 5.412516556291391, + 5.707986754966887, + 5.385913333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.83356953642384, + 6.046013245033114, + 6.189326666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7703774834437085, + 0.7689533333333338, + 0.7718874172185429 + ], + "GT Power_0": [ + 0.23018543046357617, + 0.22881999999999986, + 0.23099337748344367 + ], + "IA Power_0": [ + 5.629807947019867, + 5.574413333333332, + 5.63425165562914 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.162410596026488, + 6.088193333333333, + 6.149198675496687 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7171266666666659, + 0.7179399999999998, + 0.7177483443708608 + ], + "GT Power_0": [ + 0.10597333333333331, + 0.10521333333333334, + 0.10507947019867557 + ], + "IA Power_0": [ + 5.72839333333333, + 5.521386666666668, + 5.504536423841059 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.1220399999999975, + 5.918573333333335, + 5.867801324503316 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4655, + "tests": [ + { + "DRAM Power_0": [ + 0.5753199999999998, + 0.5743466666666663, + 0.5736866666666663 + ], + "GT Power_0": [ + 0.017773333333333332, + 0.015860000000000006, + 0.015966666666666667 + ], + "IA Power_0": [ + 3.3900200000000007, + 3.6399066666666675, + 3.3061999999999987 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.579526666666667, + 3.8480933333333343, + 3.5270266666666656 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7141333333333328, + 0.7119668874172181, + 0.7288133333333328 + ], + "GT Power_0": [ + 0.11767333333333334, + 0.12496688741721852, + 0.11944000000000003 + ], + "IA Power_0": [ + 6.644359999999998, + 6.611662251655629, + 6.625666666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9906199999999945, + 6.966629139072846, + 7.155513333333335 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7121866666666662, + 0.712456953642383, + 0.7125099337748338 + ], + "GT Power_0": [ + 0.11350000000000003, + 0.11699337748344374, + 0.11766225165562919 + ], + "IA Power_0": [ + 6.938913333333335, + 6.644384105960264, + 6.700993377483443 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.2982133333333365, + 6.9953112582781465, + 7.027860927152319 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7833933333333336, + 0.7702980132450332, + 0.7698200000000006 + ], + "GT Power_0": [ + 0.2557666666666665, + 0.2856158940397352, + 0.2575999999999997 + ], + "IA Power_0": [ + 7.203033333333333, + 6.905072847682121, + 6.842533333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.8553999999999995, + 7.405788079470198, + 7.372213333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7304172185430461, + 0.7274266666666663, + 0.7312185430463577 + ], + "GT Power_0": [ + 0.13590728476821196, + 0.12455333333333335, + 0.12472847682119212 + ], + "IA Power_0": [ + 6.761165562913905, + 7.339380000000001, + 7.378066225165563 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.298019867549672, + 7.722266666666664, + 7.7834503311258345 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD155-A9", + "number": 4654, + "tests": [ + { + "DRAM Power_0": [ + 0.58078, + 0.5729599999999999, + 0.5746666666666667 + ], + "GT Power_0": [ + 0.028079999999999997, + 0.01372666666666667, + 0.015006666666666668 + ], + "IA Power_0": [ + 3.046393333333334, + 2.9109333333333334, + 3.0126800000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3354933333333343, + 3.183646666666668, + 3.2526933333333328 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7303178807947015, + 0.7287866666666664, + 0.7138675496688737 + ], + "GT Power_0": [ + 0.10968874172185429, + 0.10628666666666668, + 0.1064701986754967 + ], + "IA Power_0": [ + 5.8832185430463575, + 6.146633333333333, + 5.936476821192053 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.335364238410596, + 6.614480000000001, + 6.28074834437086 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7145333333333331, + 0.71387417218543, + 0.7632516556291387 + ], + "GT Power_0": [ + 0.10795333333333328, + 0.11147019867549676, + 0.11241059602649014 + ], + "IA Power_0": [ + 5.9469400000000014, + 6.514178807947021, + 6.464847682119204 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.302106666666669, + 6.86608609271523, + 7.325072847682118 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7737200000000002, + 0.7728600000000005, + 0.8546577181208057 + ], + "GT Power_0": [ + 0.2372533333333333, + 0.2380533333333333, + 0.2322416107382551 + ], + "IA Power_0": [ + 6.327053333333331, + 6.337039999999999, + 9.267255033557046 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.875860000000001, + 6.835673333333332, + 9.769570469798657 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7345231788079465, + 0.7193199999999995, + 0.7213066666666663 + ], + "GT Power_0": [ + 0.11593377483443709, + 0.11704666666666666, + 0.1180933333333334 + ], + "IA Power_0": [ + 6.361735099337749, + 6.00341333333333, + 6.028906666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.833721854304635, + 6.369993333333335, + 6.397353333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD174-A9", + "number": 4653, + "tests": [ + { + "DRAM Power_0": [ + 0.575150684931507, + 0.5769932885906038, + 0.5767382550335574 + ], + "GT Power_0": [ + 0.030732876712328744, + 0.0127248322147651, + 0.013912751677852348 + ], + "IA Power_0": [ + 0.8481712328767123, + 1.071530201342282, + 0.8624832214765102 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 1.2019246575342464, + 1.4045033557046982, + 1.195288590604027 + ], + "name": "Basic", + "samples": [ + 146, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7377799999999998, + 0.7326174496644293, + 0.726140939597315 + ], + "GT Power_0": [ + 0.09840666666666673, + 0.1024765100671141, + 0.0999060402684564 + ], + "IA Power_0": [ + 1.423086666666667, + 1.814610738255034, + 1.2802483221476513 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 1.9859266666666668, + 2.2505033557046983, + 1.72548322147651 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7209798657718117, + 0.7281208053691266, + 0.7277516778523486 + ], + "GT Power_0": [ + 0.10329530201342285, + 0.09997315436241616, + 0.09912751677852348 + ], + "IA Power_0": [ + 1.585469798657718, + 1.2970738255033558, + 1.2112147651006706 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.0178255033557058, + 1.7421610738255033, + 1.6577516778523491 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 149, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7961744966442957, + 0.7942333333333332, + 0.8117785234899336 + ], + "GT Power_0": [ + 0.23440268456375846, + 0.23914666666666654, + 0.2394630872483221 + ], + "IA Power_0": [ + 1.9188724832214763, + 1.2851599999999999, + 1.3920872483221483 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.5222953020134233, + 1.8975533333333332, + 2.021255033557047 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 149, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7317449664429528, + 0.7270469798657715, + 0.7263918918918915 + ], + "GT Power_0": [ + 0.1079664429530201, + 0.10778523489932887, + 0.1081824324324324 + ], + "IA Power_0": [ + 1.2599530201342273, + 1.2317852348993292, + 1.526168918918919 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 1.7127785234899329, + 1.6751208053691278, + 1.968520270270271 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 149, + 149, + 148 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4652, + "tests": [ + { + "DRAM Power_0": [ + 0.6116533333333332, + 0.573615894039735, + 0.5848066666666664 + ], + "GT Power_0": [ + 0.04449999999999999, + 0.015609271523178807, + 0.01516 + ], + "IA Power_0": [ + 5.4468933333333345, + 3.3224635761589427, + 3.2996466666666673 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.737113333333334, + 3.5630993377483438, + 3.601600000000001 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7109735099337745, + 0.7120533333333328, + 0.7297666666666666 + ], + "GT Power_0": [ + 0.11611920529801331, + 0.11616666666666665, + 0.11606000000000004 + ], + "IA Power_0": [ + 6.595423841059602, + 6.596153333333336, + 6.878926666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.930496688741719, + 6.98579333333333, + 7.400799999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.710793333333333, + 0.712099337748344, + 0.7217399999999997 + ], + "GT Power_0": [ + 0.11489333333333329, + 0.11692052980132452, + 0.12411333333333337 + ], + "IA Power_0": [ + 6.612986666666664, + 6.6375695364238405, + 7.424746666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.975360000000002, + 6.9736887417218565, + 7.686240000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7826666666666668, + 0.7691523178807952, + 0.769786666666667 + ], + "GT Power_0": [ + 0.25428000000000006, + 0.25198675496688755, + 0.25365999999999994 + ], + "IA Power_0": [ + 6.881780000000002, + 6.858662251655629, + 7.213766666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4814066666666665, + 7.402317880794702, + 7.734839999999993 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7160860927152312, + 0.7225364238410588, + 0.7319066666666664 + ], + "GT Power_0": [ + 0.12283443708609278, + 0.12227814569536419, + 0.12388666666666666 + ], + "IA Power_0": [ + 6.68474834437086, + 7.039874172185431, + 6.800666666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.064350993377484, + 7.450125827814573, + 7.358300000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD172-A9", + "number": 4651, + "tests": [ + { + "DRAM Power_0": [ + 0.58192, + 0.5865364238410598, + 0.5745 + ], + "GT Power_0": [ + 0.035479999999999984, + 0.013317880794701987, + 0.013266666666666664 + ], + "IA Power_0": [ + 2.687733333333333, + 2.830543046357617, + 2.5970933333333317 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.063006666666665, + 3.1149139072847665, + 2.8455133333333347 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7280733333333326, + 0.7132799999999994, + 0.7129333333333325 + ], + "GT Power_0": [ + 0.09184666666666669, + 0.09099333333333336, + 0.09031999999999998 + ], + "IA Power_0": [ + 5.039473333333333, + 5.065473333333335, + 4.9967799999999984 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.565580000000001, + 5.413753333333331, + 5.37052 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7185333333333329, + 0.71324, + 0.8692229729729736 + ], + "GT Power_0": [ + 0.09033333333333338, + 0.09020666666666666, + 0.08700000000000004 + ], + "IA Power_0": [ + 5.612486666666664, + 5.051960000000001, + 15.897662162162161 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.970933333333332, + 5.425780000000003, + 16.25095270270271 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 148 + ] + }, + { + "DRAM Power_0": [ + 0.8559266666666667, + 0.7884965986394562, + 0.7748741721854308 + ], + "GT Power_0": [ + 0.2053666666666666, + 0.2053265306122449, + 0.2077814569536422 + ], + "IA Power_0": [ + 10.187793333333333, + 6.011585034013604, + 5.360834437086097 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 10.724286666666675, + 6.4935646258503406, + 5.8659933774834485 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 147, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7334966887417218, + 0.7192185430463568, + 0.7337019867549666 + ], + "GT Power_0": [ + 0.09529139072847684, + 0.09497350993377485, + 0.09684768211920537 + ], + "IA Power_0": [ + 5.515940397350992, + 5.183761589403976, + 5.211072847682119 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.028470198675499, + 5.539225165562915, + 5.674437086092717 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD136-A9", + "number": 4650, + "tests": [ + { + "DRAM Power_0": [ + 0.5837880794701987, + 0.5753377483443711, + 0.5731733333333335 + ], + "GT Power_0": [ + 0.04303973509933773, + 0.014443708609271518, + 0.013486666666666664 + ], + "IA Power_0": [ + 2.811192052980132, + 2.818622516556291, + 2.6987399999999986 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1955099337748347, + 3.0664370860927166, + 2.9521600000000006 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7287019867549668, + 0.7146291390728473, + 0.7157666666666661 + ], + "GT Power_0": [ + 0.08930463576158942, + 0.0917880794701987, + 0.09206666666666671 + ], + "IA Power_0": [ + 5.220483443708611, + 5.232602649006624, + 5.4313400000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.6548476821192075, + 5.55787417218543, + 5.770626666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7128278145695363, + 0.7253443708609267, + 0.7260860927152311 + ], + "GT Power_0": [ + 0.08873509933774835, + 0.09436423841059606, + 0.0910132450331126 + ], + "IA Power_0": [ + 5.25373509933775, + 5.304682119205295, + 5.196847682119209 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.585112582781461, + 5.81132450331126, + 5.603456953642382 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7964666666666665, + 0.7802715231788083, + 0.7781666666666672 + ], + "GT Power_0": [ + 0.21761333333333344, + 0.22058940397350993, + 0.2153533333333334 + ], + "IA Power_0": [ + 5.530079999999999, + 5.447258278145693, + 5.469153333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.066466666666669, + 5.932456953642384, + 5.9506733333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7181133333333327, + 0.7372733333333329, + 0.7247086092715231 + ], + "GT Power_0": [ + 0.09698666666666675, + 0.09356666666666666, + 0.09341059602649011 + ], + "IA Power_0": [ + 5.378506666666668, + 5.673380000000001, + 5.788529801324501 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.685633333333333, + 6.125966666666668, + 6.12590728476821 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD157-A9", + "number": 4649, + "tests": [ + { + "DRAM Power_0": [ + 0.582086666666667, + 0.582271523178808, + 0.5752450331125827 + ], + "GT Power_0": [ + 0.043533333333333306, + 0.01591390728476821, + 0.015172185430463572 + ], + "IA Power_0": [ + 3.1395000000000004, + 3.507231788079469, + 3.2769867549668867 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4626266666666674, + 3.733966887417219, + 3.440761589403974 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.712311258278145, + 0.7116866666666662, + 0.7129799999999993 + ], + "GT Power_0": [ + 0.1186423841059603, + 0.1170466666666667, + 0.11426 + ], + "IA Power_0": [ + 5.910880794701987, + 6.383206666666665, + 5.965866666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.278417218543047, + 6.721433333333334, + 6.357633333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7283708609271518, + 0.7318807947019864, + 0.7133066666666665 + ], + "GT Power_0": [ + 0.11296026490066234, + 0.11381456953642384, + 0.11346666666666666 + ], + "IA Power_0": [ + 6.068165562913906, + 6.3403377483443695, + 6.064893333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.538589403973511, + 6.849668874172182, + 6.4695399999999985 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7862333333333337, + 0.7715562913907289, + 0.7714266666666668 + ], + "GT Power_0": [ + 0.2451666666666668, + 0.24304635761589402, + 0.2376933333333334 + ], + "IA Power_0": [ + 6.266853333333332, + 6.255715231788079, + 6.369766666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.911399999999996, + 6.818410596026491, + 6.864273333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7184105960264897, + 0.7337333333333329, + 0.7356423841059601 + ], + "GT Power_0": [ + 0.12245033112582786, + 0.12196666666666675, + 0.12109933774834437 + ], + "IA Power_0": [ + 6.509649006622521, + 6.215186666666668, + 6.281456953642388 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.860417218543048, + 6.668786666666666, + 6.684331125827816 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4648, + "tests": [ + { + "DRAM Power_0": [ + 0.582213333333333, + 0.5740132450331125, + 0.5882066666666665 + ], + "GT Power_0": [ + 0.03190666666666665, + 0.012582781456953641, + 0.012753333333333335 + ], + "IA Power_0": [ + 2.895573333333333, + 3.04307284768212, + 2.774726666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2079199999999997, + 3.323887417218544, + 3.1288933333333344 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7139266666666662, + 0.7294133333333329, + 0.7300264900662247 + ], + "GT Power_0": [ + 0.08388666666666668, + 0.08543999999999995, + 0.08352317880794705 + ], + "IA Power_0": [ + 5.556599999999998, + 5.9012133333333345, + 5.447291390728478 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.89848, + 6.438106666666667, + 5.920682119205299 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7140264900662247, + 0.7300596026490069, + 0.7261456953642379 + ], + "GT Power_0": [ + 0.08531788079470201, + 0.08300662251655631, + 0.08642384105960266 + ], + "IA Power_0": [ + 5.560986754966885, + 5.609052980132449, + 6.120231788079467 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.910092715231792, + 6.074536423841063, + 6.426682119205296 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7891258278145701, + 0.7719266666666665, + 0.7897086092715236 + ], + "GT Power_0": [ + 0.19639735099337743, + 0.19610666666666668, + 0.19470198675496686 + ], + "IA Power_0": [ + 5.9820463576158955, + 5.745073333333337, + 5.78269536423841 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.630344370860927, + 6.234093333333332, + 6.390225165562916 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7371866666666665, + 0.7194105960264898, + 0.7295099337748341 + ], + "GT Power_0": [ + 0.08640000000000005, + 0.08968211920529809, + 0.09130463576158941 + ], + "IA Power_0": [ + 5.994533333333335, + 5.658569536423841, + 5.725596026490067 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.494859999999999, + 6.00827152317881, + 6.15807284768212 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4647, + "tests": [ + { + "DRAM Power_0": [ + 0.5832684563758386, + 0.5696953642384107, + 0.5751258278145693 + ], + "GT Power_0": [ + 0.03668456375838925, + 0.01624503311258278, + 0.01650331125827814 + ], + "IA Power_0": [ + 3.483899328859062, + 3.203490066225165, + 3.3866556291390726 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8368389261744973, + 3.408112582781457, + 3.6167152317880804 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7165599999999994, + 0.7437483443708605, + 0.7180266666666658 + ], + "GT Power_0": [ + 0.12190666666666665, + 0.12779470198675497, + 0.12118666666666672 + ], + "IA Power_0": [ + 7.508646666666666, + 6.851741721854303, + 6.703480000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.840666666666667, + 7.742304635761589, + 7.1826666666666705 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7131854304635754, + 0.727873333333333, + 0.7161059602649004 + ], + "GT Power_0": [ + 0.11872847682119206, + 0.11538000000000001, + 0.1211854304635762 + ], + "IA Power_0": [ + 7.092741721854305, + 6.875846666666666, + 6.84525165562914 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.451788079470202, + 7.335580000000001, + 7.193490066225162 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7801133333333335, + 0.7802866666666675, + 0.7829266666666671 + ], + "GT Power_0": [ + 0.2773133333333331, + 0.29459333333333326, + 0.28231333333333336 + ], + "IA Power_0": [ + 7.014453333333336, + 6.967419999999999, + 7.328373333333328 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.536300000000002, + 7.502813333333335, + 7.8732933333333355 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7206622516556284, + 0.7192649006622516, + 0.7195496688741716 + ], + "GT Power_0": [ + 0.13050331125827816, + 0.12964238410596024, + 0.12231125827814578 + ], + "IA Power_0": [ + 6.920364238410593, + 6.786384105960263, + 7.192304635761585 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.272682119205298, + 7.211370860927155, + 7.53641059602649 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4646, + "tests": [ + { + "DRAM Power_0": [ + 0.5835099337748343, + 0.5745231788079468, + 0.5737880794701985 + ], + "GT Power_0": [ + 0.03749668874172184, + 0.01680132450331126, + 0.01598013245033113 + ], + "IA Power_0": [ + 3.4161655629139065, + 3.6865827814569503, + 3.2779403973509944 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.803211920529803, + 3.9153112582781486, + 3.5232450331125817 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7146733333333332, + 0.713655629139073, + 0.7322333333333334 + ], + "GT Power_0": [ + 0.12142666666666665, + 0.12301324503311253, + 0.12201333333333333 + ], + "IA Power_0": [ + 6.5088333333333335, + 6.849708609271524, + 8.435340000000004 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8839333333333315, + 7.258503311258276, + 8.776240000000003 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.714350993377483, + 0.7265599999999991, + 0.7145733333333327 + ], + "GT Power_0": [ + 0.12122516556291388, + 0.11972666666666672, + 0.11782 + ], + "IA Power_0": [ + 6.540337748344369, + 6.596473333333333, + 6.751620000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.913384105960268, + 7.014933333333336, + 7.167146666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7786333333333335, + 0.7710066666666672, + 0.771686666666667 + ], + "GT Power_0": [ + 0.2649466666666667, + 0.2655533333333333, + 0.2666933333333333 + ], + "IA Power_0": [ + 7.1772666666666645, + 6.774326666666667, + 7.043320000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.709533333333338, + 7.310100000000002, + 7.525006666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7339999999999997, + 0.729233333333333, + 0.7177947019867545 + ], + "GT Power_0": [ + 0.12709271523178806, + 0.12450666666666668, + 0.12639735099337746 + ], + "IA Power_0": [ + 7.002225165562913, + 6.789740000000003, + 6.666682119205298 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.499834437086091, + 7.188986666666667, + 7.041178807947021 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD172-A9", + "number": 4645, + "tests": [ + { + "DRAM Power_0": [ + 0.5748609271523183, + 0.5747350993377484, + 0.5881333333333332 + ], + "GT Power_0": [ + 0.013496688741721856, + 0.01505960264900662, + 0.012879999999999997 + ], + "IA Power_0": [ + 2.6705960264900663, + 2.89569536423841, + 2.707753333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.927258278145695, + 3.1453178807947033, + 3.0268933333333337 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7124466666666666, + 0.7266622516556287, + 0.7317483443708606 + ], + "GT Power_0": [ + 0.09293999999999994, + 0.09450331125827818, + 0.09431788079470196 + ], + "IA Power_0": [ + 5.014706666666664, + 5.013165562913907, + 5.050317880794704 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.377759999999999, + 5.505933774834438, + 5.517337748344368 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7159799999999997, + 0.7366754966887412, + 0.7153642384105956 + ], + "GT Power_0": [ + 0.09207333333333341, + 0.09013907284768213, + 0.09003973509933783 + ], + "IA Power_0": [ + 5.3742133333333335, + 5.431814569536424, + 5.068754966887417 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.679313333333335, + 5.879629139072851, + 5.416649006622515 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7717799999999999, + 0.7901200000000002, + 0.7713443708609272 + ], + "GT Power_0": [ + 0.2054799999999999, + 0.20657999999999985, + 0.20473509933774825 + ], + "IA Power_0": [ + 5.687253333333334, + 5.279066666666667, + 5.233589403973511 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2319999999999975, + 5.907833333333336, + 5.8413509933774845 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7403708609271518, + 0.7368609271523178, + 0.721198675496688 + ], + "GT Power_0": [ + 0.10258278145695367, + 0.09952980132450337, + 0.10798013245033117 + ], + "IA Power_0": [ + 5.107741721854305, + 5.165403973509933, + 5.387278145695365 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.692225165562913, + 5.63153642384106, + 5.763980132450331 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4644, + "tests": [ + { + "DRAM Power_0": [ + 0.5740738255033553, + 0.5899602649006619, + 0.5730333333333333 + ], + "GT Power_0": [ + 0.03824161073825502, + 0.01365562913907285, + 0.013646666666666668 + ], + "IA Power_0": [ + 3.1344832214765095, + 3.5498741721854294, + 3.11198 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3797248322147637, + 3.949145695364238, + 3.3606266666666667 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7132052980132446, + 0.7476466666666667, + 0.7121409395973148 + ], + "GT Power_0": [ + 0.10288079470198683, + 0.09948666666666664, + 0.0988657718120806 + ], + "IA Power_0": [ + 6.064735099337746, + 7.94848666666667, + 6.103087248322149 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.408317880794702, + 8.301953333333332, + 6.430187919463088 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7128211920529797, + 0.712546666666666, + 0.7342450331125823 + ], + "GT Power_0": [ + 0.09968874172185432, + 0.10311999999999999, + 0.10261589403973512 + ], + "IA Power_0": [ + 6.10751655629139, + 6.102306666666669, + 6.085238410596027 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.495781456953646, + 6.430586666666672, + 6.792675496688742 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7690266666666671, + 0.7706158940397354, + 0.7732666666666668 + ], + "GT Power_0": [ + 0.23375999999999994, + 0.2244701986754966, + 0.2248733333333333 + ], + "IA Power_0": [ + 6.419580000000001, + 6.361874172185429, + 6.337293333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.871886666666669, + 6.832655629139078, + 6.85762 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7353576158940397, + 0.7180066225165564, + 0.7288266666666663 + ], + "GT Power_0": [ + 0.1084503311258278, + 0.10736423841059597, + 0.10689333333333337 + ], + "IA Power_0": [ + 6.610357615894039, + 6.106900662251657, + 6.173866666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.074059602649008, + 6.548165562913905, + 6.60812 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD154-A9", + "number": 4643, + "tests": [ + { + "DRAM Power_0": [ + 0.5810469798657718, + 0.573814569536424, + 0.5729200000000003 + ], + "GT Power_0": [ + 0.0383959731543624, + 0.01806622516556291, + 0.015653333333333335 + ], + "IA Power_0": [ + 3.102744966442952, + 3.0013377483443704, + 3.330506666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.43079865771812, + 3.2383178807947024, + 3.5713533333333345 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.727513333333333, + 0.7140399999999996, + 0.7282119205298003 + ], + "GT Power_0": [ + 0.1310600000000001, + 0.13013999999999998, + 0.12945033112582788 + ], + "IA Power_0": [ + 5.879053333333331, + 5.903739999999999, + 5.93394701986755 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.34216, + 6.343033333333332, + 6.480615894039732 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7281986754966883, + 0.7132582781456949, + 0.7292133333333329 + ], + "GT Power_0": [ + 0.12862251655629134, + 0.1251788079470199, + 0.12554666666666667 + ], + "IA Power_0": [ + 5.9796225165562875, + 6.47399337748344, + 5.993693333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4771721854304625, + 6.835933774834435, + 6.477173333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7677417218543049, + 0.7702133333333337, + 0.7737666666666666 + ], + "GT Power_0": [ + 0.27620529801324506, + 0.2765000000000001, + 0.2804199999999999 + ], + "IA Power_0": [ + 6.149026490066227, + 6.478933333333332, + 6.288013333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.701470198675493, + 7.031326666666666, + 6.871699999999994 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7316399999999996, + 0.7175165562913906, + 0.7467133333333332 + ], + "GT Power_0": [ + 0.13496000000000002, + 0.13065562913907283, + 0.1356666666666667 + ], + "IA Power_0": [ + 6.016553333333333, + 6.367894039735099, + 6.159493333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.540533333333333, + 6.776211920529801, + 6.732926666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD180-A9", + "number": 4642, + "tests": [ + { + "DRAM Power_0": [ + 0.6440536912751678, + 0.6711324503311259, + 0.6345774647887326 + ], + "GT Power_0": [ + 0.031228187919463066, + 0.015417218543046356, + 0.014633802816901407 + ], + "IA Power_0": [ + 10.791731543624161, + 13.87785430463576, + 6.236880281690139 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 11.026087248322144, + 14.366099337748338, + 6.467697183098588 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 142 + ] + }, + { + "DRAM Power_0": [ + 0.7273999999999994, + 0.7099266666666663, + 0.7102399999999999 + ], + "GT Power_0": [ + 0.10792000000000009, + 0.10665333333333336, + 0.10938000000000005 + ], + "IA Power_0": [ + 6.460360000000001, + 6.362419999999996, + 6.718799999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.990093333333332, + 6.734373333333335, + 7.082773333333335 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.711546666666666, + 0.7100666666666661, + 0.7253799999999996 + ], + "GT Power_0": [ + 0.11021333333333332, + 0.11420666666666673, + 0.10994666666666665 + ], + "IA Power_0": [ + 6.364919999999999, + 6.319893333333335, + 6.796473333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.750859999999999, + 6.688, + 7.193380000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.782946666666667, + 0.7684768211920534, + 0.7672800000000001 + ], + "GT Power_0": [ + 0.2500666666666667, + 0.2563311258278146, + 0.24975333333333338 + ], + "IA Power_0": [ + 6.698566666666668, + 6.607125827814568, + 6.597293333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.267793333333335, + 7.124887417218544, + 7.135346666666663 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7159799999999996, + 0.7169333333333332, + 0.7195430463576156 + ], + "GT Power_0": [ + 0.1174533333333333, + 0.11791333333333334, + 0.11933112582781463 + ], + "IA Power_0": [ + 6.5262133333333345, + 6.851339999999999, + 6.543185430463577 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.865506666666665, + 7.194420000000002, + 6.938589403973509 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4641, + "tests": [ + { + "DRAM Power_0": [ + 0.581271523178808, + 0.5738733333333336, + 0.5739266666666665 + ], + "GT Power_0": [ + 0.04371523178807945, + 0.01576666666666666, + 0.015846666666666672 + ], + "IA Power_0": [ + 3.6995629139072848, + 3.278359999999999, + 3.611973333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.991649006622516, + 3.511566666666667, + 3.864860000000001 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7131933333333329, + 0.7127599999999995, + 0.7226799999999995 + ], + "GT Power_0": [ + 0.11798666666666667, + 0.11859999999999997, + 0.13603333333333337 + ], + "IA Power_0": [ + 6.45848, + 6.5089533333333325, + 6.8719600000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.812320000000001, + 6.84126, + 7.375519999999998 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7127814569536419, + 0.7280794701986756, + 0.7129403973509931 + ], + "GT Power_0": [ + 0.1179403973509934, + 0.11660927152317888, + 0.11587417218543053 + ], + "IA Power_0": [ + 6.475649006622516, + 6.522225165562914, + 6.837953642384099 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.824066225165561, + 7.0120662251655625, + 7.20734437086093 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7698800000000008, + 0.7707533333333338, + 0.7698145695364246 + ], + "GT Power_0": [ + 0.2605533333333334, + 0.2584333333333333, + 0.25998013245033114 + ], + "IA Power_0": [ + 6.817373333333335, + 6.7061333333333355, + 6.817807947019871 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.290733333333337, + 7.246266666666667, + 7.341132450331124 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.732173333333333, + 0.7195906040268448, + 0.719079470198675 + ], + "GT Power_0": [ + 0.12423333333333342, + 0.12464429530201342, + 0.12427152317880795 + ], + "IA Power_0": [ + 6.636053333333335, + 7.407268456375839, + 6.620920529801324 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.122866666666669, + 7.804295302013421, + 6.9844701986754965 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 149, + 151 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4640, + "tests": [ + { + "DRAM Power_0": [ + 0.5762466666666666, + 0.5965866666666663, + 0.5745364238410596 + ], + "GT Power_0": [ + 0.03834, + 0.012833333333333332, + 0.01333774834437086 + ], + "IA Power_0": [ + 2.857993333333334, + 2.766573333333332, + 2.7323576158940392 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1233733333333347, + 3.221286666666666, + 3.0177748344370863 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7124199999999997, + 0.7121589403973505, + 0.7138733333333327 + ], + "GT Power_0": [ + 0.09369333333333336, + 0.0954437086092716, + 0.09078 + ], + "IA Power_0": [ + 5.685199999999999, + 5.380152317880794, + 5.396739999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.991326666666665, + 5.780748344370863, + 5.75786 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.713390728476821, + 0.7135799999999997, + 0.7274900662251651 + ], + "GT Power_0": [ + 0.0890198675496689, + 0.09265333333333338, + 0.09052980132450333 + ], + "IA Power_0": [ + 5.680377483443709, + 5.462513333333334, + 5.429324503311261 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.03368874172185, + 5.804773333333334, + 5.895298013245029 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8027284768211923, + 0.7713642384105961, + 0.7860666666666667 + ], + "GT Power_0": [ + 0.20154966887417222, + 0.2039403973509934, + 0.1999666666666667 + ], + "IA Power_0": [ + 5.6464172185430455, + 5.663635761589403, + 5.95502 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.341139072847679, + 6.133132450331127, + 6.52621333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7189599999999999, + 0.7191192052980128, + 0.7388333333333329 + ], + "GT Power_0": [ + 0.09617333333333342, + 0.09904635761589406, + 0.09986000000000002 + ], + "IA Power_0": [ + 5.5240399999999985, + 5.569642384105964, + 5.610653333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.854353333333335, + 5.905205298013245, + 6.284826666666663 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD159-A9", + "number": 4639, + "tests": [ + { + "DRAM Power_0": [ + 0.5815200000000001, + 0.5736953642384104, + 0.5917 + ], + "GT Power_0": [ + 0.04296666666666663, + 0.01577483443708609, + 0.01684 + ], + "IA Power_0": [ + 2.7754933333333347, + 2.7319139072847674, + 2.660346666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1034133333333345, + 2.9788476821192056, + 3.235706666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7360466666666662, + 0.711959999999999, + 0.7128874172185429 + ], + "GT Power_0": [ + 0.12315333333333332, + 0.11802, + 0.11625827814569537 + ], + "IA Power_0": [ + 5.404366666666666, + 5.231853333333333, + 5.204284768211919 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.110926666666666, + 5.585886666666666, + 5.553026490066227 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7119536423841054, + 0.7125533333333333, + 0.7208211920529793 + ], + "GT Power_0": [ + 0.1139470198675497, + 0.12150666666666667, + 0.11362913907284765 + ], + "IA Power_0": [ + 5.453092715231786, + 5.189060000000003, + 5.518205298013247 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.832344370860928, + 5.540526666666665, + 5.9047218543046345 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7715133333333339, + 0.792403973509934, + 0.790403973509934 + ], + "GT Power_0": [ + 0.2759933333333333, + 0.24186092715231783, + 0.24343708609271522 + ], + "IA Power_0": [ + 5.427900000000001, + 5.410152317880797, + 5.654443708609272 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.939426666666663, + 6.248516556291392, + 6.301894039735101 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7182715231788078, + 0.7192384105960261, + 0.736033333333333 + ], + "GT Power_0": [ + 0.12372847682119212, + 0.12142384105960267, + 0.12545999999999993 + ], + "IA Power_0": [ + 5.201576158940399, + 5.248688741721855, + 5.5575866666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.639655629139072, + 5.632337748344373, + 6.059460000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4638, + "tests": [ + { + "DRAM Power_0": [ + 0.5845810810810811, + 0.5741589403973514, + 0.573913333333333 + ], + "GT Power_0": [ + 0.03599999999999997, + 0.016218543046357618, + 0.01644 + ], + "IA Power_0": [ + 4.38799324324324, + 3.6380993377483435, + 3.5820666666666656 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.7142027027027025, + 3.885370860927152, + 3.859899999999999 + ], + "name": "Basic", + "samples": [ + 148, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7134066666666661, + 0.7126423841059599, + 0.7289337748344366 + ], + "GT Power_0": [ + 0.11191333333333338, + 0.11160927152317884, + 0.11064900662251662 + ], + "IA Power_0": [ + 7.435453333333331, + 7.109245033112583, + 7.0230794701986765 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.786540000000003, + 7.437251655629137, + 7.522629139072846 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7118145695364233, + 0.7128999999999993, + 0.7140993377483439 + ], + "GT Power_0": [ + 0.11025165562913909, + 0.10829333333333334, + 0.1092450331125828 + ], + "IA Power_0": [ + 7.515662251655626, + 7.177993333333335, + 7.208509933774831 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.8503178807947025, + 7.541746666666669, + 7.548291390728476 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7717000000000002, + 0.7706423841059606, + 0.7719337748344379 + ], + "GT Power_0": [ + 0.2400666666666667, + 0.24305960264900675, + 0.24251655629139066 + ], + "IA Power_0": [ + 7.473833333333335, + 7.430052980132451, + 7.37523178807947 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.901799999999998, + 7.919271523178808, + 7.903622516556291 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7312781456953636, + 0.7261599999999999, + 0.7204133333333328 + ], + "GT Power_0": [ + 0.11454304635761592, + 0.11746666666666661, + 0.11775333333333327 + ], + "IA Power_0": [ + 7.78772847682119, + 7.382166666666664, + 7.628846666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.122397350993376, + 7.698120000000002, + 7.9910666666666685 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD123-A9", + "number": 4637, + "tests": [ + { + "DRAM Power_0": [ + 0.5817046979865771, + 0.589072847682119, + 0.5738940397350991 + ], + "GT Power_0": [ + 0.027369127516778512, + 0.015225165562913904, + 0.014218543046357612 + ], + "IA Power_0": [ + 3.1877382550335582, + 3.1614039735099353, + 3.1360927152317877 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5508657718120795, + 3.523662251655629, + 3.3565165562913895 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7144133333333325, + 0.7398940397350987, + 0.7271721854304637 + ], + "GT Power_0": [ + 0.10786666666666671, + 0.11251655629139069, + 0.11028476821192054 + ], + "IA Power_0": [ + 6.523673333333329, + 6.274397350993376, + 6.3260794701986764 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.897846666666666, + 7.211258278145696, + 6.748781456953642 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7132384105960262, + 0.7194799999999993, + 0.7240993377483436 + ], + "GT Power_0": [ + 0.10959602649006622, + 0.10754000000000002, + 0.11278807947019877 + ], + "IA Power_0": [ + 6.6530662251655635, + 6.376686666666668, + 6.305721854304634 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.000801324503315, + 6.733266666666666, + 6.806913907284765 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7758999999999999, + 0.7718400000000006, + 0.7897800000000001 + ], + "GT Power_0": [ + 0.23416000000000006, + 0.23601333333333324, + 0.2351 + ], + "IA Power_0": [ + 7.13456, + 6.486773333333332, + 6.834526666666671 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.633380000000001, + 6.989473333333332, + 7.467546666666663 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7376225165562911, + 0.7353377483443702, + 0.7342333333333331 + ], + "GT Power_0": [ + 0.12025165562913917, + 0.11458940397350996, + 0.11350666666666666 + ], + "IA Power_0": [ + 6.41570198675497, + 6.353059602649005, + 6.649120000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.968622516556289, + 6.814887417218543, + 7.185406666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD162-A9", + "number": 4636, + "tests": [ + { + "DRAM Power_0": [ + 0.5756866666666661, + 0.5905000000000001, + 0.574593333333333 + ], + "GT Power_0": [ + 0.030553333333333328, + 0.01572666666666667, + 0.015366666666666667 + ], + "IA Power_0": [ + 2.7553466666666653, + 2.6636399999999982, + 2.911139999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.016826666666666, + 3.0492533333333323, + 3.1821066666666673 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7133178807947014, + 0.7469867549668875, + 0.7394933333333332 + ], + "GT Power_0": [ + 0.11616556291390724, + 0.11482119205298016, + 0.1099066666666667 + ], + "IA Power_0": [ + 5.23912582781457, + 6.701880794701988, + 7.948426666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.620476821192052, + 7.481443708609275, + 8.36577333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7123112582781458, + 0.7182317880794702, + 0.7206953642384099 + ], + "GT Power_0": [ + 0.11333112582781468, + 0.11303311258278151, + 0.11294039735099334 + ], + "IA Power_0": [ + 6.4515960264900665, + 6.0301920529801345, + 5.921225165562914 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.912185430463576, + 6.47777483443709, + 6.3280264900662235 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7788533333333335, + 0.7762251655629142, + 0.7973112582781453 + ], + "GT Power_0": [ + 0.24624, + 0.2487549668874172, + 0.24389403973509935 + ], + "IA Power_0": [ + 5.974153333333328, + 6.511960264900663, + 6.145251655629142 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.574333333333332, + 7.0997880794702, + 6.788423841059603 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7263708609271521, + 0.7306711409395968, + 0.7281655629139072 + ], + "GT Power_0": [ + 0.12264238410596025, + 0.12078523489932888, + 0.12214569536423846 + ], + "IA Power_0": [ + 6.092410596026491, + 6.65148322147651, + 6.0592516556291365 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.552933774834435, + 7.043174496644293, + 6.489966887417216 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 149, + 151 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4635, + "tests": [ + { + "DRAM Power_0": [ + 0.5845933333333331, + 0.5711589403973507, + 0.5757666666666665 + ], + "GT Power_0": [ + 0.04901999999999999, + 0.019026490066225164, + 0.020673333333333332 + ], + "IA Power_0": [ + 2.9526866666666662, + 3.0103907284768217, + 2.8744333333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3568866666666666, + 3.25794701986755, + 3.1204066666666654 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7109072847682112, + 0.7113576158940391, + 0.7280933333333329 + ], + "GT Power_0": [ + 0.1407615894039735, + 0.14109271523178804, + 0.1394733333333333 + ], + "IA Power_0": [ + 5.543602649006623, + 5.539549668874171, + 5.5706133333333385 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9505827814569505, + 5.943390728476822, + 6.089913333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7111390728476821, + 0.7280666666666662, + 0.7214304635761585 + ], + "GT Power_0": [ + 0.14263576158940397, + 0.14146000000000003, + 0.1418741721854305 + ], + "IA Power_0": [ + 5.801543046357619, + 5.5479666666666665, + 5.587357615894038 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.20688079470199, + 6.131819999999997, + 6.111284768211918 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.780193333333334, + 0.7656600000000001, + 0.7744172185430466 + ], + "GT Power_0": [ + 0.324246666666667, + 0.3249133333333334, + 0.3649536423841059 + ], + "IA Power_0": [ + 6.112899999999999, + 5.79847333333333, + 5.779403973509935 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.790159999999999, + 6.4275933333333315, + 6.452735099337749 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7187133333333325, + 0.716801324503311, + 0.7218866666666663 + ], + "GT Power_0": [ + 0.16716666666666663, + 0.15907947019867547, + 0.15319999999999992 + ], + "IA Power_0": [ + 6.166133333333332, + 5.698403973509936, + 5.9030599999999955 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.587233333333333, + 6.108119205298015, + 6.311106666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD131-A9", + "number": 4634, + "tests": [ + { + "DRAM Power_0": [ + 0.585872483221476, + 0.5903933333333332, + 0.5775496688741723 + ], + "GT Power_0": [ + 0.045610738255033534, + 0.014346666666666664, + 0.014887417218543045 + ], + "IA Power_0": [ + 3.677872483221476, + 3.8769266666666664, + 3.5700529801324508 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.897630872483223, + 4.01553333333333, + 3.7332516556291413 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7248874172185427, + 0.7178807947019865, + 0.7185666666666665 + ], + "GT Power_0": [ + 0.120271523178808, + 0.10406622516556292, + 0.10096666666666661 + ], + "IA Power_0": [ + 5.920397350993378, + 5.82443046357616, + 6.122819999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.250980132450331, + 6.1282649006622565, + 6.39098 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7169399999999995, + 0.7171721854304633, + 0.723993333333333 + ], + "GT Power_0": [ + 0.1024666666666667, + 0.101046357615894, + 0.10654000000000002 + ], + "IA Power_0": [ + 5.80384, + 5.784973509933774, + 5.9683399999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.112713333333331, + 6.086701986754968, + 6.239759999999998 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8010728476821197, + 0.7927200000000005, + 0.7908807947019876 + ], + "GT Power_0": [ + 0.22301324503311265, + 0.2694733333333333, + 0.2514437086092716 + ], + "IA Power_0": [ + 6.047960264900661, + 6.341866666666666, + 6.083125827814571 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8332980132450345, + 6.82072, + 6.54319867549669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7393999999999996, + 0.7421854304635761, + 0.7233959731543619 + ], + "GT Power_0": [ + 0.10932000000000003, + 0.10986754966887415, + 0.1131342281879194 + ], + "IA Power_0": [ + 5.863106666666667, + 6.193125827814575, + 5.919080536912753 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.248420000000004, + 6.657311258278146, + 6.2377718120805365 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 149 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4633, + "tests": [ + { + "DRAM Power_0": [ + 0.5800860927152316, + 0.5757218543046353, + 0.5755298013245034 + ], + "GT Power_0": [ + 0.03463576158940395, + 0.016172185430463577, + 0.01611258278145695 + ], + "IA Power_0": [ + 3.9469933774834427, + 3.7677152317880775, + 3.6463046357615894 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.18862251655629, + 3.927801324503312, + 3.8952781456953622 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7303533333333332, + 0.712086666666666, + 0.7215629139072844 + ], + "GT Power_0": [ + 0.10776000000000004, + 0.10590666666666669, + 0.11995364238410593 + ], + "IA Power_0": [ + 7.44892, + 7.031953333333336, + 7.216774834437088 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.964566666666666, + 7.366866666666667, + 7.580033112582782 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7220927152317879, + 0.714847682119205, + 0.7136866666666658 + ], + "GT Power_0": [ + 0.1070794701986755, + 0.10637748344370865, + 0.10809333333333335 + ], + "IA Power_0": [ + 7.712364238410598, + 7.219536423841061, + 7.106533333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.068960264900657, + 7.539476821192054, + 7.49544666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7703973509933781, + 0.7711125827814576, + 0.7717133333333336 + ], + "GT Power_0": [ + 0.2359602649006622, + 0.23807947019867548, + 0.2327333333333334 + ], + "IA Power_0": [ + 7.769788079470196, + 7.423450331125831, + 7.377533333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.26152317880795, + 7.916331125827816, + 7.889186666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7190933333333329, + 0.7207933333333328, + 0.7194370860927148 + ], + "GT Power_0": [ + 0.11102, + 0.11394666666666665, + 0.11582119205298017 + ], + "IA Power_0": [ + 7.330846666666666, + 7.254979999999994, + 7.7534238410596 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.673673333333334, + 7.614179999999999, + 8.044662251655627 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD163-A9", + "number": 4632, + "tests": [ + { + "DRAM Power_0": [ + 0.5867880794701988, + 0.5739266666666666, + 0.5748133333333333 + ], + "GT Power_0": [ + 0.04301986754966886, + 0.013326666666666665, + 0.014026666666666666 + ], + "IA Power_0": [ + 3.5360132450331125, + 2.9610399999999992, + 2.9464666666666677 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.796006622516555, + 3.1909199999999984, + 3.1974333333333336 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7144733333333332, + 0.7129466666666662, + 0.71484 + ], + "GT Power_0": [ + 0.09292666666666671, + 0.0897666666666667, + 0.09612000000000008 + ], + "IA Power_0": [ + 5.835446666666663, + 6.131700000000002, + 5.860040000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.1643599999999985, + 6.45362, + 6.149773333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7136688741721852, + 0.714258278145695, + 0.7134105960264896 + ], + "GT Power_0": [ + 0.0902980132450331, + 0.09470198675496692, + 0.09092052980132455 + ], + "IA Power_0": [ + 5.855754966887417, + 6.069105960264901, + 5.773423841059602 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.186119205298014, + 6.385569536423843, + 6.137860927152318 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7824733333333334, + 0.7703841059602656, + 0.7744238410596032 + ], + "GT Power_0": [ + 0.24847333333333352, + 0.21559602649006626, + 0.21795364238410603 + ], + "IA Power_0": [ + 5.990786666666666, + 5.999788079470198, + 6.04251655629139 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.447086666666662, + 6.5021523178807925, + 6.581973509933775 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7189466666666662, + 0.718649006622516, + 0.7338013245033111 + ], + "GT Power_0": [ + 0.09737333333333337, + 0.09921854304635767, + 0.09533112582781461 + ], + "IA Power_0": [ + 6.200106666666665, + 5.830291390728477, + 5.892635761589404 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.550493333333336, + 6.199165562913907, + 6.375026490066224 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD168-A9", + "number": 4631, + "tests": [ + { + "DRAM Power_0": [ + 0.5756158940397351, + 0.5754039735099333, + 0.5739933333333335 + ], + "GT Power_0": [ + 0.015635761589403968, + 0.016933774834437084, + 0.015746666666666666 + ], + "IA Power_0": [ + 3.115403973509934, + 3.0739205298013252, + 3.068059999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3507549668874184, + 3.334794701986755, + 3.2957733333333334 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145099337748342, + 0.7139466666666662, + 0.7435960264900656 + ], + "GT Power_0": [ + 0.11739735099337763, + 0.11600666666666669, + 0.11634437086092714 + ], + "IA Power_0": [ + 6.027443708609274, + 6.2619066666666665, + 6.066086092715231 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.385874172185429, + 6.625126666666671, + 6.670119205298014 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7144370860927148, + 0.717013333333333, + 0.739506666666666 + ], + "GT Power_0": [ + 0.11752317880794706, + 0.1176133333333333, + 0.12155333333333332 + ], + "IA Power_0": [ + 6.173344370860927, + 6.775073333333333, + 6.090453333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.487867549668871, + 7.170986666666668, + 6.928293333333339 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7980000000000004, + 0.7822133333333341, + 0.7868066666666671 + ], + "GT Power_0": [ + 0.2731258278145696, + 0.2742200000000002, + 0.24672666666666657 + ], + "IA Power_0": [ + 6.326476821192055, + 6.339813333333332, + 6.290806666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.945860927152318, + 6.912660000000001, + 6.930346666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7327599999999995, + 0.7191199999999998, + 0.7454266666666662 + ], + "GT Power_0": [ + 0.14143333333333327, + 0.12366666666666674, + 0.1231266666666667 + ], + "IA Power_0": [ + 6.242313333333334, + 6.116340000000003, + 6.619093333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.700839999999998, + 6.517453333333335, + 7.074013333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD130-A9", + "number": 4630, + "tests": [ + { + "DRAM Power_0": [ + 0.5928800000000005, + 0.574880794701987, + 0.574384105960265 + ], + "GT Power_0": [ + 0.013813333333333337, + 0.015039735099337748, + 0.015357615894039733 + ], + "IA Power_0": [ + 3.522553333333332, + 3.6163311258278164, + 3.2766423841059593 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.875493333333333, + 3.8234370860927163, + 3.508397350993377 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7139602649006619, + 0.713873333333333, + 0.7314172185430458 + ], + "GT Power_0": [ + 0.11076821192052987, + 0.11390666666666666, + 0.11409933774834448 + ], + "IA Power_0": [ + 6.9691788079470225, + 6.635666666666665, + 6.654562913907288 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.282602649006618, + 6.931053333333337, + 7.190450331125824 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7136199999999994, + 0.7305866666666662, + 0.7301523178807944 + ], + "GT Power_0": [ + 0.11419333333333338, + 0.11396666666666663, + 0.11382119205298016 + ], + "IA Power_0": [ + 7.022659999999997, + 6.709200000000001, + 6.682476821192052 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.333386666666666, + 7.244940000000003, + 7.175370860927157 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7838476821192057, + 0.7773046357615895, + 0.7871258278145697 + ], + "GT Power_0": [ + 0.255158940397351, + 0.23927152317880787, + 0.23800662251655652 + ], + "IA Power_0": [ + 7.224596026490066, + 7.20875496688742, + 6.886158940397352 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.826913907284771, + 7.758814569536424, + 7.485397350993374 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7346423841059597, + 0.7179801324503312, + 0.718113333333333 + ], + "GT Power_0": [ + 0.11887417218543044, + 0.11679470198675498, + 0.1365333333333333 + ], + "IA Power_0": [ + 6.792668874172185, + 6.842523178807945, + 7.133706666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.253827814569533, + 7.158814569536424, + 7.455266666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD138-A9", + "number": 4629, + "tests": [ + { + "DRAM Power_0": [ + 0.5817533333333332, + 0.57802, + 0.5853533333333333 + ], + "GT Power_0": [ + 0.03010666666666665, + 0.014706666666666663, + 0.015446666666666668 + ], + "IA Power_0": [ + 2.575033333333334, + 2.7785599999999993, + 3.2526399999999986 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.9099066666666666, + 3.062213333333334, + 3.5345466666666643 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7150399999999997, + 0.7428133333333325, + 0.7381466666666666 + ], + "GT Power_0": [ + 0.10160666666666666, + 0.10160666666666672, + 0.1013533333333334 + ], + "IA Power_0": [ + 4.921419999999999, + 4.928526666666667, + 5.030926666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.302553333333332, + 5.7438600000000015, + 5.538833333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7141879194630866, + 0.7458266666666663, + 0.7154333333333329 + ], + "GT Power_0": [ + 0.10654362416107385, + 0.10991333333333336, + 0.09899333333333332 + ], + "IA Power_0": [ + 4.991986577181211, + 4.965120000000002, + 4.949233333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.346489932885905, + 5.660993333333332, + 5.3240933333333365 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7713733333333334, + 0.7867999999999999, + 0.7877800000000005 + ], + "GT Power_0": [ + 0.21883333333333335, + 0.2176933333333334, + 0.21919333333333327 + ], + "IA Power_0": [ + 5.090993333333332, + 5.140066666666665, + 5.158380000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.618846666666666, + 5.6915799999999965, + 5.855133333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7164266666666663, + 0.7192999999999995, + 0.7343377483443706 + ], + "GT Power_0": [ + 0.10705333333333338, + 0.10603333333333337, + 0.10740397350993387 + ], + "IA Power_0": [ + 5.034653333333331, + 5.030913333333331, + 5.025165562913906 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.5181466666666665, + 5.39904, + 5.5266357615894055 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD143-A9", + "number": 4628, + "tests": [ + { + "DRAM Power_0": [ + 0.6169599999999998, + 0.5990529801324508, + 0.62238 + ], + "GT Power_0": [ + 0.03675333333333331, + 0.01452317880794702, + 0.015059999999999999 + ], + "IA Power_0": [ + 4.51422, + 11.458887417218541, + 4.205733333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.878919999999997, + 11.67819205298013, + 4.437466666666664 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7795333333333329, + 0.7378543046357612, + 0.7121533333333329 + ], + "GT Power_0": [ + 0.11036666666666667, + 0.10952317880794707, + 0.10988666666666662 + ], + "IA Power_0": [ + 6.974860000000003, + 9.717331125827815, + 5.407680000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.408853333333335, + 10.074728476821194, + 5.810493333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7311390728476818, + 0.7151523178807939, + 0.7143642384105958 + ], + "GT Power_0": [ + 0.11360927152317876, + 0.11159602649006627, + 0.11347019867549676 + ], + "IA Power_0": [ + 5.400880794701983, + 5.503033112582781, + 5.4319735099337745 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9249205298013194, + 5.878741721854302, + 5.836980132450331 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7723333333333338, + 0.7728666666666671, + 0.7709800000000002 + ], + "GT Power_0": [ + 0.23844666666666678, + 0.23813333333333342, + 0.2374533333333334 + ], + "IA Power_0": [ + 5.827566666666663, + 5.519339999999999, + 5.579839999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.361339999999997, + 6.080893333333331, + 6.099566666666664 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7204701986754963, + 0.7203443708609271, + 0.7183066666666665 + ], + "GT Power_0": [ + 0.12097350993377488, + 0.12248344370860931, + 0.11814000000000002 + ], + "IA Power_0": [ + 5.705721854304636, + 5.505993377483444, + 5.444113333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.085602649006622, + 5.925609271523181, + 5.8365666666666645 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD179-A9", + "number": 4627, + "tests": [ + { + "DRAM Power_0": [ + 0.5822800000000001, + 0.5879867549668875, + 0.5741324503311256 + ], + "GT Power_0": [ + 0.04758666666666665, + 0.0177682119205298, + 0.01663576158940397 + ], + "IA Power_0": [ + 3.474546666666665, + 3.0880794701986742, + 3.137781456953642 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.760266666666665, + 3.4495827814569533, + 3.4011192052980146 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7126066666666664, + 0.7312582781456947, + 0.7119533333333328 + ], + "GT Power_0": [ + 0.12571999999999994, + 0.12586754966887423, + 0.1262933333333333 + ], + "IA Power_0": [ + 6.402513333333337, + 6.129536423841061, + 6.166953333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.789993333333333, + 6.622350993377489, + 6.529733333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7136733333333327, + 0.713, + 0.7129999999999995 + ], + "GT Power_0": [ + 0.1278133333333333, + 0.12785999999999997, + 0.12907947019867544 + ], + "IA Power_0": [ + 6.109233333333336, + 6.223653333333335, + 6.441536423841063 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.505113333333334, + 6.599073333333335, + 6.853112582781455 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7704466666666671, + 0.7712133333333333, + 0.7706026490066228 + ], + "GT Power_0": [ + 0.27384, + 0.2748000000000001, + 0.271887417218543 + ], + "IA Power_0": [ + 6.2989799999999985, + 6.349426666666667, + 6.705397350993377 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.872406666666664, + 6.89328, + 7.237086092715232 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7186733333333327, + 0.7183907284768212, + 0.7201666666666662 + ], + "GT Power_0": [ + 0.13360666666666662, + 0.1296291390728477, + 0.13649333333333336 + ], + "IA Power_0": [ + 6.205880000000001, + 6.2778940397351, + 6.556480000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.611593333333332, + 6.698894039735098, + 6.947699999999998 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD161-A9", + "number": 4626, + "tests": [ + { + "DRAM Power_0": [ + 0.5721599999999998, + 0.5867200000000001, + 0.573569536423841 + ], + "GT Power_0": [ + 0.043506666666666645, + 0.01367333333333333, + 0.013655629139072846 + ], + "IA Power_0": [ + 2.522146666666666, + 2.4501999999999993, + 2.7802185430463577 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.797366666666668, + 2.8094666666666654, + 3.0550927152317895 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7132133333333327, + 0.7126466666666663, + 0.7119999999999997 + ], + "GT Power_0": [ + 0.10952666666666667, + 0.1109533333333334, + 0.11131333333333342 + ], + "IA Power_0": [ + 4.957006666666668, + 4.961760000000002, + 4.95022666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.330826666666668, + 5.321446666666666, + 5.440093333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7141192052980133, + 0.7252933333333329, + 0.7147814569536421 + ], + "GT Power_0": [ + 0.10956291390728481, + 0.11103333333333334, + 0.11276821192052984 + ], + "IA Power_0": [ + 5.046576158940399, + 5.182233333333335, + 5.0307417218543025 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.385562913907283, + 5.633213333333331, + 5.41160927152318 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8140800000000006, + 0.7817333333333338, + 0.7937600000000001 + ], + "GT Power_0": [ + 0.25568, + 0.2604200000000001, + 0.26848666666666665 + ], + "IA Power_0": [ + 5.241726666666668, + 5.373546666666665, + 5.259026666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.272866666666667, + 5.920946666666666, + 5.978620000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7382466666666664, + 0.7353866666666665, + 0.7215599999999995 + ], + "GT Power_0": [ + 0.11782, + 0.11858666666666672, + 0.12293999999999995 + ], + "IA Power_0": [ + 5.045019999999998, + 5.023639999999998, + 5.079513333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.535519999999999, + 5.540726666666664, + 5.487053333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD124-A9", + "number": 4625, + "tests": [ + { + "DRAM Power_0": [ + 0.5899403973509932, + 0.5879470198675498, + 0.5744701986754964 + ], + "GT Power_0": [ + 0.01736423841059602, + 0.017125827814569526, + 0.017238410596026484 + ], + "IA Power_0": [ + 3.1020860927152305, + 3.0421920529801327, + 3.092847682119204 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.471463576158939, + 3.4328410596026484, + 3.3245231788079472 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7363199999999994, + 0.7119205298013238, + 0.7216933333333327 + ], + "GT Power_0": [ + 0.11828666666666668, + 0.12093377483443715, + 0.12984666666666664 + ], + "IA Power_0": [ + 7.04129333333333, + 5.951298013245035, + 6.060653333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.410160000000004, + 6.3245629139072825, + 6.5694733333333355 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7124900662251654, + 0.7109133333333326, + 0.7124105960264894 + ], + "GT Power_0": [ + 0.11953642384105956, + 0.11954000000000005, + 0.119748344370861 + ], + "IA Power_0": [ + 6.246311258278146, + 5.97305333333333, + 6.009013245033111 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.605675496688741, + 6.341053333333334, + 6.362026490066226 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.77004, + 0.7687814569536428, + 0.773741721854305 + ], + "GT Power_0": [ + 0.27314666666666665, + 0.2737019867549669, + 0.2791788079470199 + ], + "IA Power_0": [ + 6.177193333333334, + 6.186039735099336, + 6.563814569536423 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.75915333333333, + 6.749284768211922, + 7.076238410596027 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7327199999999991, + 0.7507399999999997, + 0.7367466666666665 + ], + "GT Power_0": [ + 0.12557333333333334, + 0.14600666666666673, + 0.1359866666666667 + ], + "IA Power_0": [ + 6.122920000000002, + 6.138740000000003, + 6.780413333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.642333333333333, + 6.7611799999999995, + 7.356700000000004 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4624, + "tests": [ + { + "DRAM Power_0": [ + 0.5774733333333331, + 0.5740933333333332, + 0.5743112582781457 + ], + "GT Power_0": [ + 0.04298, + 0.012839999999999997, + 0.012960264900662247 + ], + "IA Power_0": [ + 2.9387600000000003, + 2.7830533333333345, + 2.7770198675496682 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1973133333333337, + 3.026646666666666, + 3.0588278145695362 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7535399999999995, + 0.713291390728476, + 0.7281866666666662 + ], + "GT Power_0": [ + 0.08208666666666666, + 0.08064238410596028, + 0.07795333333333336 + ], + "IA Power_0": [ + 5.642453333333331, + 5.8049337748344385, + 5.560493333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.575006666666666, + 6.19498013245033, + 5.933566666666664 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.736735099337748, + 0.7174866666666664, + 0.7250733333333327 + ], + "GT Power_0": [ + 0.08130463576158942, + 0.08170666666666665, + 0.08126000000000004 + ], + "IA Power_0": [ + 5.575172185430466, + 6.170060000000001, + 5.772293333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.230523178807949, + 6.524799999999997, + 6.099606666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7901125827814571, + 0.7714304635761593, + 0.7711466666666674 + ], + "GT Power_0": [ + 0.19466225165562906, + 0.1921456953642384, + 0.19263333333333338 + ], + "IA Power_0": [ + 6.3678410596026485, + 5.8222450331125835, + 5.807793333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.835841059602649, + 6.28164238410596, + 6.2409333333333326 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7184437086092716, + 0.7190463576158932, + 0.7192980132450327 + ], + "GT Power_0": [ + 0.08752980132450326, + 0.08696688741721857, + 0.08530463576158942 + ], + "IA Power_0": [ + 5.909986754966887, + 5.596715231788077, + 5.694450331125824 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.299622516556297, + 5.975205298013246, + 6.028463576158943 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD135-A9", + "number": 4623, + "tests": [ + { + "DRAM Power_0": [ + 0.5760599999999998, + 0.5738133333333327, + 0.5902847682119203 + ], + "GT Power_0": [ + 0.04825999999999998, + 0.019033333333333336, + 0.019953642384105966 + ], + "IA Power_0": [ + 3.6749933333333344, + 3.561093333333334, + 3.9617947019867548 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9203533333333347, + 3.794993333333334, + 4.335794701986754 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.710920529801324, + 0.7123533333333331, + 0.7285165562913908 + ], + "GT Power_0": [ + 0.13894701986754965, + 0.14622666666666667, + 0.14663576158940392 + ], + "IA Power_0": [ + 7.132066225165564, + 7.171066666666667, + 7.168390728476821 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.49551655629139, + 7.574339999999996, + 7.696662251655629 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7112317880794696, + 0.7252266666666657, + 0.7104900662251651 + ], + "GT Power_0": [ + 0.14101986754966875, + 0.14185333333333333, + 0.14094039735099334 + ], + "IA Power_0": [ + 7.169582781456958, + 7.560173333333334, + 7.136629139072849 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5554701986755, + 7.990293333333333, + 7.532701986754964 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7695496688741723, + 0.7776778523489933, + 0.7843112582781461 + ], + "GT Power_0": [ + 0.32429139072847685, + 0.33408724832214753, + 0.318317880794702 + ], + "IA Power_0": [ + 7.413880794701992, + 8.45901342281879, + 7.427794701986752 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.991423841059599, + 9.035026845637585, + 8.200284768211917 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 149, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7158476821192045, + 0.717735099337748, + 0.7160728476821187 + ], + "GT Power_0": [ + 0.15333774834437083, + 0.1522980132450332, + 0.15122516556291393 + ], + "IA Power_0": [ + 7.278569536423837, + 7.259629139072844, + 7.292874172185433 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.6729205298013285, + 7.629668874172183, + 7.685039735099343 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD131-A9", + "number": 4622, + "tests": [ + { + "DRAM Power_0": [ + 0.5842933333333331, + 0.5897814569536423, + 0.5785866666666664 + ], + "GT Power_0": [ + 0.03252666666666665, + 0.01597350993377484, + 0.015553333333333334 + ], + "IA Power_0": [ + 3.4182599999999996, + 3.390794701986754, + 3.365240000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6950399999999997, + 3.603039735099336, + 3.571366666666666 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7181192052980129, + 0.7168079470198675, + 0.7330198675496683 + ], + "GT Power_0": [ + 0.10821854304635764, + 0.11066225165562919, + 0.1130728476821192 + ], + "IA Power_0": [ + 5.831721854304637, + 6.147741721854306, + 5.813847682119205 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.152390728476818, + 6.422523178807947, + 6.255993377483441 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7181523178807943, + 0.7356092715231781, + 0.719152317880794 + ], + "GT Power_0": [ + 0.11020529801324509, + 0.1067748344370861, + 0.1063576158940398 + ], + "IA Power_0": [ + 5.807900662251652, + 6.076099337748345, + 5.825788079470198 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.125006622516557, + 6.583218543046357, + 6.162735099337748 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7934569536423843, + 0.7812333333333338, + 0.7812450331125834 + ], + "GT Power_0": [ + 0.2605430463576159, + 0.22995333333333348, + 0.23436423841059595 + ], + "IA Power_0": [ + 6.096456953642385, + 6.054553333333334, + 6.035642384105959 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.593966887417221, + 6.546119999999999, + 6.516423841059602 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7330533333333331, + 0.72351655629139, + 0.7349599999999997 + ], + "GT Power_0": [ + 0.11612000000000001, + 0.11519867549668882, + 0.11442666666666663 + ], + "IA Power_0": [ + 6.555146666666667, + 5.952841059602648, + 5.972173333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.857366666666667, + 6.26007284768212, + 6.434946666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD175-A9", + "number": 4621, + "tests": [ + { + "DRAM Power_0": [ + 0.5879466666666665, + 0.5916158940397347, + 0.6027019867549663 + ], + "GT Power_0": [ + 0.035513333333333306, + 0.01458940397350993, + 0.014258278145695368 + ], + "IA Power_0": [ + 4.735846666666666, + 4.089456953642381, + 4.263920529801323 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.052273333333333, + 4.420218543046359, + 4.726695364238409 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7154533333333327, + 0.7192649006622516, + 0.7191125827814564 + ], + "GT Power_0": [ + 0.10378000000000005, + 0.10460927152317884, + 0.10445695364238407 + ], + "IA Power_0": [ + 7.0994466666666645, + 6.80874834437086, + 7.262331125827814 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.530966666666666, + 7.2541059602649, + 7.663033112582781 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7314503311258275, + 0.7176778523489931, + 0.7197417218543041 + ], + "GT Power_0": [ + 0.09872847682119205, + 0.10036241610738254, + 0.1007814569536424 + ], + "IA Power_0": [ + 7.064754966887416, + 6.751275167785234, + 7.144602649006624 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.614271523178807, + 7.175234899328858, + 7.540516556291394 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 149, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7764066666666668, + 0.7903774834437093, + 0.7790066666666665 + ], + "GT Power_0": [ + 0.2337666666666666, + 0.23213907284768207, + 0.23220000000000005 + ], + "IA Power_0": [ + 7.048613333333336, + 7.592867549668877, + 8.293193333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.6177333333333355, + 8.394377483443705, + 8.894173333333331 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7380866666666664, + 0.7243311258278141, + 0.7251125827814565 + ], + "GT Power_0": [ + 0.10692, + 0.10734437086092717, + 0.1086158940397351 + ], + "IA Power_0": [ + 7.137746666666671, + 7.000582781456953, + 7.350549668874174 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.820806666666666, + 7.420271523178811, + 7.71837086092715 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD157-A9", + "number": 4620, + "tests": [ + { + "DRAM Power_0": [ + 0.5769333333333335, + 0.5747284768211918, + 0.5882266666666669 + ], + "GT Power_0": [ + 0.028259999999999983, + 0.015635761589403975, + 0.01558666666666667 + ], + "IA Power_0": [ + 3.0030533333333342, + 3.3850794701986757, + 3.153413333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3405466666666666, + 3.6270397350993364, + 3.4146600000000014 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7312715231788071, + 0.7140599999999999, + 0.7310266666666665 + ], + "GT Power_0": [ + 0.11131788079470195, + 0.1130466666666667, + 0.11250666666666666 + ], + "IA Power_0": [ + 6.080635761589403, + 6.165506666666669, + 6.129253333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.580039735099341, + 6.543586666666668, + 6.596973333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7309735099337744, + 0.731493333333333, + 0.7153642384105954 + ], + "GT Power_0": [ + 0.1128543046357616, + 0.11224000000000006, + 0.11140397350993379 + ], + "IA Power_0": [ + 6.259894039735101, + 6.168379999999999, + 6.202953642384106 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7594039735099365, + 6.573740000000002, + 6.572403973509937 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7718410596026493, + 0.7846291390728481, + 0.7868874172185433 + ], + "GT Power_0": [ + 0.24059602649006617, + 0.24202649006622506, + 0.24216556291390728 + ], + "IA Power_0": [ + 6.638172185430461, + 6.40892715231788, + 6.44056953642384 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.156298013245034, + 6.985788079470198, + 7.046562913907285 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.717894039735099, + 0.7343841059602646, + 0.7237350993377482 + ], + "GT Power_0": [ + 0.1155827814569537, + 0.11495364238410596, + 0.11594039735099339 + ], + "IA Power_0": [ + 6.528728476821193, + 6.210741721854301, + 6.369715231788076 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.922735099337745, + 6.703589403973512, + 6.77070198675497 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD166-A9", + "number": 4619, + "tests": [ + { + "DRAM Power_0": [ + 0.5804066666666666, + 0.5863733333333333, + 0.5748066666666668 + ], + "GT Power_0": [ + 0.035879999999999974, + 0.016726666666666667, + 0.017066666666666667 + ], + "IA Power_0": [ + 2.9725999999999986, + 2.934640000000001, + 3.2258866666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.25252, + 3.2509066666666673, + 3.472086666666665 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7287417218543037, + 0.7294466666666661, + 0.731099337748344 + ], + "GT Power_0": [ + 0.12173509933774838, + 0.12047999999999998, + 0.12120529801324498 + ], + "IA Power_0": [ + 5.752178807947019, + 5.746119999999998, + 5.760132450331126 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.13151655629139, + 6.275300000000005, + 6.501635761589403 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7126866666666661, + 0.7137086092715229, + 0.7148145695364236 + ], + "GT Power_0": [ + 0.11761999999999997, + 0.12142384105960263, + 0.12823841059602645 + ], + "IA Power_0": [ + 5.7432466666666695, + 6.116052980132449, + 5.830615894039732 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.137079999999998, + 6.512721854304637, + 6.157887417218541 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7714199999999997, + 0.8004133333333336, + 0.7912052980132456 + ], + "GT Power_0": [ + 0.26351333333333327, + 0.27687333333333336, + 0.26141059602648997 + ], + "IA Power_0": [ + 6.004473333333335, + 6.708153333333331, + 5.982278145695365 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.550393333333331, + 7.453673333333336, + 6.9443774834437075 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7195761589403967, + 0.7184238410596023, + 0.7180133333333331 + ], + "GT Power_0": [ + 0.12580794701986753, + 0.12374172185430472, + 0.12410666666666668 + ], + "IA Power_0": [ + 5.840509933774835, + 5.830390728476821, + 5.850859999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.249741721854305, + 6.252264900662254, + 6.2513733333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD153-A9", + "number": 4618, + "tests": [ + { + "DRAM Power_0": [ + 0.5857533333333332, + 0.5921466666666663, + 0.5922450331125828 + ], + "GT Power_0": [ + 0.04031333333333331, + 0.012826666666666662, + 0.01290728476821192 + ], + "IA Power_0": [ + 2.984366666666665, + 2.730419999999999, + 3.1151854304635753 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3669400000000005, + 3.0950400000000005, + 3.4855430463576154 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.714735099337748, + 0.7328866666666661, + 0.7133666666666664 + ], + "GT Power_0": [ + 0.08591390728476826, + 0.0900733333333334, + 0.09285333333333332 + ], + "IA Power_0": [ + 5.227920529801324, + 5.302899999999999, + 5.2553866666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.5889536423841095, + 5.745686666666668, + 5.576973333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.713146666666666, + 0.725693333333333, + 0.7147199999999994 + ], + "GT Power_0": [ + 0.08474666666666669, + 0.09001999999999999, + 0.08756666666666665 + ], + "IA Power_0": [ + 5.231273333333333, + 5.827266666666668, + 5.286173333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.592339999999999, + 6.152380000000002, + 5.606826666666664 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7829200000000001, + 0.783886666666667, + 0.7818066666666671 + ], + "GT Power_0": [ + 0.21042000000000002, + 0.2106466666666667, + 0.2113600000000002 + ], + "IA Power_0": [ + 5.437766666666666, + 5.743620000000002, + 5.411020000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.956266666666664, + 6.261706666666667, + 5.941693333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7182119205298011, + 0.7203576158940393, + 0.7215100671140933 + ], + "GT Power_0": [ + 0.0909933774834437, + 0.0924172185430464, + 0.09533557046979863 + ], + "IA Power_0": [ + 5.315774834437087, + 5.292841059602647, + 5.301295302013423 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.671913907284768, + 5.656463576158942, + 5.663731543624163 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 149 + ] + } + ] + }, + { + "bot": "BUILD149-A9", + "number": 4617, + "tests": [ + { + "DRAM Power_0": [ + 0.573513333333333, + 0.5754900662251656, + 0.5838400000000001 + ], + "GT Power_0": [ + 0.03827333333333331, + 0.016642384105960265, + 0.01548666666666667 + ], + "IA Power_0": [ + 3.7108599999999994, + 3.343006622516557, + 3.3760466666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9316666666666653, + 3.5885894039735127, + 3.62548 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7217284768211917, + 0.7104266666666665, + 0.7118278145695358 + ], + "GT Power_0": [ + 0.1252913907284769, + 0.11299333333333332, + 0.11505298013245034 + ], + "IA Power_0": [ + 6.863741721854302, + 6.627000000000002, + 7.133847682119207 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.233907284768216, + 6.986419999999998, + 7.480781456953642 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7126999999999998, + 0.7380466666666664, + 0.7291999999999992 + ], + "GT Power_0": [ + 0.11242666666666667, + 0.11300000000000002, + 0.10962000000000004 + ], + "IA Power_0": [ + 6.657720000000001, + 6.882226666666667, + 7.097073333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.059846666666666, + 7.616373333333335, + 7.524966666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7679200000000002, + 0.7872000000000002, + 0.7682933333333342 + ], + "GT Power_0": [ + 0.2706, + 0.2633666666666668, + 0.2636999999999999 + ], + "IA Power_0": [ + 7.049733333333332, + 6.99304, + 7.038540000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.499739999999998, + 7.656219999999996, + 7.559826666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7176556291390719, + 0.7325266666666662, + 0.7170999999999997 + ], + "GT Power_0": [ + 0.11676158940397349, + 0.11596666666666662, + 0.11606000000000001 + ], + "IA Power_0": [ + 6.824026490066226, + 7.176299999999997, + 6.820159999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.200834437086091, + 7.718166666666666, + 7.172679999999996 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD179-A9", + "number": 4616, + "tests": [ + { + "DRAM Power_0": [ + 0.5776000000000003, + 0.5904000000000004, + 0.569933774834437 + ], + "GT Power_0": [ + 0.03979333333333331, + 0.01594, + 0.016231788079470198 + ], + "IA Power_0": [ + 3.169000000000001, + 3.125126666666667, + 3.052026490066225 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.450113333333336, + 3.5077399999999996, + 3.251456953642385 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7275866666666664, + 0.711735099337748, + 0.7287199999999996 + ], + "GT Power_0": [ + 0.12773333333333337, + 0.1299337748344371, + 0.1305933333333334 + ], + "IA Power_0": [ + 6.278599999999998, + 6.312602649006623, + 6.307153333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.722279999999998, + 6.691649006622514, + 6.7857933333333325 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.728393333333333, + 0.7312450331125825, + 0.7126666666666659 + ], + "GT Power_0": [ + 0.13055333333333335, + 0.12754304635761585, + 0.1310466666666667 + ], + "IA Power_0": [ + 6.380240000000001, + 6.6578940397350985, + 6.311440000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.884473333333331, + 7.19262251655629, + 6.6899133333333305 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.785806666666667, + 0.7896754966887415, + 0.7699000000000004 + ], + "GT Power_0": [ + 0.27231333333333335, + 0.27616556291390737, + 0.2785133333333332 + ], + "IA Power_0": [ + 6.4788799999999975, + 6.61526490066225, + 6.577993333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.14782, + 7.551523178807948, + 7.1217133333333384 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7163199999999996, + 0.7179337748344368, + 0.7181523178807947 + ], + "GT Power_0": [ + 0.13823333333333332, + 0.13825165562913905, + 0.13930463576158947 + ], + "IA Power_0": [ + 6.425386666666666, + 6.410125827814568, + 6.45629801324503 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.803873333333336, + 6.831761589403974, + 6.79317880794702 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4615, + "tests": [ + { + "DRAM Power_0": [ + 0.5756866666666667, + 0.5736799999999997, + 0.5762119205298017 + ], + "GT Power_0": [ + 0.034079999999999985, + 0.013619999999999998, + 0.014205298013245033 + ], + "IA Power_0": [ + 3.300786666666668, + 3.5084866666666668, + 3.2854039735099336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.540006666666665, + 3.7278400000000005, + 3.522582781456953 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7507350993377477, + 0.7144238410596024, + 0.7141589403973506 + ], + "GT Power_0": [ + 0.10219205298013248, + 0.10018543046357617, + 0.10213907284768213 + ], + "IA Power_0": [ + 7.160112582781461, + 6.733894039735097, + 6.373662251655633 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.683596026490069, + 7.057417218543047, + 6.718715231788082 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7317682119205291, + 0.7164999999999994, + 0.7129999999999994 + ], + "GT Power_0": [ + 0.1001390728476822, + 0.10013333333333338, + 0.09785333333333343 + ], + "IA Power_0": [ + 6.516357615894038, + 6.410746666666668, + 6.31466 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.951735099337745, + 6.738973333333331, + 6.72249333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7872119205298017, + 0.7774768211920532, + 0.7911721854304637 + ], + "GT Power_0": [ + 0.22731125827814572, + 0.22614569536423829, + 0.22808609271523186 + ], + "IA Power_0": [ + 6.6926490066225135, + 6.693258278145695, + 6.564231788079469 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.338125827814572, + 7.197039735099342, + 7.198013245033112 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7196357615894037, + 0.7190933333333328, + 0.7384172185430459 + ], + "GT Power_0": [ + 0.10584768211920532, + 0.10606666666666663, + 0.10550993377483446 + ], + "IA Power_0": [ + 6.886827814569536, + 6.432179999999997, + 6.456635761589403 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.2369668874172195, + 6.809406666666665, + 7.089350993377483 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD154-A9", + "number": 4614, + "tests": [ + { + "DRAM Power_0": [ + 0.5810201342281873, + 0.5863443708609273, + 0.5848476821192052 + ], + "GT Power_0": [ + 0.03238255033557046, + 0.017562913907284768, + 0.017145695364238406 + ], + "IA Power_0": [ + 3.0595302013422803, + 3.3147086092715248, + 3.6809867549668893 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4065906040268445, + 3.670258278145696, + 3.906543046357617 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7122450331125824, + 0.7123999999999996, + 0.711013245033112 + ], + "GT Power_0": [ + 0.12891390728476831, + 0.13301333333333334, + 0.13337748344370864 + ], + "IA Power_0": [ + 5.946880794701985, + 6.328546666666664, + 6.008582781456957 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.333483443708607, + 6.711899999999999, + 6.31746357615894 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7268533333333329, + 0.7120132450331125, + 0.7324635761589396 + ], + "GT Power_0": [ + 0.12792666666666677, + 0.12701986754966882, + 0.12594039735099338 + ], + "IA Power_0": [ + 5.936613333333333, + 6.051874172185429, + 5.960708609271521 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3984466666666675, + 6.442854304635763, + 6.491807947019867 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7813666666666671, + 0.7765333333333342, + 0.7686400000000002 + ], + "GT Power_0": [ + 0.2707799999999999, + 0.28052666666666665, + 0.2723200000000003 + ], + "IA Power_0": [ + 6.21366, + 6.475340000000002, + 6.2447066666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.890126666666668, + 7.121773333333335, + 6.806706666666666 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7174569536423842, + 0.7174768211920528, + 0.7323112582781457 + ], + "GT Power_0": [ + 0.1324172185430463, + 0.13291390728476826, + 0.13633774834437085 + ], + "IA Power_0": [ + 6.33330463576159, + 6.192609271523178, + 6.116046357615894 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.738668874172185, + 6.599973509933776, + 6.645953642384107 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4613, + "tests": [ + { + "DRAM Power_0": [ + 0.5824199999999998, + 0.5736266666666664, + 0.575158940397351 + ], + "GT Power_0": [ + 0.049013333333333325, + 0.01592666666666667, + 0.015999999999999997 + ], + "IA Power_0": [ + 3.5593199999999987, + 3.5126666666666644, + 3.9875629139072846 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.846506666666666, + 3.736593333333333, + 4.186337748344371 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7223311258278137, + 0.7130866666666662, + 0.7123466666666661 + ], + "GT Power_0": [ + 0.11075496688741718, + 0.11552000000000003, + 0.11155999999999999 + ], + "IA Power_0": [ + 6.922529801324501, + 6.90591333333333, + 6.929613333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.315172185430462, + 7.185393333333335, + 7.247660000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7144370860927148, + 0.7123666666666661, + 0.7228543046357612 + ], + "GT Power_0": [ + 0.11084768211920534, + 0.10756000000000004, + 0.10558940397350998 + ], + "IA Power_0": [ + 6.9244370860927145, + 7.08382666666666, + 7.4146622516556295 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.266947019867549, + 7.400426666666665, + 7.785324503311254 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7707748344370868, + 0.772166666666667, + 0.7712649006622521 + ], + "GT Power_0": [ + 0.24227152317880798, + 0.24343333333333328, + 0.24341059602649004 + ], + "IA Power_0": [ + 7.274152317880797, + 7.687520000000001, + 7.253278145695362 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.777860927152313, + 8.178146666666665, + 7.745039735099336 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7320132450331122, + 0.7319799999999993, + 0.7175430463576155 + ], + "GT Power_0": [ + 0.11637748344370871, + 0.11273333333333334, + 0.11506622516556293 + ], + "IA Power_0": [ + 7.023324503311259, + 7.426166666666668, + 7.1526026490066235 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.529569536423845, + 7.794213333333329, + 7.454006622516557 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD146-A9", + "number": 4612, + "tests": [ + { + "DRAM Power_0": [ + 0.5820933333333332, + 0.5738266666666668, + 0.5740331125827813 + ], + "GT Power_0": [ + 0.03599333333333331, + 0.014013333333333333, + 0.014761589403973511 + ], + "IA Power_0": [ + 2.977866666666669, + 2.8211199999999996, + 2.8689536423841075 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2929866666666667, + 3.0978666666666665, + 3.1140794701986745 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7132066666666665, + 0.7146999999999994, + 0.7274133333333329 + ], + "GT Power_0": [ + 0.12458666666666667, + 0.12159333333333341, + 0.12062666666666667 + ], + "IA Power_0": [ + 5.670133333333332, + 5.823913333333335, + 5.640633333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.0443333333333324, + 6.1942200000000005, + 6.082906666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7156556291390721, + 0.7136953642384102, + 0.7155099337748339 + ], + "GT Power_0": [ + 0.12161589403973505, + 0.11939735099337748, + 0.12233112582781461 + ], + "IA Power_0": [ + 5.706715231788081, + 5.703688741721853, + 5.684172185430461 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.06771523178808, + 6.061112582781458, + 6.060788079470198 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7706092715231789, + 0.7729403973509937, + 0.794966666666667 + ], + "GT Power_0": [ + 0.24639072847682128, + 0.25267549668874184, + 0.27538666666666656 + ], + "IA Power_0": [ + 6.132152317880795, + 5.847311258278149, + 5.8869133333333306 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.679238410596027, + 6.384814569536426, + 6.536273333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.743193333333333, + 0.7434768211920529, + 0.7329266666666665 + ], + "GT Power_0": [ + 0.14358666666666658, + 0.13073509933774843, + 0.1275466666666667 + ], + "IA Power_0": [ + 6.09352, + 5.777596026490067, + 5.740133333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.705453333333328, + 6.513622516556292, + 6.237353333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4611, + "tests": [ + { + "DRAM Power_0": [ + 0.5680266666666667, + 0.5762980132450333, + 0.5750794701986756 + ], + "GT Power_0": [ + 0.04535333333333333, + 0.013907284768211922, + 0.013927152317880796 + ], + "IA Power_0": [ + 3.326506666666668, + 3.1907086092715247, + 3.1160860927152303 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.530600000000001, + 3.4374768211920537, + 3.3310529801324487 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7343973509933771, + 0.7145894039735096, + 0.7153178807947019 + ], + "GT Power_0": [ + 0.10766887417218543, + 0.11003973509933772, + 0.10442384105960266 + ], + "IA Power_0": [ + 6.086794701986757, + 6.043423841059604, + 6.041019867549664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.590192052980137, + 6.417781456953646, + 6.382364238410593 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7231589403973505, + 0.7248466666666664, + 0.7151059602649006 + ], + "GT Power_0": [ + 0.10727814569536427, + 0.11271333333333336, + 0.10578807947019869 + ], + "IA Power_0": [ + 6.107874172185428, + 6.076806666666667, + 6.360920529801323 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.568655629139073, + 6.543020000000001, + 6.730649006622515 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7741200000000001, + 0.7722781456953642, + 0.7729200000000006 + ], + "GT Power_0": [ + 0.22703333333333334, + 0.22996688741721868, + 0.24613999999999994 + ], + "IA Power_0": [ + 6.554833333333333, + 6.2691059602649, + 6.6745 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0405799999999985, + 6.730688741721856, + 7.174720000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7188410596026488, + 0.7401920529801321, + 0.7186733333333328 + ], + "GT Power_0": [ + 0.10668211920529802, + 0.11023178807947022, + 0.10962000000000004 + ], + "IA Power_0": [ + 6.118125827814571, + 6.199675496688741, + 6.2117666666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.47980132450331, + 6.873576158940398, + 6.5462533333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD149-A9", + "number": 4610, + "tests": [ + { + "DRAM Power_0": [ + 0.5811788079470197, + 0.5873066666666666, + 0.5760662251655622 + ], + "GT Power_0": [ + 0.042364238410596, + 0.016373333333333337, + 0.016596026490066227 + ], + "IA Power_0": [ + 3.268476821192054, + 3.2428800000000018, + 3.3113841059602644 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.555622516556294, + 3.544879999999999, + 3.5415496688741714 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7288145695364235, + 0.7144238410596023, + 0.7275165562913903 + ], + "GT Power_0": [ + 0.11535761589403978, + 0.11581456953642384, + 0.11731788079470196 + ], + "IA Power_0": [ + 6.445701986754968, + 6.830324503311255, + 6.507708609271527 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.007496688741724, + 7.183264900662256, + 7.042079470198676 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7407814569536421, + 0.7275399999999994, + 0.7117748344370857 + ], + "GT Power_0": [ + 0.1118609271523179, + 0.11150666666666662, + 0.11208609271523177 + ], + "IA Power_0": [ + 6.9112781456953645, + 7.017380000000001, + 6.553006622516559 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4122185430463565, + 7.5058799999999986, + 6.935218543046356 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7690133333333334, + 0.7787933333333334, + 0.7706158940397353 + ], + "GT Power_0": [ + 0.26375999999999994, + 0.2658, + 0.26202649006622525 + ], + "IA Power_0": [ + 6.786799999999997, + 7.727740000000001, + 6.83317880794702 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.320613333333337, + 8.265266666666667, + 7.407470198675498 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.741218543046357, + 0.7176556291390725, + 0.7175799999999994 + ], + "GT Power_0": [ + 0.12426490066225168, + 0.12273509933774847, + 0.12433333333333345 + ], + "IA Power_0": [ + 6.722629139072847, + 6.720033112582785, + 6.657680000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.429337748344373, + 7.082019867549668, + 7.018146666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4609, + "tests": [ + { + "DRAM Power_0": [ + 0.5817466666666666, + 0.5887814569536424, + 0.5734966887417217 + ], + "GT Power_0": [ + 0.05527333333333331, + 0.019291390728476816, + 0.044754966887417216 + ], + "IA Power_0": [ + 2.9256666666666673, + 3.1691721854304635, + 2.9384172185430457 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2732533333333347, + 3.502576158940397, + 3.137158940397352 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7246423841059602, + 0.7237284768211917, + 0.7108410596026484 + ], + "GT Power_0": [ + 0.14388741721854303, + 0.14454304635761586, + 0.1455364238410596 + ], + "IA Power_0": [ + 5.750251655629137, + 5.53319205298013, + 5.522801324503312 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.315476821192051, + 6.054139072847681, + 5.930523178807944 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7122582781456951, + 0.7085399999999997, + 0.7072980132450325 + ], + "GT Power_0": [ + 0.1439271523178808, + 0.14186666666666667, + 0.1429271523178808 + ], + "IA Power_0": [ + 6.131589403973509, + 5.451286666666665, + 5.516403973509936 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.548794701986755, + 5.890133333333332, + 5.9376556291390745 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7647, + 0.784146666666667, + 0.7673333333333339 + ], + "GT Power_0": [ + 0.32447333333333356, + 0.32564, + 0.32330666666666663 + ], + "IA Power_0": [ + 5.738719999999998, + 5.768339999999999, + 6.0543266666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3628199999999975, + 6.6936599999999995, + 6.64016 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.728853333333333, + 0.7134399999999995, + 0.7156199999999998 + ], + "GT Power_0": [ + 0.1542066666666666, + 0.1513266666666666, + 0.15639333333333327 + ], + "IA Power_0": [ + 5.647420000000003, + 5.592586666666666, + 5.930659999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.205479999999994, + 6.012966666666668, + 6.359446666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4608, + "tests": [ + { + "DRAM Power_0": [ + 0.5751133333333331, + 0.5843466666666666, + 0.5887019867549664 + ], + "GT Power_0": [ + 0.036539999999999996, + 0.01272, + 0.01372185430463576 + ], + "IA Power_0": [ + 2.8102466666666674, + 3.439566666666667, + 2.7213907284768206 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0607066666666674, + 3.7160066666666656, + 3.0357947019867537 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7138866666666662, + 0.7127999999999993, + 0.7133666666666663 + ], + "GT Power_0": [ + 0.08861333333333334, + 0.091, + 0.0903866666666667 + ], + "IA Power_0": [ + 5.620906666666667, + 5.347900000000003, + 5.3357133333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.962766666666668, + 5.71, + 5.713226666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7319735099337746, + 0.7138599999999994, + 0.7154000000000003 + ], + "GT Power_0": [ + 0.09009933774834442, + 0.09075333333333332, + 0.09256666666666669 + ], + "IA Power_0": [ + 5.618728476821193, + 5.325280000000002, + 5.417953333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.09673509933775, + 5.6956266666666675, + 5.78982 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7961986754966887, + 0.7724039735099344, + 0.7922185430463581 + ], + "GT Power_0": [ + 0.2212185430463576, + 0.20347682119205293, + 0.20501324503311255 + ], + "IA Power_0": [ + 5.577695364238411, + 5.622596026490066, + 5.896245033112581 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.20527152317881, + 6.109860927152318, + 6.506847682119204 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.721317880794702, + 0.7221125827814565, + 0.7178476821192049 + ], + "GT Power_0": [ + 0.10290066225165566, + 0.10074172185430465, + 0.09533774834437096 + ], + "IA Power_0": [ + 5.453516556291392, + 5.509158940397351, + 5.743980132450333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.823907284768213, + 5.873019867549668, + 6.115748344370859 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4607, + "tests": [ + { + "DRAM Power_0": [ + 0.5813892617449664, + 0.5902133333333334, + 0.5747682119205298 + ], + "GT Power_0": [ + 0.0388456375838926, + 0.014493333333333332, + 0.014046357615894034 + ], + "IA Power_0": [ + 2.587288590604027, + 2.5435533333333327, + 2.601635761589404 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.9447583892617453, + 2.9263933333333316, + 2.881178807947019 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7290596026490062, + 0.7149602649006622, + 0.7289337748344368 + ], + "GT Power_0": [ + 0.10150331125827819, + 0.10327152317880799, + 0.1038344370860928 + ], + "IA Power_0": [ + 5.283245033112581, + 5.002185430463577, + 5.071112582781458 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.723986754966888, + 5.38934437086093, + 5.504735099337747 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7302333333333328, + 0.7457218543046354, + 0.7136953642384102 + ], + "GT Power_0": [ + 0.10230666666666664, + 0.1009006622516557, + 0.09929801324503312 + ], + "IA Power_0": [ + 5.259926666666668, + 5.5218807947019855, + 4.981615894039736 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.719459999999999, + 5.9738940397350975, + 5.381112582781454 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7883178807947028, + 0.7731000000000003, + 0.7988666666666673 + ], + "GT Power_0": [ + 0.21889403973509935, + 0.21911333333333335, + 0.23158 + ], + "IA Power_0": [ + 5.187940397350991, + 5.2777400000000005, + 5.504960000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.813370860927152, + 5.776466666666664, + 6.228833333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7191466666666662, + 0.7205733333333328, + 0.7201866666666663 + ], + "GT Power_0": [ + 0.10597333333333339, + 0.10584000000000003, + 0.10525333333333337 + ], + "IA Power_0": [ + 5.05317333333333, + 5.157013333333333, + 5.368926666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.441626666666668, + 5.525866666666667, + 5.74890666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD123-A9", + "number": 4606, + "tests": [ + { + "DRAM Power_0": [ + 0.5838933333333332, + 0.5986754966887419, + 0.5746599999999998 + ], + "GT Power_0": [ + 0.03606666666666665, + 0.014682119205298012, + 0.014826666666666665 + ], + "IA Power_0": [ + 3.2870533333333345, + 4.436834437086092, + 3.1315466666666683 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5789333333333335, + 4.668264900662252, + 3.3351400000000004 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7122399999999994, + 0.713258278145695, + 0.7104635761589398 + ], + "GT Power_0": [ + 0.11721333333333339, + 0.11064900662251659, + 0.10918543046357618 + ], + "IA Power_0": [ + 6.141673333333333, + 6.145642384105963, + 6.09630463576159 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.438979999999999, + 6.501059602649007, + 6.425615894039732 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.710847682119205, + 0.7311866666666659, + 0.7114304635761589 + ], + "GT Power_0": [ + 0.10746357615894042, + 0.10554000000000002, + 0.1074039735099338 + ], + "IA Power_0": [ + 6.388059602649005, + 6.7134466666666635, + 6.175569536423842 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.743245033112586, + 7.153813333333331, + 6.497509933774837 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7867733333333332, + 0.7690331125827816, + 0.7694437086092718 + ], + "GT Power_0": [ + 0.23331333333333334, + 0.23456953642384099, + 0.23474172185430459 + ], + "IA Power_0": [ + 6.644333333333336, + 6.328728476821192, + 6.337211920529799 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.357160000000002, + 6.840721854304634, + 6.8720993377483435 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7177615894039733, + 0.7179602649006618, + 0.7161059602649004 + ], + "GT Power_0": [ + 0.11413245033112589, + 0.11317880794701989, + 0.11296688741721861 + ], + "IA Power_0": [ + 6.274046357615896, + 6.6339735099337735, + 6.569476821192054 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.682920529801327, + 6.96871523178808, + 6.909119205298018 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD146-A9", + "number": 4605, + "tests": [ + { + "DRAM Power_0": [ + 0.5825133333333334, + 0.5750397350993378, + 0.5731866666666667 + ], + "GT Power_0": [ + 0.03339999999999998, + 0.016172185430463573, + 0.014146666666666667 + ], + "IA Power_0": [ + 3.2041066666666658, + 2.9236291390728466, + 3.128466666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5631666666666644, + 3.1607284768211925, + 3.351626666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7122913907284764, + 0.7442266666666666, + 0.7160536912751673 + ], + "GT Power_0": [ + 0.11907284768211923, + 0.12211333333333343, + 0.11779194630872485 + ], + "IA Power_0": [ + 5.628860927152318, + 5.815193333333333, + 6.249100671140941 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.981384105960268, + 6.349066666666666, + 6.628161073825504 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7231986754966881, + 0.7277999999999998, + 0.7369866666666663 + ], + "GT Power_0": [ + 0.12319867549668873, + 0.12023333333333332, + 0.12019999999999999 + ], + "IA Power_0": [ + 5.7062781456953635, + 5.5902199999999995, + 5.578166666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.171781456953643, + 6.093773333333335, + 6.443360000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7870000000000005, + 0.7951600000000001, + 0.7706933333333336 + ], + "GT Power_0": [ + 0.24659333333333341, + 0.2483866666666666, + 0.24519333333333335 + ], + "IA Power_0": [ + 5.82642, + 6.111326666666667, + 5.775040000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.493500000000001, + 6.868333333333333, + 6.330666666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7374569536423838, + 0.7185231788079467, + 0.7371854304635759 + ], + "GT Power_0": [ + 0.12782781456953646, + 0.1313841059602649, + 0.13258940397350993 + ], + "IA Power_0": [ + 5.771754966887415, + 6.038145695364237, + 6.143410596026491 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.244132450331126, + 6.375549668874173, + 6.589635761589406 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4604, + "tests": [ + { + "DRAM Power_0": [ + 0.5874238410596027, + 0.5742866666666666, + 0.5876291390728471 + ], + "GT Power_0": [ + 0.013781456953642381, + 0.014233333333333336, + 0.014576158940397346 + ], + "IA Power_0": [ + 3.0646821192052967, + 3.0103466666666665, + 3.2825761589403983 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3775761589403963, + 3.2704866666666663, + 3.6671589403973517 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7127399999999995, + 0.7100933333333331, + 0.7422933333333334 + ], + "GT Power_0": [ + 0.10703333333333338, + 0.10742666666666673, + 0.1168333333333333 + ], + "IA Power_0": [ + 5.896879999999999, + 5.969093333333333, + 6.47542 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.290466666666665, + 6.247793333333328, + 6.986140000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7109933333333328, + 0.7115960264900656, + 0.7126158940397345 + ], + "GT Power_0": [ + 0.10373333333333337, + 0.10245695364238411, + 0.10091390728476819 + ], + "IA Power_0": [ + 6.029353333333335, + 5.986788079470198, + 6.062887417218541 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.362253333333334, + 6.355781456953641, + 6.381470198675498 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7700662251655632, + 0.7688675496688745, + 0.7707000000000002 + ], + "GT Power_0": [ + 0.22427814569536428, + 0.2272847682119206, + 0.23159333333333337 + ], + "IA Power_0": [ + 6.161569536423843, + 6.483410596026494, + 6.161966666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7010397350993385, + 7.000635761589404, + 6.695400000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7160794701986751, + 0.716529801324503, + 0.7186533333333329 + ], + "GT Power_0": [ + 0.10977483443708609, + 0.11196688741721852, + 0.10870666666666667 + ], + "IA Power_0": [ + 6.098046357615894, + 6.3756821192052975, + 6.135306666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.667947019867554, + 6.740880794701985, + 6.500113333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD169-A9", + "number": 4603, + "tests": [ + { + "DRAM Power_0": [ + 0.5750466666666665, + 0.5734266666666663, + 0.5734933333333329 + ], + "GT Power_0": [ + 0.033793333333333314, + 0.014319999999999998, + 0.014946666666666664 + ], + "IA Power_0": [ + 3.0170466666666687, + 3.2497933333333333, + 2.920479999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2564999999999995, + 3.4962533333333323, + 3.169253333333334 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7314866666666662, + 0.7291059602649006, + 0.7312516556291391 + ], + "GT Power_0": [ + 0.11765333333333329, + 0.10854304635761593, + 0.1071920529801325 + ], + "IA Power_0": [ + 5.817340000000001, + 5.944496688741722, + 5.700192052980132 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.346453333333335, + 6.462211920529802, + 6.206218543046359 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7332133333333329, + 0.7131799999999994, + 0.7279933774834433 + ], + "GT Power_0": [ + 0.10332666666666672, + 0.10400000000000004, + 0.10581456953642383 + ], + "IA Power_0": [ + 5.6828333333333365, + 5.658673333333337, + 5.7129470198675545 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.126513333333335, + 6.047153333333333, + 6.229927152317883 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7850266666666669, + 0.7706821192052983, + 0.7698333333333333 + ], + "GT Power_0": [ + 0.23478666666666664, + 0.23191390728476824, + 0.23333333333333342 + ], + "IA Power_0": [ + 7.0519399999999965, + 6.022437086092714, + 5.997160000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5755666666666635, + 6.548629139072846, + 6.533413333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7336533333333328, + 0.7180596026490064, + 0.7335894039735096 + ], + "GT Power_0": [ + 0.11266666666666664, + 0.11565562913907292, + 0.1142980132450332 + ], + "IA Power_0": [ + 6.0756599999999965, + 5.866423841059602, + 5.884377483443709 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.590793333333336, + 6.211410596026491, + 6.326423841059601 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD137-A9", + "number": 4602, + "tests": [ + { + "DRAM Power_0": [ + 0.5744266666666665, + 0.5862715231788078, + 0.5834533333333332 + ], + "GT Power_0": [ + 0.03753999999999999, + 0.01486092715231788, + 0.013346666666666665 + ], + "IA Power_0": [ + 3.4796599999999995, + 3.1267483443708626, + 3.6315266666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7325066666666626, + 3.495602649006621, + 3.981253333333335 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7344999999999997, + 0.7162866666666663, + 0.7094900662251654 + ], + "GT Power_0": [ + 0.10690666666666668, + 0.10903999999999998, + 0.10774834437086098 + ], + "IA Power_0": [ + 6.745086666666666, + 6.941866666666668, + 6.7781059602649005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.486073333333335, + 7.411313333333331, + 7.093993377483444 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7301192052980126, + 0.7112333333333327, + 0.7254172185430457 + ], + "GT Power_0": [ + 0.10523178807947019, + 0.10117333333333338, + 0.10386754966887422 + ], + "IA Power_0": [ + 6.992172185430463, + 7.1743133333333375, + 6.8612516556291405 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4820794701986735, + 7.535326666666664, + 7.343556291390725 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7843533333333332, + 0.7850993377483448, + 0.7701066666666665 + ], + "GT Power_0": [ + 0.22827333333333338, + 0.23288741721854297, + 0.2300333333333334 + ], + "IA Power_0": [ + 7.074159999999994, + 7.451245033112586, + 7.063353333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.639073333333334, + 8.055993377483443, + 7.569960000000003 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7221390728476816, + 0.7344768211920532, + 0.7367947019867547 + ], + "GT Power_0": [ + 0.11687417218543056, + 0.11234437086092716, + 0.10998675496688747 + ], + "IA Power_0": [ + 7.107019867549666, + 6.9452119205298, + 6.96635761589404 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.420311258278146, + 7.646119205298009, + 7.501165562913905 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD180-A9", + "number": 4601, + "tests": [ + { + "DRAM Power_0": [ + 0.5750799999999999, + 0.5872866666666665, + 0.5893841059602649 + ], + "GT Power_0": [ + 0.04589999999999997, + 0.015586666666666667, + 0.01649006622516556 + ], + "IA Power_0": [ + 3.563646666666666, + 3.2116133333333323, + 3.165609271523181 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8061199999999995, + 3.53238, + 3.5588807947019867 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7109403973509932, + 0.7399602649006617, + 0.7108999999999992 + ], + "GT Power_0": [ + 0.11546357615894035, + 0.11856953642384103, + 0.11485333333333336 + ], + "IA Power_0": [ + 6.223470198675497, + 6.837456953642385, + 6.625666666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6024172185430485, + 7.394185430463576, + 7.015013333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7271466666666662, + 0.711833333333333, + 0.73032 + ], + "GT Power_0": [ + 0.1191066666666667, + 0.1188133333333334, + 0.11762666666666666 + ], + "IA Power_0": [ + 6.2766399999999996, + 6.383253333333334, + 6.696793333333329 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.909446666666668, + 6.795046666666666, + 7.218653333333337 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7674733333333338, + 0.7685333333333338, + 0.7700400000000002 + ], + "GT Power_0": [ + 0.2585133333333333, + 0.25922, + 0.2573333333333333 + ], + "IA Power_0": [ + 6.617013333333332, + 6.611613333333332, + 6.905686666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.145279999999996, + 7.121066666666664, + 7.38267333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4600, + "tests": [ + { + "DRAM Power_0": [ + 0.5739865771812079, + 0.5735000000000002, + 0.5732533333333333 + ], + "GT Power_0": [ + 0.036140939597315416, + 0.013206666666666665, + 0.013873333333333333 + ], + "IA Power_0": [ + 3.0603892617449664, + 3.0566333333333335, + 3.0126800000000022 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.308322147651006, + 3.270200000000001, + 3.281420000000001 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7140662251655624, + 0.7124503311258276, + 0.7127133333333328 + ], + "GT Power_0": [ + 0.10636423841059613, + 0.10037748344370863, + 0.0990466666666667 + ], + "IA Power_0": [ + 6.093516556291392, + 6.255536423841059, + 5.9748 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.368649006622513, + 6.609403973509934, + 6.330946666666664 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7431599999999995, + 0.7121324503311254, + 0.7120728476821189 + ], + "GT Power_0": [ + 0.1017266666666667, + 0.09701324503311261, + 0.09717218543046356 + ], + "IA Power_0": [ + 5.975773333333335, + 6.191768211920532, + 6.003794701986755 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.933106666666669, + 6.54862251655629, + 6.3550927152317875 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7679400000000005, + 0.7892450331125831, + 0.7694333333333339 + ], + "GT Power_0": [ + 0.21618000000000004, + 0.22425165562913912, + 0.22081333333333342 + ], + "IA Power_0": [ + 6.1211, + 6.212165562913906, + 6.164380000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6587733333333325, + 7.077139072847686, + 6.654633333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7249866666666659, + 0.7190397350993373, + 0.7377799999999998 + ], + "GT Power_0": [ + 0.11058, + 0.10780132450331127, + 0.10978666666666667 + ], + "IA Power_0": [ + 6.4377066666666645, + 6.056509933774837, + 6.107360000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.760806666666671, + 6.432781456953644, + 6.7230533333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD165-A9", + "number": 4599, + "tests": [ + { + "DRAM Power_0": [ + 0.5805400000000001, + 0.5740198675496689, + 0.5870993377483441 + ], + "GT Power_0": [ + 0.03650666666666666, + 0.01429139072847682, + 0.014218543046357614 + ], + "IA Power_0": [ + 3.17218, + 3.124304635761589, + 3.162807947019867 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.513826666666664, + 3.3449668874172183, + 3.457317880794701 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7425629139072847, + 0.7233443708609265, + 0.7112266666666662 + ], + "GT Power_0": [ + 0.09935761589403974, + 0.11415894039735104, + 0.09984 + ], + "IA Power_0": [ + 6.809112582781458, + 6.296715231788081, + 6.180206666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.317039735099336, + 6.840675496688742, + 6.547100000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7262466666666663, + 0.7130463576158936, + 0.7119735099337743 + ], + "GT Power_0": [ + 0.10316, + 0.10103973509933774, + 0.09896026490066225 + ], + "IA Power_0": [ + 6.503033333333331, + 6.2288344370860935, + 6.290099337748349 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.940953333333332, + 6.57871523178808, + 6.625284768211924 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7799866666666672, + 0.7863333333333339, + 0.7852649006622522 + ], + "GT Power_0": [ + 0.2574466666666667, + 0.23321999999999998, + 0.23472847682119202 + ], + "IA Power_0": [ + 6.532453333333336, + 6.50702, + 6.844562913907283 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.108166666666671, + 7.04079333333333, + 7.425576158940397 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7172333333333328, + 0.7326887417218542, + 0.7178807947019863 + ], + "GT Power_0": [ + 0.11066666666666665, + 0.10952980132450335, + 0.10969536423841061 + ], + "IA Power_0": [ + 6.344613333333338, + 6.345251655629141, + 6.642099337748346 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6966600000000005, + 6.886748344370863, + 7.011960264900664 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD183-A9", + "number": 4598, + "tests": [ + { + "DRAM Power_0": [ + 0.5810599999999997, + 0.5799666666666663, + 0.5831333333333337 + ], + "GT Power_0": [ + 0.04326666666666665, + 0.0154, + 0.01592666666666667 + ], + "IA Power_0": [ + 3.017866666666667, + 3.2022466666666682, + 3.8296266666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3765600000000013, + 3.4076466666666665, + 4.0529866666666665 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7126423841059593, + 0.7124866666666663, + 0.7310533333333326 + ], + "GT Power_0": [ + 0.11731788079470194, + 0.11572, + 0.11608000000000002 + ], + "IA Power_0": [ + 5.916662251655631, + 5.911079999999999, + 6.242446666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.303675496688739, + 6.283426666666666, + 6.7881933333333295 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7122199999999995, + 0.7116333333333331, + 0.7257218543046356 + ], + "GT Power_0": [ + 0.11558666666666664, + 0.11891999999999996, + 0.1152384105960265 + ], + "IA Power_0": [ + 6.0482733333333325, + 5.957893333333334, + 5.967238410596028 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.413333333333335, + 6.350426666666664, + 6.478417218543044 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7696887417218544, + 0.7695231788079473, + 0.7703973509933777 + ], + "GT Power_0": [ + 0.25256953642384095, + 0.2514238410596025, + 0.2513576158940397 + ], + "IA Power_0": [ + 6.173245033112583, + 6.498913907284768, + 6.151821192052978 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.70834437086093, + 7.028814569536423, + 6.705907284768214 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7163311258278141, + 0.7187682119205296, + 0.7173178807947013 + ], + "GT Power_0": [ + 0.12174172185430465, + 0.12019205298013243, + 0.12081456953642387 + ], + "IA Power_0": [ + 6.077463576158941, + 6.3750066225165565, + 6.022807947019865 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.44288741721854, + 6.745536423841062, + 6.454423841059604 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4597, + "tests": [ + { + "DRAM Power_0": [ + 0.5751533333333334, + 0.5879066666666669, + 0.5691258278145692 + ], + "GT Power_0": [ + 0.029966666666666645, + 0.014079999999999995, + 0.01334437086092715 + ], + "IA Power_0": [ + 3.0255466666666675, + 2.7545599999999997, + 2.5581059602649 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.282493333333334, + 3.073786666666665, + 2.826562913907284 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7141258278145689, + 0.7128666666666663, + 0.7140463576158939 + ], + "GT Power_0": [ + 0.11488079470198681, + 0.11336666666666666, + 0.11258940397350999 + ], + "IA Power_0": [ + 5.29655629139073, + 5.2624466666666665, + 5.504867549668873 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.702993377483444, + 5.641379999999999, + 5.903562913907283 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7262799999999998, + 0.714629139072847, + 0.7139735099337746 + ], + "GT Power_0": [ + 0.11223333333333337, + 0.11582781456953646, + 0.11237748344370864 + ], + "IA Power_0": [ + 5.314913333333332, + 5.274013245033116, + 5.509211920529803 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.773566666666668, + 5.8167947019867565, + 5.900596026490069 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7713311258278149, + 0.771211920529802, + 0.7897814569536427 + ], + "GT Power_0": [ + 0.23489403973509929, + 0.23275496688741718, + 0.2327814569536424 + ], + "IA Power_0": [ + 5.434384105960265, + 5.509509933774836, + 5.478105960264898 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.946251655629135, + 5.9757814569536425, + 6.125086092715231 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7190397350993373, + 0.7277814569536417, + 0.7273443708609271 + ], + "GT Power_0": [ + 0.1181192052980133, + 0.11883443708609277, + 0.1184569536423842 + ], + "IA Power_0": [ + 5.402437086092713, + 5.571933774834439, + 5.352377483443708 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.753953642384107, + 5.916847682119208, + 5.7805629139072865 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD21-B1", + "number": 4596, + "tests": [ + { + "DRAM Power_0": [ + 0.5821066666666666, + 0.5754503311258278, + 0.5744238410596023 + ], + "GT Power_0": [ + 0.03404666666666664, + 0.015344370860927157, + 0.015456953642384107 + ], + "IA Power_0": [ + 2.983926666666666, + 3.182761589403972, + 2.885271523178809 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.493853333333332, + 4.603516556291389, + 4.2896490066225175 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7138410596026484, + 0.7139999999999992, + 0.7139139072847679 + ], + "GT Power_0": [ + 0.1040860927152318, + 0.1045562913907285, + 0.10498675496688745 + ], + "IA Power_0": [ + 5.508033112582784, + 5.518503311258277, + 5.550814569536426 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.066072847682121, + 7.067933774834438, + 7.104629139072849 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7294635761589398, + 0.7156622516556284, + 0.7132847682119202 + ], + "GT Power_0": [ + 0.10410596026490064, + 0.10807284768211926, + 0.10735761589403979 + ], + "IA Power_0": [ + 5.892516556291391, + 5.605364238410597, + 5.558801324503313 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.557986754966885, + 7.1223642384106, + 7.088006622516559 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7717400000000002, + 0.7892466666666671, + 0.7817533333333334 + ], + "GT Power_0": [ + 0.23083333333333328, + 0.22935333333333324, + 0.22779333333333335 + ], + "IA Power_0": [ + 6.021799999999999, + 5.835800000000003, + 5.825319999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.717373333333332, + 7.6950466666666655, + 7.509926666666664 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7202999999999995, + 0.7193311258278139, + 0.7257583892617443 + ], + "GT Power_0": [ + 0.11752666666666668, + 0.11015894039735104, + 0.11276510067114096 + ], + "IA Power_0": [ + 5.613253333333334, + 5.714357615894038, + 6.590255033557047 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.1652466666666665, + 7.232920529801328, + 8.094000000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 149 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4595, + "tests": [ + { + "DRAM Power_0": [ + 0.5888079470198675, + 0.5710132450331123, + 0.5745533333333331 + ], + "GT Power_0": [ + 0.015006622516556292, + 0.014364238410596024, + 0.015133333333333334 + ], + "IA Power_0": [ + 2.719682119205297, + 2.609192052980134, + 2.671953333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0352649006622503, + 2.8458476821192047, + 2.9380599999999992 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7183199999999995, + 0.7149801324503308, + 0.7137615894039729 + ], + "GT Power_0": [ + 0.11188000000000005, + 0.11170198675496691, + 0.11101986754966889 + ], + "IA Power_0": [ + 5.630526666666669, + 5.272880794701985, + 5.339993377483443 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.012493333333335, + 5.646966887417219, + 5.700761589403978 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7221523178807945, + 0.7282317880794701, + 0.7122317880794696 + ], + "GT Power_0": [ + 0.11307284768211924, + 0.11215231788079476, + 0.11333112582781452 + ], + "IA Power_0": [ + 5.735887417218543, + 5.265437086092712, + 5.261026490066226 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.092556291390727, + 5.704238410596028, + 5.620384105960265 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7871933333333334, + 0.780586666666667, + 0.8134768211920536 + ], + "GT Power_0": [ + 0.24041333333333345, + 0.24055999999999997, + 0.24218543046357627 + ], + "IA Power_0": [ + 5.5362866666666655, + 5.4973399999999994, + 5.437443708609272 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.203646666666665, + 6.12478, + 6.396649006622518 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7331799999999995, + 0.7226399999999998, + 0.755693333333333 + ], + "GT Power_0": [ + 0.12163999999999994, + 0.11831999999999998, + 0.11974666666666661 + ], + "IA Power_0": [ + 5.335706666666668, + 5.57092, + 6.310586666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.759013333333336, + 5.871273333333332, + 6.727086666666662 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD168-A9", + "number": 4594, + "tests": [ + { + "DRAM Power_0": [ + 0.5762666666666665, + 0.5754768211920528, + 0.5753245033112584 + ], + "GT Power_0": [ + 0.034733333333333304, + 0.015880794701986757, + 0.016556291390728475 + ], + "IA Power_0": [ + 3.1597199999999996, + 3.0909999999999997, + 3.0568940397350994 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.399206666666666, + 3.3417284768211912, + 3.3055960264900675 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7145364238410594, + 0.7153266666666663, + 0.7134399999999996 + ], + "GT Power_0": [ + 0.11736423841059605, + 0.12012666666666667, + 0.11916000000000004 + ], + "IA Power_0": [ + 6.0980927152317905, + 6.379666666666669, + 6.012066666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.446344370860923, + 6.74166666666667, + 6.374120000000004 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7135799999999993, + 0.7141192052980124, + 0.7247866666666665 + ], + "GT Power_0": [ + 0.12024000000000012, + 0.12164238410596026, + 0.11927333333333333 + ], + "IA Power_0": [ + 6.004906666666668, + 6.2448940397351, + 6.074886666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.379686666666669, + 6.6786556291390715, + 6.464180000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7851258278145695, + 0.7767266666666667, + 0.7890728476821194 + ], + "GT Power_0": [ + 0.25056953642384117, + 0.2531400000000001, + 0.26068211920529805 + ], + "IA Power_0": [ + 6.3051059602649, + 6.946240000000002, + 6.553165562913909 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9464834437086065, + 7.479546666666667, + 7.086721854304636 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.730633333333333, + 0.7315364238410588, + 0.7182781456953639 + ], + "GT Power_0": [ + 0.12728, + 0.1247218543046358, + 0.125887417218543 + ], + "IA Power_0": [ + 6.534779999999999, + 6.156642384105959, + 6.055774834437086 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.91533333333333, + 6.732781456953644, + 6.472649006622518 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD175-A9", + "number": 4593, + "tests": [ + { + "DRAM Power_0": [ + 0.5763733333333333, + 0.5749337748344366, + 0.5862384105960257 + ], + "GT Power_0": [ + 0.03312666666666665, + 0.01392715231788079, + 0.01439735099337748 + ], + "IA Power_0": [ + 3.3782066666666664, + 2.9236225165562915, + 2.953953642384106 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6293866666666674, + 3.180423841059603, + 3.2142384105960264 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7151721854304629, + 0.7433708609271518, + 0.7294599999999991 + ], + "GT Power_0": [ + 0.10424503311258285, + 0.10031125827814573, + 0.10518000000000005 + ], + "IA Power_0": [ + 6.16090066225165, + 6.104476821192053, + 5.8722733333333315 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.531788079470198, + 6.914370860927151, + 6.375353333333335 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.727493333333333, + 0.7122333333333327, + 0.7124768211920526 + ], + "GT Power_0": [ + 0.10237333333333336, + 0.10417333333333333, + 0.1009867549668874 + ], + "IA Power_0": [ + 5.884926666666666, + 5.874013333333334, + 6.030503311258276 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.377439999999997, + 6.2534199999999975, + 6.381993377483445 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.770826666666667, + 0.7742119205298015, + 0.770377483443709 + ], + "GT Power_0": [ + 0.22980666666666674, + 0.252317880794702, + 0.2317814569536423 + ], + "IA Power_0": [ + 6.147680000000001, + 6.239688741721854, + 6.456953642384107 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6270799999999985, + 6.746450331125825, + 6.980649006622518 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7179470198675496, + 0.7305333333333333, + 0.7162399999999994 + ], + "GT Power_0": [ + 0.10648344370860925, + 0.10910000000000003, + 0.11045333333333335 + ], + "IA Power_0": [ + 5.925860927152319, + 5.933673333333335, + 6.305226666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.296774834437085, + 6.410826666666664, + 6.657413333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD162-A9", + "number": 4592, + "tests": [ + { + "DRAM Power_0": [ + 0.5823288590604023, + 0.5912847682119204, + 0.576373333333333 + ], + "GT Power_0": [ + 0.03371140939597314, + 0.014450331125827814, + 0.014366666666666668 + ], + "IA Power_0": [ + 3.1298590604026844, + 2.712046357615894, + 2.822906666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4256442953020128, + 3.0825364238410597, + 3.0559600000000007 + ], + "name": "Basic", + "samples": [ + 149, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7297880794701985, + 0.7146291390728468, + 0.7141466666666665 + ], + "GT Power_0": [ + 0.1247019867549669, + 0.12268874172185427, + 0.12225333333333334 + ], + "IA Power_0": [ + 5.611271523178808, + 5.3699536423841066, + 5.315853333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.106947019867549, + 5.760933774834435, + 5.69253333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7319867549668869, + 0.7125666666666659, + 0.7166225165562908 + ], + "GT Power_0": [ + 0.12129139072847683, + 0.12344000000000001, + 0.1215298013245033 + ], + "IA Power_0": [ + 5.30187417218543, + 5.249986666666667, + 5.64066225165563 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.881821192052978, + 5.659200000000001, + 6.044258278145694 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.773986666666667, + 0.7739466666666666, + 0.7795231788079474 + ], + "GT Power_0": [ + 0.25000666666666665, + 0.2555333333333334, + 0.27409271523178813 + ], + "IA Power_0": [ + 5.544833333333334, + 5.602433333333333, + 5.913688741721856 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.053806666666667, + 6.134686666666669, + 6.404940397350994 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7197218543046353, + 0.7502199999999991, + 0.7196688741721851 + ], + "GT Power_0": [ + 0.14139072847682116, + 0.13588000000000008, + 0.1334635761589404 + ], + "IA Power_0": [ + 5.471271523178808, + 5.421260000000004, + 5.446139072847682 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.838278145695365, + 6.130713333333335, + 5.831814569536422 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD136-A9", + "number": 4591, + "tests": [ + { + "DRAM Power_0": [ + 0.7070533333333328, + 0.6298926174496643, + 0.6311812080536909 + ], + "GT Power_0": [ + 0.013353333333333332, + 0.014261744966442953, + 0.0147248322147651 + ], + "IA Power_0": [ + 6.556213333333333, + 4.304812080536914, + 5.023208053691273 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.821179999999998, + 4.651510067114096, + 5.287644295302015 + ], + "name": "Basic", + "samples": [ + 150, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7299602649006618, + 0.7337199999999995, + 0.738793333333333 + ], + "GT Power_0": [ + 0.09378807947019867, + 0.09490666666666674, + 0.0955133333333333 + ], + "IA Power_0": [ + 5.203476821192052, + 5.147533333333333, + 5.908346666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.686827814569538, + 5.621526666666664, + 6.237433333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7162533333333326, + 0.7130264900662248, + 0.7292317880794696 + ], + "GT Power_0": [ + 0.09557999999999998, + 0.09390728476821202, + 0.09489403973509933 + ], + "IA Power_0": [ + 5.199253333333332, + 5.163847682119207, + 5.188913907284768 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.560746666666666, + 5.5175430463576145, + 5.623311258278144 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7822913907284771, + 0.7728543046357624, + 0.7725894039735102 + ], + "GT Power_0": [ + 0.22874172185430464, + 0.20675496688741724, + 0.21624503311258286 + ], + "IA Power_0": [ + 5.342370860927152, + 5.3122913907284754, + 5.339072847682117 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.875662251655629, + 5.839596026490067, + 5.843092715231787 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7320927152317873, + 0.756373333333333, + 0.7307999999999999 + ], + "GT Power_0": [ + 0.10212582781456954, + 0.11599999999999996, + 0.1003066666666668 + ], + "IA Power_0": [ + 5.201589403973509, + 5.340706666666665, + 5.2855 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.717589403973509, + 5.911073333333337, + 5.759986666666661 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD119-A9", + "number": 4590, + "tests": [ + { + "DRAM Power_0": [ + 0.57952, + 0.5741986754966888, + 0.5888807947019867 + ], + "GT Power_0": [ + 0.03844666666666665, + 0.014509933774834434, + 0.014298013245033114 + ], + "IA Power_0": [ + 3.1373666666666673, + 3.1599470198675483, + 3.4621854304635775 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4265933333333334, + 3.363344370860927, + 3.795933774834436 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7352185430463573, + 0.7466225165562909, + 0.7134266666666665 + ], + "GT Power_0": [ + 0.1068278145695364, + 0.11273509933774842, + 0.10751333333333332 + ], + "IA Power_0": [ + 6.264549668874172, + 6.273867549668877, + 6.565940000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.916523178807947, + 7.083245033112583, + 6.954726666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7174399999999994, + 0.7385733333333326, + 0.72574 + ], + "GT Power_0": [ + 0.10951999999999996, + 0.1085066666666667, + 0.10838 + ], + "IA Power_0": [ + 6.454719999999999, + 6.3267999999999995, + 6.344120000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7776933333333345, + 7.207853333333335, + 6.780626666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7862733333333333, + 0.7838741721854304, + 0.7895000000000003 + ], + "GT Power_0": [ + 0.2356066666666667, + 0.2593245033112584, + 0.2726666666666666 + ], + "IA Power_0": [ + 6.525620000000001, + 6.981649006622515, + 6.578686666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.085359999999996, + 7.508298013245036, + 7.2212999999999985 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7363333333333331, + 0.7241399999999995, + 0.7377814569536421 + ], + "GT Power_0": [ + 0.11708000000000003, + 0.12146666666666668, + 0.1178278145695365 + ], + "IA Power_0": [ + 6.354253333333332, + 7.186653333333334, + 6.565046357615893 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.865646666666665, + 7.588020000000005, + 6.944264900662249 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD123-A9", + "number": 4589, + "tests": [ + { + "DRAM Power_0": [ + 0.58282, + 0.5807615894039735, + 0.5733599999999998 + ], + "GT Power_0": [ + 0.03945999999999999, + 0.014569536423841064, + 0.013819999999999997 + ], + "IA Power_0": [ + 3.361366666666667, + 3.1355165562913903, + 2.9818199999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.706926666666666, + 3.399364238410596, + 3.214040000000002 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.726733333333333, + 0.713313333333333, + 0.713353333333333 + ], + "GT Power_0": [ + 0.11361333333333332, + 0.11364666666666669, + 0.11052666666666668 + ], + "IA Power_0": [ + 6.558213333333333, + 6.128986666666665, + 6.1760600000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.029246666666671, + 6.489726666666664, + 6.5071266666666645 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.714483443708609, + 0.713801324503311, + 0.7140132450331119 + ], + "GT Power_0": [ + 0.1096291390728477, + 0.11029139072847689, + 0.11063576158940397 + ], + "IA Power_0": [ + 6.201629139072848, + 6.166172185430465, + 6.628105960264901 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.551576158940399, + 6.566000000000002, + 6.914443708609268 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7713333333333338, + 0.7969866666666668, + 0.7717615894039741 + ], + "GT Power_0": [ + 0.23871333333333325, + 0.25566666666666654, + 0.24210596026490075 + ], + "IA Power_0": [ + 6.373073333333334, + 6.485706666666669, + 6.472105960264903 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.924506666666666, + 7.20434, + 6.973980132450332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.718019867549668, + 0.7383576158940396, + 0.720649006622516 + ], + "GT Power_0": [ + 0.12358940397350997, + 0.12084105960264906, + 0.12241721854304641 + ], + "IA Power_0": [ + 6.330682119205299, + 6.622576158940398, + 6.3379139072847686 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6817615894039735, + 7.109794701986751, + 6.713529801324503 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD21-B1", + "number": 4588, + "tests": [ + { + "DRAM Power_0": [ + 0.6060133333333333, + 0.6298266666666663, + 0.5758866666666667 + ], + "GT Power_0": [ + 0.03081999999999998, + 0.014826666666666669, + 0.015266666666666666 + ], + "IA Power_0": [ + 4.386220000000003, + 4.142293333333334, + 2.9555066666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.852586666666667, + 5.583546666666666, + 4.3842133333333315 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7306466666666664, + 0.7143178807947013, + 0.7141733333333328 + ], + "GT Power_0": [ + 0.11661333333333346, + 0.11296026490066224, + 0.1120333333333333 + ], + "IA Power_0": [ + 6.4072266666666655, + 5.659649006622517, + 5.621719999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.948753333333331, + 7.194039735099337, + 7.163926666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7151466666666663, + 0.7221788079470194, + 0.7215761589403971 + ], + "GT Power_0": [ + 0.1108466666666667, + 0.11462251655629141, + 0.10957615894039732 + ], + "IA Power_0": [ + 5.952333333333332, + 6.26317880794702, + 5.961238410596027 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.475553333333332, + 7.779529801324504, + 7.526238410596025 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7727666666666677, + 0.782706666666667, + 0.7871000000000005 + ], + "GT Power_0": [ + 0.24023333333333322, + 0.23956666666666662, + 0.23484666666666673 + ], + "IA Power_0": [ + 5.839060000000002, + 5.896766666666667, + 6.047206666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.710646666666668, + 7.644933333333331, + 7.959120000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7340463576158933, + 0.7211589403973505, + 0.6313533333333331 + ], + "GT Power_0": [ + 0.13517880794701984, + 0.11731788079470201, + 0.4776066666666666 + ], + "IA Power_0": [ + 5.741245033112584, + 5.684589403973511, + 6.215533333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.3037350993377474, + 7.232205298013243, + 8.131739999999995 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD133-A9", + "number": 4587, + "tests": [ + { + "DRAM Power_0": [ + 0.5735496688741721, + 0.5744966887417216, + 0.5696556291390728 + ], + "GT Power_0": [ + 0.03159602649006621, + 0.015801324503311256, + 0.015503311258278144 + ], + "IA Power_0": [ + 3.1018807947019864, + 2.832052980132449, + 2.7007218543046347 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3548807947019865, + 3.0891854304635764, + 2.928317880794701 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7105629139072845, + 0.7129337748344363, + 0.7289139072847678 + ], + "GT Power_0": [ + 0.12021854304635764, + 0.11672847682119211, + 0.11913907284768209 + ], + "IA Power_0": [ + 5.469311258278147, + 5.528145695364236, + 5.7782119205298 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.859860927152317, + 5.8814503311258255, + 6.279324503311257 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7258874172185426, + 0.711940397350993, + 0.7131920529801321 + ], + "GT Power_0": [ + 0.12282119205298017, + 0.11762251655629148, + 0.1194635761589404 + ], + "IA Power_0": [ + 5.531523178807946, + 5.597430463576156, + 5.616013245033114 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.995701986754967, + 5.929960264900661, + 5.949072847682116 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7775430463576158, + 0.7726933333333335, + 0.7718466666666671 + ], + "GT Power_0": [ + 0.24729139072847672, + 0.2464600000000001, + 0.24651333333333342 + ], + "IA Power_0": [ + 5.8081920529801305, + 6.01776, + 5.764446666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.40244370860927, + 6.5288066666666715, + 6.2858399999999985 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7192980132450333, + 0.7192980132450326, + 0.7184399999999995 + ], + "GT Power_0": [ + 0.12678145695364235, + 0.12886092715231795, + 0.1268800000000001 + ], + "IA Power_0": [ + 5.6463774834437075, + 5.91092715231788, + 5.636306666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.035834437086092, + 6.302761589403972, + 6.013306666666664 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4586, + "tests": [ + { + "DRAM Power_0": [ + 0.5820066666666661, + 0.5851059602649008, + 0.5734666666666665 + ], + "GT Power_0": [ + 0.04060666666666666, + 0.013238410596026491, + 0.012399999999999998 + ], + "IA Power_0": [ + 2.7378333333333322, + 2.6999867549668872, + 2.7207733333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1080866666666678, + 3.0135761589403978, + 2.96378 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7303046357615885, + 0.7286026490066221, + 0.7301258278145689 + ], + "GT Power_0": [ + 0.08917218543046361, + 0.08968211920529805, + 0.0903907284768212 + ], + "IA Power_0": [ + 5.579635761589406, + 5.356682119205301, + 5.442311258278147 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.078887417218542, + 5.738013245033112, + 5.9336754966887355 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7125099337748343, + 0.71441059602649, + 0.7298799999999992 + ], + "GT Power_0": [ + 0.09011920529801323, + 0.08725165562913907, + 0.0856533333333334 + ], + "IA Power_0": [ + 5.62837086092715, + 5.496668874172184, + 5.362286666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.970615894039735, + 5.796079470198678, + 5.79052 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7697066666666665, + 0.7829602649006624, + 0.7726225165562915 + ], + "GT Power_0": [ + 0.19769333333333328, + 0.212476821192053, + 0.19581456953642387 + ], + "IA Power_0": [ + 5.556433333333331, + 5.856456953642388, + 5.917344370860929 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.027053333333334, + 6.432609271523179, + 6.327668874172185 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7356887417218538, + 0.719973333333333, + 0.7187748344370859 + ], + "GT Power_0": [ + 0.09466225165562915, + 0.09484666666666663, + 0.09354304635761591 + ], + "IA Power_0": [ + 5.456788079470196, + 5.557653333333331, + 5.764986754966891 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.8814304635761605, + 5.893906666666669, + 6.094443708609271 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD147-A9", + "number": 4585, + "tests": [ + { + "DRAM Power_0": [ + 0.5792980132450326, + 0.5737947019867548, + 0.5900866666666666 + ], + "GT Power_0": [ + 0.03574834437086091, + 0.015165562913907287, + 0.01641999999999999 + ], + "IA Power_0": [ + 2.893562913907284, + 2.717907284768213, + 2.730799999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1544966887417223, + 2.9557682119205286, + 3.064519999999999 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7168874172185424, + 0.7317866666666658, + 0.7125629139072843 + ], + "GT Power_0": [ + 0.1266622516556291, + 0.12723333333333334, + 0.1260264900662252 + ], + "IA Power_0": [ + 5.396920529801325, + 5.893213333333333, + 5.3529470198675515 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.80287417218543, + 6.4193000000000024, + 5.7190596026490095 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7144900662251649, + 0.7162199999999995, + 0.7132185430463573 + ], + "GT Power_0": [ + 0.12458278145695365, + 0.12569333333333327, + 0.12434437086092723 + ], + "IA Power_0": [ + 5.293582781456949, + 5.678786666666666, + 5.294854304635762 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.6883642384105935, + 6.038433333333335, + 5.674933774834434 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7708666666666671, + 0.7745666666666668, + 0.7709600000000001 + ], + "GT Power_0": [ + 0.25703999999999994, + 0.2591466666666668, + 0.2561399999999998 + ], + "IA Power_0": [ + 5.6288, + 5.504266666666667, + 5.49488 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.294586666666669, + 6.047640000000001, + 6.0491466666666645 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7195827814569536, + 0.7192666666666666, + 0.7213576158940392 + ], + "GT Power_0": [ + 0.13019867549668876, + 0.13172, + 0.1371192052980133 + ], + "IA Power_0": [ + 5.7100331125827815, + 5.632293333333331, + 5.680264900662255 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.122503311258278, + 6.037793333333334, + 6.040589403973509 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD144-A9", + "number": 4584, + "tests": [ + { + "DRAM Power_0": [ + 0.5839668874172181, + 0.575324503311258, + 0.5757549668874166 + ], + "GT Power_0": [ + 0.02994701986754966, + 0.014377483443708608, + 0.015013245033112577 + ], + "IA Power_0": [ + 3.158284768211921, + 3.364271523178808, + 2.9770927152317883 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.462370860927152, + 3.591615894039737, + 3.2128278145695375 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7145695364238404, + 0.7138799999999996, + 0.7126133333333329 + ], + "GT Power_0": [ + 0.0993841059602649, + 0.09790666666666668, + 0.09994666666666666 + ], + "IA Power_0": [ + 6.1054039735099375, + 6.102039999999999, + 6.1230466666666645 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.445953642384106, + 6.450739999999998, + 6.47756666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7142251655629138, + 0.7129337748344365, + 0.713397350993377 + ], + "GT Power_0": [ + 0.09689403973509943, + 0.09565562913907287, + 0.09635761589403971 + ], + "IA Power_0": [ + 6.447695364238408, + 6.238986754966889, + 6.095185430463574 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.790205298013245, + 6.538801324503313, + 6.484112582781457 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7724370860927157, + 0.7716200000000003, + 0.773099337748345 + ], + "GT Power_0": [ + 0.2186622516556291, + 0.21762666666666666, + 0.2171986754966888 + ], + "IA Power_0": [ + 6.691615894039734, + 6.4191133333333354, + 6.335814569536424 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.182039735099335, + 6.844960000000001, + 6.8595761589403965 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7198609271523175, + 0.7188278145695361, + 0.7188940397350988 + ], + "GT Power_0": [ + 0.10691390728476825, + 0.10378145695364238, + 0.10638410596026493 + ], + "IA Power_0": [ + 6.132218543046359, + 6.21241059602649, + 6.467993377483442 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.53323178807947, + 6.552039735099339, + 6.826668874172185 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4583, + "tests": [ + { + "DRAM Power_0": [ + 0.5822251655629135, + 0.5755827814569535, + 0.5754733333333331 + ], + "GT Power_0": [ + 0.04323178807947019, + 0.0167682119205298, + 0.016739999999999998 + ], + "IA Power_0": [ + 3.126629139072847, + 3.064761589403973, + 3.0274266666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4634238410596034, + 3.2792317880794712, + 3.279293333333334 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712331125827814, + 0.7204133333333329, + 0.7113866666666663 + ], + "GT Power_0": [ + 0.11530463576158943, + 0.11302, + 0.11903333333333338 + ], + "IA Power_0": [ + 5.841192052980131, + 6.220326666666668, + 5.787526666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.223774834437085, + 6.603433333333334, + 6.208300000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7167666666666661, + 0.7168866666666663, + 0.712556291390728 + ], + "GT Power_0": [ + 0.11579333333333336, + 0.12558666666666674, + 0.11447682119205296 + ], + "IA Power_0": [ + 6.048286666666666, + 5.903686666666668, + 5.905629139072849 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4180600000000005, + 6.343626666666665, + 6.294543046357618 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7681533333333337, + 0.7707947019867553, + 0.769926666666667 + ], + "GT Power_0": [ + 0.27416666666666656, + 0.2749867549668875, + 0.2741266666666669 + ], + "IA Power_0": [ + 6.228106666666667, + 6.111278145695366, + 5.983106666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.817826666666669, + 6.6781655629139065, + 6.52896 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.739953333333333, + 0.7172582781456948, + 0.7534105960264895 + ], + "GT Power_0": [ + 0.12393333333333333, + 0.12359602649006621, + 0.13312582781456958 + ], + "IA Power_0": [ + 6.249313333333333, + 5.972867549668876, + 6.064556291390726 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.002733333333333, + 6.346986754966886, + 6.923357615894041 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD176-A9", + "number": 4582, + "tests": [ + { + "DRAM Power_0": [ + 0.5772649006622516, + 0.5737400000000001, + 0.5859337748344373 + ], + "GT Power_0": [ + 0.015668874172185435, + 0.014620000000000001, + 0.015622516556291394 + ], + "IA Power_0": [ + 2.82371523178808, + 2.627919999999998, + 2.594384105960263 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0654238410596033, + 2.8774133333333336, + 2.9334503311258278 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7174933333333328, + 0.7140993377483441, + 0.7276266666666661 + ], + "GT Power_0": [ + 0.1041266666666667, + 0.10378807947019864, + 0.10280000000000006 + ], + "IA Power_0": [ + 5.377233333333335, + 5.103662251655628, + 5.090066666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.795399999999999, + 5.455900662251654, + 5.531953333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7134933333333328, + 0.7130399999999992, + 0.7284333333333328 + ], + "GT Power_0": [ + 0.10309333333333338, + 0.10122000000000003, + 0.10092666666666668 + ], + "IA Power_0": [ + 5.12424, + 5.091193333333335, + 5.468460000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.482219999999999, + 5.5051533333333325, + 5.9524066666666675 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7704600000000007, + 0.7897933333333339, + 0.774766666666667 + ], + "GT Power_0": [ + 0.2237599999999999, + 0.22282666666666656, + 0.21783333333333346 + ], + "IA Power_0": [ + 5.46388666666667, + 5.260986666666666, + 5.8228199999999966 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.940900000000001, + 5.867120000000001, + 6.343073333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7192799999999996, + 0.7166399999999999, + 0.7175999999999996 + ], + "GT Power_0": [ + 0.10773333333333336, + 0.11069333333333338, + 0.10715333333333336 + ], + "IA Power_0": [ + 5.195879999999998, + 5.188173333333333, + 5.2467266666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.538713333333331, + 5.570666666666669, + 5.61436 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD179-A9", + "number": 4581, + "tests": [ + { + "DRAM Power_0": [ + 0.5889072847682119, + 0.6026423841059598, + 0.5899933774834433 + ], + "GT Power_0": [ + 0.04022516556291388, + 0.017172185430463578, + 0.017284768211920536 + ], + "IA Power_0": [ + 4.2992251655629135, + 4.771205298013244, + 4.23685430463576 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.579933774834437, + 5.293629139072853, + 4.524562913907284 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7150331125827817, + 0.7170733333333332, + 0.702298013245033 + ], + "GT Power_0": [ + 0.1252119205298013, + 0.1297866666666667, + 0.12742384105960264 + ], + "IA Power_0": [ + 7.53892715231788, + 7.348679999999999, + 8.532688741721856 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.956715231788078, + 7.703946666666664, + 8.963410596026488 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.699185430463576, + 0.7310529801324501, + 0.699503311258278 + ], + "GT Power_0": [ + 0.12591390728476823, + 0.12830463576158935, + 0.12545695364238418 + ], + "IA Power_0": [ + 8.985913907284768, + 9.134668874172183, + 8.916569536423841 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.413278145695369, + 10.110596026490072, + 9.305165562913903 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7648533333333334, + 0.7652847682119204, + 0.7629867549668878 + ], + "GT Power_0": [ + 0.2795666666666666, + 0.27911258278145706, + 0.2790993377483442 + ], + "IA Power_0": [ + 9.003686666666667, + 8.665523178807947, + 8.814211920529802 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.591813333333334, + 9.327880794701988, + 9.469947019867547 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7053466666666663, + 0.704596026490066, + 0.7060860927152313 + ], + "GT Power_0": [ + 0.13254666666666665, + 0.13530463576158938, + 0.1363708609271523 + ], + "IA Power_0": [ + 9.331533333333338, + 8.655496688741723, + 8.783807947019861 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.793380000000004, + 9.130145695364234, + 9.167708609271521 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD155-A9", + "number": 4580, + "tests": [ + { + "DRAM Power_0": [ + 0.5760794701986751, + 0.574953642384106, + 0.587013245033113 + ], + "GT Power_0": [ + 0.01428476821192053, + 0.014311258278145693, + 0.014172185430463575 + ], + "IA Power_0": [ + 2.920145695364238, + 2.994456953642383, + 2.906437086092715 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1750198675496697, + 3.2245496688741717, + 3.260311258278146 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7206821192052975, + 0.7190866666666662, + 0.7135066666666661 + ], + "GT Power_0": [ + 0.10648344370860922, + 0.10535333333333333, + 0.10381333333333337 + ], + "IA Power_0": [ + 5.967291390728477, + 6.53209333333333, + 5.8903266666666685 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.293781456953644, + 6.900313333333333, + 6.2413066666666674 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.713686666666666, + 0.7275599999999997, + 0.7143933333333333 + ], + "GT Power_0": [ + 0.10856000000000002, + 0.10403333333333335, + 0.10611999999999999 + ], + "IA Power_0": [ + 5.874513333333329, + 5.886806666666668, + 5.862399999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.233179999999998, + 6.37792, + 6.235900000000003 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7718211920529806, + 0.789675496688742, + 0.7732 + ], + "GT Power_0": [ + 0.22654966887417224, + 0.224748344370861, + 0.22923999999999983 + ], + "IA Power_0": [ + 6.5081523178807945, + 6.155788079470197, + 6.233366666666671 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.999311258278145, + 6.8553642384105995, + 6.731133333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7199533333333333, + 0.735344370860927, + 0.7180599999999995 + ], + "GT Power_0": [ + 0.12584666666666663, + 0.11029139072847675, + 0.10840666666666668 + ], + "IA Power_0": [ + 6.43883333333333, + 6.000529801324504, + 5.993660000000004 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.790120000000001, + 6.497920529801326, + 6.372266666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD175-A9", + "number": 4579, + "tests": [ + { + "DRAM Power_0": [ + 0.57536, + 0.5763533333333332, + 0.5852913907284768 + ], + "GT Power_0": [ + 0.014320000000000001, + 0.014906666666666669, + 0.014251655629139067 + ], + "IA Power_0": [ + 3.3070933333333326, + 2.9986666666666677, + 3.3275430463576163 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5466333333333333, + 3.24932, + 3.68317880794702 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.714426666666666, + 0.7122199999999995, + 0.7281799999999996 + ], + "GT Power_0": [ + 0.10207333333333343, + 0.10099333333333332, + 0.10081333333333335 + ], + "IA Power_0": [ + 5.844806666666668, + 5.9197400000000036, + 6.214453333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.249820000000004, + 6.278646666666665, + 6.711033333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7202533333333326, + 0.732596026490066, + 0.7146799999999996 + ], + "GT Power_0": [ + 0.10062000000000006, + 0.10228476821192059, + 0.09936000000000002 + ], + "IA Power_0": [ + 6.064886666666666, + 5.905701986754966, + 5.937646666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4442200000000005, + 6.380437086092713, + 6.308493333333335 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7713600000000005, + 0.7699600000000004, + 0.7865933333333337 + ], + "GT Power_0": [ + 0.23936666666666676, + 0.22819333333333322, + 0.2294133333333334 + ], + "IA Power_0": [ + 6.265306666666666, + 6.489153333333334, + 6.1543866666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.744099999999998, + 7.0025133333333365, + 6.843493333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7303599999999996, + 0.7196026490066221, + 0.7172799999999996 + ], + "GT Power_0": [ + 0.10395999999999998, + 0.10603311258278145, + 0.10400000000000002 + ], + "IA Power_0": [ + 6.1332866666666686, + 6.366523178807947, + 6.139546666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.5852466666666665, + 6.746158940397353, + 6.4408999999999965 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD133-A9", + "number": 4578, + "tests": [ + { + "DRAM Power_0": [ + 0.5769799999999998, + 0.5751258278145698, + 0.5805099337748344 + ], + "GT Power_0": [ + 0.040826666666666664, + 0.016086092715231783, + 0.01617880794701987 + ], + "IA Power_0": [ + 3.2239733333333325, + 2.802576158940395, + 2.8958278145695346 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6142, + 3.08403973509934, + 3.1488940397351 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7135599999999994, + 0.7238133333333331, + 0.7123774834437082 + ], + "GT Power_0": [ + 0.11780000000000003, + 0.11779333333333333, + 0.1184834437086093 + ], + "IA Power_0": [ + 5.736020000000002, + 5.528626666666666, + 5.474238410596024 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.123480000000002, + 6.01616, + 5.856880794701992 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.713246666666666, + 0.7153509933774826, + 0.713073333333333 + ], + "GT Power_0": [ + 0.11695333333333338, + 0.11764238410596031, + 0.11638000000000003 + ], + "IA Power_0": [ + 5.531786666666665, + 5.642701986754967, + 5.834573333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.905819999999998, + 6.012735099337748, + 6.179919999999999 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7698133333333333, + 0.784311258278146, + 0.7707666666666668 + ], + "GT Power_0": [ + 0.24194000000000002, + 0.2472781456953642, + 0.24690000000000012 + ], + "IA Power_0": [ + 5.672500000000002, + 5.738509933774839, + 5.960306666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.233426666666669, + 6.353291390728478, + 6.490486666666664 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7347466666666665, + 0.718543046357615, + 0.7188211920529797 + ], + "GT Power_0": [ + 0.12227999999999999, + 0.1255827814569536, + 0.13112582781456952 + ], + "IA Power_0": [ + 5.661833333333333, + 5.490900662251655, + 5.598582781456954 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.0522333333333345, + 5.887483443708608, + 5.984562913907288 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4577, + "tests": [ + { + "DRAM Power_0": [ + 0.58556, + 0.5898410596026488, + 0.5757350993377486 + ], + "GT Power_0": [ + 0.03889333333333332, + 0.012874172185430464, + 0.013794701986754969 + ], + "IA Power_0": [ + 3.1702733333333324, + 2.7913178807947028, + 2.744940397350995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.442206666666667, + 3.1439205298013246, + 3.019854304635764 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7147814569536421, + 0.7284635761589394, + 0.7140533333333327 + ], + "GT Power_0": [ + 0.08825827814569538, + 0.08742384105960267, + 0.09180666666666669 + ], + "IA Power_0": [ + 5.662900662251656, + 5.40872847682119, + 5.516153333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.999649006622515, + 5.843900662251656, + 5.885406666666672 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7127814569536421, + 0.7151456953642381, + 0.7151333333333324 + ], + "GT Power_0": [ + 0.09145033112582782, + 0.08996688741721853, + 0.0933866666666667 + ], + "IA Power_0": [ + 5.394503311258276, + 5.463450331125828, + 5.730306666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.809880794701991, + 5.8195099337748335, + 6.116953333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7721192052980136, + 0.770733333333334, + 0.7740993377483447 + ], + "GT Power_0": [ + 0.22090728476821206, + 0.19551333333333334, + 0.20435099337748347 + ], + "IA Power_0": [ + 5.647781456953643, + 5.636126666666664, + 5.954437086092716 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.123231788079468, + 6.100180000000002, + 6.477807947019871 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7187880794701982, + 0.7455599999999993, + 0.7185099337748345 + ], + "GT Power_0": [ + 0.09407947019867555, + 0.09291333333333335, + 0.0936688741721854 + ], + "IA Power_0": [ + 5.5352781456953615, + 5.837526666666666, + 5.525291390728474 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.868271523178809, + 6.312840000000003, + 5.866834437086093 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD168-A9", + "number": 4576, + "tests": [ + { + "DRAM Power_0": [ + 0.5896688741721859, + 0.574185430463576, + 0.5739337748344372 + ], + "GT Power_0": [ + 0.016, + 0.015304635761589407, + 0.015754966887417215 + ], + "IA Power_0": [ + 3.469748344370861, + 3.100490066225165, + 3.084735099337747 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8025033112582767, + 3.333304635761589, + 3.331225165562916 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7127350993377481, + 0.7116266666666661, + 0.7308733333333329 + ], + "GT Power_0": [ + 0.1190529801324503, + 0.11952666666666663, + 0.1206066666666667 + ], + "IA Power_0": [ + 6.364092715231789, + 6.093293333333336, + 6.157773333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.729556291390726, + 6.495080000000001, + 6.644613333333335 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7167133333333332, + 0.7306333333333326, + 0.7201733333333327 + ], + "GT Power_0": [ + 0.11782000000000008, + 0.11906666666666664, + 0.1158600000000001 + ], + "IA Power_0": [ + 6.223033333333335, + 6.089920000000002, + 7.043019999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.586619999999998, + 6.58504, + 7.390946666666665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7959466666666667, + 0.7746622516556292, + 0.7729533333333333 + ], + "GT Power_0": [ + 0.25042666666666674, + 0.2476423841059602, + 0.25084666666666666 + ], + "IA Power_0": [ + 6.378973333333335, + 6.379251655629142, + 6.5585466666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.03198, + 6.918562913907285, + 7.037466666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7204466666666661, + 0.7206666666666662, + 0.7335666666666665 + ], + "GT Power_0": [ + 0.1323666666666666, + 0.14950000000000002, + 0.12821999999999995 + ], + "IA Power_0": [ + 6.2787400000000035, + 6.321833333333332, + 6.291493333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.680360000000003, + 6.659873333333334, + 6.760820000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD118-A9", + "number": 4575, + "tests": [ + { + "DRAM Power_0": [ + 0.5845960264900663, + 0.5750198675496689, + 0.575132450331126 + ], + "GT Power_0": [ + 0.03764238410596026, + 0.014695364238410596, + 0.014629139072847682 + ], + "IA Power_0": [ + 2.939397350993376, + 2.799417218543046, + 2.872536423841059 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2868609271523175, + 3.0668741721854307, + 3.113582781456954 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7163907284768207, + 0.7121999999999997, + 0.7114999999999992 + ], + "GT Power_0": [ + 0.09629801324503309, + 0.09775333333333337, + 0.09523333333333336 + ], + "IA Power_0": [ + 5.7984635761589445, + 5.499246666666667, + 5.466513333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.174410596026491, + 5.831993333333334, + 5.86472 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7130529801324501, + 0.7140533333333328, + 0.7138807947019862 + ], + "GT Power_0": [ + 0.11860927152317888, + 0.09832666666666662, + 0.09903973509933778 + ], + "IA Power_0": [ + 5.513377483443708, + 5.517893333333336, + 5.57535761589404 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.848668874172185, + 5.892073333333333, + 5.940205298013244 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7714066666666669, + 0.7716200000000001, + 0.7715466666666666 + ], + "GT Power_0": [ + 0.22738666666666668, + 0.22246666666666676, + 0.22416000000000003 + ], + "IA Power_0": [ + 5.72322, + 5.694519999999997, + 5.901913333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.22018, + 6.167146666666665, + 6.47404 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7179733333333328, + 0.7431666666666669, + 0.7234599999999994 + ], + "GT Power_0": [ + 0.10665999999999999, + 0.10136666666666669, + 0.10717333333333336 + ], + "IA Power_0": [ + 5.525126666666667, + 5.55598, + 5.791713333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.929253333333331, + 6.388720000000003, + 6.2930600000000005 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4574, + "tests": [ + { + "DRAM Power_0": [ + 0.58117880794702, + 0.573688741721854, + 0.5744039735099337 + ], + "GT Power_0": [ + 0.04354304635761589, + 0.015880794701986754, + 0.018172185430463575 + ], + "IA Power_0": [ + 3.3605562913907288, + 3.2923576158940393, + 3.5903708609271527 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.65973509933775, + 3.500417218543047, + 3.845198675496688 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7122384105960263, + 0.7115466666666661, + 0.7117466666666662 + ], + "GT Power_0": [ + 0.12436423841059603, + 0.1241933333333333, + 0.12375333333333333 + ], + "IA Power_0": [ + 6.45448344370861, + 6.507326666666666, + 6.914866666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.822430463576161, + 6.895193333333335, + 7.287679999999997 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7115799999999995, + 0.7298266666666661, + 0.7113333333333329 + ], + "GT Power_0": [ + 0.11883333333333337, + 0.12042666666666677, + 0.12256666666666663 + ], + "IA Power_0": [ + 6.536973333333333, + 6.645406666666668, + 6.52564 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.903513333333331, + 7.131073333333335, + 6.903046666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7683866666666673, + 0.7702266666666675, + 0.7687866666666673 + ], + "GT Power_0": [ + 0.27230000000000015, + 0.27237333333333325, + 0.27210666666666666 + ], + "IA Power_0": [ + 6.775426666666667, + 7.217413333333332, + 6.804633333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.309880000000003, + 7.76370666666667, + 7.334720000000002 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7182133333333327, + 0.7212599999999996, + 0.718813333333333 + ], + "GT Power_0": [ + 0.12834666666666672, + 0.12929333333333343, + 0.12801333333333334 + ], + "IA Power_0": [ + 6.676986666666666, + 7.36852, + 6.6372800000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0429666666666675, + 7.7498333333333385, + 7.039340000000004 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4573, + "tests": [ + { + "DRAM Power_0": [ + 0.5827417218543043, + 0.5767599999999996, + 0.5753066666666662 + ], + "GT Power_0": [ + 0.05369536423841058, + 0.019180000000000003, + 0.020706666666666672 + ], + "IA Power_0": [ + 2.9177086092715223, + 2.9260066666666664, + 2.8945200000000013 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2993443708609274, + 3.206079999999998, + 3.13914 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7108599999999993, + 0.7100596026490059, + 0.7084199999999996 + ], + "GT Power_0": [ + 0.15162666666666672, + 0.14582781456953647, + 0.14331333333333335 + ], + "IA Power_0": [ + 5.824519999999997, + 5.420271523178809, + 5.467806666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.211806666666668, + 5.858006622516558, + 5.916760000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.70764, + 0.7090666666666663, + 0.7094466666666664 + ], + "GT Power_0": [ + 0.13622666666666672, + 0.14073999999999998, + 0.1417 + ], + "IA Power_0": [ + 5.695413333333334, + 5.576079999999999, + 5.697526666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.099520000000001, + 5.984659999999998, + 6.110626666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7643066666666669, + 0.7664635761589408, + 0.8130264900662254 + ], + "GT Power_0": [ + 0.3434533333333334, + 0.3247549668874171, + 0.3337284768211922 + ], + "IA Power_0": [ + 5.692906666666667, + 5.668139072847682, + 5.961615894039735 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.335286666666664, + 6.276225165562915, + 7.076529801324506 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7137019867549663, + 0.7480333333333329, + 0.7178266666666663 + ], + "GT Power_0": [ + 0.16758278145695357, + 0.16252666666666665, + 0.15017333333333335 + ], + "IA Power_0": [ + 5.568046357615896, + 7.368760000000001, + 6.109340000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.943245033112583, + 7.781666666666668, + 6.49419333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD161-A9", + "number": 4572, + "tests": [ + { + "DRAM Power_0": [ + 0.5924834437086098, + 0.5739735099337745, + 0.5734768211920528 + ], + "GT Power_0": [ + 0.01593377483443708, + 0.014688741721854304, + 0.014894039735099333 + ], + "IA Power_0": [ + 2.7458013245033115, + 2.9105298013245022, + 2.6369735099337737 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1132649006622537, + 3.130543046357615, + 2.8710264900662263 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7132199999999994, + 0.7261533333333329, + 0.7118733333333328 + ], + "GT Power_0": [ + 0.11075333333333333, + 0.10962666666666668, + 0.11042666666666669 + ], + "IA Power_0": [ + 5.02240666666667, + 5.256866666666666, + 5.006033333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.442646666666667, + 5.673286666666666, + 5.433293333333335 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7147666666666659, + 0.7119599999999999, + 0.7148066666666664 + ], + "GT Power_0": [ + 0.11080000000000005, + 0.10668666666666664, + 0.11205333333333335 + ], + "IA Power_0": [ + 5.024446666666666, + 5.27984666666667, + 5.0866999999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.433633333333332, + 5.661613333333334, + 5.448640000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7721133333333337, + 0.7861589403973513, + 0.7699266666666668 + ], + "GT Power_0": [ + 0.2361666666666666, + 0.2355033112582781, + 0.23224000000000003 + ], + "IA Power_0": [ + 5.237606666666668, + 5.155721854304636, + 5.1966800000000015 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.883986666666666, + 5.742066225165563, + 5.737793333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7205733333333332, + 0.7314266666666662, + 0.7192980132450326 + ], + "GT Power_0": [ + 0.11745333333333335, + 0.12109333333333339, + 0.1169337748344371 + ], + "IA Power_0": [ + 5.3473866666666705, + 5.172440000000002, + 5.111284768211919 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.719520000000003, + 5.645039999999997, + 5.461304635761589 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD142-A9", + "number": 4571, + "tests": [ + { + "DRAM Power_0": [ + 0.5728456375838923, + 0.5709194630872487, + 0.5711476510067112 + ], + "GT Power_0": [ + 0.013328859060402685, + 0.01270469798657718, + 0.012993288590604028 + ], + "IA Power_0": [ + 0.8459798657718124, + 0.921543624161074, + 0.8452013422818795 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 1.172496644295302, + 1.2462483221476508, + 1.1707248322147652 + ], + "name": "Basic", + "samples": [ + 149, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7268053691275166, + 0.736718120805369, + 0.7289866666666661 + ], + "GT Power_0": [ + 0.10601342281879196, + 0.10942953020134227, + 0.10698 + ], + "IA Power_0": [ + 1.3506577181208053, + 2.177684563758387, + 1.761493333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 1.801389261744966, + 2.6318389261744963, + 2.20112 + ], + "name": "Video_720_MP4", + "samples": [ + 149, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7255838926174492, + 0.7296375838926173, + 0.7274161073825497 + ], + "GT Power_0": [ + 0.1035369127516779, + 0.10606711409395979, + 0.10566442953020133 + ], + "IA Power_0": [ + 1.2928053691275163, + 1.4156510067114088, + 1.31303355704698 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 1.7324362416107382, + 1.8689395973154366, + 1.7582483221476506 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 149, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7939932885906043, + 0.7931879194630873, + 0.7924765100671143 + ], + "GT Power_0": [ + 0.25136241610738275, + 0.23930201342281868, + 0.2378791946308724 + ], + "IA Power_0": [ + 1.42338255033557, + 1.4136040268456374, + 1.3226308724832214 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.0355838926174497, + 2.0253422818791935, + 1.9339194630872492 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 149, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7299395973154356, + 0.725953333333333, + 0.7247315436241604 + ], + "GT Power_0": [ + 0.11253020134228188, + 0.1131466666666667, + 0.11151006711409402 + ], + "IA Power_0": [ + 1.659563758389262, + 1.3337066666666662, + 1.3058255033557045 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.114275167785235, + 1.779753333333335, + 1.7510067114093955 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 149, + 150, + 149 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4570, + "tests": [ + { + "DRAM Power_0": [ + 0.5849133333333337, + 0.5749466666666667, + 0.5766092715231785 + ], + "GT Power_0": [ + 0.036246666666666656, + 0.012993333333333329, + 0.014556291390728476 + ], + "IA Power_0": [ + 3.3297466666666655, + 3.0856400000000006, + 3.126039735099338 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.636873333333334, + 3.3298333333333336, + 3.3379006622516547 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7295199999999993, + 0.7120599999999994, + 0.7116333333333327 + ], + "GT Power_0": [ + 0.09954666666666673, + 0.09710666666666667, + 0.09862666666666668 + ], + "IA Power_0": [ + 6.093613333333339, + 6.324860000000001, + 6.077733333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.5758333333333345, + 6.626893333333336, + 6.413086666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145733333333332, + 0.7295666666666665, + 0.7329867549668869 + ], + "GT Power_0": [ + 0.0984866666666667, + 0.09846000000000002, + 0.10157615894039736 + ], + "IA Power_0": [ + 6.065020000000002, + 6.366493333333335, + 6.064397350993377 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.387740000000002, + 6.842760000000006, + 6.639814569536425 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7708741721854306, + 0.7924800000000005, + 0.7729735099337752 + ], + "GT Power_0": [ + 0.2226887417218543, + 0.22030000000000005, + 0.22180132450331128 + ], + "IA Power_0": [ + 6.22808609271523, + 6.187119999999997, + 6.338993377483447 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.734629139072848, + 6.745219999999999, + 6.827927152317883 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7253466666666665, + 0.7203708609271517, + 0.7273087248322144 + ], + "GT Power_0": [ + 0.10362000000000002, + 0.10356953642384105, + 0.10637583892617455 + ], + "IA Power_0": [ + 6.534640000000001, + 6.161278145695365, + 6.812181208053691 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8934733333333345, + 6.515205298013243, + 7.130966442953023 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 149 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4569, + "tests": [ + { + "DRAM Power_0": [ + 0.5915364238410594, + 0.570271523178808, + 0.5762913907284768 + ], + "GT Power_0": [ + 0.01652980132450331, + 0.015125827814569538, + 0.01734437086092715 + ], + "IA Power_0": [ + 3.7501258278145695, + 3.149748344370863, + 3.7673311258278157 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.132125827814568, + 3.3887218543046345, + 4.003821192052978 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7127933333333328, + 0.7151066666666662, + 0.7125933333333329 + ], + "GT Power_0": [ + 0.11958000000000006, + 0.1205266666666667, + 0.11620666666666662 + ], + "IA Power_0": [ + 6.613166666666667, + 6.69998, + 6.983920000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.984106666666665, + 7.077826666666673, + 7.376380000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712686666666666, + 0.7135099337748338, + 0.7147133333333331 + ], + "GT Power_0": [ + 0.1180533333333334, + 0.1189933774834438, + 0.11883333333333333 + ], + "IA Power_0": [ + 6.692173333333332, + 6.731284768211919, + 6.712613333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0572733333333355, + 7.092218543046359, + 7.0883266666666636 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7866622516556298, + 0.7731059602649005, + 0.7713443708609274 + ], + "GT Power_0": [ + 0.2510596026490067, + 0.25831788079470186, + 0.2551125827814572 + ], + "IA Power_0": [ + 6.981629139072847, + 6.9727615894039765, + 7.003410596026491 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.643357615894041, + 7.50213907284768, + 7.5425960264900676 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7335033112582776, + 0.7187466666666658, + 0.7193666666666666 + ], + "GT Power_0": [ + 0.1246556291390729, + 0.12384666666666673, + 0.12582 + ], + "IA Power_0": [ + 6.783662251655625, + 7.231833333333337, + 6.796013333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.313503311258278, + 7.600053333333331, + 7.15705333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD149-A9", + "number": 4568, + "tests": [ + { + "DRAM Power_0": [ + 0.5850133333333329, + 0.5762266666666669, + 0.5740733333333333 + ], + "GT Power_0": [ + 0.037853333333333315, + 0.01577333333333334, + 0.015586666666666667 + ], + "IA Power_0": [ + 3.972573333333332, + 3.428593333333333, + 3.3436733333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.32912, + 3.6635933333333304, + 3.5876333333333332 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.727533333333333, + 0.7231799999999995, + 0.711693333333333 + ], + "GT Power_0": [ + 0.11218666666666668, + 0.11375333333333323, + 0.11066000000000002 + ], + "IA Power_0": [ + 6.747620000000001, + 6.809260000000002, + 7.12306666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.2512333333333325, + 7.307573333333331, + 7.457733333333335 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7126199999999995, + 0.7130866666666662, + 0.7157666666666661 + ], + "GT Power_0": [ + 0.11066000000000002, + 0.1095266666666667, + 0.11092 + ], + "IA Power_0": [ + 6.710633333333331, + 6.821513333333329, + 7.6240066666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.095486666666669, + 7.175846666666661, + 7.965373333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7836000000000006, + 0.7764466666666671, + 0.7690533333333337 + ], + "GT Power_0": [ + 0.2679333333333333, + 0.2596866666666667, + 0.29931333333333326 + ], + "IA Power_0": [ + 7.129726666666667, + 7.059973333333335, + 7.116073333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.817413333333333, + 7.6057533333333325, + 7.605873333333337 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7286533333333328, + 0.7166399999999998, + 0.7176533333333331 + ], + "GT Power_0": [ + 0.13017333333333328, + 0.12049333333333333, + 0.11906000000000004 + ], + "IA Power_0": [ + 6.989306666666667, + 7.270553333333336, + 6.849739999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.496799999999997, + 7.640559999999999, + 7.2229933333333305 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD137-A9", + "number": 4567, + "tests": [ + { + "DRAM Power_0": [ + 0.5763178807947016, + 0.5749933774834435, + 0.5746423841059601 + ], + "GT Power_0": [ + 0.04358278145695364, + 0.014615894039735096, + 0.01478145695364238 + ], + "IA Power_0": [ + 3.8540794701986725, + 3.4186887417218528, + 3.435688741721855 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.103059602649006, + 3.6750132450331106, + 3.665728476821194 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7140397350993374, + 0.6489000000000001, + 0.6482933333333339 + ], + "GT Power_0": [ + 0.10341059602649011, + 0.10499333333333333, + 0.10155333333333337 + ], + "IA Power_0": [ + 7.237642384105962, + 16.88030666666666, + 17.005073333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.578397350993377, + 17.213413333333328, + 17.28997999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.731013245033112, + 0.7121933333333329, + 0.7134533333333329 + ], + "GT Power_0": [ + 0.10562251655629144, + 0.10472666666666668, + 0.10092666666666666 + ], + "IA Power_0": [ + 7.0882980132450335, + 7.0122800000000005, + 7.2507733333333375 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.634536423841063, + 7.324066666666664, + 7.619926666666663 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7691986754966891, + 0.7808933333333334, + 0.7976266666666666 + ], + "GT Power_0": [ + 0.22834437086092718, + 0.2507066666666667, + 0.2539933333333334 + ], + "IA Power_0": [ + 7.127602649006621, + 7.165653333333333, + 7.527513333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.629456953642381, + 7.657639999999998, + 7.996099999999995 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7355231788079464, + 0.7363377483443704, + 0.7174066666666659 + ], + "GT Power_0": [ + 0.11421854304635763, + 0.10837086092715233, + 0.10578000000000003 + ], + "IA Power_0": [ + 6.943496688741722, + 7.01449006622517, + 7.109506666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.42780794701987, + 7.499112582781458, + 7.4090666666666705 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD157-A9", + "number": 4566, + "tests": [ + { + "DRAM Power_0": [ + 0.5835033112582777, + 0.5747350993377484, + 0.5869466666666665 + ], + "GT Power_0": [ + 0.035456953642384076, + 0.0156158940397351, + 0.015813333333333335 + ], + "IA Power_0": [ + 3.1463311258278144, + 3.095874172185431, + 3.711613333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5066622516556296, + 3.328788079470199, + 3.9468599999999983 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7139536423841055, + 0.7127466666666661, + 0.7127666666666661 + ], + "GT Power_0": [ + 0.11605298013245036, + 0.11131333333333338, + 0.11326000000000003 + ], + "IA Power_0": [ + 6.061721854304637, + 6.4154866666666654, + 6.06018 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4188410596026495, + 6.770893333333331, + 6.551420000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7149867549668872, + 0.7129470198675494, + 0.7338933333333327 + ], + "GT Power_0": [ + 0.11350993377483447, + 0.11441721854304632, + 0.11501333333333333 + ], + "IA Power_0": [ + 6.092973509933774, + 6.3390662251655625, + 6.238713333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4652384105960214, + 6.723562913907282, + 6.674333333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7698666666666669, + 0.7699933333333336, + 0.773019867549669 + ], + "GT Power_0": [ + 0.24152666666666667, + 0.24067333333333332, + 0.24706622516556304 + ], + "IA Power_0": [ + 6.231046666666668, + 6.240299999999999, + 6.253523178807946 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.745706666666664, + 6.742046666666668, + 6.768682119205298 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7198211920529797, + 0.7187086092715229, + 0.7178266666666662 + ], + "GT Power_0": [ + 0.1209403973509934, + 0.1196357615894039, + 0.11591333333333324 + ], + "IA Power_0": [ + 6.508940397350991, + 6.113960264900664, + 6.191726666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.856397350993376, + 6.463026490066224, + 6.528986666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4565, + "tests": [ + { + "DRAM Power_0": [ + 0.5766442953020133, + 0.5991466666666662, + 0.5747682119205297 + ], + "GT Power_0": [ + 0.036033557046979865, + 0.013666666666666669, + 0.014933774834437082 + ], + "IA Power_0": [ + 3.20463087248322, + 3.7943666666666664, + 3.047132450331125 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4555637583892627, + 4.15572, + 3.303013245033112 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7311986754966887, + 0.7142333333333329, + 0.7129205298013238 + ], + "GT Power_0": [ + 0.1072185430463576, + 0.10923333333333332, + 0.10547682119205304 + ], + "IA Power_0": [ + 6.330496688741722, + 5.8485266666666655, + 5.997324503311257 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.764125827814565, + 6.278793333333338, + 6.350536423841062 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7131599999999993, + 0.7117466666666663, + 0.7119199999999994 + ], + "GT Power_0": [ + 0.09950666666666667, + 0.10254000000000005, + 0.10229333333333335 + ], + "IA Power_0": [ + 6.274420000000002, + 5.971973333333336, + 5.917659999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.597546666666665, + 6.302066666666668, + 6.280766666666665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7786158940397353, + 0.8065866666666673, + 0.7892733333333339 + ], + "GT Power_0": [ + 0.2306887417218544, + 0.22421999999999997, + 0.22344666666666663 + ], + "IA Power_0": [ + 6.454576158940397, + 8.650733333333335, + 7.374653333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.991006622516557, + 9.208539999999992, + 8.004079999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7243333333333325, + 0.7283333333333333, + 0.7444199999999994 + ], + "GT Power_0": [ + 0.11372000000000007, + 0.11302666666666669, + 0.1089133333333333 + ], + "IA Power_0": [ + 7.0921466666666655, + 6.99896, + 7.111206666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.555213333333339, + 7.4531933333333305, + 7.646699999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD176-A9", + "number": 4564, + "tests": [ + { + "DRAM Power_0": [ + 0.5630264900662252, + 0.5158543046357618, + 0.5176622516556295 + ], + "GT Power_0": [ + 0.054814569536423816, + 0.01540397350993377, + 0.014980132450331128 + ], + "IA Power_0": [ + 5.853066225165563, + 10.774986754966879, + 10.775794701986763 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.321708609271525, + 10.967913907284768, + 10.99129139072848 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.6485733333333334, + 0.6692600000000003, + 0.6833200000000003 + ], + "GT Power_0": [ + 0.10322000000000008, + 0.10564000000000004, + 0.10352000000000003 + ], + "IA Power_0": [ + 12.112900000000003, + 12.30283333333333, + 11.399606666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 12.425, + 12.967326666666667, + 11.722666666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7123199999999996, + 0.7160866666666665, + 0.7148066666666663 + ], + "GT Power_0": [ + 0.09913333333333335, + 0.10270000000000001, + 0.10190000000000002 + ], + "IA Power_0": [ + 5.084033333333333, + 5.673193333333334, + 5.0837 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.467326666666667, + 6.037179999999999, + 5.47361333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.770629139072848, + 0.7701266666666665, + 0.789264900662252 + ], + "GT Power_0": [ + 0.2242847682119205, + 0.22640666666666676, + 0.22198013245033102 + ], + "IA Power_0": [ + 5.295490066225164, + 5.1478533333333285, + 5.502927152317881 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.782437086092716, + 5.725953333333334, + 6.138788079470199 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7183178807947014, + 0.7363199999999995, + 0.7238733333333333 + ], + "GT Power_0": [ + 0.10750993377483445, + 0.10846666666666674, + 0.11806666666666672 + ], + "IA Power_0": [ + 5.409841059602648, + 5.510840000000002, + 5.306619999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.774370860927153, + 5.9591666666666665, + 5.6983733333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD147-A9", + "number": 4563, + "tests": [ + { + "DRAM Power_0": [ + 0.5753599999999999, + 0.5730866666666667, + 0.5732399999999997 + ], + "GT Power_0": [ + 0.015333333333333332, + 0.015273333333333333, + 0.015086666666666667 + ], + "IA Power_0": [ + 2.705593333333334, + 2.5710866666666665, + 2.6589733333333325 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.9535199999999997, + 2.839406666666666, + 2.904140000000001 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7124503311258273, + 0.7357799999999994, + 0.7273466666666658 + ], + "GT Power_0": [ + 0.12356953642384103, + 0.12404666666666678, + 0.12401333333333338 + ], + "IA Power_0": [ + 5.466370860927152, + 5.5563733333333305, + 5.218693333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.887437086092714, + 6.0019199999999975, + 5.7103399999999995 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7215799999999997, + 0.7301258278145688, + 0.7271133333333327 + ], + "GT Power_0": [ + 0.13656, + 0.12590728476821192, + 0.12801999999999997 + ], + "IA Power_0": [ + 5.28356, + 5.417410596026491, + 5.577540000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.743693333333332, + 5.874086092715231, + 6.05597333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7875666666666669, + 0.7706466666666668, + 0.7707666666666672 + ], + "GT Power_0": [ + 0.25367333333333336, + 0.25782000000000005, + 0.25087333333333345 + ], + "IA Power_0": [ + 5.48114, + 5.428233333333335, + 5.753893333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.039339999999997, + 5.965839999999998, + 6.263399999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7175133333333328, + 0.7334199999999993, + 0.7190133333333331 + ], + "GT Power_0": [ + 0.13096666666666668, + 0.13108666666666666, + 0.1316866666666666 + ], + "IA Power_0": [ + 5.340000000000001, + 5.306166666666665, + 5.386246666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.739659999999997, + 5.756980000000001, + 5.778900000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4562, + "tests": [ + { + "DRAM Power_0": [ + 0.5843733333333331, + 0.574788079470198, + 0.5749337748344369 + ], + "GT Power_0": [ + 0.03202666666666665, + 0.013476821192052981, + 0.013999999999999997 + ], + "IA Power_0": [ + 2.9948266666666665, + 2.579205298013245, + 2.5917748344370874 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.367706666666667, + 2.8421059602649006, + 2.8434966887417237 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.714406666666666, + 0.7134466666666666, + 0.7181258278145694 + ], + "GT Power_0": [ + 0.09608, + 0.09448, + 0.094112582781457 + ], + "IA Power_0": [ + 5.367993333333332, + 5.131466666666668, + 5.7515695364238395 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.757473333333336, + 5.499013333333335, + 6.106748344370864 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7141986754966881, + 0.714238410596026, + 0.7290066666666662 + ], + "GT Power_0": [ + 0.09361589403973512, + 0.0942317880794702, + 0.09210000000000002 + ], + "IA Power_0": [ + 5.165629139072848, + 5.154152317880795, + 5.464333333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.534768211920531, + 5.548450331125827, + 5.934806666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7717933333333334, + 0.7728333333333339, + 0.7810000000000007 + ], + "GT Power_0": [ + 0.20348, + 0.2026466666666667, + 0.22146000000000002 + ], + "IA Power_0": [ + 5.398819999999998, + 5.430599999999999, + 5.356846666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.896159999999998, + 5.919413333333334, + 5.912913333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7203799999999995, + 0.7216866666666663, + 0.7190999999999993 + ], + "GT Power_0": [ + 0.09659999999999999, + 0.09523333333333335, + 0.09576000000000004 + ], + "IA Power_0": [ + 5.300246666666664, + 5.647706666666666, + 5.293646666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.655206666666666, + 5.990480000000001, + 5.620933333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD180-A9", + "number": 4561, + "tests": [ + { + "DRAM Power_0": [ + 0.5751399999999999, + 0.5742980132450329, + 0.574609271523179 + ], + "GT Power_0": [ + 0.04002666666666664, + 0.016973509933774836, + 0.016364238410596026 + ], + "IA Power_0": [ + 3.3168333333333324, + 3.264655629139071, + 3.214582781456953 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.556780000000001, + 3.4954437086092724, + 3.4570463576158956 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7223599999999991, + 0.7277880794701981, + 0.7327880794701983 + ], + "GT Power_0": [ + 0.11875333333333335, + 0.12142384105960273, + 0.11825165562913909 + ], + "IA Power_0": [ + 6.399680000000003, + 6.555139072847683, + 6.39226490066225 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7816399999999994, + 7.057397350993374, + 7.2535894039735105 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7123399999999992, + 0.7372715231788073, + 0.7112781456953637 + ], + "GT Power_0": [ + 0.11856000000000001, + 0.12196026490066222, + 0.1271655629139073 + ], + "IA Power_0": [ + 6.382213333333332, + 7.475516556291394, + 6.388225165562914 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.748386666666662, + 7.966688741721853, + 6.770615894039733 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7652980132450332, + 0.7682450331125831, + 0.7807800000000003 + ], + "GT Power_0": [ + 0.2635430463576158, + 0.2878079470198675, + 0.26475333333333334 + ], + "IA Power_0": [ + 6.635708609271523, + 6.9085430463576145, + 6.615199999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.158715231788076, + 7.44576158940397, + 7.2627199999999945 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7161199999999995, + 0.7152582781456951, + 0.7397533333333329 + ], + "GT Power_0": [ + 0.13375333333333336, + 0.13064238410596019, + 0.1263933333333333 + ], + "IA Power_0": [ + 6.488046666666666, + 6.559847682119203, + 6.57386 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.853959999999999, + 6.895410596026494, + 7.266486666666664 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD177-A9", + "number": 4560, + "tests": [ + { + "DRAM Power_0": [ + 0.5846133333333331, + 0.5761258278145692, + 0.5757399999999997 + ], + "GT Power_0": [ + 0.03640666666666667, + 0.014609271523178808, + 0.014480000000000002 + ], + "IA Power_0": [ + 3.3592599999999986, + 3.2886754966887404, + 3.3191 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.691333333333336, + 3.5266026490066222, + 3.5290466666666664 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145066666666661, + 0.7149470198675494, + 0.7128599999999997 + ], + "GT Power_0": [ + 0.09566000000000002, + 0.09782781456953647, + 0.09683333333333337 + ], + "IA Power_0": [ + 6.217933333333332, + 6.667092715231792, + 6.305700000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.553499999999996, + 6.970417218543043, + 6.626106666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7139271523178804, + 0.7276754966887414, + 0.711536423841059 + ], + "GT Power_0": [ + 0.09864900662251655, + 0.09922516556291393, + 0.1000132450331126 + ], + "IA Power_0": [ + 6.324913907284764, + 6.612847682119209, + 6.4020927152317855 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.667238410596029, + 7.006966887417219, + 6.6863112582781445 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7742200000000004, + 0.7735333333333339, + 0.7710333333333339 + ], + "GT Power_0": [ + 0.22743999999999995, + 0.22462000000000007, + 0.22228666666666677 + ], + "IA Power_0": [ + 6.539306666666665, + 6.713613333333334, + 6.450566666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.022319999999997, + 7.155606666666666, + 6.933926666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172266666666665, + 0.7335799999999991, + 0.7182599999999996 + ], + "GT Power_0": [ + 0.10020000000000003, + 0.10497333333333334, + 0.10469333333333335 + ], + "IA Power_0": [ + 6.832859999999999, + 6.404020000000003, + 6.41124 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.124460000000001, + 6.848086666666668, + 6.751846666666665 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD164-A9", + "number": 4559, + "tests": [ + { + "DRAM Power_0": [ + 0.5747466666666667, + 0.5915099337748345, + 0.5741799999999995 + ], + "GT Power_0": [ + 0.03657333333333331, + 0.015589403973509934, + 0.014946666666666667 + ], + "IA Power_0": [ + 3.0490399999999998, + 3.04328476821192, + 3.313326666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.295986666666667, + 3.5038807947019874, + 3.583966666666665 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7136133333333328, + 0.7331066666666662, + 0.7286666666666666 + ], + "GT Power_0": [ + 0.11610000000000006, + 0.11463333333333334, + 0.11830666666666668 + ], + "IA Power_0": [ + 5.984933333333338, + 5.903853333333335, + 6.670099999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.325919999999998, + 6.565213333333334, + 7.195593333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7147533333333328, + 0.7119533333333327, + 0.7137999999999995 + ], + "GT Power_0": [ + 0.11556666666666669, + 0.11371333333333335, + 0.11664666666666672 + ], + "IA Power_0": [ + 5.963380000000001, + 5.952526666666664, + 5.862513333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.335819999999997, + 6.294993333333338, + 6.260413333333336 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7692913907284771, + 0.7806953642384115, + 0.7711733333333335 + ], + "GT Power_0": [ + 0.27853642384105975, + 0.24641059602649024, + 0.24748000000000003 + ], + "IA Power_0": [ + 6.12544370860927, + 6.455059602649004, + 6.129173333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.669596026490068, + 7.033523178807946, + 6.686033333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7191199999999995, + 0.716807947019867, + 0.7174466666666661 + ], + "GT Power_0": [ + 0.12616000000000005, + 0.12043046357615893, + 0.12680666666666668 + ], + "IA Power_0": [ + 6.044020000000001, + 6.301450331125827, + 6.112139999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4144799999999975, + 6.681894039735099, + 6.39382 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD162-A9", + "number": 4558, + "tests": [ + { + "DRAM Power_0": [ + 0.5765333333333331, + 0.5760799999999999, + 0.5903 + ], + "GT Power_0": [ + 0.04070666666666667, + 0.015566666666666663, + 0.014673333333333333 + ], + "IA Power_0": [ + 3.0035200000000017, + 2.714453333333332, + 2.8290466666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2672400000000006, + 2.9633799999999995, + 3.1492333333333327 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7219333333333325, + 0.7152066666666667, + 0.7152199999999996 + ], + "GT Power_0": [ + 0.11679999999999997, + 0.11754, + 0.1137133333333333 + ], + "IA Power_0": [ + 5.320146666666668, + 5.252613333333333, + 5.519093333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.779093333333335, + 5.63904, + 5.903086666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7144533333333324, + 0.7292199999999995, + 0.7157086092715228 + ], + "GT Power_0": [ + 0.11892666666666664, + 0.11890666666666667, + 0.12193377483443708 + ], + "IA Power_0": [ + 5.376206666666666, + 5.253586666666672, + 5.615635761589405 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.712893333333333, + 5.754213333333331, + 5.962258278145699 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7896688741721859, + 0.7867000000000001, + 0.7777284768211921 + ], + "GT Power_0": [ + 0.24807947019867546, + 0.25073333333333336, + 0.25118543046357605 + ], + "IA Power_0": [ + 5.4758874172185426, + 6.910606666666666, + 5.602960264900662 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.130966887417217, + 7.483826666666669, + 6.162139072847683 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.733781456953642, + 0.7198133333333325, + 0.7194304635761588 + ], + "GT Power_0": [ + 0.12506622516556293, + 0.12223999999999999, + 0.12213907284768218 + ], + "IA Power_0": [ + 5.399827814569535, + 5.544533333333336, + 5.286503311258279 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9172715231788064, + 5.92678, + 5.68746357615894 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD159-A9", + "number": 4557, + "tests": [ + { + "DRAM Power_0": [ + 0.5848599999999996, + 0.5861721854304633, + 0.5750596026490065 + ], + "GT Power_0": [ + 0.03805333333333332, + 0.014410596026490065, + 0.01532450331125828 + ], + "IA Power_0": [ + 3.2011600000000016, + 2.526880794701985, + 2.673331125827814 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.561253333333334, + 2.8689668874172183, + 2.9558344370860907 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7191933333333328, + 0.7137199999999995, + 0.7127284768211919 + ], + "GT Power_0": [ + 0.11943333333333347, + 0.1174266666666667, + 0.12066887417218548 + ], + "IA Power_0": [ + 5.706840000000001, + 5.174366666666668, + 5.1301456953642415 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.062440000000004, + 5.539840000000001, + 5.544331125827815 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7124172185430457, + 0.7347666666666665, + 0.7205695364238406 + ], + "GT Power_0": [ + 0.11819867549668878, + 0.12686666666666677, + 0.11392715231788081 + ], + "IA Power_0": [ + 5.092496688741722, + 5.279153333333333, + 5.410105960264899 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.504178807947019, + 5.995940000000001, + 5.847860927152318 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7701266666666675, + 0.7975894039735102, + 0.7895800000000005 + ], + "GT Power_0": [ + 0.2375933333333333, + 0.24301324503311253, + 0.27590666666666674 + ], + "IA Power_0": [ + 5.331080000000001, + 5.374317880794702, + 5.705720000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.890880000000001, + 6.234225165562915, + 6.292446666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7194900662251652, + 0.718893333333333, + 0.7372266666666664 + ], + "GT Power_0": [ + 0.12893377483443713, + 0.13014, + 0.1272066666666666 + ], + "IA Power_0": [ + 5.227026490066226, + 5.291146666666667, + 5.1862866666666685 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.611940397350994, + 5.623693333333331, + 5.709659999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD174-A9", + "number": 4556, + "tests": [ + { + "DRAM Power_0": [ + 0.5753443708609269, + 0.5754503311258278, + 0.595596026490066 + ], + "GT Power_0": [ + 0.05068211920529799, + 0.016516556291390726, + 0.01624503311258278 + ], + "IA Power_0": [ + 3.2267880794701993, + 3.2729470198675497, + 3.5451258278145694 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.49158940397351, + 3.515245033112583, + 3.984264900662252 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7286666666666661, + 0.7216133333333324, + 0.711573333333333 + ], + "GT Power_0": [ + 0.11556, + 0.1189733333333333, + 0.11563999999999998 + ], + "IA Power_0": [ + 6.329946666666664, + 6.378606666666665, + 6.710213333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.780826666666666, + 6.809320000000001, + 7.0176933333333364 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7131599999999998, + 0.7101666666666661, + 0.7194370860927147 + ], + "GT Power_0": [ + 0.11633999999999999, + 0.11230000000000004, + 0.11203311258278154 + ], + "IA Power_0": [ + 6.3994800000000005, + 6.39988, + 6.979483443708611 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.728113333333329, + 6.733146666666666, + 7.379536423841063 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7724600000000007, + 0.7713333333333338, + 0.7866953642384106 + ], + "GT Power_0": [ + 0.2564, + 0.25734, + 0.25603973509933786 + ], + "IA Power_0": [ + 6.744800000000006, + 6.6511599999999955, + 6.594860927152316 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.272099999999999, + 7.1651866666666635, + 7.273629139072847 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7321390728476818, + 0.727218543046357, + 0.734980132450331 + ], + "GT Power_0": [ + 0.12360264900662254, + 0.12279470198675503, + 0.12520529801324504 + ], + "IA Power_0": [ + 6.3947483443708615, + 6.848794701986754, + 6.529582781456956 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.887172185430466, + 7.289715231788083, + 7.2287748344370835 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD141-A9", + "number": 4555, + "tests": [ + { + "DRAM Power_0": [ + 0.5752533333333333, + 0.5892781456953642, + 0.5868675496688742 + ], + "GT Power_0": [ + 0.04172666666666665, + 0.01458278145695364, + 0.014403973509933774 + ], + "IA Power_0": [ + 3.6782200000000014, + 3.2395298013245033, + 3.2458940397351004 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9113666666666655, + 3.599900662251656, + 3.5323443708609275 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7110133333333328, + 0.7114238410596022, + 0.7293533333333327 + ], + "GT Power_0": [ + 0.10705333333333338, + 0.10744370860927148, + 0.1069066666666667 + ], + "IA Power_0": [ + 6.840933333333332, + 6.49513245033113, + 6.522133333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.199846666666666, + 6.840993377483442, + 6.990993333333329 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7272715231788076, + 0.7113199999999992, + 0.7126357615894032 + ], + "GT Power_0": [ + 0.10663576158940402, + 0.10718000000000011, + 0.10970198675496692 + ], + "IA Power_0": [ + 6.542668874172188, + 6.555606666666668, + 6.834397350993376 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.964198675496688, + 6.862486666666668, + 7.183205298013242 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7713466666666672, + 0.7739668874172188, + 0.7825562913907282 + ], + "GT Power_0": [ + 0.23332000000000003, + 0.22891390728476832, + 0.22935099337748346 + ], + "IA Power_0": [ + 6.790280000000004, + 6.83456953642384, + 7.073867549668871 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.2600066666666665, + 7.366940397350993, + 7.647993377483443 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7178874172185428, + 0.7179199999999998, + 0.7182185430463576 + ], + "GT Power_0": [ + 0.1264635761589404, + 0.11515333333333329, + 0.11621854304635763 + ], + "IA Power_0": [ + 6.61370860927152, + 6.631786666666666, + 6.616907284768209 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.989913907284773, + 6.974306666666664, + 7.025655629139073 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD21-B1", + "number": 4554, + "tests": [ + { + "DRAM Power_0": [ + 0.5842133333333329, + 0.5864333333333333, + 0.5742400000000002 + ], + "GT Power_0": [ + 0.04624666666666664, + 0.014813333333333328, + 0.01392 + ], + "IA Power_0": [ + 2.9821066666666654, + 2.855806666666667, + 3.1578666666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.562593333333334, + 4.391206666666668, + 4.621513333333336 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7123333333333325, + 0.7231199999999998, + 0.7149668874172179 + ], + "GT Power_0": [ + 0.10895999999999999, + 0.10633333333333339, + 0.11043046357615895 + ], + "IA Power_0": [ + 5.568133333333334, + 6.018320000000001, + 5.87141059602649 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.109620000000001, + 7.56314, + 7.4303046357615905 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7207533333333326, + 0.7359333333333329, + 0.7143999999999995 + ], + "GT Power_0": [ + 0.10805333333333329, + 0.12569333333333335, + 0.1107266666666667 + ], + "IA Power_0": [ + 5.868659999999998, + 5.669326666666668, + 5.534233333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.385420000000001, + 7.578239999999999, + 7.1079466666666695 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7717533333333336, + 0.7710866666666667, + 0.7718200000000004 + ], + "GT Power_0": [ + 0.23957999999999993, + 0.23801333333333333, + 0.2391800000000002 + ], + "IA Power_0": [ + 5.773566666666667, + 6.085346666666667, + 5.827846666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.477066666666669, + 7.766179999999998, + 7.513580000000002 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7205933333333329, + 0.7631399999999998, + 0.7343599999999992 + ], + "GT Power_0": [ + 0.11870666666666663, + 0.12491333333333339, + 0.11640000000000003 + ], + "IA Power_0": [ + 5.662226666666664, + 6.093480000000001, + 5.674533333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.218079999999999, + 7.840573333333331, + 7.376753333333328 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4553, + "tests": [ + { + "DRAM Power_0": [ + 0.5829470198675497, + 0.5747615894039737, + 0.5749139072847678 + ], + "GT Power_0": [ + 0.04031125827814567, + 0.01643046357615894, + 0.017986754966887415 + ], + "IA Power_0": [ + 3.0593774834437104, + 2.9351258278145687, + 3.329529801324504 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.390476821192053, + 3.1885827814569505, + 3.5596953642384106 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7101589403973503, + 0.7096066666666666, + 0.7294533333333327 + ], + "GT Power_0": [ + 0.11725165562913915, + 0.11739999999999999, + 0.11598000000000001 + ], + "IA Power_0": [ + 5.741238410596024, + 5.806173333333335, + 5.944906666666661 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.1240662251655635, + 6.187046666666666, + 6.356426666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7260333333333325, + 0.7320133333333326, + 0.7114999999999996 + ], + "GT Power_0": [ + 0.11611333333333339, + 0.1131933333333333, + 0.11710666666666668 + ], + "IA Power_0": [ + 5.777446666666666, + 6.107886666666665, + 5.855073333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2248866666666665, + 6.780926666666664, + 6.230879999999996 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7697733333333343, + 0.7730600000000004, + 0.7834466666666672 + ], + "GT Power_0": [ + 0.27485333333333334, + 0.27242, + 0.2721466666666667 + ], + "IA Power_0": [ + 6.09960666666667, + 6.707206666666669, + 6.086593333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.639253333333336, + 7.236626666666664, + 6.773600000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7351456953642382, + 0.7176933333333331, + 0.7187549668874172 + ], + "GT Power_0": [ + 0.12413907284768215, + 0.12077333333333333, + 0.12490728476821185 + ], + "IA Power_0": [ + 5.894973509933777, + 6.27671333333333, + 5.970417218543045 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.540516556291392, + 6.617773333333332, + 6.348218543046358 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD120-A9", + "number": 4552, + "tests": [ + { + "DRAM Power_0": [ + 0.5838399999999999, + 0.5749271523178809, + 0.5896953642384106 + ], + "GT Power_0": [ + 0.033586666666666654, + 0.015562913907284766, + 0.015841059602649008 + ], + "IA Power_0": [ + 3.15414, + 3.13223178807947, + 3.0614701986754973 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5158866666666664, + 3.3439602649006632, + 3.394245033112584 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.715602649006622, + 0.7132999999999998, + 0.7135165562913905 + ], + "GT Power_0": [ + 0.11604635761589416, + 0.11819333333333336, + 0.11307284768211921 + ], + "IA Power_0": [ + 6.070582781456955, + 5.952559999999998, + 5.982417218543047 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.43923841059603, + 6.368439999999999, + 6.363834437086091 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7128066666666661, + 0.7131599999999998, + 0.714433333333333 + ], + "GT Power_0": [ + 0.1119666666666667, + 0.11149333333333339, + 0.1143666666666667 + ], + "IA Power_0": [ + 5.932773333333331, + 6.278046666666667, + 5.932386666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.279253333333334, + 6.615293333333334, + 6.3171599999999986 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7696933333333336, + 0.7882715231788082, + 0.7721800000000005 + ], + "GT Power_0": [ + 0.2445466666666667, + 0.24628476821192052, + 0.2630999999999999 + ], + "IA Power_0": [ + 6.193273333333336, + 6.3642649006622545, + 6.206100000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.698680000000001, + 7.017258278145695, + 6.751233333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7352799999999994, + 0.7185199999999995, + 0.7288344370860923 + ], + "GT Power_0": [ + 0.12275333333333338, + 0.12085333333333334, + 0.1363311258278146 + ], + "IA Power_0": [ + 6.065186666666664, + 6.100060000000003, + 6.068602649006623 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.474859999999999, + 6.402473333333333, + 6.511794701986755 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD164-A9", + "number": 4551, + "tests": [ + { + "DRAM Power_0": [ + 0.5840666666666661, + 0.5893774834437087, + 0.5862251655629137 + ], + "GT Power_0": [ + 0.030719999999999987, + 0.016072847682119203, + 0.015245033112582778 + ], + "IA Power_0": [ + 3.0632666666666677, + 3.0142582781456957, + 3.923052980132452 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4338733333333327, + 3.3618741721854306, + 4.191999999999998 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7118322147651001, + 0.714602649006622, + 0.7176999999999997 + ], + "GT Power_0": [ + 0.1149328859060403, + 0.11476158940397356, + 0.11763333333333328 + ], + "IA Power_0": [ + 5.8609932885906035, + 5.947662251655631, + 5.942173333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2252416107382516, + 6.30834437086093, + 6.463879999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 149, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7156399999999995, + 0.7118199999999995, + 0.7137266666666663 + ], + "GT Power_0": [ + 0.1180333333333333, + 0.1175, + 0.12270666666666673 + ], + "IA Power_0": [ + 6.051733333333334, + 5.912913333333332, + 5.9661666666666635 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.377, + 6.227593333333333, + 6.320493333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7710200000000007, + 0.7746733333333335, + 0.7721533333333338 + ], + "GT Power_0": [ + 0.25254000000000015, + 0.2558133333333333, + 0.2751866666666667 + ], + "IA Power_0": [ + 6.075326666666665, + 6.830653333333334, + 6.101773333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.596373333333331, + 7.404273333333331, + 6.619273333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7179800000000002, + 0.71774, + 0.734919999999999 + ], + "GT Power_0": [ + 0.1282066666666667, + 0.12701333333333334, + 0.12572000000000003 + ], + "IA Power_0": [ + 5.914893333333333, + 6.302566666666665, + 5.982013333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3290733333333336, + 6.708640000000001, + 6.464920000000002 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4550, + "tests": [ + { + "DRAM Power_0": [ + 0.5825666666666663, + 0.5769271523178808, + 0.5698410596026486 + ], + "GT Power_0": [ + 0.040919999999999984, + 0.014490066225165557, + 0.013682119205298016 + ], + "IA Power_0": [ + 3.145633333333333, + 3.1664304635761584, + 2.912476821192052 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5109333333333335, + 3.389238410596029, + 3.124655629139072 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7129400000000004, + 0.7201999999999995, + 0.729453333333333 + ], + "GT Power_0": [ + 0.10314000000000004, + 0.10402666666666666, + 0.10436000000000002 + ], + "IA Power_0": [ + 6.331039999999996, + 6.341953333333333, + 6.105553333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.659966666666669, + 6.680419999999996, + 6.710573333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172333333333325, + 0.7147799999999994, + 0.7206599999999994 + ], + "GT Power_0": [ + 0.09972666666666674, + 0.10008666666666666, + 0.10478666666666671 + ], + "IA Power_0": [ + 6.692979999999998, + 5.9663866666666685, + 6.024893333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.964426666666665, + 6.311560000000001, + 6.485433333333329 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7715, + 0.7860466666666669, + 0.7920600000000003 + ], + "GT Power_0": [ + 0.21828666666666663, + 0.2209066666666667, + 0.23220000000000007 + ], + "IA Power_0": [ + 6.226479999999998, + 6.201146666666668, + 6.654853333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7154000000000025, + 6.766573333333334, + 7.316013333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7187666666666668, + 0.7189799999999998, + 0.7194933333333331 + ], + "GT Power_0": [ + 0.10827999999999999, + 0.11089999999999998, + 0.1094333333333333 + ], + "IA Power_0": [ + 5.994726666666668, + 6.05462, + 6.440166666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.364473333333334, + 6.439966666666667, + 6.7285466666666665 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD162-A9", + "number": 4549, + "tests": [ + { + "DRAM Power_0": [ + 0.5834666666666667, + 0.5745666666666667, + 0.5757799999999998 + ], + "GT Power_0": [ + 0.04193999999999999, + 0.014586666666666664, + 0.015880000000000002 + ], + "IA Power_0": [ + 2.789346666666667, + 2.615266666666665, + 2.6092066666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.104293333333333, + 2.867193333333335, + 2.877073333333333 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.728906666666666, + 0.7264399999999995, + 0.7146199999999994 + ], + "GT Power_0": [ + 0.11408666666666668, + 0.11270000000000001, + 0.11460000000000001 + ], + "IA Power_0": [ + 5.219406666666665, + 5.531666666666666, + 5.1978266666666695 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.636726666666665, + 5.931173333333331, + 5.586320000000003 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7150799999999997, + 0.7300400000000001, + 0.713893333333333 + ], + "GT Power_0": [ + 0.11027333333333336, + 0.11327999999999994, + 0.11166666666666666 + ], + "IA Power_0": [ + 5.246293333333336, + 5.47473333333333, + 5.238320000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.613693333333333, + 6.0138733333333345, + 5.64559333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7918800000000006, + 0.772079470198676, + 0.7800733333333335 + ], + "GT Power_0": [ + 0.24003333333333335, + 0.23925165562913908, + 0.24715999999999994 + ], + "IA Power_0": [ + 5.479559999999998, + 5.424708609271519, + 5.416493333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.229886666666669, + 5.9497350993377465, + 6.035513333333331 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.718766666666666, + 0.7181799999999995, + 0.7401986754966884 + ], + "GT Power_0": [ + 0.11934666666666666, + 0.12024666666666678, + 0.12083443708609273 + ], + "IA Power_0": [ + 5.528986666666668, + 5.205866666666664, + 5.289940397350994 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.92212, + 5.590459999999999, + 5.9062251655629145 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD146-A9", + "number": 4548, + "tests": [ + { + "DRAM Power_0": [ + 0.5930469798657716, + 0.5979866666666661, + 0.6284635761589402 + ], + "GT Power_0": [ + 0.03206040268456375, + 0.013906666666666666, + 0.015192052980132448 + ], + "IA Power_0": [ + 3.8863355704697984, + 3.971086666666667, + 4.118807947019869 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.1718187919463094, + 4.293966666666668, + 4.519543046357617 + ], + "name": "Basic", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7404304635761584, + 0.7967199999999994, + 0.7308940397350989 + ], + "GT Power_0": [ + 0.11701986754966891, + 0.11741333333333333, + 0.11913245033112585 + ], + "IA Power_0": [ + 6.5669801324503325, + 7.534353333333332, + 6.972238410596029 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.083344370860926, + 7.956840000000001, + 7.412609271523181 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7633443708609269, + 0.8723066666666665, + 0.739353333333333 + ], + "GT Power_0": [ + 0.11726490066225162, + 0.11543333333333336, + 0.12471333333333338 + ], + "IA Power_0": [ + 7.265125827814569, + 8.841473333333331, + 8.409586666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.675443708609274, + 9.328946666666674, + 8.814966666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7757933333333341, + 0.7962516556291388, + 0.7392582781456949 + ], + "GT Power_0": [ + 0.2454733333333334, + 0.2528344370860927, + 0.2542052980132449 + ], + "IA Power_0": [ + 7.101633333333333, + 13.36273509933775, + 14.952529801324506 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.65236666666667, + 14.047470198675503, + 15.515112582781452 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7387266666666664, + 0.7397533333333332, + 0.717346666666666 + ], + "GT Power_0": [ + 0.12902666666666665, + 0.12416666666666662, + 0.12609999999999993 + ], + "IA Power_0": [ + 5.72664, + 5.7658999999999985, + 5.946226666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.268306666666667, + 6.47292666666667, + 6.306126666666665 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD121-A9", + "number": 4547, + "tests": [ + { + "DRAM Power_0": [ + 0.5877000000000001, + 0.597019867549669, + 0.5941390728476821 + ], + "GT Power_0": [ + 0.015286666666666667, + 0.016390728476821194, + 0.016033112582781457 + ], + "IA Power_0": [ + 3.2288866666666673, + 3.6029735099337756, + 3.295112582781459 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.453866666666666, + 3.987158940397349, + 3.667430463576158 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7137999999999994, + 0.713258278145695, + 0.7307199999999995 + ], + "GT Power_0": [ + 0.10700000000000005, + 0.10443708609271524, + 0.10126000000000004 + ], + "IA Power_0": [ + 6.708066666666669, + 6.274357615894039, + 6.284433333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.035446666666668, + 6.6079602649006635, + 6.982553333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7124999999999996, + 0.7128866666666664, + 0.7135533333333333 + ], + "GT Power_0": [ + 0.10417333333333334, + 0.10157333333333336, + 0.10550666666666672 + ], + "IA Power_0": [ + 6.562046666666666, + 6.3724666666666705, + 6.421726666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.947493333333332, + 6.694800000000002, + 6.753293333333331 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7723200000000007, + 0.7682933333333334, + 0.7853666666666671 + ], + "GT Power_0": [ + 0.24091333333333334, + 0.23687333333333327, + 0.23850666666666664 + ], + "IA Power_0": [ + 6.563859999999999, + 6.4883333333333315, + 6.871166666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.083940000000002, + 7.008506666666667, + 7.555979999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7170199999999995, + 0.7318666666666666, + 0.7171655629139071 + ], + "GT Power_0": [ + 0.11146666666666676, + 0.11166000000000001, + 0.11192715231788083 + ], + "IA Power_0": [ + 6.415973333333335, + 6.397713333333331, + 6.667973509933773 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.760126666666661, + 6.903166666666671, + 7.1811390728476825 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD177-A9", + "number": 4546, + "tests": [ + { + "DRAM Power_0": [ + 0.576688741721854, + 0.5926933333333334, + 0.5745562913907285 + ], + "GT Power_0": [ + 0.03474834437086091, + 0.014186666666666665, + 0.013947019867549667 + ], + "IA Power_0": [ + 3.2589205298013257, + 3.2563133333333343, + 3.492748344370861 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5163046357615886, + 3.663300000000001, + 3.7405761589403967 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7121866666666661, + 0.7118543046357606, + 0.7302317880794695 + ], + "GT Power_0": [ + 0.09843333333333333, + 0.09862251655629144, + 0.0958278145695364 + ], + "IA Power_0": [ + 6.18300666666667, + 6.175403973509934, + 6.383456953642386 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.527819999999997, + 6.494642384105962, + 6.795112582781459 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7119266666666662, + 0.7262980132450328, + 0.7125761589403972 + ], + "GT Power_0": [ + 0.0971533333333333, + 0.09768874172185434, + 0.09454304635761589 + ], + "IA Power_0": [ + 6.2326999999999995, + 6.564960264900659, + 6.206602649006624 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.490239999999998, + 6.987271523178806, + 6.554185430463574 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7823642384105961, + 0.7838200000000004, + 0.7700662251655634 + ], + "GT Power_0": [ + 0.21870860927152316, + 0.22094, + 0.21917218543046366 + ], + "IA Power_0": [ + 6.478847682119206, + 6.827480000000002, + 6.429887417218543 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9762450331125825, + 7.430453333333335, + 6.937377483443708 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7323311258278139, + 0.7219666666666665, + 0.7257266666666664 + ], + "GT Power_0": [ + 0.1058675496688742, + 0.10370666666666668, + 0.10617333333333334 + ], + "IA Power_0": [ + 6.314642384105964, + 6.731460000000001, + 6.708306666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.847205298013243, + 7.063353333333333, + 7.073633333333337 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4545, + "tests": [ + { + "DRAM Power_0": [ + 0.5864399999999999, + 0.574298013245033, + 0.5876066666666666 + ], + "GT Power_0": [ + 0.03203333333333331, + 0.013668874172185428, + 0.012846666666666666 + ], + "IA Power_0": [ + 2.7827266666666657, + 2.6164039735099336, + 2.565466666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1022533333333344, + 2.8612913907284763, + 2.8955533333333325 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7386733333333327, + 0.7200533333333331, + 0.7142516556291387 + ], + "GT Power_0": [ + 0.09202666666666669, + 0.08925333333333334, + 0.08975496688741728 + ], + "IA Power_0": [ + 5.263833333333332, + 5.796806666666668, + 5.192807947019869 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.904413333333333, + 6.069086666666666, + 5.5644437086092715 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7149139072847677, + 0.716853333333333, + 0.7221854304635756 + ], + "GT Power_0": [ + 0.09052980132450338, + 0.09151333333333335, + 0.09111920529801325 + ], + "IA Power_0": [ + 5.228781456953642, + 5.832933333333333, + 5.3435231788079465 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.611913907284768, + 6.193133333333333, + 5.787887417218545 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7732333333333337, + 0.7860666666666672, + 0.7715066666666669 + ], + "GT Power_0": [ + 0.19593999999999992, + 0.19640000000000005, + 0.19843333333333324 + ], + "IA Power_0": [ + 5.470006666666664, + 5.412179999999999, + 5.354679999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.968566666666667, + 5.92472, + 5.909473333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7191986754966881, + 0.7170733333333328, + 0.7192847682119198 + ], + "GT Power_0": [ + 0.09249006622516556, + 0.09284000000000002, + 0.09592715231788079 + ], + "IA Power_0": [ + 5.611099337748345, + 5.244033333333333, + 5.25185430463576 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.923019867549671, + 5.604019999999998, + 5.64087417218543 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4544, + "tests": [ + { + "DRAM Power_0": [ + 0.5858333333333333, + 0.573185430463576, + 0.5880397350993376 + ], + "GT Power_0": [ + 0.04394666666666663, + 0.016185430463576147, + 0.01713245033112583 + ], + "IA Power_0": [ + 3.4505266666666663, + 3.5479470198675482, + 3.2798807947019863 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8198066666666652, + 3.777119205298014, + 3.589172185430463 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7396887417218537, + 0.710953333333333, + 0.7116622516556287 + ], + "GT Power_0": [ + 0.12094039735099338, + 0.11874000000000007, + 0.12077483443708602 + ], + "IA Power_0": [ + 6.769350993377484, + 6.508573333333332, + 6.5293443708609225 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.182841059602649, + 6.883346666666666, + 6.871437086092718 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7133999999999997, + 0.7120066225165559, + 0.7116754966887416 + ], + "GT Power_0": [ + 0.1299933333333334, + 0.11848344370860929, + 0.12169536423841056 + ], + "IA Power_0": [ + 6.984440000000001, + 6.536615894039738, + 6.557476821192051 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.286533333333335, + 6.911960264900663, + 6.920443708609269 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7690794701986763, + 0.7690666666666665, + 0.7838000000000004 + ], + "GT Power_0": [ + 0.255384105960265, + 0.25437333333333345, + 0.25428000000000006 + ], + "IA Power_0": [ + 7.143470198675494, + 6.750093333333333, + 6.777553333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.663298013245028, + 7.279019999999997, + 7.391819999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7162980132450328, + 0.7161721854304636, + 0.717853333333333 + ], + "GT Power_0": [ + 0.12442384105960265, + 0.12321192052980133, + 0.12391333333333326 + ], + "IA Power_0": [ + 6.941390728476819, + 6.6539139072847675, + 6.759566666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.326754966887417, + 7.035139072847683, + 7.066579999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD155-A9", + "number": 4543, + "tests": [ + { + "DRAM Power_0": [ + 0.5795733333333333, + 0.5740999999999997, + 0.587026490066225 + ], + "GT Power_0": [ + 0.030519999999999985, + 0.013246666666666664, + 0.014225165562913904 + ], + "IA Power_0": [ + 3.347000000000001, + 2.941966666666666, + 3.3292847682119198 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7089133333333324, + 3.182133333333332, + 3.656821192052979 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.713293333333333, + 0.719093333333333, + 0.7361733333333329 + ], + "GT Power_0": [ + 0.10399333333333335, + 0.11366666666666667, + 0.10512000000000007 + ], + "IA Power_0": [ + 5.865526666666667, + 5.811260000000001, + 6.193746666666662 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.168673333333335, + 6.207286666666666, + 6.841406666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7143377483443704, + 0.7132533333333324, + 0.7300866666666666 + ], + "GT Power_0": [ + 0.1067350993377483, + 0.10314666666666673, + 0.10123999999999994 + ], + "IA Power_0": [ + 5.850033112582781, + 5.943579999999998, + 5.927973333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.215258278145694, + 6.281920000000001, + 6.349613333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7709666666666669, + 0.7710466666666677, + 0.7808866666666667 + ], + "GT Power_0": [ + 0.22436666666666683, + 0.22500000000000006, + 0.24654666666666653 + ], + "IA Power_0": [ + 6.103633333333332, + 6.088386666666664, + 6.1191200000000014 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.618493333333336, + 6.604660000000001, + 6.66154 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7198999999999995, + 0.7197218543046355, + 0.7200933333333333 + ], + "GT Power_0": [ + 0.10666666666666669, + 0.10676158940397353, + 0.10504000000000001 + ], + "IA Power_0": [ + 5.949786666666665, + 6.337509933774838, + 6.016446666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.322766666666667, + 6.7082582781456965, + 6.391693333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD21-B1", + "number": 4542, + "tests": [ + { + "DRAM Power_0": [ + 0.5838533333333331, + 0.5866399999999997, + 0.5914399999999999 + ], + "GT Power_0": [ + 0.03229999999999998, + 0.014806666666666664, + 0.014866666666666667 + ], + "IA Power_0": [ + 3.038726666666666, + 2.9010933333333337, + 2.9352799999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.553153333333333, + 4.321693333333332, + 4.518660000000002 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145400000000001, + 0.7361933333333328, + 0.7472133333333325 + ], + "GT Power_0": [ + 0.10774666666666671, + 0.10823999999999996, + 0.11248666666666675 + ], + "IA Power_0": [ + 5.570993333333332, + 5.915900000000002, + 6.118473333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.128893333333332, + 7.7677466666666595, + 7.85429333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7284933333333332, + 0.7300397350993373, + 0.7289599999999994 + ], + "GT Power_0": [ + 0.10969333333333343, + 0.11056953642384104, + 0.11118666666666667 + ], + "IA Power_0": [ + 5.596793333333333, + 5.8604701986754995, + 5.638539999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.252719999999999, + 7.527847682119205, + 7.313453333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.79098, + 0.7727333333333336, + 0.7788476821192054 + ], + "GT Power_0": [ + 0.2363933333333334, + 0.23492, + 0.2382649006622517 + ], + "IA Power_0": [ + 5.8112266666666645, + 5.85089333333333, + 5.901576158940398 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.681620000000002, + 7.539346666666669, + 7.614456953642386 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.725993333333333, + 0.7299999999999998, + 0.718946666666666 + ], + "GT Power_0": [ + 0.11659333333333337, + 0.12423178807947022, + 0.11717333333333341 + ], + "IA Power_0": [ + 5.923886666666665, + 5.718284768211924, + 5.676779999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.6350799999999985, + 7.376986754966886, + 7.222686666666672 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD172-A9", + "number": 4541, + "tests": [ + { + "DRAM Power_0": [ + 0.583344370860927, + 0.5736733333333335, + 0.588933774834437 + ], + "GT Power_0": [ + 0.035543046357615876, + 0.01386, + 0.014185430463576152 + ], + "IA Power_0": [ + 2.7437947019867543, + 2.869106666666665, + 2.6303311258278153 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0462913907284785, + 3.12802, + 2.9938609271523164 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7128133333333329, + 0.7340066225165556, + 0.7123066666666665 + ], + "GT Power_0": [ + 0.0957666666666667, + 0.09405960264900663, + 0.09507333333333338 + ], + "IA Power_0": [ + 5.150833333333334, + 5.173754966887417, + 5.104386666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.506213333333334, + 5.782033112582783, + 5.452079999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7114370860927147, + 0.728562913907284, + 0.7123133333333329 + ], + "GT Power_0": [ + 0.09474834437086092, + 0.09437748344370868, + 0.09292000000000002 + ], + "IA Power_0": [ + 5.331092715231786, + 5.102019867549668, + 5.111993333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.696390728476822, + 5.525218543046357, + 5.463553333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7701800000000003, + 0.7715333333333338, + 0.7816666666666673 + ], + "GT Power_0": [ + 0.20568666666666655, + 0.21322666666666668, + 0.20895333333333327 + ], + "IA Power_0": [ + 5.555126666666667, + 5.286579999999997, + 5.307866666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.042700000000001, + 5.802453333333333, + 5.915533333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7164999999999995, + 0.7406622516556295, + 0.720092715231788 + ], + "GT Power_0": [ + 0.10146000000000006, + 0.10380132450331132, + 0.10486092715231794 + ], + "IA Power_0": [ + 5.193119999999999, + 5.191543046357616, + 5.384629139072851 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.518399999999999, + 5.656622516556289, + 5.759655629139075 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4540, + "tests": [ + { + "DRAM Power_0": [ + 0.5753066666666663, + 0.5908675496688743, + 0.5739403973509931 + ], + "GT Power_0": [ + 0.030833333333333327, + 0.014172185430463575, + 0.014629139072847689 + ], + "IA Power_0": [ + 3.1538133333333325, + 3.0874966887417217, + 3.025562913907285 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4094733333333336, + 3.465635761589405, + 3.27669536423841 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.713933333333333, + 0.7130066666666663, + 0.7128666666666664 + ], + "GT Power_0": [ + 0.11147333333333335, + 0.10678666666666667, + 0.11492000000000002 + ], + "IA Power_0": [ + 6.023653333333335, + 6.375459999999996, + 6.155906666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.403000000000002, + 6.736273333333335, + 6.512926666666663 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7146933333333331, + 0.7137748344370858, + 0.7152933333333331 + ], + "GT Power_0": [ + 0.10982000000000004, + 0.10921192052980132, + 0.10985333333333332 + ], + "IA Power_0": [ + 6.012266666666668, + 6.35930463576159, + 6.069159999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.35982, + 6.702953642384102, + 6.448880000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7716266666666667, + 0.7810400000000002, + 0.7705933333333332 + ], + "GT Power_0": [ + 0.23091333333333333, + 0.22756000000000004, + 0.22940000000000002 + ], + "IA Power_0": [ + 6.322593333333329, + 6.616726666666665, + 6.27551333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.775486666666666, + 7.116786666666665, + 6.773393333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7213999999999996, + 0.7194238410596023, + 0.7257266666666663 + ], + "GT Power_0": [ + 0.12008666666666667, + 0.11367549668874172, + 0.11147333333333333 + ], + "IA Power_0": [ + 6.563199999999999, + 6.123801324503309, + 6.206913333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.835813333333335, + 6.49411258278146, + 6.665713333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4539, + "tests": [ + { + "DRAM Power_0": [ + 0.5820466666666665, + 0.5741800000000004, + 0.5740666666666667 + ], + "GT Power_0": [ + 0.04354666666666664, + 0.016160000000000004, + 0.014920000000000003 + ], + "IA Power_0": [ + 3.5968466666666656, + 3.2780466666666683, + 3.6262799999999986 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.94518, + 3.4947733333333364, + 3.8101400000000005 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.712106666666666, + 0.7108533333333328, + 0.7311788079470197 + ], + "GT Power_0": [ + 0.11875333333333335, + 0.11673333333333331, + 0.12327152317880795 + ], + "IA Power_0": [ + 6.442313333333332, + 6.375793333333333, + 6.965384105960266 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.789273333333335, + 6.7428333333333335, + 7.49116556291391 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7211399999999991, + 0.7126533333333327, + 0.7128741721854297 + ], + "GT Power_0": [ + 0.13507333333333332, + 0.11816666666666663, + 0.11784768211920531 + ], + "IA Power_0": [ + 6.514646666666663, + 6.6210200000000015, + 6.843986754966887 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8930733333333345, + 6.959833333333334, + 7.186278145695366 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7691400000000005, + 0.7718807947019873, + 0.769746666666667 + ], + "GT Power_0": [ + 0.25428, + 0.257066225165563, + 0.2550266666666667 + ], + "IA Power_0": [ + 6.793513333333338, + 6.834576158940399, + 6.831006666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.280473333333336, + 7.324158940397352, + 7.367699999999997 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172847682119201, + 0.7156933333333328, + 0.7168741721854297 + ], + "GT Power_0": [ + 0.1274370860927153, + 0.12484666666666668, + 0.12452317880794697 + ], + "IA Power_0": [ + 6.573039735099338, + 6.657500000000002, + 6.605205298013245 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.941377483443711, + 7.01947333333333, + 6.978278145695361 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD154-A9", + "number": 4538, + "tests": [ + { + "DRAM Power_0": [ + 0.5747549668874168, + 0.5805364238410595, + 0.5870266666666669 + ], + "GT Power_0": [ + 0.0183046357615894, + 0.017735099337748347, + 0.016579999999999998 + ], + "IA Power_0": [ + 3.017900662251656, + 3.4325960264900663, + 2.9205933333333327 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2529139072847686, + 3.6467350993377488, + 3.232593333333334 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7369733333333325, + 0.7135099337748342, + 0.7108278145695358 + ], + "GT Power_0": [ + 0.12758, + 0.1291390728476821, + 0.13054966887417224 + ], + "IA Power_0": [ + 5.831633333333334, + 6.043192052980136, + 5.77935099337748 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.744399999999996, + 6.399721854304635, + 6.158880794701986 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7133841059602647, + 0.7154199999999996, + 0.7117483443708605 + ], + "GT Power_0": [ + 0.1295496688741723, + 0.12806666666666666, + 0.12600000000000006 + ], + "IA Power_0": [ + 5.863013245033116, + 6.500059999999999, + 5.8131986754966825 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.28627152317881, + 6.915893333333332, + 6.224410596026491 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7708079470198677, + 0.7704800000000004, + 0.7696400000000003 + ], + "GT Power_0": [ + 0.2741986754966888, + 0.2772533333333334, + 0.27609333333333347 + ], + "IA Power_0": [ + 6.064271523178805, + 6.0684800000000045, + 6.135306666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.613125827814572, + 6.604153333333334, + 6.6449 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7176133333333329, + 0.7354105960264895, + 0.7178066666666663 + ], + "GT Power_0": [ + 0.14292666666666667, + 0.1362649006622517, + 0.14319333333333334 + ], + "IA Power_0": [ + 5.906146666666669, + 5.950920529801328, + 5.969273333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3021199999999995, + 6.475562913907284, + 6.325066666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4537, + "tests": [ + { + "DRAM Power_0": [ + 0.5812999999999998, + 0.5725733333333334, + 0.57664238410596 + ], + "GT Power_0": [ + 0.039966666666666664, + 0.012773333333333331, + 0.014125827814569536 + ], + "IA Power_0": [ + 2.7696800000000006, + 2.723446666666665, + 3.0599072847682116 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.101073333333334, + 2.9634066666666654, + 3.3326291390728477 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7252866666666662, + 0.7153841059602644, + 0.7259403973509928 + ], + "GT Power_0": [ + 0.09378000000000007, + 0.09149668874172187, + 0.08983443708609277 + ], + "IA Power_0": [ + 5.357979999999999, + 5.3405496688741705, + 5.387437086092715 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7661, + 5.738735099337749, + 5.792655629139071 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8391006711409393, + 0.7133333333333328, + 0.7360529801324505 + ], + "GT Power_0": [ + 0.09480536912751679, + 0.08960666666666665, + 0.08750993377483444 + ], + "IA Power_0": [ + 9.374476510067112, + 5.610799999999999, + 5.635105960264898 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.77869798657718, + 5.99272, + 6.11307284768212 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 149, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7727000000000007, + 0.7913509933774836, + 0.77034 + ], + "GT Power_0": [ + 0.20551333333333335, + 0.20212582781456964, + 0.20495333333333332 + ], + "IA Power_0": [ + 5.591220000000001, + 5.817298013245034, + 5.558586666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.056173333333328, + 6.389463576158941, + 6.045159999999997 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7342666666666663, + 0.7202317880794699, + 0.7343866666666661 + ], + "GT Power_0": [ + 0.09733333333333331, + 0.09764900662251656, + 0.09664666666666666 + ], + "IA Power_0": [ + 5.499313333333332, + 5.600324503311259, + 5.390526666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.908619999999998, + 5.942086092715228, + 5.888359999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD183-A9", + "number": 4536, + "tests": [ + { + "DRAM Power_0": [ + 0.58892, + 0.5946866666666666, + 0.5737599999999997 + ], + "GT Power_0": [ + 0.04607333333333332, + 0.016066666666666663, + 0.015506666666666663 + ], + "IA Power_0": [ + 3.6918266666666657, + 3.2317599999999986, + 2.960393333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.067546666666664, + 3.6253333333333346, + 3.216046666666667 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7121059602649005, + 0.713126666666666, + 0.7311799999999996 + ], + "GT Power_0": [ + 0.11529139072847679, + 0.11312, + 0.11550666666666667 + ], + "IA Power_0": [ + 6.2117947019867605, + 5.938106666666669, + 5.869580000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.567933774834438, + 6.3103, + 6.487793333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7120927152317876, + 0.7118333333333329, + 0.7179399999999997 + ], + "GT Power_0": [ + 0.11468874172185431, + 0.11880666666666666, + 0.1238133333333333 + ], + "IA Power_0": [ + 5.939933774834437, + 5.94596, + 6.0080800000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.302721854304633, + 6.317346666666669, + 6.41666666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7849006622516561, + 0.7794066666666674, + 0.7833066666666668 + ], + "GT Power_0": [ + 0.2566556291390728, + 0.27488000000000024, + 0.25486666666666663 + ], + "IA Power_0": [ + 6.108172185430464, + 6.159039999999997, + 6.50700666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.750794701986755, + 6.749700000000001, + 7.115419999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7298066666666667, + 0.7159999999999999, + 0.716966666666666 + ], + "GT Power_0": [ + 0.12358666666666665, + 0.1251986754966888, + 0.13179333333333332 + ], + "IA Power_0": [ + 6.015486666666667, + 5.98035761589404, + 6.351713333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.507506666666665, + 6.367165562913905, + 6.713266666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD146-A9", + "number": 4535, + "tests": [ + { + "DRAM Power_0": [ + 0.5947133333333335, + 0.5770397350993375, + 0.5942399999999995 + ], + "GT Power_0": [ + 0.01463333333333333, + 0.016092715231788082, + 0.014646666666666667 + ], + "IA Power_0": [ + 3.3196733333333315, + 2.9223443708609262, + 2.9828999999999994 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6870866666666675, + 3.170887417218542, + 3.4316933333333326 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.73252, + 0.7142933333333323, + 0.7293799999999994 + ], + "GT Power_0": [ + 0.11872666666666667, + 0.11808000000000007, + 0.11737333333333337 + ], + "IA Power_0": [ + 5.675913333333328, + 5.585073333333333, + 5.895573333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.169153333333333, + 6.013900000000001, + 6.396933333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7379006622516557, + 0.7221866666666659, + 0.7243333333333326 + ], + "GT Power_0": [ + 0.1225430463576159, + 0.11528000000000004, + 0.1329 + ], + "IA Power_0": [ + 5.616291390728479, + 5.689733333333334, + 6.0690333333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.174668874172186, + 6.133006666666666, + 6.567060000000003 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7727333333333333, + 0.772533333333334, + 0.7712466666666672 + ], + "GT Power_0": [ + 0.2703733333333333, + 0.24141333333333337, + 0.24267999999999995 + ], + "IA Power_0": [ + 5.905606666666665, + 5.871106666666664, + 5.875953333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.417373333333333, + 6.412953333333336, + 6.35918 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7199999999999994, + 0.7215599999999994, + 0.7410466666666663 + ], + "GT Power_0": [ + 0.12265333333333334, + 0.12646666666666667, + 0.12574 + ], + "IA Power_0": [ + 5.697126666666668, + 6.099726666666671, + 5.683813333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.100706666666665, + 6.433326666666666, + 6.428299999999996 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4534, + "tests": [ + { + "DRAM Power_0": [ + 0.5873799999999998, + 0.5814900662251654, + 0.5750927152317881 + ], + "GT Power_0": [ + 0.013106666666666666, + 0.014178807947019867, + 0.014364238410596033 + ], + "IA Power_0": [ + 3.0187266666666686, + 3.940913907284768, + 3.0262450331125827 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.469900000000001, + 4.1659933774834474, + 3.297649006622516 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7124599999999994, + 0.729346666666666, + 0.7104133333333327 + ], + "GT Power_0": [ + 0.10193333333333342, + 0.10353333333333331, + 0.10105333333333336 + ], + "IA Power_0": [ + 5.999566666666667, + 6.4047399999999985, + 6.09665333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.38538, + 6.884446666666667, + 6.4442066666666635 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7270266666666664, + 0.7128874172185427, + 0.712673333333333 + ], + "GT Power_0": [ + 0.09718666666666671, + 0.09873509933774839, + 0.10048 + ], + "IA Power_0": [ + 6.060973333333331, + 6.062298013245029, + 6.1203666666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.5137, + 6.397947019867549, + 6.4622800000000025 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7836953642384115, + 0.7706466666666668, + 0.7873642384105964 + ], + "GT Power_0": [ + 0.2349735099337748, + 0.21937333333333342, + 0.22030463576158948 + ], + "IA Power_0": [ + 6.687596026490066, + 6.226900000000002, + 6.265993377483444 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.226874172185427, + 6.672626666666668, + 6.87430463576159 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7181333333333332, + 0.7347333333333328, + 0.7186666666666661 + ], + "GT Power_0": [ + 0.10588666666666671, + 0.10928666666666674, + 0.10945333333333335 + ], + "IA Power_0": [ + 6.364139999999997, + 6.246120000000001, + 6.0315 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.723366666666665, + 6.710680000000001, + 6.418680000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD176-A9", + "number": 4533, + "tests": [ + { + "DRAM Power_0": [ + 0.5837417218543046, + 0.5902582781456951, + 0.5759867549668869 + ], + "GT Power_0": [ + 0.04741059602649006, + 0.015900662251655626, + 0.015099337748344375 + ], + "IA Power_0": [ + 2.687562913907284, + 2.933721854304635, + 2.708245033112582 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0685562913907263, + 3.342152317880795, + 2.948999999999999 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7357533333333327, + 0.7159466666666665, + 0.7121390728476814 + ], + "GT Power_0": [ + 0.10140666666666669, + 0.10092000000000005, + 0.10452317880794701 + ], + "IA Power_0": [ + 5.217840000000002, + 5.749339999999999, + 5.126264900662252 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.767573333333332, + 6.030513333333334, + 5.5048476821192045 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7130866666666662, + 0.7296066666666664, + 0.7311533333333327 + ], + "GT Power_0": [ + 0.09971999999999996, + 0.10143333333333338, + 0.10524000000000006 + ], + "IA Power_0": [ + 5.359726666666666, + 5.104799999999998, + 5.149620000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.719913333333335, + 5.587266666666666, + 5.57522 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7777399999999998, + 0.7747152317880798, + 0.7722649006622524 + ], + "GT Power_0": [ + 0.23781333333333332, + 0.2238741721854304, + 0.22746357615894042 + ], + "IA Power_0": [ + 5.554046666666666, + 5.336788079470197, + 5.256331125827814 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.092953333333332, + 5.910847682119208, + 5.824165562913908 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7177682119205292, + 0.7197483443708605, + 0.7167000000000001 + ], + "GT Power_0": [ + 0.10696026490066225, + 0.11140397350993379, + 0.10657999999999995 + ], + "IA Power_0": [ + 5.2861986754966885, + 5.088602649006623, + 5.151093333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.64730463576159, + 5.494807947019866, + 5.546906666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4532, + "tests": [ + { + "DRAM Power_0": [ + 0.5874533333333329, + 0.5797019867549665, + 0.5787666666666662 + ], + "GT Power_0": [ + 0.02869333333333331, + 0.01460264900662252, + 0.014 + ], + "IA Power_0": [ + 3.7590266666666685, + 3.328490066225167, + 3.3678333333333326 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.0344000000000015, + 3.541980132450331, + 3.588993333333333 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7354999999999996, + 0.7165399999999996, + 0.7171866666666662 + ], + "GT Power_0": [ + 0.09694666666666674, + 0.09707333333333334, + 0.10090666666666671 + ], + "IA Power_0": [ + 7.106273333333335, + 6.352633333333331, + 6.381786666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.496580000000001, + 6.733633333333331, + 6.7332800000000015 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7159199999999996, + 0.7278874172185427, + 0.7146490066225161 + ], + "GT Power_0": [ + 0.09758000000000003, + 0.09749006622516564, + 0.0958543046357616 + ], + "IA Power_0": [ + 6.385813333333335, + 6.4357086092715186, + 6.711768211920529 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.742813333333332, + 6.814145695364238, + 7.047688741721853 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7747000000000002, + 0.7823066666666671, + 0.774706666666667 + ], + "GT Power_0": [ + 0.22132666666666675, + 0.22280000000000005, + 0.22214666666666663 + ], + "IA Power_0": [ + 6.71646, + 6.850419999999999, + 6.908460000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.13406666666667, + 7.299173333333335, + 7.408686666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7222199999999993, + 0.722493333333333, + 0.7222866666666663 + ], + "GT Power_0": [ + 0.10147333333333336, + 0.10051333333333332, + 0.10059333333333334 + ], + "IA Power_0": [ + 6.556626666666667, + 6.497039999999998, + 6.7544466666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.867919999999996, + 6.835713333333332, + 7.097873333333331 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD165-A9", + "number": 4531, + "tests": [ + { + "DRAM Power_0": [ + 0.5837483443708607, + 0.5865960264900663, + 0.5890860927152317 + ], + "GT Power_0": [ + 0.04242384105960263, + 0.013913907284768212, + 0.014728476821192054 + ], + "IA Power_0": [ + 3.430549668874173, + 3.2295430463576156, + 3.1750264900662244 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.743847682119206, + 3.54469536423841, + 3.508013245033112 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7282333333333325, + 0.7269867549668872, + 0.727093333333333 + ], + "GT Power_0": [ + 0.09879333333333334, + 0.10180132450331128, + 0.10651333333333332 + ], + "IA Power_0": [ + 6.280593333333331, + 6.53512582781457, + 6.378233333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.784093333333333, + 6.98582781456954, + 6.923626666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7120533333333332, + 0.7120266666666666, + 0.7113311258278139 + ], + "GT Power_0": [ + 0.10116666666666672, + 0.09927333333333337, + 0.09954304635761593 + ], + "IA Power_0": [ + 6.410313333333331, + 6.827726666666667, + 6.3546688741721855 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.766073333333336, + 7.152126666666668, + 6.728947019867548 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.771225165562914, + 0.7846333333333331, + 0.7696133333333338 + ], + "GT Power_0": [ + 0.23282119205298016, + 0.23394666666666666, + 0.23416666666666677 + ], + "IA Power_0": [ + 6.6716357615894015, + 6.93, + 6.541493333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.186112582781459, + 7.598860000000001, + 7.052079999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7321854304635758, + 0.7166754966887412, + 0.7173533333333328 + ], + "GT Power_0": [ + 0.1056092715231788, + 0.10531125827814573, + 0.1061866666666667 + ], + "IA Power_0": [ + 6.4801324503311255, + 6.390887417218544, + 6.470353333333329 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.896225165562912, + 6.735847682119209, + 6.80434 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD126-A9", + "number": 4530, + "tests": [ + { + "DRAM Power_0": [ + 0.5997417218543044, + 0.5971721854304635, + 0.5918066666666667 + ], + "GT Power_0": [ + 0.034682119205298, + 0.014741721854304635, + 0.019973333333333336 + ], + "IA Power_0": [ + 4.299582781456952, + 3.712715231788078, + 3.5897266666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.621105960264903, + 3.9747947019867533, + 3.868993333333332 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7167880794701981, + 0.715093333333333, + 0.7144999999999994 + ], + "GT Power_0": [ + 0.10864238410596028, + 0.10686666666666665, + 0.10486000000000004 + ], + "IA Power_0": [ + 5.827251655629136, + 5.791593333333338, + 6.155020000000004 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.170357615894041, + 6.12644, + 6.524693333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7289666666666662, + 0.7142119205298012, + 0.7152133333333331 + ], + "GT Power_0": [ + 0.1053666666666667, + 0.10676821192052988, + 0.1047133333333333 + ], + "IA Power_0": [ + 5.825380000000002, + 5.880231788079469, + 6.115586666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2509066666666655, + 6.227052980132452, + 6.461673333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7904200000000005, + 0.7729466666666667, + 0.7731333333333339 + ], + "GT Power_0": [ + 0.23130666666666655, + 0.2332866666666665, + 0.2297466666666668 + ], + "IA Power_0": [ + 6.197159999999999, + 6.068693333333337, + 6.337459999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.811159999999998, + 6.5922333333333345, + 6.869493333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.721788079470198, + 0.7179999999999999, + 0.7186599999999997 + ], + "GT Power_0": [ + 0.11441721854304641, + 0.11089333333333333, + 0.10981333333333336 + ], + "IA Power_0": [ + 5.922211920529799, + 5.889593333333331, + 5.892786666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.245847682119205, + 6.260113333333331, + 6.242380000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD145-A9", + "number": 4529, + "tests": [ + { + "DRAM Power_0": [ + 0.5870799999999999, + 0.574701986754967, + 0.5828000000000001 + ], + "GT Power_0": [ + 0.030379999999999983, + 0.013913907284768214, + 0.01481333333333333 + ], + "IA Power_0": [ + 2.90076, + 2.7676291390728482, + 2.731486666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.261413333333334, + 2.997192052980133, + 3.0009399999999986 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7301466666666664, + 0.7196599999999995, + 0.713473333333333 + ], + "GT Power_0": [ + 0.09549333333333335, + 0.0923466666666667, + 0.09456666666666667 + ], + "IA Power_0": [ + 5.369073333333332, + 5.4186799999999975, + 5.330333333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.85673333333333, + 5.7722533333333335, + 5.673233333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7133245033112576, + 0.7148410596026488, + 0.7368333333333332 + ], + "GT Power_0": [ + 0.09302649006622515, + 0.09285430463576165, + 0.09560666666666659 + ], + "IA Power_0": [ + 5.278258278145694, + 5.350821192052979, + 5.335813333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.60311920529801, + 5.702821192052978, + 5.819226666666669 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7713133333333335, + 0.7722119205298011, + 0.7726266666666675 + ], + "GT Power_0": [ + 0.20839333333333337, + 0.2084238410596027, + 0.20682000000000006 + ], + "IA Power_0": [ + 5.467626666666668, + 5.4593973509933775, + 5.558793333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.952866666666669, + 5.944304635761589, + 5.970113333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7191266666666659, + 0.7513800000000002, + 0.7713266666666663 + ], + "GT Power_0": [ + 0.09416000000000002, + 0.09602666666666666, + 0.0958666666666667 + ], + "IA Power_0": [ + 5.368319999999996, + 6.230699999999999, + 6.658780000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7191133333333335, + 6.619653333333332, + 7.110533333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD118-A9", + "number": 4528, + "tests": [ + { + "DRAM Power_0": [ + 0.5854266666666663, + 0.5809735099337748, + 0.576443708609271 + ], + "GT Power_0": [ + 0.03962666666666665, + 0.014635761589403972, + 0.01470860927152318 + ], + "IA Power_0": [ + 2.951653333333333, + 3.579026490066225, + 2.9179470198675475 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3120733333333336, + 3.8218807947019826, + 3.148516556291392 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7139799999999992, + 0.7142317880794696, + 0.7283708609271512 + ], + "GT Power_0": [ + 0.09965333333333329, + 0.09964900662251659, + 0.10314569536423845 + ], + "IA Power_0": [ + 5.580093333333333, + 5.808066225165562, + 5.527158940397352 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.942806666666667, + 6.1471059602649, + 6.018927152317881 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7153311258278142, + 0.7184569536423833, + 0.7244999999999995 + ], + "GT Power_0": [ + 0.09920529801324501, + 0.10141059602649012, + 0.09806000000000002 + ], + "IA Power_0": [ + 5.571079470198678, + 5.722615894039737, + 5.5823066666666685 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.915596026490069, + 6.072324503311259, + 6.04460666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7739470198675502, + 0.7743642384105965, + 0.7724437086092716 + ], + "GT Power_0": [ + 0.22727152317880803, + 0.2274105960264901, + 0.22707947019867541 + ], + "IA Power_0": [ + 6.134245033112583, + 5.848437086092717, + 5.733721854304635 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.649615894039735, + 6.3396490066225155, + 6.271940397350993 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7178933333333332, + 0.7181854304635754, + 0.7183999999999997 + ], + "GT Power_0": [ + 0.10135333333333335, + 0.1032516556291391, + 0.10188666666666671 + ], + "IA Power_0": [ + 5.86295333333333, + 5.593476821192051, + 5.6761066666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.20036, + 5.977258278145695, + 6.007193333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD141-A9", + "number": 4527, + "tests": [ + { + "DRAM Power_0": [ + 0.5752533333333333, + 0.5741599999999997, + 0.5827066666666665 + ], + "GT Power_0": [ + 0.014919999999999998, + 0.013613333333333331, + 0.0264 + ], + "IA Power_0": [ + 3.67464, + 3.3128199999999994, + 3.647393333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8656266666666657, + 3.533093333333332, + 4.0085133333333305 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7305231788079465, + 0.7334533333333332, + 0.7172399999999994 + ], + "GT Power_0": [ + 0.11399999999999999, + 0.1118866666666667, + 0.11152666666666669 + ], + "IA Power_0": [ + 6.64330463576159, + 6.589693333333336, + 7.312746666666662 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.071867549668876, + 7.09992, + 7.680679999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7158266666666664, + 0.7224333333333327, + 0.7166556291390723 + ], + "GT Power_0": [ + 0.11919999999999999, + 0.1157, + 0.11103973509933779 + ], + "IA Power_0": [ + 6.611546666666664, + 6.720866666666669, + 6.988198675496691 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.970026666666665, + 7.135773333333333, + 7.32435761589404 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8108278145695367, + 0.7871788079470203, + 0.7889333333333333 + ], + "GT Power_0": [ + 0.26302649006622536, + 0.2312119205298013, + 0.23401999999999995 + ], + "IA Power_0": [ + 6.843119205298013, + 6.824317880794704, + 6.923613333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.534867549668878, + 7.457417218543049, + 7.505746666666671 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7208609271523179, + 0.7186490066225163, + 0.718873333333333 + ], + "GT Power_0": [ + 0.11768211920529802, + 0.11669536423841054, + 0.11810666666666668 + ], + "IA Power_0": [ + 6.7209205298013215, + 6.983781456953639, + 6.7072866666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.074066225165563, + 7.340172185430462, + 7.067780000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD124-A9", + "number": 4526, + "tests": [ + { + "DRAM Power_0": [ + 0.5769866666666668, + 0.5779533333333331, + 0.57705298013245 + ], + "GT Power_0": [ + 0.037473333333333324, + 0.01594, + 0.01850331125827815 + ], + "IA Power_0": [ + 3.45804, + 3.173760000000001, + 3.17186092715232 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.717686666666666, + 3.4346600000000005, + 3.413152317880794 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7261933333333329, + 0.7263666666666662, + 0.7119536423841056 + ], + "GT Power_0": [ + 0.12141999999999999, + 0.12653999999999999, + 0.12535761589403974 + ], + "IA Power_0": [ + 5.928880000000001, + 5.912353333333334, + 6.262682119205298 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.444406666666666, + 6.410906666666665, + 6.6733774834437085 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7166533333333327, + 0.7117350993377477, + 0.7119006622516555 + ], + "GT Power_0": [ + 0.12436666666666663, + 0.12088741721854303, + 0.12653642384105956 + ], + "IA Power_0": [ + 6.014853333333334, + 5.96867549668874, + 6.255384105960262 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.414953333333333, + 6.338086092715231, + 6.638370860927152 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7676158940397354, + 0.7876933333333337, + 0.7678733333333332 + ], + "GT Power_0": [ + 0.2793509933774834, + 0.27702666666666675, + 0.2778066666666666 + ], + "IA Power_0": [ + 6.230761589403972, + 6.432813333333333, + 6.2084 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.94827152317881, + 7.070773333333335, + 6.765580000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.767866666666666, + 0.7149333333333334, + 0.7300933333333327 + ], + "GT Power_0": [ + 0.1326333333333334, + 0.13372, + 0.13107999999999997 + ], + "IA Power_0": [ + 7.86866666666667, + 6.330333333333332, + 5.979253333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.241420000000005, + 6.7039933333333295, + 6.435819999999998 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD137-A9", + "number": 4525, + "tests": [ + { + "DRAM Power_0": [ + 0.5755231788079469, + 0.5821533333333335, + 0.5747019867549674 + ], + "GT Power_0": [ + 0.03739072847682119, + 0.015793333333333336, + 0.014622516556291388 + ], + "IA Power_0": [ + 3.5371721854304634, + 3.944686666666666, + 3.413311258278145 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.914456953642384, + 4.19408, + 3.6641390728476817 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.726059602649006, + 0.7119199999999992, + 0.7115533333333329 + ], + "GT Power_0": [ + 0.10335099337748352, + 0.10301333333333336, + 0.10111333333333337 + ], + "IA Power_0": [ + 6.925430463576157, + 7.183880000000002, + 6.795226666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.390344370860924, + 7.5027333333333335, + 7.138300000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.728059602649006, + 0.7301266666666664, + 0.7126821192052973 + ], + "GT Power_0": [ + 0.11623841059602653, + 0.10364666666666664, + 0.10031788079470196 + ], + "IA Power_0": [ + 6.8274172185430455, + 7.189266666666663, + 6.822529801324507 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.372264900662252, + 7.73232, + 7.174172185430465 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7838133333333336, + 0.7809733333333334, + 0.7695266666666671 + ], + "GT Power_0": [ + 0.2261133333333333, + 0.22974, + 0.22606666666666664 + ], + "IA Power_0": [ + 7.045086666666666, + 7.117546666666667, + 7.07704 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.6427599999999964, + 7.774773333333332, + 7.527059999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7310933333333328, + 0.7198410596026484, + 0.7193774834437081 + ], + "GT Power_0": [ + 0.10659999999999996, + 0.10675496688741724, + 0.1070066225165563 + ], + "IA Power_0": [ + 7.290393333333333, + 6.935119205298012, + 7.0114105960264865 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.719379999999993, + 7.269158940397354, + 7.309768211920526 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD155-A9", + "number": 4524, + "tests": [ + { + "DRAM Power_0": [ + 0.5905199999999996, + 0.6048344370860925, + 0.5849735099337746 + ], + "GT Power_0": [ + 0.04021333333333332, + 0.014033112582781455, + 0.013291390728476819 + ], + "IA Power_0": [ + 4.458033333333332, + 4.083728476821192, + 4.755298013245034 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.781926666666666, + 4.486364238410595, + 5.013231788079474 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7112799999999997, + 0.7194238410596021, + 0.7165133333333329 + ], + "GT Power_0": [ + 0.10386666666666668, + 0.10713245033112583, + 0.10230666666666673 + ], + "IA Power_0": [ + 7.430053333333331, + 7.395576158940397, + 7.074593333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.843193333333334, + 7.8016026490066235, + 7.465473333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7394533333333332, + 0.7118543046357613, + 0.7202251655629136 + ], + "GT Power_0": [ + 0.10176666666666666, + 0.1039403973509934, + 0.10560264900662257 + ], + "IA Power_0": [ + 7.087553333333335, + 8.150814569536426, + 6.954602649006622 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.813106666666672, + 8.535298013245033, + 7.313423841059604 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7788000000000004, + 0.78144, + 0.7800266666666666 + ], + "GT Power_0": [ + 0.22604000000000005, + 0.2290400000000001, + 0.23207333333333324 + ], + "IA Power_0": [ + 6.974006666666669, + 7.417526666666665, + 7.214479999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4906866666666705, + 7.972753333333336, + 7.792926666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7258533333333326, + 0.7236821192052973, + 0.7169735099337747 + ], + "GT Power_0": [ + 0.11383333333333333, + 0.11198013245033117, + 0.11242384105960267 + ], + "IA Power_0": [ + 6.882993333333332, + 7.027324503311257, + 7.505258278145692 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.293380000000002, + 7.437470198675495, + 7.904132450331125 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4523, + "tests": [ + { + "DRAM Power_0": [ + 0.5892649006622515, + 0.5745165562913906, + 0.5750000000000001 + ], + "GT Power_0": [ + 0.014841059602649007, + 0.014569536423841057, + 0.01499337748344371 + ], + "IA Power_0": [ + 3.022337748344373, + 3.0900728476821198, + 3.4304039735099336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.370331125827814, + 3.3100860927152325, + 3.630536423841063 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7125231788079465, + 0.7295599999999997, + 0.7120927152317874 + ], + "GT Power_0": [ + 0.11033112582781457, + 0.10732666666666674, + 0.10250993377483443 + ], + "IA Power_0": [ + 6.028132450331123, + 6.033839999999996, + 6.04270860927152 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.372331125827814, + 6.540693333333337, + 6.382635761589405 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7216266666666659, + 0.7209266666666664, + 0.713466666666666 + ], + "GT Power_0": [ + 0.10015333333333333, + 0.1028533333333333, + 0.10415333333333338 + ], + "IA Power_0": [ + 6.234999999999998, + 6.739059999999999, + 6.02507333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.527533333333332, + 7.063639999999998, + 6.366606666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7708266666666671, + 0.7708807947019871, + 0.7845866666666672 + ], + "GT Power_0": [ + 0.2313266666666666, + 0.23144370860927152, + 0.2302666666666667 + ], + "IA Power_0": [ + 6.31928, + 6.5777615894039725, + 6.29358 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7741999999999996, + 7.087814569536424, + 6.841746666666666 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7188066666666664, + 0.7178145695364233, + 0.7177466666666663 + ], + "GT Power_0": [ + 0.11309333333333328, + 0.11202649006622514, + 0.11317333333333333 + ], + "IA Power_0": [ + 6.037193333333334, + 6.036377483443706, + 6.096573333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.445286666666667, + 6.439357615894039, + 6.48238 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4522, + "tests": [ + { + "DRAM Power_0": [ + 0.5808466666666668, + 0.5899801324503311, + 0.5749470198675495 + ], + "GT Power_0": [ + 0.029119999999999983, + 0.015569536423841063, + 0.01549006622516556 + ], + "IA Power_0": [ + 2.9813199999999993, + 2.7160860927152326, + 2.6571655629139066 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3089199999999996, + 3.017125827814567, + 2.90998013245033 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7131920529801322, + 0.7135894039735095, + 0.7118344370860923 + ], + "GT Power_0": [ + 0.11128476821192057, + 0.11515894039735096, + 0.11542384105960267 + ], + "IA Power_0": [ + 5.442218543046358, + 5.1692119205298, + 5.1964635761589415 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.82187417218543, + 5.584523178807947, + 5.5822980132450315 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7146399999999996, + 0.7139536423841053, + 0.7140399999999996 + ], + "GT Power_0": [ + 0.1199466666666667, + 0.11074172185430467, + 0.11758666666666673 + ], + "IA Power_0": [ + 5.189406666666666, + 5.257298013245034, + 5.48316 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.577006666666663, + 5.620622516556294, + 5.863506666666671 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.773553333333334, + 0.7785033112582785, + 0.7890000000000006 + ], + "GT Power_0": [ + 0.26478, + 0.23563576158940394, + 0.23288 + ], + "IA Power_0": [ + 5.45652, + 5.478, + 5.873039999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.990986666666664, + 5.997271523178809, + 6.574146666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7365430463576155, + 0.7191655629139065, + 0.719370860927152 + ], + "GT Power_0": [ + 0.12301324503311258, + 0.12119867549668871, + 0.12096688741721856 + ], + "IA Power_0": [ + 5.200364238410595, + 5.325887417218541, + 5.263258278145696 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.736781456953644, + 5.718198675496691, + 5.655152317880792 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD120-A9", + "number": 4521, + "tests": [ + { + "DRAM Power_0": [ + 0.5749933774834438, + 0.5926423841059604, + 0.5893509933774832 + ], + "GT Power_0": [ + 0.042682119205298005, + 0.01570198675496689, + 0.015953642384105956 + ], + "IA Power_0": [ + 3.402794701986756, + 3.089264900662253, + 3.377662251655628 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.673907284768211, + 3.4303443708609285, + 3.711417218543047 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7124266666666659, + 0.7126799999999998, + 0.7113112582781453 + ], + "GT Power_0": [ + 0.11629333333333337, + 0.11526000000000003, + 0.11452980132450327 + ], + "IA Power_0": [ + 5.908913333333334, + 5.950233333333333, + 6.327668874172185 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.298099999999997, + 6.302133333333336, + 6.653086092715231 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7143733333333324, + 0.7132251655629137, + 0.7306953642384104 + ], + "GT Power_0": [ + 0.11219333333333341, + 0.11360264900662252, + 0.11539072847682119 + ], + "IA Power_0": [ + 5.964453333333332, + 5.982589403973512, + 6.2218807947019865 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.33144, + 6.343019867549669, + 6.721596026490064 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7718666666666674, + 0.7717350993377484, + 0.7724370860927158 + ], + "GT Power_0": [ + 0.24811999999999998, + 0.24941059602649002, + 0.25084105960264896 + ], + "IA Power_0": [ + 6.181020000000002, + 6.181384105960265, + 6.163331125827814 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.713293333333335, + 6.694198675496688, + 6.707847682119202 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7189666666666665, + 0.7379133333333326, + 0.7202980132450327 + ], + "GT Power_0": [ + 0.12440666666666668, + 0.14014666666666667, + 0.1201192052980133 + ], + "IA Power_0": [ + 6.022493333333332, + 6.448039999999999, + 6.0356423841059605 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.398733333333332, + 6.930720000000003, + 6.384688741721855 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4520, + "tests": [ + { + "DRAM Power_0": [ + 0.6096866666666663, + 0.6019999999999999, + 0.5769400000000001 + ], + "GT Power_0": [ + 0.04721999999999999, + 0.017145695364238416, + 0.016313333333333332 + ], + "IA Power_0": [ + 5.522026666666668, + 5.307602649006624, + 3.6720333333333346 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7836799999999995, + 5.544629139072846, + 3.945473333333335 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7182666666666665, + 0.7308410596026488, + 0.7128733333333329 + ], + "GT Power_0": [ + 0.1068133333333333, + 0.1087152317880795, + 0.10761333333333332 + ], + "IA Power_0": [ + 7.20154, + 7.499092715231787, + 7.04249333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.515546666666667, + 7.926708609271522, + 7.355973333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7126688741721845, + 0.7150333333333331, + 0.7290333333333326 + ], + "GT Power_0": [ + 0.10947019867549662, + 0.10794000000000009, + 0.10914666666666671 + ], + "IA Power_0": [ + 7.090834437086095, + 7.103366666666669, + 7.0876199999999985 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.432000000000003, + 7.449306666666667, + 7.500479999999998 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7717066666666672, + 0.9003892617449664, + 0.790326666666667 + ], + "GT Power_0": [ + 0.23949999999999988, + 0.2433020134228187, + 0.23613333333333333 + ], + "IA Power_0": [ + 7.68930666666667, + 12.775194630872486, + 7.263053333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.229673333333338, + 13.243322147651005, + 8.1481 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7195199999999996, + 0.7181799999999998, + 0.7179999999999997 + ], + "GT Power_0": [ + 0.11317333333333333, + 0.11255333333333335, + 0.11376158940397356 + ], + "IA Power_0": [ + 7.603913333333328, + 7.165133333333333, + 7.23816556291391 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.950353333333337, + 7.467740000000004, + 7.539854304635765 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4519, + "tests": [ + { + "DRAM Power_0": [ + 0.5832185430463575, + 0.5738874172185425, + 0.5743733333333335 + ], + "GT Power_0": [ + 0.04840397350993376, + 0.01643046357615894, + 0.015999999999999997 + ], + "IA Power_0": [ + 3.400920529801322, + 3.31328476821192, + 3.395966666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6924966887417225, + 3.5537814569536414, + 3.5823466666666657 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7123599999999999, + 0.7127866666666663, + 0.7121199999999996 + ], + "GT Power_0": [ + 0.12540666666666675, + 0.12314000000000007, + 0.1237466666666667 + ], + "IA Power_0": [ + 6.960539999999994, + 6.521799999999995, + 6.609653333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.334013333333334, + 6.915406666666665, + 6.938653333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145199999999995, + 0.712493333333333, + 0.711773333333333 + ], + "GT Power_0": [ + 0.12510000000000002, + 0.12682000000000004, + 0.12606666666666672 + ], + "IA Power_0": [ + 7.096406666666664, + 6.66078, + 6.596653333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.404086666666665, + 6.999019999999997, + 6.98238 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7683400000000004, + 0.7811466666666675, + 0.7701800000000006 + ], + "GT Power_0": [ + 0.26691333333333334, + 0.29943333333333344, + 0.26842666666666654 + ], + "IA Power_0": [ + 7.320079999999998, + 6.859806666666668, + 6.927853333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.868739999999998, + 7.453919999999998, + 7.473746666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7177549668874169, + 0.7182185430463575, + 0.7398066666666662 + ], + "GT Power_0": [ + 0.131523178807947, + 0.12870198675496694, + 0.15358666666666673 + ], + "IA Power_0": [ + 6.6091192052980166, + 6.682456953642384, + 7.2275800000000014 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.028397350993376, + 7.08381456953642, + 7.787253333333336 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD170-A9", + "number": 4518, + "tests": [ + { + "DRAM Power_0": [ + 0.5830599999999999, + 0.5739337748344369, + 0.5848000000000001 + ], + "GT Power_0": [ + 0.03788666666666665, + 0.014152317880794702, + 0.013053333333333333 + ], + "IA Power_0": [ + 2.9849800000000006, + 2.6220463576158948, + 2.815539999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3642733333333337, + 2.894688741721854, + 3.144546666666667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.713079470198675, + 0.709693333333333, + 0.7175562913907282 + ], + "GT Power_0": [ + 0.09727814569536425, + 0.10014666666666663, + 0.09992715231788081 + ], + "IA Power_0": [ + 5.2589072847682115, + 5.205513333333333, + 5.489470198675502 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.583198675496694, + 5.567520000000001, + 5.873483443708609 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7119133333333325, + 0.7269999999999996, + 0.7124533333333325 + ], + "GT Power_0": [ + 0.0942066666666667, + 0.09497333333333341, + 0.0957466666666667 + ], + "IA Power_0": [ + 5.208613333333333, + 5.2008333333333345, + 5.45937333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.570333333333333, + 5.661253333333335, + 5.831540000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7699403973509937, + 0.7694133333333335, + 0.7884701986754974 + ], + "GT Power_0": [ + 0.21860264900662243, + 0.22210666666666679, + 0.2221192052980133 + ], + "IA Power_0": [ + 5.337139072847683, + 5.3920933333333325, + 5.368390728476823 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.855099337748348, + 5.896233333333334, + 5.935854304635764 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7323311258278143, + 0.7342317880794695, + 0.723653333333333 + ], + "GT Power_0": [ + 0.10463576158940399, + 0.09929801324503315, + 0.09803999999999999 + ], + "IA Power_0": [ + 5.308456953642386, + 5.568357615894039, + 5.608966666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.862119205298014, + 6.047026490066223, + 5.9938600000000015 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD145-A9", + "number": 4517, + "tests": [ + { + "DRAM Power_0": [ + 0.5758400000000005, + 0.5750132450331122, + 0.5771258278145698 + ], + "GT Power_0": [ + 0.013946666666666661, + 0.013662251655629138, + 0.014814569536423839 + ], + "IA Power_0": [ + 2.694706666666666, + 2.684907284768212, + 2.785973509933776 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.94352, + 2.9435960264900656, + 3.0180662251655628 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7299533333333332, + 0.7241733333333328, + 0.7155799999999999 + ], + "GT Power_0": [ + 0.09369333333333331, + 0.10927333333333335, + 0.09432666666666673 + ], + "IA Power_0": [ + 5.171033333333332, + 5.225013333333333, + 5.233753333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.5564733333333365, + 5.709973333333334, + 5.597160000000002 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7139799999999995, + 0.7122582781456952, + 0.7272666666666658 + ], + "GT Power_0": [ + 0.09442000000000003, + 0.0879072847682119, + 0.09448666666666669 + ], + "IA Power_0": [ + 5.218593333333334, + 5.190774834437086, + 5.229666666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.576166666666667, + 5.505635761589403, + 5.692353333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7870000000000001, + 0.7718733333333335, + 0.7856333333333336 + ], + "GT Power_0": [ + 0.20570000000000013, + 0.2050266666666667, + 0.2054 + ], + "IA Power_0": [ + 5.342053333333336, + 5.362366666666667, + 5.420919999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.960206666666665, + 5.861606666666667, + 6.075533333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7193133333333327, + 0.7185399999999997, + 0.719273333333333 + ], + "GT Power_0": [ + 0.09532666666666667, + 0.09664666666666674, + 0.09619333333333334 + ], + "IA Power_0": [ + 5.2959666666666685, + 5.270200000000003, + 5.336166666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.638840000000003, + 5.649353333333333, + 5.659446666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD143-A9", + "number": 4516, + "tests": [ + { + "DRAM Power_0": [ + 0.5763799999999998, + 0.5736423841059602, + 0.574543046357616 + ], + "GT Power_0": [ + 0.03277999999999999, + 0.01519205298013245, + 0.023079470198675497 + ], + "IA Power_0": [ + 2.990100000000001, + 2.83458940397351, + 3.0229735099337747 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.246060000000001, + 3.0601788079470196, + 3.25928476821192 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7151655629139065, + 0.7229801324503311, + 0.7138476821192046 + ], + "GT Power_0": [ + 0.11261589403973514, + 0.11341059602649012, + 0.1115562913907285 + ], + "IA Power_0": [ + 5.4741059602648985, + 5.996993377483446, + 5.478357615894037 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.8270066225165555, + 6.3813907284768225, + 5.845675496688742 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7125827814569531, + 0.7124701986754963, + 0.7132266666666663 + ], + "GT Power_0": [ + 0.11221854304635764, + 0.11470860927152321, + 0.11206 + ], + "IA Power_0": [ + 5.379211920529801, + 5.619927152317883, + 5.38427333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7626688741721885, + 5.996317880794704, + 5.755133333333336 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7701533333333332, + 0.7703600000000007, + 0.7719666666666666 + ], + "GT Power_0": [ + 0.23202666666666671, + 0.23716666666666658, + 0.23604666666666654 + ], + "IA Power_0": [ + 5.559286666666664, + 5.8705333333333325, + 5.5081933333333355 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.084040000000001, + 6.404873333333334, + 6.0670399999999995 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7191589403973508, + 0.7189072847682113, + 0.7372199999999993 + ], + "GT Power_0": [ + 0.11907284768211923, + 0.11978145695364245, + 0.11860666666666679 + ], + "IA Power_0": [ + 5.4195827814569535, + 5.473953642384105, + 5.416413333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.866609271523178, + 5.829119205298011, + 5.925966666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4515, + "tests": [ + { + "DRAM Power_0": [ + 0.5744105960264901, + 0.592615894039735, + 0.5878266666666665 + ], + "GT Power_0": [ + 0.014556291390728476, + 0.014735099337748345, + 0.014453333333333337 + ], + "IA Power_0": [ + 3.242258278145695, + 4.024026490066229, + 3.5496466666666673 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4451059602648995, + 4.20272185430464, + 3.9250466666666672 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7132799999999991, + 0.7120333333333325, + 0.713609271523178 + ], + "GT Power_0": [ + 0.10074666666666668, + 0.1001666666666666, + 0.12490728476821197 + ], + "IA Power_0": [ + 6.395686666666664, + 6.401353333333334, + 6.827165562913911 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.727119999999999, + 6.741393333333336, + 7.070503311258279 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7126733333333327, + 0.7339266666666663, + 0.7119599999999994 + ], + "GT Power_0": [ + 0.10266000000000003, + 0.11794000000000002, + 0.09831333333333335 + ], + "IA Power_0": [ + 6.472246666666667, + 6.5362066666666685, + 6.40446 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7996, + 7.051380000000001, + 6.75792666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7958133333333338, + 0.7814200000000007, + 0.7959400000000004 + ], + "GT Power_0": [ + 0.24119333333333348, + 0.24864666666666665, + 0.24926000000000012 + ], + "IA Power_0": [ + 6.649066666666666, + 6.976326666666665, + 6.700486666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.299259999999999, + 7.518373333333334, + 7.366013333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.718186666666666, + 0.7173758389261733, + 0.7182847682119203 + ], + "GT Power_0": [ + 0.10835333333333333, + 0.10850335570469798, + 0.10752317880794705 + ], + "IA Power_0": [ + 6.534406666666669, + 6.850879194630873, + 6.499761589403976 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.871506666666668, + 7.152590604026844, + 6.847059602649008 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 149, + 151 + ] + } + ] + }, + { + "bot": "BUILD181-A9", + "number": 4514, + "tests": [ + { + "DRAM Power_0": [ + 0.5760133333333335, + 0.5749933774834439, + 0.5749133333333333 + ], + "GT Power_0": [ + 0.026886666666666652, + 0.01473509933774834, + 0.014086666666666664 + ], + "IA Power_0": [ + 3.5804133333333326, + 3.078609271523179, + 3.113046666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.819853333333334, + 3.3511920529801325, + 3.3422 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7281866666666661, + 0.7135199999999997, + 0.7283311258278143 + ], + "GT Power_0": [ + 0.10284666666666666, + 0.10312000000000004, + 0.10247682119205304 + ], + "IA Power_0": [ + 6.467620000000001, + 6.1039933333333325, + 6.227006622516557 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.899493333333333, + 6.458186666666665, + 6.6639470198675514 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7152384105960259, + 0.712726666666666, + 0.7144999999999994 + ], + "GT Power_0": [ + 0.10319867549668875, + 0.10201333333333343, + 0.10355333333333337 + ], + "IA Power_0": [ + 6.263834437086094, + 6.126266666666665, + 6.5516066666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.555152317880795, + 6.469319999999998, + 6.8715600000000014 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7816666666666667, + 0.7851466666666671, + 0.7708800000000001 + ], + "GT Power_0": [ + 0.2245266666666666, + 0.22541333333333322, + 0.22382000000000016 + ], + "IA Power_0": [ + 6.438546666666664, + 6.328340000000003, + 6.721906666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.05085333333333, + 6.937746666666668, + 7.1961266666666655 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7193399999999998, + 0.7199399999999995, + 0.722326666666666 + ], + "GT Power_0": [ + 0.10497333333333338, + 0.10640666666666673, + 0.10702 + ], + "IA Power_0": [ + 6.14876666666667, + 6.141373333333333, + 7.026426666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.524653333333336, + 6.519433333333331, + 7.376693333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD179-A9", + "number": 4513, + "tests": [ + { + "DRAM Power_0": [ + 0.5768940397350995, + 0.5770794701986749, + 0.5754105960264901 + ], + "GT Power_0": [ + 0.01831125827814569, + 0.01808609271523178, + 0.01686754966887417 + ], + "IA Power_0": [ + 3.2720264900662235, + 3.5490463576158953, + 3.1894238410596016 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.501311258278147, + 3.8087748344370844, + 3.452417218543045 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7301933333333327, + 0.7139271523178807, + 0.7304768211920531 + ], + "GT Power_0": [ + 0.13136, + 0.12970198675496686, + 0.12950993377483452 + ], + "IA Power_0": [ + 6.351880000000004, + 6.565788079470197, + 6.300066225165562 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.767626666666668, + 6.948304635761592, + 6.78954966887417 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7138476821192049, + 0.7140866666666662, + 0.7363489932885906 + ], + "GT Power_0": [ + 0.1318278145695364, + 0.13218666666666667, + 0.12691946308724833 + ], + "IA Power_0": [ + 6.311635761589405, + 6.429779999999996, + 8.655610738255035 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.673377483443709, + 6.761386666666662, + 9.070087248322151 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.8111849315068496, + 0.7722200000000001, + 0.7861666666666668 + ], + "GT Power_0": [ + 0.27878767123287673, + 0.2750066666666667, + 0.2728066666666667 + ], + "IA Power_0": [ + 8.993047945205479, + 6.460386666666665, + 6.516606666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.545034246575346, + 7.0207000000000015, + 7.277579999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 146, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7210066666666661, + 0.7211986754966886, + 0.7193599999999996 + ], + "GT Power_0": [ + 0.14309333333333327, + 0.13621192052980133, + 0.13681999999999991 + ], + "IA Power_0": [ + 6.584626666666668, + 6.35469536423841, + 6.776213333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.913613333333331, + 6.8182251655629145, + 7.136566666666664 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD121-A9", + "number": 4512, + "tests": [ + { + "DRAM Power_0": [ + 0.5617947019867553, + 0.69189932885906, + 0.5773221476510066 + ], + "GT Power_0": [ + 0.015450331125827816, + 0.016624161073825503, + 0.01526845637583893 + ], + "IA Power_0": [ + 4.00683443708609, + 8.720181208053692, + 4.5866577181208035 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.221463576158941, + 8.969872483221474, + 4.938013422818792 + ], + "name": "Basic", + "samples": [ + 151, + 149, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.6936133333333335, + 0.6864533333333337, + 0.6857533333333332 + ], + "GT Power_0": [ + 0.12404000000000001, + 0.10712000000000006, + 0.10611333333333339 + ], + "IA Power_0": [ + 7.039106666666666, + 7.026766666666666, + 7.342593333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.516380000000005, + 7.366226666666665, + 7.670273333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.6894466666666669, + 0.6812119205298014, + 0.7065066666666665 + ], + "GT Power_0": [ + 0.10453333333333335, + 0.10537748344370859, + 0.10563333333333334 + ], + "IA Power_0": [ + 6.913133333333335, + 7.1266821192052925, + 7.285973333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.261266666666666, + 7.445536423841059, + 7.731253333333336 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7451466666666662, + 0.7446533333333331, + 0.7523600000000001 + ], + "GT Power_0": [ + 0.24102666666666675, + 0.24164666666666657, + 0.2403133333333334 + ], + "IA Power_0": [ + 7.215146666666663, + 7.341906666666668, + 7.4346466666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.719806666666668, + 7.852219999999997, + 7.988246666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.6909133333333334, + 0.6883, + 0.704066666666667 + ], + "GT Power_0": [ + 0.11138666666666666, + 0.10633333333333335, + 0.11110000000000005 + ], + "IA Power_0": [ + 7.152613333333337, + 7.50684, + 7.168166666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5193733333333315, + 7.874926666666667, + 7.548273333333336 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4511, + "tests": [ + { + "DRAM Power_0": [ + 0.5827533333333331, + 0.5751066666666669, + 0.5884799999999997 + ], + "GT Power_0": [ + 0.03352666666666665, + 0.014620000000000003, + 0.014646666666666667 + ], + "IA Power_0": [ + 2.7135333333333334, + 2.6282733333333326, + 2.541553333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0520600000000004, + 2.854166666666668, + 2.9017 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7322599999999998, + 0.7336158940397343, + 0.7307152317880792 + ], + "GT Power_0": [ + 0.10122666666666671, + 0.1030066225165563, + 0.10407947019867551 + ], + "IA Power_0": [ + 5.2267399999999995, + 5.079105960264899, + 4.977523178807948 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.652606666666666, + 5.58315894039735, + 5.445523178807947 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7140399999999996, + 0.7231266666666664, + 0.7310133333333326 + ], + "GT Power_0": [ + 0.10302666666666675, + 0.10284666666666663, + 0.11764000000000001 + ], + "IA Power_0": [ + 4.982299999999995, + 5.335106666666663, + 5.260573333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.379739999999996, + 5.712966666666667, + 5.757346666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7728133333333336, + 0.7739735099337747, + 0.7721533333333338 + ], + "GT Power_0": [ + 0.2152466666666668, + 0.2397682119205298, + 0.22090666666666672 + ], + "IA Power_0": [ + 5.185973333333332, + 5.201026490066227, + 5.406013333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.706506666666669, + 5.715198675496689, + 5.915586666666666 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7352052980132445, + 0.72024, + 0.7192715231788076 + ], + "GT Power_0": [ + 0.10485430463576159, + 0.10350666666666669, + 0.10309933774834439 + ], + "IA Power_0": [ + 5.096947019867549, + 5.1158133333333335, + 5.073721854304636 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.620105960264901, + 5.498833333333333, + 5.465231788079472 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD180-A9", + "number": 4510, + "tests": [ + { + "DRAM Power_0": [ + 0.5733666666666667, + 0.5741721854304634, + 0.5759266666666666 + ], + "GT Power_0": [ + 0.03281333333333332, + 0.016251655629139067, + 0.01624 + ], + "IA Power_0": [ + 3.3164866666666675, + 3.5917086092715227, + 3.4585866666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5567599999999993, + 3.8330728476821174, + 3.6764733333333335 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.711258278145695, + 0.7257399999999995, + 0.7097399999999996 + ], + "GT Power_0": [ + 0.1213377483443708, + 0.12143333333333335, + 0.12036000000000001 + ], + "IA Power_0": [ + 6.451721854304638, + 6.515086666666669, + 6.47506 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.815841059602649, + 6.9415733333333325, + 6.803279999999997 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.710606666666666, + 0.7284799999999997, + 0.7241721854304636 + ], + "GT Power_0": [ + 0.11626666666666667, + 0.11648666666666664, + 0.11906622516556294 + ], + "IA Power_0": [ + 6.841133333333329, + 6.597593333333334, + 7.082847682119207 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.230033333333332, + 7.018066666666667, + 7.496450331125829 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7688344370860932, + 0.7853708609271527, + 0.7858079470198678 + ], + "GT Power_0": [ + 0.26315231788079474, + 0.2634172185430464, + 0.25897350993377477 + ], + "IA Power_0": [ + 7.120284768211919, + 6.797649006622519, + 6.699827814569537 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.599470198675495, + 7.466172185430465, + 7.389629139072845 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7143066666666661, + 0.7167133333333331, + 0.7148543046357613 + ], + "GT Power_0": [ + 0.1252533333333334, + 0.12569999999999998, + 0.1229470198675497 + ], + "IA Power_0": [ + 6.638093333333333, + 6.651106666666669, + 6.594119205298014 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.989019999999997, + 7.009600000000001, + 6.966172185430465 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD147-A9", + "number": 4509, + "tests": [ + { + "DRAM Power_0": [ + 0.5760728476821193, + 0.5758666666666664, + 0.5759933774834436 + ], + "GT Power_0": [ + 0.03487417218543044, + 0.015400000000000004, + 0.015761589403973514 + ], + "IA Power_0": [ + 2.7948145695364257, + 2.81044, + 2.9433642384105956 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.165132450331126, + 3.0457533333333333, + 3.198046357615895 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7297880794701982, + 0.7157748344370854, + 0.7140066225165557 + ], + "GT Power_0": [ + 0.1250132450331126, + 0.1323576158940397, + 0.12820529801324504 + ], + "IA Power_0": [ + 5.337682119205296, + 5.479006622516554, + 5.606258278145696 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.770920529801324, + 5.825529801324504, + 5.976609271523181 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.715406666666666, + 0.7251399999999996, + 0.713933333333333 + ], + "GT Power_0": [ + 0.12557333333333337, + 0.13411333333333342, + 0.12426 + ], + "IA Power_0": [ + 5.429880000000001, + 5.557546666666665, + 5.36762 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.805833333333334, + 6.0180599999999975, + 5.74544 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7985066666666667, + 0.7718741721854311, + 0.7722933333333335 + ], + "GT Power_0": [ + 0.2595533333333332, + 0.2572251655629138, + 0.26100666666666644 + ], + "IA Power_0": [ + 5.529713333333334, + 5.784211920529803, + 5.539899999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.576986666666665, + 6.351417218543052, + 6.090786666666666 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7244999999999998, + 0.7376092715231785, + 0.72051655629139 + ], + "GT Power_0": [ + 0.13226666666666667, + 0.13434437086092718, + 0.13462251655629137 + ], + "IA Power_0": [ + 5.6606000000000005, + 5.75335761589404, + 5.458543046357616 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.058659999999998, + 6.268503311258277, + 5.8513642384106 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD126-A9", + "number": 4508, + "tests": [ + { + "DRAM Power_0": [ + 0.5820533333333332, + 0.5884238410596029, + 0.5800331125827813 + ], + "GT Power_0": [ + 0.03238666666666665, + 0.016039735099337746, + 0.01480794701986755 + ], + "IA Power_0": [ + 3.0471199999999996, + 2.902066225165563, + 3.232947019867551 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.37598, + 3.2960993377483434, + 3.507364238410595 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.715397350993377, + 0.7141733333333329, + 0.7321133333333331 + ], + "GT Power_0": [ + 0.10313907284768209, + 0.10642666666666664, + 0.10620666666666673 + ], + "IA Power_0": [ + 5.744708609271521, + 5.683213333333329, + 6.011319999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.131397350993378, + 6.031553333333333, + 6.483073333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7498399999999993, + 0.7132799999999997, + 0.7152199999999993 + ], + "GT Power_0": [ + 0.11045333333333332, + 0.10407999999999995, + 0.1029866666666667 + ], + "IA Power_0": [ + 6.408506666666667, + 5.872373333333334, + 5.820499999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.020173333333335, + 6.169606666666665, + 6.160060000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7715960264900665, + 0.778833333333334, + 0.7907466666666664 + ], + "GT Power_0": [ + 0.229476821192053, + 0.22952666666666674, + 0.22529333333333337 + ], + "IA Power_0": [ + 5.913642384105962, + 6.643279999999998, + 5.989753333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.42584105960265, + 7.1726666666666645, + 6.588446666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7416199999999997, + 0.7190066666666668, + 0.7184999999999997 + ], + "GT Power_0": [ + 0.10856000000000005, + 0.10798666666666668, + 0.11022666666666664 + ], + "IA Power_0": [ + 5.8384333333333345, + 6.112646666666667, + 5.799299999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4913733333333274, + 6.475539999999999, + 6.190360000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4507, + "tests": [ + { + "DRAM Power_0": [ + 0.5845733333333331, + 0.5757350993377482, + 0.5756599999999998 + ], + "GT Power_0": [ + 0.013399999999999999, + 0.01373509933774834, + 0.01287333333333333 + ], + "IA Power_0": [ + 3.151333333333332, + 2.851158940397351, + 2.8168466666666676 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4052133333333345, + 3.061059602649006, + 3.0631266666666677 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7252133333333332, + 0.7141399999999994, + 0.7141799999999994 + ], + "GT Power_0": [ + 0.09709333333333335, + 0.08876666666666663, + 0.08525999999999997 + ], + "IA Power_0": [ + 5.928340000000005, + 5.556140000000002, + 5.613453333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.373899999999999, + 5.890506666666665, + 5.971466666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7408476821192052, + 0.7167152317880792, + 0.7128333333333332 + ], + "GT Power_0": [ + 0.08538410596026491, + 0.08572185430463576, + 0.08357999999999996 + ], + "IA Power_0": [ + 6.351735099337749, + 5.705496688741725, + 5.591786666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8077417218543035, + 6.0662450331125815, + 5.950399999999998 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7719466666666671, + 0.7713800000000007, + 0.7911266666666675 + ], + "GT Power_0": [ + 0.19866666666666666, + 0.19969333333333333, + 0.1963000000000001 + ], + "IA Power_0": [ + 5.848379999999997, + 5.706333333333331, + 6.385166666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.305853333333338, + 6.193233333333336, + 6.990386666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7178476821192049, + 0.7234304635761584, + 0.7189470198675493 + ], + "GT Power_0": [ + 0.08885430463576158, + 0.08958278145695366, + 0.08989403973509934 + ], + "IA Power_0": [ + 5.597476821192053, + 5.760589403973513, + 5.8632516556291385 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.932642384105962, + 6.100569536423842, + 6.214437086092715 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD163-A9", + "number": 4506, + "tests": [ + { + "DRAM Power_0": [ + 0.5861390728476822, + 0.5741523178807946, + 0.5745894039735097 + ], + "GT Power_0": [ + 0.038211920529801324, + 0.013801324503311261, + 0.015172185430463576 + ], + "IA Power_0": [ + 3.3283973509933777, + 2.899225165562913, + 2.889225165562916 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6767615894039745, + 3.1129801324503314, + 3.125695364238411 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7134569536423838, + 0.7286333333333325, + 0.7164039735099331 + ], + "GT Power_0": [ + 0.09260927152317881, + 0.09078666666666674, + 0.09052980132450333 + ], + "IA Power_0": [ + 5.704264900662247, + 5.769106666666669, + 6.181317880794705 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.04401986754967, + 6.244619999999999, + 6.534980132450334 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7238079470198673, + 0.7136887417218539, + 0.713273333333333 + ], + "GT Power_0": [ + 0.09394039735099334, + 0.08731125827814573, + 0.08537333333333338 + ], + "IA Power_0": [ + 5.821754966887416, + 5.793324503311252, + 6.121306666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.28823178807947, + 6.137443708609272, + 6.443760000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7710800000000003, + 0.7703600000000008, + 0.773133333333334 + ], + "GT Power_0": [ + 0.21270666666666677, + 0.21290666666666672, + 0.2120333333333335 + ], + "IA Power_0": [ + 5.960360000000001, + 6.011273333333333, + 6.1139399999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.483039999999999, + 6.460346666666666, + 6.59562 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7199799999999993, + 0.7187682119205292, + 0.7184834437086085 + ], + "GT Power_0": [ + 0.09552666666666673, + 0.09510596026490067, + 0.09766225165562914 + ], + "IA Power_0": [ + 5.953393333333332, + 6.1481390728476795, + 5.810635761589402 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2836599999999985, + 6.4917218543046324, + 6.177238410596027 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD164-A9", + "number": 4505, + "tests": [ + { + "DRAM Power_0": [ + 0.5780596026490062, + 0.5751059602649001, + 0.5744666666666666 + ], + "GT Power_0": [ + 0.041543046357615875, + 0.015947019867549667, + 0.014240000000000001 + ], + "IA Power_0": [ + 3.147311258278145, + 3.2700132450331116, + 2.918226666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.402635761589405, + 3.520867549668875, + 3.1646666666666663 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7108476821192049, + 0.7283841059602646, + 0.7139666666666664 + ], + "GT Power_0": [ + 0.11360264900662259, + 0.1157350993377484, + 0.11465333333333336 + ], + "IA Power_0": [ + 5.79303311258278, + 6.1026821192053005, + 5.853933333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.155483443708611, + 6.672112582781456, + 6.226133333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7127880794701982, + 0.7123199999999995, + 0.7140133333333326 + ], + "GT Power_0": [ + 0.11226490066225168, + 0.11202000000000005, + 0.1180066666666666 + ], + "IA Power_0": [ + 5.813794701986754, + 5.755380000000004, + 5.869439999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.192675496688743, + 6.166499999999998, + 6.212046666666663 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7702066666666672, + 0.7877333333333338, + 0.7712400000000004 + ], + "GT Power_0": [ + 0.24934666666666666, + 0.2528866666666665, + 0.25007999999999997 + ], + "IA Power_0": [ + 6.36768666666667, + 6.014206666666667, + 6.085940000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.908020000000004, + 6.67498, + 6.602846666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.842878378378378, + 0.7186133333333327, + 0.7312582781456952 + ], + "GT Power_0": [ + 0.12570270270270276, + 0.12392, + 0.12413245033112587 + ], + "IA Power_0": [ + 10.852000000000002, + 5.992646666666669, + 5.971708609271521 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 11.277101351351346, + 6.321953333333332, + 6.431821192052976 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 148, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD118-A9", + "number": 4504, + "tests": [ + { + "DRAM Power_0": [ + 0.5758741721854301, + 0.5740728476821191, + 0.573573333333333 + ], + "GT Power_0": [ + 0.0354437086092715, + 0.014529801324503312, + 0.014226666666666669 + ], + "IA Power_0": [ + 3.159841059602648, + 2.8359139072847688, + 2.7761466666666683 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.428370860927153, + 3.0905827814569546, + 3.040146666666666 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7271266666666663, + 0.7109933774834433, + 0.7307066666666664 + ], + "GT Power_0": [ + 0.09694666666666675, + 0.09631125827814571, + 0.09820000000000004 + ], + "IA Power_0": [ + 5.745539999999999, + 5.48543046357616, + 5.653446666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.2204933333333345, + 5.8078940397351, + 6.056013333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7108543046357612, + 0.7113799999999999, + 0.7121266666666658 + ], + "GT Power_0": [ + 0.09518543046357616, + 0.09782666666666665, + 0.10372666666666666 + ], + "IA Power_0": [ + 5.408688741721855, + 5.56096, + 5.709453333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.761317880794701, + 5.87872, + 6.088840000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7779133333333338, + 0.77834, + 0.8158400000000001 + ], + "GT Power_0": [ + 0.24420000000000003, + 0.2523, + 0.24687333333333333 + ], + "IA Power_0": [ + 5.641526666666667, + 5.6491199999999955, + 6.68396 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.173466666666668, + 6.191166666666667, + 7.351593333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7337466666666663, + 0.7171854304635757, + 0.7184503311258275 + ], + "GT Power_0": [ + 0.10826666666666665, + 0.10749006622516565, + 0.108430463576159 + ], + "IA Power_0": [ + 5.538226666666668, + 5.511807947019868, + 5.835185430463578 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.008553333333332, + 5.89292052980132, + 6.2050596026490075 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4503, + "tests": [ + { + "DRAM Power_0": [ + 0.5876999999999994, + 0.5759999999999996, + 0.5884635761589398 + ], + "GT Power_0": [ + 0.03283999999999998, + 0.014649006622516555, + 0.014668874172185426 + ], + "IA Power_0": [ + 3.2794266666666667, + 3.4245099337748353, + 3.088867549668873 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.633393333333332, + 3.680900662251655, + 3.3852317880794707 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7168013245033108, + 0.7342399999999994, + 0.7130799999999994 + ], + "GT Power_0": [ + 0.09878807947019869, + 0.10114666666666669, + 0.10179333333333335 + ], + "IA Power_0": [ + 6.175099337748344, + 6.962793333333334, + 6.116 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.557364238410596, + 7.312693333333332, + 6.480773333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7226333333333327, + 0.7130662251655624, + 0.7339266666666666 + ], + "GT Power_0": [ + 0.10348666666666669, + 0.10376158940397344, + 0.10348000000000004 + ], + "IA Power_0": [ + 7.171926666666663, + 6.097205298013243, + 6.277940000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5151800000000035, + 6.443125827814572, + 6.735720000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7729266666666668, + 0.7988410596026496, + 0.7701324503311262 + ], + "GT Power_0": [ + 0.2220866666666666, + 0.2246887417218543, + 0.22811258278145696 + ], + "IA Power_0": [ + 6.614026666666667, + 6.266940397350991, + 6.250019867549668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.114146666666666, + 7.192238410596028, + 6.775609271523178 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7360533333333331, + 0.7163642384105959, + 0.7187682119205294 + ], + "GT Power_0": [ + 0.10637999999999999, + 0.1069602649006623, + 0.10619867549668875 + ], + "IA Power_0": [ + 6.169993333333335, + 6.154509933774835, + 6.491079470198674 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6079066666666675, + 6.503139072847685, + 6.848158940397352 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4502, + "tests": [ + { + "DRAM Power_0": [ + 0.580273333333333, + 0.5738999999999997, + 0.5736158940397347 + ], + "GT Power_0": [ + 0.04265333333333332, + 0.016453333333333334, + 0.016576158940397347 + ], + "IA Power_0": [ + 3.3088533333333348, + 3.2795066666666672, + 3.2987615894039726 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.617666666666665, + 3.537260000000001, + 3.542298013245033 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7122533333333331, + 0.7350927152317874, + 0.71123178807947 + ], + "GT Power_0": [ + 0.12334666666666669, + 0.1262384105960265, + 0.1220596026490066 + ], + "IA Power_0": [ + 6.5640333333333345, + 6.856099337748345, + 6.591655629139073 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.92906, + 7.468271523178807, + 6.977205298013247 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7134199999999994, + 0.7274503311258276, + 0.7276133333333321 + ], + "GT Power_0": [ + 0.11987333333333342, + 0.12335099337748345, + 0.12260666666666675 + ], + "IA Power_0": [ + 6.725033333333331, + 7.044172185430467, + 6.51143333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.015593333333334, + 7.535821192052979, + 7.046399999999998 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7700133333333337, + 0.7707333333333339, + 0.7717615894039738 + ], + "GT Power_0": [ + 0.26764000000000016, + 0.2665466666666669, + 0.26968874172185436 + ], + "IA Power_0": [ + 6.844293333333335, + 6.779446666666666, + 6.835490066225168 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.3866200000000015, + 7.298606666666668, + 7.376072847682118 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7212980132450325, + 0.7185231788079467, + 0.7196466666666658 + ], + "GT Power_0": [ + 0.1305960264900663, + 0.13003973509933775, + 0.1313933333333333 + ], + "IA Power_0": [ + 7.260834437086093, + 6.669993377483447, + 6.795113333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.61943708609272, + 7.012509933774834, + 7.14442 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4501, + "tests": [ + { + "DRAM Power_0": [ + 0.5756291390728476, + 0.5842913907284768, + 0.5747814569536424 + ], + "GT Power_0": [ + 0.020370860927152318, + 0.018357615894039732, + 0.019496688741721856 + ], + "IA Power_0": [ + 2.9422185430463577, + 2.701013245033113, + 3.152523178807946 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.1926291390728485, + 3.0898940397351007, + 3.4180860927152326 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7081999999999997, + 0.7287199999999997, + 0.7090132450331122 + ], + "GT Power_0": [ + 0.14016000000000006, + 0.1442466666666666, + 0.13986754966887419 + ], + "IA Power_0": [ + 5.41468666666667, + 5.485160000000005, + 5.481549668874175 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.82533333333333, + 6.037133333333337, + 5.908900662251651 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7088874172185425, + 0.7421390728476814, + 0.7325466666666665 + ], + "GT Power_0": [ + 0.14012582781456953, + 0.13922516556291387, + 0.14310000000000003 + ], + "IA Power_0": [ + 5.454344370860927, + 6.455039735099338, + 5.566366666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.86039072847682, + 6.958298013245033, + 6.338206666666671 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7710333333333338, + 0.7737266666666669, + 0.7623600000000004 + ], + "GT Power_0": [ + 0.35899333333333333, + 0.36776000000000003, + 0.32636 + ], + "IA Power_0": [ + 5.692346666666669, + 5.982259999999999, + 5.748579999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.349166666666671, + 6.639373333333332, + 6.324019999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7129799999999995, + 0.7173533333333334, + 0.7158799999999996 + ], + "GT Power_0": [ + 0.14945999999999998, + 0.15250666666666657, + 0.15366666666666667 + ], + "IA Power_0": [ + 5.543213333333332, + 6.098546666666667, + 5.594466666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9186933333333345, + 6.546626666666664, + 6.053899999999998 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD147-A9", + "number": 4500, + "tests": [ + { + "DRAM Power_0": [ + 0.5620927152317882, + 0.5734370860927148, + 0.5772666666666668 + ], + "GT Power_0": [ + 0.01876158940397351, + 0.01649668874172185, + 0.016026666666666665 + ], + "IA Power_0": [ + 6.7415562913907285, + 2.6552450331125828, + 3.0505200000000015 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.992192052980135, + 2.9009470198675498, + 3.2957466666666666 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145599999999998, + 0.7160133333333328, + 0.7267599999999996 + ], + "GT Power_0": [ + 0.12874000000000002, + 0.12605333333333338, + 0.12631333333333328 + ], + "IA Power_0": [ + 5.382899999999998, + 6.13444666666667, + 5.20050666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.71968, + 6.56557333333333, + 5.705246666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7273666666666663, + 0.7141986754966877, + 0.7120466666666662 + ], + "GT Power_0": [ + 0.12925333333333341, + 0.12742384105960264, + 0.12954666666666667 + ], + "IA Power_0": [ + 5.279240000000001, + 5.504450331125825, + 5.211879999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.792460000000003, + 5.907827814569535, + 5.648580000000003 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8269333333333335, + 0.7938145695364242, + 0.770313333333334 + ], + "GT Power_0": [ + 0.2793933333333333, + 0.2805761589403972, + 0.27389333333333343 + ], + "IA Power_0": [ + 6.933226666666666, + 5.691496688741721, + 5.4626800000000015 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.587306666666665, + 6.331596026490064, + 6.009999999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172251655629139, + 0.7412516556291388, + 0.7188079470198672 + ], + "GT Power_0": [ + 0.13493377483443705, + 0.13504635761589412, + 0.13219205298013242 + ], + "IA Power_0": [ + 5.3535496688741695, + 6.047099337748347, + 5.352192052980131 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.755993377483443, + 6.5846754966887415, + 5.781662251655623 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD142-A9", + "number": 4499, + "tests": [ + { + "DRAM Power_0": [ + 0.573549668874172, + 0.5736466666666664, + 0.5749933774834434 + ], + "GT Power_0": [ + 0.016582781456953643, + 0.016046666666666667, + 0.016397350993377482 + ], + "IA Power_0": [ + 2.989668874172185, + 3.059786666666666, + 3.4055894039735093 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.226403973509934, + 3.2979133333333333, + 3.637317880794702 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7235866666666664, + 0.7138675496688741, + 0.711433333333333 + ], + "GT Power_0": [ + 0.11763999999999995, + 0.12064900662251658, + 0.1214733333333334 + ], + "IA Power_0": [ + 6.044466666666666, + 5.995596026490069, + 6.08732666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.522753333333333, + 6.378642384105956, + 6.444560000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7121399999999992, + 0.7155369127516777, + 0.71304 + ], + "GT Power_0": [ + 0.1175266666666666, + 0.1168120805369128, + 0.1175 + ], + "IA Power_0": [ + 6.038933333333336, + 6.814449664429532, + 6.056333333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.401300000000001, + 7.133677852348995, + 6.416906666666668 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7948266666666671, + 0.7707133333333337, + 0.7879666666666668 + ], + "GT Power_0": [ + 0.25854666666666676, + 0.26298666666666676, + 0.26258666666666663 + ], + "IA Power_0": [ + 6.910833333333336, + 6.626073333333332, + 6.226179999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.529780000000002, + 7.163499999999999, + 6.8944533333333355 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7366266666666664, + 0.7178399999999996, + 0.736264900662251 + ], + "GT Power_0": [ + 0.14311333333333331, + 0.1200866666666667, + 0.12769536423841063 + ], + "IA Power_0": [ + 6.1484733333333335, + 6.462166666666669, + 6.1341788079470225 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.705073333333331, + 6.844246666666665, + 6.631251655629138 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD183-A9", + "number": 4498, + "tests": [ + { + "DRAM Power_0": [ + 0.5740933333333331, + 0.5871192052980131, + 0.5694900662251653 + ], + "GT Power_0": [ + 0.04265999999999998, + 0.015377483443708607, + 0.015145695364238413 + ], + "IA Power_0": [ + 3.3425400000000005, + 2.937701986754967, + 2.833682119205298 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6105200000000006, + 3.28817880794702, + 3.0668807947019876 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7143178807947016, + 0.711966666666666, + 0.7139533333333326 + ], + "GT Power_0": [ + 0.11626490066225162, + 0.12051999999999997, + 0.11998666666666667 + ], + "IA Power_0": [ + 6.401701986754969, + 5.955126666666667, + 6.211560000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.761635761589403, + 6.331286666666665, + 6.504360000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7315666666666659, + 0.7111333333333327, + 0.7124599999999999 + ], + "GT Power_0": [ + 0.11956666666666668, + 0.11668666666666672, + 0.1199733333333333 + ], + "IA Power_0": [ + 5.959186666666667, + 5.966173333333333, + 6.276080000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.466613333333333, + 6.336493333333331, + 6.64748666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7687549668874176, + 0.7848933333333337, + 0.774626666666667 + ], + "GT Power_0": [ + 0.2557748344370862, + 0.2563333333333334, + 0.25952666666666663 + ], + "IA Power_0": [ + 6.123860927152318, + 6.1601066666666675, + 6.494466666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6597682119205315, + 6.752480000000001, + 7.02924 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7173599999999996, + 0.7161799999999999, + 0.7163576158940398 + ], + "GT Power_0": [ + 0.12394666666666668, + 0.12444666666666665, + 0.1236622516556292 + ], + "IA Power_0": [ + 6.030906666666666, + 5.996326666666669, + 6.322430463576161 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.393393333333328, + 6.428059999999998, + 6.687377483443707 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD154-A9", + "number": 4497, + "tests": [ + { + "DRAM Power_0": [ + 0.5754933333333336, + 0.5870000000000001, + 0.5736333333333336 + ], + "GT Power_0": [ + 0.017106666666666662, + 0.017331125827814566, + 0.016860000000000003 + ], + "IA Power_0": [ + 3.076986666666666, + 3.082609271523179, + 3.004986666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3158999999999996, + 3.355278145695364, + 3.2498199999999997 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7326666666666661, + 0.7244466666666664, + 0.7109933333333328 + ], + "GT Power_0": [ + 0.12724666666666673, + 0.15016000000000004, + 0.12748666666666664 + ], + "IA Power_0": [ + 6.78750666666667, + 6.003893333333332, + 5.993839999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.227480000000002, + 6.540473333333336, + 6.329953333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7338466666666664, + 0.710893333333333, + 0.7245999999999999 + ], + "GT Power_0": [ + 0.12976666666666667, + 0.12608666666666662, + 0.12643333333333337 + ], + "IA Power_0": [ + 6.983100000000002, + 5.982373333333336, + 6.599346666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.465686666666661, + 6.373100000000002, + 6.926193333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7673133333333336, + 0.7685496688741724, + 0.7711800000000001 + ], + "GT Power_0": [ + 0.2739, + 0.27357615894039744, + 0.27922 + ], + "IA Power_0": [ + 6.204139999999999, + 6.110205298013242, + 6.523673333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.755613333333332, + 6.683099337748347, + 7.077280000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7350266666666662, + 0.7159199999999997, + 0.7225199999999997 + ], + "GT Power_0": [ + 0.13545333333333343, + 0.1361533333333333, + 0.14835333333333325 + ], + "IA Power_0": [ + 6.024646666666666, + 6.104940000000003, + 6.468186666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.565739999999997, + 6.474973333333334, + 6.912886666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD176-A9", + "number": 4496, + "tests": [ + { + "DRAM Power_0": [ + 0.5822066666666672, + 0.5883576158940396, + 0.574298013245033 + ], + "GT Power_0": [ + 0.04695333333333332, + 0.015900662251655626, + 0.015927152317880798 + ], + "IA Power_0": [ + 2.668146666666667, + 2.6448211920529805, + 2.9130860927152322 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0484399999999994, + 3.0384370860927152, + 3.149165562913907 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7132516556291388, + 0.7119470198675494, + 0.7136466666666665 + ], + "GT Power_0": [ + 0.1074834437086093, + 0.10405298013245036, + 0.09972666666666666 + ], + "IA Power_0": [ + 5.1402781456953655, + 5.123145695364241, + 5.426760000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.502099337748345, + 5.485582781456955, + 5.770273333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7255033112582778, + 0.7121666666666662, + 0.7131125827814564 + ], + "GT Power_0": [ + 0.10174834437086096, + 0.10684000000000005, + 0.1030860927152318 + ], + "IA Power_0": [ + 5.209728476821193, + 5.204060000000002, + 5.192688741721852 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.682390728476824, + 5.538826666666668, + 5.535430463576159 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7708609271523188, + 0.7923800000000005, + 0.7721854304635763 + ], + "GT Power_0": [ + 0.22414569536423842, + 0.22788666666666663, + 0.22669536423841075 + ], + "IA Power_0": [ + 5.3236158940397384, + 5.715326666666665, + 5.330675496688739 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.070834437086089, + 6.426493333333331, + 5.840145695364237 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7329999999999999, + 0.7286225165562911, + 0.7177066666666659 + ], + "GT Power_0": [ + 0.1104172185430464, + 0.11147019867549665, + 0.10810000000000003 + ], + "IA Power_0": [ + 5.27037748344371, + 5.811953642384106, + 5.226193333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.759980132450335, + 6.184894039735102, + 5.553873333333336 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4495, + "tests": [ + { + "DRAM Power_0": [ + 0.5731666666666668, + 0.5741266666666665, + 0.5733245033112581 + ], + "GT Power_0": [ + 0.044786666666666634, + 0.015653333333333335, + 0.017357615894039745 + ], + "IA Power_0": [ + 3.3167466666666674, + 3.7572, + 3.332344370860928 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5717333333333334, + 3.980786666666668, + 3.5356026490066217 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7116133333333328, + 0.7097399999999995, + 0.717433333333333 + ], + "GT Power_0": [ + 0.12218000000000005, + 0.11859333333333341, + 0.12415333333333337 + ], + "IA Power_0": [ + 6.503446666666664, + 6.454873333333334, + 6.777733333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.868733333333335, + 6.849333333333332, + 7.136686666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7109536423841055, + 0.7272933333333336, + 0.7125733333333333 + ], + "GT Power_0": [ + 0.11962251655629148, + 0.12087333333333333, + 0.12158 + ], + "IA Power_0": [ + 6.895748344370861, + 6.524746666666665, + 6.564693333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.262192052980133, + 6.964106666666667, + 6.917600000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7689600000000003, + 0.7702200000000005, + 0.7702866666666666 + ], + "GT Power_0": [ + 0.2641199999999998, + 0.2651733333333333, + 0.2670133333333333 + ], + "IA Power_0": [ + 7.120746666666667, + 6.8359733333333335, + 6.7006066666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.689546666666671, + 7.35062, + 7.235300000000003 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7342266666666658, + 0.7178807947019862, + 0.7206466666666663 + ], + "GT Power_0": [ + 0.1279333333333334, + 0.12862913907284773, + 0.12858000000000006 + ], + "IA Power_0": [ + 6.618280000000004, + 6.575225165562914, + 7.36524 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.122806666666668, + 6.973410596026488, + 7.7682866666666675 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD142-A9", + "number": 4494, + "tests": [ + { + "DRAM Power_0": [ + 0.5823245033112584, + 0.5873533333333335, + 0.5739801324503312 + ], + "GT Power_0": [ + 0.0359801324503311, + 0.015659999999999997, + 0.015629139072847686 + ], + "IA Power_0": [ + 3.09887417218543, + 3.0377199999999998, + 3.05330463576159 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4284900662251663, + 3.4116799999999987, + 3.2948145695364217 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7237066666666665, + 0.7124933333333331, + 0.7261920529801322 + ], + "GT Power_0": [ + 0.11567333333333338, + 0.11625333333333325, + 0.1173509933774834 + ], + "IA Power_0": [ + 6.391406666666667, + 6.032226666666669, + 6.021847682119205 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7773666666666665, + 6.370893333333338, + 6.508039735099336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7120733333333328, + 0.7249933333333327, + 0.7125733333333328 + ], + "GT Power_0": [ + 0.11338666666666666, + 0.12776000000000007, + 0.11578666666666668 + ], + "IA Power_0": [ + 6.346886666666666, + 6.0936666666666675, + 6.030566666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.720626666666666, + 6.581440000000002, + 6.3717999999999995 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.76948, + 0.7719666666666667, + 0.7759466666666666 + ], + "GT Power_0": [ + 0.2605866666666666, + 0.26061333333333314, + 0.2587000000000001 + ], + "IA Power_0": [ + 6.215440000000001, + 6.1937066666666665, + 6.604846666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.7672, + 6.793006666666664, + 7.222073333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7179333333333335, + 0.7294933333333335, + 0.7176933333333329 + ], + "GT Power_0": [ + 0.12335333333333329, + 0.12239333333333334, + 0.12272000000000001 + ], + "IA Power_0": [ + 6.075293333333334, + 6.139239999999999, + 6.343753333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4533933333333335, + 6.664813333333337, + 6.728346666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD154-A9", + "number": 4493, + "tests": [ + { + "DRAM Power_0": [ + 0.56984, + 0.5806490066225164, + 0.5744966887417222 + ], + "GT Power_0": [ + 0.039606666666666665, + 0.016066225165562914, + 0.017483443708609277 + ], + "IA Power_0": [ + 2.9931866666666656, + 2.866609271523178, + 2.983238410596026 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.2276000000000016, + 3.228900662251657, + 3.237205298013244 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7126466666666661, + 0.7189801324503307, + 0.724622516556291 + ], + "GT Power_0": [ + 0.12625333333333338, + 0.1278344370860928, + 0.12502649006622524 + ], + "IA Power_0": [ + 6.1403799999999995, + 6.265887417218544, + 5.991046357615894 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.51796, + 6.742754966887418, + 6.5141986754966865 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7210397350993373, + 0.7232933333333331, + 0.7286423841059595 + ], + "GT Power_0": [ + 0.12762251655629137, + 0.12567333333333328, + 0.12389403973509933 + ], + "IA Power_0": [ + 6.005635761589402, + 6.296193333333335, + 5.959754966887418 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.502807947019867, + 6.79403333333333, + 6.520821192052981 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7790993377483449, + 0.7701400000000003, + 0.7687800000000002 + ], + "GT Power_0": [ + 0.3020596026490068, + 0.2819400000000001, + 0.27164 + ], + "IA Power_0": [ + 6.202370860927152, + 6.180080000000001, + 6.309653333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.772132450331125, + 6.748973333333334, + 6.789513333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7306556291390724, + 0.7157483443708605, + 0.7305562913907282 + ], + "GT Power_0": [ + 0.13269536423841058, + 0.1322847682119205, + 0.13345033112582794 + ], + "IA Power_0": [ + 5.990013245033112, + 6.080635761589403, + 6.025410596026489 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.427483443708612, + 6.459900662251656, + 6.45603311258278 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD135-A9", + "number": 4492, + "tests": [ + { + "DRAM Power_0": [ + 0.5824437086092714, + 0.5748410596026489, + 0.5766357615894038 + ], + "GT Power_0": [ + 0.05092715231788078, + 0.020086092715231783, + 0.020324503311258273 + ], + "IA Power_0": [ + 3.609907284768212, + 3.531132450331126, + 3.5492052980132454 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.999761589403973, + 3.7920529801324476, + 3.7743973509933775 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7112199999999995, + 0.7113509933774833, + 0.7283533333333329 + ], + "GT Power_0": [ + 0.14350666666666667, + 0.14782119205298017, + 0.14624666666666664 + ], + "IA Power_0": [ + 7.488060000000001, + 7.132231788079474, + 7.169180000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.8964399999999975, + 7.5213377483443695, + 7.730053333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.711026666666666, + 0.727253333333333, + 0.7118399999999999 + ], + "GT Power_0": [ + 0.14281333333333335, + 0.14584666666666676, + 0.1478733333333333 + ], + "IA Power_0": [ + 7.530306666666664, + 7.214746666666669, + 7.163893333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.94717333333333, + 7.649286666666667, + 7.526213333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7677133333333338, + 0.771825503355705, + 0.7882933333333336 + ], + "GT Power_0": [ + 0.32554666666666665, + 0.32928187919463126, + 0.34746 + ], + "IA Power_0": [ + 7.465226666666671, + 7.9061744966442955, + 7.863880000000007 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.093013333333332, + 8.514711409395975, + 8.659473333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7338866666666659, + 0.727013333333333, + 0.7157615894039732 + ], + "GT Power_0": [ + 0.1528133333333333, + 0.15527999999999995, + 0.1539801324503311 + ], + "IA Power_0": [ + 7.200893333333332, + 7.279726666666665, + 7.674125827814565 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.7257466666666685, + 7.8951599999999935, + 8.052304635761589 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD147-A9", + "number": 4491, + "tests": [ + { + "DRAM Power_0": [ + 0.5760733333333331, + 0.5747880794701989, + 0.5705496688741721 + ], + "GT Power_0": [ + 0.04551999999999999, + 0.015708609271523174, + 0.014986754966887417 + ], + "IA Power_0": [ + 2.740286666666667, + 2.7505960264900673, + 2.5432847682119197 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.0096399999999996, + 2.991741721854305, + 2.7976887417218554 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7246533333333329, + 0.7153509933774826, + 0.712033112582781 + ], + "GT Power_0": [ + 0.12576000000000007, + 0.12454304635761593, + 0.12621854304635766 + ], + "IA Power_0": [ + 5.808833333333334, + 5.372768211920528, + 5.368019867549668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.179226666666666, + 5.756794701986758, + 5.74783443708609 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7136688741721849, + 0.7129139072847676, + 0.7139139072847677 + ], + "GT Power_0": [ + 0.12531788079470196, + 0.12353642384105964, + 0.12619867549668884 + ], + "IA Power_0": [ + 5.585582781456954, + 5.377006622516555, + 5.375086092715232 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.967072847682119, + 5.754410596026491, + 5.752920529801324 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7817400000000003, + 0.7692052980132452, + 0.786761589403974 + ], + "GT Power_0": [ + 0.2664399999999999, + 0.25386754966887404, + 0.2543973509933776 + ], + "IA Power_0": [ + 5.58254, + 5.5191920529801335, + 5.787794701986753 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.311039999999999, + 6.045026490066224, + 6.427635761589407 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7279867549668873, + 0.7170399999999996, + 0.7336622516556289 + ], + "GT Power_0": [ + 0.1288410596026491, + 0.13710000000000008, + 0.13903973509933776 + ], + "IA Power_0": [ + 5.866629139072848, + 5.410133333333335, + 5.642801324503309 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.247993377483444, + 5.81910666666667, + 6.134880794701988 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD175-A9", + "number": 4490, + "tests": [ + { + "DRAM Power_0": [ + 0.5870397350993377, + 0.5740331125827816, + 0.5737666666666665 + ], + "GT Power_0": [ + 0.01505960264900662, + 0.014490066225165566, + 0.014319999999999998 + ], + "IA Power_0": [ + 3.0059801324503304, + 2.963483443708608, + 3.3164999999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.273708609271523, + 3.2245496688741726, + 3.5654399999999993 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7150266666666664, + 0.7128799999999995, + 0.7342599999999999 + ], + "GT Power_0": [ + 0.10265333333333342, + 0.10398000000000006, + 0.10280000000000004 + ], + "IA Power_0": [ + 6.158326666666666, + 5.866499999999999, + 5.901653333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.533853333333334, + 6.2320466666666725, + 6.42144666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7129735099337742, + 0.7124599999999994, + 0.713426666666666 + ], + "GT Power_0": [ + 0.09927814569536424, + 0.1015266666666667, + 0.10386000000000002 + ], + "IA Power_0": [ + 5.890569536423841, + 6.193913333333334, + 5.8696066666666695 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.249721854304636, + 6.563399999999999, + 6.2404600000000015 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7854000000000001, + 0.770766666666667, + 0.7855466666666668 + ], + "GT Power_0": [ + 0.2316066666666667, + 0.24515333333333317, + 0.23296000000000003 + ], + "IA Power_0": [ + 6.10684, + 6.439513333333338, + 6.0715866666666685 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.683106666666666, + 6.966853333333334, + 6.767759999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7175399999999997, + 0.7387399999999995, + 0.7182119205298011 + ], + "GT Power_0": [ + 0.11302666666666666, + 0.1042666666666667, + 0.10684768211920535 + ], + "IA Power_0": [ + 6.0405599999999975, + 6.042186666666668, + 6.055801324503313 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3616600000000005, + 6.716073333333334, + 6.427960264900661 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4489, + "tests": [ + { + "DRAM Power_0": [ + 0.5847333333333334, + 0.5897682119205295, + 0.5742933333333332 + ], + "GT Power_0": [ + 0.05276666666666665, + 0.020615894039735107, + 0.02019333333333333 + ], + "IA Power_0": [ + 2.9919066666666674, + 3.039264900662253, + 2.7505800000000007 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3203466666666666, + 3.373384105960264, + 3.0094533333333335 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.724986754966887, + 0.7082599999999997, + 0.7060533333333328 + ], + "GT Power_0": [ + 0.13918543046357615, + 0.1358933333333334, + 0.13808 + ], + "IA Power_0": [ + 5.474364238410596, + 5.377280000000002, + 5.52254 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.979291390728474, + 5.7822466666666665, + 5.864913333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7092399999999996, + 0.7128874172185429, + 0.7332516556291384 + ], + "GT Power_0": [ + 0.13582666666666665, + 0.14349006622516555, + 0.14647019867549665 + ], + "IA Power_0": [ + 5.6827733333333335, + 5.516450331125828, + 5.476920529801323 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.071726666666666, + 5.910854304635765, + 6.230291390728477 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7642466666666671, + 0.7717333333333334, + 0.7632000000000004 + ], + "GT Power_0": [ + 0.32714666666666664, + 0.3254266666666668, + 0.3263399999999998 + ], + "IA Power_0": [ + 5.961246666666669, + 5.710160000000003, + 5.705220000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.580486666666665, + 6.429533333333334, + 6.3317 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7128399999999997, + 0.7119599999999998, + 0.7130866666666665 + ], + "GT Power_0": [ + 0.15400666666666657, + 0.14755333333333331, + 0.1505533333333333 + ], + "IA Power_0": [ + 5.507386666666668, + 5.653233333333335, + 5.88041333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.9457466666666665, + 6.047346666666668, + 6.260506666666663 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4488, + "tests": [ + { + "DRAM Power_0": [ + 0.5748410596026489, + 0.5737152317880794, + 0.5882649006622515 + ], + "GT Power_0": [ + 0.03784105960264899, + 0.014046357615894036, + 0.014900662251655625 + ], + "IA Power_0": [ + 2.624132450331126, + 2.811549668874172, + 2.517390728476822 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 2.899278145695366, + 3.06758940397351, + 2.813456953642384 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7293199999999995, + 0.7116333333333332, + 0.7303266666666659 + ], + "GT Power_0": [ + 0.09778666666666663, + 0.09712666666666663, + 0.09711999999999997 + ], + "IA Power_0": [ + 4.986773333333332, + 5.247660000000002, + 5.123773333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.462233333333335, + 5.6017866666666665, + 5.602213333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7110399999999996, + 0.7130728476821183, + 0.7128666666666663 + ], + "GT Power_0": [ + 0.09444666666666665, + 0.09739072847682122, + 0.09378000000000006 + ], + "IA Power_0": [ + 5.0239400000000005, + 5.045496688741721, + 5.074560000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.3966866666666675, + 5.386278145695365, + 5.395280000000003 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7708476821192055, + 0.7788266666666671, + 0.7714733333333338 + ], + "GT Power_0": [ + 0.2117350993377484, + 0.21849999999999994, + 0.21350000000000008 + ], + "IA Power_0": [ + 5.464907284768211, + 5.217613333333328, + 5.167700000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.951350993377483, + 5.849793333333331, + 5.698440000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7172847682119201, + 0.7303799999999999, + 0.7188599999999993 + ], + "GT Power_0": [ + 0.10359602649006623, + 0.10727333333333332, + 0.10492666666666671 + ], + "IA Power_0": [ + 5.3547880794702, + 5.0981266666666665, + 5.163246666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.722251655629138, + 5.501993333333331, + 5.513126666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4487, + "tests": [ + { + "DRAM Power_0": [ + 0.5903245033112581, + 0.5897284768211916, + 0.5919999999999996 + ], + "GT Power_0": [ + 0.01443046357615894, + 0.015013245033112578, + 0.015139072847682126 + ], + "IA Power_0": [ + 3.1753112582781458, + 3.5078079470198666, + 4.092324503311259 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.489549668874174, + 3.815708609271524, + 4.368966887417219 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.727193333333333, + 0.7054635761589402, + 0.7191409395973153 + ], + "GT Power_0": [ + 0.09454000000000001, + 0.09602649006622521, + 0.09606040268456376 + ], + "IA Power_0": [ + 6.417213333333334, + 6.379218543046357, + 6.263100671140936 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.849899999999999, + 6.80007284768212, + 6.6709798657718125 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.730715231788079, + 0.728026666666666, + 0.7391689189189186 + ], + "GT Power_0": [ + 0.10024503311258283, + 0.09457333333333338, + 0.09416216216216221 + ], + "IA Power_0": [ + 6.113701986754965, + 5.863939999999999, + 6.3515675675675665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.582814569536423, + 6.279706666666667, + 6.733858108108107 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 148 + ] + }, + { + "DRAM Power_0": [ + 0.7766158940397355, + 0.7776490066225171, + 0.7744066666666669 + ], + "GT Power_0": [ + 0.21236423841059612, + 0.21368211920529792, + 0.2119933333333334 + ], + "IA Power_0": [ + 6.093476821192054, + 5.88419205298013, + 6.201699999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.639112582781454, + 6.443503311258277, + 6.754073333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7180596026490063, + 0.7087333333333334, + 0.7167866666666661 + ], + "GT Power_0": [ + 0.10079470198675497, + 0.09989333333333335, + 0.10018666666666665 + ], + "IA Power_0": [ + 5.9471390728476825, + 6.468299999999999, + 6.794800000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.369920529801327, + 6.889626666666669, + 7.222866666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD121-A9", + "number": 4486, + "tests": [ + { + "DRAM Power_0": [ + 0.5767066666666668, + 0.5918145695364234, + 0.59023178807947 + ], + "GT Power_0": [ + 0.01535333333333333, + 0.016033112582781454, + 0.017357615894039738 + ], + "IA Power_0": [ + 3.5522066666666685, + 3.1750000000000003, + 3.155264900662252 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.826833333333333, + 3.522907284768211, + 3.518066225165563 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7303533333333325, + 0.7141533333333326, + 0.7176466666666663 + ], + "GT Power_0": [ + 0.11123333333333332, + 0.10756666666666667, + 0.11020666666666663 + ], + "IA Power_0": [ + 6.241686666666668, + 6.3015733333333355, + 7.139433333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.684346666666666, + 6.672359999999998, + 7.484653333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7145333333333329, + 0.7155827814569534, + 0.7300066666666664 + ], + "GT Power_0": [ + 0.10908666666666669, + 0.11038410596026502, + 0.10926666666666669 + ], + "IA Power_0": [ + 6.252353333333332, + 6.4056026490066245, + 6.77768 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.651886666666665, + 6.72319205298013, + 7.212346666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7723933333333333, + 0.7695466666666669, + 0.7741133333333337 + ], + "GT Power_0": [ + 0.2483733333333334, + 0.2451800000000001, + 0.2451533333333333 + ], + "IA Power_0": [ + 6.606186666666664, + 6.541553333333332, + 6.991746666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.117393333333336, + 7.076493333333333, + 7.504953333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7197666666666666, + 0.7311666666666664, + 0.7199999999999995 + ], + "GT Power_0": [ + 0.11477333333333341, + 0.1137866666666667, + 0.11294000000000001 + ], + "IA Power_0": [ + 6.407673333333336, + 6.441479999999995, + 6.4329666666666645 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.781866666666667, + 6.964673333333335, + 6.830133333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD154-A9", + "number": 4485, + "tests": [ + { + "DRAM Power_0": [ + 0.5842199999999997, + 0.570841059602649, + 0.571887417218543 + ], + "GT Power_0": [ + 0.04626666666666666, + 0.016158940397350996, + 0.01703973509933775 + ], + "IA Power_0": [ + 3.0830466666666676, + 2.797423841059604, + 2.804880794701987 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.429306666666666, + 3.0530596026490047, + 3.080701986754967 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.711546666666666, + 0.726926666666666, + 1.0203708609271522 + ], + "GT Power_0": [ + 0.13228, + 0.13062666666666664, + 0.13282781456953643 + ], + "IA Power_0": [ + 6.104306666666665, + 5.829273333333333, + 15.092986754966894 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.514266666666668, + 6.327599999999999, + 15.898920529801329 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7292066666666663, + 0.7093066666666662, + 0.715079470198675 + ], + "GT Power_0": [ + 0.12860000000000002, + 0.1261533333333334, + 0.12937086092715233 + ], + "IA Power_0": [ + 6.927013333333331, + 5.9141600000000025, + 5.985622516556292 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.280599999999996, + 6.30050666666666, + 6.375490066225163 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7722847682119209, + 0.782966666666667, + 0.7697133333333338 + ], + "GT Power_0": [ + 0.27511258278145717, + 0.27831999999999996, + 0.2901866666666667 + ], + "IA Power_0": [ + 6.231139072847682, + 6.090393333333335, + 6.522039999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.750781456953641, + 6.752719999999996, + 6.967860000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7187682119205293, + 0.7419006622516553, + 0.7188999999999995 + ], + "GT Power_0": [ + 0.13888079470198678, + 0.13671523178807957, + 0.13842666666666667 + ], + "IA Power_0": [ + 6.02603973509934, + 6.097807947019868, + 6.316499999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.394039735099338, + 6.764238410596027, + 6.711913333333337 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD132-A9", + "number": 4484, + "tests": [ + { + "DRAM Power_0": [ + 0.5756953642384105, + 0.5742266666666663, + 0.5746466666666666 + ], + "GT Power_0": [ + 0.014443708609271527, + 0.013486666666666664, + 0.012646666666666667 + ], + "IA Power_0": [ + 3.4516556291390716, + 3.112853333333332, + 3.1072066666666673 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.665602649006623, + 3.3495733333333333, + 3.3263000000000007 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7148476821192045, + 0.7243973509933769, + 0.7146799999999996 + ], + "GT Power_0": [ + 0.09370860927152316, + 0.09606622516556292, + 0.09110000000000004 + ], + "IA Power_0": [ + 6.232529801324501, + 6.2685496688741695, + 6.718173333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.56553642384106, + 6.689576158940401, + 7.059633333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7286953642384097, + 0.7271466666666662, + 0.7159006622516549 + ], + "GT Power_0": [ + 0.0912980132450331, + 0.08916000000000004, + 0.09452980132450339 + ], + "IA Power_0": [ + 6.310986754966888, + 6.2778, + 6.7478344370860945 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.716880794701982, + 6.697606666666669, + 6.995940397350995 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.797793333333334, + 0.7933466666666669, + 0.7857218543046363 + ], + "GT Power_0": [ + 0.20499333333333347, + 0.20383333333333326, + 0.20521854304635756 + ], + "IA Power_0": [ + 6.896699999999997, + 6.479746666666666, + 6.542278145695363 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.411773333333335, + 7.1516399999999996, + 7.141264900662248 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7198476821192048, + 0.7392199999999995, + 0.7218940397350986 + ], + "GT Power_0": [ + 0.10236423841059603, + 0.09567999999999999, + 0.09950993377483444 + ], + "IA Power_0": [ + 6.384105960264902, + 7.202253333333333, + 6.383052980132449 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.715443708609271, + 7.621306666666667, + 6.705331125827814 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4483, + "tests": [ + { + "DRAM Power_0": [ + 0.6011799999999996, + 0.6090993377483446, + 0.6016733333333328 + ], + "GT Power_0": [ + 0.04569999999999997, + 0.015748344370860926, + 0.016453333333333337 + ], + "IA Power_0": [ + 4.093166666666669, + 4.174562913907284, + 4.385120000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.330073333333335, + 4.426178807947021, + 4.6462400000000015 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7309602649006625, + 0.7462052980132449, + 0.7295133333333326 + ], + "GT Power_0": [ + 0.11923178807947019, + 0.11917218543046358, + 0.11719333333333336 + ], + "IA Power_0": [ + 6.9887880794702015, + 7.0280397350993375, + 7.344326666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.39158278145695, + 7.460894039735103, + 7.703046666666669 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.731370860927152, + 0.7311655629139068, + 0.7326066666666663 + ], + "GT Power_0": [ + 0.1194437086092715, + 0.11794039735099333, + 0.11856666666666667 + ], + "IA Power_0": [ + 7.002079470198676, + 7.107920529801325, + 7.054886666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.362966887417214, + 7.420761589403971, + 7.428826666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7889470198675501, + 0.8197086092715237, + 0.788649006622517 + ], + "GT Power_0": [ + 0.25820529801324504, + 0.2569602649006624, + 0.2540529801324506 + ], + "IA Power_0": [ + 7.219026490066224, + 7.527807947019868, + 7.327695364238409 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.783622516556293, + 8.258211920529801, + 7.843245033112583 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7377880794701982, + 0.7357533333333328, + 0.737072847682119 + ], + "GT Power_0": [ + 0.12070198675496693, + 0.12082000000000001, + 0.12678145695364243 + ], + "IA Power_0": [ + 7.106801324503307, + 7.531113333333335, + 7.08914569536424 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.474357615894037, + 7.8947266666666716, + 7.458278145695366 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD131-A9", + "number": 4482, + "tests": [ + { + "DRAM Power_0": [ + 0.5981655629139071, + 0.6014635761589404, + 0.6003178807947017 + ], + "GT Power_0": [ + 0.015284768211920523, + 0.01623841059602649, + 0.015827814569536417 + ], + "IA Power_0": [ + 4.037781456953642, + 3.8898476821192065, + 4.097721854304636 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.202470198675497, + 4.063298013245033, + 4.280231788079468 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7577066666666664, + 0.739033333333333, + 0.7387399999999996 + ], + "GT Power_0": [ + 0.11755999999999998, + 0.11491999999999997, + 0.11587333333333341 + ], + "IA Power_0": [ + 6.305319999999999, + 6.206006666666666, + 6.472866666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.912880000000001, + 6.537206666666667, + 6.76257333333333 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7375099337748343, + 0.7462185430463574, + 0.7368533333333328 + ], + "GT Power_0": [ + 0.11250993377483444, + 0.10896026490066227, + 0.1141 + ], + "IA Power_0": [ + 6.238781456953642, + 6.29935761589404, + 6.211873333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.546629139072849, + 6.6382516556291415, + 6.567493333333328 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8007466666666672, + 0.7981600000000003, + 0.7997533333333336 + ], + "GT Power_0": [ + 0.24723333333333344, + 0.24397999999999997, + 0.26274000000000003 + ], + "IA Power_0": [ + 6.473993333333333, + 6.652240000000001, + 6.411639999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9584866666666665, + 7.1574199999999975, + 6.931206666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7751133333333329, + 0.7451125827814568, + 0.7432866666666669 + ], + "GT Power_0": [ + 0.13094, + 0.12672185430463576, + 0.12277333333333332 + ], + "IA Power_0": [ + 6.486006666666666, + 6.639973509933773, + 6.31694 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.383986666666665, + 6.954986754966889, + 6.645206666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD158-A9", + "number": 4481, + "tests": [ + { + "DRAM Power_0": [ + 0.6028675496688745, + 0.6117019867549665, + 0.5963973509933773 + ], + "GT Power_0": [ + 0.04256953642384105, + 0.01711920529801324, + 0.016105960264900663 + ], + "IA Power_0": [ + 3.9557880794702, + 4.284788079470197, + 3.877847682119208 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.235052980132455, + 4.701006622516554, + 4.092139072847683 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7349000000000001, + 0.7465298013245033, + 0.7505666666666658 + ], + "GT Power_0": [ + 0.13605333333333341, + 0.13666887417218543, + 0.13164000000000006 + ], + "IA Power_0": [ + 6.949326666666664, + 7.402596026490067, + 6.933393333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.321060000000004, + 7.80864238410596, + 7.504420000000003 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7525466666666665, + 0.7651066666666663, + 0.7350733333333329 + ], + "GT Power_0": [ + 0.13177333333333338, + 0.13251999999999994, + 0.13376000000000007 + ], + "IA Power_0": [ + 6.9860200000000034, + 6.9900866666666674, + 7.022386666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.561046666666663, + 8.119133333333334, + 7.361886666666664 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.791566666666667, + 0.8102000000000007, + 0.8069000000000007 + ], + "GT Power_0": [ + 0.28162, + 0.2793999999999999, + 0.29582666666666674 + ], + "IA Power_0": [ + 7.698393333333338, + 7.383940000000003, + 7.346093333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.258346666666666, + 8.05298, + 7.99622 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7394533333333331, + 0.7399066666666665, + 0.7404400000000001 + ], + "GT Power_0": [ + 0.14317333333333335, + 0.1515933333333333, + 0.14856000000000003 + ], + "IA Power_0": [ + 7.505013333333338, + 7.148493333333333, + 7.223353333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.888119999999997, + 7.518146666666669, + 7.534813333333338 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD141-A9", + "number": 4480, + "tests": [ + { + "DRAM Power_0": [ + 0.5983533333333328, + 0.6194999999999999, + 0.6297152317880794 + ], + "GT Power_0": [ + 0.03637333333333332, + 0.018006666666666667, + 0.014894039735099342 + ], + "IA Power_0": [ + 4.069319999999999, + 6.97935333333333, + 5.231695364238411 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.308873333333334, + 7.196726666666665, + 5.642761589403972 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7371986754966886, + 0.7576799999999997, + 0.7421390728476818 + ], + "GT Power_0": [ + 0.12298675496688741, + 0.12359333333333336, + 0.11995364238410598 + ], + "IA Power_0": [ + 7.902185430463574, + 7.897533333333334, + 9.310741721854303 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.364801324503311, + 8.597246666666667, + 10.09041059602649 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7397333333333331, + 0.7324701986754965, + 0.7451266666666667 + ], + "GT Power_0": [ + 0.12129333333333339, + 0.1191986754966888, + 0.1191066666666666 + ], + "IA Power_0": [ + 7.877733333333335, + 8.34368874172185, + 7.714073333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.308346666666667, + 8.773132450331122, + 8.12716666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7931466666666672, + 0.8061324503311259, + 0.8018999999999998 + ], + "GT Power_0": [ + 0.24718666666666664, + 0.25013907284768205, + 0.2471466666666668 + ], + "IA Power_0": [ + 8.437619999999999, + 8.36149006622517, + 8.410073333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.997619999999998, + 8.871364238410592, + 8.959826666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7613266666666664, + 0.7433973509933773, + 0.7728278145695363 + ], + "GT Power_0": [ + 0.12994000000000006, + 0.13262251655629148, + 0.1307218543046358 + ], + "IA Power_0": [ + 8.239899999999997, + 8.457649006622526, + 8.195165562913905 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.817273333333338, + 8.930046357615897, + 9.04187417218543 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD173-A9", + "number": 4479, + "tests": [ + { + "DRAM Power_0": [ + 0.6045033112582779, + 0.59746357615894, + 0.6104333333333332 + ], + "GT Power_0": [ + 0.04225165562913905, + 0.01696688741721854, + 0.01596666666666667 + ], + "IA Power_0": [ + 4.138933774834437, + 4.319483443708606, + 3.923440000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.364761589403973, + 4.5293907284768204, + 4.304093333333333 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7325999999999996, + 0.7331799999999999, + 0.7331533333333331 + ], + "GT Power_0": [ + 0.13057333333333332, + 0.13452000000000006, + 0.13522 + ], + "IA Power_0": [ + 6.9959733333333345, + 6.99301333333333, + 7.033066666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.3786066666666645, + 7.367633333333333, + 7.345920000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7332649006622514, + 0.7317266666666662, + 0.7357549668874166 + ], + "GT Power_0": [ + 0.12973509933774838, + 0.12555333333333338, + 0.1240331125827815 + ], + "IA Power_0": [ + 7.256662251655628, + 7.026053333333331, + 7.028715231788081 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.668059602649007, + 7.3731599999999995, + 7.39082119205298 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8061854304635768, + 0.7921800000000001, + 0.7911324503311261 + ], + "GT Power_0": [ + 0.2712781456953643, + 0.27149999999999996, + 0.2678741721854303 + ], + "IA Power_0": [ + 7.633874172185432, + 7.355879999999999, + 7.346172185430463 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.310708609271531, + 7.855226666666672, + 7.870052980132453 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7387019867549668, + 0.7365761589403967, + 0.7394966887417215 + ], + "GT Power_0": [ + 0.1362516556291391, + 0.13688079470198683, + 0.1379006622516557 + ], + "IA Power_0": [ + 7.437264900662252, + 7.204761589403976, + 7.098291390728474 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.828523178807947, + 7.588384105960263, + 7.494490066225169 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4478, + "tests": [ + { + "DRAM Power_0": [ + 0.5982913907284767, + 0.5980733333333335, + 0.5976799999999998 + ], + "GT Power_0": [ + 0.017198675496688742, + 0.01714, + 0.016506666666666666 + ], + "IA Power_0": [ + 4.348317880794701, + 4.400233333333334, + 4.280039999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.563377483443708, + 4.6049266666666675, + 4.508180000000001 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7590927152317881, + 0.7356999999999997, + 0.733666666666666 + ], + "GT Power_0": [ + 0.11533112582781463, + 0.11925333333333336, + 0.12194666666666673 + ], + "IA Power_0": [ + 7.8119403973509955, + 7.498453333333334, + 7.493606666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.488788079470199, + 7.814773333333336, + 7.846973333333329 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7610399999999999, + 0.7349933774834434, + 0.7362599999999997 + ], + "GT Power_0": [ + 0.11684666666666663, + 0.1184635761589404, + 0.1244666666666667 + ], + "IA Power_0": [ + 8.74606, + 7.648483443708611, + 7.618720000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.10026, + 7.961450331125824, + 7.990140000000003 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8138400000000003, + 0.7935600000000004, + 0.7933333333333334 + ], + "GT Power_0": [ + 0.26403999999999994, + 0.2538133333333333, + 0.2572266666666666 + ], + "IA Power_0": [ + 8.018786666666669, + 7.913713333333328, + 8.234560000000004 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.92822666666667, + 8.418833333333337, + 8.802386666666665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7565933333333333, + 0.7407417218543048, + 0.7471199999999995 + ], + "GT Power_0": [ + 0.12454000000000005, + 0.1270066225165563, + 0.12727333333333343 + ], + "IA Power_0": [ + 7.649573333333337, + 7.749556291390731, + 8.47865333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.10526, + 8.123933774834438, + 8.815473333333331 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD148-A9", + "number": 4477, + "tests": [ + { + "DRAM Power_0": [ + 0.6016866666666666, + 0.5994039735099336, + 0.5982133333333329 + ], + "GT Power_0": [ + 0.042086666666666626, + 0.02005298013245033, + 0.01949333333333333 + ], + "IA Power_0": [ + 3.515360000000001, + 3.4556490066225156, + 3.7125666666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.777973333333334, + 3.8354238410596033, + 3.9909399999999997 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7300599999999998, + 0.7500794701986752, + 0.7295231788079467 + ], + "GT Power_0": [ + 0.15203333333333333, + 0.1520331125827815, + 0.15462913907284764 + ], + "IA Power_0": [ + 5.889973333333335, + 5.931370860927151, + 6.173642384105961 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.285833333333333, + 6.49267549668874, + 6.585721854304635 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7444768211920526, + 0.7304172185430463, + 0.7301599999999996 + ], + "GT Power_0": [ + 0.15168211920529798, + 0.1489801324503311, + 0.15102666666666667 + ], + "IA Power_0": [ + 5.964086092715232, + 5.934774834437089, + 5.996673333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.495695364238412, + 6.343357615894041, + 6.400713333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7830466666666668, + 0.7824533333333334, + 0.7858133333333335 + ], + "GT Power_0": [ + 0.34444666666666673, + 0.34647333333333347, + 0.34575333333333336 + ], + "IA Power_0": [ + 6.215853333333332, + 6.468913333333332, + 6.250333333333328 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.877233333333332, + 7.145986666666663, + 6.882953333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7512384105960263, + 0.7327466666666667, + 0.7374039735099345 + ], + "GT Power_0": [ + 0.16448344370860937, + 0.1597, + 0.16574172185430466 + ], + "IA Power_0": [ + 6.039304635761591, + 6.341920000000001, + 6.131152317880794 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.638596026490068, + 6.723326666666668, + 6.529264900662253 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD126-A9", + "number": 4476, + "tests": [ + { + "DRAM Power_0": [ + 0.5999801324503308, + 0.6020533333333331, + 0.6142119205298013 + ], + "GT Power_0": [ + 0.014761589403973511, + 0.015186666666666666, + 0.014867549668874172 + ], + "IA Power_0": [ + 3.69735761589404, + 4.357173333333333, + 3.675523178807947 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9593509933774826, + 4.588926666666667, + 4.023350993377482 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7346399999999996, + 0.734206666666666, + 0.7509599999999997 + ], + "GT Power_0": [ + 0.11675999999999997, + 0.1136533333333334, + 0.11466666666666667 + ], + "IA Power_0": [ + 6.606520000000001, + 6.328066666666665, + 6.232493333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.952139999999999, + 6.644973333333334, + 6.75058 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7348533333333331, + 0.7575999999999997, + 0.736313333333333 + ], + "GT Power_0": [ + 0.11146666666666669, + 0.11132, + 0.11349999999999999 + ], + "IA Power_0": [ + 6.597246666666671, + 6.946439999999999, + 6.326553333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.978773333333334, + 7.342593333333334, + 6.668466666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7926933333333338, + 0.8081589403973517, + 0.7939400000000006 + ], + "GT Power_0": [ + 0.2411400000000001, + 0.2424238410596026, + 0.2434866666666666 + ], + "IA Power_0": [ + 6.535133333333334, + 6.549900662251658, + 6.843693333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0980799999999995, + 7.205026490066226, + 7.403313333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7419266666666666, + 0.7421266666666665, + 0.7485266666666665 + ], + "GT Power_0": [ + 0.12218000000000001, + 0.11909999999999998, + 0.13004 + ], + "IA Power_0": [ + 6.467733333333335, + 6.514893333333335, + 6.793846666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8135200000000005, + 6.882620000000002, + 7.24116 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD153-A9", + "number": 4475, + "tests": [ + { + "DRAM Power_0": [ + 0.5988807947019865, + 0.5990133333333328, + 0.5999933333333333 + ], + "GT Power_0": [ + 0.013397350993377482, + 0.014293333333333335, + 0.01358 + ], + "IA Power_0": [ + 3.2349470198675494, + 3.2778133333333335, + 3.257366666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5102649006622504, + 3.52492, + 3.523653333333334 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7352266666666665, + 0.7372266666666664, + 0.7551456953642378 + ], + "GT Power_0": [ + 0.09295333333333332, + 0.09236666666666667, + 0.11179470198675494 + ], + "IA Power_0": [ + 5.638426666666665, + 5.892066666666666, + 5.640304635761591 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.0271066666666675, + 6.220953333333332, + 6.342668874172187 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7647666666666664, + 0.7552999999999997, + 0.7363443708609271 + ], + "GT Power_0": [ + 0.09182666666666668, + 0.09254000000000007, + 0.09560927152317879 + ], + "IA Power_0": [ + 5.562093333333332, + 6.472086666666666, + 5.589350993377485 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.449093333333331, + 6.833746666666667, + 5.943059602649005 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7923000000000006, + 0.7935533333333336, + 0.7933333333333336 + ], + "GT Power_0": [ + 0.21066000000000001, + 0.21680666666666673, + 0.21196666666666653 + ], + "IA Power_0": [ + 5.874206666666667, + 5.861533333333334, + 5.897906666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.382106666666671, + 6.336526666666666, + 6.389293333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7428466666666661, + 0.7423266666666665, + 0.7535999999999996 + ], + "GT Power_0": [ + 0.10463333333333334, + 0.10036000000000005, + 0.10142666666666668 + ], + "IA Power_0": [ + 5.873973333333334, + 5.732620000000002, + 5.701546666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.265579999999999, + 6.099173333333333, + 6.1318600000000005 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4474, + "tests": [ + { + "DRAM Power_0": [ + 0.5996291390728474, + 0.6012847682119203, + 0.6001721854304636 + ], + "GT Power_0": [ + 0.03261589403973508, + 0.01358278145695364, + 0.014370860927152318 + ], + "IA Power_0": [ + 3.588927152317879, + 3.3441258278145694, + 3.2964238410596014 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.84480132450331, + 3.594019867549671, + 3.5491920529801315 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7359205298013242, + 0.7366225165562911, + 0.7340533333333329 + ], + "GT Power_0": [ + 0.09711258278145696, + 0.09456953642384111, + 0.10035333333333331 + ], + "IA Power_0": [ + 6.13747682119205, + 5.747821192052981, + 5.810686666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.494311258278145, + 6.113993377483445, + 6.1703933333333305 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.746993333333333, + 0.7565399999999994, + 0.7356291390728473 + ], + "GT Power_0": [ + 0.10239333333333331, + 0.09538666666666669, + 0.09759602649006627 + ], + "IA Power_0": [ + 5.851686666666668, + 5.807286666666666, + 6.129781456953642 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.322646666666669, + 6.33228, + 6.461158940397349 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8080866666666673, + 0.8386133333333339, + 0.8021400000000005 + ], + "GT Power_0": [ + 0.23468666666666668, + 0.23007333333333327, + 0.23478666666666673 + ], + "IA Power_0": [ + 6.3082, + 6.6489666666666665, + 6.389020000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.795719999999999, + 7.374593333333339, + 6.88734666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7428145695364236, + 0.7394199999999997, + 0.7406666666666666 + ], + "GT Power_0": [ + 0.10737086092715237, + 0.10232666666666673, + 0.10682 + ], + "IA Power_0": [ + 5.917728476821192, + 5.931066666666667, + 5.9039666666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.304384105960266, + 6.2888533333333285, + 6.291466666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD168-A9", + "number": 4473, + "tests": [ + { + "DRAM Power_0": [ + 0.6068599999999997, + 0.5994834437086087, + 0.5995496688741716 + ], + "GT Power_0": [ + 0.03833333333333331, + 0.015443708609271519, + 0.01588079470198675 + ], + "IA Power_0": [ + 3.7172733333333325, + 3.915125827814571, + 3.677258278145695 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.09884, + 4.173403973509935, + 3.9305033112582786 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7526423841059598, + 0.7369466666666665, + 0.7553599999999996 + ], + "GT Power_0": [ + 0.12382119205298006, + 0.12754666666666656, + 0.12010000000000003 + ], + "IA Power_0": [ + 6.388774834437085, + 6.518580000000003, + 6.371033333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.873046357615892, + 6.848633333333332, + 6.962859999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7489333333333331, + 0.7355827814569534, + 0.7622516556291384 + ], + "GT Power_0": [ + 0.12298666666666667, + 0.12105298013245037, + 0.12168211920529808 + ], + "IA Power_0": [ + 6.787219999999999, + 6.462370860927149, + 6.46517880794702 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.351079999999999, + 7.295046357615895, + 7.25309933774834 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7927814569536427, + 0.8003733333333338, + 0.792206666666667 + ], + "GT Power_0": [ + 0.2603642384105961, + 0.2611733333333332, + 0.25613999999999987 + ], + "IA Power_0": [ + 7.067079470198676, + 6.814866666666669, + 6.709026666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.609715231788074, + 7.4233933333333315, + 7.220693333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.739553333333333, + 0.7405999999999998, + 0.7393999999999998 + ], + "GT Power_0": [ + 0.15200666666666673, + 0.1342533333333333, + 0.13484666666666664 + ], + "IA Power_0": [ + 6.607753333333333, + 6.550139999999997, + 6.836499999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9472799999999975, + 6.935113333333336, + 7.223600000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD124-A9", + "number": 4472, + "tests": [ + { + "DRAM Power_0": [ + 0.6179470198675497, + 0.6265364238410593, + 0.6130397350993372 + ], + "GT Power_0": [ + 0.016801324503311253, + 0.01831788079470198, + 0.017019867549668877 + ], + "IA Power_0": [ + 5.408, + 4.624410596026491, + 4.469695364238409 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.914271523178806, + 4.952437086092716, + 4.734834437086092 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7351589403973507, + 0.758833333333333, + 0.7661799999999993 + ], + "GT Power_0": [ + 0.1294635761589404, + 0.1290066666666666, + 0.1259466666666666 + ], + "IA Power_0": [ + 7.366562913907284, + 7.343673333333333, + 7.266960000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.780953642384106, + 8.157873333333338, + 8.060379999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7608533333333332, + 0.7584933333333329, + 0.7461721854304633 + ], + "GT Power_0": [ + 0.12708666666666663, + 0.12718, + 0.12739072847682117 + ], + "IA Power_0": [ + 7.028633333333333, + 7.448046666666667, + 7.961086092715232 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5781666666666645, + 8.022513333333332, + 8.389357615894038 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7905333333333338, + 0.8027200000000001, + 0.7941733333333336 + ], + "GT Power_0": [ + 0.28196666666666664, + 0.28061333333333327, + 0.2774466666666667 + ], + "IA Power_0": [ + 7.366873333333336, + 8.063293333333332, + 7.797653333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.998146666666663, + 8.827033333333333, + 8.416986666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7498333333333335, + 0.7586999999999999, + 0.7413800000000001 + ], + "GT Power_0": [ + 0.13563999999999993, + 0.1389333333333333, + 0.14037333333333327 + ], + "IA Power_0": [ + 7.600073333333332, + 7.769879999999997, + 7.441126666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.064393333333333, + 8.355659999999999, + 7.907160000000005 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD143-A9", + "number": 4471, + "tests": [ + { + "DRAM Power_0": [ + 0.6020397350993375, + 0.5972199999999998, + 0.5994599999999997 + ], + "GT Power_0": [ + 0.043139072847682106, + 0.014886666666666664, + 0.014659999999999996 + ], + "IA Power_0": [ + 3.503344370860926, + 3.3389999999999995, + 3.902446666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.77501986754967, + 3.591126666666669, + 4.1365333333333325 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7353933333333332, + 0.7506266666666663, + 0.7358211920529799 + ], + "GT Power_0": [ + 0.12356666666666667, + 0.11985333333333337, + 0.12565562913907283 + ], + "IA Power_0": [ + 5.715639999999997, + 5.767393333333333, + 5.985092715231787 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.106086666666665, + 6.3580666666666685, + 6.380993377483449 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7368609271523175, + 0.732688741721854, + 0.7452200000000001 + ], + "GT Power_0": [ + 0.1200728476821192, + 0.12115231788079465, + 0.13201999999999997 + ], + "IA Power_0": [ + 5.719370860927155, + 5.717569536423842, + 5.810486666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.095920529801323, + 6.159569536423841, + 6.316760000000001 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8096800000000002, + 0.7913576158940402, + 0.7925933333333333 + ], + "GT Power_0": [ + 0.24934000000000012, + 0.25336423841059597, + 0.2509466666666667 + ], + "IA Power_0": [ + 6.013973333333333, + 6.203284768211918, + 6.028000000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.68474666666666, + 6.736834437086092, + 6.560499999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7411199999999999, + 0.7407284768211919, + 0.7403178807947016 + ], + "GT Power_0": [ + 0.13135333333333332, + 0.12914569536423837, + 0.12629801324503312 + ], + "IA Power_0": [ + 5.753066666666666, + 6.038841059602649, + 5.767682119205294 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.155460000000002, + 6.456192052980132, + 6.164721854304638 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4470, + "tests": [ + { + "DRAM Power_0": [ + 0.5989999999999999, + 0.597473333333333, + 0.5981599999999997 + ], + "GT Power_0": [ + 0.046233333333333314, + 0.016513333333333335, + 0.01540666666666667 + ], + "IA Power_0": [ + 3.718873333333334, + 3.964280000000002, + 3.6543199999999985 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9819000000000013, + 4.210419999999998, + 3.8810133333333328 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7339066666666665, + 0.735026490066225, + 0.7480199999999996 + ], + "GT Power_0": [ + 0.12943333333333332, + 0.12981456953642392, + 0.12960000000000002 + ], + "IA Power_0": [ + 6.46533333333333, + 6.63594701986755, + 6.413186666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.879786666666667, + 7.019092715231787, + 7.029386666666669 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7332599999999996, + 0.7320533333333333, + 0.7380533333333331 + ], + "GT Power_0": [ + 0.12839999999999993, + 0.12855333333333335, + 0.12783999999999995 + ], + "IA Power_0": [ + 6.274673333333332, + 6.403206666666666, + 6.4603933333333305 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6909600000000005, + 6.770000000000002, + 6.841839999999998 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7891000000000001, + 0.7909602649006624, + 0.788886666666667 + ], + "GT Power_0": [ + 0.3049333333333333, + 0.29317218543046336, + 0.2908666666666667 + ], + "IA Power_0": [ + 6.996973333333332, + 6.702754966887416, + 6.782453333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.54718, + 7.24517880794702, + 7.342246666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.735226666666666, + 0.7351533333333328, + 0.7381866666666668 + ], + "GT Power_0": [ + 0.13508000000000014, + 0.13908000000000006, + 0.13864000000000004 + ], + "IA Power_0": [ + 6.678566666666666, + 6.431026666666669, + 6.411753333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.052779999999999, + 6.831493333333338, + 6.8069000000000015 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD142-A9", + "number": 4469, + "tests": [ + { + "DRAM Power_0": [ + 0.6294999999999995, + 0.5987019867549664, + 0.6101933333333328 + ], + "GT Power_0": [ + 0.04237333333333331, + 0.016953642384105953, + 0.016566666666666664 + ], + "IA Power_0": [ + 4.632186666666665, + 3.7451456953642395, + 3.7797266666666642 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.987139999999998, + 3.991337748344371, + 4.093233333333331 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7380872483221473, + 0.7378199999999998, + 0.7339733333333334 + ], + "GT Power_0": [ + 0.13102684563758393, + 0.13403333333333337, + 0.1450066666666667 + ], + "IA Power_0": [ + 7.263302013422821, + 6.568326666666667, + 6.557946666666665 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.599449664429532, + 6.927246666666668, + 6.898793333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 149, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7522533333333328, + 0.7355066666666664, + 0.7469666666666666 + ], + "GT Power_0": [ + 0.13337333333333337, + 0.1325733333333333, + 0.13164 + ], + "IA Power_0": [ + 6.8695999999999975, + 6.603446666666667, + 6.468673333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.335039999999999, + 7.001066666666666, + 6.971653333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7951000000000001, + 0.7910466666666672, + 0.7906490066225169 + ], + "GT Power_0": [ + 0.27978666666666685, + 0.2829333333333332, + 0.2813112582781455 + ], + "IA Power_0": [ + 7.011873333333333, + 6.873433333333334, + 7.1686953642384115 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.551806666666668, + 7.43036, + 7.726913907284764 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7413933333333331, + 0.7412466666666665, + 0.7417599999999998 + ], + "GT Power_0": [ + 0.1530333333333333, + 0.14445999999999995, + 0.1400466666666667 + ], + "IA Power_0": [ + 6.7552333333333365, + 6.668506666666668, + 7.05186666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.134766666666665, + 7.071186666666666, + 7.4222933333333305 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD138-A9", + "number": 4468, + "tests": [ + { + "DRAM Power_0": [ + 0.6251599999999997, + 0.5984966887417215, + 0.5977866666666665 + ], + "GT Power_0": [ + 0.013506666666666665, + 0.014768211920529807, + 0.01422666666666666 + ], + "IA Power_0": [ + 3.8250400000000004, + 3.1435496688741726, + 3.0339 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.094866666666666, + 3.3708145695364236, + 3.2921400000000007 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.763726666666666, + 0.7376933333333329, + 0.7350599999999995 + ], + "GT Power_0": [ + 0.11024666666666676, + 0.11212000000000001, + 0.10886666666666675 + ], + "IA Power_0": [ + 5.4199733333333295, + 5.415840000000001, + 5.397540000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.8728399999999965, + 5.784206666666666, + 5.774406666666663 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7539801324503308, + 0.7362066666666661, + 0.7361266666666664 + ], + "GT Power_0": [ + 0.1057748344370861, + 0.10518666666666669, + 0.10869333333333336 + ], + "IA Power_0": [ + 5.360562913907286, + 5.420286666666665, + 5.410919999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.854695364238412, + 5.781260000000004, + 5.786993333333337 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8037600000000003, + 0.8022866666666671, + 0.8001200000000004 + ], + "GT Power_0": [ + 0.24838666666666678, + 0.25227333333333346, + 0.25188000000000005 + ], + "IA Power_0": [ + 5.653320000000001, + 5.587606666666667, + 5.60350666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.198666666666664, + 6.145746666666668, + 6.147053333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7439466666666662, + 0.7411133333333335, + 0.7426999999999994 + ], + "GT Power_0": [ + 0.11842666666666671, + 0.12275333333333328, + 0.11716666666666664 + ], + "IA Power_0": [ + 5.515153333333335, + 5.4889666666666646, + 5.466813333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.879219999999999, + 5.898773333333332, + 5.839873333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD129-A9", + "number": 4467, + "tests": [ + { + "DRAM Power_0": [ + 0.60082, + 0.6121399999999998, + 0.5987066666666663 + ], + "GT Power_0": [ + 0.033493333333333326, + 0.0126, + 0.013479999999999999 + ], + "IA Power_0": [ + 3.3426533333333315, + 3.4969199999999994, + 3.7934733333333344 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.6367733333333354, + 3.818406666666668, + 4.039813333333332 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7485629139072845, + 0.7369072847682118, + 0.7371800000000001 + ], + "GT Power_0": [ + 0.0931721854304636, + 0.09173509933774843, + 0.09043999999999995 + ], + "IA Power_0": [ + 6.073688741721857, + 6.120019867549669, + 6.076360000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.501622516556295, + 6.442066225165563, + 6.440446666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7373399999999997, + 0.7343399999999995, + 0.7367466666666667 + ], + "GT Power_0": [ + 0.09830000000000001, + 0.08888666666666667, + 0.09255333333333335 + ], + "IA Power_0": [ + 6.147493333333332, + 6.373446666666665, + 6.105626666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.436879999999999, + 6.704993333333334, + 6.414366666666665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7920264900662257, + 0.7918333333333339, + 0.8086600000000004 + ], + "GT Power_0": [ + 0.2082052980132451, + 0.20748666666666674, + 0.20967999999999998 + ], + "IA Power_0": [ + 6.435635761589402, + 6.493159999999998, + 6.286653333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.869801324503316, + 6.970913333333333, + 6.904746666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7697666666666662, + 0.7396466666666665, + 0.7678599999999998 + ], + "GT Power_0": [ + 0.10370666666666671, + 0.0969466666666667, + 0.0994666666666667 + ], + "IA Power_0": [ + 6.223646666666669, + 6.414426666666665, + 6.149493333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.979260000000003, + 6.774326666666667, + 6.818493333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD168-A9", + "number": 4466, + "tests": [ + { + "DRAM Power_0": [ + 0.6058799999999998, + 0.5973066666666662, + 0.6013333333333329 + ], + "GT Power_0": [ + 0.044019999999999976, + 0.015020000000000007, + 0.015319999999999995 + ], + "IA Power_0": [ + 3.5765666666666673, + 3.496113333333332, + 4.334566666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.909326666666665, + 3.7594999999999996, + 4.574566666666666 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7395761589403972, + 0.7758133333333328, + 0.7380133333333331 + ], + "GT Power_0": [ + 0.12047019867549666, + 0.12792666666666674, + 0.12227333333333332 + ], + "IA Power_0": [ + 6.414437086092714, + 7.479999999999995, + 6.620480000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8108211920529795, + 8.035413333333334, + 6.969253333333331 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7350733333333334, + 0.7353399999999995, + 0.7522317880794699 + ], + "GT Power_0": [ + 0.12197999999999998, + 0.12215333333333338, + 0.12538410596026492 + ], + "IA Power_0": [ + 6.394839999999997, + 6.396239999999998, + 6.318304635761588 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.818860000000001, + 6.776199999999998, + 6.762841059602651 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7902200000000004, + 0.7930533333333339, + 0.8071800000000002 + ], + "GT Power_0": [ + 0.27233333333333337, + 0.2613733333333335, + 0.25878000000000007 + ], + "IA Power_0": [ + 6.676913333333332, + 7.071300000000001, + 6.69718 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.224539999999998, + 7.609806666666665, + 7.275019999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7396291390728473, + 0.7383642384105956, + 0.737906666666666 + ], + "GT Power_0": [ + 0.13218543046357611, + 0.1321456953642384, + 0.13160000000000005 + ], + "IA Power_0": [ + 6.541735099337744, + 6.783635761589408, + 6.537006666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.894999999999997, + 7.151099337748344, + 6.919940000000003 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4465, + "tests": [ + { + "DRAM Power_0": [ + 0.5982666666666665, + 0.5996999999999996, + 0.6184437086092714 + ], + "GT Power_0": [ + 0.03277333333333332, + 0.014719999999999999, + 0.015304635761589398 + ], + "IA Power_0": [ + 3.9584199999999994, + 3.9064866666666673, + 3.9877152317880817 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.333613333333334, + 4.153306666666666, + 4.346999999999999 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7352199999999994, + 0.7575099337748341, + 0.7499733333333329 + ], + "GT Power_0": [ + 0.10578000000000008, + 0.10907947019867552, + 0.10593333333333331 + ], + "IA Power_0": [ + 6.773306666666665, + 7.120019867549668, + 6.820506666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.117946666666669, + 7.852788079470197, + 7.246713333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7354399999999995, + 0.7682999999999996, + 0.7338733333333334 + ], + "GT Power_0": [ + 0.10842666666666669, + 0.10892666666666666, + 0.10808 + ], + "IA Power_0": [ + 6.864859999999996, + 7.73857333333333, + 6.810653333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.180233333333333, + 8.324613333333337, + 7.163593333333335 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7924066666666669, + 0.7913266666666668, + 0.807145695364239 + ], + "GT Power_0": [ + 0.2373133333333333, + 0.24086666666666653, + 0.24643046357615894 + ], + "IA Power_0": [ + 7.178833333333335, + 7.099366666666667, + 7.112059602649008 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.692873333333334, + 7.61446, + 7.776708609271522 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7392251655629136, + 0.7399337748344369, + 0.7412799999999996 + ], + "GT Power_0": [ + 0.1159337748344371, + 0.11436423841059604, + 0.11464000000000003 + ], + "IA Power_0": [ + 7.279403973509936, + 7.032350993377482, + 7.015019999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.6287019867549635, + 7.399821192052981, + 7.303939999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD145-A9", + "number": 4464, + "tests": [ + { + "DRAM Power_0": [ + 0.6147266666666664, + 0.6297814569536423, + 0.6248476821192053 + ], + "GT Power_0": [ + 0.05016666666666664, + 0.017668874172185427, + 0.02454304635761588 + ], + "IA Power_0": [ + 4.0831066666666676, + 4.056324503311258, + 4.230450331125827 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.397766666666668, + 4.455668874172188, + 4.579072847682117 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7472980132450335, + 0.7629337748344367, + 0.7756891891891893 + ], + "GT Power_0": [ + 0.10677483443708607, + 0.10511920529801329, + 0.10397297297297299 + ], + "IA Power_0": [ + 6.451046357615894, + 7.3198079470198705, + 7.868540540540538 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.848874172185434, + 7.747344370860931, + 8.280189189189189 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 148 + ] + }, + { + "DRAM Power_0": [ + 0.7651920529801323, + 0.7492317880794693, + 0.7357086092715228 + ], + "GT Power_0": [ + 0.10423841059602652, + 0.10595364238410597, + 0.10537086092715232 + ], + "IA Power_0": [ + 7.582225165562914, + 6.518821192052977, + 6.858423841059604 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.031132450331128, + 7.209735099337746, + 7.319119205298014 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8072466666666668, + 0.8057152317880797, + 0.8080466666666667 + ], + "GT Power_0": [ + 0.2583066666666665, + 0.25067549668874173, + 0.26704666666666665 + ], + "IA Power_0": [ + 6.754800000000002, + 6.648013245033113, + 6.875259999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.381046666666662, + 7.302582781456951, + 7.501299999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7319205298013246, + 0.7405629139072847, + 0.7598866666666665 + ], + "GT Power_0": [ + 0.11449006622516557, + 0.1155629139072848, + 0.1169466666666667 + ], + "IA Power_0": [ + 7.079245033112584, + 6.443357615894039, + 6.387006666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.532880794701989, + 6.838185430463578, + 6.930386666666666 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD132-A9", + "number": 4463, + "tests": [ + { + "DRAM Power_0": [ + 0.6121324503311254, + 0.599311258278145, + 0.5979205298013244 + ], + "GT Power_0": [ + 0.044655629139072825, + 0.014178807947019865, + 0.01389403973509934 + ], + "IA Power_0": [ + 3.8247682119205275, + 4.083066225165562, + 3.7574503311258263 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.212907284768214, + 4.3385496688741725, + 3.957615894039736 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7373509933774833, + 0.7367284768211919, + 0.7341733333333333 + ], + "GT Power_0": [ + 0.0987814569536424, + 0.09696026490066227, + 0.09937333333333336 + ], + "IA Power_0": [ + 6.707668874172187, + 7.019152317880792, + 6.8247533333333354 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.0776423841059595, + 7.3563178807946965, + 7.136213333333329 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7552133333333333, + 0.7327799999999999, + 0.7372119205298008 + ], + "GT Power_0": [ + 0.09716666666666665, + 0.09771333333333337, + 0.09876821192052977 + ], + "IA Power_0": [ + 6.816313333333333, + 6.762913333333333, + 6.785496688741722 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.308706666666666, + 7.069166666666669, + 7.15054966887417 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8115000000000003, + 0.8115800000000006, + 0.7964768211920531 + ], + "GT Power_0": [ + 0.21712666666666677, + 0.21452000000000007, + 0.21718543046357613 + ], + "IA Power_0": [ + 7.773606666666668, + 6.936680000000001, + 7.067662251655628 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.29698, + 7.548640000000001, + 7.535960264900666 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7410933333333333, + 0.7573509933774837, + 0.744092715231788 + ], + "GT Power_0": [ + 0.10207333333333331, + 0.09959602649006621, + 0.10298013245033116 + ], + "IA Power_0": [ + 7.200280000000001, + 6.902543046357615, + 6.898152317880792 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4911200000000004, + 7.437993377483437, + 7.252092715231789 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4462, + "tests": [ + { + "DRAM Power_0": [ + 0.6085827814569535, + 0.5969799999999997, + 0.6141192052980129 + ], + "GT Power_0": [ + 0.035066225165562896, + 0.01367333333333333, + 0.013370860927152315 + ], + "IA Power_0": [ + 3.275099337748344, + 3.505006666666665, + 3.2317152317880784 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.640192052980132, + 3.7562733333333327, + 3.586741721854305 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7371266666666662, + 0.7360066666666666, + 0.7461258278145693 + ], + "GT Power_0": [ + 0.09169333333333332, + 0.09127333333333333, + 0.09054966887417218 + ], + "IA Power_0": [ + 5.742980000000001, + 5.669579999999999, + 5.639794701986753 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.097313333333335, + 6.037373333333332, + 6.0784503311258264 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7640799999999999, + 0.7473933333333327, + 0.7539999999999994 + ], + "GT Power_0": [ + 0.09314666666666675, + 0.09063333333333334, + 0.08919333333333336 + ], + "IA Power_0": [ + 6.041006666666664, + 5.719993333333336, + 6.160480000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.8135733333333315, + 6.150120000000001, + 6.50563333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7926225165562911, + 0.791126666666667, + 0.7919127516778527 + ], + "GT Power_0": [ + 0.20480794701986743, + 0.2073933333333334, + 0.20452348993288597 + ], + "IA Power_0": [ + 6.2945695364238405, + 5.965746666666666, + 5.958006711409397 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.750450331125829, + 6.4508333333333345, + 6.459268456375838 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.7564399999999999, + 0.7411266666666664, + 0.7412933333333334 + ], + "GT Power_0": [ + 0.09654000000000001, + 0.09644000000000004, + 0.09828666666666673 + ], + "IA Power_0": [ + 6.065873333333338, + 5.765300000000001, + 5.819193333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.572626666666669, + 6.118053333333332, + 6.170593333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD120-A9", + "number": 4461, + "tests": [ + { + "DRAM Power_0": [ + 0.6000066225165562, + 0.597443708609271, + 0.597913333333333 + ], + "GT Power_0": [ + 0.015039735099337748, + 0.015947019867549664, + 0.015813333333333335 + ], + "IA Power_0": [ + 3.8068874172185425, + 3.9710794701986742, + 3.6801466666666656 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.050728476821191, + 4.216258278145694, + 3.923386666666666 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7344733333333329, + 0.7517152317880792, + 0.7337799999999994 + ], + "GT Power_0": [ + 0.12179333333333342, + 0.1262582781456954, + 0.12531333333333322 + ], + "IA Power_0": [ + 6.43378666666667, + 6.704145695364238, + 6.379666666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.828466666666668, + 7.216980132450334, + 6.796179999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7521866666666664, + 0.732333333333333, + 0.7346933333333329 + ], + "GT Power_0": [ + 0.1185333333333334, + 0.12195999999999993, + 0.12041333333333332 + ], + "IA Power_0": [ + 6.4412600000000015, + 6.741246666666668, + 6.412553333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9455933333333375, + 7.143246666666667, + 6.813233333333331 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7928800000000004, + 0.7921866666666669, + 0.8053400000000005 + ], + "GT Power_0": [ + 0.2570533333333333, + 0.26175333333333345, + 0.2582533333333334 + ], + "IA Power_0": [ + 6.627093333333333, + 6.671526666666665, + 6.656406666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.204226666666671, + 7.150766666666665, + 7.335273333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.741033112582781, + 0.7405430463576156, + 0.7650733333333338 + ], + "GT Power_0": [ + 0.1319867549668874, + 0.13033112582781461, + 0.13114000000000012 + ], + "IA Power_0": [ + 6.730013245033113, + 6.692364238410597, + 7.115386666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.159695364238414, + 7.0910927152317935, + 7.505099999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD153-A9", + "number": 4460, + "tests": [ + { + "DRAM Power_0": [ + 0.6153666666666665, + 0.5981721854304636, + 0.6116133333333329 + ], + "GT Power_0": [ + 0.014013333333333329, + 0.014284768211920528, + 0.014179999999999998 + ], + "IA Power_0": [ + 3.7699333333333342, + 3.1734370860927146, + 3.47922 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.062686666666668, + 3.448675496688743, + 3.81718 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7361799999999998, + 0.7350266666666664, + 0.7369133333333326 + ], + "GT Power_0": [ + 0.09447333333333345, + 0.09639999999999999, + 0.09394000000000002 + ], + "IA Power_0": [ + 5.604940000000003, + 5.574400000000001, + 5.920933333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.97946, + 5.94104666666667, + 6.273886666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7589205298013242, + 0.7349599999999995, + 0.7338733333333329 + ], + "GT Power_0": [ + 0.10076821192052983, + 0.09488, + 0.09382000000000003 + ], + "IA Power_0": [ + 5.97966887417219, + 5.688793333333329, + 5.781780000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.489933774834436, + 6.019926666666668, + 6.15936 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.790773333333334, + 0.7915800000000004, + 0.7918400000000007 + ], + "GT Power_0": [ + 0.21188000000000004, + 0.21166, + 0.21155333333333326 + ], + "IA Power_0": [ + 5.7987400000000004, + 5.817506666666668, + 5.7466466666666705 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.306353333333333, + 6.299606666666666, + 6.279280000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7524266666666667, + 0.7562599999999995, + 0.7531666666666667 + ], + "GT Power_0": [ + 0.1033133333333334, + 0.10259333333333337, + 0.10282000000000002 + ], + "IA Power_0": [ + 5.662080000000004, + 5.919179999999998, + 5.607573333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.125520000000003, + 6.400506666666669, + 6.089873333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD172-A9", + "number": 4459, + "tests": [ + { + "DRAM Power_0": [ + 0.6076466666666669, + 0.5988344370860924, + 0.6119006622516552 + ], + "GT Power_0": [ + 0.04281333333333331, + 0.013509933774834431, + 0.014105960264900661 + ], + "IA Power_0": [ + 3.197713333333333, + 3.3986225165562907, + 3.1517483443708625 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5386199999999994, + 3.6592251655629124, + 3.470622516556291 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7519536423841054, + 0.7361599999999999, + 0.732693333333333 + ], + "GT Power_0": [ + 0.09598013245033117, + 0.09945333333333334, + 0.09750000000000002 + ], + "IA Power_0": [ + 5.569430463576161, + 5.550733333333335, + 5.466826666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.044913907284768, + 5.900993333333332, + 5.852653333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7363999999999999, + 0.7349735099337743, + 0.7350860927152315 + ], + "GT Power_0": [ + 0.0988666666666667, + 0.09547019867549673, + 0.09693377483443712 + ], + "IA Power_0": [ + 5.435279999999999, + 5.541450331125828, + 5.4156158940397345 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.837180000000004, + 5.891344370860924, + 5.7895960264900665 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8071866666666667, + 0.8158400000000006, + 0.8077333333333336 + ], + "GT Power_0": [ + 0.21579333333333334, + 0.23334666666666665, + 0.2205533333333334 + ], + "IA Power_0": [ + 5.949926666666665, + 5.696053333333336, + 5.682313333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.470559999999999, + 6.467653333333332, + 6.3356 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7488666666666663, + 0.7383733333333332, + 0.7535199999999999 + ], + "GT Power_0": [ + 0.10704666666666668, + 0.10503999999999995, + 0.12068666666666668 + ], + "IA Power_0": [ + 6.039966666666667, + 5.538100000000003, + 5.595220000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.453686666666666, + 5.933233333333333, + 6.119959999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD123-A9", + "number": 4458, + "tests": [ + { + "DRAM Power_0": [ + 0.5984105960264896, + 0.5975066666666662, + 0.5978675496688739 + ], + "GT Power_0": [ + 0.014814569536423842, + 0.015580000000000002, + 0.014708609271523182 + ], + "IA Power_0": [ + 3.7750993377483466, + 3.7498199999999997, + 4.046304635761589 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.05051655629139, + 3.9998733333333334, + 4.259178807947019 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7376066666666666, + 0.7351466666666663, + 0.7346133333333332 + ], + "GT Power_0": [ + 0.11940000000000002, + 0.1219133333333334, + 0.12332000000000008 + ], + "IA Power_0": [ + 6.948779999999996, + 6.706266666666664, + 6.934993333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.3022599999999995, + 7.061706666666667, + 7.3425 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7832066666666665, + 0.733046357615894, + 0.732993333333333 + ], + "GT Power_0": [ + 0.12198000000000003, + 0.11790728476821195, + 0.11682000000000002 + ], + "IA Power_0": [ + 7.254126666666668, + 6.6509139072847665, + 6.6471133333333325 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.133099999999997, + 7.002311258278145, + 6.996400000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7911721854304643, + 0.7905933333333344, + 0.791073333333334 + ], + "GT Power_0": [ + 0.2492251655629138, + 0.25084666666666666, + 0.24965999999999988 + ], + "IA Power_0": [ + 6.9759933774834435, + 7.274066666666666, + 7.2113066666666645 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4833046357615896, + 7.790099999999999, + 7.7420866666666655 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7394466666666663, + 0.7386266666666667, + 0.7385364238410594 + ], + "GT Power_0": [ + 0.13001333333333331, + 0.12901333333333323, + 0.12947019867549667 + ], + "IA Power_0": [ + 6.789326666666667, + 6.8422399999999985, + 7.090033112582777 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.14564666666667, + 7.214406666666667, + 7.454536423841058 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD133-A9", + "number": 4457, + "tests": [ + { + "DRAM Power_0": [ + 0.5996754966887414, + 0.5973509933774833, + 0.6106556291390726 + ], + "GT Power_0": [ + 0.03365562913907282, + 0.01588079470198675, + 0.016377483443708606 + ], + "IA Power_0": [ + 3.4297682119205297, + 3.345238410596027, + 3.6208344370860925 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.691496688741722, + 3.587781456953643, + 3.9706490066225166 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7343774834437083, + 0.7319133333333329, + 0.7336887417218542 + ], + "GT Power_0": [ + 0.12978807947019866, + 0.13215999999999992, + 0.13270860927152328 + ], + "IA Power_0": [ + 5.850165562913906, + 6.173953333333334, + 5.92737086092715 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.23632450331126, + 6.707893333333332, + 6.335331125827812 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7341986754966882, + 0.731673333333333, + 0.750867549668874 + ], + "GT Power_0": [ + 0.14052980132450335, + 0.13399999999999995, + 0.13015894039735104 + ], + "IA Power_0": [ + 5.886642384105961, + 5.810399999999998, + 5.8944304635761595 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.213019867549667, + 6.208759999999998, + 6.410596026490069 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7905960264900667, + 0.8146357615894043, + 0.788741721854305 + ], + "GT Power_0": [ + 0.2673841059602649, + 0.26542384105960265, + 0.26451655629139076 + ], + "IA Power_0": [ + 6.335662251655631, + 6.126019867549671, + 6.102039735099335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9385033112582795, + 7.003947019867548, + 6.6577880794702 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7400331125827806, + 0.7387066666666663, + 0.7382599999999997 + ], + "GT Power_0": [ + 0.13710596026490063, + 0.14145333333333332, + 0.13916666666666672 + ], + "IA Power_0": [ + 6.261490066225164, + 5.921846666666665, + 5.971133333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.67001986754967, + 6.367899999999999, + 6.405013333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD135-A9", + "number": 4456, + "tests": [ + { + "DRAM Power_0": [ + 0.5978344370860924, + 0.6110066225165559, + 0.6111333333333333 + ], + "GT Power_0": [ + 0.021337748344370865, + 0.01987417218543047, + 0.020660000000000005 + ], + "IA Power_0": [ + 4.327430463576161, + 4.610258278145697, + 4.233759999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.551033112582782, + 4.90425165562914, + 4.546566666666666 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7316199999999992, + 0.7319668874172183, + 0.7331466666666658 + ], + "GT Power_0": [ + 0.14999333333333337, + 0.1650066225165563, + 0.15293333333333328 + ], + "IA Power_0": [ + 7.583760000000003, + 8.072238410596025, + 7.618473333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.953233333333337, + 8.380476821192056, + 8.059213333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7320860927152313, + 0.732253333333333, + 0.7324933333333331 + ], + "GT Power_0": [ + 0.15116556291390723, + 0.1480066666666667, + 0.15250666666666665 + ], + "IA Power_0": [ + 7.548006622516558, + 7.686193333333333, + 7.64736 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.959589403973511, + 8.04822, + 8.045866666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7864600000000005, + 0.8149533333333332, + 0.7904701986754971 + ], + "GT Power_0": [ + 0.3343266666666666, + 0.3629933333333336, + 0.32967549668874174 + ], + "IA Power_0": [ + 8.35322, + 10.89916666666666, + 9.748218543046358 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.949846666666664, + 11.569106666666663, + 10.375086092715232 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7532466666666666, + 0.7409533333333327, + 0.73902 + ], + "GT Power_0": [ + 0.15926000000000004, + 0.15938000000000008, + 0.1563999999999999 + ], + "IA Power_0": [ + 9.671253333333333, + 9.058166666666663, + 9.29421333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 10.212220000000006, + 9.47128666666667, + 9.77129333333333 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD172-A9", + "number": 4455, + "tests": [ + { + "DRAM Power_0": [ + 0.6070133333333328, + 0.6240529801324504, + 0.608701986754967 + ], + "GT Power_0": [ + 0.03181333333333332, + 0.01463576158940397, + 0.014211920529801324 + ], + "IA Power_0": [ + 3.408393333333331, + 3.117754966887418, + 3.0597814569536412 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7760333333333325, + 3.7136026490066225, + 3.3417019867549667 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7344799999999996, + 0.7366953642384101, + 0.7333333333333335 + ], + "GT Power_0": [ + 0.10383333333333335, + 0.10116556291390733, + 0.09568000000000004 + ], + "IA Power_0": [ + 5.574919999999999, + 5.3766556291390755, + 5.35618 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.954266666666668, + 5.74969536423841, + 5.652153333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7341333333333331, + 0.740852348993288, + 0.7432866666666662 + ], + "GT Power_0": [ + 0.09580666666666669, + 0.09608724832214761, + 0.0943466666666666 + ], + "IA Power_0": [ + 5.328186666666666, + 5.8795436241610775, + 5.9719733333333345 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.700226666666666, + 6.232080536912754, + 6.3487866666666655 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 149, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7910800000000007, + 0.8007152317880797, + 0.8388344370860933 + ], + "GT Power_0": [ + 0.22534666666666672, + 0.21472847682119206, + 0.21619205298013253 + ], + "IA Power_0": [ + 5.529099999999995, + 5.58558940397351, + 5.845225165562909 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.064573333333332, + 6.122841059602652, + 6.779086092715229 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7405266666666664, + 0.7385199999999997, + 0.7557199999999995 + ], + "GT Power_0": [ + 0.1054333333333333, + 0.10623333333333335, + 0.10236666666666666 + ], + "IA Power_0": [ + 5.484046666666669, + 5.477806666666667, + 5.645173333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.879679999999999, + 5.862046666666668, + 6.134793333333332 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD131-A9", + "number": 4454, + "tests": [ + { + "DRAM Power_0": [ + 0.602646666666666, + 0.607980132450331, + 0.6105666666666664 + ], + "GT Power_0": [ + 0.03481333333333333, + 0.015860927152317877, + 0.015260000000000004 + ], + "IA Power_0": [ + 3.913053333333333, + 3.829602649006621, + 3.9212800000000017 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.110213333333336, + 4.129953642384108, + 4.233606666666669 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7419533333333334, + 0.7372466666666665, + 0.7395666666666665 + ], + "GT Power_0": [ + 0.12009999999999996, + 0.12309999999999997, + 0.11586000000000003 + ], + "IA Power_0": [ + 6.611693333333327, + 6.17948, + 6.150126666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.922006666666667, + 6.539506666666665, + 6.508246666666667 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7385733333333333, + 0.7619199999999999, + 0.741013333333333 + ], + "GT Power_0": [ + 0.12095333333333338, + 0.11768000000000003, + 0.11467333333333336 + ], + "IA Power_0": [ + 6.5462466666666685, + 6.253106666666668, + 6.260146666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.870413333333334, + 6.661713333333333, + 6.549866666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8102933333333336, + 0.8001733333333334, + 0.81358 + ], + "GT Power_0": [ + 0.24545333333333333, + 0.24814666666666668, + 0.27847333333333346 + ], + "IA Power_0": [ + 6.3854000000000015, + 6.450473333333333, + 6.7591600000000005 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.926973333333331, + 6.923206666666664, + 7.284333333333339 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7448599999999999, + 0.7432133333333333, + 0.75028 + ], + "GT Power_0": [ + 0.12806, + 0.12396666666666668, + 0.13126666666666673 + ], + "IA Power_0": [ + 6.385920000000002, + 6.242506666666667, + 6.991379999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.685206666666668, + 6.59344, + 7.333686666666669 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD180-A9", + "number": 4453, + "tests": [ + { + "DRAM Power_0": [ + 0.597913907284768, + 0.5974701986754966, + 0.6118145695364237 + ], + "GT Power_0": [ + 0.01570198675496689, + 0.016125827814569536, + 0.015907284768211922 + ], + "IA Power_0": [ + 4.255635761589404, + 3.8940331125827807, + 3.871019867549668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.4785960264900675, + 4.149470198675497, + 4.244655629139075 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7461324503311255, + 0.7436622516556287, + 0.7306733333333328 + ], + "GT Power_0": [ + 0.1258145695364239, + 0.12982781456953646, + 0.12644666666666665 + ], + "IA Power_0": [ + 7.188735099337748, + 6.9075827814569495, + 6.876859999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.670854304635763, + 7.309980132450329, + 7.243753333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7303443708609267, + 0.732092715231788, + 0.7387199999999999 + ], + "GT Power_0": [ + 0.12580132450331127, + 0.12482781456953645, + 0.12754000000000004 + ], + "IA Power_0": [ + 6.876748344370859, + 6.881986754966888, + 7.227706666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.225364238410599, + 7.187178807947018, + 7.6216666666666715 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8002400000000004, + 0.7858133333333339, + 0.7856533333333336 + ], + "GT Power_0": [ + 0.2793133333333334, + 0.27669999999999995, + 0.3079333333333334 + ], + "IA Power_0": [ + 7.244986666666664, + 7.215300000000006, + 7.193619999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.881586666666661, + 7.899853333333338, + 7.73704 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7360266666666665, + 0.7351721854304635, + 0.7354133333333326 + ], + "GT Power_0": [ + 0.13873333333333343, + 0.13675496688741723, + 0.13222666666666671 + ], + "IA Power_0": [ + 6.995526666666667, + 7.339039735099336, + 7.015713333333335 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.389386666666666, + 7.693456953642384, + 7.361206666666667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD121-A9", + "number": 4452, + "tests": [ + { + "DRAM Power_0": [ + 0.5989066666666663, + 0.61612, + 0.599033333333333 + ], + "GT Power_0": [ + 0.041686666666666636, + 0.01636, + 0.01546 + ], + "IA Power_0": [ + 3.994593333333333, + 4.357893333333333, + 3.9462399999999973 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.236026666666667, + 4.768393333333333, + 4.195773333333335 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7546599999999993, + 0.7450399999999995, + 0.7358066666666663 + ], + "GT Power_0": [ + 0.11623333333333333, + 0.11654000000000003, + 0.11668666666666672 + ], + "IA Power_0": [ + 6.838653333333335, + 6.992413333333331, + 6.860333333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.36339333333333, + 7.397206666666667, + 7.2204466666666685 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.752886666666666, + 0.7369133333333331, + 0.7341066666666662 + ], + "GT Power_0": [ + 0.11493333333333337, + 0.12004000000000002, + 0.11396 + ], + "IA Power_0": [ + 7.156500000000001, + 6.838213333333335, + 6.8870999999999984 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.718166666666668, + 7.2516533333333335, + 7.202526666666666 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7961333333333337, + 0.7941666666666669, + 0.7930733333333339 + ], + "GT Power_0": [ + 0.25528, + 0.25825333333333345, + 0.2549133333333333 + ], + "IA Power_0": [ + 7.614679999999997, + 7.390159999999999, + 7.064959999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.118626666666668, + 7.9182533333333325, + 7.587206666666668 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8077333333333334, + 0.7406666666666666, + 0.7670799999999995 + ], + "GT Power_0": [ + 0.12051333333333328, + 0.12457333333333336, + 0.12238000000000009 + ], + "IA Power_0": [ + 9.530886666666673, + 6.903299999999998, + 6.9929599999999965 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 10.047673333333334, + 7.3015466666666695, + 7.914986666666661 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD177-A9", + "number": 4451, + "tests": [ + { + "DRAM Power_0": [ + 0.6058133333333331, + 0.598133333333333, + 0.5985629139072844 + ], + "GT Power_0": [ + 0.03754666666666665, + 0.013713333333333336, + 0.014801324503311257 + ], + "IA Power_0": [ + 4.060399999999999, + 4.020373333333335, + 3.9721589403973505 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.4404666666666675, + 4.239746666666665, + 4.220364238410597 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7336821192052974, + 0.7527152317880791, + 0.734801324503311 + ], + "GT Power_0": [ + 0.10889403973509933, + 0.11244370860927154, + 0.10978807947019867 + ], + "IA Power_0": [ + 7.2098543046357655, + 6.9358211920529795, + 7.038039735099337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.642609271523177, + 7.463721854304634, + 7.34506622516556 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7500399999999994, + 0.7334599999999996, + 0.7323199999999999 + ], + "GT Power_0": [ + 0.1119, + 0.11150000000000009, + 0.10806 + ], + "IA Power_0": [ + 7.183993333333336, + 7.068760000000002, + 6.942640000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.688999999999999, + 7.382833333333336, + 7.270313333333337 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7891600000000007, + 0.7902466666666674, + 0.8059200000000002 + ], + "GT Power_0": [ + 0.24101999999999998, + 0.2425666666666666, + 0.2451666666666667 + ], + "IA Power_0": [ + 7.593779999999999, + 7.354620000000003, + 7.300306666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.09508666666667, + 7.870746666666665, + 7.94648666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7392733333333332, + 0.7566490066225163, + 0.7405533333333332 + ], + "GT Power_0": [ + 0.12088666666666666, + 0.12222516556291395, + 0.12255333333333335 + ], + "IA Power_0": [ + 7.126839999999999, + 7.134986754966886, + 7.386760000000004 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.49584, + 7.6761589403973485, + 7.756746666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD137-A9", + "number": 4450, + "tests": [ + { + "DRAM Power_0": [ + 0.6060066666666662, + 0.6091456953642383, + 0.5975066666666661 + ], + "GT Power_0": [ + 0.04259999999999998, + 0.013947019867549667, + 0.014386666666666664 + ], + "IA Power_0": [ + 4.247593333333333, + 4.4277549668874165, + 4.137826666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.568006666666667, + 4.706271523178809, + 4.400640000000001 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.732693333333333, + 0.7344701986754966, + 0.7323199999999997 + ], + "GT Power_0": [ + 0.10732, + 0.10955629139072852, + 0.11048 + ], + "IA Power_0": [ + 7.405593333333335, + 7.355801324503312, + 7.408773333333338 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.721446666666664, + 7.696615894039736, + 7.777946666666664 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7339199999999994, + 0.7313907284768207, + 0.7487086092715233 + ], + "GT Power_0": [ + 0.1069266666666667, + 0.11215894039735104, + 0.10943708609271524 + ], + "IA Power_0": [ + 7.461613333333333, + 7.436251655629138, + 7.3454238410596036 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.824853333333333, + 7.728920529801328, + 7.876364238410594 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7936400000000002, + 0.7915562913907292, + 0.7881466666666671 + ], + "GT Power_0": [ + 0.23606000000000008, + 0.25666887417218553, + 0.23613999999999996 + ], + "IA Power_0": [ + 8.518913333333334, + 7.669913907284763, + 7.766433333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 9.017500000000002, + 8.137655629139076, + 8.267073333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7664701986754965, + 0.7382133333333332, + 0.7538133333333331 + ], + "GT Power_0": [ + 0.11644370860927149, + 0.11600666666666666, + 0.12046000000000004 + ], + "IA Power_0": [ + 8.551112582781453, + 7.583606666666663, + 7.664053333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.999231788079467, + 7.930460000000003, + 8.212646666666664 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4449, + "tests": [ + { + "DRAM Power_0": [ + 0.5975165562913907, + 0.5970331125827812, + 0.5970132450331123 + ], + "GT Power_0": [ + 0.03905960264900661, + 0.014523178807947023, + 0.01519867549668874 + ], + "IA Power_0": [ + 3.263516556291391, + 3.202291390728478, + 3.2337417218543036 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5284569536423835, + 3.4590728476821195, + 3.4505827814569545 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7362781456953639, + 0.7383733333333331, + 0.7341986754966887 + ], + "GT Power_0": [ + 0.11665562913907283, + 0.11820666666666672, + 0.11791390728476826 + ], + "IA Power_0": [ + 5.806715231788079, + 5.590086666666669, + 5.589384105960268 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.187079470198676, + 5.985713333333332, + 5.971264900662249 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7337933333333332, + 0.7532399999999998, + 0.734433333333333 + ], + "GT Power_0": [ + 0.11722000000000002, + 0.11467333333333331, + 0.11947333333333335 + ], + "IA Power_0": [ + 5.803320000000002, + 5.609506666666667, + 5.568286666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.190753333333333, + 6.123140000000001, + 5.954113333333332 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7914039735099337, + 0.8047947019867554, + 0.7914304635761596 + ], + "GT Power_0": [ + 0.24262913907284772, + 0.2400529801324504, + 0.24160927152317885 + ], + "IA Power_0": [ + 5.992609271523182, + 5.980112582781458, + 5.897026490066224 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.549026490066223, + 6.568860927152315, + 6.405483443708608 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7469599999999997, + 0.7572266666666665, + 0.7418211920529801 + ], + "GT Power_0": [ + 0.12838666666666662, + 0.1301266666666666, + 0.1268609271523178 + ], + "IA Power_0": [ + 5.683193333333335, + 5.661039999999999, + 5.960867549668876 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.113740000000001, + 6.140806666666664, + 6.327072847682119 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD160-A9", + "number": 4448, + "tests": [ + { + "DRAM Power_0": [ + 0.6053576158940394, + 0.5978476821192049, + 0.5991456953642382 + ], + "GT Power_0": [ + 0.036357615894039706, + 0.014682119205298012, + 0.014682119205298013 + ], + "IA Power_0": [ + 3.240344370860926, + 3.482688741721855, + 3.195682119205299 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.5871854304635766, + 3.7135099337748367, + 3.448443708609272 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7335430463576155, + 0.7342251655629137, + 0.7484999999999996 + ], + "GT Power_0": [ + 0.11753642384105964, + 0.11731125827814566, + 0.11624000000000002 + ], + "IA Power_0": [ + 5.5802980132450335, + 5.794688741721858, + 5.566739999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.917006622516557, + 6.172695364238407, + 5.995313333333329 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7520132450331123, + 0.7353399999999997, + 0.746211920529801 + ], + "GT Power_0": [ + 0.1139470198675497, + 0.1122400000000001, + 0.11851655629139075 + ], + "IA Power_0": [ + 5.566874172185433, + 5.860026666666667, + 5.600794701986754 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.00146357615894, + 6.2197000000000005, + 6.056794701986758 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7897400000000003, + 0.8084066666666674, + 0.792052980132451 + ], + "GT Power_0": [ + 0.23625999999999991, + 0.23922000000000007, + 0.23690728476821205 + ], + "IA Power_0": [ + 5.765619999999999, + 5.889986666666668, + 5.789556291390729 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.299293333333333, + 6.529726666666665, + 6.3216622516556304 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7607086092715231, + 0.7374701986754966, + 0.7407933333333335 + ], + "GT Power_0": [ + 0.12327152317880795, + 0.12209933774834443, + 0.12171999999999995 + ], + "IA Power_0": [ + 5.768132450331129, + 5.737344370860923, + 5.762193333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.299582781456953, + 6.102741721854302, + 6.137519999999999 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD179-A9", + "number": 4447, + "tests": [ + { + "DRAM Power_0": [ + 0.5984437086092715, + 0.5970132450331125, + 0.598483443708609 + ], + "GT Power_0": [ + 0.04715231788079467, + 0.017735099337748347, + 0.018211920529801324 + ], + "IA Power_0": [ + 4.187847682119209, + 3.7654635761589397, + 3.795880794701985 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.394218543046358, + 3.988695364238412, + 4.054675496688741 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7341986754966884, + 0.7527799999999997, + 0.7323599999999996 + ], + "GT Power_0": [ + 0.1377019867549669, + 0.13577999999999996, + 0.1356866666666666 + ], + "IA Power_0": [ + 6.523119205298014, + 6.519306666666665, + 6.7862866666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.922198675496685, + 7.0441600000000015, + 7.192766666666665 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7328807947019864, + 0.7337682119205293, + 0.7338266666666666 + ], + "GT Power_0": [ + 0.13705960264900663, + 0.13675496688741723, + 0.1384 + ], + "IA Power_0": [ + 6.507350993377482, + 6.566, + 6.790586666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.875986754966888, + 6.97529801324503, + 7.192553333333329 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7891192052980135, + 0.7915466666666667, + 0.789933774834437 + ], + "GT Power_0": [ + 0.28735099337748327, + 0.2880466666666667, + 0.28634437086092707 + ], + "IA Power_0": [ + 6.920788079470198, + 6.837513333333333, + 7.192708609271525 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.430953642384108, + 7.435920000000001, + 7.743463576158941 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.745033333333333, + 0.7542251655629137, + 0.7562781456953639 + ], + "GT Power_0": [ + 0.14883333333333335, + 0.1476291390728477, + 0.15629139072847686 + ], + "IA Power_0": [ + 6.751953333333333, + 6.583907284768212, + 6.622582781456955 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.103833333333335, + 7.154417218543048, + 7.16567549668874 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD140-A9", + "number": 4446, + "tests": [ + { + "DRAM Power_0": [ + 0.607106666666666, + 0.5995364238410593, + 0.6145562913907282 + ], + "GT Power_0": [ + 0.03413999999999999, + 0.013165562913907285, + 0.014324503311258277 + ], + "IA Power_0": [ + 3.362453333333334, + 3.496238410596026, + 3.2642715231788064 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.7169733333333337, + 3.7707218543046372, + 3.664112582781456 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7333509933774831, + 0.75018, + 0.7539466666666664 + ], + "GT Power_0": [ + 0.09164238410596028, + 0.09070000000000004, + 0.09352666666666666 + ], + "IA Power_0": [ + 5.684721854304635, + 5.687493333333332, + 5.801853333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.052052980132452, + 6.092673333333332, + 6.247733333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7356556291390725, + 0.7429066666666664, + 0.7511589403973508 + ], + "GT Power_0": [ + 0.09304635761589405, + 0.0932533333333334, + 0.09272185430463575 + ], + "IA Power_0": [ + 5.984556291390729, + 5.763706666666666, + 5.731026490066229 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.329781456953646, + 6.1428466666666655, + 6.139046357615893 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7899072847682125, + 0.7915933333333336, + 0.7904733333333336 + ], + "GT Power_0": [ + 0.2073973509933776, + 0.2239400000000001, + 0.20885333333333334 + ], + "IA Power_0": [ + 6.269298013245031, + 5.944893333333331, + 6.004633333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.736000000000002, + 6.451840000000003, + 6.501826666666667 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7398733333333335, + 0.7508609271523177, + 0.7593841059602645 + ], + "GT Power_0": [ + 0.10456000000000008, + 0.09685430463576165, + 0.0994172185430464 + ], + "IA Power_0": [ + 6.056099999999997, + 5.834589403973508, + 5.748410596026488 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.346186666666666, + 6.291245033112583, + 6.281350993377483 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD166-A9", + "number": 4445, + "tests": [ + { + "DRAM Power_0": [ + 0.6053533333333325, + 0.5964768211920529, + 0.6020999999999997 + ], + "GT Power_0": [ + 0.04083999999999998, + 0.01782781456953642, + 0.016773333333333335 + ], + "IA Power_0": [ + 3.6183533333333338, + 3.527827814569537, + 4.3052666666666655 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.8957800000000007, + 3.7600662251655668, + 4.568173333333333 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7336357615894034, + 0.736966666666666, + 0.7345960264900663 + ], + "GT Power_0": [ + 0.12566225165562914, + 0.12334666666666659, + 0.1302384105960265 + ], + "IA Power_0": [ + 6.19717218543046, + 6.244180000000001, + 6.582708609271522 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.578807947019871, + 6.625813333333335, + 6.978258278145696 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7334599999999999, + 0.7269072847682114, + 0.7355599999999994 + ], + "GT Power_0": [ + 0.12630666666666662, + 0.12174834437086095, + 0.1298333333333333 + ], + "IA Power_0": [ + 6.230453333333334, + 6.04206622516556, + 6.616946666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.641813333333335, + 6.442344370860926, + 7.010413333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7984733333333335, + 0.7915894039735102, + 0.7918800000000005 + ], + "GT Power_0": [ + 0.2880133333333334, + 0.27741059602649015, + 0.27854666666666666 + ], + "IA Power_0": [ + 6.55566, + 6.729291390728474, + 6.548799999999999 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.229606666666667, + 7.2443245033112555, + 7.090419999999999 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7456599999999997, + 0.7566866666666662, + 0.7403666666666666 + ], + "GT Power_0": [ + 0.13252, + 0.13207999999999998, + 0.13687333333333332 + ], + "IA Power_0": [ + 6.5510866666666665, + 6.66147333333333, + 6.39818 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9314066666666685, + 7.174133333333334, + 6.833973333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD149-A9", + "number": 4444, + "tests": [ + { + "DRAM Power_0": [ + 0.5937133333333332, + 0.59764, + 0.597754966887417 + ], + "GT Power_0": [ + 0.04406666666666665, + 0.015880000000000005, + 0.016688741721854305 + ], + "IA Power_0": [ + 3.9523933333333328, + 4.022573333333332, + 4.0538145695364225 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.187313333333334, + 4.256593333333334, + 4.2902185430463575 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7480266666666658, + 0.7324066666666662, + 0.7333799999999994 + ], + "GT Power_0": [ + 0.12035333333333337, + 0.11950666666666668, + 0.15506 + ], + "IA Power_0": [ + 7.543706666666669, + 7.557473333333335, + 7.1458600000000025 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.903299999999999, + 7.876153333333334, + 7.465466666666663 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7320466666666667, + 0.7337599999999996, + 0.736377483443708 + ], + "GT Power_0": [ + 0.12093333333333336, + 0.1200933333333333, + 0.11903311258278143 + ], + "IA Power_0": [ + 7.095673333333338, + 7.446973333333335, + 7.2226688741721885 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.453200000000002, + 7.780793333333332, + 7.573695364238412 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7903933333333338, + 0.7887466666666669, + 0.8044400000000005 + ], + "GT Power_0": [ + 0.27787999999999985, + 0.26824666666666686, + 0.26825333333333334 + ], + "IA Power_0": [ + 7.471680000000003, + 7.8044066666666705, + 7.414946666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.981493333333333, + 8.337559999999998, + 8.086 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7379066666666664, + 0.7382133333333332, + 0.7363733333333327 + ], + "GT Power_0": [ + 0.12501333333333334, + 0.12410000000000004, + 0.12631333333333333 + ], + "IA Power_0": [ + 7.226120000000001, + 7.2435133333333335, + 7.293806666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.58826, + 7.610840000000001, + 7.644873333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD147-A9", + "number": 4443, + "tests": [ + { + "DRAM Power_0": [ + 0.6665416666666668, + 0.5989337748344367, + 0.5990927152317879 + ], + "GT Power_0": [ + 0.04229861111111109, + 0.01586092715231788, + 0.015033112582781455 + ], + "IA Power_0": [ + 5.202270833333332, + 3.0869668874172165, + 3.2068476821192045 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.541368055555555, + 3.363701986754965, + 3.4500264900662265 + ], + "name": "Basic", + "samples": [ + 144, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7385999999999991, + 0.7498741721854304, + 0.7346599999999998 + ], + "GT Power_0": [ + 0.14518666666666666, + 0.13358940397350988, + 0.13714666666666672 + ], + "IA Power_0": [ + 5.83758, + 5.6452119205298015, + 5.598900000000003 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.245793333333335, + 6.061417218543047, + 6.0383533333333315 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7450133333333329, + 0.7330993377483445, + 0.7501266666666666 + ], + "GT Power_0": [ + 0.13020666666666672, + 0.13041721854304641, + 0.12787999999999997 + ], + "IA Power_0": [ + 6.033680000000003, + 5.671748344370861, + 5.594433333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.430506666666667, + 6.0577880794702, + 6.104320000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7910200000000008, + 0.8078733333333337, + 0.8095000000000003 + ], + "GT Power_0": [ + 0.26356, + 0.2636666666666667, + 0.26344000000000006 + ], + "IA Power_0": [ + 6.0656599999999985, + 5.876233333333331, + 5.858539999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.606986666666664, + 6.5655, + 6.527213333333332 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7394105960264901, + 0.7474933333333332, + 0.7550794701986755 + ], + "GT Power_0": [ + 0.13958278145695358, + 0.13980666666666663, + 0.14943046357615894 + ], + "IA Power_0": [ + 5.633178807947016, + 6.128959999999998, + 5.934384105960265 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.073735099337751, + 6.504500000000001, + 6.501966887417218 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD151-A9", + "number": 4442, + "tests": [ + { + "DRAM Power_0": [ + 0.5984866666666663, + 0.6123311258278143, + 0.6116333333333331 + ], + "GT Power_0": [ + 0.02747333333333332, + 0.013735099337748344, + 0.014506666666666664 + ], + "IA Power_0": [ + 3.738360000000001, + 3.682569536423841, + 3.697626666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.980226666666666, + 3.9955099337748328, + 3.9577066666666663 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7406423841059597, + 0.7363576158940396, + 0.7340466666666665 + ], + "GT Power_0": [ + 0.10620529801324508, + 0.10282119205298015, + 0.10777999999999999 + ], + "IA Power_0": [ + 6.433543046357616, + 6.682887417218544, + 6.44146 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.819860927152316, + 7.075781456953644, + 6.790013333333334 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7340666666666664, + 0.7349866666666663, + 0.7484799999999999 + ], + "GT Power_0": [ + 0.10916666666666666, + 0.10793333333333337, + 0.11002666666666663 + ], + "IA Power_0": [ + 6.371206666666666, + 6.6657666666666655, + 6.436706666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.765186666666666, + 7.087146666666669, + 6.85176 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7905165562913912, + 0.8057549668874179, + 0.8044666666666666 + ], + "GT Power_0": [ + 0.2349337748344372, + 0.23198013245033106, + 0.23048666666666667 + ], + "IA Power_0": [ + 6.671039735099338, + 6.9274039735099295, + 6.760586666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.1681258278145705, + 7.599052980132453, + 7.305713333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.739653333333333, + 0.7575165562913907, + 0.7404834437086093 + ], + "GT Power_0": [ + 0.11273333333333338, + 0.11404635761589406, + 0.11548344370860926 + ], + "IA Power_0": [ + 6.5976066666666675, + 6.842668874172183, + 6.778205298013248 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.95532, + 7.327185430463576, + 7.120344370860924 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD170-A9", + "number": 4441, + "tests": [ + { + "DRAM Power_0": [ + 0.6161933333333334, + 0.5972781456953637, + 0.6207549668874173 + ], + "GT Power_0": [ + 0.043939999999999986, + 0.014894039735099339, + 0.014092715231788074 + ], + "IA Power_0": [ + 4.008013333333332, + 3.1941324503311255, + 3.845337748344372 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.447920000000003, + 3.4413907284768195, + 4.151238410596025 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7343907284768207, + 0.7333933333333332, + 0.7329066666666662 + ], + "GT Power_0": [ + 0.10682781456953654, + 0.10261333333333335, + 0.10680000000000002 + ], + "IA Power_0": [ + 5.5211456953642415, + 5.518980000000001, + 5.839346666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.902052980132454, + 5.871833333333333, + 6.220293333333332 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7665200000000001, + 0.7491799999999997, + 0.7509006622516551 + ], + "GT Power_0": [ + 0.10478666666666668, + 0.10492000000000005, + 0.1005364238410596 + ], + "IA Power_0": [ + 5.516286666666668, + 5.541233333333333, + 5.5389602649006635 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.037640000000002, + 6.0312800000000015, + 5.957291390728476 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7922980132450334, + 0.8090800000000007, + 0.8086133333333342 + ], + "GT Power_0": [ + 0.23869536423841087, + 0.23519333333333312, + 0.23447333333333328 + ], + "IA Power_0": [ + 5.823205298013243, + 6.037646666666667, + 5.748086666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.36656953642384, + 6.616893333333332, + 6.371320000000001 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7398344370860923, + 0.7397399999999995, + 0.7609403973509934 + ], + "GT Power_0": [ + 0.11183443708609277, + 0.11138666666666668, + 0.11095364238410597 + ], + "IA Power_0": [ + 5.582827814569532, + 5.908826666666669, + 5.563834437086093 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.979357615894039, + 6.310979999999997, + 6.0876357615894054 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD141-A9", + "number": 4440, + "tests": [ + { + "DRAM Power_0": [ + 0.6132516556291394, + 0.6179470198675497, + 0.601099337748344 + ], + "GT Power_0": [ + 0.02986092715231786, + 0.015410596026490062, + 0.018158940397350994 + ], + "IA Power_0": [ + 7.478384105960266, + 7.664569536423841, + 4.287417218543049 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.656397350993374, + 7.916046357615893, + 4.515298013245032 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7332399999999996, + 0.7344933333333332, + 0.7483112582781454 + ], + "GT Power_0": [ + 0.12372000000000005, + 0.12763333333333335, + 0.12433112582781455 + ], + "IA Power_0": [ + 7.316246666666666, + 6.953653333333332, + 7.057072847682122 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.660666666666665, + 7.312460000000002, + 7.450258278145697 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7331066666666659, + 0.734443708609271, + 0.735253333333333 + ], + "GT Power_0": [ + 0.12305333333333338, + 0.1208543046357616, + 0.12288000000000002 + ], + "IA Power_0": [ + 6.94384, + 7.030006622516559, + 7.259806666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.315453333333335, + 7.608582781456958, + 7.632933333333338 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8075266666666671, + 0.7912400000000003, + 0.7911200000000007 + ], + "GT Power_0": [ + 0.2509266666666667, + 0.24876666666666675, + 0.25026000000000004 + ], + "IA Power_0": [ + 7.189980000000002, + 7.18466, + 7.6552200000000035 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.852359999999997, + 7.7282, + 8.178106666666663 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7403774834437078, + 0.7437666666666667, + 0.7429333333333331 + ], + "GT Power_0": [ + 0.13200662251655632, + 0.13047333333333336, + 0.13006000000000012 + ], + "IA Power_0": [ + 7.0846887417218545, + 7.713813333333335, + 7.411886666666666 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.484993377483443, + 8.039000000000003, + 7.793866666666668 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD143-A9", + "number": 4439, + "tests": [ + { + "DRAM Power_0": [ + 0.6065562913907283, + 0.5973311258278142, + 0.5976423841059598 + ], + "GT Power_0": [ + 0.03466225165562912, + 0.014615894039735101, + 0.014947019867549663 + ], + "IA Power_0": [ + 3.366860927152318, + 3.2711788079470194, + 3.2491589403973515 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.705920529801326, + 3.5397615894039722, + 3.527827814569538 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7451133333333332, + 0.7342649006622516, + 0.7353466666666665 + ], + "GT Power_0": [ + 0.11782666666666669, + 0.11790728476821201, + 0.11591999999999997 + ], + "IA Power_0": [ + 6.044280000000002, + 5.692192052980131, + 5.792300000000002 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.4583, + 6.060238410596029, + 6.188206666666666 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7339602649006619, + 0.7335999999999999, + 0.7331133333333328 + ], + "GT Power_0": [ + 0.11589403973509929, + 0.11845999999999994, + 0.11344000000000005 + ], + "IA Power_0": [ + 6.018205298013246, + 5.773200000000004, + 5.6625933333333345 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.3797152317880785, + 6.143153333333331, + 6.076846666666667 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7957814569536429, + 0.7912466666666671, + 0.7907400000000004 + ], + "GT Power_0": [ + 0.2471788079470199, + 0.24707333333333337, + 0.24519333333333335 + ], + "IA Power_0": [ + 6.455536423841058, + 5.935573333333334, + 5.938419999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.009509933774843, + 6.46302, + 6.476993333333334 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7522980132450326, + 0.7415133333333331, + 0.7409801324503311 + ], + "GT Power_0": [ + 0.13192715231788077, + 0.12089333333333335, + 0.1255298013245033 + ], + "IA Power_0": [ + 6.275165562913909, + 5.91894, + 6.013026490066227 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.690350993377481, + 6.309173333333333, + 6.4048145695364225 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD135-A9", + "number": 4438, + "tests": [ + { + "DRAM Power_0": [ + 0.5973999999999997, + 0.6554666666666662, + 0.610039735099337 + ], + "GT Power_0": [ + 0.04781999999999997, + 0.020626666666666668, + 0.02013907284768212 + ], + "IA Power_0": [ + 4.713746666666664, + 6.7798599999999976, + 4.2470927152317905 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.9514533333333315, + 7.009259999999999, + 4.548867549668876 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7297466666666664, + 0.7459133333333331, + 0.7289599999999993 + ], + "GT Power_0": [ + 0.17944, + 0.14634666666666668, + 0.14733333333333334 + ], + "IA Power_0": [ + 7.945633333333329, + 7.511140000000002, + 7.528359999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.301046666666663, + 8.023493333333334, + 7.900713333333337 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7314599999999996, + 0.7304733333333328, + 0.7306799999999999 + ], + "GT Power_0": [ + 0.15057999999999996, + 0.1478066666666667, + 0.1491333333333333 + ], + "IA Power_0": [ + 7.561333333333332, + 7.5242400000000025, + 7.932039999999997 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.948239999999993, + 7.89806666666667, + 8.308473333333334 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7877066666666672, + 0.7849800000000005, + 0.7855200000000006 + ], + "GT Power_0": [ + 0.3267, + 0.3268200000000001, + 0.3277066666666667 + ], + "IA Power_0": [ + 7.868086666666665, + 7.868199999999995, + 8.238100000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.453953333333335, + 8.50779333333334, + 8.874719999999998 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7525999999999996, + 0.7368807947019864, + 0.7497880794701981 + ], + "GT Power_0": [ + 0.15649333333333323, + 0.15814569536423848, + 0.15982119205298012 + ], + "IA Power_0": [ + 7.6686133333333375, + 7.6501523178807975, + 8.007562913907286 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.227279999999997, + 8.038953642384106, + 8.508894039735099 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + } + ] + }, + { + "bot": "BUILD168-A9", + "number": 4437, + "tests": [ + { + "DRAM Power_0": [ + 0.5990466666666665, + 0.6007066666666666, + 0.5989139072847679 + ], + "GT Power_0": [ + 0.04061333333333331, + 0.014506666666666664, + 0.016006622516556296 + ], + "IA Power_0": [ + 3.660853333333333, + 3.907286666666668, + 3.5833774834437087 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.914779999999999, + 4.0586866666666666, + 3.8554039735099335 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7535733333333325, + 0.7345933333333331, + 0.7348466666666664 + ], + "GT Power_0": [ + 0.11487333333333334, + 0.11682666666666668, + 0.11626666666666666 + ], + "IA Power_0": [ + 6.569373333333335, + 6.210360000000002, + 6.357040000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.007579999999998, + 6.593126666666666, + 6.708919999999999 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7696333333333328, + 0.7353599999999992, + 0.7450399999999998 + ], + "GT Power_0": [ + 0.11617999999999999, + 0.11790666666666666, + 0.1187333333333334 + ], + "IA Power_0": [ + 6.9884733333333315, + 6.350359999999999, + 6.29446 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.528246666666669, + 6.702913333333336, + 6.76204 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7904333333333339, + 0.792426666666667, + 0.7916158940397356 + ], + "GT Power_0": [ + 0.25667333333333353, + 0.2548066666666666, + 0.2677417218543047 + ], + "IA Power_0": [ + 6.9295666666666635, + 6.564886666666663, + 6.646231788079473 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.434186666666668, + 7.074793333333337, + 7.1804503311258285 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7405666666666662, + 0.740886666666666, + 0.7506999999999999 + ], + "GT Power_0": [ + 0.12699333333333335, + 0.12611333333333336, + 0.1281466666666667 + ], + "IA Power_0": [ + 6.69934, + 6.571466666666665, + 6.468113333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.1412933333333335, + 6.896606666666667, + 6.998940000000001 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD141-A9", + "number": 4436, + "tests": [ + { + "DRAM Power_0": [ + 0.6040198675496687, + 0.5970529801324501, + 0.6058874172185428 + ], + "GT Power_0": [ + 0.032258278145695346, + 0.015172185430463572, + 0.014688741721854304 + ], + "IA Power_0": [ + 3.9555629139072854, + 3.833940397350994, + 3.8669006622516546 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.24394701986755, + 4.074033112582783, + 4.164370860927151 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7321733333333332, + 0.7328940397350991, + 0.7576533333333331 + ], + "GT Power_0": [ + 0.12122000000000002, + 0.12109933774834437, + 0.12304666666666675 + ], + "IA Power_0": [ + 6.894320000000001, + 6.932172185430461, + 7.5916466666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.265446666666667, + 7.297026490066229, + 8.027786666666668 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7551920529801323, + 0.7339066666666666, + 0.7697114093959729 + ], + "GT Power_0": [ + 0.11913907284768213, + 0.11709333333333331, + 0.12423489932885907 + ], + "IA Power_0": [ + 6.892066225165564, + 7.275013333333333, + 9.867248322147658 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.4610331125827845, + 7.632046666666667, + 10.29521476510068 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 149 + ] + }, + { + "DRAM Power_0": [ + 0.8460599999999997, + 0.8493466666666663, + 0.7921400000000004 + ], + "GT Power_0": [ + 0.24903999999999987, + 0.2559600000000001, + 0.2473333333333333 + ], + "IA Power_0": [ + 10.295786666666663, + 9.949806666666667, + 7.424533333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 10.928740000000003, + 10.514699999999994, + 7.971613333333331 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7548533333333334, + 0.7375799999999993, + 0.75062 + ], + "GT Power_0": [ + 0.12886, + 0.12796666666666662, + 0.12912666666666672 + ], + "IA Power_0": [ + 7.139673333333335, + 7.5273666666666665, + 7.169606666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.569719999999999, + 7.919726666666662, + 7.697506666666665 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD132-A9", + "number": 4435, + "tests": [ + { + "DRAM Power_0": [ + 0.598673333333333, + 0.6103973509933773, + 0.5981258278145694 + ], + "GT Power_0": [ + 0.039146666666666656, + 0.012986754966887417, + 0.013476821192052978 + ], + "IA Power_0": [ + 3.7993066666666677, + 3.601867549668875, + 3.9651324503311245 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.059786666666668, + 3.965490066225163, + 4.262119205298012 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7350666666666663, + 0.7439470198675492, + 0.7488145695364237 + ], + "GT Power_0": [ + 0.09876, + 0.09786754966887412, + 0.1014105960264901 + ], + "IA Power_0": [ + 6.603453333333332, + 6.98182781456954, + 6.628079470198678 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.925966666666669, + 7.333953642384103, + 7.124496688741723 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7337417218543044, + 0.7322199999999996, + 0.734866666666666 + ], + "GT Power_0": [ + 0.09925827814569535, + 0.09470000000000003, + 0.09546000000000004 + ], + "IA Power_0": [ + 6.6424966887417245, + 6.8698666666666695, + 6.629726666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.9556225165562955, + 7.1977600000000015, + 6.986840000000002 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7916333333333337, + 0.7974266666666674, + 0.7909066666666675 + ], + "GT Power_0": [ + 0.21054666666666666, + 0.21094666666666664, + 0.21463999999999994 + ], + "IA Power_0": [ + 7.016626666666665, + 7.611633333333337, + 6.937413333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.485713333333335, + 8.110266666666668, + 7.420733333333335 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7388333333333331, + 0.7390599999999998, + 0.7421324503311253 + ], + "GT Power_0": [ + 0.10058666666666669, + 0.10156000000000004, + 0.10388741721854301 + ], + "IA Power_0": [ + 6.794273333333331, + 7.112146666666669, + 6.91828476821192 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.1349266666666695, + 7.456500000000003, + 7.267298013245032 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD126-A9", + "number": 4434, + "tests": [ + { + "DRAM Power_0": [ + 0.6051666666666665, + 0.612576158940397, + 0.5963133333333329 + ], + "GT Power_0": [ + 0.0374733333333333, + 0.016026490066225172, + 0.014666666666666665 + ], + "IA Power_0": [ + 3.9412600000000007, + 3.5573311258278135, + 3.499340000000001 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.271073333333332, + 3.8698278145695366, + 3.762766666666668 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7370666666666665, + 0.7529470198675492, + 0.7363799999999994 + ], + "GT Power_0": [ + 0.11457333333333337, + 0.1133774834437086, + 0.11173333333333332 + ], + "IA Power_0": [ + 6.5927533333333335, + 6.1079470198675505, + 6.533953333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.975026666666666, + 6.609549668874172, + 6.871499999999995 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7343907284768209, + 0.7336533333333329, + 0.7481533333333332 + ], + "GT Power_0": [ + 0.11350331125827816, + 0.11109333333333335, + 0.11294666666666667 + ], + "IA Power_0": [ + 6.152536423841058, + 6.27950666666667, + 6.508393333333337 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.543887417218543, + 6.6314866666666665, + 6.924739999999999 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7897866666666673, + 0.8204933333333339, + 0.7915400000000002 + ], + "GT Power_0": [ + 0.2427466666666666, + 0.24636, + 0.2452466666666667 + ], + "IA Power_0": [ + 6.425833333333335, + 6.427506666666672, + 6.787613333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.948493333333335, + 7.171000000000002, + 7.3557 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7413266666666665, + 0.7565733333333332, + 0.7416092715231786 + ], + "GT Power_0": [ + 0.12095333333333334, + 0.12222, + 0.12211920529801318 + ], + "IA Power_0": [ + 6.325486666666664, + 6.35036, + 6.529556291390728 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.6350733333333345, + 6.835106666666664, + 6.912529801324499 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD128-A9", + "number": 4433, + "tests": [ + { + "DRAM Power_0": [ + 0.6083266666666665, + 0.6090066225165559, + 0.5979199999999998 + ], + "GT Power_0": [ + 0.04000666666666665, + 0.014503311258278142, + 0.014386666666666664 + ], + "IA Power_0": [ + 3.9384000000000006, + 4.634417218543044, + 3.835246666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.239466666666664, + 4.885682119205298, + 4.0474 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7501266666666663, + 0.7354569536423833, + 0.7355066666666659 + ], + "GT Power_0": [ + 0.1118866666666667, + 0.11487417218543049, + 0.11361999999999994 + ], + "IA Power_0": [ + 6.638020000000001, + 6.998708609271522, + 6.777913333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.089473333333331, + 7.343337748344371, + 7.13184 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7352666666666663, + 0.74492, + 0.7515231788079464 + ], + "GT Power_0": [ + 0.10994666666666668, + 0.10747333333333335, + 0.10987417218543057 + ], + "IA Power_0": [ + 6.709333333333333, + 7.18238666666667, + 6.706231788079468 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.028926666666668, + 7.528493333333337, + 7.227033112582783 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7911125827814575, + 0.7933800000000005, + 0.7955298013245036 + ], + "GT Power_0": [ + 0.24176821192052983, + 0.24195333333333333, + 0.2476821192052979 + ], + "IA Power_0": [ + 7.038324503311259, + 7.013499999999998, + 7.236364238410594 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.481953642384102, + 7.538553333333337, + 7.751039735099339 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7415231788079472, + 0.7408410596026486, + 0.7513999999999998 + ], + "GT Power_0": [ + 0.12300000000000003, + 0.12217218543046363, + 0.12310000000000003 + ], + "IA Power_0": [ + 7.111052980132452, + 6.810198675496687, + 6.942473333333331 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.5111059602649, + 7.176039735099338, + 7.434033333333335 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD139-A9", + "number": 4432, + "tests": [ + { + "DRAM Power_0": [ + 0.6016266666666664, + 0.6149668874172183, + 0.5983933333333332 + ], + "GT Power_0": [ + 0.04743999999999999, + 0.017298013245033116, + 0.01632 + ], + "IA Power_0": [ + 3.7146066666666675, + 3.6688344370860935, + 3.9178066666666678 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.9856800000000008, + 3.9904039735099333, + 4.141120000000001 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7425033112582778, + 0.7497682119205293, + 0.7333377483443707 + ], + "GT Power_0": [ + 0.1314304635761589, + 0.12699999999999997, + 0.12476158940397353 + ], + "IA Power_0": [ + 6.306807947019866, + 6.215953642384107, + 6.25355629139073 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.820456953642385, + 6.7229801324503295, + 6.652741721854306 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7487533333333329, + 0.7447682119205294, + 0.748509933774834 + ], + "GT Power_0": [ + 0.12247333333333332, + 0.12283443708609272, + 0.1257284768211921 + ], + "IA Power_0": [ + 6.214840000000004, + 6.583834437086095, + 6.1810132450331166 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.642273333333334, + 7.0272582781456965, + 6.670357615894039 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7904200000000003, + 0.7883133333333338, + 0.7869271523178809 + ], + "GT Power_0": [ + 0.2885533333333333, + 0.2894399999999998, + 0.28722516556291394 + ], + "IA Power_0": [ + 6.591646666666667, + 6.5056866666666675, + 6.502708609271525 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.187106666666671, + 7.040686666666664, + 7.112960264900665 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7395562913907281, + 0.7548933333333332, + 0.7389133333333329 + ], + "GT Power_0": [ + 0.13810596026490074, + 0.13756666666666675, + 0.13471333333333335 + ], + "IA Power_0": [ + 6.292761589403972, + 6.315626666666664, + 6.276233333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.689403973509931, + 6.868159999999997, + 6.690213333333338 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD172-A9", + "number": 4431, + "tests": [ + { + "DRAM Power_0": [ + 0.6022266666666661, + 0.599980132450331, + 0.6094437086092712 + ], + "GT Power_0": [ + 0.03387333333333333, + 0.01409933774834437, + 0.014105960264900661 + ], + "IA Power_0": [ + 3.11754, + 3.4039933774834457, + 3.0900264900662266 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.4118733333333324, + 3.667059602649007, + 3.416258278145694 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7515364238410597, + 0.7367533333333333, + 0.7348199999999997 + ], + "GT Power_0": [ + 0.0951523178807947, + 0.09476666666666668, + 0.09555333333333337 + ], + "IA Power_0": [ + 5.393317880794703, + 5.630193333333334, + 5.382586666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.852609271523182, + 6.008813333333334, + 5.724659999999998 + ], + "name": "Video_720_MP4", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7348999999999999, + 0.7336266666666663, + 0.7594266666666663 + ], + "GT Power_0": [ + 0.09690666666666668, + 0.09388666666666673, + 0.09784666666666669 + ], + "IA Power_0": [ + 5.33512, + 5.391626666666666, + 5.389353333333334 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.686619999999997, + 5.735113333333332, + 6.124393333333336 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.791748344370862, + 0.8081400000000001, + 0.8342799999999998 + ], + "GT Power_0": [ + 0.21127814569536427, + 0.21486000000000005, + 0.23430666666666666 + ], + "IA Power_0": [ + 5.780258278145694, + 5.561019999999998, + 7.651879999999998 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.32730463576159, + 6.219493333333334, + 8.226993333333336 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7485364238410596, + 0.7589867549668874, + 0.7515400000000001 + ], + "GT Power_0": [ + 0.10027814569536427, + 0.10245695364238415, + 0.10151333333333334 + ], + "IA Power_0": [ + 6.422602649006621, + 6.000298013245032, + 6.222066666666663 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.828781456953644, + 6.495841059602646, + 6.655966666666663 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 151, + 151, + 150 + ] + } + ] + }, + { + "bot": "BUILD161-A9", + "number": 4430, + "tests": [ + { + "DRAM Power_0": [ + 0.5974466666666665, + 0.597199999999999, + 0.5974238410596023 + ], + "GT Power_0": [ + 0.033173333333333326, + 0.014533333333333332, + 0.014039735099337753 + ], + "IA Power_0": [ + 3.1309333333333327, + 3.2825866666666674, + 3.107708609271523 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3544799999999997, + 3.5542066666666656, + 3.3672582781456954 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7383466666666664, + 0.7340466666666662, + 0.7346599999999998 + ], + "GT Power_0": [ + 0.12420000000000002, + 0.12057999999999999, + 0.12191999999999996 + ], + "IA Power_0": [ + 5.334766666666667, + 5.28392, + 5.28156 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.7210666666666645, + 5.664626666666663, + 5.673553333333336 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7492317880794701, + 0.7387266666666664, + 0.7209403973509931 + ], + "GT Power_0": [ + 0.11968874172185436, + 0.11732666666666675, + 0.11767549668874171 + ], + "IA Power_0": [ + 5.5432052980132465, + 5.390500000000002, + 5.13944370860927 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.996052980132452, + 5.77622, + 5.543099337748344 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 151, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.8230333333333336, + 0.790166666666667, + 0.804735099337749 + ], + "GT Power_0": [ + 0.24856000000000003, + 0.24832666666666664, + 0.2485827814569537 + ], + "IA Power_0": [ + 6.655779999999999, + 5.535746666666665, + 5.500913907284771 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.267320000000004, + 6.0808199999999974, + 6.163132450331123 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7542866666666667, + 0.7457733333333335, + 0.739293333333333 + ], + "GT Power_0": [ + 0.12697999999999998, + 0.12786, + 0.12365333333333335 + ], + "IA Power_0": [ + 5.663133333333337, + 5.4349733333333345, + 5.372626666666669 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.090033333333333, + 5.876453333333336, + 5.799853333333334 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD125-A9", + "number": 4429, + "tests": [ + { + "DRAM Power_0": [ + 0.5960463576158938, + 0.5976158940397345, + 0.6126490066225166 + ], + "GT Power_0": [ + 0.016622516556291395, + 0.01666887417218543, + 0.016370860927152318 + ], + "IA Power_0": [ + 4.371145695364239, + 4.1438741721854315, + 4.131139072847681 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 4.602390728476821, + 4.335476821192053, + 4.501662251655626 + ], + "name": "Basic", + "samples": [ + 151, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7361399999999996, + 0.7392599999999991, + 0.7508933333333332 + ], + "GT Power_0": [ + 0.11903333333333334, + 0.11807333333333339, + 0.12720000000000004 + ], + "IA Power_0": [ + 7.5222733333333345, + 7.35814666666667, + 7.34308666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.884699999999998, + 7.703013333333336, + 7.876100000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7521199999999997, + 0.7376599999999999, + 0.7502799999999998 + ], + "GT Power_0": [ + 0.13185333333333332, + 0.1170066666666667, + 0.1200666666666667 + ], + "IA Power_0": [ + 7.3716, + 7.399646666666667, + 7.790793333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.006999999999998, + 7.737173333333334, + 8.239999999999997 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.8091, + 0.8039733333333333, + 0.7923000000000002 + ], + "GT Power_0": [ + 0.25755999999999996, + 0.2550733333333334, + 0.26196666666666674 + ], + "IA Power_0": [ + 8.32220666666667, + 7.7595266666666705, + 8.058173333333336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 8.813559999999999, + 8.310893333333338, + 8.593966666666669 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7445799999999998, + 0.7561199999999999, + 0.7433666666666664 + ], + "GT Power_0": [ + 0.13731999999999991, + 0.14430666666666672, + 0.12672666666666665 + ], + "IA Power_0": [ + 7.535580000000003, + 7.596046666666666, + 7.6315066666666675 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.872659999999996, + 8.095059999999997, + 8.033786666666671 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD182-A9", + "number": 4428, + "tests": [ + { + "DRAM Power_0": [ + 0.5976622516556286, + 0.5974199999999997, + 0.5970533333333332 + ], + "GT Power_0": [ + 0.013238410596026488, + 0.014386666666666666, + 0.01297333333333333 + ], + "IA Power_0": [ + 3.1297615894039743, + 3.393633333333334, + 3.125073333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3950529801324514, + 3.669240000000001, + 3.38634 + ], + "name": "Basic", + "samples": [ + 151, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7365866666666664, + 0.7368733333333332, + 0.7333666666666666 + ], + "GT Power_0": [ + 0.0991466666666667, + 0.09530000000000004, + 0.09790666666666667 + ], + "IA Power_0": [ + 5.644166666666667, + 5.992033333333333, + 5.580786666666668 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.050313333333333, + 6.2564066666666625, + 5.948799999999997 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7371866666666661, + 0.7353466666666665, + 0.7487417218543038 + ], + "GT Power_0": [ + 0.09601333333333333, + 0.09390666666666668, + 0.0924701986754967 + ], + "IA Power_0": [ + 5.649500000000001, + 5.866360000000001, + 5.621145695364239 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.977339999999998, + 6.219860000000001, + 6.049410596026487 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7932800000000009, + 0.8010066666666669, + 0.8053666666666668 + ], + "GT Power_0": [ + 0.2043933333333334, + 0.21381333333333344, + 0.2108600000000002 + ], + "IA Power_0": [ + 5.851373333333334, + 5.895946666666664, + 5.897126666666667 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.36086666666667, + 6.475313333333332, + 6.429913333333333 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7580599999999994, + 0.7632666666666664, + 0.7405666666666666 + ], + "GT Power_0": [ + 0.10273999999999998, + 0.10402000000000002, + 0.10094000000000004 + ], + "IA Power_0": [ + 6.003560000000001, + 5.7193466666666675, + 5.675013333333332 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.423706666666667, + 6.414340000000001, + 6.07068 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + } + ] + }, + { + "bot": "BUILD127-A9", + "number": 4427, + "tests": [ + { + "DRAM Power_0": [ + 0.5998333333333329, + 0.6119466666666663, + 0.5992251655629136 + ], + "GT Power_0": [ + 0.04052666666666666, + 0.014213333333333331, + 0.013993377483443705 + ], + "IA Power_0": [ + 3.0844000000000005, + 3.327013333333336, + 3.0534768211920533 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.3567133333333334, + 3.6380200000000005, + 3.3026556291390743 + ], + "name": "Basic", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7349999999999998, + 0.7348466666666664, + 0.7343599999999996 + ], + "GT Power_0": [ + 0.10198000000000008, + 0.10364666666666673, + 0.09984666666666665 + ], + "IA Power_0": [ + 5.356979999999999, + 5.361413333333335, + 5.358673333333333 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 5.724593333333336, + 5.7389, + 5.733259999999997 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7528866666666665, + 0.7537814569536424, + 0.7356754966887418 + ], + "GT Power_0": [ + 0.10238000000000004, + 0.10259602649006619, + 0.10865562913907292 + ], + "IA Power_0": [ + 5.618553333333329, + 5.393284768211922, + 5.3585761589404 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.095326666666665, + 5.883576158940393, + 5.747827814569535 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 151, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.7929733333333338, + 0.7917733333333334, + 0.7913576158940401 + ], + "GT Power_0": [ + 0.22205999999999992, + 0.2237666666666666, + 0.2250993377483444 + ], + "IA Power_0": [ + 5.788353333333332, + 5.561333333333334, + 5.570490066225166 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.34362, + 6.121073333333332, + 6.0966423841059605 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 151 + ] + }, + { + "DRAM Power_0": [ + 0.745073333333333, + 0.7403599999999998, + 0.7516026490066223 + ], + "GT Power_0": [ + 0.10419999999999996, + 0.10562, + 0.10694039735099338 + ], + "IA Power_0": [ + 6.015199999999999, + 5.496473333333332, + 5.48833774834437 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.362773333333333, + 5.882346666666666, + 5.916695364238412 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + }, + { + "bot": "BUILD120-A9", + "number": 4426, + "tests": [ + { + "DRAM Power_0": [ + 0.5995466666666662, + 0.5977019867549664, + 0.5969399999999994 + ], + "GT Power_0": [ + 0.03224666666666665, + 0.01586092715231788, + 0.015800000000000005 + ], + "IA Power_0": [ + 3.78508, + 3.639688741721854, + 3.6164266666666656 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 3.999699999999997, + 3.8987086092715235, + 3.878706666666666 + ], + "name": "Basic", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7568199999999997, + 0.7333046357615896, + 0.733206666666666 + ], + "GT Power_0": [ + 0.1244266666666666, + 0.12520529801324506, + 0.12172000000000002 + ], + "IA Power_0": [ + 6.7718399999999965, + 6.418940397350992, + 6.424646666666664 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.495593333333333, + 6.799456953642379, + 6.799620000000001 + ], + "name": "Video_720_MP4", + "samples": [ + 150, + 151, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7514933333333329, + 0.7353199999999993, + 0.734033333333333 + ], + "GT Power_0": [ + 0.1213666666666667, + 0.11846000000000001, + 0.12071333333333335 + ], + "IA Power_0": [ + 6.744106666666667, + 6.482826666666665, + 6.3928199999999995 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.213306666666666, + 6.852393333333333, + 6.740773333333333 + ], + "name": "Video_720_MP4_Fullscreen", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7948466666666671, + 0.9229733333333339, + 0.8096066666666668 + ], + "GT Power_0": [ + 0.25653333333333345, + 0.2576333333333335, + 0.2572866666666666 + ], + "IA Power_0": [ + 7.016299999999998, + 10.040713333333336, + 6.718639999999996 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 7.543873333333334, + 10.6132, + 7.3368400000000005 + ], + "name": "Video_720_MP4_Underlay", + "samples": [ + 150, + 150, + 150 + ] + }, + { + "DRAM Power_0": [ + 0.7423799999999998, + 0.7419266666666663, + 0.892801324503311 + ], + "GT Power_0": [ + 0.1335733333333333, + 0.1281066666666667, + 0.13041059602649008 + ], + "IA Power_0": [ + 6.587173333333331, + 6.644960000000001, + 17.069980132450336 + ], + "Package Power Limit_0": [ + 65.0, + 65.0, + 65.0 + ], + "Processor Power_0": [ + 6.930413333333334, + 6.934413333333332, + 17.975960264900667 + ], + "name": "Video_720_MP4_Underlay_Fullscreen", + "samples": [ + 150, + 150, + 151 + ] + } + ] + } + ] +}
diff --git a/content/utility/utility_thread_impl.cc b/content/utility/utility_thread_impl.cc index 1455be2..adedf88 100644 --- a/content/utility/utility_thread_impl.cc +++ b/content/utility/utility_thread_impl.cc
@@ -143,8 +143,6 @@ service_factory_.reset(new UtilityServiceFactory); if (connection) { - GetContentClient()->OnServiceManagerConnected(connection); - // NOTE: You must register any ConnectionFilter instances on |connection| // *before* this call to |Start()|, otherwise incoming interface requests // may race with the registration.
diff --git a/device/fido/virtual_u2f_device.cc b/device/fido/virtual_u2f_device.cc index 6260205..fed784f 100644 --- a/device/fido/virtual_u2f_device.cc +++ b/device/fido/virtual_u2f_device.cc
@@ -40,13 +40,24 @@ } // namespace +// VirtualU2fDevice ---------------------------------------------------------- + +// static +bool VirtualU2fDevice::IsTransportSupported(FidoTransportProtocol transport) { + return base::Contains(base::flat_set<FidoTransportProtocol>( + {FidoTransportProtocol::kUsbHumanInterfaceDevice, + FidoTransportProtocol::kBluetoothLowEnergy, + FidoTransportProtocol::kNearFieldCommunication}), + transport); +} + VirtualU2fDevice::VirtualU2fDevice() : VirtualFidoDevice(), weak_factory_(this) {} -// VirtualU2fDevice ---------------------------------------------------------- - VirtualU2fDevice::VirtualU2fDevice(scoped_refptr<State> state) - : VirtualFidoDevice(std::move(state)), weak_factory_(this) {} + : VirtualFidoDevice(std::move(state)), weak_factory_(this) { + DCHECK(IsTransportSupported(mutable_state()->transport)); +} VirtualU2fDevice::~VirtualU2fDevice() = default;
diff --git a/device/fido/virtual_u2f_device.h b/device/fido/virtual_u2f_device.h index 8d0d0a3..a6e1cac2 100644 --- a/device/fido/virtual_u2f_device.h +++ b/device/fido/virtual_u2f_device.h
@@ -20,6 +20,10 @@ class COMPONENT_EXPORT(DEVICE_FIDO) VirtualU2fDevice : public VirtualFidoDevice { public: + // Returns true if the |transport| is supported by virtual U2F devices, false + // otherwise. + static bool IsTransportSupported(FidoTransportProtocol transport); + VirtualU2fDevice(); explicit VirtualU2fDevice(scoped_refptr<State> state); ~VirtualU2fDevice() override;
diff --git a/fuchsia/engine/BUILD.gn b/fuchsia/engine/BUILD.gn index a175283..b01218ce 100644 --- a/fuchsia/engine/BUILD.gn +++ b/fuchsia/engine/BUILD.gn
@@ -167,6 +167,9 @@ excluded_files = [ "lib/libswiftshader_libEGL.so", "lib/libswiftshader_libGLESv2.so", + "lib/libEGL.so", + "lib/libGLESv2.so", + "lib/libfuchsia_egl.so", ] }
diff --git a/fuchsia/engine/browser/context_impl_browsertest.cc b/fuchsia/engine/browser/context_impl_browsertest.cc index 598cd17..d536330 100644 --- a/fuchsia/engine/browser/context_impl_browsertest.cc +++ b/fuchsia/engine/browser/context_impl_browsertest.cc
@@ -18,10 +18,6 @@ #include "fuchsia/base/test_navigation_listener.h" #include "fuchsia/engine/common.h" #include "fuchsia/engine/test/web_engine_browser_test.h" -#include "net/cookies/cookie_store.h" -#include "net/url_request/url_request_context.h" -#include "net/url_request/url_request_context_getter.h" -#include "services/network/public/cpp/features.h" #include "services/network/public/mojom/cookie_manager.mojom.h" #include "services/network/public/mojom/network_context.mojom.h" #include "testing/gmock/include/gmock/gmock.h" @@ -34,18 +30,11 @@ namespace { -void OnNetworkServiceCookiesReceived(net::CookieList* output, - base::OnceClosure on_received_cb, - const net::CookieList& cookies) { - *output = cookies; - std::move(on_received_cb).Run(); -} - void OnCookiesReceived(net::CookieList* output, base::OnceClosure on_received_cb, - const net::CookieList& cookies, - const net::CookieStatusList& cookie_status) { - OnNetworkServiceCookiesReceived(output, std::move(on_received_cb), cookies); + const net::CookieList& cookies) { + *output = cookies; + std::move(on_received_cb).Run(); } // Defines a suite of tests that exercise browser-level configuration and @@ -66,30 +55,13 @@ base::RunLoop run_loop; net::CookieList cookies; network::mojom::CookieManagerPtr cookie_manager; - if (base::FeatureList::IsEnabled(network::features::kNetworkService)) { - content::BrowserContext::GetDefaultStoragePartition( - context_impl()->browser_context_for_test()) - ->GetNetworkContext() - ->GetCookieManager(mojo::MakeRequest(&cookie_manager)); - cookie_manager->GetAllCookies( - base::BindOnce(&OnNetworkServiceCookiesReceived, - base::Unretained(&cookies), run_loop.QuitClosure())); - } else { - net::CookieStore* cookie_store = - content::BrowserContext::GetDefaultStoragePartition( - context_impl()->browser_context_for_test()) - ->GetURLRequestContext() - ->GetURLRequestContext() - ->cookie_store(); - base::PostTaskWithTraits( - FROM_HERE, {content::BrowserThread::IO}, - base::BindOnce( - &net::CookieStore::GetAllCookiesAsync, - base::Unretained(cookie_store), - base::BindOnce(&OnCookiesReceived, base::Unretained(&cookies), - run_loop.QuitClosure()))); - } - + content::BrowserContext::GetDefaultStoragePartition( + context_impl()->browser_context_for_test()) + ->GetNetworkContext() + ->GetCookieManager(mojo::MakeRequest(&cookie_manager)); + cookie_manager->GetAllCookies(base::BindOnce(&OnCookiesReceived, + base::Unretained(&cookies), + run_loop.QuitClosure())); run_loop.Run(); return cookies; }
diff --git a/headless/lib/browser/headless_clipboard.cc b/headless/lib/browser/headless_clipboard.cc index ccf616f..d1ce2e07 100644 --- a/headless/lib/browser/headless_clipboard.cc +++ b/headless/lib/browser/headless_clipboard.cc
@@ -12,7 +12,7 @@ namespace headless { HeadlessClipboard::HeadlessClipboard() - : default_store_type_(ui::CLIPBOARD_TYPE_COPY_PASTE) {} + : default_store_type_(ui::ClipboardType::kCopyPaste) {} HeadlessClipboard::~HeadlessClipboard() = default; @@ -123,7 +123,7 @@ default_store_type_ = type; for (const auto& kv : objects) DispatchObject(static_cast<ObjectType>(kv.first), kv.second); - default_store_type_ = ui::CLIPBOARD_TYPE_COPY_PASTE; + default_store_type_ = ui::ClipboardType::kCopyPaste; } void HeadlessClipboard::WriteText(const char* text_data, size_t text_len) { @@ -131,8 +131,8 @@ GetDefaultStore().data[ui::ClipboardFormatType::GetPlainTextType()] = text; // Create a dummy entry. GetDefaultStore().data[ui::ClipboardFormatType::GetPlainTextType()]; - if (IsSupportedClipboardType(ui::CLIPBOARD_TYPE_SELECTION)) { - GetStore(ui::CLIPBOARD_TYPE_SELECTION) + if (IsSupportedClipboardType(ui::ClipboardType::kSelection)) { + GetStore(ui::ClipboardType::kSelection) .data[ui::ClipboardFormatType::GetPlainTextType()] = text; } }
diff --git a/headless/lib/headless_browser_browsertest.cc b/headless/lib/headless_browser_browsertest.cc index 7c7b9db..623acc90 100644 --- a/headless/lib/headless_browser_browsertest.cc +++ b/headless/lib/headless_browser_browsertest.cc
@@ -265,8 +265,8 @@ ASSERT_TRUE(clipboard); base::string16 paste_text = base::ASCIIToUTF16("Clippy!"); for (ui::ClipboardType type : - {ui::CLIPBOARD_TYPE_COPY_PASTE, ui::CLIPBOARD_TYPE_SELECTION, - ui::CLIPBOARD_TYPE_DRAG}) { + {ui::ClipboardType::kCopyPaste, ui::ClipboardType::kSelection, + ui::ClipboardType::kDrag}) { if (!ui::Clipboard::IsSupportedClipboardType(type)) continue; {
diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg index b85bf90..a5d1001 100644 --- a/infra/config/cr-buildbucket.cfg +++ b/infra/config/cr-buildbucket.cfg
@@ -1018,48 +1018,24 @@ } builders { - name: "Android FYI 32 dEQP Vk Release (Pixel XL)" - mixins: "android-gpu-fyi-ci" - mixins: "goma-rbe-prod" - } - - builders { name: "Android FYI 32 Vk Release (Pixel 2)" mixins: "android-gpu-fyi-ci" mixins: "goma-rbe-prod" } builders { - name: "Android FYI 32 Vk Release (Pixel XL)" - mixins: "android-gpu-fyi-ci" - mixins: "goma-rbe-prod" - } - - builders { name: "Android FYI 64 dEQP Vk Release (Pixel 2)" mixins: "android-gpu-fyi-ci" mixins: "goma-rbe-prod" } builders { - name: "Android FYI 64 dEQP Vk Release (Pixel XL)" - mixins: "android-gpu-fyi-ci" - mixins: "goma-rbe-prod" - } - - builders { name: "Android FYI 64 Vk Release (Pixel 2)" mixins: "android-gpu-fyi-ci" mixins: "goma-rbe-prod" } builders { - name: "Android FYI 64 Vk Release (Pixel XL)" - mixins: "android-gpu-fyi-ci" - mixins: "goma-rbe-prod" - } - - builders { name: "Android FYI dEQP Release (Nexus 5X)" mixins: "android-gpu-fyi-ci" mixins: "goma-rbe-prod" @@ -1108,6 +1084,12 @@ } builders { + name: "Android FYI SkiaRenderer Vulkan (Pixel 2)" + mixins: "android-gpu-fyi-ci" + mixins: "goma-rbe-prod" + } + + builders { name: "Android Release (Nexus 5X)" mixins: "android-gpu-ci" } @@ -1696,13 +1678,6 @@ } builders { - name: "Linux Tests (dbg)(1)(32)" - mixins: "linux-ci" - mixins: "linux-xenial" - mixins: "builderless" - } - - builders { name: "Linux TSan Builder" mixins: "linux" mixins: "linux-xenial" @@ -3796,26 +3771,6 @@ name: "gpu-fyi-try-android-p-pixel-2-64-deqp-vk" } builders { - mixins: "android-optional-gpu-try" - mixins: "goma-rbe-prod" - name: "gpu-fyi-try-android-p-pixel-xl-32-vk" - } - builders { - mixins: "android-optional-gpu-try" - mixins: "goma-rbe-prod" - name: "gpu-fyi-try-android-p-pixel-xl-32-deqp-vk" - } - builders { - mixins: "android-optional-gpu-try" - mixins: "goma-rbe-prod" - name: "gpu-fyi-try-android-p-pixel-xl-64-vk" - } - builders { - mixins: "android-optional-gpu-try" - mixins: "goma-rbe-prod" - name: "gpu-fyi-try-android-p-pixel-xl-64-deqp-vk" - } - builders { mixins: "android-try" mixins: "deterministic" mixins: "goma-rbe-prod" @@ -4151,13 +4106,6 @@ mixins: "builderless" } builders { - mixins: "linux-try" - mixins: "goma-rbe-prod" - name: "linux_chromium_dbg_32_ng" - mixins: "linux-xenial" - mixins: "builderless" - } - builders { mixins: "builderless" mixins: "goma-rbe-prod" mixins: "linux-debug-cache"
diff --git a/infra/config/luci-milo.cfg b/infra/config/luci-milo.cfg index f9264db..804b1394 100644 --- a/infra/config/luci-milo.cfg +++ b/infra/config/luci-milo.cfg
@@ -556,11 +556,6 @@ short_name: "det" } builders { - name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)(32)" - category: "chromium.linux|debug|tester" - short_name: "32" - } - builders { name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)" category: "chromium.linux|debug|tester" short_name: "64" @@ -979,11 +974,6 @@ short_name: "det" } builders { - name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)(32)" - category: "debug|tester" - short_name: "32" - } - builders { name: "buildbucket/luci.chromium.ci/Linux Tests (dbg)(1)" category: "debug|tester" short_name: "64" @@ -2677,41 +2667,21 @@ short_name: "p2" } builders { - name: "buildbucket/luci.chromium.ci/Android FYI 32 Vk Release (Pixel XL)" - category: "week2a|android|32" - short_name: "pxl" - } - builders { name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel 2)" category: "week2a|android|32deqp" short_name: "p2" } builders { - name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel XL)" - category: "week2a|android|32deqp" - short_name: "pxl" - } - builders { name: "buildbucket/luci.chromium.ci/Android FYI 64 Vk Release (Pixel 2)" category: "week2a|android|64" short_name: "p2" } builders { - name: "buildbucket/luci.chromium.ci/Android FYI 64 Vk Release (Pixel XL)" - category: "week2a|android|64" - short_name: "pxl" - } - builders { name: "buildbucket/luci.chromium.ci/Android FYI 64 dEQP Vk Release (Pixel 2)" category: "week2a|android|64deqp" short_name: "p2" } builders { - name: "buildbucket/luci.chromium.ci/Android FYI 64 dEQP Vk Release (Pixel XL)" - category: "week2a|android|64deqp" - short_name: "pxl" - } - builders { name: "buildbucket/luci.chromium.ci/Android FYI Release (NVIDIA Shield TV)" category: "week2a|android|rel" short_name: "shdtv" @@ -3412,16 +3382,6 @@ short_name: "P2" } builders { - name: "buildbucket/luci.chromium.ci/Android FYI 32 Vk Release (Pixel XL)" - category: "Android|vk|P32" - short_name: "PXL" - } - builders { - name: "buildbucket/luci.chromium.ci/Android FYI 64 Vk Release (Pixel XL)" - category: "Android|vk|P64" - short_name: "PXL" - } - builders { name: "buildbucket/luci.chromium.ci/Android FYI 32 Vk Release (Pixel 2)" category: "Android|vk|P32" short_name: "P2" @@ -3437,16 +3397,6 @@ short_name: "N5X" } builders { - name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel XL)" - category: "Android|dqp|vk|P32" - short_name: "PXL" - } - builders { - name: "buildbucket/luci.chromium.ci/Android FYI 64 dEQP Vk Release (Pixel XL)" - category: "Android|dqp|vk|P64" - short_name: "PXL" - } - builders { name: "buildbucket/luci.chromium.ci/Android FYI 32 dEQP Vk Release (Pixel 2)" category: "Android|dqp|vk|P32" short_name: "P2" @@ -3456,6 +3406,11 @@ category: "Android|dqp|vk|P64" short_name: "P2" } + builders { + name: "buildbucket/luci.chromium.ci/Android FYI SkiaRenderer Vulkan (Pixel 2)" + category: "Android|skv|P32" + short_name: "P2" + } } consoles { @@ -4058,18 +4013,6 @@ name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-2-64-deqp-vk" } builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-vk" - } - builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-deqp-vk" - } - builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-vk" - } - builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-deqp-vk" - } - builders { name: "buildbucket/luci.chromium.try/android-deterministic-rel" } builders { @@ -4234,9 +4177,6 @@ name: "buildbucket/luci.chromium.try/linux_chromium_component_updater" } builders { - name: "buildbucket/luci.chromium.try/linux_chromium_dbg_32_ng" - } - builders { name: "buildbucket/luci.chromium.try/linux_chromium_msan_rel_ng" } builders { @@ -4746,18 +4686,6 @@ name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-2-64-deqp-vk" } builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-vk" - } - builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-32-deqp-vk" - } - builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-vk" - } - builders { - name: "buildbucket/luci.chromium.try/gpu-fyi-try-android-p-pixel-xl-64-deqp-vk" - } - builders { name: "buildbucket/luci.chromium.try/gpu-fyi-try-linux-intel-dqp" } builders { @@ -4947,9 +4875,6 @@ name: "buildbucket/luci.chromium.try/linux-rel" } builders { - name: "buildbucket/luci.chromium.try/linux_chromium_dbg_32_ng" - } - builders { name: "buildbucket/luci.chromium.try/linux_chromium_dbg_ng" } builders {
diff --git a/infra/config/luci-scheduler.cfg b/infra/config/luci-scheduler.cfg index 8643590a..cf23283 100644 --- a/infra/config/luci-scheduler.cfg +++ b/infra/config/luci-scheduler.cfg
@@ -72,13 +72,9 @@ triggers: "Android Builder (dbg) Goma Latest Client" triggers: "Android CFI" triggers: "Android FYI 32 Vk Release (Pixel 2)" - triggers: "Android FYI 32 Vk Release (Pixel XL)" triggers: "Android FYI 32 dEQP Vk Release (Pixel 2)" - triggers: "Android FYI 32 dEQP Vk Release (Pixel XL)" triggers: "Android FYI 64 Vk Release (Pixel 2)" - triggers: "Android FYI 64 Vk Release (Pixel XL)" triggers: "Android FYI 64 dEQP Vk Release (Pixel 2)" - triggers: "Android FYI 64 dEQP Vk Release (Pixel XL)" triggers: "Android FYI Release (NVIDIA Shield TV)" triggers: "Android FYI Release (Nexus 5)" triggers: "Android FYI Release (Nexus 5X)" @@ -456,16 +452,6 @@ } job { - id: "Android FYI 32 dEQP Vk Release (Pixel XL)" - acl_sets: "default" - buildbucket: { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci" - builder: "Android FYI 32 dEQP Vk Release (Pixel XL)" - } -} - -job { id: "Android FYI 32 Vk Release (Pixel 2)" acl_sets: "default" buildbucket: { @@ -476,16 +462,6 @@ } job { - id: "Android FYI 32 Vk Release (Pixel XL)" - acl_sets: "default" - buildbucket: { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci" - builder: "Android FYI 32 Vk Release (Pixel XL)" - } -} - -job { id: "Android FYI 64 dEQP Vk Release (Pixel 2)" acl_sets: "default" buildbucket: { @@ -496,16 +472,6 @@ } job { - id: "Android FYI 64 dEQP Vk Release (Pixel XL)" - acl_sets: "default" - buildbucket: { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci" - builder: "Android FYI 64 dEQP Vk Release (Pixel XL)" - } -} - -job { id: "Android FYI 64 Vk Release (Pixel 2)" acl_sets: "default" buildbucket: { @@ -516,16 +482,6 @@ } job { - id: "Android FYI 64 Vk Release (Pixel XL)" - acl_sets: "default" - buildbucket: { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci" - builder: "Android FYI 64 Vk Release (Pixel XL)" - } -} - -job { id: "Android FYI dEQP Release (Nexus 5X)" acl_sets: "default" buildbucket: { @@ -606,6 +562,16 @@ } job { + id: "Android FYI SkiaRenderer Vulkan (Pixel 2)" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "Android FYI SkiaRenderer Vulkan (Pixel 2)" + } +} + +job { id: "Android Release (Nexus 5X)" acl_sets: "default" buildbucket: { @@ -1882,17 +1848,6 @@ } } -# Triggered by "Linux Builder (dbg)(32)" -job { - id: "Linux Tests (dbg)(1)(32)" - acl_sets: "triggered-by-parent-builders" - buildbucket: { - server: "cr-buildbucket.appspot.com" - bucket: "luci.chromium.ci" - builder: "Linux Tests (dbg)(1)(32)" - } -} - job { id: "Linux Builder" acl_sets: "default"
diff --git a/ios/chrome/browser/ui/activity_services/activity_service_controller.mm b/ios/chrome/browser/ui/activity_services/activity_service_controller.mm index 123b9f23..78193c8 100644 --- a/ios/chrome/browser/ui/activity_services/activity_service_controller.mm +++ b/ios/chrome/browser/ui/activity_services/activity_service_controller.mm
@@ -277,9 +277,8 @@ active_time = l10n_util::GetNSString( IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_TODAY); } else if (days == 1) { - active_time = l10n_util::GetNSStringF( - IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_DAY, - base::NumberToString16(days)); + active_time = l10n_util::GetNSString( + IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_DAY); } else { active_time = l10n_util::GetNSStringF( IDS_IOS_SEND_TAB_TO_SELF_TARGET_DEVICE_ITEM_SUBTITLE_DAYS,
diff --git a/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm b/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm index b7a521e..a75d6e9 100644 --- a/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm +++ b/ios/chrome/browser/ui/signin_interaction/signin_interaction_controller_egtest.mm
@@ -395,7 +395,9 @@ // Tests to dismiss sign-in by opening an URL from another app. // Sign-in opened from: tab switcher. // Interrupted at: user consent. -- (void)testDismissSigninFromTabSwitcher { +// TODO(crbug.com/976828): Test flaky based on the screen size and the number +// of recently closed tabs from the previous tests. +- (void)DISABLED_testDismissSigninFromTabSwitcher { [self assertOpenURLWhenSigninFromView:OpenSigninMethodFromTabSwitcher tapSettingsLink:NO]; } @@ -403,7 +405,9 @@ // Tests to dismiss sign-in by opening an URL from another app. // Sign-in opened from: tab switcher. // Interrupted at: advanced sign-in. -- (void)testDismissSigninFromTabSwitcherFromAdvancedSigninSettings { +// TODO(crbug.com/976828): Test flaky based on the screen size and the number +// of recently closed tabs from the previous tests. +- (void)DISABLED_testDismissSigninFromTabSwitcherFromAdvancedSigninSettings { [self assertOpenURLWhenSigninFromView:OpenSigninMethodFromTabSwitcher tapSettingsLink:YES]; }
diff --git a/media/audio/audio_output_unittest.cc b/media/audio/audio_output_unittest.cc index fb65539..c649475 100644 --- a/media/audio/audio_output_unittest.cc +++ b/media/audio/audio_output_unittest.cc
@@ -98,7 +98,7 @@ } // This test produces actual audio for .25 seconds on the default device. -TEST_F(AudioOutputTest, Play200HzTone) { +TEST_F(AudioOutputTest, DISABLED_Play200HzTone) { ABORT_AUDIO_TEST_IF_NOT(audio_manager_device_info_->HasAudioOutputDevices()); stream_params_ =
diff --git a/media/audio/fake_audio_input_stream.cc b/media/audio/fake_audio_input_stream.cc index ea06f93..0c03c65 100644 --- a/media/audio/fake_audio_input_stream.cc +++ b/media/audio/fake_audio_input_stream.cc
@@ -3,19 +3,15 @@ // found in the LICENSE file. #include "media/audio/fake_audio_input_stream.h" -#include <memory> #include "base/atomicops.h" #include "base/bind.h" #include "base/bind_helpers.h" #include "base/command_line.h" #include "base/files/file_path.h" -#include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/single_thread_task_runner.h" #include "base/strings/string_split.h" -#include "base/threading/platform_thread.h" -#include "base/threading/thread.h" #include "base/time/time.h" #include "media/audio/audio_manager_base.h" #include "media/audio/simple_sources.h" @@ -38,7 +34,7 @@ const AudioParameters& params) : audio_manager_(manager), callback_(NULL), - capture_thread_("FakeAudioInput"), + fake_audio_worker_(manager->GetWorkerTaskRunner(), params), params_(params), audio_bus_(AudioBus::Create(params)) { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); @@ -55,39 +51,16 @@ return true; } -void FakeAudioInputStream::Start(AudioInputCallback* callback) { +void FakeAudioInputStream::Start(AudioInputCallback* callback) { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); - DCHECK(callback); - DCHECK(!callback_); - DCHECK(!fake_audio_worker_); - callback_ = callback; - - base::Thread::Options options; - options.priority = base::ThreadPriority::REALTIME_AUDIO; - CHECK(capture_thread_.StartWithOptions(options)); - - fake_audio_worker_ = - std::make_unique<FakeAudioWorker>(capture_thread_.task_runner(), params_); - - fake_audio_worker_->Start(base::BindRepeating( + fake_audio_worker_.Start(base::BindRepeating( &FakeAudioInputStream::ReadAudioFromSource, base::Unretained(this))); } void FakeAudioInputStream::Stop() { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); - // Start was never called - if (!callback_) { - return; - } - - DCHECK(capture_thread_.IsRunning()); - DCHECK(fake_audio_worker_); - - fake_audio_worker_->Stop(); - fake_audio_worker_.reset(); - capture_thread_.Stop(); - + fake_audio_worker_.Stop(); callback_ = NULL; } @@ -131,7 +104,7 @@ void FakeAudioInputStream::ReadAudioFromSource(base::TimeTicks ideal_time, base::TimeTicks now) { - DCHECK(capture_thread_.task_runner()->BelongsToCurrentThread()); + DCHECK(audio_manager_->GetWorkerTaskRunner()->BelongsToCurrentThread()); DCHECK(callback_); if (!audio_source_) @@ -154,7 +127,7 @@ using AudioSourceCallback = AudioOutputStream::AudioSourceCallback; std::unique_ptr<AudioSourceCallback> FakeAudioInputStream::ChooseSource() { - DCHECK(capture_thread_.task_runner()->BelongsToCurrentThread()); + DCHECK(audio_manager_->GetWorkerTaskRunner()->BelongsToCurrentThread()); if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kUseFileForFakeAudioCapture)) {
diff --git a/media/audio/fake_audio_input_stream.h b/media/audio/fake_audio_input_stream.h index 1369332..29f74df 100644 --- a/media/audio/fake_audio_input_stream.h +++ b/media/audio/fake_audio_input_stream.h
@@ -12,7 +12,6 @@ #include "base/callback_forward.h" #include "base/macros.h" -#include "base/threading/thread.h" #include "media/audio/audio_io.h" #include "media/base/audio_parameters.h" #include "media/base/fake_audio_worker.h" @@ -70,10 +69,9 @@ AudioManagerBase* audio_manager_; AudioInputCallback* callback_; - base::Thread capture_thread_; + FakeAudioWorker fake_audio_worker_; AudioParameters params_; - std::unique_ptr<FakeAudioWorker> fake_audio_worker_; std::unique_ptr<AudioOutputStream::AudioSourceCallback> audio_source_; std::unique_ptr<media::AudioBus> audio_bus_;
diff --git a/media/base/android/media_drm_bridge_unittest.cc b/media/base/android/media_drm_bridge_unittest.cc index 664854d7..bed53cb 100644 --- a/media/base/android/media_drm_bridge_unittest.cc +++ b/media/base/android/media_drm_bridge_unittest.cc
@@ -174,7 +174,7 @@ CreateWithoutSessionSupport(kWidevineKeySystem, kTestOrigin, kL1); } -TEST_F(MediaDrmBridgeTest, Provision_Widevine) { +TEST_F(MediaDrmBridgeTest, DISABLED_Provision_Widevine) { // Only test this if Widevine is supported. Otherwise // CreateWithoutSessionSupport() will return null and it can't be tested. if (!MediaDrmBridge::IsKeySystemSupported(kWidevineKeySystem)) {
diff --git a/media/base/fake_audio_worker_unittest.cc b/media/base/fake_audio_worker_unittest.cc index 69ce37f..b1ee9e6 100644 --- a/media/base/fake_audio_worker_unittest.cc +++ b/media/base/fake_audio_worker_unittest.cc
@@ -4,8 +4,6 @@ #include "media/base/fake_audio_worker.h" -#include <limits> -#include <memory> #include <vector> #include "base/bind.h" @@ -13,10 +11,7 @@ #include "base/memory/scoped_refptr.h" #include "base/single_thread_task_runner.h" #include "base/test/scoped_task_environment.h" -#include "base/test/test_mock_time_task_runner.h" -#include "base/time/tick_clock.h" #include "base/time/time.h" -#include "base/time/time_override.h" #include "build/build_config.h" #include "media/base/audio_parameters.h" #include "testing/gmock/include/gmock/gmock-matchers.h" @@ -174,92 +169,4 @@ scoped_task_environment_.FastForwardUntilNoTasksRemain(); EXPECT_THAT(callbacks_, SizeIs(3)); } - -class FakeAudioWorkerMockTaskTest : public testing::Test { - public: - FakeAudioWorkerMockTaskTest() - : params_(AudioParameters::AUDIO_FAKE, CHANNEL_LAYOUT_STEREO, 44100, 128), - fake_worker_(task_runner_, params_) { - DCHECK(!global_clock_); - global_clock_ = task_runner_->GetMockTickClock(); - time_between_callbacks_ = base::TimeDelta::FromMicroseconds( - params_.frames_per_buffer() * base::Time::kMicrosecondsPerSecond / - static_cast<float>(params_.sample_rate())); - clock_overrides_ = std::make_unique<base::subtle::ScopedTimeClockOverrides>( - nullptr, TimeTicksOverride, nullptr); - } - - ~FakeAudioWorkerMockTaskTest() override { global_clock_ = nullptr; } - - void CalledByFakeWorker(base::TimeTicks ideal_time, base::TimeTicks now) { - callbacks_.push_back(base::TimeTicks::Now()); - } - - void SetUp() override { - { - base::TestMockTimeTaskRunner::ScopedContext ctx(task_runner_); - fake_worker_.Start( - base::BindRepeating(&FakeAudioWorkerMockTaskTest::CalledByFakeWorker, - base::Unretained(this))); - } - } - - void TearDown() override { - { - base::TestMockTimeTaskRunner::ScopedContext ctx(task_runner_); - fake_worker_.Stop(); - } - task_runner_->RunUntilIdle(); - } - - protected: - scoped_refptr<base::TestMockTimeTaskRunner> task_runner_ = - new base::TestMockTimeTaskRunner(); - std::unique_ptr<base::subtle::ScopedTimeClockOverrides> clock_overrides_; - AudioParameters params_; - FakeAudioWorker fake_worker_; - base::TimeDelta time_between_callbacks_; - std::vector<base::TimeTicks> callbacks_; - - static const base::TickClock* global_clock_; - static base::TimeTicks TimeTicksOverride() { - DCHECK(global_clock_); - return global_clock_->NowTicks(); - } - - private: - DISALLOW_COPY_AND_ASSIGN(FakeAudioWorkerMockTaskTest); -}; - -const base::TickClock* FakeAudioWorkerMockTaskTest::global_clock_ = nullptr; - -// This test is disabled because when late we skip reading to maintain -// compatibility for input and output streams. -TEST_F(FakeAudioWorkerMockTaskTest, DISABLED_LateCallbackProducesCallback) { - task_runner_->RunUntilIdle(); - EXPECT_THAT(callbacks_, SizeIs(1)); - - // Advancing 2 periods will trigger the late logic. It should result in one - // callback, And one queued item which will run in 0.5 callback periods. - task_runner_->AdvanceMockTickClock(time_between_callbacks_ * 2.5); - task_runner_->RunUntilIdle(); - EXPECT_THAT(callbacks_, SizeIs(2)); - // Fast-forward to trigger the next time. Note that 0.5 does not work due to - // rounding in the next frame logic, since 128 does not divide 44100. - task_runner_->FastForwardBy(time_between_callbacks_ * 0.501); - EXPECT_THAT(callbacks_, SizeIs(3)); -} - -TEST_F(FakeAudioWorkerMockTaskTest, CallbackDelay) { - // Initial call only - task_runner_->RunUntilIdle(); - - // Run the clock forward 1.5 periods and then trigger the callback. - // This means we are not behind, but the next callback should occur - // in 0.5 periods. - task_runner_->AdvanceMockTickClock(time_between_callbacks_ * 1.5); - task_runner_->RunUntilIdle(); - EXPECT_THAT(callbacks_, SizeIs(2)); - EXPECT_EQ(task_runner_->NextPendingTaskDelay(), time_between_callbacks_ / 2); -} } // namespace media
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn index f2b7c9d..61652aa 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn
@@ -167,6 +167,8 @@ "windows/d3d11_h264_accelerator.h", "windows/d3d11_picture_buffer.cc", "windows/d3d11_picture_buffer.h", + "windows/d3d11_texture_selector.cc", + "windows/d3d11_texture_selector.h", "windows/d3d11_texture_wrapper.cc", "windows/d3d11_texture_wrapper.h", "windows/d3d11_video_context_wrapper.cc", @@ -571,6 +573,7 @@ "windows/d3d11_cdm_proxy_unittest.cc", "windows/d3d11_copying_texture_wrapper_unittest.cc", "windows/d3d11_decryptor_unittest.cc", + "windows/d3d11_texture_selector_unittest.cc", "windows/d3d11_video_decoder_unittest.cc", "windows/d3d11_video_processor_proxy_unittest.cc", ]
diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn index 0fad908..d65ff99 100644 --- a/media/gpu/vaapi/BUILD.gn +++ b/media/gpu/vaapi/BUILD.gn
@@ -83,7 +83,6 @@ "//media", "//media/gpu:common", "//media/gpu:video_frame_mapper_common", - "//media/gpu/chromeos:common", "//media/parsers", "//mojo/public/cpp/bindings", "//third_party/libyuv", @@ -102,6 +101,7 @@ deps += [ "//components/chromeos_camera:jpeg_encode_accelerator", "//components/chromeos_camera:mjpeg_decode_accelerator", + "//media/gpu/chromeos:common", ] }
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc index f080f1ec..6362223 100644 --- a/media/gpu/vaapi/vaapi_wrapper.cc +++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -156,6 +156,82 @@ VAProfileH264ConstrainedBaseline}}, }; +// Converts the given |va_profile| to the corresponding string. +// See: http://go/gh/intel/libva/blob/master/va/va.h#L359 +std::string VAProfileToString(VAProfile va_profile) { + switch (va_profile) { + case VAProfileNone: + return "VAProfileNone"; + case VAProfileMPEG2Simple: + return "VAProfileMPEG2Simple"; + case VAProfileMPEG2Main: + return "VAProfileMPEG2Main"; + case VAProfileMPEG4Simple: + return "VAProfileMPEG4Simple"; + case VAProfileMPEG4AdvancedSimple: + return "VAProfileMPEG4AdvancedSimple"; + case VAProfileMPEG4Main: + return "VAProfileMPEG4Main"; + case VAProfileH264Baseline: + return "VAProfileH264Baseline"; + case VAProfileH264Main: + return "VAProfileH264Main"; + case VAProfileH264High: + return "VAProfileH264High"; + case VAProfileVC1Simple: + return "VAProfileVC1Simple"; + case VAProfileVC1Main: + return "VAProfileVC1Main"; + case VAProfileVC1Advanced: + return "VAProfileVC1Advanced"; + case VAProfileH263Baseline: + return "VAProfileH263Baseline"; + case VAProfileJPEGBaseline: + return "VAProfileJPEGBaseline"; + case VAProfileH264ConstrainedBaseline: + return "VAProfileH264ConstrainedBaseline"; + case VAProfileVP8Version0_3: + return "VAProfileVP8Version0_3"; + case VAProfileH264MultiviewHigh: + return "VAProfileH264MultiviewHigh"; + case VAProfileH264StereoHigh: + return "VAProfileH264StereoHigh"; + case VAProfileHEVCMain: + return "VAProfileHEVCMain"; + case VAProfileHEVCMain10: + return "VAProfileHEVCMain10"; + case VAProfileVP9Profile0: + return "VAProfileVP9Profile0"; + case VAProfileVP9Profile1: + return "VAProfileVP9Profile1"; + case VAProfileVP9Profile2: + return "VAProfileVP9Profile2"; + case VAProfileVP9Profile3: + return "VAProfileVP9Profile3"; + case VAProfileHEVCMain12: + return "VAProfileHEVCMain12"; + case VAProfileHEVCMain422_10: + return "VAProfileHEVCMain422_10"; + case VAProfileHEVCMain422_12: + return "VAProfileHEVCMain422_12"; + case VAProfileHEVCMain444: + return "VAProfileHEVCMain444"; + case VAProfileHEVCMain444_10: + return "VAProfileHEVCMain444_10"; + case VAProfileHEVCMain444_12: + return "VAProfileHEVCMain444_12"; + case VAProfileHEVCSccMain: + return "VAProfileHEVCSccMain"; + case VAProfileHEVCSccMain10: + return "VAProfileHEVCSccMain10"; + case VAProfileHEVCSccMain444: + return "VAProfileHEVCSccMain444"; + default: + NOTREACHED(); + return ""; + } +} + bool IsBlackListedDriver(const std::string& va_vendor_string, VaapiWrapper::CodecMode mode, VAProfile va_profile) { @@ -422,7 +498,8 @@ VAStatus va_res = vaGetConfigAttributes(va_display, profile, entrypoint, &attrib, 1); if (va_res != VA_STATUS_SUCCESS) { - LOG(ERROR) << "GetConfigAttributes failed for va_profile " << profile; + LOG(ERROR) << "GetConfigAttributes failed for va_profile " + << VAProfileToString(profile); return false; } @@ -593,7 +670,8 @@ if (!FillProfileInfo_Locked(va_profile, entrypoint, required_attribs, &profile_info)) { LOG(ERROR) << "FillProfileInfo_Locked failed for va_profile " - << va_profile << " and entrypoint " << entrypoint; + << VAProfileToString(va_profile) << " and entrypoint " + << entrypoint; continue; } supported_profile_infos.push_back(profile_info); @@ -993,7 +1071,8 @@ if (vaapi_wrapper->Initialize(mode, va_profile)) return vaapi_wrapper; } - LOG(ERROR) << "Failed to create VaapiWrapper for va_profile: " << va_profile; + LOG(ERROR) << "Failed to create VaapiWrapper for va_profile: " + << VAProfileToString(va_profile); return nullptr; }
diff --git a/media/gpu/windows/d3d11_texture_selector.cc b/media/gpu/windows/d3d11_texture_selector.cc new file mode 100644 index 0000000..3789d17 --- /dev/null +++ b/media/gpu/windows/d3d11_texture_selector.cc
@@ -0,0 +1,145 @@ +// Copyright 2019 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. + +#include "media/gpu/windows/d3d11_texture_selector.h" + +#include <d3d11.h> + +#include "media/gpu/windows/d3d11_copying_texture_wrapper.h" +#include "ui/gfx/geometry/size.h" + +namespace media { + +TextureSelector::TextureSelector(VideoPixelFormat pixfmt, + DXGI_FORMAT dxgifmt, + GUID decoder_guid, + gfx::Size coded_size, + bool is_encrypted, + bool supports_swap_chain) + : pixel_format_(pixfmt), + dxgi_format_(dxgifmt), + decoder_guid_(decoder_guid), + coded_size_(coded_size), + is_encrypted_(is_encrypted), + supports_swap_chain_(supports_swap_chain) { + SetUpDecoderDescriptor(); + SetUpTextureDescriptor(); +} + +// static +std::unique_ptr<TextureSelector> TextureSelector::Create( + const VideoDecoderConfig& config) { + // TODO(tmathmeyer) use a CopyTextureSelector + if (config.profile() == VP9PROFILE_PROFILE2) { + return std::make_unique<TextureSelector>( + PIXEL_FORMAT_YUV420P10, DXGI_FORMAT_P010, + D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2, config.coded_size(), + config.is_encrypted(), false); + } + + bool supports_nv12_decode_swap_chain = base::FeatureList::IsEnabled( + features::kDirectCompositionUseNV12DecodeSwapChain); + + if (config.profile() == VP9PROFILE_PROFILE0) { + return std::make_unique<TextureSelector>( + PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12, + D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0, config.coded_size(), + config.is_encrypted(), supports_nv12_decode_swap_chain); + } + + if (config.codec() == kCodecH264) { + return std::make_unique<TextureSelector>( + PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12, + D3D11_DECODER_PROFILE_H264_VLD_NOFGT, config.coded_size(), + config.is_encrypted(), supports_nv12_decode_swap_chain); + } + + return nullptr; +} + +bool TextureSelector::SupportsDevice( + Microsoft::WRL::ComPtr<ID3D11VideoDevice> video_device) { + for (UINT i = video_device->GetVideoDecoderProfileCount(); i--;) { + GUID profile = {}; + if (SUCCEEDED(video_device->GetVideoDecoderProfile(i, &profile))) { + if (profile == decoder_guid_) + return true; + } + } + return false; +} + +ComD3D11Texture2D TextureSelector::CreateOutputTexture(ComD3D11Device device, + gfx::Size size) { + texture_desc_.Width = size.width(); + texture_desc_.Height = size.height(); + + ComD3D11Texture2D result; + if (!SUCCEEDED(device->CreateTexture2D(&texture_desc_, nullptr, &result))) + return nullptr; + + return result; +} + +std::unique_ptr<Texture2DWrapper> TextureSelector::CreateTextureWrapper( + ComD3D11Device device, + ComD3D11VideoDevice video_device, + ComD3D11DeviceContext device_context, + ComD3D11Texture2D input_texture, + gfx::Size size) { + return std::make_unique<DefaultTexture2DWrapper>(input_texture); +} + +// private +void TextureSelector::SetUpDecoderDescriptor() { + decoder_desc_ = {}; + decoder_desc_.Guid = decoder_guid_; + decoder_desc_.SampleWidth = coded_size_.width(); + decoder_desc_.SampleHeight = coded_size_.height(); + decoder_desc_.OutputFormat = dxgi_format_; +} + +// private +void TextureSelector::SetUpTextureDescriptor() { + texture_desc_ = {}; + texture_desc_.MipLevels = 1; + texture_desc_.ArraySize = TextureSelector::BUFFER_COUNT; + texture_desc_.Format = dxgi_format_; + texture_desc_.SampleDesc.Count = 1; + texture_desc_.Usage = D3D11_USAGE_DEFAULT; + texture_desc_.BindFlags = D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE; + + // Decode swap chains do not support shared resources. + // TODO(sunnyps): Find a workaround for when the decoder moves to its own + // thread and D3D device. See https://crbug.com/911847 + texture_desc_.MiscFlags = + supports_swap_chain_ ? 0 : D3D11_RESOURCE_MISC_SHARED; + + if (is_encrypted_) + texture_desc_.MiscFlags |= D3D11_RESOURCE_MISC_HW_PROTECTED; +} + +std::unique_ptr<Texture2DWrapper> CopyTextureSelector::CreateTextureWrapper( + ComD3D11Device device, + ComD3D11VideoDevice video_device, + ComD3D11DeviceContext device_context, + ComD3D11Texture2D input_texture, + gfx::Size size) { + // Change the texture descriptor flags to make different output textures + texture_desc_.BindFlags = + D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET; + texture_desc_.ArraySize = 1; + texture_desc_.CPUAccessFlags = 0; + + ComD3D11Texture2D out_texture = CreateOutputTexture(device, size); + if (!out_texture) + return nullptr; + + return std::make_unique<CopyingTexture2DWrapper>( + std::make_unique<DefaultTexture2DWrapper>(out_texture), + std::make_unique<VideoProcessorProxy>(video_device, device_context), + input_texture); +} + +} // namespace media
diff --git a/media/gpu/windows/d3d11_texture_selector.h b/media/gpu/windows/d3d11_texture_selector.h new file mode 100644 index 0000000..f54d52f0 --- /dev/null +++ b/media/gpu/windows/d3d11_texture_selector.h
@@ -0,0 +1,92 @@ +// Copyright 2019 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. + +#ifndef MEDIA_GPU_WINDOWS_D3D11_TEXTURE_SELECTOR_H_ +#define MEDIA_GPU_WINDOWS_D3D11_TEXTURE_SELECTOR_H_ + +#include <d3d11.h> +#include <wrl.h> +#include <memory> +#include <vector> + +#include "media/gpu/media_gpu_export.h" +#include "media/gpu/windows/d3d11_picture_buffer.h" +#include "media/gpu/windows/d3d11_video_processor_proxy.h" +#include "ui/gfx/geometry/size.h" + +namespace media { + +// Stores different pixel formats and DGXI formats, and checks for decoder +// GUID support. +class MEDIA_GPU_EXPORT TextureSelector { + public: + TextureSelector(VideoPixelFormat pixfmt, + DXGI_FORMAT dxgifmt, + GUID decoder_guid, + gfx::Size coded_size, + bool is_encrypted, + bool supports_swap_chain); + virtual ~TextureSelector() = default; + + static std::unique_ptr<TextureSelector> Create( + const VideoDecoderConfig& config); + + bool SupportsDevice(Microsoft::WRL::ComPtr<ID3D11VideoDevice> video_device); + ComD3D11Texture2D CreateOutputTexture(ComD3D11Device device, gfx::Size size); + virtual std::unique_ptr<Texture2DWrapper> CreateTextureWrapper( + ComD3D11Device device, + ComD3D11VideoDevice video_device, + ComD3D11DeviceContext, + ComD3D11Texture2D input_texture, + gfx::Size size); + + const D3D11_VIDEO_DECODER_DESC* DecoderDescriptor() { return &decoder_desc_; } + const GUID DecoderGuid() { return decoder_guid_; } + VideoPixelFormat PixelFormat() { return pixel_format_; } + + static constexpr size_t BUFFER_COUNT = 20; + + private: + friend class CopyTextureSelector; + // Set up instances of the parameter structs for D3D11 Functions + void SetUpDecoderDescriptor(); + void SetUpTextureDescriptor(); + + D3D11_TEXTURE2D_DESC texture_desc_; + D3D11_VIDEO_DECODER_DESC decoder_desc_; + + const VideoPixelFormat pixel_format_; + const DXGI_FORMAT dxgi_format_; + const GUID decoder_guid_; + const gfx::Size coded_size_; + const bool is_encrypted_; + const bool supports_swap_chain_; +}; + +class MEDIA_GPU_EXPORT CopyTextureSelector : public TextureSelector { + public: + CopyTextureSelector(VideoPixelFormat pixfmt, + DXGI_FORMAT dxgifmt, + GUID decoder_guid, + gfx::Size coded_size, + bool is_encrypted, + bool supports_swap_chain) + : TextureSelector(pixfmt, + dxgifmt, + decoder_guid, + coded_size, + is_encrypted, + supports_swap_chain) {} + + std::unique_ptr<Texture2DWrapper> CreateTextureWrapper( + ComD3D11Device device, + ComD3D11VideoDevice video_device, + ComD3D11DeviceContext, + ComD3D11Texture2D input_texture, + gfx::Size size) override; +}; + +} // namespace media + +#endif // MEDIA_GPU_WINDOWS_D3D11_TEXTURE_SELECTOR_H_
diff --git a/media/gpu/windows/d3d11_texture_selector_unittest.cc b/media/gpu/windows/d3d11_texture_selector_unittest.cc new file mode 100644 index 0000000..aa1e0d9d2 --- /dev/null +++ b/media/gpu/windows/d3d11_texture_selector_unittest.cc
@@ -0,0 +1,96 @@ +// Copyright 2019 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. + +#include <utility> + +#include "media/base/win/d3d11_mocks.h" +#include "media/gpu/windows/d3d11_texture_selector.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using ::testing::_; +using ::testing::Combine; +using ::testing::DoAll; +using ::testing::Return; +using ::testing::SetArgPointee; +using ::testing::Values; + +namespace media { + +class D3D11TextureSelectorUnittest : public ::testing::Test { + public: + VideoDecoderConfig CreateDecoderConfig(VideoCodecProfile profile, + gfx::Size size, + bool encrypted) { + VideoDecoderConfig result; + EncryptionPattern pattern; + result.Initialize( + kUnknownVideoCodec, // It doesn't matter because it won't be used. + profile, PIXEL_FORMAT_UNKNOWN, VideoColorSpace(), kNoTransformation, + size, {}, {}, {}, + EncryptionScheme(encrypted ? EncryptionScheme::CIPHER_MODE_AES_CTR + : EncryptionScheme::CIPHER_MODE_UNENCRYPTED, + pattern)); + return result; + } +}; + +TEST_F(D3D11TextureSelectorUnittest, VP9Profile0RightFormats) { + auto tex_sel = TextureSelector::Create( + CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false)); + + EXPECT_EQ(tex_sel->DecoderGuid(), D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0); + EXPECT_EQ(tex_sel->PixelFormat(), PIXEL_FORMAT_NV12); + EXPECT_EQ(tex_sel->DecoderDescriptor()->OutputFormat, DXGI_FORMAT_NV12); +} + +TEST_F(D3D11TextureSelectorUnittest, SupportsDeviceNoProfiles) { + auto tex_sel = TextureSelector::Create( + CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false)); + + auto vd_mock = CreateD3D11Mock<D3D11VideoDeviceMock>(); + EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfileCount()) + .Times(1) + .WillOnce(Return(0)); + + EXPECT_FALSE(tex_sel->SupportsDevice(vd_mock)); +} + +TEST_F(D3D11TextureSelectorUnittest, SupportsDeviceWrongProfiles) { + auto tex_sel = TextureSelector::Create( + CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false)); + + auto vd_mock = CreateD3D11Mock<D3D11VideoDeviceMock>(); + EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfileCount()) + .Times(1) + .WillOnce(Return(2)); + EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfile(0, _)) + .Times(1) + .WillOnce(DoAll(SetArgPointee<1>(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN), + Return(S_OK))); + EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfile(1, _)) + .Times(1) + .WillOnce( + DoAll(SetArgPointee<1>(D3D11_DECODER_PROFILE_VC1_VLD), Return(S_OK))); + + EXPECT_FALSE(tex_sel->SupportsDevice(vd_mock)); +} + +TEST_F(D3D11TextureSelectorUnittest, SupportsDeviceCorrectProfile) { + auto tex_sel = TextureSelector::Create( + CreateDecoderConfig(VP9PROFILE_PROFILE0, {0, 0}, false)); + + auto vd_mock = CreateD3D11Mock<D3D11VideoDeviceMock>(); + EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfileCount()) + .Times(1) + .WillOnce(Return(5)); + EXPECT_CALL(*vd_mock.Get(), GetVideoDecoderProfile(4, _)) + .Times(1) + .WillOnce(DoAll(SetArgPointee<1>(D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0), + Return(S_OK))); + + EXPECT_TRUE(tex_sel->SupportsDevice(vd_mock)); +} + +} // namespace media
diff --git a/media/gpu/windows/d3d11_video_decoder.cc b/media/gpu/windows/d3d11_video_decoder.cc index f61b8dbd..9987c03 100644 --- a/media/gpu/windows/d3d11_video_decoder.cc +++ b/media/gpu/windows/d3d11_video_decoder.cc
@@ -31,19 +31,6 @@ namespace { -#define INRANGE(_profile, codecname) \ - (_profile >= codecname##PROFILE_MIN && _profile <= codecname##PROFILE_MAX) - -bool IsVP9(const VideoDecoderConfig& config) { - return INRANGE(config.profile(), VP9); -} - -bool IsH264(const VideoDecoderConfig& config) { - return INRANGE(config.profile(), H264); -} - -#undef INRANGE - // Holder class, so that we don't keep creating CommandBufferHelpers every time // somebody calls a callback. We can't actually create it until we're on the // right thread. @@ -79,79 +66,6 @@ } // namespace -D3D11_VIDEO_DECODER_DESC TextureSelector::DecoderDescriptor(gfx::Size size) { - D3D11_VIDEO_DECODER_DESC desc = {}; - desc.Guid = decoder_guid; - desc.SampleWidth = size.width(); - desc.SampleHeight = size.height(); - desc.OutputFormat = dxgi_format; - return desc; -} - -D3D11_TEXTURE2D_DESC TextureSelector::TextureDescriptor(gfx::Size size) { - D3D11_TEXTURE2D_DESC texture_desc = {}; - texture_desc.Width = size.width(); - texture_desc.Height = size.height(); - texture_desc.MipLevels = 1; - texture_desc.ArraySize = TextureSelector::BUFFER_COUNT; - texture_desc.Format = dxgi_format; - texture_desc.SampleDesc.Count = 1; - texture_desc.Usage = D3D11_USAGE_DEFAULT; - texture_desc.BindFlags = D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE; - - // Decode swap chains do not support shared resources. - // TODO(sunnyps): Find a workaround for when the decoder moves to its own - // thread and D3D device. See https://crbug.com/911847 - texture_desc.MiscFlags = - supports_swap_chain_ ? 0 : D3D11_RESOURCE_MISC_SHARED; - - if (is_encrypted_) - texture_desc.MiscFlags |= D3D11_RESOURCE_MISC_HW_PROTECTED; - - return texture_desc; -} - -bool TextureSelector::SupportsDevice(ComD3D11VideoDevice video_device) { - for (UINT i = video_device->GetVideoDecoderProfileCount(); i--;) { - GUID profile = {}; - if (SUCCEEDED(video_device->GetVideoDecoderProfile(i, &profile))) { - if (profile == decoder_guid) - return true; - } - } - return false; -} - -// static -std::unique_ptr<TextureSelector> TextureSelector::Create( - const VideoDecoderConfig& config) { - if (config.profile() == VP9PROFILE_PROFILE2) { - return std::make_unique<TextureSelector>( - PIXEL_FORMAT_YUV420P10, DXGI_FORMAT_P010, - D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2, config.is_encrypted(), - false); - } - - bool supports_nv12_decode_swap_chain = base::FeatureList::IsEnabled( - features::kDirectCompositionUseNV12DecodeSwapChain); - - if (config.profile() == VP9PROFILE_PROFILE0) { - return std::make_unique<TextureSelector>( - PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12, - D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0, config.is_encrypted(), - supports_nv12_decode_swap_chain); - } - - if (IsH264(config)) { - return std::make_unique<TextureSelector>( - PIXEL_FORMAT_NV12, DXGI_FORMAT_NV12, - D3D11_DECODER_PROFILE_H264_VLD_NOFGT, config.is_encrypted(), - supports_nv12_decode_swap_chain); - } - - return nullptr; -} - std::unique_ptr<VideoDecoder> D3D11VideoDecoder::Create( scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner, std::unique_ptr<MediaLog> media_log, @@ -239,7 +153,7 @@ if (!SUCCEEDED(hr)) return hr; - if (IsVP9(config)) { + if (config.codec() == kCodecVP9) { accelerated_video_decoder_ = std::make_unique<VP9Decoder>( std::make_unique<D3D11VP9Accelerator>( this, media_log_.get(), proxy_context, video_decoder, video_device_, @@ -248,7 +162,7 @@ return hr; } - if (IsH264(config)) { + if (config.codec() == kCodecH264) { accelerated_video_decoder_ = std::make_unique<H264Decoder>( std::make_unique<D3D11H264Accelerator>( this, media_log_.get(), proxy_context, video_decoder, video_device_, @@ -352,10 +266,9 @@ if (multi_threaded) multi_threaded->SetMultithreadProtected(TRUE); - D3D11_VIDEO_DECODER_DESC desc = - texture_selector_->DecoderDescriptor(config.coded_size()); UINT config_count = 0; - hr = video_device_->GetVideoDecoderConfigCount(&desc, &config_count); + hr = video_device_->GetVideoDecoderConfigCount( + texture_selector_->DecoderDescriptor(), &config_count); if (FAILED(hr) || config_count == 0) { NotifyError("Failed to get video decoder config count"); return; @@ -363,8 +276,10 @@ D3D11_VIDEO_DECODER_CONFIG dec_config = {}; bool found = false; + for (UINT i = 0; i < config_count; i++) { - hr = video_device_->GetVideoDecoderConfig(&desc, i, &dec_config); + hr = video_device_->GetVideoDecoderConfig( + texture_selector_->DecoderDescriptor(), i, &dec_config); if (FAILED(hr)) { NotifyError("Failed to get decoder config"); return; @@ -376,13 +291,13 @@ continue; } - if (IsVP9(config) && dec_config.ConfigBitstreamRaw == 1) { + if (config.codec() == kCodecVP9 && dec_config.ConfigBitstreamRaw == 1) { // DXVA VP9 specification mentions ConfigBitstreamRaw "shall be 1". found = true; break; } - if (IsH264(config) && dec_config.ConfigBitstreamRaw == 2) { + if (config.codec() == kCodecH264 && dec_config.ConfigBitstreamRaw == 2) { // ConfigBitstreamRaw == 2 means the decoder uses DXVA_Slice_H264_Short. found = true; break; @@ -393,9 +308,9 @@ return; } - ComD3D11VideoDecoder video_decoder; - hr = video_device_->CreateVideoDecoder( - &desc, &dec_config, video_decoder.ReleaseAndGetAddressOf()); + Microsoft::WRL::ComPtr<ID3D11VideoDecoder> video_decoder; + hr = video_device_->CreateVideoDecoder(texture_selector_->DecoderDescriptor(), + &dec_config, &video_decoder); if (!video_decoder.Get()) { NotifyError("Failed to create a video decoder"); return; @@ -651,13 +566,10 @@ DCHECK(texture_selector_); gfx::Size size = accelerated_video_decoder_->GetPicSize(); - D3D11_TEXTURE2D_DESC texture_desc = - texture_selector_->TextureDescriptor(size); - - ComD3D11Texture2D out_texture; - HRESULT hr = device_->CreateTexture2D(&texture_desc, nullptr, - out_texture.ReleaseAndGetAddressOf()); - if (!SUCCEEDED(hr)) { + // Create an input texture array. + ComD3D11Texture2D in_texture = + texture_selector_->CreateOutputTexture(device_, size); + if (!in_texture) { NotifyError("Failed to create a Texture2D for PictureBuffers"); return; } @@ -667,14 +579,16 @@ DCHECK(!buffer->in_picture_use()); picture_buffers_.clear(); - // Create each picture buffer. + // Create each picture buffer.1 const int textures_per_picture = 2; // From the VDA for (size_t i = 0; i < TextureSelector::BUFFER_COUNT; i++) { - auto processor = std::make_unique<DefaultTexture2DWrapper>(out_texture); + auto tex_wrapper = texture_selector_->CreateTextureWrapper( + device_, video_device_, device_context_, in_texture, size); + picture_buffers_.push_back(new D3D11PictureBuffer( - GL_TEXTURE_EXTERNAL_OES, std::move(processor), size, i)); + GL_TEXTURE_EXTERNAL_OES, std::move(tex_wrapper), size, i)); if (!picture_buffers_[i]->Init(get_helper_cb_, video_device_, - texture_selector_->decoder_guid, + texture_selector_->DecoderGuid(), textures_per_picture, media_log_->Clone())) { NotifyError("Unable to allocate PictureBuffer"); return; @@ -720,7 +634,7 @@ } scoped_refptr<VideoFrame> frame = VideoFrame::WrapNativeTextures( - texture_selector_->pixel_format, mailbox_holders, + texture_selector_->PixelFormat(), mailbox_holders, VideoFrame::ReleaseMailboxCB(), picture_buffer->size(), visible_rect, GetNaturalSize(visible_rect, pixel_aspect_ratio), timestamp);
diff --git a/media/gpu/windows/d3d11_video_decoder.h b/media/gpu/windows/d3d11_video_decoder.h index 369b643..b76bf59 100644 --- a/media/gpu/windows/d3d11_video_decoder.h +++ b/media/gpu/windows/d3d11_video_decoder.h
@@ -5,6 +5,7 @@ #ifndef MEDIA_GPU_D3D11_VIDEO_DECODER_H_ #define MEDIA_GPU_D3D11_VIDEO_DECODER_H_ +#include <d3d11.h> #include <string> #include <vector> @@ -23,6 +24,7 @@ #include "media/gpu/media_gpu_export.h" #include "media/gpu/windows/d3d11_com_defs.h" #include "media/gpu/windows/d3d11_h264_accelerator.h" +#include "media/gpu/windows/d3d11_texture_selector.h" #include "media/gpu/windows/d3d11_video_decoder_client.h" #include "media/gpu/windows/d3d11_vp9_accelerator.h" #include "media/video/supported_video_decoder_config.h" @@ -38,42 +40,6 @@ class D3D11VideoDecoderTest; class MediaLog; -// Stores different pixel formats and DGXI formats, and checks for decoder -// GUID support. -class TextureSelector { - public: - TextureSelector(VideoPixelFormat pixfmt, - DXGI_FORMAT dxgifmt, - GUID decoder_guid, - bool is_encrypted, - bool supports_swap_chain) - : pixel_format(pixfmt), - dxgi_format(dxgifmt), - decoder_guid(decoder_guid), - is_encrypted_(is_encrypted), - supports_swap_chain_(supports_swap_chain) {} - ~TextureSelector() = default; - - static std::unique_ptr<TextureSelector> Create( - const VideoDecoderConfig& config); - - D3D11_VIDEO_DECODER_DESC DecoderDescriptor(gfx::Size size); - D3D11_TEXTURE2D_DESC TextureDescriptor(gfx::Size size); - bool SupportsDevice(ComD3D11VideoDevice video_device); - - const VideoPixelFormat pixel_format; - const DXGI_FORMAT dxgi_format; - const GUID decoder_guid; - - // TODO(liberato): what's the minimum that we need for the decoder? - // the VDA requests 20. - static constexpr int BUFFER_COUNT = 20; - - private: - const bool is_encrypted_; - const bool supports_swap_chain_; -}; - // Video decoder that uses D3D11 directly. It is intended that this class will // run the decoder on whatever thread it lives on. However, at the moment, it // only works if it's on the gpu main thread.
diff --git a/mojo/core/broker_host.cc b/mojo/core/broker_host.cc index a40abad..5e6b225 100644 --- a/mojo/core/broker_host.cc +++ b/mojo/core/broker_host.cc
@@ -108,21 +108,21 @@ base::subtle::PlatformSharedMemoryRegion region = base::subtle::PlatformSharedMemoryRegion::CreateWritable(num_bytes); - std::vector<PlatformHandleInTransit> handles; - handles.reserve(2); + std::vector<PlatformHandleInTransit> handles(2); if (region.IsValid()) { PlatformHandle h[2]; ExtractPlatformHandlesFromSharedMemoryRegionHandle( region.PassPlatformHandle(), &h[0], &h[1]); - handles.emplace_back(std::move(h[0])); + handles[0] = PlatformHandleInTransit(std::move(h[0])); + handles[1] = PlatformHandleInTransit(std::move(h[1])); #if !defined(OS_POSIX) || defined(OS_ANDROID) || \ (defined(OS_MACOSX) && !defined(OS_IOS)) // Non-POSIX systems, as well as Android, and non-iOS Mac, only use a single // handle to represent a writable region. - DCHECK(!h[1].is_valid()); + DCHECK(!handles[1].handle().is_valid()); + handles.resize(1); #else - DCHECK(h[1].is_valid()); - handles.emplace_back(std::move(h[1])); + DCHECK(handles[1].handle().is_valid()); #endif }
diff --git a/mojo/core/data_pipe_unittest.cc b/mojo/core/data_pipe_unittest.cc index a4675079..4e7c9b0 100644 --- a/mojo/core/data_pipe_unittest.cc +++ b/mojo/core/data_pipe_unittest.cc
@@ -42,9 +42,6 @@ const char kMultiprocessTestData[] = "hello i'm a string that is 36 bytes"; const int kMultiprocessMaxIter = 5; -// Capacity that will cause data pipe creation to fail. -constexpr size_t kOversizedCapacity = std::numeric_limits<uint32_t>::max(); - // TODO(rockot): There are many uses of ASSERT where EXPECT would be more // appropriate. Fix this. @@ -1730,17 +1727,6 @@ return num_bytes == 0; } -TEST_F(DataPipeTest, CreateOversized) { - const MojoCreateDataPipeOptions options = { - kSizeOfOptions, // |struct_size|. - MOJO_CREATE_DATA_PIPE_FLAG_NONE, // |flags|. - 1, // |element_num_bytes|. - kOversizedCapacity, // |capacity_num_bytes|. - }; - - ASSERT_EQ(MOJO_RESULT_RESOURCE_EXHAUSTED, Create(&options)); -} - #if !defined(OS_IOS) TEST_F(DataPipeTest, Multiprocess) { @@ -2054,33 +2040,6 @@ }); } -DEFINE_TEST_CLIENT_TEST_WITH_PIPE(CreateOversizedChild, DataPipeTest, h) { - const MojoCreateDataPipeOptions options = { - kSizeOfOptions, // |struct_size|. - MOJO_CREATE_DATA_PIPE_FLAG_NONE, // |flags|. - 1, // |element_num_bytes|. - kOversizedCapacity // |capacity_num_bytes|. - }; - - MojoHandle p, c; - ASSERT_EQ(MOJO_RESULT_RESOURCE_EXHAUSTED, - MojoCreateDataPipe(&options, &p, &c)); - WriteMessage(h, "success"); - - // Wait for a quit message. - EXPECT_EQ("quit", ReadMessage(h)); -} - -TEST_F(DataPipeTest, CreateOversizedInChild) { - RunTestClient("CreateOversizedChild", [&](MojoHandle child) { - // Wait for the child to finish the test. - std::string expected_message = ReadMessage(child); - EXPECT_EQ("success", expected_message); - - WriteMessage(child, "quit"); - }); -} - #endif // !defined(OS_IOS) } // namespace
diff --git a/net/http/http_auth_gssapi_posix.cc b/net/http/http_auth_gssapi_posix.cc index 9dfbcf0..4428629 100644 --- a/net/http/http_auth_gssapi_posix.cc +++ b/net/http/http_auth_gssapi_posix.cc
@@ -13,68 +13,17 @@ #include "base/format_macros.h" #include "base/logging.h" #include "base/stl_util.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_piece.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/threading/thread_restrictions.h" +#include "net/base/hex_utils.h" #include "net/base/net_errors.h" #include "net/http/http_auth_gssapi_posix.h" #include "net/http/http_auth_multi_round_parse.h" #include "net/net_buildflags.h" -// Based on RFC 2744 Appendix A (https://tools.ietf.org/html/rfc2744#appendix-A) -// These constants are defined here for use in diagnostics without adding a -// dependency on an external library. -namespace { - -static gss_OID_desc GSS_C_NT_USER_NAME_VAL = { - 10, - const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x01") -}; -static gss_OID_desc GSS_C_NT_MACHINE_UID_NAME_VAL = { - 10, - const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02") -}; -static gss_OID_desc GSS_C_NT_STRING_UID_NAME_VAL = { - 10, - const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03") -}; -static gss_OID_desc GSS_C_NT_HOSTBASED_SERVICE_X_VAL = { - 6, - const_cast<char*>("\x2b\x06\x01\x05\x06\x02") -}; -static gss_OID_desc GSS_C_NT_HOSTBASED_SERVICE_VAL = { - 10, - const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04") -}; -static gss_OID_desc GSS_C_NT_ANONYMOUS_VAL = { - 6, - const_cast<char*>("\x2b\x06\01\x05\x06\x03") -}; -static gss_OID_desc GSS_C_NT_EXPORT_NAME_VAL = { - 6, - const_cast<char*>("\x2b\x06\x01\x05\x06\x04") -}; - -} // namespace - -// Heimdal >= 1.4 will define the following as preprocessor macros. -// To avoid conflicting declarations, we have to undefine these. -#undef GSS_C_NT_USER_NAME -#undef GSS_C_NT_MACHINE_UID_NAME -#undef GSS_C_NT_STRING_UID_NAME -#undef GSS_C_NT_HOSTBASED_SERVICE_X -#undef GSS_C_NT_HOSTBASED_SERVICE -#undef GSS_C_NT_ANONYMOUS -#undef GSS_C_NT_EXPORT_NAME - -gss_OID GSS_C_NT_USER_NAME = &GSS_C_NT_USER_NAME_VAL; -gss_OID GSS_C_NT_MACHINE_UID_NAME = &GSS_C_NT_MACHINE_UID_NAME_VAL; -gss_OID GSS_C_NT_STRING_UID_NAME = &GSS_C_NT_STRING_UID_NAME_VAL; -gss_OID GSS_C_NT_HOSTBASED_SERVICE_X = &GSS_C_NT_HOSTBASED_SERVICE_X_VAL; -gss_OID GSS_C_NT_HOSTBASED_SERVICE = &GSS_C_NT_HOSTBASED_SERVICE_VAL; -gss_OID GSS_C_NT_ANONYMOUS = &GSS_C_NT_ANONYMOUS_VAL; -gss_OID GSS_C_NT_EXPORT_NAME = &GSS_C_NT_EXPORT_NAME_VAL; - namespace net { using DelegationType = HttpAuth::DelegationType; @@ -93,98 +42,22 @@ // Debugging helpers. namespace { -std::string DisplayStatus(OM_uint32 major_status, - OM_uint32 minor_status) { - if (major_status == GSS_S_COMPLETE) - return "OK"; - return base::StringPrintf("0x%08X 0x%08X", major_status, minor_status); -} - -std::string DisplayCode(GSSAPILibrary* gssapi_lib, - OM_uint32 status, - OM_uint32 status_code_type) { - const int kMaxDisplayIterations = 8; - const size_t kMaxMsgLength = 4096; - // msg_ctx needs to be outside the loop because it is invoked multiple times. - OM_uint32 msg_ctx = 0; - std::string rv = base::StringPrintf("(0x%08X)", status); - - // This loop should continue iterating until msg_ctx is 0 after the first - // iteration. To be cautious and prevent an infinite loop, it stops after - // a finite number of iterations as well. As an added sanity check, no - // individual message may exceed |kMaxMsgLength|, and the final result - // will not exceed |kMaxMsgLength|*2-1. - for (int i = 0; i < kMaxDisplayIterations && rv.size() < kMaxMsgLength; - ++i) { - OM_uint32 min_stat; - gss_buffer_desc_struct msg = GSS_C_EMPTY_BUFFER; - OM_uint32 maj_stat = - gssapi_lib->display_status(&min_stat, status, status_code_type, - GSS_C_NULL_OID, &msg_ctx, &msg); - if (maj_stat == GSS_S_COMPLETE) { - int msg_len = (msg.length > kMaxMsgLength) ? - static_cast<int>(kMaxMsgLength) : - static_cast<int>(msg.length); - if (msg_len > 0 && msg.value != nullptr) { - rv += base::StringPrintf(" %.*s", msg_len, - static_cast<char*>(msg.value)); - } - } - gssapi_lib->release_buffer(&min_stat, &msg); - if (!msg_ctx) - break; +OM_uint32 DelegationTypeToFlag(DelegationType delegation_type) { + switch (delegation_type) { + case DelegationType::kNone: + return 0; + case DelegationType::kByKdcPolicy: + return GSS_C_DELEG_POLICY_FLAG; + case DelegationType::kUnconstrained: + return GSS_C_DELEG_FLAG; } - return rv; } -std::string DisplayExtendedStatus(GSSAPILibrary* gssapi_lib, - OM_uint32 major_status, - OM_uint32 minor_status) { - if (major_status == GSS_S_COMPLETE) - return "OK"; - std::string major = DisplayCode(gssapi_lib, major_status, GSS_C_GSS_CODE); - std::string minor = DisplayCode(gssapi_lib, minor_status, GSS_C_MECH_CODE); - return base::StringPrintf("Major: %s | Minor: %s", major.c_str(), - minor.c_str()); -} - -// ScopedName releases a gss_name_t when it goes out of scope. -class ScopedName { - public: - ScopedName(gss_name_t name, - GSSAPILibrary* gssapi_lib) - : name_(name), - gssapi_lib_(gssapi_lib) { - DCHECK(gssapi_lib_); - } - - ~ScopedName() { - if (name_ != GSS_C_NO_NAME) { - OM_uint32 minor_status = 0; - OM_uint32 major_status = - gssapi_lib_->release_name(&minor_status, &name_); - if (major_status != GSS_S_COMPLETE) { - LOG(WARNING) << "Problem releasing name. " - << DisplayStatus(major_status, minor_status); - } - name_ = GSS_C_NO_NAME; - } - } - - private: - gss_name_t name_; - GSSAPILibrary* gssapi_lib_; - - DISALLOW_COPY_AND_ASSIGN(ScopedName); -}; - // ScopedBuffer releases a gss_buffer_t when it goes out of scope. class ScopedBuffer { public: - ScopedBuffer(gss_buffer_t buffer, - GSSAPILibrary* gssapi_lib) - : buffer_(buffer), - gssapi_lib_(gssapi_lib) { + ScopedBuffer(gss_buffer_t buffer, GSSAPILibrary* gssapi_lib) + : buffer_(buffer), gssapi_lib_(gssapi_lib) { DCHECK(gssapi_lib_); } @@ -194,8 +67,8 @@ OM_uint32 major_status = gssapi_lib_->release_buffer(&minor_status, buffer_); if (major_status != GSS_S_COMPLETE) { - LOG(WARNING) << "Problem releasing buffer. " - << DisplayStatus(major_status, minor_status); + DLOG(WARNING) << "Problem releasing buffer. major=" << major_status + << ", minor=" << minor_status; } buffer_ = GSS_C_NO_BUFFER; } @@ -208,124 +81,203 @@ DISALLOW_COPY_AND_ASSIGN(ScopedBuffer); }; -namespace { +// ScopedName releases a gss_name_t when it goes out of scope. +class ScopedName { + public: + ScopedName(gss_name_t name, GSSAPILibrary* gssapi_lib) + : name_(name), gssapi_lib_(gssapi_lib) { + DCHECK(gssapi_lib_); + } -std::string AppendIfPredefinedValue(gss_OID oid, - gss_OID predefined_oid, - const char* predefined_oid_name) { - DCHECK(oid); - DCHECK(predefined_oid); - DCHECK(predefined_oid_name); - std::string output; - if (oid->length != predefined_oid->length) - return output; - if (0 != memcmp(oid->elements, - predefined_oid->elements, - predefined_oid->length)) - return output; + ~ScopedName() { + if (name_ != GSS_C_NO_NAME) { + OM_uint32 minor_status = 0; + OM_uint32 major_status = gssapi_lib_->release_name(&minor_status, &name_); + if (major_status != GSS_S_COMPLETE) { + DLOG(WARNING) << "Problem releasing name. " + << GetGssStatusValue(nullptr, "gss_release_name", + major_status, minor_status); + } + name_ = GSS_C_NO_NAME; + } + } - output += " ("; - output += predefined_oid_name; - output += ")"; - return output; + private: + gss_name_t name_; + GSSAPILibrary* gssapi_lib_; + + DISALLOW_COPY_AND_ASSIGN(ScopedName); +}; + +bool OidEquals(const gss_OID left, const gss_OID right) { + if (left->length != right->length) + return false; + return 0 == memcmp(left->elements, right->elements, right->length); } } // namespace -std::string DescribeOid(GSSAPILibrary* gssapi_lib, const gss_OID oid) { - if (!oid) - return "<NULL>"; - std::string output; - const size_t kMaxCharsToPrint = 1024; - OM_uint32 byte_length = oid->length; - size_t char_length = byte_length / sizeof(char); - if (char_length > kMaxCharsToPrint) { - // This might be a plain ASCII string. - // Check if the first |kMaxCharsToPrint| characters - // contain only printable characters and are NUL terminated. - const char* str = reinterpret_cast<const char*>(oid); - size_t str_length = 0; - for ( ; str_length < kMaxCharsToPrint; ++str_length) { - if (!str[str_length] || !isprint(str[str_length])) - break; - } - if (!str[str_length]) { - output += base::StringPrintf("\"%s\"", str); - return output; - } - } - output = base::StringPrintf("(%u) \"", byte_length); - if (!oid->elements) { - output += "<NULL>"; - return output; - } - const unsigned char* elements = - reinterpret_cast<const unsigned char*>(oid->elements); - // Don't print more than |kMaxCharsToPrint| characters. - size_t i = 0; - for ( ; (i < byte_length) && (i < kMaxCharsToPrint); ++i) { - output += base::StringPrintf("\\x%02X", elements[i]); - } - if (i >= kMaxCharsToPrint) - output += "..."; - output += "\""; +base::Value GetGssStatusCodeValue(GSSAPILibrary* gssapi_lib, + OM_uint32 status, + OM_uint32 status_code_type) { + base::Value rv{base::Value::Type::DICTIONARY}; - // Check if the OID is one of the predefined values. - output += AppendIfPredefinedValue(oid, - GSS_C_NT_USER_NAME, - "GSS_C_NT_USER_NAME"); - output += AppendIfPredefinedValue(oid, - GSS_C_NT_MACHINE_UID_NAME, - "GSS_C_NT_MACHINE_UID_NAME"); - output += AppendIfPredefinedValue(oid, - GSS_C_NT_STRING_UID_NAME, - "GSS_C_NT_STRING_UID_NAME"); - output += AppendIfPredefinedValue(oid, - GSS_C_NT_HOSTBASED_SERVICE_X, - "GSS_C_NT_HOSTBASED_SERVICE_X"); - output += AppendIfPredefinedValue(oid, - GSS_C_NT_HOSTBASED_SERVICE, - "GSS_C_NT_HOSTBASED_SERVICE"); - output += AppendIfPredefinedValue(oid, - GSS_C_NT_ANONYMOUS, - "GSS_C_NT_ANONYMOUS"); - output += AppendIfPredefinedValue(oid, - GSS_C_NT_EXPORT_NAME, - "GSS_C_NT_EXPORT_NAME"); + rv.SetIntKey("status", status); - return output; + // Message lookups aren't performed if there's no library or if the status + // indicates success. + if (!gssapi_lib || status == GSS_S_COMPLETE) + return rv; + + // gss_display_status() can potentially return multiple strings by sending + // each string on successive invocations. State is maintained across these + // invocations in a caller supplied OM_uint32. After each successful call, + // the context is set to a non-zero value that should be passed as a message + // context to each successive gss_display_status() call. The initial and + // terminal values of this context storage is 0. + OM_uint32 message_context = 0; + + // To account for the off chance that gss_display_status() misbehaves and gets + // into an infinite loop, we'll artificially limit the number of iterations to + // |kMaxDisplayIterations|. This limit is arbitrary. + constexpr size_t kMaxDisplayIterations = 8; + size_t iterations = 0; + + // In addition, each message string is again arbitrarily limited to + // |kMaxMsgLength|. There's no real documented limit to work with here. + constexpr size_t kMaxMsgLength = 4096; + + base::Value messages{base::Value::Type::LIST}; + do { + gss_buffer_desc_struct message_buffer = GSS_C_EMPTY_BUFFER; + ScopedBuffer message_buffer_releaser(&message_buffer, gssapi_lib); + + OM_uint32 minor_status = 0; + OM_uint32 major_status = gssapi_lib->display_status( + &minor_status, status, status_code_type, GSS_C_NO_OID, &message_context, + &message_buffer); + + if (major_status != GSS_S_COMPLETE || message_buffer.length == 0 || + !message_buffer.value) { + continue; + } + + base::StringPiece message_string{ + static_cast<const char*>(message_buffer.value), + std::min(kMaxMsgLength, message_buffer.length)}; + + // The returned string is almost assuredly ASCII, but be defensive. + if (!base::IsStringUTF8(message_string)) + continue; + + messages.GetList().emplace_back(message_string); + } while (message_context != 0 && ++iterations < kMaxDisplayIterations); + + if (messages.GetList().size() > 0) + rv.SetKey("message", std::move(messages)); + return rv; } -std::string DescribeName(GSSAPILibrary* gssapi_lib, const gss_name_t name) { +base::Value GetGssStatusValue(GSSAPILibrary* gssapi_lib, + base::StringPiece method, + OM_uint32 major_status, + OM_uint32 minor_status) { + base::Value params{base::Value::Type::DICTIONARY}; + params.SetStringKey("function", method); + params.SetKey("major_status", GetGssStatusCodeValue(gssapi_lib, major_status, + GSS_C_GSS_CODE)); + params.SetKey("minor_status", GetGssStatusCodeValue(gssapi_lib, minor_status, + GSS_C_MECH_CODE)); + return params; +} + +base::Value OidToValue(gss_OID oid) { + base::Value params(base::Value::Type::DICTIONARY); + + if (!oid || oid->length == 0) { + params.SetStringKey("oid", "<Empty OID>"); + return params; + } + + params.SetIntKey("length", oid->length); + if (!oid->elements) + return params; + + // Cap OID content at arbitrary limit 1k. + constexpr OM_uint32 kMaxOidDataSize = 1024; + const base::StringPiece oid_contents(reinterpret_cast<char*>(oid->elements), + std::min(kMaxOidDataSize, oid->length)); + + params.SetStringKey("bytes", HexDump(oid_contents)); + + // Based on RFC 2744 Appendix A. Hardcoding the OIDs in the list below to + // avoid having a static dependency on the library. + static const struct { + const char* symbolic_name; + const gss_OID_desc oid_desc; + } kWellKnownOIDs[] = { + {"GSS_C_NT_USER_NAME", + {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x01")}}, + {"GSS_C_NT_MACHINE_UID_NAME", + {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x02")}}, + {"GSS_C_NT_STRING_UID_NAME", + {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03")}}, + {"GSS_C_NT_HOSTBASED_SERVICE_X", + {6, const_cast<char*>("\x2b\x06\x01\x05\x06\x02")}}, + {"GSS_C_NT_HOSTBASED_SERVICE", + {10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04")}}, + {"GSS_C_NT_ANONYMOUS", {6, const_cast<char*>("\x2b\x06\01\x05\x06\x03")}}, + {"GSS_C_NT_EXPORT_NAME", + {6, const_cast<char*>("\x2b\x06\x01\x05\x06\x04")}}}; + + for (auto& well_known_oid : kWellKnownOIDs) { + if (OidEquals(oid, const_cast<const gss_OID>(&well_known_oid.oid_desc))) + params.SetStringKey("oid", well_known_oid.symbolic_name); + } + + return params; +} + +base::Value GetDisplayNameValue(GSSAPILibrary* gssapi_lib, + const gss_name_t gss_name) { OM_uint32 major_status = 0; OM_uint32 minor_status = 0; - gss_buffer_desc_struct output_name_buffer = GSS_C_EMPTY_BUFFER; - gss_OID_desc output_name_type_desc = GSS_C_EMPTY_BUFFER; - gss_OID output_name_type = &output_name_type_desc; - major_status = gssapi_lib->display_name(&minor_status, - name, - &output_name_buffer, - &output_name_type); - ScopedBuffer scoped_output_name(&output_name_buffer, gssapi_lib); + gss_buffer_desc_struct name = GSS_C_EMPTY_BUFFER; + gss_OID name_type = GSS_C_NO_OID; + + base::Value rv{base::Value::Type::DICTIONARY}; + major_status = + gssapi_lib->display_name(&minor_status, gss_name, &name, &name_type); + ScopedBuffer scoped_output_name(&name, gssapi_lib); if (major_status != GSS_S_COMPLETE) { - std::string error = - base::StringPrintf("Unable to describe name 0x%p, %s", - name, - DisplayExtendedStatus(gssapi_lib, - major_status, - minor_status).c_str()); - return error; + rv.SetKey("error", GetGssStatusValue(gssapi_lib, "gss_display_name", + major_status, minor_status)); + return rv; } - int len = output_name_buffer.length; - std::string description = base::StringPrintf( - "%.*s (Type %s)", len, - reinterpret_cast<const char*>(output_name_buffer.value), - DescribeOid(gssapi_lib, output_name_type).c_str()); - return description; + auto name_string = + base::StringPiece(reinterpret_cast<const char*>(name.value), name.length); + rv.SetStringKey("name", base::IsStringUTF8(name_string) + ? name_string + : HexDump(name_string)); + rv.SetKey("type", OidToValue(name_type)); + return rv; } -std::string DescribeContext(GSSAPILibrary* gssapi_lib, - const gss_ctx_id_t context_handle) { +base::Value ContextFlagsToValue(OM_uint32 flags) { + // TODO(asanka): This should break down known flags. At least the + // GSS_C_DELEG_FLAG. + return base::Value(base::StringPrintf("%08x", flags)); +} + +base::Value GetContextStateAsValue(GSSAPILibrary* gssapi_lib, + const gss_ctx_id_t context_handle) { + base::Value rv{base::Value::Type::DICTIONARY}; + if (context_handle == GSS_C_NO_CONTEXT) { + rv.SetKey("error", + GetGssStatusValue(nullptr, "<none>", GSS_S_NO_CONTEXT, 0)); + return rv; + } + OM_uint32 major_status = 0; OM_uint32 minor_status = 0; gss_name_t src_name = GSS_C_NO_NAME; @@ -335,8 +287,6 @@ OM_uint32 ctx_flags = 0; int locally_initiated = 0; int open = 0; - if (context_handle == GSS_C_NO_CONTEXT) - return std::string("Context: GSS_C_NO_CONTEXT"); major_status = gssapi_lib->inquire_context(&minor_status, context_handle, &src_name, @@ -346,52 +296,25 @@ &ctx_flags, &locally_initiated, &open); + if (major_status != GSS_S_COMPLETE) { + rv.SetKey("error", GetGssStatusValue(gssapi_lib, "gss_inquire_context", + major_status, minor_status)); + return rv; + } ScopedName scoped_src_name(src_name, gssapi_lib); ScopedName scoped_targ_name(targ_name, gssapi_lib); - if (major_status != GSS_S_COMPLETE) { - std::string error = - base::StringPrintf("Unable to describe context 0x%p, %s", - context_handle, - DisplayExtendedStatus(gssapi_lib, - major_status, - minor_status).c_str()); - return error; - } - std::string source(DescribeName(gssapi_lib, src_name)); - std::string target(DescribeName(gssapi_lib, targ_name)); - std::string description = base::StringPrintf("Context 0x%p: " - "Source \"%s\", " - "Target \"%s\", " - "lifetime %d, " - "mechanism %s, " - "flags 0x%08X, " - "local %d, " - "open %d", - context_handle, - source.c_str(), - target.c_str(), - lifetime_rec, - DescribeOid(gssapi_lib, - mech_type).c_str(), - ctx_flags, - locally_initiated, - open); - return description; -} -OM_uint32 DelegationTypeToFlag(DelegationType delegation_type) { - switch (delegation_type) { - case DelegationType::kNone: - return 0; - case DelegationType::kByKdcPolicy: - return GSS_C_DELEG_POLICY_FLAG; - case DelegationType::kUnconstrained: - return GSS_C_DELEG_FLAG; - } + rv.SetKey("source", GetDisplayNameValue(gssapi_lib, src_name)); + rv.SetKey("target", GetDisplayNameValue(gssapi_lib, targ_name)); + // lifetime_rec is a uint32, while base::Value only takes ints. On 32 bit + // platforms uint32 doesn't fit on an int. + rv.SetStringKey("lifetime", base::NumberToString(lifetime_rec)); + rv.SetKey("mechanism", OidToValue(mech_type)); + rv.SetKey("flags", ContextFlagsToValue(ctx_flags)); + rv.SetBoolKey("open", !!open); + return rv; } -} // namespace - GSSAPISharedLibrary::GSSAPISharedLibrary(const std::string& gssapi_library_name) : gssapi_library_name_(gssapi_library_name) {} @@ -682,7 +605,8 @@ &minor_status, &security_context_, &output_token); if (major_status != GSS_S_COMPLETE) { LOG(WARNING) << "Problem releasing security_context. " - << DisplayStatus(major_status, minor_status); + << GetGssStatusValue(gssapi_lib_, "gss_delete_sec_context", + major_status, minor_status); } security_context_ = GSS_C_NO_CONTEXT; } @@ -854,6 +778,13 @@ const std::string& channel_bindings, gss_buffer_t in_token, gss_buffer_t out_token) { + // GSSAPI header files, to this day, require OIDs passed in as non-const + // pointers. Rather than const casting, let's just leave this as non-const. + // Even if the OID pointer is const, the inner |elements| pointer is still + // non-const. + static gss_OID_desc kGSS_C_NT_HOSTBASED_SERVICE = { + 10, const_cast<char*>("\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04")}; + // Create a name for the principal // TODO(cbentzel): Just do this on the first pass? std::string spn_principal = spn; @@ -862,16 +793,15 @@ spn_buffer.length = spn_principal.size() + 1; OM_uint32 minor_status = 0; gss_name_t principal_name = GSS_C_NO_NAME; - OM_uint32 major_status = library_->import_name( - &minor_status, - &spn_buffer, - GSS_C_NT_HOSTBASED_SERVICE, - &principal_name); + OM_uint32 major_status = + library_->import_name(&minor_status, &spn_buffer, + &kGSS_C_NT_HOSTBASED_SERVICE, &principal_name); int rv = MapImportNameStatusToError(major_status); if (rv != OK) { LOG(ERROR) << "Problem importing name from " << "spn \"" << spn_principal << "\"\n" - << DisplayExtendedStatus(library_, major_status, minor_status); + << GetGssStatusValue(library_, "gss_import_name", major_status, + minor_status); return rv; } ScopedName scoped_name(principal_name, library_); @@ -889,9 +819,10 @@ rv = MapInitSecContextStatusToError(major_status); if (rv != OK) { LOG(ERROR) << "Problem initializing context. \n" - << DisplayExtendedStatus(library_, major_status, minor_status) + << GetGssStatusValue(library_, "gss_init_sec_context", + major_status, minor_status) << '\n' - << DescribeContext(library_, scoped_sec_context_.get()); + << GetContextStateAsValue(library_, scoped_sec_context_.get()); } return rv; }
diff --git a/net/http/http_auth_gssapi_posix.h b/net/http/http_auth_gssapi_posix.h index 5284312..c0966e9 100644 --- a/net/http/http_auth_gssapi_posix.h +++ b/net/http/http_auth_gssapi_posix.h
@@ -10,6 +10,8 @@ #include "base/gtest_prod_util.h" #include "base/macros.h" #include "base/native_library.h" +#include "base/strings/string_piece_forward.h" +#include "base/values.h" #include "net/base/completion_once_callback.h" #include "net/base/net_export.h" #include "net/http/http_auth.h" @@ -247,6 +249,117 @@ HttpAuth::DelegationType delegation_type_ = HttpAuth::DelegationType::kNone; }; +// Diagnostics + +// GetGssStatusCodeValue constructs a base::Value containing a status code and a +// message. +// +// { +// "status" : <status value as a number>, +// "message": [ +// <list of strings explaining what that number means> +// ] +// } +// +// Messages are looked up via gss_display_status() exposed by |gssapi_lib|. The +// type of status code should be indicated by setting |status_code_type| to +// either |GSS_C_MECH_CODE| or |GSS_C_GSS_CODE|. +// +// Mechanism specific codes aren't unique, so the mechanism needs to be +// identified to look up messages if |status_code_type| is |GSS_C_MECH_CODE|. +// Since no mechanism OIDs are passed in, mechanism specific status codes will +// likely not have messages. +NET_EXPORT_PRIVATE base::Value GetGssStatusCodeValue( + GSSAPILibrary* gssapi_lib, + OM_uint32 status, + OM_uint32 status_code_type); + +// Given major and minor GSSAPI status codes, returns a base::Value +// encapsulating the codes as well as their meanings as expanded via +// gss_display_status(). +// +// The base::Value has the following structure: +// { +// "function": <name of GSSAPI function that returned the error> +// "major_status": { +// "status" : <status value as a number>, +// "message": [ +// <list of strings hopefully explaining what that number means> +// ] +// }, +// "minor_status": { +// "status" : <status value as a number>, +// "message": [ +// <list of strings hopefully explaining what that number means> +// ] +// } +// } +// +// Passing nullptr to |gssapi_lib| will skip the message lookups. Thus the +// returned value will be missing the "message" fields. The same is true if the +// message lookup failed for some reason, or if the lookups succeeded but +// yielded an empty message. +NET_EXPORT_PRIVATE base::Value GetGssStatusValue(GSSAPILibrary* gssapi_lib, + base::StringPiece method, + OM_uint32 major_status, + OM_uint32 minor_status); + +// OidToValue returns a base::Value representing an OID. The structure of the +// value is: +// { +// "oid": <symbolic name of OID if it is known> +// "length": <length in bytes of serialized OID>, +// "bytes": <hexdump of up to 1024 bytes of serialized OID> +// } +NET_EXPORT_PRIVATE base::Value OidToValue(const gss_OID oid); + +// GetDisplayNameValue returns a base::Value representing a gss_name_t. It +// invokes |gss_display_name()| via |gssapi_lib| to determine the display name +// associated with |gss_name|. +// +// The structure of the returned value is: +// { +// "gss_name": <display name as returned by gss_display_name()>, +// "type": <OID indicating type. See OidToValue() for structure of this +// field> +// } +// +// If the lookup failed, then the structure is: +// { +// "error": <error. See GetGssStatusValue() for structure.> +// } +// +// Note that |gss_name_t| is platform dependent. If |gss_display_name| fails, +// there's no good value to display in its stead. +NET_EXPORT_PRIVATE base::Value GetDisplayNameValue(GSSAPILibrary* gssapi_lib, + const gss_name_t gss_name); + +// GetContextStateAsValue returns a base::Value that describes the state of a +// GSSAPI context. The structure of the value is: +// +// { +// "source": { +// "name": <GSSAPI principal name of source (e.g. the user)>, +// "type": <OID of name type> +// }, +// "target": { +// "name": <GSSAPI principal name of target (e.g. the server)>, +// "type": <OID of name type> +// }, +// "lifetime": <Lifetime of the negotiated context in seconds.>, +// "mechanism": <OID of negotiated mechanism>, +// "flags": <Context flags. See documentation for gss_inquire_context for +// flag values> +// "open": <True if the context has finished the handshake> +// } +// +// If the inquiry fails, the following is returned: +// { +// "error": <error. See GetGssStatusValue() for structure.> +// } +NET_EXPORT_PRIVATE base::Value GetContextStateAsValue( + GSSAPILibrary* gssapi_lib, + const gss_ctx_id_t context_handle); } // namespace net #endif // NET_HTTP_HTTP_AUTH_GSSAPI_POSIX_H_
diff --git a/net/http/http_auth_gssapi_posix_unittest.cc b/net/http/http_auth_gssapi_posix_unittest.cc index 8a557f8..c9b277c9 100644 --- a/net/http/http_auth_gssapi_posix_unittest.cc +++ b/net/http/http_auth_gssapi_posix_unittest.cc
@@ -8,6 +8,7 @@ #include "base/base_paths.h" #include "base/bind.h" +#include "base/json/json_reader.h" #include "base/logging.h" #include "base/native_library.h" #include "base/path_service.h" @@ -318,4 +319,282 @@ auth_gssapi.ParseChallenge(&second_challenge)); } +TEST(HttpAuthGSSAPITest, OidToValue_NIL) { + auto actual = OidToValue(GSS_C_NO_OID); + auto expected = base::JSONReader::Read(R"({ "oid": "<Empty OID>" })"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, OidToValue_Known) { + gss_OID_desc known = {6, const_cast<char*>("\x2b\x06\01\x05\x06\x03")}; + + auto actual = OidToValue(const_cast<const gss_OID>(&known)); + auto expected = base::JSONReader::Read(R"( + { + "oid" : "GSS_C_NT_ANONYMOUS", + "length": 6, + "bytes" : "0x0000: 2b06 0105 0603 +.....\n" + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, OidToValue_Unknown) { + gss_OID_desc unknown = {6, const_cast<char*>("\x2b\x06\01\x05\x06\x05")}; + auto actual = OidToValue(const_cast<const gss_OID>(&unknown)); + auto expected = base::JSONReader::Read(R"( + { + "length": 6, + "bytes" : "0x0000: 2b06 0105 0605 +.....\n" + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_NoLibrary) { + auto actual = GetGssStatusValue(nullptr, "my_method", GSS_S_BAD_NAME, 1); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 131072 + }, + "minor_status": { + "status": 1 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_WithLibrary) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue(&library, "my_method", GSS_S_BAD_NAME, 1); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 131072, + "message": [ "Value: 131072, Type 1" ] + }, + "minor_status": { + "status": 1, + "message": [ "Value: 1, Type 2" ] + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_Multiline) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue( + &library, "my_method", + static_cast<OM_uint32>( + test::MockGSSAPILibrary::DisplayStatusSpecials::MultiLine), + 0); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 128, + "message": [ + "Line 1 for status 128", + "Line 2 for status 128", + "Line 3 for status 128", + "Line 4 for status 128", + "Line 5 for status 128" + ] + }, + "minor_status": { + "status": 0 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_InfiniteLines) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue( + &library, "my_method", + static_cast<OM_uint32>( + test::MockGSSAPILibrary::DisplayStatusSpecials::InfiniteLines), + 0); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 129, + "message": [ + "Line 1 for status 129", + "Line 2 for status 129", + "Line 3 for status 129", + "Line 4 for status 129", + "Line 5 for status 129", + "Line 6 for status 129", + "Line 7 for status 129", + "Line 8 for status 129" + ] + }, + "minor_status": { + "status": 0 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_Failure) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue( + &library, "my_method", + static_cast<OM_uint32>( + test::MockGSSAPILibrary::DisplayStatusSpecials::Fail), + 0); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 130 + }, + "minor_status": { + "status": 0 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_EmptyMessage) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue( + &library, "my_method", + static_cast<OM_uint32>( + test::MockGSSAPILibrary::DisplayStatusSpecials::EmptyMessage), + 0); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 131 + }, + "minor_status": { + "status": 0 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_Misbehave) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue( + &library, "my_method", + static_cast<OM_uint32>( + test::MockGSSAPILibrary::DisplayStatusSpecials::UninitalizedBuffer), + 0); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 132 + }, + "minor_status": { + "status": 0 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetGssStatusValue_NotUtf8) { + test::MockGSSAPILibrary library; + auto actual = GetGssStatusValue( + &library, "my_method", + static_cast<OM_uint32>( + test::MockGSSAPILibrary::DisplayStatusSpecials::InvalidUtf8), + 0); + auto expected = base::JSONReader::Read(R"( + { + "function": "my_method", + "major_status": { + "status": 133 + }, + "minor_status": { + "status": 0 + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetContextStateAsValue_ValidContext) { + test::GssContextMockImpl context{"source_spn@somewhere", + "target_spn@somewhere.else", + /* lifetime_rec= */ 100, + *CHROME_GSS_SPNEGO_MECH_OID_DESC, + /* ctx_flags= */ 0, + /* locally_initiated= */ 1, + /* open= */ 0}; + test::MockGSSAPILibrary library; + auto actual = GetContextStateAsValue( + &library, reinterpret_cast<const gss_ctx_id_t>(&context)); + auto expected = base::JSONReader::Read(R"( + { + "source": { + "name": "source_spn@somewhere", + "type": { + "oid" : "<Empty OID>" + } + }, + "target": { + "name": "target_spn@somewhere.else", + "type": { + "oid" : "<Empty OID>" + } + }, + "lifetime": "100", + "mechanism": { + "oid": "<Empty OID>" + }, + "flags": "00000000", + "open": false + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + +TEST(HttpAuthGSSAPITest, GetContextStateAsValue_NoContext) { + test::MockGSSAPILibrary library; + auto actual = GetContextStateAsValue(&library, GSS_C_NO_CONTEXT); + auto expected = base::JSONReader::Read(R"( + { + "error": { + "function": "<none>", + "major_status": { + "status": 524288 + }, + "minor_status": { + "status": 0 + } + } + } + )"); + ASSERT_TRUE(expected.has_value()); + EXPECT_EQ(actual, expected); +} + } // namespace net
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc index e66c2ce..40d1755 100644 --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc
@@ -398,7 +398,8 @@ normal_socket_pool_manager_->FlushSocketPoolsWithError(ERR_ABORTED); websocket_socket_pool_manager_->FlushSocketPoolsWithError(ERR_ABORTED); spdy_session_pool_.CloseCurrentSessions(ERR_ABORTED); - quic_stream_factory_.CloseAllSessions(ERR_ABORTED, quic::QUIC_INTERNAL_ERROR); + quic_stream_factory_.CloseAllSessions(ERR_ABORTED, + quic::QUIC_PEER_GOING_AWAY); } void HttpNetworkSession::CloseIdleConnections() {
diff --git a/net/http/mock_gssapi_library_posix.cc b/net/http/mock_gssapi_library_posix.cc index 87cc2bd..6766602 100644 --- a/net/http/mock_gssapi_library_posix.cc +++ b/net/http/mock_gssapi_library_posix.cc
@@ -342,15 +342,47 @@ const gss_OID mech_type, OM_uint32* message_context, gss_buffer_t status_string) { - if (minor_status) - *minor_status = 0; - std::string msg = base::StringPrintf("Value: %u, Type %u", - status_value, - status_type); - if (message_context) - *message_context = 0; + OM_uint32 rv = GSS_S_COMPLETE; + *minor_status = 0; + std::string msg; + switch (static_cast<DisplayStatusSpecials>(status_value)) { + case DisplayStatusSpecials::MultiLine: + msg = base::StringPrintf("Line %u for status %u", ++*message_context, + status_value); + if (*message_context >= 5u) + *message_context = 0u; + break; + + case DisplayStatusSpecials::InfiniteLines: + msg = base::StringPrintf("Line %u for status %u", ++*message_context, + status_value); + break; + + case DisplayStatusSpecials::Fail: + rv = GSS_S_BAD_MECH; + msg = "You should not see this"; + EXPECT_EQ(*message_context, 0u); + break; + + case DisplayStatusSpecials::EmptyMessage: + EXPECT_EQ(*message_context, 0u); + break; + + case DisplayStatusSpecials::UninitalizedBuffer: + EXPECT_EQ(*message_context, 0u); + return GSS_S_COMPLETE; + + case DisplayStatusSpecials::InvalidUtf8: + msg = "\xff\xff\xff"; + EXPECT_EQ(*message_context, 0u); + break; + + default: + msg = base::StringPrintf("Value: %u, Type %u", status_value, status_type); + EXPECT_EQ(*message_context, 0u); + } BufferFromString(msg, status_string); - return GSS_S_COMPLETE; + return rv; } OM_uint32 MockGSSAPILibrary::init_sec_context(
diff --git a/net/http/mock_gssapi_library_posix.h b/net/http/mock_gssapi_library_posix.h index 1488be7..9ed109b 100644 --- a/net/http/mock_gssapi_library_posix.h +++ b/net/http/mock_gssapi_library_posix.h
@@ -128,6 +128,28 @@ const gss_name_t input_name, gss_buffer_t output_name_buffer, gss_OID* output_name_type) override; + + // These special status values can be used to trigger specific behavior in + // |display_status()|. + enum class DisplayStatusSpecials : OM_uint32 { + // A multiline status message. + MultiLine = 128, + + // Multiline, execept there's no ending message. + InfiniteLines, + + // Causes |display_status()| to fail. + Fail, + + // Returns an empty message. + EmptyMessage, + + // Returns successfully without modifying |status_string|. + UninitalizedBuffer, + + // Returns a message that's invalid UTF-8. + InvalidUtf8 + }; OM_uint32 display_status(OM_uint32* minor_status, OM_uint32 status_value, int status_type,
diff --git a/net/quic/bidirectional_stream_quic_impl.cc b/net/quic/bidirectional_stream_quic_impl.cc index 7fde601..7878463 100644 --- a/net/quic/bidirectional_stream_quic_impl.cc +++ b/net/quic/bidirectional_stream_quic_impl.cc
@@ -180,7 +180,7 @@ } std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher> bundler( - session_->CreatePacketBundler(quic::QuicConnection::SEND_ACK_IF_PENDING)); + session_->CreatePacketBundler()); if (!has_sent_headers_) { DCHECK(!send_request_headers_automatically_); int rv = WriteHeaders();
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc index d808a2a..c4d824cc 100644 --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc
@@ -395,13 +395,12 @@ } std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher> -QuicChromiumClientSession::Handle::CreatePacketBundler( - quic::QuicConnection::AckBundling bundling_mode) { +QuicChromiumClientSession::Handle::CreatePacketBundler() { if (!session_) return nullptr; return std::make_unique<quic::QuicConnection::ScopedPacketFlusher>( - session_->connection(), bundling_mode); + session_->connection()); } bool QuicChromiumClientSession::Handle::SharesSameSession( @@ -855,7 +854,7 @@ if (connection()->connected()) { // Ensure that the connection is closed by the time the session is // destroyed. - connection()->CloseConnection(quic::QUIC_INTERNAL_ERROR, + connection()->CloseConnection(quic::QUIC_PEER_GOING_AWAY, "session torn down", quic::ConnectionCloseBehavior::SILENT_CLOSE); }
diff --git a/net/quic/quic_chromium_client_session.h b/net/quic/quic_chromium_client_session.h index 05610e4..ea47921 100644 --- a/net/quic/quic_chromium_client_session.h +++ b/net/quic/quic_chromium_client_session.h
@@ -183,7 +183,7 @@ // Returns a new packet bundler while will cause writes to be batched up // until a packet is full, or the last bundler is destroyed. std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher> - CreatePacketBundler(quic::QuicConnection::AckBundling bundling_mode); + CreatePacketBundler(); // Populates network error details for this session. void PopulateNetErrorDetails(NetErrorDetails* details) const;
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc index bcf7bed..6911137 100644 --- a/net/quic/quic_chromium_client_session_test.cc +++ b/net/quic/quic_chromium_client_session_test.cc
@@ -342,8 +342,7 @@ IPEndPoint address; EXPECT_EQ(OK, handle->GetPeerAddress(&address)); EXPECT_EQ(kIpEndPoint, address); - EXPECT_TRUE(handle->CreatePacketBundler(quic::QuicConnection::NO_ACK).get() != - nullptr); + EXPECT_TRUE(handle->CreatePacketBundler().get() != nullptr); CompleteCryptoHandshake(); @@ -369,8 +368,7 @@ EXPECT_EQ(session_net_log.source().id, handle->net_log().source().id); EXPECT_EQ(session_net_log.net_log(), handle->net_log().net_log()); EXPECT_EQ(ERR_CONNECTION_CLOSED, handle->GetPeerAddress(&address)); - EXPECT_TRUE(handle->CreatePacketBundler(quic::QuicConnection::NO_ACK).get() == - nullptr); + EXPECT_TRUE(handle->CreatePacketBundler().get() == nullptr); { // Verify that CreateHandle() works even after the session is closed. std::unique_ptr<QuicChromiumClientSession::Handle> handle2 = @@ -394,8 +392,7 @@ EXPECT_EQ(session_net_log.source().id, handle->net_log().source().id); EXPECT_EQ(session_net_log.net_log(), handle->net_log().net_log()); EXPECT_EQ(ERR_CONNECTION_CLOSED, handle->GetPeerAddress(&address)); - EXPECT_TRUE(handle->CreatePacketBundler(quic::QuicConnection::NO_ACK).get() == - nullptr); + EXPECT_TRUE(handle->CreatePacketBundler().get() == nullptr); ASSERT_EQ( ERR_CONNECTION_CLOSED, handle->RequestStream(/*requires_confirmation=*/false,
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h index 45a95ee..d924058e 100644 --- a/net/quic/quic_flags_list.h +++ b/net/quic/quic_flags_list.h
@@ -72,9 +72,6 @@ // protocol. QUIC_FLAG(bool, FLAGS_quic_supports_tls_handshake, false) -// Allow QUIC to accept initial packet numbers that are random, not 1. -QUIC_FLAG(bool, FLAGS_quic_restart_flag_quic_enable_accept_random_ipn, true) - // Enables 3 new connection options to make PROBE_RTT more aggressive QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_less_probe_rtt, false) @@ -135,10 +132,6 @@ // ACK in packet conservation. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_one_mss_conservation, false) -// Add 3 connection options to decrease the pacing and CWND gain in QUIC BBR -// STARTUP. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_slower_startup3, true) - // When true, the LOSS connection option allows for 1/8 RTT of reording instead // of the current 1/8th threshold which has been found to be too large for fast // loss recovery. @@ -167,13 +160,6 @@ FLAGS_quic_reloadable_flag_quic_fix_has_pending_crypto_data, true) -// When true, fix initialization and updating of -// |time_of_first_packet_sent_after_receiving_| in QuicConnection. -QUIC_FLAG( - bool, - FLAGS_quic_reloadable_flag_quic_fix_time_of_first_packet_sent_after_receiving, - true) - // When the STMP connection option is sent by the client, timestamps in the QUIC // ACK frame are sent and processed. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_timestamps, false) @@ -235,14 +221,7 @@ // If true, use one loss algorithm per encryption level. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_use_uber_loss_algorithm, true) -// If true, stop using AckBundling mode to send ACK, also deprecate ack_queued -// from QuicConnection. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_deprecate_ack_bundling_mode, - true) - -// If both this flag and gfe2_reloadable_flag_quic_deprecate_ack_bundling_mode -// are true, QuicReceivedPacketManager decides when to send ACKs. +// If true, QuicReceivedPacketManager decides when to send ACKs. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_rpm_decides_when_to_send_acks, true) @@ -276,18 +255,6 @@ FLAGS_quic_restart_flag_dont_fetch_quic_private_keys_from_leto, false) -// If true, disable lumpy pacing for low bandwidth flows. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_no_lumpy_pacing_at_low_bw, true) - -// If true, ignore TLPR for retransmission delay when sending pings from ping -// alarm. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_ignore_tlpr_if_sending_ping, - true) - -// If true, non-ASCII QUIC tags are printed as hex instead of integers." -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_print_tag_hex, true) - // If true, terminate Google QUIC connections similary as IETF QUIC. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_terminate_gquic_connection_as_ietf, @@ -302,35 +269,11 @@ // If true, deprecate queued_control_frames_ from QuicPacketGenerator. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_deprecate_queued_control_frames, - false) - -// When true, QUIC server will drop IETF QUIC Version Negotiation packets. -QUIC_FLAG(bool, - FLAGS_quic_restart_flag_quic_server_drop_version_negotiation, true) -// When true, version negotiation packets sent by the server will set the fixed -// bit. -QUIC_FLAG(bool, - FLAGS_quic_reloadable_flag_quic_send_version_negotiation_fixed_bit, - true) - -// When true, allow variable length QUIC connection IDs for unsupported -// versions. This allows performing version negotiation when the client-chosen -// server connection ID length is not 8. -QUIC_FLAG( - bool, - FLAGS_quic_restart_flag_quic_allow_variable_length_connection_id_for_negotiation, - true) - // If true, set burst token to 2 in cwnd bootstrapping experiment. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_conservative_bursts, false) -// If true, make QuicDispatcher no longer have an instance of QuicFramer. -QUIC_FLAG(bool, - FLAGS_quic_restart_flag_quic_no_framer_object_in_dispatcher, - true) - // When true, QuicFramer will not override connection IDs in headers and will // instead respect the source/destination direction as expected by IETF QUIC. QUIC_FLAG(bool, @@ -351,7 +294,7 @@ // If true, check whether connection is connected before flush. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_check_connected_before_flush, - false) + true) // When true, QuicConnectionId will allocate long connection IDs on the heap // instead of inline in the object. @@ -375,3 +318,14 @@ // If true, when detecting losses, use packets_acked of corresponding packet // number space. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_packets_acked, false) + +// QUIC version 99 will use this stream ID for the headers stream. +QUIC_FLAG(int64_t, FLAGS_quic_headers_stream_id_in_v99, 0) + +// When true, QuicDispatcher will drop packets that have an initial destination +// connection ID that is too short, instead of responding with a Version +// Negotiation packet to reject it. +QUIC_FLAG( + bool, + FLAGS_quic_reloadable_flag_quic_drop_invalid_small_initial_connection_id, + false)
diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc index 740f229..3fd54d8a 100644 --- a/net/quic/quic_http_stream.cc +++ b/net/quic/quic_http_stream.cc
@@ -463,8 +463,7 @@ CHECK(!in_loop_); base::AutoReset<bool> auto_reset_in_loop(&in_loop_, true); std::unique_ptr<quic::QuicConnection::ScopedPacketFlusher> packet_flusher = - quic_session()->CreatePacketBundler( - quic::QuicConnection::AckBundling::SEND_ACK_IF_QUEUED); + quic_session()->CreatePacketBundler(); do { State state = next_state_; next_state_ = STATE_NONE;
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc index 7ccfbe7..8afec5b 100644 --- a/net/quic/quic_network_transaction_unittest.cc +++ b/net/quic/quic_network_transaction_unittest.cc
@@ -2242,12 +2242,6 @@ EXPECT_THAT(callback.WaitForResult(), IsOk()); CheckResponseData(&trans, "TCP succeeds"); - // Fire the retransmission alarm, from this point, connection will idle - // timeout after 4 seconds. - if (!GetQuicReloadableFlag( - quic_fix_time_of_first_packet_sent_after_receiving)) { - quic_task_runner_->RunNextTask(); - } // Fast forward to idle timeout the original connection. A new connection will // be kicked off on the alternate network. quic_task_runner_->FastForwardBy(quic::QuicTime::Delta::FromSeconds(4)); @@ -2362,12 +2356,6 @@ EXPECT_THAT(callback.WaitForResult(), IsOk()); CheckResponseData(&trans, "TCP succeeds"); - // Fire the retransmission alarm, after which connection will idle - // timeout after 4 seconds. - if (!GetQuicReloadableFlag( - quic_fix_time_of_first_packet_sent_after_receiving)) { - quic_task_runner_->RunNextTask(); - } // Fast forward to idle timeout the original connection. A new connection will // be kicked off on the alternate network. quic_task_runner_->FastForwardBy(quic::QuicTime::Delta::FromSeconds(4)); @@ -2490,10 +2478,6 @@ // Pump the message loop to get the request started. base::RunLoop().RunUntilIdle(); - if (!GetQuicReloadableFlag( - quic_fix_time_of_first_packet_sent_after_receiving)) { - quic_task_runner_->RunNextTask(); - } // Fast forward to idle timeout the original connection. A new connection will // be kicked off on the alternate network. @@ -3243,22 +3227,12 @@ quic_data.AddWrite(SYNCHRONOUS, client_maker_.MakeHeadersDataPacket( 11, false, false, settings_data)); - if (GetQuicReloadableFlag( - quic_fix_time_of_first_packet_sent_after_receiving)) { quic_data.AddWrite( SYNCHRONOUS, client_maker_.MakeAckAndConnectionClosePacket( 12, false, quic::QuicTime::Delta::FromMilliseconds(4000), 1, 1, 1, quic::QUIC_NETWORK_IDLE_TIMEOUT, "No recent network activity.")); - } else { - quic_data.AddWrite( - SYNCHRONOUS, - client_maker_.MakeAckAndConnectionClosePacket( - 12, false, quic::QuicTime::Delta::FromMilliseconds(4200), 1, 1, 1, - quic::QUIC_NETWORK_IDLE_TIMEOUT, "No recent network activity.")); - } - quic_data.AddRead(ASYNC, ERR_IO_PENDING); quic_data.AddRead(ASYNC, OK); quic_data.AddSocketDataToFactory(&socket_factory_);
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc index 57852190..f3a01d23d 100644 --- a/net/quic/quic_stream_factory_test.cc +++ b/net/quic/quic_stream_factory_test.cc
@@ -1859,7 +1859,7 @@ SYNCHRONOUS, ConstructClientRstPacket(2, quic::QUIC_RST_ACKNOWLEDGEMENT)); socket_data.AddWrite(SYNCHRONOUS, client_maker_.MakeConnectionClosePacket( - 3, true, quic::QUIC_INTERNAL_ERROR, "net error")); + 3, true, quic::QUIC_PEER_GOING_AWAY, "net error")); socket_data.AddSocketDataToFactory(socket_factory_.get()); client_maker_.Reset(); @@ -1886,7 +1886,7 @@ // Close the session and verify that stream saw the error. factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, - quic::QUIC_INTERNAL_ERROR); + quic::QUIC_PEER_GOING_AWAY); EXPECT_EQ(ERR_INTERNET_DISCONNECTED, stream->ReadResponseHeaders(callback_.callback())); @@ -4038,12 +4038,6 @@ ASYNC, ConstructOkResponsePacket( 2, GetNthClientInitiatedBidirectionalStreamId(0), false, true)); // keep sending version. - if (!GetQuicRestartFlag(quic_enable_accept_random_ipn)) { - // Packet 2 is considered as out of order packet and an ACK will be sent - // immediately. - quic_data1.AddWrite(SYNCHRONOUS, client_maker_.MakeAckPacket( - packet_number++, 2, 2, 2, 1, true)); - } quic_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); quic_data1.AddSocketDataToFactory(socket_factory_.get());
diff --git a/pdf/out_of_process_instance.cc b/pdf/out_of_process_instance.cc index a33c339..5caf9ab 100644 --- a/pdf/out_of_process_instance.cc +++ b/pdf/out_of_process_instance.cc
@@ -428,7 +428,6 @@ preview_document_load_state_(LOAD_STATE_COMPLETE), uma_(this), told_browser_about_unsupported_feature_(false), - font_substitution_reported_(false), print_preview_page_count_(-1), print_preview_loaded_page_count_(-1), last_progress_sent_(0), @@ -1643,8 +1642,6 @@ document_load_state_ = LOAD_STATE_COMPLETE; UserMetricsRecordAction("PDF.LoadSuccess"); HistogramEnumeration("PDF.DocumentFeature", LOADED_DOCUMENT, FEATURES_COUNT); - if (!font_substitution_reported_) - HistogramEnumeration("PDF.IsFontSubstituted", 0, 2); // Note: If we are in print preview mode the scroll location is retained // across document loads so we don't want to scroll again and override it. @@ -1775,13 +1772,6 @@ PostMessage(message); } -void OutOfProcessInstance::FontSubstituted() { - if (font_substitution_reported_) - return; - font_substitution_reported_ = true; - uma_.HistogramEnumeration("PDF.IsFontSubstituted", 1, 2); -} - void OutOfProcessInstance::PreviewDocumentLoadFailed() { UserMetricsRecordAction("PDF.PreviewDocumentLoadFailure"); if (preview_document_load_state_ != LOAD_STATE_LOADING ||
diff --git a/pdf/out_of_process_instance.h b/pdf/out_of_process_instance.h index 899c132..c5bbf12e 100644 --- a/pdf/out_of_process_instance.h +++ b/pdf/out_of_process_instance.h
@@ -135,7 +135,6 @@ const PDFEngine::DocumentFeatures& document_features, uint32_t file_size) override; void DocumentLoadFailed() override; - void FontSubstituted() override; pp::Instance* GetPluginInstance() override; void DocumentHasUnsupportedFeature(const std::string& feature) override; void DocumentLoadProgress(uint32_t available, uint32_t doc_size) override; @@ -368,10 +367,6 @@ // the stats if a feature shows up many times per document. std::set<std::string> unsupported_features_reported_; - // Keeps track of whether font substitution has been reported, so we avoid - // spamming the stats if a document requested multiple substitutes. - bool font_substitution_reported_; - // Number of pages in print preview mode for non-PDF source, 0 if print // previewing a PDF, and -1 if not in print preview mode. int print_preview_page_count_;
diff --git a/pdf/pdf_engine.h b/pdf/pdf_engine.h index 65ef10f..c8b11d5 100644 --- a/pdf/pdf_engine.h +++ b/pdf/pdf_engine.h
@@ -242,9 +242,6 @@ // Notifies the client that the document has failed to load. virtual void DocumentLoadFailed() {} - // Notifies the client that the document has requested substitute fonts. - virtual void FontSubstituted() {} - virtual pp::Instance* GetPluginInstance() = 0; // Notifies that an unsupported feature in the PDF was encountered.
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc index 613950e3..30cf28a 100644 --- a/pdf/pdfium/pdfium_engine.cc +++ b/pdf/pdfium/pdfium_engine.cc
@@ -132,8 +132,6 @@ constexpr base::TimeDelta kMaxInitialProgressivePaintTime = base::TimeDelta::FromMilliseconds(250); -PDFiumEngine* g_engine_for_fontmapper = nullptr; - #if defined(OS_LINUX) PP_Instance g_last_instance_id; @@ -274,9 +272,6 @@ return nullptr; } - if (g_engine_for_fontmapper) - g_engine_for_fontmapper->FontSubstituted(); - PP_Resource font_resource = pp::PDF::GetFontFileWithFallback( pp::InstanceHandle(g_last_instance_id), &description.pp_font_description(), @@ -309,111 +304,6 @@ FPDF_SYSFONTINFO g_font_info = {1, 0, EnumFonts, MapFont, 0, GetFontData, 0, 0, DeleteFont}; -#else -struct FPDF_SYSFONTINFO_WITHMETRICS : public FPDF_SYSFONTINFO { - explicit FPDF_SYSFONTINFO_WITHMETRICS(FPDF_SYSFONTINFO* sysfontinfo) { - version = sysfontinfo->version; - default_sysfontinfo = sysfontinfo; - } - - ~FPDF_SYSFONTINFO_WITHMETRICS() { - FPDF_FreeDefaultSystemFontInfo(default_sysfontinfo); - } - - FPDF_SYSFONTINFO* default_sysfontinfo; -}; - -FPDF_SYSFONTINFO_WITHMETRICS* g_font_info = nullptr; - -void* MapFontWithMetrics(FPDF_SYSFONTINFO* sysfontinfo, - int weight, - int italic, - int charset, - int pitch_family, - const char* face, - int* exact) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->MapFont) - return nullptr; - void* mapped_font = fontinfo_with_metrics->default_sysfontinfo->MapFont( - fontinfo_with_metrics->default_sysfontinfo, weight, italic, charset, - pitch_family, face, exact); - if (mapped_font && g_engine_for_fontmapper) - g_engine_for_fontmapper->FontSubstituted(); - return mapped_font; -} - -void DeleteFont(FPDF_SYSFONTINFO* sysfontinfo, void* font_id) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->DeleteFont) - return; - fontinfo_with_metrics->default_sysfontinfo->DeleteFont( - fontinfo_with_metrics->default_sysfontinfo, font_id); -} - -void EnumFonts(FPDF_SYSFONTINFO* sysfontinfo, void* mapper) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->EnumFonts) - return; - fontinfo_with_metrics->default_sysfontinfo->EnumFonts( - fontinfo_with_metrics->default_sysfontinfo, mapper); -} - -unsigned long GetFaceName(FPDF_SYSFONTINFO* sysfontinfo, - void* hFont, - char* buffer, - unsigned long buffer_size) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->GetFaceName) - return 0; - return fontinfo_with_metrics->default_sysfontinfo->GetFaceName( - fontinfo_with_metrics->default_sysfontinfo, hFont, buffer, buffer_size); -} - -void* GetFont(FPDF_SYSFONTINFO* sysfontinfo, const char* face) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->GetFont) - return nullptr; - return fontinfo_with_metrics->default_sysfontinfo->GetFont( - fontinfo_with_metrics->default_sysfontinfo, face); -} - -int GetFontCharset(FPDF_SYSFONTINFO* sysfontinfo, void* hFont) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->GetFontCharset) - return 0; - return fontinfo_with_metrics->default_sysfontinfo->GetFontCharset( - fontinfo_with_metrics->default_sysfontinfo, hFont); -} - -unsigned long GetFontData(FPDF_SYSFONTINFO* sysfontinfo, - void* hFont, - unsigned int table, - unsigned char* buffer, - unsigned long buf_size) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->GetFontData) - return 0; - return fontinfo_with_metrics->default_sysfontinfo->GetFontData( - fontinfo_with_metrics->default_sysfontinfo, hFont, table, buffer, - buf_size); -} - -void Release(FPDF_SYSFONTINFO* sysfontinfo) { - auto* fontinfo_with_metrics = - static_cast<FPDF_SYSFONTINFO_WITHMETRICS*>(sysfontinfo); - if (!fontinfo_with_metrics->default_sysfontinfo->Release) - return; - fontinfo_with_metrics->default_sysfontinfo->Release( - fontinfo_with_metrics->default_sysfontinfo); -} #endif // defined(OS_LINUX) PDFiumEngine::CreateDocumentLoaderFunction @@ -667,19 +557,6 @@ #if defined(OS_LINUX) // Font loading doesn't work in the renderer sandbox in Linux. FPDF_SetSystemFontInfo(&g_font_info); -#else - g_font_info = - new FPDF_SYSFONTINFO_WITHMETRICS(FPDF_GetDefaultSystemFontInfo()); - g_font_info->Release = Release; - g_font_info->EnumFonts = EnumFonts; - // Set new MapFont that calculates metrics - g_font_info->MapFont = MapFontWithMetrics; - g_font_info->GetFont = GetFont; - g_font_info->GetFaceName = GetFaceName; - g_font_info->GetFontCharset = GetFontCharset; - g_font_info->GetFontData = GetFontData; - g_font_info->DeleteFont = DeleteFont; - FPDF_SetSystemFontInfo(g_font_info); #endif InitializeUnsupportedFeaturesHandler(); @@ -689,9 +566,6 @@ void ShutdownSDK() { FPDF_DestroyLibrary(); -#if !defined(OS_LINUX) - delete g_font_info; -#endif TearDownV8(); } @@ -1051,10 +925,6 @@ client_->DocumentHasUnsupportedFeature(feature); } -void PDFiumEngine::FontSubstituted() { - client_->FontSubstituted(); -} - FPDF_AVAIL PDFiumEngine::fpdf_availability() const { return document_ ? document_->fpdf_availability() : nullptr; } @@ -1148,7 +1018,6 @@ uint32_t page_range_count, const PP_PrintSettings_Dev& print_settings, const PP_PdfPrintSettings_Dev& pdf_print_settings) { - ScopedSubstFont scoped_subst_font(this); if (!page_range_count) return pp::Resource(); @@ -2628,7 +2497,6 @@ return; ScopedUnsupportedFeature scoped_unsupported_feature(this); - ScopedSubstFont scoped_subst_font(this); bool needs_password = false; if (TryLoadingDoc(std::string(), &needs_password)) { ContinueLoadingDocument(std::string()); @@ -2688,7 +2556,6 @@ void PDFiumEngine::ContinueLoadingDocument(const std::string& password) { ScopedUnsupportedFeature scoped_unsupported_feature(this); - ScopedSubstFont scoped_subst_font(this); bool needs_password = false; bool loaded = TryLoadingDoc(password, &needs_password); @@ -3748,13 +3615,4 @@ image_data_ = std::move(image_data); } -ScopedSubstFont::ScopedSubstFont(PDFiumEngine* engine) - : old_engine_(g_engine_for_fontmapper) { - g_engine_for_fontmapper = engine; -} - -ScopedSubstFont::~ScopedSubstFont() { - g_engine_for_fontmapper = old_engine_; -} - } // namespace chrome_pdf
diff --git a/pdf/pdfium/pdfium_engine.h b/pdf/pdfium/pdfium_engine.h index 13952100..e66201ad 100644 --- a/pdf/pdfium/pdfium_engine.h +++ b/pdf/pdfium/pdfium_engine.h
@@ -144,7 +144,6 @@ #endif // defined(PDF_ENABLE_XFA) void UnsupportedFeature(const std::string& feature); - void FontSubstituted(); FPDF_AVAIL fpdf_availability() const; FPDF_DOCUMENT doc() const; @@ -661,19 +660,6 @@ DISALLOW_COPY_AND_ASSIGN(PDFiumEngine); }; -// Create a local variable of this when calling PDFium functions which can call -// our global callback when a substitute font is mapped. -class ScopedSubstFont { - public: - explicit ScopedSubstFont(PDFiumEngine* engine); - ~ScopedSubstFont(); - - private: - PDFiumEngine* const old_engine_; - - DISALLOW_COPY_AND_ASSIGN(ScopedSubstFont); -}; - } // namespace chrome_pdf #endif // PDF_PDFIUM_PDFIUM_ENGINE_H_
diff --git a/pdf/pdfium/pdfium_page.cc b/pdf/pdfium/pdfium_page.cc index 941b859..fd3084b 100644 --- a/pdf/pdfium/pdfium_page.cc +++ b/pdf/pdfium/pdfium_page.cc
@@ -121,7 +121,6 @@ FPDF_PAGE PDFiumPage::GetPage() { ScopedUnsupportedFeature scoped_unsupported_feature(engine_); - ScopedSubstFont scoped_subst_font(engine_); if (!available_) return nullptr; if (!page_) {
diff --git a/pdf/pdfium/pdfium_print.cc b/pdf/pdfium/pdfium_print.cc index 93ed2c3..042bb20 100644 --- a/pdf/pdfium/pdfium_print.cc +++ b/pdf/pdfium/pdfium_print.cc
@@ -467,7 +467,6 @@ bool PDFiumPrint::FlattenPrintData(FPDF_DOCUMENT doc) const { DCHECK(doc); - ScopedSubstFont scoped_subst_font(engine_); int page_count = FPDF_GetPageCount(doc); for (int i = 0; i < page_count; ++i) { ScopedFPDFPage page(FPDF_LoadPage(doc, i));
diff --git a/pdf/preview_mode_client.cc b/pdf/preview_mode_client.cc index e8ae2740..0d59a60d 100644 --- a/pdf/preview_mode_client.cc +++ b/pdf/preview_mode_client.cc
@@ -136,10 +136,6 @@ NOTREACHED(); } -void PreviewModeClient::FontSubstituted() { - NOTREACHED(); -} - void PreviewModeClient::FormTextFieldFocusChange(bool in_focus) { NOTREACHED(); }
diff --git a/pdf/preview_mode_client.h b/pdf/preview_mode_client.h index 7bb939a..65174eab 100644 --- a/pdf/preview_mode_client.h +++ b/pdf/preview_mode_client.h
@@ -63,7 +63,6 @@ const PDFEngine::DocumentFeatures& document_features, uint32_t file_size) override; void DocumentLoadFailed() override; - void FontSubstituted() override; pp::Instance* GetPluginInstance() override; void DocumentHasUnsupportedFeature(const std::string& feature) override; void FormTextFieldFocusChange(bool in_focus) override;
diff --git a/printing/BUILD.gn b/printing/BUILD.gn index aa6fd913..2fd86c2 100644 --- a/printing/BUILD.gn +++ b/printing/BUILD.gn
@@ -229,6 +229,7 @@ "backend/printing_restrictions.cc", "backend/printing_restrictions.h", "printed_document_chromeos.cc", + "printer_query_result_chromeos.h", "printing_context_no_system_dialog.cc", "printing_context_no_system_dialog.h", "printing_features_chromeos.cc",
diff --git a/printing/backend/cups_jobs.h b/printing/backend/cups_jobs.h index f67359d..bd336c9 100644 --- a/printing/backend/cups_jobs.h +++ b/printing/backend/cups_jobs.h
@@ -14,6 +14,7 @@ #include <vector> #include "base/version.h" +#include "printing/printer_query_result_chromeos.h" #include "printing/printing_export.h" // This file contains a collection of functions used to query IPP printers or @@ -143,13 +144,6 @@ PROCESSING // only jobs that are being processed }; -// Specifies query status codes. -enum PRINTING_EXPORT PrinterQueryResult { - UNKNOWN_FAILURE, // catchall error - SUCCESS, // successful - UNREACHABLE, // failed to reach the host -}; - // Extracts structured job information from the |response| for |printer_id|. // Extracted jobs are added to |jobs|. void ParseJobsResponse(ipp_t* response,
diff --git a/printing/printer_query_result_chromeos.h b/printing/printer_query_result_chromeos.h new file mode 100644 index 0000000..8f926a8 --- /dev/null +++ b/printing/printer_query_result_chromeos.h
@@ -0,0 +1,21 @@ +// Copyright 2019 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. + +#ifndef PRINTING_PRINTER_QUERY_RESULT_CHROMEOS_H_ +#define PRINTING_PRINTER_QUERY_RESULT_CHROMEOS_H_ + +#include "printing/printing_export.h" + +namespace printing { + +// Specifies query status codes. +enum PRINTING_EXPORT PrinterQueryResult { + UNKNOWN_FAILURE, // catchall error + SUCCESS, // successful + UNREACHABLE, // failed to reach the host +}; + +} // namespace printing + +#endif // PRINTING_PRINTER_QUERY_RESULT_CHROMEOS_H_
diff --git a/remoting/host/chromeos/clipboard_aura.cc b/remoting/host/chromeos/clipboard_aura.cc index ffe68e8..c9e267a 100644 --- a/remoting/host/chromeos/clipboard_aura.cc +++ b/remoting/host/chromeos/clipboard_aura.cc
@@ -54,7 +54,7 @@ return; } - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(base::UTF8ToUTF16(event.data())); // Update local change-count to prevent this change from being picked up by @@ -74,7 +74,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); uint64_t change_count = - clipboard->GetSequenceNumber(ui::CLIPBOARD_TYPE_COPY_PASTE); + clipboard->GetSequenceNumber(ui::ClipboardType::kCopyPaste); if (change_count == current_change_count_) { return; @@ -85,7 +85,7 @@ protocol::ClipboardEvent event; std::string data; - clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &data); + clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &data); event.set_mime_type(kMimeTypeTextUtf8); event.set_data(data);
diff --git a/remoting/host/chromeos/clipboard_aura_unittest.cc b/remoting/host/chromeos/clipboard_aura_unittest.cc index 763a560..fa82caa4 100644 --- a/remoting/host/chromeos/clipboard_aura_unittest.cc +++ b/remoting/host/chromeos/clipboard_aura_unittest.cc
@@ -100,7 +100,7 @@ std::string clipboard_data; ui::Clipboard* aura_clipboard = ui::Clipboard::GetForCurrentThread(); - aura_clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_data); + aura_clipboard->ReadAsciiText(ui::ClipboardType::kCopyPaste, &clipboard_data); EXPECT_EQ(clipboard_data, "Test data.") << "InjectClipboardEvent should write to aura clipboard"; @@ -111,7 +111,7 @@ { // |clipboard_writer| will write to the clipboard when it goes out of scope. - ui::ScopedClipboardWriter clipboard_writer(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter clipboard_writer(ui::ClipboardType::kCopyPaste); clipboard_writer.WriteText(base::UTF8ToUTF16("Test data.")); }
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index a6dbc7b..91e90bf 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -280,6 +280,7 @@ # The imported Skia gni source paths are made absolute by gn. defines = skia_core_defines + sources += skia_sksl_sources sources += skia_utils_sources sources += skia_xps_sources sources += [ @@ -522,7 +523,6 @@ if (skia_support_gpu) { sources += skia_gpu_sources sources += skia_null_gpu_sources - sources += skia_sksl_sources sources += skia_sksl_gpu_sources if (enable_vulkan) { sources += skia_vk_sources
diff --git a/storage/browser/quota/quota_database.cc b/storage/browser/quota/quota_database.cc index c67b532..b65429a 100644 --- a/storage/browser/quota/quota_database.cc +++ b/storage/browser/quota/quota_database.cc
@@ -46,15 +46,6 @@ const int kCommitIntervalMs = 30000; -void LogDaysSinceLastAccess(base::Time this_time, - const QuotaDatabase::OriginInfoTableEntry& entry) { - base::TimeDelta time_since = this_time - std::max(entry.last_access_time, - entry.last_modified_time); - if (time_since.InDays() < 1) - return; - UMA_HISTOGRAM_COUNTS_1000("Quota.DaysSinceLastAccess", time_since.InDays()); -} - } // anonymous namespace // static @@ -204,7 +195,6 @@ OriginInfoTableEntry entry; if (GetOriginInfo(origin, type, &entry)) { - LogDaysSinceLastAccess(last_access_time, entry); ++entry.used_count; const char* kSql = "UPDATE OriginInfoTable" @@ -243,7 +233,6 @@ OriginInfoTableEntry entry; if (GetOriginInfo(origin, type, &entry)) { - LogDaysSinceLastAccess(last_modified_time, entry); const char* kSql = "UPDATE OriginInfoTable" " SET last_modified_time = ?"
diff --git a/storage/browser/quota/quota_manager.cc b/storage/browser/quota/quota_manager.cc index 95a6652..ba38d01 100644 --- a/storage/browser/quota/quota_manager.cc +++ b/storage/browser/quota/quota_manager.cc
@@ -1716,12 +1716,10 @@ base::BindOnce(&DidGetSettingsThreadAdapter, base::RetainedRef(base::ThreadTaskRunnerHandle::Get()), base::BindOnce(&QuotaManager::DidGetSettings, - weak_factory_.GetWeakPtr(), - base::TimeTicks::Now())))); + weak_factory_.GetWeakPtr())))); } -void QuotaManager::DidGetSettings(base::TimeTicks start_ticks, - base::Optional<QuotaSettings> settings) { +void QuotaManager::DidGetSettings(base::Optional<QuotaSettings> settings) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (!settings) { settings = settings_; @@ -1730,8 +1728,6 @@ SetQuotaSettings(*settings); settings_callbacks_.Run(*settings); UMA_HISTOGRAM_MBYTES("Quota.GlobalTemporaryPoolSize", settings->pool_size); - UMA_HISTOGRAM_LONG_TIMES("Quota.TimeToGetSettings", - base::TimeTicks::Now() - start_ticks); LOG_IF(WARNING, settings->pool_size == 0) << "No storage quota provided in QuotaSettings."; }
diff --git a/storage/browser/quota/quota_manager.h b/storage/browser/quota/quota_manager.h index c397fd3a..66e3bea 100644 --- a/storage/browser/quota/quota_manager.h +++ b/storage/browser/quota/quota_manager.h
@@ -402,8 +402,7 @@ void DidGetLRUOrigin(std::unique_ptr<base::Optional<url::Origin>> origin, bool success); void GetQuotaSettings(QuotaSettingsCallback callback); - void DidGetSettings(base::TimeTicks start_ticks, - base::Optional<QuotaSettings> settings); + void DidGetSettings(base::Optional<QuotaSettings> settings); void GetStorageCapacity(StorageCapacityCallback callback); void ContinueIncognitoGetStorageCapacity(const QuotaSettings& settings); void DidGetStorageCapacity(
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json index 059f53d..e19dabc 100644 --- a/testing/buildbot/chromium.gpu.fyi.json +++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -2396,123 +2396,6 @@ } ] }, - "Android FYI 32 Vk Release (Pixel XL)": { - "gtest_tests": [ - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 4 - }, - "test": "angle_end2end_tests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ] - }, - "test": "angle_unittests" - } - ], - "isolated_scripts": [ - { - "args": [ - "--gtest-benchmark-name=angle_perftests", - "-v", - "--one-frame-only", - "--shard-timeout=500" - ], - "isolate_name": "angle_perftests", - "merge": { - "args": [ - "--smoke-test-mode" - ], - "script": "//tools/perf/process_perf_results.py" - }, - "name": "angle_perftests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ] - } - } - ] - }, "Android FYI 32 dEQP Vk Release (Pixel 2)": { "gtest_tests": [ { @@ -2746,239 +2629,6 @@ } ] }, - "Android FYI 32 dEQP Vk Release (Pixel XL)": { - "gtest_tests": [ - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_egl_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 4 - }, - "test": "angle_deqp_egl_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_gles2_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 4 - }, - "test": "angle_deqp_gles2_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_gles3_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 12 - }, - "test": "angle_deqp_gles3_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_khr_gles2_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ] - }, - "test": "angle_deqp_khr_gles2_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_khr_gles3_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 2 - }, - "test": "angle_deqp_khr_gles3_tests" - } - ] - }, "Android FYI 64 Vk Release (Pixel 2)": { "gtest_tests": [ { @@ -3096,123 +2746,6 @@ } ] }, - "Android FYI 64 Vk Release (Pixel XL)": { - "gtest_tests": [ - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 4 - }, - "test": "angle_end2end_tests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ] - }, - "test": "angle_unittests" - } - ], - "isolated_scripts": [ - { - "args": [ - "--gtest-benchmark-name=angle_perftests", - "-v", - "--one-frame-only", - "--shard-timeout=500" - ], - "isolate_name": "angle_perftests", - "merge": { - "args": [ - "--smoke-test-mode" - ], - "script": "//tools/perf/process_perf_results.py" - }, - "name": "angle_perftests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ] - } - } - ] - }, "Android FYI 64 dEQP Vk Release (Pixel 2)": { "gtest_tests": [ { @@ -3446,239 +2979,6 @@ } ] }, - "Android FYI 64 dEQP Vk Release (Pixel XL)": { - "gtest_tests": [ - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_egl_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 4 - }, - "test": "angle_deqp_egl_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_gles2_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 4 - }, - "test": "angle_deqp_gles2_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_gles3_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 12 - }, - "test": "angle_deqp_gles3_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_khr_gles2_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ] - }, - "test": "angle_deqp_khr_gles2_tests" - }, - { - "args": [ - "--deqp-egl-display-type=angle-vulkan", - "--enable-xml-result-parsing", - "--shard-timeout=500", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "angle_deqp_khr_gles3_vulkan_tests", - "should_retry_with_patch": false, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "P", - "device_os_type": "userdebug", - "device_type": "marlin", - "os": "Android", - "pool": "Chrome-GPU" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 2 - }, - "test": "angle_deqp_khr_gles3_tests" - } - ] - }, "Android FYI Release (NVIDIA Shield TV)": { "gtest_tests": [ { @@ -7248,6 +6548,55 @@ } ] }, + "Android FYI SkiaRenderer Vulkan (Pixel 2)": { + "gtest_tests": [ + { + "args": [ + "--use-vulkan=native", + "--disable-vulkan-fallback-to-gl-for-testing", + "--test-launcher-filter-file=../../testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter", + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_gtest_merge.py" + }, + "name": "vulkan_content_browsertests", + "swarming": { + "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "infra/tools/luci/logdog/butler/${platform}", + "location": "bin", + "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" + } + ], + "dimension_sets": [ + { + "device_os": "P", + "device_os_type": "userdebug", + "device_type": "walleye", + "os": "Android", + "pool": "Chrome-GPU" + } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } + ], + "shards": 12 + }, + "test": "content_browsertests" + } + ] + }, "Android FYI dEQP Release (Nexus 5X)": { "gtest_tests": [ {
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json index 697ae96..ef1245b 100644 --- a/testing/buildbot/chromium.linux.json +++ b/testing/buildbot/chromium.linux.json
@@ -5451,1549 +5451,6 @@ } ] }, - "Linux Tests (dbg)(1)(32)": { - "gtest_tests": [ - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "accessibility_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "angle_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "app_shell_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "aura_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "base_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "base_util_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "blink_common_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "blink_fuzzer_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "blink_heap_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "blink_platform_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "webkit_unit_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "blink_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "boringssl_crypto_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "boringssl_ssl_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ], - "shards": 10 - }, - "test": "browser_tests" - }, - { - "args": [ - "--disable-blink-features=HTMLImports,ShadowDOMV0,CustomElementsV0", - "--test-launcher-filter-file=../../testing/buildbot/filters/webui_html_imports_polyfill_browser_tests.filter" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "webui_html_imports_polyfill_browser_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "browser_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "cacheinvalidation_unittests" - }, - { - "args": [ - "--gtest_filter=-*UsingRealWebcam*" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "capture_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "cast_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "cc_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "chrome_app_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "chromedriver_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "components_browsertests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "components_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "compositor_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ], - "shards": 6 - }, - "test": "content_browsertests" - }, - { - "args": [ - "--disable-perfetto", - "--gtest_filter=TracingControllerTest.*:BackgroundTracingManagerBrowserTest.*" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "nonperfetto_content_browsertests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "content_browsertests" - }, - { - "args": [ - "--enable-features=VizDisplayCompositor,UseSkiaRenderer", - "--test-launcher-filter-file=../../testing/buildbot/filters/skia_renderer.content_browsertests.filter" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "skia_renderer_content_browsertests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "content_browsertests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "content_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "cronet_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "cronet_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "crypto_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "dbus_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "device_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "display_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "events_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "extensions_browsertests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "extensions_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "filesystem_service_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "gcm_unit_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "gfx_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "gin_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "google_apis_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "gpu_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "headless_browsertests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "headless_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ], - "shards": 3 - }, - "test": "interactive_ui_tests" - }, - { - "args": [ - "--disable-blink-features=HTMLImports,ShadowDOMV0,CustomElementsV0", - "--test-launcher-filter-file=../../testing/buildbot/filters/webui_html_imports_polyfill_interactive_ui_tests.filter" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "webui_html_imports_polyfill_interactive_ui_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "interactive_ui_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "ipc_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "jingle_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "latency_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "leveldb_service_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "libjingle_xmpp_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "media_blink_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "media_service_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "media_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "message_center_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "midi_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "mojo_core_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "mojo_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "nacl_helper_nonsfi_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "nacl_loader_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "native_theme_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ], - "shards": 2 - }, - "test": "net_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "pdf_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "perfetto_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "ppapi_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "printing_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "sandbox_linux_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "service_manager_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "services_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "shell_dialogs_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "skia_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "snapshot_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "sql_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "storage_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "sync_integration_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "traffic_annotation_auditor_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "ui_base_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "ui_touch_selection_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "unit_tests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "url_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "views_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "viz_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "vr_common_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "vr_pixeltests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "wm_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "wtf_unittests" - }, - { - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" - }, - "name": "xr_browser_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - }, - "test": "xr_browser_tests" - } - ], - "isolated_scripts": [ - { - "isolate_name": "blink_python_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "blink_python_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "content_shell_crash_test", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "content_shell_crash_test", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "devtools_closure_compile", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "devtools_closure_compile", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "devtools_eslint", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "devtools_eslint", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "flatbuffers_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "flatbuffers_unittests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "grit_python_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "grit_python_unittests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "metrics_python_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "metrics_python_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "telemetry_gpu_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "telemetry_gpu_unittests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ], - "idempotent": false - } - }, - { - "args": [ - "--jobs=1", - "--extra-browser-args=--disable-gpu" - ], - "isolate_name": "telemetry_unittests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "telemetry_unittests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ], - "idempotent": false, - "shards": 4 - } - }, - { - "args": [ - "--gtest-benchmark-name=views_perftests" - ], - "isolate_name": "views_perftests", - "merge": { - "args": [ - "--smoke-test-mode" - ], - "script": "//tools/perf/process_perf_results.py" - }, - "name": "views_perftests", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - }, - { - "isolate_name": "webdriver_wpt_tests", - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webdriver_tests_suite", - "swarming": { - "can_use_on_swarming_builders": true, - "dimension_sets": [ - { - "os": "Ubuntu-14.04" - } - ] - } - } - ] - }, "Linux Tests Code Coverage": { "gtest_tests": [ {
diff --git a/testing/buildbot/filters/BUILD.gn b/testing/buildbot/filters/BUILD.gn index 66bc9a2..e850e09 100644 --- a/testing/buildbot/filters/BUILD.gn +++ b/testing/buildbot/filters/BUILD.gn
@@ -59,6 +59,7 @@ "//testing/buildbot/filters/site_isolation_android.content_browsertests.filter", "//testing/buildbot/filters/skia_renderer.content_browsertests.filter", "//testing/buildbot/filters/vulkan.content_browsertests.filter", + "//testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter", ] }
diff --git a/testing/buildbot/filters/chromeos.browser_tests.filter b/testing/buildbot/filters/chromeos.browser_tests.filter index 2ec1def..8ab5db9 100644 --- a/testing/buildbot/filters/chromeos.browser_tests.filter +++ b/testing/buildbot/filters/chromeos.browser_tests.filter
@@ -3,3 +3,13 @@ # TODO(crbug.com/976807): Enable this. -SiteIsolationFlagHandlingTest.FlagHandlingTest* + +# TODO(crbug.com/976987): Enable this. +-UserCloudPolicyManagerTest.ErrorLoadingPolicyForUnmanagedUser/0 +-UserCloudPolicyManagerTest.ErrorLoadingPolicyForUnmanagedUser/1 +-UserCloudPolicyManagerTest.NoPolicyForNonEnterpriseUser/0 +-UserCloudPolicyManagerTest.NoPolicyForNonEnterpriseUser/1 +-UserCloudPolicyManagerTest.PolicyForChildUser/0 +-UserCloudPolicyManagerTest.PolicyForChildUser/1 +-UserCloudPolicyManagerTest.StartSession/0 +-UserCloudPolicyManagerTest.StartSession/1
diff --git a/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter b/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter new file mode 100644 index 0000000..ce551a0 --- /dev/null +++ b/testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter
@@ -0,0 +1,69 @@ +# crbug.com/963266: Android SkiaRenderer Vulkan content_browsertests failures +-AccessibilityHitTestingBrowserTest.HitTestingWithPinchZoom +-BrowserSideFlingBrowserTest.InertialGSUBubblingStopsWhenParentCannotScroll +-DumpAccessibilityTreeTest.AccessibilityDfn/blink +-DumpAccessibilityTreeTest.AccessibilityOffscreen/blink +-DumpAccessibilityTreeTest.AccessibilityOffscreenScroll/blink +-DumpAccessibilityTreeTest.AccessibilityOffscreenSelect/blink +-DumpAccessibilityTreeTest.AccessibilityWindowCropsItems/blink +-File/MediaTest.VideoBearMp4/0 +-Http/MediaTest.VideoBearMp4/0 +-MediaColorTest.Yuv420pTheora +-MediaColorTest.Yuv420pVp8 +-MediaSessionImplBrowserTest.MetadataWhenFileUrlScheme +-MediaSourceTest.Playback_Video_MP4_Audio_WEBM +-MediaTest.VideoBearRotated0 +-MediaTest.VideoBearRotated90 +-MediaTest.VideoBearRotated180 +-MediaTest.VideoBearRotated270 +-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CBCS/0 +-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CBCS_Video_CENC_Audio/0 +-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CENC/0 +-MSE_ClearKey/EncryptedMediaTest.Playback_Encryption_CENC_Video_CBCS_Audio/0 +-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CBCS/0 +-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CBCS_Video_CENC_Audio/0 +-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CENC/0 +-MSE_ExternalClearKey/EncryptedMediaTest.Playback_Encryption_CENC_Video_CBCS_Audio/0 +-NavigationControllerBrowserTest.DontIgnoreBackAfterNavEntryLimit +-NavigationControllerBrowserTest.ReloadWithUrlAnchor +-NavigationControllerBrowserTest.ReloadWithUrlAnchorAndScroll +-OOPBrowserTest.Basic +-P/CompositorImplBrowserTestRefreshRate.VideoPreference/0 +-SitePerProcessBrowserTest.HiddenOOPIFWillNotGenerateCompositorFrames +-SitePerProcessBrowserTest.ScaledIframeRasterSize +-SitePerProcessBrowserTest.ScrollOopifInPinchZoomedPage +-SitePerProcessBrowserTest.SubframeVisibleAfterRenderViewBecomesSwappedOut +-SitePerProcessEmulatedTouchBrowserTest.EmulatedGestureScrollBubbles/0 +-SitePerProcessEmulatedTouchBrowserTest.EmulatedTouchScrollBubbles/0 +-SitePerProcessEmulatedTouchBrowserTest.EmulatedTouchShowPressHasTouchID/0 +-SitePerProcessHighDPIHitTestBrowserTest.OverlapSurfaceHitTestTest/0 +-SitePerProcessHitTestBrowserTest.BubbledScrollEventsTransformedCorrectly/0 +-SitePerProcessHitTestBrowserTest.CrossProcessMouseCapture/0 +-SitePerProcessHitTestBrowserTest.CrossProcessMouseEnterAndLeaveTest/0 +-SitePerProcessHitTestBrowserTest.CrossProcessMousePointerCapture/0 +-SitePerProcessHitTestBrowserTest.CrossProcessTooltipTestAndroid/0 +-SitePerProcessHitTestBrowserTest.HitTestStaleDataDeletedView/0 +-SitePerProcessHitTestBrowserTest.MouseCaptureOnDragSelection/0 +-SitePerProcessHitTestBrowserTest.OverlapSurfaceHitTestTest/0 +-SitePerProcessHitTestBrowserTest.TouchAndGestureEventPositionChange/0 +-SitePerProcessHitTestBrowserTest.TouchAndGestureEventPositionChange/1 +-SitePerProcessHitTestBrowserTest.TouchAndGestureEventPositionChange/2 +-SitePerProcessHitTestBrowserTest.TouchpadPinchWhenMissingHitTestDataDoesNotCrash/0 +-SitePerProcessHitTestBrowserTest.TouchpadPinchWhenMissingHitTestDataDoesNotCrash/1 +-SnapshotBrowserTest.SyncMultiWindowTest +-SRC_ClearKey/EncryptedMediaTest.FrameSizeChangeVideo/0 +-TouchActionBrowserTest.DefaultAuto/1 +-TouchActionBrowserTest.PanXMainThreadJanky/1 +-TouchActionBrowserTest.PanXYMainThreadJanky/1 +-TouchActionBrowserTest.PanYMainThreadJanky/1 +-TouchSelectionControllerClientAndroidSiteIsolationTest.BasicSelectionIsolatedIframe +-WebContentsImplBrowserTest.PopupWindowBrowserNavResumeLoad +-WebRtcBrowserTest.CanSetupH264VideoCallOnSupportedDevice +-WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureOffscreenCanvasFrames +-WebRtcCaptureFromElementBrowserTest.VerifyCanvasCaptureWebGLFrames +-WebRtcCaptureFromElementBrowserTest.VerifyCanvasCapture2DFrames +-WebRtcCaptureFromElementBrowserTest.VerifyCanvas2DCaptureColor +-WebRtcGetUserMediaBrowserTest.TestGetUserMediaAspectRatio1To1/0 +-WebRtcGetUserMediaBrowserTest.TestGetUserMediaAspectRatio4To3/0 +-WithOutOfBlinkCors/CrossSiteDocumentBlockingTest.BlockImages/0 +-WithoutOutOfBlinkCors/CrossSiteDocumentBlockingTest.BlockImages/0
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl index 2e154ede..224234c 100644 --- a/testing/buildbot/gn_isolate_map.pyl +++ b/testing/buildbot/gn_isolate_map.pyl
@@ -2258,6 +2258,7 @@ "--benchmarks=rendering.desktop", "--output-format=csv", "--browser=release", + "--upload-results", ], "label": "//chrome/test:rendering_representative_perf_tests", "script": "//testing/scripts/run_rendering_benchmark_with_gated_performance.py",
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl index 82f2e33..b34f264 100644 --- a/testing/buildbot/mixins.pyl +++ b/testing/buildbot/mixins.pyl
@@ -444,15 +444,6 @@ }, }, }, - 'marlin': { - # Pixel XL - 'swarming': { - 'dimensions': { - 'device_type': 'marlin', - 'os': 'Android', - }, - }, - }, 'marshmallow': { 'swarming': { 'dimensions': {
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index f6a57d8b..27dc8ae 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -860,11 +860,6 @@ 'shards': 2, }, }, - 'Linux Tests (dbg)(1)(32)': { - 'swarming': { - 'shards': 2, - }, - }, 'linux-chromeos-dbg': { 'swarming': { 'shards': 2, @@ -1096,7 +1091,6 @@ }, 'non_network_service_webkit_layout_tests' : { 'remove_from': [ - 'Linux Tests (dbg)(1)(32)', # 32-bit linux is unsupported # chromium.mac. TODO(https://crbug.com/944117): Remove this. 'mac-dummy-rel', ], @@ -1131,7 +1125,7 @@ # chromium.linux # TODO(dpranke): Should we be running this step on Linux Tests (dbg)(1)? 'Linux Tests (dbg)(1)', - 'Linux Tests (dbg)(1)(32)', + # chromium.mac. TODO(https://crbug.com/944117): Remove this. 'mac-dummy-rel', ], @@ -1229,12 +1223,6 @@ }, }, }, - }, - 'remoting_unittests': { - 'remove_from': [ - # chromium.linux - 'Linux Tests (dbg)(1)(32)', # https://crbug.com/852895 - ], }, 'sandbox_linux_unittests': { 'modifications': { @@ -1418,7 +1406,6 @@ }, }, 'remove_from': [ - 'Linux Tests (dbg)(1)(32)', # crbug.com/936540 'Mac10.10 Tests', 'Mac10.11 Tests', @@ -1674,8 +1661,6 @@ }, 'webkit_layout_tests': { 'remove_from': [ - # chromium.linux - 'Linux Tests (dbg)(1)(32)', # 32-bit linux is unsupported # chromium.win 'Win 7 Tests x64 (1)', # 64-bit win is unsupported by the layout tests. 'Win10 Tests x64 (dbg)',
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index ac094fe..ef81f4d 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -3420,7 +3420,6 @@ } }, - 'gpu_skia_renderer_telemetry_tests': { 'skia_renderer_pixel_skia_gold_test': { 'name': 'skia_renderer_pixel_skia_gold_test', @@ -3460,6 +3459,23 @@ }, }, + 'gpu_skia_renderer_vulkan_gtests': { + 'vulkan_content_browsertests': { + 'args': [ + '--use-vulkan=native', + '--disable-vulkan-fallback-to-gl-for-testing', + '--test-launcher-filter-file=../../testing/buildbot/filters/gpu.skiarenderer_vulkan_content_browsertests.filter', + ], + 'swarming': { + 'shards': 10, + }, + 'android_swarming': { + 'shards': 12, + }, + 'test': 'content_browsertests', + }, + }, + 'gpu_swiftshader_gtests': { 'swiftshader_unittests': { },
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index 1935122..ccd2743 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -2328,19 +2328,6 @@ 'isolated_scripts': 'gpu_angle_perf_isolated_scripts', }, }, - 'Android FYI 32 Vk Release (Pixel XL)': { - 'os_type': 'android', - 'skip_merge_script': True, - 'mixins': [ - 'gpu_pool', - 'marlin', - 'pie', - ], - 'test_suites': { - 'gtest_tests': 'gpu_angle_gtests', - 'isolated_scripts': 'gpu_angle_perf_isolated_scripts', - }, - }, 'Android FYI 32 dEQP Vk Release (Pixel 2)': { 'os_type': 'android', 'skip_merge_script': True, @@ -2353,18 +2340,6 @@ 'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests', }, }, - 'Android FYI 32 dEQP Vk Release (Pixel XL)': { - 'os_type': 'android', - 'skip_merge_script': True, - 'mixins': [ - 'gpu_pool', - 'marlin', - 'pie', - ], - 'test_suites': { - 'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests', - }, - }, 'Android FYI 64 Vk Release (Pixel 2)': { 'os_type': 'android', 'skip_merge_script': True, @@ -2378,19 +2353,6 @@ 'isolated_scripts': 'gpu_angle_perf_isolated_scripts', }, }, - 'Android FYI 64 Vk Release (Pixel XL)': { - 'os_type': 'android', - 'skip_merge_script': True, - 'mixins': [ - 'gpu_pool', - 'marlin', - 'pie', - ], - 'test_suites': { - 'gtest_tests': 'gpu_angle_gtests', - 'isolated_scripts': 'gpu_angle_perf_isolated_scripts', - }, - }, 'Android FYI 64 dEQP Vk Release (Pixel 2)': { 'os_type': 'android', 'skip_merge_script': True, @@ -2403,18 +2365,6 @@ 'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests', }, }, - 'Android FYI 64 dEQP Vk Release (Pixel XL)': { - 'os_type': 'android', - 'skip_merge_script': True, - 'mixins': [ - 'gpu_pool', - 'marlin', - 'pie', - ], - 'test_suites': { - 'gtest_tests': 'gpu_angle_deqp_android_vulkan_gtests', - }, - }, 'Android FYI Release (NVIDIA Shield TV)': { 'browser_config': 'android-chromium', 'os_type': 'android', @@ -2519,6 +2469,19 @@ 'gpu_telemetry_tests': 'gpu_fyi_android_webgl2_and_gold_telemetry_tests', }, }, + 'Android FYI SkiaRenderer Vulkan (Pixel 2)': { + 'os_type': 'android', + 'browser_config': 'android-chromium', + 'skip_merge_script': True, + 'mixins': [ + 'gpu_pool', + 'pie', + 'walleye', + ], + 'test_suites': { + 'gtest_tests': 'gpu_skia_renderer_vulkan_gtests', + }, + }, 'Android FYI dEQP Release (Nexus 5X)': { 'os_type': 'android', 'skip_merge_script': True, @@ -3407,15 +3370,6 @@ 'isolated_scripts': 'chromium_linux_dbg_isolated_scripts', }, }, - 'Linux Tests (dbg)(1)(32)': { - 'mixins': [ - 'linux-trusty', - ], - 'test_suites': { - 'gtest_tests': 'chromium_linux_gtests', - 'isolated_scripts': 'chromium_linux_dbg_isolated_scripts', - }, - }, # TODO(crbug.com/930364): Remove once linux-coverage-rel is folded into # linux-rel or ended up not being able to fold. 'Linux Tests Code Coverage': {
diff --git a/testing/scripts/run_rendering_benchmark_with_gated_performance.py b/testing/scripts/run_rendering_benchmark_with_gated_performance.py index b42042ac..38835b4 100755 --- a/testing/scripts/run_rendering_benchmark_with_gated_performance.py +++ b/testing/scripts/run_rendering_benchmark_with_gated_performance.py
@@ -15,6 +15,8 @@ use with other benchmarks. """ +from __future__ import print_function + import argparse import csv import json @@ -29,8 +31,8 @@ # AVG_ERROR_MARGIN determines how much more the value of frame times can be # compared to the recorded value AVG_ERROR_MARGIN = 2.0 -# CI stands for comfidence intrevals. "ci_095"s recorded in the data is the -# reocrded range between upper and lower CIs. CI_ERROR_MARGIN is the maximum +# CI stands for confidence intervals. "ci_095"s recorded in the data is the +# recorded range between upper and lower CIs. CI_ERROR_MARGIN is the maximum # acceptable ratio of calculated ci_095 to the recorded ones. CI_ERROR_MARGIN = 2.0 @@ -41,44 +43,120 @@ self.start_time = time.time() self.output = {} self.return_code = 0 + self._failed_stories = set() - def setTests(self, output, testNum): + def set_tests(self, output): self.output = output - self.tests = testNum self.fails = 0 if 'FAIL' in output['num_failures_by_type']: self.fails = output['num_failures_by_type']['FAIL'] + self.tests = self.fails + output['num_failures_by_type']['PASS'] - def addFailure(self, name): + def add_failure(self, name): self.output['tests'][BENCHMARK][name]['actual'] = 'FAIL' self.output['tests'][BENCHMARK][name]['is_unexpected'] = True + self._failed_stories.add(name) self.fails += 1 - def getOutput(self, return_code): + def remove_failure(self, name): + self.output['tests'][BENCHMARK][name]['actual'] = 'PASS' + self.output['tests'][BENCHMARK][name]['is_unexpected'] = False + self._failed_stories.remove(name) + self.fails -= 1 + + @property + def failed_stories(self): + return self._failed_stories + + def get_output(self, return_code): self.output['seconds_since_epoch'] = time.time() - self.start_time self.output['num_failures_by_type']['PASS'] = self.tests - self.fails if self.fails > 0: self.output['num_failures_by_type']['FAIL'] = self.fails if return_code == 1: - self.output["interrupted"] = True + self.output['interrupted'] = True - if self.fails == 0: - print "[ PASSED ] " + str(self.tests) + " tests." - else: - print "[ FAILED ] " + str(self.fails) + "/" + str(self.tests)+ " tests." + plural = lambda n, s, p: '%d %s' % (n, p if n != 1 else s) + tests = lambda n: plural(n, 'test', 'tests') + + print('[ PASSED ] ' + tests(self.tests - self.fails) + '.') + if self.fails > 0: + print('[ FAILED ] ' + tests(self.fails) + '.') self.return_code = 1 return (self.output, self.return_code) - def setAllToFail(self): - self.fails = self.tests +def interpret_run_benchmark_results(upper_limit_data, + isolated_script_test_output): + out_dir_path = os.path.dirname(isolated_script_test_output) + output_path = os.path.join(out_dir_path, BENCHMARK, 'test_results.json') + result_recorder = ResultRecorder() + + with open(output_path, 'r+') as resultsFile: + initialOut = json.load(resultsFile) + result_recorder.set_tests(initialOut) + + results_path = os.path.join(out_dir_path, BENCHMARK, 'perf_results.csv') + marked_stories = set() + + with open(results_path) as csv_file: + reader = csv.DictReader(csv_file) + for row in reader: + # For now only frame_times is used for testing representatives' + # performance. + if row['name'] != 'frame_times': + continue + story_name = row['stories'] + if (story_name in marked_stories or story_name not in + upper_limit_data): + continue + marked_stories.add(story_name) + + upper_limit_avg = upper_limit_data[story_name]['avg'] + upper_limit_ci = upper_limit_data[story_name]['ci_095'] + + if row['avg'] == '' or row['count'] == 0: + print('[ FAILED ] '+ BENCHMARK + '/' + story_name + ' ' + + row['name'] + ' has no values for ' + row['name'] + + '. check run_benchmark logs for more information.') + result_recorder.add_failure(story_name) + elif (float(row['ci_095']) > upper_limit_ci * CI_ERROR_MARGIN): + print('[ FAILED ] '+ BENCHMARK + '/' + story_name + ' ' + + row['name'] + ' has higher noise' + '(' + str(row['ci_095']) + + ') compared to upper limit(' + str(upper_limit_ci) + ').') + result_recorder.add_failure(story_name) + elif (float(row['avg']) > upper_limit_avg + AVG_ERROR_MARGIN): + print('[ FAILED ] '+ BENCHMARK + '/' + story_name + + ' higher average ' + row['name'] + '(' + str(row['avg']) + + ') compared to upper limit(' + str(upper_limit_avg) + ').') + result_recorder.add_failure(story_name) + else: + print('[ OK ] '+ BENCHMARK + '/' + story_name + + ' lower average ' + row['name'] + '(' + str(row['avg']) + + ') compared to upper limit(' + str(upper_limit_avg) + ').') + + # Clearing the result of run_benchmark and write the gated perf results + resultsFile.seek(0) + resultsFile.truncate(0) + + return result_recorder + +def replace_arg_values(args, key_value_pairs): + for index in range(0, len(args)): + for (key, value) in key_value_pairs: + if args[index].startswith(key): + if '=' in args[index]: + args[index] = key + '=' + value + else: + args[index+1] = value + return args def main(): overall_return_code = 0 # Linux does not have it's own specific representatives - # and uses the representatives chosen for winodws. - if sys.platform == 'win32': + # and uses the representatives chosen for windows. + if sys.platform == 'win32' or sys.platform.startswith('linux'): platform = 'win' story_tag = 'representative_win_desktop' elif sys.platform == 'darwin': @@ -89,10 +167,10 @@ options = parse_arguments() args = sys.argv + re_run_args = sys.argv args.extend(['--story-tag-filter', story_tag]) overall_return_code = run_performance_tests.main(args) - result_recorder = ResultRecorder() # The values used as the upper limit are the 99th percentile of the # avg and ci_095 frame_times recorded by dashboard in the past 200 revisions. @@ -107,51 +185,47 @@ upper_limit_data = json.load(bound_data) out_dir_path = os.path.dirname(options.isolated_script_test_output) - test_count = len(upper_limit_data[platform]) - output_path = os.path.join(out_dir_path, BENCHMARK, 'test_results.json') + result_recorder = interpret_run_benchmark_results(upper_limit_data[platform], + options.isolated_script_test_output) with open(output_path, 'r+') as resultsFile: - initialOut = json.load(resultsFile) - result_recorder.setTests(initialOut, test_count) + if len(result_recorder.failed_stories) > 0: + # For failed stories we run_tests again to make sure it's not a false + # positive. + print('============ Re_run the failed tests ============') + all_failed_stories = '('+'|'.join(result_recorder.failed_stories)+')' + re_run_args.extend( + ['--story-filter', all_failed_stories, '--pageset-repeat=3']) - results_path = os.path.join(out_dir_path, BENCHMARK, 'perf_results.csv') - marked_stories = set() - with open(results_path) as csv_file: - reader = csv.DictReader(csv_file) - for row in reader: - # For now only frame_times is used for testing representatives' - # performance. - if row['name'] != 'frame_times': - continue - story_name = row['stories'] - if (story_name in marked_stories or story_name not in - upper_limit_data[platform]): - continue - marked_stories.add(story_name) + re_run_isolated_script_test_dir = os.path.join(out_dir_path, + 're_run_failures') + re_run_isolated_script_test_output = os.path.join( + re_run_isolated_script_test_dir, + os.path.basename(options.isolated_script_test_output)) + re_run_isolated_script_test_perf_output = os.path.join( + re_run_isolated_script_test_dir, + os.path.basename(options.isolated_script_test_perf_output)) - if row['avg'] == '' or row['count'] == 0: - print "No values for " + story_name - result_recorder.addFailure(story_name) - elif (float(row['ci_095']) > - upper_limit_data[platform][story_name]['ci_095'] * CI_ERROR_MARGIN): - print "Noisy data on frame_times for " + story_name + ".\n" - result_recorder.addFailure(story_name) - elif (float(row['avg']) > - upper_limit_data[platform][story_name]['avg'] + AVG_ERROR_MARGIN): - print (story_name + ": average frame_times is higher than 99th " + - "percentile of the past 200 recorded frame_times(" + - row['avg'] + ")" + ".\n") - result_recorder.addFailure(story_name) + re_run_args = replace_arg_values(re_run_args, [ + ('--isolated-script-test-output', re_run_isolated_script_test_output), + ('--isolated-script-test-perf-output', + re_run_isolated_script_test_perf_output) + ]) + + overall_return_code |= run_performance_tests.main(re_run_args) + re_run_result_recorder = interpret_run_benchmark_results( + upper_limit_data[platform], re_run_isolated_script_test_output) + + for story_name in result_recorder.failed_stories.copy(): + if story_name not in re_run_result_recorder.failed_stories: + result_recorder.remove_failure(story_name) ( finalOut, overall_return_code - ) = result_recorder.getOutput(overall_return_code) + ) = result_recorder.get_output(overall_return_code) - # Clearing the result of run_benchmark and write the gated perf results - resultsFile.seek(0) - resultsFile.truncate(0) json.dump(finalOut, resultsFile, indent=4) with open(options.isolated_script_test_output, 'w') as outputFile:
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 52a7b48..431a03c 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -1446,6 +1446,24 @@ ] } ], + "ClipboardMaximumAge": [ + { + "platforms": [ + "android" + ], + "experiments": [ + { + "name": "Enabled", + "params": { + "UIClipboardMaximumAge": "600" + }, + "enable_features": [ + "ClipboardMaximumAge" + ] + } + ] + } + ], "CompositorImageAnimation": [ { "platforms": [
diff --git a/testing/xvfb.py b/testing/xvfb.py index abc4c32..bb9d3975 100755 --- a/testing/xvfb.py +++ b/testing/xvfb.py
@@ -21,32 +21,24 @@ pass -def _kill(proc, send_signal): - """Kills |proc| and ignores exceptions thrown for non-existent processes.""" - try: - os.kill(proc.pid, send_signal) - except OSError: - pass - - -def kill(proc, timeout_in_seconds=10): +def kill(proc, name, timeout_in_seconds=10): """Tries to kill |proc| gracefully with a timeout for each signal.""" - if not proc or not proc.pid: + if not proc: return - _kill(proc, signal.SIGTERM) + proc.terminate() thread = threading.Thread(target=proc.wait) thread.start() thread.join(timeout_in_seconds) if thread.is_alive(): - print >> sys.stderr, '%s running after SIGTERM, trying SIGKILL.' % proc.name - _kill(proc, signal.SIGKILL) + print >> sys.stderr, '%s running after SIGTERM, trying SIGKILL.' % name + proc.kill() thread.join(timeout_in_seconds) if thread.is_alive(): print >> sys.stderr, \ - '%s running after SIGTERM and SIGKILL; good luck!' % proc.name + '%s running after SIGTERM and SIGKILL; good luck!' % name # TODO(crbug.com/949194): Encourage setting flags to False. @@ -159,10 +151,10 @@ print >> sys.stderr, 'Xvfb fail: %s' % str(e) return 1 finally: - kill(openbox_proc) - kill(xcompmgr_proc) - kill(weston_proc) - kill(xvfb_proc) + kill(openbox_proc, 'openbox') + kill(xcompmgr_proc, 'xcompmgr') + kill(weston_proc, 'weston') + kill(xvfb_proc, 'Xvfb') else: return test_env.run_executable(cmd, env, stdoutfile)
diff --git a/third_party/blink/public/BUILD.gn b/third_party/blink/public/BUILD.gn index 24d20f8c..c976f85 100644 --- a/third_party/blink/public/BUILD.gn +++ b/third_party/blink/public/BUILD.gn
@@ -165,6 +165,7 @@ "platform/modules/webrtc/track_observer.h", "platform/modules/webrtc/webrtc_logging.h", "platform/modules/webrtc/webrtc_video_frame_adapter.h", + "platform/modules/webrtc/webrtc_video_utils.h", "platform/platform.h", "platform/pointer_properties.h", "platform/scheduler/web_rail_mode_observer.h", @@ -540,6 +541,7 @@ "//third_party/webrtc/api:libjingle_peerconnection_api", "//third_party/webrtc/api:rtc_stats_api", "//third_party/webrtc/api/video:video_frame", + "//third_party/webrtc/api/video:video_rtp_headers", "//third_party/webrtc/media:rtc_media_base", "//third_party/webrtc/modules/audio_processing:api", "//third_party/webrtc/rtc_base:rtc_base",
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn index 6b49d8e..d53a3e5 100644 --- a/third_party/blink/public/mojom/BUILD.gn +++ b/third_party/blink/public/mojom/BUILD.gn
@@ -111,7 +111,7 @@ "service_worker/service_worker_state.mojom", "service_worker/service_worker_stream_handle.mojom", "site_engagement/site_engagement.mojom", - "sms/sms_manager.mojom", + "sms/sms_receiver.mojom", "speech/speech_recognition_error.mojom", "speech/speech_recognition_error_code.mojom", "speech/speech_recognition_grammar.mojom",
diff --git a/third_party/blink/public/mojom/sms/sms_manager.mojom b/third_party/blink/public/mojom/sms/sms_receiver.mojom similarity index 79% rename from third_party/blink/public/mojom/sms/sms_manager.mojom rename to third_party/blink/public/mojom/sms/sms_receiver.mojom index 05c4b6d..b48d616 100644 --- a/third_party/blink/public/mojom/sms/sms_manager.mojom +++ b/third_party/blink/public/mojom/sms/sms_receiver.mojom
@@ -14,18 +14,14 @@ kTimeout }; -struct SmsMessage { - SmsStatus status; - // Only set if status == kSuccess. - string? content; -}; - // This interface is created per storage partition but its execution is context // associated: there is an origin associated with a request that is multiplexed // through one instance on a storage partition. -interface SmsManager { +interface SmsReceiver { // Retrieves the next SMS message that arrives on the phone that is addressed // to the caller's origin. // Returns the raw content of the received SMS. - GetNextMessage(mojo_base.mojom.TimeDelta timeout) => (SmsMessage sms); + // |message| is only set if status == kSuccess. + Receive(mojo_base.mojom.TimeDelta timeout) + => (SmsStatus status, string? message); };
diff --git a/third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h b/third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h new file mode 100644 index 0000000..04eae9f --- /dev/null +++ b/third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h
@@ -0,0 +1,30 @@ +// Copyright 2018 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. + +#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_WEBRTC_WEBRTC_VIDEO_UTILS_H_ +#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_WEBRTC_WEBRTC_VIDEO_UTILS_H_ + +#include "media/base/video_color_space.h" +#include "media/base/video_transformation.h" +#include "third_party/blink/public/platform/web_common.h" +#include "third_party/webrtc/api/video/color_space.h" +#include "third_party/webrtc/api/video/video_rotation.h" + +namespace blink { + +// This file has helper methods for conversion between chromium types and +// webrtc/api/video types. +// +// TODO(crbug.com/704136): Move the helper methods below out of the Blink +// exposed API when all users of it have been Onion souped. + +media::VideoRotation BLINK_PLATFORM_EXPORT +WebRtcToMediaVideoRotation(webrtc::VideoRotation rotation); + +media::VideoColorSpace BLINK_PLATFORM_EXPORT +WebRtcToMediaVideoColorSpace(const webrtc::ColorSpace& color_space); + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_WEBRTC_WEBRTC_VIDEO_UTILS_H_
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc index f077ded5..fb2a8fa 100644 --- a/third_party/blink/renderer/core/animation/compositor_animations.cc +++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -253,7 +253,6 @@ } break; case CSSPropertyID::kFilter: - case CSSPropertyID::kBackdropFilter: if (keyframe->GetCompositorKeyframeValue() && ToCompositorKeyframeFilterOperations( keyframe->GetCompositorKeyframeValue()) @@ -262,6 +261,10 @@ reasons |= kFilterRelatedPropertyMayMovePixels; } break; + case CSSPropertyID::kBackdropFilter: + // Backdrop-filter pixel moving filters do not change the layer bounds + // like regular filters do, so they can still be composited. + break; case CSSPropertyID::kVariable: // Custom properties are supported only in the case of // OffMainThreadCSSPaintEnabled, and even then only for some specific
diff --git a/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css b/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css index 2e99f77..2403a75d 100644 --- a/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css +++ b/third_party/blink/renderer/core/html/forms/resources/validation_bubble.css
@@ -17,6 +17,7 @@ opacity: 0; position: absolute; will-change: opacity, transform; + word-break: break-word; } #container.shown-initially {
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_content.cc b/third_party/blink/renderer/core/layout/layout_embedded_content.cc index 312eca4..80016a9d 100644 --- a/third_party/blink/renderer/core/layout/layout_embedded_content.cc +++ b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
@@ -278,6 +278,8 @@ void LayoutEmbeddedContent::PaintReplaced( const PaintInfo& paint_info, const PhysicalOffset& paint_offset) const { + if (PaintBlockedByDisplayLock(DisplayLockContext::kChildren)) + return; EmbeddedContentPainter(*this).PaintReplaced(paint_info, paint_offset); }
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc index 549698b..76ed37b9 100644 --- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc +++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
@@ -26,8 +26,8 @@ // We go backwards through the list as there is a higher probability that a // new area will be at the end of the list. - for (wtf_size_t j = areas->size() - 1; j >= 0; --j) { - const NGExclusionSpaceInternal::NGClosedArea& other = areas->at(j); + for (wtf_size_t i = areas->size(); i--;) { + const NGExclusionSpaceInternal::NGClosedArea& other = areas->at(i); if (other.opportunity.rect.BlockStartOffset() <= area.opportunity.rect.BlockStartOffset()) { #if DCHECK_IS_ON() @@ -42,12 +42,21 @@ } #endif - areas->insert(j + 1, area); + areas->insert(i + 1, area); return; } } - NOTREACHED(); + // The first closed-off area we insert is almost always at LayoutUnit::Min(). + // + // However if a float is placed at LayoutUnit::Min() it is possible to get + // into a state where this isn't the case (the first closed-off area might be + // directly below that float for example). + // + // When a subsequent float gets placed, it might create a closed-off area at + // LayoutUnit::Min(), and should be inserted at the front of the areas list. + DCHECK_EQ(area.opportunity.rect.BlockStartOffset(), LayoutUnit::Min()); + areas->push_front(area); } // Returns true if there is at least one edge between block_start and block_end.
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc index 0c8bacd4..c8fc8c3d 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
@@ -13,9 +13,23 @@ namespace blink { +namespace { +// This routine returns true if inline_container should replace descendant's +// inline container. +bool IsInlineContainerForDescendant( + const NGOutOfFlowPositionedDescendant& descendant, + const LayoutObject* inline_container) { + return !descendant.inline_container && inline_container && + inline_container->IsLayoutInline() && + inline_container->CanContainOutOfFlowPositionedElement( + descendant.node.Style().GetPosition()); +} +} // namespace + NGContainerFragmentBuilder& NGContainerFragmentBuilder::AddChild( const NGPhysicalContainerFragment& child, - const LogicalOffset& child_offset) { + const LogicalOffset& child_offset, + const LayoutInline* inline_container) { // Collect the child's out of flow descendants. // child_offset is offset of inline_start/block_start vertex. // Candidates need offset of top/left vertex. @@ -68,8 +82,11 @@ PhysicalSize(), PhysicalSize()); } - for (const NGOutOfFlowPositionedDescendant& descendant : + for (NGOutOfFlowPositionedDescendant& descendant : out_of_flow_descendants) { + if (IsInlineContainerForDescendant(descendant, inline_container)) { + descendant.inline_container = inline_container; + } oof_positioned_candidates_.push_back( NGOutOfFlowPositionedCandidate(descendant, top_left_offset)); } @@ -238,16 +255,14 @@ // the given descendant. const LayoutInline* inline_container = candidate.descendant.inline_container; - if (!inline_container && layout_object_ && - layout_object_->IsLayoutInline() && - layout_object_->CanContainOutOfFlowPositionedElement( - candidate.descendant.node.Style().GetPosition())) + if (IsInlineContainerForDescendant(candidate.descendant, layout_object_)) { inline_container = ToLayoutInline(layout_object_); - + } descendant_candidates->push_back(NGOutOfFlowPositionedDescendant( candidate.descendant.node, builder_relative_position, inline_container ? ToLayoutInline(inline_container->ContinuationRoot()) : nullptr)); + LogicalOffset container_offset = builder_relative_position.offset.ConvertToLogical( GetWritingMode(), Direction(), builder_physical_size,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h index e84c879..d0b428d 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h +++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
@@ -86,8 +86,10 @@ return *this; } - NGContainerFragmentBuilder& AddChild(const NGPhysicalContainerFragment&, - const LogicalOffset&); + NGContainerFragmentBuilder& AddChild( + const NGPhysicalContainerFragment&, + const LogicalOffset&, + const LayoutInline* inline_container = nullptr); NGContainerFragmentBuilder& AddChild( scoped_refptr<const NGPhysicalTextFragment> child,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc index 8f7494a5..c20aa9c 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
@@ -399,7 +399,8 @@ scoped_refptr<const NGLayoutResult> result = LayoutDescendant(candidate, only_layout); container_builder_->AddChild(result->PhysicalFragment(), - result->OutOfFlowPositionedOffset()); + result->OutOfFlowPositionedOffset(), + candidate.inline_container); placed_objects->insert(candidate.node.GetLayoutBox()); if (candidate.node.GetLayoutBox() != only_layout) candidate.node.UseLegacyOutOfFlowPositioning();
diff --git a/third_party/blink/renderer/core/paint/link_highlight_impl.cc b/third_party/blink/renderer/core/paint/link_highlight_impl.cc index ff5e365d..00c4e74c 100644 --- a/third_party/blink/renderer/core/paint/link_highlight_impl.cc +++ b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
@@ -396,7 +396,8 @@ void LinkHighlightImpl::UpdateGeometry() { DCHECK(!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()); - if (!node_ || !node_->GetLayoutObject()) { + if (!node_ || !node_->GetLayoutObject() || + node_->GetLayoutObject()->GetFrameView()->ShouldThrottleRendering()) { ClearGraphicsLayerLinkHighlightPointer(); ReleaseResources(); return; @@ -453,7 +454,8 @@ void LinkHighlightImpl::Paint(GraphicsContext& context) { DCHECK(RuntimeEnabledFeatures::CompositeAfterPaintEnabled()); - if (!node_ || !node_->GetLayoutObject()) { + if (!node_ || !node_->GetLayoutObject() || + node_->GetLayoutObject()->GetFrameView()->ShouldThrottleRendering()) { ReleaseResources(); return; }
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc index 39dc7d1..00c9489 100644 --- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc +++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.cc
@@ -71,7 +71,7 @@ const String& name, WorkletAnimationOptions options, scoped_refptr<SerializedScriptValue> serialized_state, - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const WTF::Vector<Timing>& timings) { DCHECK(!animators_.at(animation_id)); Animator* animator = @@ -113,7 +113,7 @@ ->data; DCHECK_GE(timings.size(), 1u); - std::vector<base::Optional<TimeDelta>> local_times( + std::vector<base::Optional<base::TimeDelta>> local_times( static_cast<int>(timings.size()), base::nullopt); CreateAnimatorFor(id, name, options, nullptr /* serialized_state */, @@ -243,7 +243,7 @@ const String& name, WorkletAnimationOptions options, scoped_refptr<SerializedScriptValue> serialized_state, - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const WTF::Vector<Timing>& timings) { DCHECK(IsContextThread()); AnimatorDefinition* definition = animator_definitions_.at(name);
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h index b50fbb6..54e98d0 100644 --- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h +++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope.h
@@ -67,14 +67,14 @@ const String& name, WorkletAnimationOptions options, scoped_refptr<SerializedScriptValue> serialized_state, - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const Vector<Timing>& timings); Animator* CreateAnimatorFor( int animation_id, const String& name, WorkletAnimationOptions options, scoped_refptr<SerializedScriptValue> serialized_state, - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const Vector<Timing>& timings); typedef HeapHashMap<String, Member<AnimatorDefinition>> DefinitionMap; DefinitionMap animator_definitions_;
diff --git a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc index ab51390..7ea3054 100644 --- a/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc +++ b/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc
@@ -320,7 +320,7 @@ EXPECT_EQ(output->animations.size(), 1ul); EXPECT_EQ(output->animations[0].local_times[0], - WTF::TimeDelta::FromMillisecondsD(123)); + base::TimeDelta::FromMillisecondsD(123)); waitable_event->Signal(); }
diff --git a/third_party/blink/renderer/modules/animationworklet/animator.cc b/third_party/blink/renderer/modules/animationworklet/animator.cc index ec5a849f..f43a7c7 100644 --- a/third_party/blink/renderer/modules/animationworklet/animator.cc +++ b/third_party/blink/renderer/modules/animationworklet/animator.cc
@@ -14,13 +14,14 @@ namespace blink { -Animator::Animator(v8::Isolate* isolate, - AnimatorDefinition* definition, - v8::Local<v8::Value> instance, - const String& name, - WorkletAnimationOptions options, - const std::vector<base::Optional<TimeDelta>>& local_times, - const Vector<Timing>& timings) +Animator::Animator( + v8::Isolate* isolate, + AnimatorDefinition* definition, + v8::Local<v8::Value> instance, + const String& name, + WorkletAnimationOptions options, + const std::vector<base::Optional<base::TimeDelta>>& local_times, + const Vector<Timing>& timings) : definition_(definition), instance_(isolate, instance), name_(name), @@ -67,8 +68,8 @@ return true; } -std::vector<base::Optional<TimeDelta>> Animator::GetLocalTimes() const { - std::vector<base::Optional<TimeDelta>> local_times; +std::vector<base::Optional<base::TimeDelta>> Animator::GetLocalTimes() const { + std::vector<base::Optional<base::TimeDelta>> local_times; local_times.reserve(group_effect_->getChildren().size()); for (const auto& effect : group_effect_->getChildren()) { local_times.push_back(effect->local_time());
diff --git a/third_party/blink/renderer/modules/animationworklet/animator.h b/third_party/blink/renderer/modules/animationworklet/animator.h index c006031..f41fb97 100644 --- a/third_party/blink/renderer/modules/animationworklet/animator.h +++ b/third_party/blink/renderer/modules/animationworklet/animator.h
@@ -31,7 +31,7 @@ v8::Local<v8::Value> instance, const String& name, WorkletAnimationOptions options, - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const Vector<Timing>& timings); ~Animator(); void Trace(blink::Visitor*); @@ -44,7 +44,7 @@ double current_time, AnimationWorkletDispatcherOutput::AnimationState* output); v8::Local<v8::Value> State(v8::Isolate*, ExceptionState&); - std::vector<base::Optional<TimeDelta>> GetLocalTimes() const; + std::vector<base::Optional<base::TimeDelta>> GetLocalTimes() const; Vector<Timing> GetTimings() const; bool IsStateful() const;
diff --git a/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc b/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc index fb3c4db..2ad7dd2a 100644 --- a/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc +++ b/third_party/blink/renderer/modules/animationworklet/effect_proxy.cc
@@ -6,7 +6,7 @@ namespace blink { -EffectProxy::EffectProxy(base::Optional<TimeDelta> local_time) +EffectProxy::EffectProxy(base::Optional<base::TimeDelta> local_time) : local_time_(local_time) {} void EffectProxy::setLocalTime(double time_ms, bool is_null) { @@ -15,16 +15,17 @@ return; } DCHECK(!std::isnan(time_ms)); - // Convert double to TimeDelta because cc/animation expects TimeDelta. + // Convert double to base::TimeDelta because cc/animation expects + // base::TimeDelta. // - // Note on precision loss: TimeDelta has microseconds precision which is + // Note on precision loss: base::TimeDelta has microseconds precision which is // also the precision recommended by the web animation specification as well // [1]. If the input time value has a bigger precision then the conversion // causes precision loss. Doing the conversion here ensures that reading the // value back provides the actual value we use in further computation which // is the least surprising path. // [1] https://drafts.csswg.org/web-animations/#precision-of-time-values - local_time_ = WTF::TimeDelta::FromMillisecondsD(time_ms); + local_time_ = base::TimeDelta::FromMillisecondsD(time_ms); } double EffectProxy::localTime(bool& is_null) const { @@ -32,7 +33,7 @@ return local_time_.value_or(base::TimeDelta()).InMillisecondsF(); } -base::Optional<WTF::TimeDelta> EffectProxy::local_time() const { +base::Optional<base::TimeDelta> EffectProxy::local_time() const { return local_time_; }
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc index 8a618f5..feeb08c 100644 --- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc +++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.cc
@@ -7,7 +7,7 @@ namespace blink { WorkletAnimationEffect::WorkletAnimationEffect( - base::Optional<TimeDelta> local_time, + base::Optional<base::TimeDelta> local_time, const Timing& specified_timing) : local_time_(local_time), specified_timing_(specified_timing) { specified_timing_.AssertValid(); @@ -23,16 +23,17 @@ return; } DCHECK(!std::isnan(time_ms)); - // Convert double to TimeDelta because cc/animation expects TimeDelta. + // Convert double to base::TimeDelta because cc/animation expects + // base::TimeDelta. // - // Note on precision loss: TimeDelta has microseconds precision which is + // Note on precision loss: base::TimeDelta has microseconds precision which is // also the precision recommended by the web animation specification as well // [1]. If the input time value has a bigger precision then the conversion // causes precision loss. Doing the conversion here ensures that reading the // value back provides the actual value we use in further computation which // is the least surprising path. // [1] https://drafts.csswg.org/web-animations/#precision-of-time-values - local_time_ = WTF::TimeDelta::FromMillisecondsD(time_ms); + local_time_ = base::TimeDelta::FromMillisecondsD(time_ms); } double WorkletAnimationEffect::localTime(bool& is_null) const { @@ -40,7 +41,7 @@ return local_time_.value_or(base::TimeDelta()).InMillisecondsF(); } -base::Optional<WTF::TimeDelta> WorkletAnimationEffect::local_time() const { +base::Optional<base::TimeDelta> WorkletAnimationEffect::local_time() const { return local_time_; } } // namespace blink
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h index 2582c71..d935ffa 100644 --- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h +++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_effect.h
@@ -17,7 +17,7 @@ DEFINE_WRAPPERTYPEINFO(); public: - WorkletAnimationEffect(base::Optional<TimeDelta> local_time, + WorkletAnimationEffect(base::Optional<base::TimeDelta> local_time, const Timing& timing); // This function is named getTiming() as opposed to getEffectTiming() because @@ -29,10 +29,10 @@ void setLocalTime(double time_ms, bool is_null); double localTime(bool& is_null) const; - base::Optional<WTF::TimeDelta> local_time() const; + base::Optional<base::TimeDelta> local_time() const; private: - base::Optional<WTF::TimeDelta> local_time_; + base::Optional<base::TimeDelta> local_time_; // We chose to not call this variable "timing_" to avoid confusion with the // above function call getTiming() which returns a pointer to an EffectTiming // object, as is defined in worklet_animation_effect.idl.
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc b/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc index ee33416..91a5066 100644 --- a/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc +++ b/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc
@@ -27,7 +27,7 @@ // Only expect precision up to 1 microsecond with an additional epsilon to // account for float conversion error (mainly due to timeline time getting -// converted between float and TimeDelta). +// converted between float and base::TimeDelta). static constexpr double time_error_ms = 0.001 + 1e-13; #define EXPECT_TIME_NEAR(expected, value) \ @@ -233,8 +233,8 @@ state.reset(new AnimationWorkletDispatcherInput); // Last peek request fulfilled. No need to peek. - std::vector<base::Optional<TimeDelta>> local_times; - local_times.push_back(TimeDelta()); + std::vector<base::Optional<base::TimeDelta>> local_times; + local_times.push_back(base::TimeDelta()); AnimationWorkletOutput::AnimationState output_with_value(id); output_with_value.local_times = local_times; worklet_animation_->SetOutputState(output_with_value);
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc index e350d55..680d19e 100644 --- a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc +++ b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.cc
@@ -7,7 +7,7 @@ namespace blink { WorkletGroupEffect::WorkletGroupEffect( - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const Vector<Timing>& timings) { DCHECK_GE(local_times.size(), 1u); DCHECK_EQ(local_times.size(), timings.size());
diff --git a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h index 07650af..c42b0d7b 100644 --- a/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h +++ b/third_party/blink/renderer/modules/animationworklet/worklet_group_effect.h
@@ -18,7 +18,7 @@ public: explicit WorkletGroupEffect( - const std::vector<base::Optional<TimeDelta>>& local_times, + const std::vector<base::Optional<base::TimeDelta>>& local_times, const Vector<Timing>& timings); const HeapVector<Member<WorkletAnimationEffect>>& getChildren() { return effects_;
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc index 3e84444..3bfc5b37 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_icon_loader.cc
@@ -104,7 +104,7 @@ threadable_loader_ = MakeGarbageCollected<ThreadableLoader>( *execution_context, this, resource_loader_options); threadable_loader_->SetTimeout( - TimeDelta::FromMilliseconds(kIconFetchTimeoutInMs)); + base::TimeDelta::FromMilliseconds(kIconFetchTimeoutInMs)); threadable_loader_->Start(resource_request); }
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage.cc b/third_party/blink/renderer/modules/cache_storage/cache_storage.cc index b716630..fd805ac 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache_storage.cc +++ b/third_party/blink/renderer/modules/cache_storage/cache_storage.cc
@@ -142,7 +142,7 @@ } }, WrapPersistent(resolver), WrapPersistent(scoped_fetcher_.Get()), - TimeTicks::Now(), trace_id)); + base::TimeTicks::Now(), trace_id)); return promise; } @@ -194,7 +194,7 @@ break; } }, - WrapPersistent(resolver), TimeTicks::Now(), trace_id)); + WrapPersistent(resolver), base::TimeTicks::Now(), trace_id)); return promise; } @@ -248,7 +248,7 @@ break; } }, - WrapPersistent(resolver), TimeTicks::Now(), trace_id)); + WrapPersistent(resolver), base::TimeTicks::Now(), trace_id)); return promise; } @@ -288,7 +288,7 @@ return; resolver->Resolve(keys); }, - WrapPersistent(resolver), TimeTicks::Now(), trace_id)); + WrapPersistent(resolver), base::TimeTicks::Now(), trace_id)); return promise; } @@ -385,8 +385,8 @@ *result->get_response())); } }, - WrapPersistent(resolver), TimeTicks::Now(), WrapPersistent(options), - trace_id)); + WrapPersistent(resolver), base::TimeTicks::Now(), + WrapPersistent(options), trace_id)); return promise; }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc index 54f052a..bd866bb 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1268,7 +1268,7 @@ duration_histogram_name.append(".CPU"); } - base::TimeDelta elapsed = TimeTicks::Now() - start_time; + base::TimeDelta elapsed = base::TimeTicks::Now() - start_time; base::UmaHistogramMicrosecondsTimes(duration_histogram_name, elapsed); float sqrt_pixels_float =
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index 4b4daa8..64ae5d5 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -76,8 +76,8 @@ namespace blink { -static const TimeDelta kTryRestoreContextInterval = - TimeDelta::FromMilliseconds(500); +static const base::TimeDelta kTryRestoreContextInterval = + base::TimeDelta::FromMilliseconds(500); static const unsigned kMaxTryRestoreContextAttempts = 4; static bool ContextLostRestoredEventsEnabled() { @@ -199,7 +199,7 @@ if (context_lost_mode_ == kSyntheticLostContext && Host()) { Host()->DiscardResourceProvider(); } - dispatch_context_lost_event_timer_.StartOneShot(TimeDelta(), FROM_HERE); + dispatch_context_lost_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void CanvasRenderingContext2D::DidSetSurfaceSize() { @@ -211,7 +211,7 @@ if (CanCreateCanvas2dResourceProvider()) { if (ContextLostRestoredEventsEnabled()) { - dispatch_context_restored_event_timer_.StartOneShot(TimeDelta(), + dispatch_context_restored_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } else { // legacy synchronous context restoration.
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc index 42043d5..7a7e7bb 100644 --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
@@ -78,9 +78,9 @@ return base::nullopt; } - WTF::Time expires = options->hasExpires() - ? WTF::Time::FromJavaTime(options->expires()) - : WTF::Time(); + base::Time expires = options->hasExpires() + ? base::Time::FromJavaTime(options->expires()) + : base::Time(); String cookie_url_host = cookie_url.Host(); String domain; @@ -127,8 +127,8 @@ } return WebCanonicalCookie::Create( - name, value, domain, options->path(), WTF::Time() /*creation*/, expires, - WTF::Time() /*last_access*/, secure, false /*http_only*/, same_site, + name, value, domain, options->path(), base::Time() /*creation*/, expires, + base::Time() /*last_access*/, secure, false /*http_only*/, same_site, WebCanonicalCookie::kDefaultPriority); }
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc index 7195e8a..abc21d6 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc +++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
@@ -26,12 +26,14 @@ namespace { // Time to wait for an authenticator to successfully complete an operation. -constexpr TimeDelta kAdjustedTimeoutLower = TimeDelta::FromSeconds(10); -constexpr TimeDelta kAdjustedTimeoutUpper = TimeDelta::FromMinutes(10); +constexpr base::TimeDelta kAdjustedTimeoutLower = + base::TimeDelta::FromSeconds(10); +constexpr base::TimeDelta kAdjustedTimeoutUpper = + base::TimeDelta::FromMinutes(10); -WTF::TimeDelta AdjustTimeout(uint32_t timeout) { - WTF::TimeDelta adjusted_timeout; - adjusted_timeout = WTF::TimeDelta::FromMilliseconds(timeout); +base::TimeDelta AdjustTimeout(uint32_t timeout) { + base::TimeDelta adjusted_timeout; + adjusted_timeout = base::TimeDelta::FromMilliseconds(timeout); return std::max(kAdjustedTimeoutLower, std::min(kAdjustedTimeoutUpper, adjusted_timeout)); }
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc index 00ea877..bf1c8a75 100644 --- a/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc +++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event_pump_unittest.cc
@@ -423,7 +423,7 @@ // (crbug.com/421691) TEST_F(DeviceMotionEventPumpTest, PumpThrottlesEventRate) { // Confirm that the delay for pumping events is 60 Hz. - EXPECT_GE(60, WTF::Time::kMicrosecondsPerSecond / + EXPECT_GE(60, base::Time::kMicrosecondsPerSecond / DeviceMotionEventPump::kDefaultPumpDelayMicroseconds); controller()->RegisterWithDispatcher(); @@ -439,7 +439,7 @@ base::RunLoop loop; blink::scheduler::GetSingleThreadTaskRunnerForTesting()->PostDelayedTask( FROM_HERE, loop.QuitWhenIdleClosure(), - WTF::TimeDelta::FromMilliseconds(100)); + base::TimeDelta::FromMilliseconds(100)); loop.Run(); controller()->motion_pump()->Stop();
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc index bfbd67e..1bca4b2 100644 --- a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc +++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.cc
@@ -69,7 +69,7 @@ DCHECK(!timer_.IsActive()); timer_.StartRepeating( - WTF::TimeDelta::FromMicroseconds(kDefaultPumpDelayMicroseconds), + base::TimeDelta::FromMicroseconds(kDefaultPumpDelayMicroseconds), FROM_HERE); state_ = PumpState::RUNNING; }
diff --git a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h index f84d7ec..c5019d5 100644 --- a/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h +++ b/third_party/blink/renderer/modules/device_orientation/device_sensor_event_pump.h
@@ -19,7 +19,7 @@ // Default rate for firing events. static constexpr int kDefaultPumpFrequencyHz = 60; static constexpr int kDefaultPumpDelayMicroseconds = - WTF::Time::kMicrosecondsPerSecond / kDefaultPumpFrequencyHz; + base::Time::kMicrosecondsPerSecond / kDefaultPumpFrequencyHz; // The pump is a tri-state automaton with allowed transitions as follows: // STOPPED -> PENDING_START
diff --git a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc index b8483db..e809a9f 100644 --- a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc +++ b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.cc
@@ -296,9 +296,9 @@ WebPagePtr page = WebPage::New(); // Traverse the DOM tree and extract the metadata. - TimeTicks start_time = CurrentTimeTicks(); + base::TimeTicks start_time = CurrentTimeTicks(); ExtractionStatus status = ExtractMetadata(*html, page->entities); - TimeDelta elapsed_time = CurrentTimeTicks() - start_time; + base::TimeDelta elapsed_time = CurrentTimeTicks() - start_time; DEFINE_STATIC_LOCAL(EnumerationHistogram, status_histogram, ("CopylessPaste.ExtractionStatus", kCount));
diff --git a/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc b/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc index 8914f53..807993e 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc +++ b/third_party/blink/renderer/modules/encryptedmedia/html_media_element_encrypted_media.cc
@@ -152,7 +152,7 @@ DVLOG(EME_LOG_LEVEL) << __func__; // 5. Run the following steps in parallel. - timer_.StartOneShot(TimeDelta(), FROM_HERE); + timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } SetMediaKeysHandler::~SetMediaKeysHandler() = default;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl b/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl index 7239a365..0a33ee8 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl +++ b/third_party/blink/renderer/modules/encryptedmedia/media_encrypted_event.idl
@@ -26,6 +26,7 @@ // https://w3c.github.io/encrypted-media/#mediaencryptedevent [ + Exposed=Window, Constructor(DOMString type, optional MediaEncryptedEventInit eventInitDict) ] interface MediaEncryptedEvent : Event { readonly attribute DOMString initDataType;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl index 91bb823..d80b520 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl +++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_message_event.idl
@@ -33,6 +33,7 @@ }; [ + Exposed=Window, Constructor(DOMString type, MediaKeyMessageEventInit eventInitDict), SecureContext ] interface MediaKeyMessageEvent : Event {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc index 3edc0dc..01d27a06 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc +++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.cc
@@ -505,7 +505,7 @@ pending_actions_.push_back(PendingAction::CreatePendingGenerateRequest( result, init_data_type, init_data_buffer)); DCHECK(!action_timer_.IsActive()); - action_timer_.StartOneShot(TimeDelta(), FROM_HERE); + action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // 11. Return promise. return promise; @@ -602,7 +602,7 @@ pending_actions_.push_back( PendingAction::CreatePendingLoadRequest(result, session_id)); DCHECK(!action_timer_.IsActive()); - action_timer_.StartOneShot(TimeDelta(), FROM_HERE); + action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // 9. Return promise. return promise; @@ -723,7 +723,7 @@ pending_actions_.push_back( PendingAction::CreatePendingUpdate(result, response_copy)); if (!action_timer_.IsActive()) - action_timer_.StartOneShot(TimeDelta(), FROM_HERE); + action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // 7. Return promise. return promise; @@ -771,7 +771,7 @@ // 5. Run the following steps in parallel (done in closeTask()). pending_actions_.push_back(PendingAction::CreatePendingClose(result)); if (!action_timer_.IsActive()) - action_timer_.StartOneShot(TimeDelta(), FROM_HERE); + action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // 6. Return promise. return promise; @@ -812,7 +812,7 @@ // 4. Run the following steps asynchronously (done in removeTask()). pending_actions_.push_back(PendingAction::CreatePendingRemove(result)); if (!action_timer_.IsActive()) - action_timer_.StartOneShot(TimeDelta(), FROM_HERE); + action_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // 5. Return promise. return promise;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl index b9a672b..df6764a 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl +++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_session.idl
@@ -23,7 +23,10 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +// https://w3c.github.io/encrypted-media/#mediakeysession-interface + [ + Exposed=Window, ActiveScriptWrappable, SecureContext ] interface MediaKeySession : EventTarget {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl index a62d37a..53dfdb5 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl +++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_status_map.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://w3c.github.io/encrypted-media/#idl-def-MediaKeyStatusMap +// https://w3c.github.io/encrypted-media/#mediakeystatusmap-interface enum MediaKeyStatus { "usable", @@ -15,6 +15,7 @@ }; [ + Exposed=Window, SecureContext ] interface MediaKeyStatusMap { iterable <BufferSource, MediaKeyStatus>;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl b/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl index cf65a08d..00c7b23 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl +++ b/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.idl
@@ -5,6 +5,7 @@ // https://w3c.github.io/encrypted-media/#mediakeysystemaccess-interface [ + Exposed=Window, SecureContext ] interface MediaKeySystemAccess { readonly attribute DOMString keySystem;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc b/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc index 3c7b9af..9b64c93 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc +++ b/third_party/blink/renderer/modules/encryptedmedia/media_keys.cc
@@ -306,7 +306,7 @@ pending_actions_.push_back(PendingAction::CreatePendingSetServerCertificate( result, server_certificate_buffer)); if (!timer_.IsActive()) - timer_.StartOneShot(TimeDelta(), FROM_HERE); + timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // 6. Return promise. return promise; @@ -348,7 +348,7 @@ pending_actions_.push_back( PendingAction::CreatePendingGetStatusForPolicy(result, min_hdcp_version)); if (!timer_.IsActive()) - timer_.StartOneShot(TimeDelta(), FROM_HERE); + timer_.StartOneShot(base::TimeDelta(), FROM_HERE); // Return promise. return promise;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl b/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl index 8fd2d114..eb0c8fd 100644 --- a/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl +++ b/third_party/blink/renderer/modules/encryptedmedia/media_keys.idl
@@ -23,6 +23,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +// https://w3c.github.io/encrypted-media/#mediakeys-interface + enum MediaKeySessionType { "temporary", "persistent-license", @@ -30,6 +32,7 @@ }; [ + Exposed=Window, ActiveScriptWrappable, SecureContext ] interface MediaKeys {
diff --git a/third_party/blink/renderer/modules/eventsource/event_source.cc b/third_party/blink/renderer/modules/eventsource/event_source.cc index a7fe56a..631acfc 100644 --- a/third_party/blink/renderer/modules/eventsource/event_source.cc +++ b/third_party/blink/renderer/modules/eventsource/event_source.cc
@@ -114,7 +114,7 @@ DCHECK_EQ(kConnecting, state_); DCHECK(!loader_); - connect_timer_.StartOneShot(TimeDelta(), FROM_HERE); + connect_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void EventSource::Connect() { @@ -167,8 +167,8 @@ void EventSource::ScheduleReconnect() { state_ = kConnecting; - connect_timer_.StartOneShot(TimeDelta::FromMilliseconds(reconnect_delay_), - FROM_HERE); + connect_timer_.StartOneShot( + base::TimeDelta::FromMilliseconds(reconnect_delay_), FROM_HERE); DispatchEvent(*Event::Create(event_type_names::kError)); }
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad.cc b/third_party/blink/renderer/modules/gamepad/gamepad.cc index 8ff60de0..69bd71560 100644 --- a/third_party/blink/renderer/modules/gamepad/gamepad.cc +++ b/third_party/blink/renderer/modules/gamepad/gamepad.cc
@@ -35,8 +35,8 @@ Gamepad::Gamepad(Client* client, unsigned index, - TimeTicks time_origin, - TimeTicks time_floor) + base::TimeTicks time_origin, + base::TimeTicks time_floor) : client_(client), index_(index), timestamp_(0.0), @@ -189,8 +189,9 @@ // Convert the raw timestamp from the device to a relative one and apply the // floor. void Gamepad::SetTimestamp(const device::Gamepad& device_gamepad) { - TimeTicks last_updated = - TimeTicks() + TimeDelta::FromMicroseconds(device_gamepad.timestamp); + base::TimeTicks last_updated = + base::TimeTicks() + + base::TimeDelta::FromMicroseconds(device_gamepad.timestamp); if (last_updated < time_floor_) last_updated = time_floor_; @@ -198,7 +199,7 @@ time_origin_, last_updated, false); if (device_gamepad.is_xr) { - TimeTicks now = TimeTicks::Now(); + base::TimeTicks now = base::TimeTicks::Now(); TRACE_COUNTER1("input", "XR gamepad pose age (ms)", (now - last_updated).InMilliseconds()); }
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad.h b/third_party/blink/renderer/modules/gamepad/gamepad.h index 1a9e4c5..fa6db6f4 100644 --- a/third_party/blink/renderer/modules/gamepad/gamepad.h +++ b/third_party/blink/renderer/modules/gamepad/gamepad.h
@@ -53,8 +53,8 @@ Gamepad(Client* client, unsigned index, - TimeTicks time_origin, - TimeTicks time_floor); + base::TimeTicks time_origin, + base::TimeTicks time_floor); ~Gamepad() override; void UpdateFromDeviceState(const device::Gamepad&); @@ -150,10 +150,10 @@ bool is_button_data_dirty_; // Base time on which all relative timestamps are based. - const TimeTicks time_origin_; + const base::TimeTicks time_origin_; // Minimum value to use for timestamps from the device. - const TimeTicks time_floor_; + const base::TimeTicks time_floor_; }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc index 44363a1..0bceaae 100644 --- a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc +++ b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
@@ -45,10 +45,10 @@ } Gamepad* CreateGamepad() { - TimeTicks dummy_time_origin = - TimeTicks() + TimeDelta::FromMicroseconds(1000); - TimeTicks dummy_time_floor = - TimeTicks() + TimeDelta::FromMicroseconds(2000); + base::TimeTicks dummy_time_origin = + base::TimeTicks() + base::TimeDelta::FromMicroseconds(1000); + base::TimeTicks dummy_time_floor = + base::TimeTicks() + base::TimeDelta::FromMicroseconds(2000); return MakeGarbageCollected<Gamepad>(nullptr, 0, dummy_time_origin, dummy_time_floor); }
diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h index a40274f..8133c7e7 100644 --- a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h +++ b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.h
@@ -116,12 +116,12 @@ // The timestamp for the navigationStart attribute. Gamepad timestamps are // reported relative to this value. - TimeTicks navigation_start_; + base::TimeTicks navigation_start_; // The timestamp when gamepads were made available to the page. If no data has // been received from the hardware, the gamepad timestamp should be equal to // this value. - TimeTicks gamepads_start_; + base::TimeTicks gamepads_start_; // True if there is at least one listener for gamepad connection or // disconnection events.
diff --git a/third_party/blink/renderer/modules/geolocation/geo_notifier.cc b/third_party/blink/renderer/modules/geolocation/geo_notifier.cc index a7f2f6eb..442b09d 100644 --- a/third_party/blink/renderer/modules/geolocation/geo_notifier.cc +++ b/third_party/blink/renderer/modules/geolocation/geo_notifier.cc
@@ -55,12 +55,12 @@ fatal_error_ = error; // An existing timer may not have a zero timeout. timer_->Stop(); - timer_->StartOneShot(TimeDelta(), FROM_HERE); + timer_->StartOneShot(base::TimeDelta(), FROM_HERE); } void GeoNotifier::SetUseCachedPosition() { use_cached_position_ = true; - timer_->StartOneShot(TimeDelta(), FROM_HERE); + timer_->StartOneShot(base::TimeDelta(), FROM_HERE); } void GeoNotifier::RunSuccessCallback(Geoposition* position) { @@ -73,7 +73,7 @@ } void GeoNotifier::StartTimer() { - timer_->StartOneShot(TimeDelta::FromMilliseconds(options_->timeout()), + timer_->StartOneShot(base::TimeDelta::FromMilliseconds(options_->timeout()), FROM_HERE); } @@ -89,7 +89,7 @@ visitor->Trace(notifier_); } -void GeoNotifier::Timer::StartOneShot(TimeDelta interval, +void GeoNotifier::Timer::StartOneShot(base::TimeDelta interval, const base::Location& caller) { DCHECK(notifier_->geolocation_->DoesOwnNotifier(notifier_)); timer_.StartOneShot(interval, caller);
diff --git a/third_party/blink/renderer/modules/geolocation/geo_notifier.h b/third_party/blink/renderer/modules/geolocation/geo_notifier.h index a6a24e5..2da6954 100644 --- a/third_party/blink/renderer/modules/geolocation/geo_notifier.h +++ b/third_party/blink/renderer/modules/geolocation/geo_notifier.h
@@ -64,7 +64,7 @@ void Trace(blink::Visitor*); // TimerBase-compatible API - void StartOneShot(TimeDelta interval, const base::Location& caller); + void StartOneShot(base::TimeDelta interval, const base::Location& caller); void Stop(); bool IsActive() const { return timer_.IsActive(); }
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h index 74e0584..8071cf1 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
@@ -46,7 +46,7 @@ TaskHandle current_task_handle_; - base::Optional<WTF::TimeTicks> time_shown_; + base::Optional<base::TimeTicks> time_shown_; const base::TickClock* clock_; };
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc index 9073580..495cead 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.cc
@@ -176,7 +176,8 @@ } \ } while (false) -void RecordDragGestureDurationByWidth(int timeline_width, TimeDelta duration) { +void RecordDragGestureDurationByWidth(int timeline_width, + base::TimeDelta duration) { int32_t sample = base::saturated_cast<int32_t>(duration.InMilliseconds()); RECORD_TIMELINE_UMA_BY_WIDTH(timeline_width, DragGestureDuration, sample, CustomCountHistogram, 1 /* 1 ms */,
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h index aa405a91..1c0d4b60 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
@@ -67,7 +67,7 @@ State state_ = State::kInactive; // The following are only valid during a pointer gesture. - TimeTicks drag_start_time_ticks_; + base::TimeTicks drag_start_time_ticks_; float drag_delta_media_seconds_ = 0; float drag_sum_abs_delta_media_seconds_ = 0; };
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc index d518494..c5d14af0 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -129,15 +129,16 @@ const char kImmersiveModeCSSClass[] = "immersive-mode"; // The delay between two taps to be recognized as a double tap gesture. -constexpr WTF::TimeDelta kDoubleTapDelay = TimeDelta::FromMilliseconds(300); +constexpr base::TimeDelta kDoubleTapDelay = + base::TimeDelta::FromMilliseconds(300); // The time user have to hover on mute button to show volume slider. // If this value is changed, you need to change the corresponding value in // media_controls_impl_test.cc -constexpr WTF::TimeDelta kTimeToShowVolumeSlider = - TimeDelta::FromMilliseconds(200); -constexpr WTF::TimeDelta kTimeToShowVolumeSliderTest = - TimeDelta::FromMilliseconds(0); +constexpr base::TimeDelta kTimeToShowVolumeSlider = + base::TimeDelta::FromMilliseconds(200); +constexpr base::TimeDelta kTimeToShowVolumeSliderTest = + base::TimeDelta::FromMilliseconds(0); // The number of seconds to jump when double tapping. constexpr int kNumberOfSecondsToJump = 10; @@ -185,10 +186,11 @@ // If you change this value, then also update the corresponding value in // web_tests/media/media-controls.js. -constexpr TimeDelta kModernTimeWithoutMouseMovementBeforeHidingMediaControls = - TimeDelta::FromSecondsD(2.5); +constexpr base::TimeDelta + kModernTimeWithoutMouseMovementBeforeHidingMediaControls = + base::TimeDelta::FromSecondsD(2.5); -TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() { +base::TimeDelta GetTimeWithoutMouseMovementBeforeHidingMediaControls() { return kModernTimeWithoutMouseMovementBeforeHidingMediaControls; } @@ -1921,7 +1923,7 @@ // the element sizes can update from the CSS class change before we start // calculating. UpdateSizingCSSClass(); - element_size_changed_timer_.StartOneShot(TimeDelta(), FROM_HERE); + element_size_changed_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } }
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc index 1136784..b9a11484 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.cc
@@ -92,7 +92,7 @@ } // anonymous namespace -constexpr TimeDelta MediaControlsOrientationLockDelegate::kLockToAnyDelay; +constexpr base::TimeDelta MediaControlsOrientationLockDelegate::kLockToAnyDelay; MediaControlsOrientationLockDelegate::MediaControlsOrientationLockDelegate( HTMLVideoElement& video)
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h index 0e934a42..8ff625c 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h +++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate.h
@@ -121,8 +121,8 @@ // Delay before `MaybeLockToAnyIfDeviceOrientationMatchesVideo` changes lock. // Emprically, 200ms is too short, but 250ms avoids glitches. 500ms gives us // a 2x margin in case the device is running slow, without being noticeable. - MODULES_EXPORT static constexpr TimeDelta kLockToAnyDelay = - TimeDelta::FromMilliseconds(500); + MODULES_EXPORT static constexpr base::TimeDelta kLockToAnyDelay = + base::TimeDelta::FromMilliseconds(500); // Current state of the object. See comment at the top of the file for a // detailed description.
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc index bd5534ad..d54cc4c 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc
@@ -168,7 +168,7 @@ using DeviceOrientationType = MediaControlsOrientationLockDelegate::DeviceOrientationType; - static constexpr TimeDelta GetUnlockDelay() { + static constexpr base::TimeDelta GetUnlockDelay() { return MediaControlsOrientationLockDelegate::kLockToAnyDelay; } @@ -1418,7 +1418,8 @@ // delegate unlocks the screen orientation, so Android changes the screen // orientation back to portrait because it hasn't yet processed the device // orientation change to landscape. - constexpr TimeDelta kMinUnlockDelay = TimeDelta::FromMilliseconds(249); + constexpr base::TimeDelta kMinUnlockDelay = + base::TimeDelta::FromMilliseconds(249); static_assert(GetUnlockDelay() > kMinUnlockDelay, "GetUnlockDelay() should significantly exceed kMinUnlockDelay"); test::RunDelayedTasks(kMinUnlockDelay);
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc index 4c2c213..335a60d 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc +++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
@@ -14,7 +14,8 @@ namespace { // Amount of time that media controls are visible. -constexpr WTF::TimeDelta kTimeToHideControl = TimeDelta::FromMilliseconds(3000); +constexpr base::TimeDelta kTimeToHideControl = + base::TimeDelta::FromMilliseconds(3000); const char kTransparentCSSClass[] = "transparent"; const char kTransparentImmediateCSSClass[] = "transparent-immediate";
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h index 2f7395406..a9ead5d 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h +++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
@@ -76,7 +76,7 @@ VideoCaptureDeliverFrameCB new_frame_callback_; double capture_frame_rate_; - // TimeTicks on which the first captured VideoFrame is produced. + // base::TimeTicks on which the first captured VideoFrame is produced. base::TimeTicks start_capture_time_; // Target time for the next frame.
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc index eb1926b4..9db62d8 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc +++ b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.cc
@@ -17,7 +17,7 @@ double frame_rate, ExecutionContext* context) : OnRequestCanvasDrawListener(std::move(handler)), - frame_interval_(TimeDelta::FromSecondsD(1 / frame_rate)), + frame_interval_(base::TimeDelta::FromSecondsD(1 / frame_rate)), request_frame_timer_(context->GetTaskRunner(TaskType::kInternalMedia), this, &TimedCanvasDrawListener::RequestFrameTimerFired) {}
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h index bf10de4..58d2d6fa 100644 --- a/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h +++ b/third_party/blink/renderer/modules/mediacapturefromelement/timed_canvas_draw_listener.h
@@ -32,7 +32,7 @@ // Implementation of TimerFiredFunction. void RequestFrameTimerFired(TimerBase*); - TimeDelta frame_interval_; + base::TimeDelta frame_interval_; TaskRunnerTimer<TimedCanvasDrawListener> request_frame_timer_; };
diff --git a/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc b/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc index c1dc7ef..8ff2836 100644 --- a/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc +++ b/third_party/blink/renderer/modules/mediarecorder/audio_track_recorder_unittest.cc
@@ -145,7 +145,8 @@ first_params_.channels(), first_params_.sample_rate() * kMediaStreamAudioTrackBufferDurationMs / base::Time::kMillisecondsPerSecond)); - first_source_.OnMoreData(base::TimeDelta(), TimeTicks::Now(), 0, bus.get()); + first_source_.OnMoreData(base::TimeDelta(), base::TimeTicks::Now(), 0, + bus.get()); // Save the samples that we read into the first_source_cache_. std::unique_ptr<media::AudioBus> cache_bus( @@ -165,7 +166,7 @@ second_params_.channels(), second_params_.sample_rate() * kMediaStreamAudioTrackBufferDurationMs / base::Time::kMillisecondsPerSecond)); - second_source_.OnMoreData(base::TimeDelta(), TimeTicks::Now(), 0, + second_source_.OnMoreData(base::TimeDelta(), base::TimeTicks::Now(), 0, bus.get()); return bus; } @@ -173,11 +174,11 @@ MOCK_METHOD3(DoOnEncodedAudio, void(const media::AudioParameters& params, std::string encoded_data, - TimeTicks timestamp)); + base::TimeTicks timestamp)); void OnEncodedAudio(const media::AudioParameters& params, std::unique_ptr<std::string> encoded_data, - TimeTicks timestamp) { + base::TimeTicks timestamp) { EXPECT_TRUE(!encoded_data->empty()); if (codec_ == AudioTrackRecorder::CodecId::OPUS) { @@ -263,9 +264,12 @@ // TODO(ajose): consider adding WillOnce(SaveArg...) and inspecting, as done // in VTR unittests. http://crbug.com/548856 EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)).Times(1); - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); - for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)) .Times(1) @@ -273,14 +277,19 @@ .WillOnce(RunClosure3( WTF::BindRepeating(&AudioTrackRecorderTest::ResetDecoder, WTF::Unretained(this), second_params_))); - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); - for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } // If the amount of samples/10ms buffer is not an integer (e.g. 22050Hz) we // need an extra OnData() to account for the round-off error. - if (GetParam().sample_rate % 100) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + if (GetParam().sample_rate % 100) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } // Give ATR new audio parameters. audio_track_recorder_->OnSetFormat(second_params_); @@ -289,9 +298,12 @@ EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)) .Times(1) .WillOnce(RunClosure3(std::move(quit_closure))); - audio_track_recorder_->OnData(*GetSecondSourceAudioBus(), TimeTicks::Now()); - for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) - audio_track_recorder_->OnData(*GetSecondSourceAudioBus(), TimeTicks::Now()); + audio_track_recorder_->OnData(*GetSecondSourceAudioBus(), + base::TimeTicks::Now()); + for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) { + audio_track_recorder_->OnData(*GetSecondSourceAudioBus(), + base::TimeTicks::Now()); + } run_loop.Run(); testing::Mock::VerifyAndClearExpectations(this); @@ -311,9 +323,12 @@ EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)) .WillOnce(RunClosure3(std::move(quit_closure))); - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); - for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } run_loop.Run(); testing::Mock::VerifyAndClearExpectations(this); @@ -332,20 +347,28 @@ audio_track_recorder_->Pause(); EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)).Times(0); - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); - for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } audio_track_recorder_->Resume(); EXPECT_CALL(*this, DoOnEncodedAudio(_, _, _)) .Times(1) .WillOnce(RunClosure3(std::move(quit_closure))); - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); - for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + for (int i = 0; i < kRatioInputToOutputFrames - 1; ++i) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } - if (GetParam().sample_rate % 100) - audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), TimeTicks::Now()); + if (GetParam().sample_rate % 100) { + audio_track_recorder_->OnData(*GetFirstSourceAudioBus(), + base::TimeTicks::Now()); + } run_loop.Run(); testing::Mock::VerifyAndClearExpectations(this);
diff --git a/third_party/blink/renderer/modules/mediasession/media_metadata.cc b/third_party/blink/renderer/modules/mediasession/media_metadata.cc index fee4f43..2b99171 100644 --- a/third_party/blink/renderer/modules/mediasession/media_metadata.cc +++ b/third_party/blink/renderer/modules/mediasession/media_metadata.cc
@@ -93,7 +93,7 @@ void MediaMetadata::NotifySessionAsync() { if (!session_ || notify_session_timer_.IsActive()) return; - notify_session_timer_.StartOneShot(TimeDelta(), FROM_HERE); + notify_session_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void MediaMetadata::NotifySessionTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_device_info.idl b/third_party/blink/renderer/modules/mediastream/media_device_info.idl index a567ecb..a67cde9 100644 --- a/third_party/blink/renderer/modules/mediastream/media_device_info.idl +++ b/third_party/blink/renderer/modules/mediastream/media_device_info.idl
@@ -31,8 +31,10 @@ "videoinput" }; -[SecureContext] -interface MediaDeviceInfo { +[ + Exposed=Window, + SecureContext +] interface MediaDeviceInfo { readonly attribute DOMString deviceId; readonly attribute MediaDeviceKind kind; readonly attribute DOMString label;
diff --git a/third_party/blink/renderer/modules/mediastream/media_devices.idl b/third_party/blink/renderer/modules/mediastream/media_devices.idl index dee08d9..51d7f54 100644 --- a/third_party/blink/renderer/modules/mediastream/media_devices.idl +++ b/third_party/blink/renderer/modules/mediastream/media_devices.idl
@@ -7,6 +7,7 @@ // https://w3c.github.io/mediacapture-main/#mediadevices-interface-extensions [ + Exposed=Window, ActiveScriptWrappable, SecureContext ] interface MediaDevices : EventTarget {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream.cc b/third_party/blink/renderer/modules/mediastream/media_stream.cc index 7b8d778..375550e 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream.cc
@@ -479,7 +479,7 @@ scheduled_events_.push_back(event); if (!scheduled_event_timer_.IsActive()) - scheduled_event_timer_.StartOneShot(TimeDelta(), FROM_HERE); + scheduled_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void MediaStream::ScheduledEventTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream.idl b/third_party/blink/renderer/modules/mediastream/media_stream.idl index 03a3aaef..2650f43 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream.idl +++ b/third_party/blink/renderer/modules/mediastream/media_stream.idl
@@ -26,6 +26,7 @@ // https://w3c.github.io/mediacapture-main/#idl-def-mediastream [ + Exposed=Window, ActiveScriptWrappable, Constructor, Constructor(MediaStream stream),
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_event.idl b/third_party/blink/renderer/modules/mediastream/media_stream_event.idl index 80a1082..9f63d4f 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_event.idl +++ b/third_party/blink/renderer/modules/mediastream/media_stream_event.idl
@@ -27,6 +27,7 @@ // https://www.w3.org/TR/2015/WD-webrtc-20150210/#mediastreamevent [ + Exposed=Window, Constructor(DOMString type, optional MediaStreamEventInit eventInitDict) ] interface MediaStreamEvent : Event { readonly attribute MediaStream? stream;
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track.idl b/third_party/blink/renderer/modules/mediastream/media_stream_track.idl index 01bf192..8a1e2a4 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_track.idl +++ b/third_party/blink/renderer/modules/mediastream/media_stream_track.idl
@@ -31,6 +31,7 @@ }; [ + Exposed=Window, ActiveScriptWrappable ] interface MediaStreamTrack : EventTarget { readonly attribute DOMString kind;
diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b/third_party/blink/renderer/modules/netinfo/network_information.cc index f2b9ffc..fe023d9 100644 --- a/third_party/blink/renderer/modules/netinfo/network_information.cc +++ b/third_party/blink/renderer/modules/netinfo/network_information.cc
@@ -120,7 +120,7 @@ uint32_t NetworkInformation::rtt() { MaybeShowWebHoldbackConsoleMsg(); - base::Optional<TimeDelta> override_rtt = + base::Optional<base::TimeDelta> override_rtt = GetNetworkStateNotifier().GetWebHoldbackHttpRtt(); if (override_rtt) { return GetNetworkStateNotifier().RoundRtt(Host(), override_rtt.value()); @@ -162,8 +162,8 @@ WebConnectionType type, double downlink_max_mbps, WebEffectiveConnectionType effective_type, - const base::Optional<TimeDelta>& http_rtt, - const base::Optional<TimeDelta>& transport_rtt, + const base::Optional<base::TimeDelta>& http_rtt, + const base::Optional<base::TimeDelta>& transport_rtt, const base::Optional<double>& downlink_mbps, bool save_data) { DCHECK(GetExecutionContext()->IsContextThread()); @@ -281,7 +281,7 @@ : ContextLifecycleObserver(context), web_holdback_console_message_shown_(false), context_stopped_(false) { - base::Optional<TimeDelta> http_rtt; + base::Optional<base::TimeDelta> http_rtt; base::Optional<double> downlink_mbps; GetNetworkStateNotifier().GetMetricsWithWebHoldback(
diff --git a/third_party/blink/renderer/modules/netinfo/network_information.h b/third_party/blink/renderer/modules/netinfo/network_information.h index 22fe139..7fe15e5 100644 --- a/third_party/blink/renderer/modules/netinfo/network_information.h +++ b/third_party/blink/renderer/modules/netinfo/network_information.h
@@ -41,8 +41,8 @@ void ConnectionChange(WebConnectionType, double downlink_max_mbps, WebEffectiveConnectionType effective_type, - const base::Optional<TimeDelta>& http_rtt, - const base::Optional<TimeDelta>& transport_rtt, + const base::Optional<base::TimeDelta>& http_rtt, + const base::Optional<base::TimeDelta>& transport_rtt, const base::Optional<double>& downlink_mbps, bool save_data) override;
diff --git a/third_party/blink/renderer/modules/notifications/notification.cc b/third_party/blink/renderer/modules/notifications/notification.cc index 4467263..1806be1 100644 --- a/third_party/blink/renderer/modules/notifications/notification.cc +++ b/third_party/blink/renderer/modules/notifications/notification.cc
@@ -178,7 +178,7 @@ void Notification::SchedulePrepareShow() { DCHECK_EQ(state_, State::kLoading); - prepare_show_timer_.StartOneShot(TimeDelta(), FROM_HERE); + prepare_show_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void Notification::PrepareShow(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/notifications/notification_image_loader.cc b/third_party/blink/renderer/modules/notifications/notification_image_loader.cc index 6ef821ec..51be9df 100644 --- a/third_party/blink/renderer/modules/notifications/notification_image_loader.cc +++ b/third_party/blink/renderer/modules/notifications/notification_image_loader.cc
@@ -76,7 +76,7 @@ threadable_loader_ = MakeGarbageCollected<ThreadableLoader>( *context, this, resource_loader_options); threadable_loader_->SetTimeout( - TimeDelta::FromMilliseconds(kImageFetchTimeoutInMs)); + base::TimeDelta::FromMilliseconds(kImageFetchTimeoutInMs)); threadable_loader_->Start(resource_request); } @@ -183,7 +183,7 @@ double scale = std::min(static_cast<double>(max_width_px) / image.width(), static_cast<double>(max_height_px) / image.height()); - TimeTicks start_time = CurrentTimeTicks(); + base::TimeTicks start_time = CurrentTimeTicks(); // TODO(peter): Try using RESIZE_BETTER for large images. SkBitmap scaled_image = skia::ImageOperations::Resize( image, skia::ImageOperations::RESIZE_BEST,
diff --git a/third_party/blink/renderer/modules/notifications/notification_image_loader.h b/third_party/blink/renderer/modules/notifications/notification_image_loader.h index c975f2b..4d2117a 100644 --- a/third_party/blink/renderer/modules/notifications/notification_image_loader.h +++ b/third_party/blink/renderer/modules/notifications/notification_image_loader.h
@@ -74,7 +74,7 @@ Type type_; bool stopped_; - TimeTicks start_time_; + base::TimeTicks start_time_; scoped_refptr<SharedBuffer> data_; ImageCallback image_callback_; Member<ThreadableLoader> threadable_loader_;
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc index 639261c..8bb462e 100644 --- a/third_party/blink/renderer/modules/payments/payment_request.cc +++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -708,7 +708,7 @@ if (is_waiting_for_show_promise_to_resolve_) { // If the website does not calculate the final shopping cart contents within // 10 seconds, abort payment. - update_payment_details_timer_.StartOneShot(TimeDelta::FromSeconds(10), + update_payment_details_timer_.StartOneShot(base::TimeDelta::FromSeconds(10), FROM_HERE); details_promise.Then( UpdatePaymentDetailsFunction::CreateFunction( @@ -1261,7 +1261,7 @@ // If the website does not call complete() 60 seconds after show() has been // resolved, then behave as if the website called complete("fail"). - complete_timer_.StartOneShot(TimeDelta::FromSeconds(60), FROM_HERE); + complete_timer_.StartOneShot(base::TimeDelta::FromSeconds(60), FROM_HERE); if (retry_resolver_) { DCHECK(payment_response_); @@ -1507,7 +1507,7 @@ // If the website does not calculate the updated shopping cart contents // within 60 seconds, abort payment. - update_payment_details_timer_.StartOneShot(TimeDelta::FromSeconds(60), + update_payment_details_timer_.StartOneShot(base::TimeDelta::FromSeconds(60), FROM_HERE); event_target->DispatchEvent(*event);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc index 0744e26..c6c98b20 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel.cc
@@ -534,7 +534,7 @@ scheduled_events_.push_back(event); if (!scheduled_event_timer_.IsActive()) - scheduled_event_timer_.StartOneShot(TimeDelta(), FROM_HERE); + scheduled_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void RTCDataChannel::ScheduledEventTimerFired(TimerBase*) {
diff --git a/third_party/blink/renderer/modules/sensor/sensor.cc b/third_party/blink/renderer/modules/sensor/sensor.cc index 490a8763..57e0e57 100644 --- a/third_party/blink/renderer/modules/sensor/sensor.cc +++ b/third_party/blink/renderer/modules/sensor/sensor.cc
@@ -236,7 +236,7 @@ pending_reading_notification_ = PostDelayedCancellableTask( *GetExecutionContext()->GetTaskRunner(TaskType::kSensor), FROM_HERE, std::move(sensor_reading_changed), - WTF::TimeDelta::FromSecondsD(waitingTime)); + base::TimeDelta::FromSecondsD(waitingTime)); } }
diff --git a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc index 9485289..87c87c7 100644 --- a/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc +++ b/third_party/blink/renderer/modules/sensor/sensor_proxy_impl.cc
@@ -223,7 +223,7 @@ // TODO(crbug/721297) : We need to find out an algorithm for resulting // polling frequency. polling_timer_.StartRepeating( - WTF::TimeDelta::FromSecondsD(1 / active_frequencies_.back()), + base::TimeDelta::FromSecondsD(1 / active_frequencies_.back()), FROM_HERE); } else { polling_timer_.Stop();
diff --git a/third_party/blink/renderer/modules/service_worker/fetch_event.cc b/third_party/blink/renderer/modules/service_worker/fetch_event.cc index 3186de4..78d1139 100644 --- a/third_party/blink/renderer/modules/service_worker/fetch_event.cc +++ b/third_party/blink/renderer/modules/service_worker/fetch_event.cc
@@ -178,7 +178,7 @@ void FetchEvent::OnNavigationPreloadComplete( WorkerGlobalScope* worker_global_scope, - TimeTicks completion_time, + base::TimeTicks completion_time, int64_t encoded_data_length, int64_t encoded_body_length, int64_t decoded_body_length) {
diff --git a/third_party/blink/renderer/modules/service_worker/fetch_event.h b/third_party/blink/renderer/modules/service_worker/fetch_event.h index 083665e..e9b9dba 100644 --- a/third_party/blink/renderer/modules/service_worker/fetch_event.h +++ b/third_party/blink/renderer/modules/service_worker/fetch_event.h
@@ -78,7 +78,7 @@ void OnNavigationPreloadError(ScriptState*, std::unique_ptr<WebServiceWorkerError>); void OnNavigationPreloadComplete(WorkerGlobalScope*, - TimeTicks completion_time, + base::TimeTicks completion_time, int64_t encoded_data_length, int64_t encoded_body_length, int64_t decoded_body_length);
diff --git a/third_party/blink/renderer/modules/service_worker/respond_with_observer.h b/third_party/blink/renderer/modules/service_worker/respond_with_observer.h index 5be64dd..4b9f8af 100644 --- a/third_party/blink/renderer/modules/service_worker/respond_with_observer.h +++ b/third_party/blink/renderer/modules/service_worker/respond_with_observer.h
@@ -58,7 +58,7 @@ protected: RespondWithObserver(ExecutionContext*, int event_id, WaitUntilObserver*); const int event_id_; - TimeTicks event_dispatch_time_; + base::TimeTicks event_dispatch_time_; private: class ThenFunction;
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc index 1e600aac..c5b90724 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -671,7 +671,7 @@ void ServiceWorkerGlobalScope::OnNavigationPreloadComplete( int fetch_event_id, - TimeTicks completion_time, + base::TimeTicks completion_time, int64_t encoded_data_length, int64_t encoded_body_length, int64_t decoded_body_length) {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h index 9f92e64..4fd425c 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
@@ -156,7 +156,7 @@ void OnNavigationPreloadError(int fetch_event_id, std::unique_ptr<WebServiceWorkerError>); void OnNavigationPreloadComplete(int fetch_event_id, - TimeTicks completion_time, + base::TimeTicks completion_time, int64_t encoded_data_length, int64_t encoded_body_length, int64_t decoded_body_length);
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc index 952cc8f..89f3891 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
@@ -111,7 +111,7 @@ void ServiceWorkerGlobalScopeProxy::OnNavigationPreloadComplete( int fetch_event_id, - TimeTicks completion_time, + base::TimeTicks completion_time, int64_t encoded_data_length, int64_t encoded_body_length, int64_t decoded_body_length) {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h index 9d28da8..a8b2097 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
@@ -89,7 +89,7 @@ int fetch_event_id, std::unique_ptr<WebServiceWorkerError>) override; void OnNavigationPreloadComplete(int fetch_event_id, - TimeTicks completion_time, + base::TimeTicks completion_time, int64_t encoded_data_length, int64_t encoded_body_length, int64_t decoded_body_length) override;
diff --git a/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc b/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc index eb338c04..c49f421 100644 --- a/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc +++ b/third_party/blink/renderer/modules/service_worker/wait_until_observer.cc
@@ -29,10 +29,10 @@ const unsigned kWindowInteractionTimeout = 10; const unsigned kWindowInteractionTimeoutForTest = 1; -TimeDelta WindowInteractionTimeout() { - return TimeDelta::FromSeconds(WebTestSupport::IsRunningWebTest() - ? kWindowInteractionTimeoutForTest - : kWindowInteractionTimeout); +base::TimeDelta WindowInteractionTimeout() { + return base::TimeDelta::FromSeconds(WebTestSupport::IsRunningWebTest() + ? kWindowInteractionTimeoutForTest + : kWindowInteractionTimeout); } } // anonymous namespace
diff --git a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc index 8ef87ad..ae0b604dc 100644 --- a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc +++ b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
@@ -95,7 +95,7 @@ response.SetMimeType("text/javascript"); response.SetHttpStatusCode(404); client->DidReceiveResponse(response); - client->DidFinishLoading(TimeTicks(), 0, 0, 0, false, {}); + client->DidFinishLoading(base::TimeTicks(), 0, 0, 0, false, {}); return; } // Don't handle other requests intentionally to emulate ongoing load.
diff --git a/third_party/blink/renderer/modules/sms/sms.h b/third_party/blink/renderer/modules/sms/sms.h index 0ae9730b..84b708f 100644 --- a/third_party/blink/renderer/modules/sms/sms.h +++ b/third_party/blink/renderer/modules/sms/sms.h
@@ -7,7 +7,6 @@ #include "base/macros.h" #include "mojo/public/cpp/bindings/binding.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom-blink.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.cc b/third_party/blink/renderer/modules/sms/sms_receiver.cc index 62cee53..05f0015 100644 --- a/third_party/blink/renderer/modules/sms/sms_receiver.cc +++ b/third_party/blink/renderer/modules/sms/sms_receiver.cc
@@ -7,7 +7,7 @@ #include "third_party/blink/renderer/modules/sms/sms_receiver.h" #include "services/service_manager/public/cpp/interface_provider.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom-blink.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" @@ -66,26 +66,26 @@ &SMSReceiver::OnSMSReceiverConnectionError, WrapWeakPersistent(this))); } - service_->GetNextMessage( - base::TimeDelta::FromSeconds(timeout_seconds), - WTF::Bind(&SMSReceiver::OnGetNextMessage, WrapPersistent(this), - WrapPersistent(resolver))); + service_->Receive(base::TimeDelta::FromSeconds(timeout_seconds), + WTF::Bind(&SMSReceiver::OnReceive, WrapPersistent(this), + WrapPersistent(resolver))); return resolver->Promise(); } SMSReceiver::~SMSReceiver() = default; -void SMSReceiver::OnGetNextMessage(ScriptPromiseResolver* resolver, - mojom::blink::SmsMessagePtr sms) { +void SMSReceiver::OnReceive(ScriptPromiseResolver* resolver, + mojom::blink::SmsStatus status, + const WTF::String& sms) { requests_.erase(resolver); - if (sms->status == mojom::blink::SmsStatus::kTimeout) { + if (status == mojom::blink::SmsStatus::kTimeout) { resolver->Reject(MakeGarbageCollected<DOMException>( DOMExceptionCode::kTimeoutError, "SMSReceiver timed out.")); return; } - resolver->Resolve(MakeGarbageCollected<blink::SMS>(std::move(sms->content))); + resolver->Resolve(MakeGarbageCollected<blink::SMS>(sms)); } void SMSReceiver::OnSMSReceiverConnectionError() {
diff --git a/third_party/blink/renderer/modules/sms/sms_receiver.h b/third_party/blink/renderer/modules/sms/sms_receiver.h index dc8380d0..ad9a370 100644 --- a/third_party/blink/renderer/modules/sms/sms_receiver.h +++ b/third_party/blink/renderer/modules/sms/sms_receiver.h
@@ -6,7 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_SMS_SMS_RECEIVER_H_ #include "base/macros.h" -#include "third_party/blink/public/mojom/sms/sms_manager.mojom-blink.h" +#include "third_party/blink/public/mojom/sms/sms_receiver.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" @@ -34,12 +34,13 @@ private: HeapHashSet<Member<ScriptPromiseResolver>> requests_; - void OnGetNextMessage(ScriptPromiseResolver* resolver, - mojom::blink::SmsMessagePtr sms); + void OnReceive(ScriptPromiseResolver* resolver, + mojom::blink::SmsStatus status, + const WTF::String& sms); void OnSMSReceiverConnectionError(); - mojom::blink::SmsManagerPtr service_; + mojom::blink::SmsReceiverPtr service_; DISALLOW_COPY_AND_ASSIGN(SMSReceiver); };
diff --git a/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc b/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc index 15a3ff0..7b41a7f 100644 --- a/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc +++ b/third_party/blink/renderer/modules/speech/testing/platform_speech_synthesizer_mock.cc
@@ -120,7 +120,7 @@ // Give the fake speech job some time so that pause and other functions have // time to be called. - speaking_finished_timer_.StartOneShot(TimeDelta::FromMilliseconds(100), + speaking_finished_timer_.StartOneShot(base::TimeDelta::FromMilliseconds(100), FROM_HERE); } @@ -132,8 +132,8 @@ queued_utterances_.clear(); speaking_finished_timer_.Stop(); - speaking_error_occurred_timer_.StartOneShot(TimeDelta::FromMilliseconds(100), - FROM_HERE); + speaking_error_occurred_timer_.StartOneShot( + base::TimeDelta::FromMilliseconds(100), FROM_HERE); } void PlatformSpeechSynthesizerMock::Pause() {
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc index 7b4448c..ca05aba 100644 --- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc +++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
@@ -111,7 +111,7 @@ // it also starts the timer. This is not a problem as calling |startOneShot| // repeatedly will just update the time at which to run |doVibrate|, it will // not be called more than once. - timer_do_vibrate_.StartOneShot(TimeDelta(), FROM_HERE); + timer_do_vibrate_.StartOneShot(base::TimeDelta(), FROM_HERE); return true; } @@ -152,7 +152,7 @@ pattern_.EraseAt(0); } - timer_do_vibrate_.StartOneShot(TimeDelta::FromMilliseconds(interval), + timer_do_vibrate_.StartOneShot(base::TimeDelta::FromMilliseconds(interval), FROM_HERE); } @@ -175,7 +175,7 @@ // A new vibration pattern may have been set while the mojo call for // |cancel| was in flight, so kick the timer to let |doVibrate| process the // pattern. - timer_do_vibrate_.StartOneShot(TimeDelta(), FROM_HERE); + timer_do_vibrate_.StartOneShot(base::TimeDelta(), FROM_HERE); } void VibrationController::ContextDestroyed(ExecutionContext*) {
diff --git a/third_party/blink/renderer/modules/vr/vr_display.cc b/third_party/blink/renderer/modules/vr/vr_display.cc index de3c8dc2..43ecde1 100644 --- a/third_party/blink/renderer/modules/vr/vr_display.cc +++ b/third_party/blink/renderer/modules/vr/vr_display.cc
@@ -51,8 +51,8 @@ // Threshold for rejecting stored non-immersive poses as being too old. // If it's exceeded, defer non-immersive rAF callback execution until // a fresh pose is received. -constexpr WTF::TimeDelta kNonImmersivePoseAgeThreshold = - WTF::TimeDelta::FromMilliseconds(250); +constexpr base::TimeDelta kNonImmersivePoseAgeThreshold = + base::TimeDelta::FromMilliseconds(250); device::mojom::blink::XRFrameDataPtr CreateIdentityFrameData() { auto data = device::mojom::blink::XRFrameData::New(); @@ -80,17 +80,17 @@ void Invoke(double high_res_time_ms) override { if (Id() != vr_display_->PendingNonImmersiveVSyncId()) return; - TimeTicks monotonic_time; + base::TimeTicks monotonic_time; if (!vr_display_->GetDocument() || !vr_display_->GetDocument()->Loader()) { monotonic_time = WTF::CurrentTimeTicks(); } else { // Convert document-zero time back to monotonic time. - TimeTicks reference_monotonic_time = vr_display_->GetDocument() - ->Loader() - ->GetTiming() - .ReferenceMonotonicTime(); + base::TimeTicks reference_monotonic_time = vr_display_->GetDocument() + ->Loader() + ->GetTiming() + .ReferenceMonotonicTime(); monotonic_time = reference_monotonic_time + - TimeDelta::FromMillisecondsD(high_res_time_ms); + base::TimeDelta::FromMillisecondsD(high_res_time_ms); } vr_display_->OnNonImmersiveVSync(monotonic_time); } @@ -718,7 +718,7 @@ // Run window.rAF once manually so that applications get a chance to // schedule a VRDisplay.rAF in case they do so only while presenting. if (doc && !pending_vrdisplay_raf_ && !capabilities_->hasExternalDisplay()) { - TimeTicks timestamp = WTF::CurrentTimeTicks(); + base::TimeTicks timestamp = WTF::CurrentTimeTicks(); doc->GetTaskRunner(blink::TaskType::kInternalMedia) ->PostTask(FROM_HERE, WTF::Bind(&VRDisplay::ProcessScheduledWindowAnimations, @@ -987,7 +987,7 @@ event_type_names::kVrdisplaydeactivate, this, reason)); } -void VRDisplay::ProcessScheduledWindowAnimations(TimeTicks timestamp) { +void VRDisplay::ProcessScheduledWindowAnimations(base::TimeTicks timestamp) { TRACE_EVENT1("gpu", "VRDisplay::window.rAF", "frame", vr_frame_id_); auto* doc = navigator_vr_->GetDocument(); if (!doc) @@ -1016,7 +1016,7 @@ } } -void VRDisplay::ProcessScheduledAnimations(TimeTicks timestamp) { +void VRDisplay::ProcessScheduledAnimations(base::TimeTicks timestamp) { DVLOG(2) << __FUNCTION__; // Check if we still have a valid context, the animation controller // or document may have disappeared since we scheduled this. @@ -1126,19 +1126,20 @@ // Used kInternalMedia since 1) this is not spec-ed and 2) this is media // related then tasks should not be throttled or frozen in background tabs. doc->GetTaskRunner(blink::TaskType::kInternalMedia) - ->PostTask(FROM_HERE, WTF::Bind(&VRDisplay::ProcessScheduledAnimations, - WrapWeakPersistent(this), - TimeTicks() + frame_data->time_delta)); + ->PostTask(FROM_HERE, + WTF::Bind(&VRDisplay::ProcessScheduledAnimations, + WrapWeakPersistent(this), + base::TimeTicks() + frame_data->time_delta)); } -void VRDisplay::OnNonImmersiveVSync(TimeTicks timestamp) { +void VRDisplay::OnNonImmersiveVSync(base::TimeTicks timestamp) { DVLOG(2) << __FUNCTION__; pending_non_immersive_vsync_ = false; pending_non_immersive_vsync_id_ = -1; if (is_presenting_) return; vr_frame_id_ = -1; - WTF::TimeDelta pose_age = + base::TimeDelta pose_age = WTF::CurrentTimeTicks() - non_immersive_pose_received_time_; if (pose_age >= kNonImmersivePoseAgeThreshold && non_immersive_pose_request_time_ > non_immersive_pose_received_time_) {
diff --git a/third_party/blink/renderer/modules/vr/vr_display.h b/third_party/blink/renderer/modules/vr/vr_display.h index 26e3e70..f6bceee 100644 --- a/third_party/blink/renderer/modules/vr/vr_display.h +++ b/third_party/blink/renderer/modules/vr/vr_display.h
@@ -148,7 +148,7 @@ void FocusChanged(); - void OnNonImmersiveVSync(TimeTicks timestamp); + void OnNonImmersiveVSync(base::TimeTicks timestamp); int PendingNonImmersiveVSyncId() { return pending_non_immersive_vsync_id_; } void Trace(blink::Visitor*) override; @@ -193,8 +193,8 @@ bool FocusedOrPresenting(); ScriptedAnimationController& EnsureScriptedAnimationController(Document*); - void ProcessScheduledAnimations(TimeTicks timestamp); - void ProcessScheduledWindowAnimations(TimeTicks timestamp); + void ProcessScheduledAnimations(base::TimeTicks timestamp); + void ProcessScheduledWindowAnimations(base::TimeTicks timestamp); // Request delivery of a VSync event for either magic window mode or // presenting mode as applicable. May be called more than once per frame, it @@ -246,8 +246,8 @@ bool pending_non_immersive_vsync_ = false; int pending_non_immersive_vsync_id_ = -1; base::OnceClosure non_immersive_vsync_waiting_for_pose_; - WTF::TimeTicks non_immersive_pose_request_time_; - WTF::TimeTicks non_immersive_pose_received_time_; + base::TimeTicks non_immersive_pose_request_time_; + base::TimeTicks non_immersive_pose_received_time_; bool in_animation_frame_ = false; bool did_submit_this_frame_ = false; bool display_blurred_ = false;
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc index 04a20ad..cad20de 100644 --- a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc +++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.cc
@@ -125,13 +125,13 @@ } // SQLite measures time according to the Julian calendar. -WTF::Time SqliteEpoch() { +base::Time SqliteEpoch() { constexpr const double kMicroSecondsPerDay = 24 * 60 * 60 * 1000; // The ".5" is intentional -- days in the Julian calendar start at noon. // The offset is in the SQLite source code (os_unix.c) multiplied by 10. constexpr const double kUnixEpochAsJulianDay = 2440587.5; - return WTF::Time::FromJsTime(-kUnixEpochAsJulianDay * kMicroSecondsPerDay); + return base::Time::FromJsTime(-kUnixEpochAsJulianDay * kMicroSecondsPerDay); } } // namespace @@ -290,7 +290,7 @@ int SandboxedVfs::Sleep(int microseconds) { DCHECK_GE(microseconds, 0); - base::PlatformThread::Sleep(WTF::TimeDelta::FromMicroseconds(microseconds)); + base::PlatformThread::Sleep(base::TimeDelta::FromMicroseconds(microseconds)); return SQLITE_OK; } @@ -311,7 +311,7 @@ int SandboxedVfs::CurrentTimeInt64(sqlite3_int64* result_ms) { DCHECK(result_ms); - WTF::TimeDelta delta = WTF::Time::Now() - sqlite_epoch_; + base::TimeDelta delta = base::Time::Now() - sqlite_epoch_; *result_ms = delta.InMilliseconds(); return SQLITE_OK; }
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h index c30de109..a907f06 100644 --- a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h +++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
@@ -61,7 +61,7 @@ void RegisterVfs(); sqlite3_vfs sandboxed_vfs_; - const WTF::Time sqlite_epoch_; + const base::Time sqlite_epoch_; Platform* const platform_; base::File::Error last_error_; };
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc index 2bb26db..f557281 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -121,7 +121,8 @@ namespace { -constexpr TimeDelta kDurationBetweenRestoreAttempts = TimeDelta::FromSeconds(1); +constexpr base::TimeDelta kDurationBetweenRestoreAttempts = + base::TimeDelta::FromSeconds(1); const int kMaxGLErrorsAllowedToConsole = 256; Mutex& WebGLContextLimitMutex() { @@ -1550,7 +1551,7 @@ if (!hidden && isContextLost() && restore_allowed_ && auto_recovery_method_ == kAuto) { DCHECK(!restore_timer_.IsActive()); - restore_timer_.StartOneShot(TimeDelta(), FROM_HERE); + restore_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } } @@ -6627,7 +6628,7 @@ // Always defer the dispatch of the context lost event, to implement // the spec behavior of queueing a task. - dispatch_context_lost_event_timer_.StartOneShot(TimeDelta(), FROM_HERE); + dispatch_context_lost_event_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } void WebGLRenderingContextBase::HoldReferenceToDrawingBuffer(DrawingBuffer*) { @@ -6649,7 +6650,7 @@ } if (!restore_timer_.IsActive()) - restore_timer_.StartOneShot(TimeDelta(), FROM_HERE); + restore_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } uint32_t WebGLRenderingContextBase::NumberOfContextLosses() const { @@ -7821,7 +7822,7 @@ restore_allowed_ = event->defaultPrevented(); if (restore_allowed_ && !is_hidden_) { if (auto_recovery_method_ == kAuto) - restore_timer_.StartOneShot(TimeDelta(), FROM_HERE); + restore_timer_.StartOneShot(base::TimeDelta(), FROM_HERE); } }
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access.cc b/third_party/blink/renderer/modules/webmidi/midi_access.cc index 88c991b..3ae5764 100644 --- a/third_party/blink/renderer/modules/webmidi/midi_access.cc +++ b/third_party/blink/renderer/modules/webmidi/midi_access.cc
@@ -181,7 +181,7 @@ void MIDIAccess::DidReceiveMIDIData(unsigned port_index, const unsigned char* data, wtf_size_t length, - TimeTicks time_stamp) { + base::TimeTicks time_stamp) { DCHECK(IsMainThread()); if (port_index >= inputs_.size()) return; @@ -192,7 +192,7 @@ void MIDIAccess::SendMIDIData(unsigned port_index, const unsigned char* data, wtf_size_t length, - TimeTicks time_stamp) { + base::TimeTicks time_stamp) { DCHECK(!time_stamp.is_null()); if (!GetExecutionContext() || !data || !length || port_index >= outputs_.size())
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access.h b/third_party/blink/renderer/modules/webmidi/midi_access.h index bef84dfc..166a026 100644 --- a/third_party/blink/renderer/modules/webmidi/midi_access.h +++ b/third_party/blink/renderer/modules/webmidi/midi_access.h
@@ -120,14 +120,14 @@ void DidReceiveMIDIData(unsigned port_index, const unsigned char* data, wtf_size_t length, - TimeTicks time_stamp) override; + base::TimeTicks time_stamp) override; // |timeStampInMilliseconds| is in the same time coordinate system as // performance.now(). void SendMIDIData(unsigned port_index, const unsigned char* data, wtf_size_t length, - TimeTicks time_stamp); + base::TimeTicks time_stamp); // Eager finalization needed to promptly release m_accessor. Otherwise // its client back reference could end up being unsafely used during
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h index 5dfe38f..24f22af 100644 --- a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h +++ b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.h
@@ -82,7 +82,7 @@ void DidReceiveMIDIData(unsigned port_index, const unsigned char* data, wtf_size_t length, - TimeTicks time_stamp) override {} + base::TimeTicks time_stamp) override {} void Trace(Visitor*) override;
diff --git a/third_party/blink/renderer/modules/webmidi/midi_output.cc b/third_party/blink/renderer/modules/webmidi/midi_output.cc index 5612350..5274fa5 100644 --- a/third_party/blink/renderer/modules/webmidi/midi_output.cc +++ b/third_party/blink/renderer/modules/webmidi/midi_output.cc
@@ -79,7 +79,7 @@ DCHECK(performance); return base::TimeTicks() + - TimeDelta::FromSecondsD(performance->GetTimeOrigin()); + base::TimeDelta::FromSecondsD(performance->GetTimeOrigin()); } class MessageValidator {
diff --git a/third_party/blink/renderer/modules/xr/xr.h b/third_party/blink/renderer/modules/xr/xr.h index 986c90e..0f16c363 100644 --- a/third_party/blink/renderer/modules/xr/xr.h +++ b/third_party/blink/renderer/modules/xr/xr.h
@@ -73,7 +73,7 @@ void ExitPresent(); - TimeTicks NavigationStart() const { return navigation_start_; } + base::TimeTicks NavigationStart() const { return navigation_start_; } private: // These values are persisted to logs. Entries should not be renumbered and @@ -219,7 +219,7 @@ // Time at which navigation started. Used as the base for relative timestamps, // such as for Gamepad objects. - TimeTicks navigation_start_; + base::TimeTicks navigation_start_; }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc index b1740af..52d8810 100644 --- a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc +++ b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc
@@ -268,7 +268,7 @@ if (!doc) return; - base::TimeTicks monotonic_time_now = TimeTicks() + data->time_delta; + base::TimeTicks monotonic_time_now = base::TimeTicks() + data->time_delta; double high_res_now_ms = doc->Loader() ->GetTiming()
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source.cc b/third_party/blink/renderer/modules/xr/xr_input_source.cc index c0dd0f1..abdccb6 100644 --- a/third_party/blink/renderer/modules/xr/xr_input_source.cc +++ b/third_party/blink/renderer/modules/xr/xr_input_source.cc
@@ -38,7 +38,7 @@ XRInputSource::InternalState::InternalState( uint32_t source_id, device::mojom::XRTargetRayMode target_ray_mode, - TimeTicks base_timestamp) + base::TimeTicks base_timestamp) : source_id(source_id), target_ray_mode(target_ray_mode), base_timestamp(base_timestamp) {} @@ -187,7 +187,7 @@ // TODO(https://crbug.com/955104): Is the Gamepad object creation time the // correct time floor? gamepad_ = MakeGarbageCollected<Gamepad>(this, 0, state_.base_timestamp, - TimeTicks::Now()); + base::TimeTicks::Now()); } gamepad_->UpdateFromDeviceState(*gamepad);
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source.h b/third_party/blink/renderer/modules/xr/xr_input_source.h index 31b2ede..c498402 100644 --- a/third_party/blink/renderer/modules/xr/xr_input_source.h +++ b/third_party/blink/renderer/modules/xr/xr_input_source.h
@@ -96,11 +96,11 @@ device::mojom::XRHandedness handedness = device::mojom::XRHandedness::NONE; device::mojom::XRTargetRayMode target_ray_mode; bool emulated_position = false; - TimeTicks base_timestamp; + base::TimeTicks base_timestamp; InternalState(uint32_t source_id, device::mojom::XRTargetRayMode, - TimeTicks base_timestamp); + base::TimeTicks base_timestamp); InternalState(const InternalState& other); ~InternalState(); };
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn index 17ac390..aef3511 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1358,6 +1358,7 @@ "webrtc/track_observer.cc", "webrtc/webrtc_logging.cc", "webrtc/webrtc_video_frame_adapter.cc", + "webrtc/webrtc_video_utils.cc", "windows_keyboard_codes.h", ]
diff --git a/third_party/blink/renderer/platform/cursor.h b/third_party/blink/renderer/platform/cursor.h index 2d2cf05..4317df0 100644 --- a/third_party/blink/renderer/platform/cursor.h +++ b/third_party/blink/renderer/platform/cursor.h
@@ -44,7 +44,7 @@ public: Cursor() // This is an invalid Cursor and should never actually get used. - : type_(static_cast<ui::CursorType>(-1)) {} + : type_(ui::CursorType::kNull) {} Cursor(Image*, bool hot_spot_specified, const IntPoint& hot_spot);
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.cc b/third_party/blink/renderer/platform/graphics/canvas_resource.cc index 3248c5f..0278c81 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource.cc
@@ -796,7 +796,6 @@ // param is not atomic so the display may draw with incorrect params, but its // a good enough fix for now. resource->needs_gl_filter_reset_ = true; - resource->SetGLFilterIfNeeded(); auto weak_provider = resource->WeakProvider(); ReleaseFrameResources(std::move(weak_provider), std::move(resource), sync_token, is_lost); @@ -824,6 +823,8 @@ } scoped_refptr<StaticBitmapImage> CanvasResourceSharedImage::Bitmap() { + TRACE_EVENT0("blink", "CanvasResourceSharedImage::Bitmap"); + // The |release_callback| keeps a ref on this resource to ensure the backing // shared image is kept alive until the lifetime of the image. // Note that the code in CanvasResourceProvider::RecycleResource also uses the
diff --git a/content/renderer/media/webrtc/webrtc_video_utils.cc b/third_party/blink/renderer/platform/webrtc/webrtc_video_utils.cc similarity index 97% rename from content/renderer/media/webrtc/webrtc_video_utils.cc rename to third_party/blink/renderer/platform/webrtc/webrtc_video_utils.cc index 3b63e67..6ef97c2d 100644 --- a/content/renderer/media/webrtc/webrtc_video_utils.cc +++ b/third_party/blink/renderer/platform/webrtc/webrtc_video_utils.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/renderer/media/webrtc/webrtc_video_utils.h" +#include "third_party/blink/public/platform/modules/webrtc/webrtc_video_utils.h" -namespace content { +namespace blink { media::VideoRotation WebRtcToMediaVideoRotation( webrtc::VideoRotation rotation) { @@ -170,4 +170,4 @@ return media::VideoColorSpace(primaries, transfer, matrix, range); } -} // namespace content +} // namespace blink
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 851c6cf..cdceabc 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2803,7 +2803,7 @@ ####crbug.com/613672 [ Mac ] virtual/scroll_customization/fast/events/touch/gesture/touch-gesture-scroll-listbox.html [ Skip ] crbug.com/802067 [ Mac ] external/wpt/pointerlock/movementX_Y_basic.html [ Failure ] -crbug.com/802067 [ Mac ] external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html [ Failure ] +crbug.com/802067 [ Mac ] external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html [ Failure ] # Since there is no compositor thread when running tests then there is no main thread event queue. Hence the # logic for this test will be skipped when running Layout tests. @@ -3310,6 +3310,8 @@ crbug.com/968164 external/wpt/css/css-ui/webkit-appearance-menulist-button-001.html [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Mac10.12 ] external/wpt/html/semantics/embedded-content/media-elements/ready-states/autoplay-hidden.optional.html [ Timeout ] +crbug.com/626703 [ Mac10.12 ] external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cue-negative-timestamp-events.html [ Timeout ] crbug.com/626703 external/wpt/webvtt/rendering/cues-with-video/processing-model/bidi/start_alignment.html [ Failure ] crbug.com/626703 [ Retina ] external/wpt/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-top-left.html [ Timeout ] crbug.com/626703 external/wpt/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html [ Timeout ] @@ -6255,3 +6257,6 @@ crbug.com/976743 virtual/gpu-rasterization/images/color-profile-image.html [ Pass Failure ] crbug.com/976743 virtual/gpu-rasterization/images/color-profile-mask-image-svg.html [ Pass Failure ] crbug.com/976743 virtual/gpu-rasterization/images/ycbcr-with-cmyk-color-profile.html [ Pass Failure ] + +# Sheriff 2019-06-19 +crbug.com/959129 [ Linux ] virtual/threaded/http/tests/devtools/tracing/timeline-script-parse.js [ Pass Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json index 3615e8c1..be5080b 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -6535,36 +6535,6 @@ {} ] ], - "pointerevents/pointerlock/pointerevent_movementxy-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_movementxy-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html", - {} - ] - ], "pointerlock/movementX_Y_no-jumps-manual.html": [ [ "pointerlock/movementX_Y_no-jumps-manual.html", @@ -156977,9 +156947,6 @@ "html/semantics/forms/form-submission-0/form-echo.py": [ [] ], - "html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt": [ - [] - ], "html/semantics/forms/form-submission-0/getactionurl-expected.txt": [ [] ], @@ -166334,6 +166301,12 @@ "staticrange/idlharness-expected.txt": [ [] ], + "std-toast/META.yml": [ + [] + ], + "std-toast/resources/helpers.js": [ + [] + ], "storage/META.yml": [ [] ], @@ -261417,6 +261390,15 @@ } ] ], + "pointerevents/pointerlock/pointerevent_movementxy.html": [ + [ + "pointerevents/pointerlock/pointerevent_movementxy.html", + { + "testdriver": true, + "timeout": "long" + } + ] + ], "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html": [ [ "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html", @@ -261425,6 +261407,38 @@ } ] ], + "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html", + { + "testdriver": true + } + ] + ], + "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html", + { + "testdriver": true + } + ] + ], + "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html", + { + "testdriver": true + } + ] + ], + "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html", + { + "testdriver": true + } + ] + ], "pointerlock/constructor.html": [ [ "pointerlock/constructor.html", @@ -275945,6 +275959,44 @@ } ] ], + "std-toast/attributes.html": [ + [ + "std-toast/attributes.html", + {} + ] + ], + "std-toast/events-open.html": [ + [ + "std-toast/events-open.html", + {} + ] + ], + "std-toast/events-showhide.html": [ + [ + "std-toast/events-showhide.html", + {} + ] + ], + "std-toast/methods.html": [ + [ + "std-toast/methods.html", + {} + ] + ], + "std-toast/options.html": [ + [ + "std-toast/options.html", + { + "timeout": "long" + } + ] + ], + "std-toast/show-toast.html": [ + [ + "std-toast/show-toast.html", + {} + ] + ], "storage/estimate-indexeddb.https.any.js": [ [ "storage/estimate-indexeddb.https.any.html", @@ -427320,10 +427372,6 @@ "a7f0dc87efd2d3bf8798919649873cb81fc25ade", "support" ], - "html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt": [ - "dd7c7a3bdcf4a36967ece772c3204916edb2a258", - "support" - ], "html/semantics/forms/form-submission-0/form-submission-algorithm.html": [ "8f61cbc18c95133561e4dd8cbffd3cdb682420e4", "testharness" @@ -448497,7 +448545,7 @@ "support" ], "payment-request/rejects_if_not_active.https.html": [ - "3c7e85ba970f8c6f2d608f02dd2f60f911124da2", + "4ba760ac987746ad9b561377a6b1e4185f7e7331", "testharness" ], "payment-request/resources/page1.html": [ @@ -449064,29 +449112,29 @@ "a79327252277d3b27e416e885b27ff6cb0b0bf5d", "testharness" ], - "pointerevents/pointerlock/pointerevent_movementxy-manual.html": [ - "6d903c405e95bd140cc201b7191434fac57931c8", - "manual" + "pointerevents/pointerlock/pointerevent_movementxy.html": [ + "2d6147dae562af7efadacee9dfb44cc080005742", + "testharness" ], "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html": [ "bdad97df04b2ca67fc1f92e256c979c137a4c66a", "testharness" ], - "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [ - "8ac35f82856a38e887ec84ad67f5c374014905c5", - "manual" + "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html": [ + "3c768ef0574346a38a05b6153f7133c3adbb2be0", + "testharness" ], - "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [ - "d8dbeaae172dfd6314341c55ef1fa3b9945f60fc", - "manual" + "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html": [ + "98fec4e74f15984a31714d3b908c87b426aecc5c", + "testharness" ], - "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [ - "80c01d61c8f906364fea0497d32cbd44ad8fdd3f", - "manual" + "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [ + "b2251d660e7176627204e4d48dc591033501554e", + "testharness" ], - "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [ - "b2fadbfe05f7efcc674f2b4cac61a15a67560597", - "manual" + "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [ + "a6f238cbee127353fdab9982fe8a9a75d67b23f7", + "testharness" ], "pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [ "627af3b61cad74bb112558169b1e66f6a24b1129", @@ -465192,6 +465240,38 @@ "0d631ffbeb8d641f947b6d41fe1e1f5cf05556cd", "support" ], + "std-toast/META.yml": [ + "c54357a03f214572481fc08be473cc308d50097b", + "support" + ], + "std-toast/attributes.html": [ + "9bfc65c395cd37c07f7499a03e5cdfb6fe16c85e", + "testharness" + ], + "std-toast/events-open.html": [ + "5442b36d261d0fd91f62cd38396b173429754245", + "testharness" + ], + "std-toast/events-showhide.html": [ + "73f1df4ae55bba7ef493dc22adae67553576326a", + "testharness" + ], + "std-toast/methods.html": [ + "7ce0e5adb810294fcc99c4c3bbf696c2fffd0f39", + "testharness" + ], + "std-toast/options.html": [ + "bd091a128e6474a1d6b6ca4a061ff6f5bafe8595", + "testharness" + ], + "std-toast/resources/helpers.js": [ + "60068bb2089f957c26174e625b9e6424b59de494", + "support" + ], + "std-toast/show-toast.html": [ + "07331818df0926f44d5c829a0060e87f0c4d1384", + "testharness" + ], "storage/META.yml": [ "2aad1fb513710e839ad86c923bf208dae604d3d2", "support" @@ -473129,7 +473209,7 @@ "testharness" ], "trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [ - "4bb9569816d03cc37e97db55ea2db6a2d30a15cd", + "76a639a622799dcb9769ad4781104d17be8439bc", "testharness" ], "trusted-types/block-string-assignment-to-HTMLElement-generic.tentative-expected.txt": [
diff --git a/third_party/blink/web_tests/external/wpt/css/CSS2/floats/floats-saturated-position-crash.html b/third_party/blink/web_tests/external/wpt/css/CSS2/floats/floats-saturated-position-crash.html new file mode 100644 index 0000000..08a400df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/CSS2/floats/floats-saturated-position-crash.html
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<link rel="help" href="https://crbug.com/972904"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div style="margin-top:-100000000px;"> + <div style="margin-bottom:-100000000px; padding-top: 1px;"></div> + text <!-- "text" is placed at the highest possible location due to saturated margin top values. --> + <div style="float: left; width: 60px; height: 20px;"></div> + <div style="margin-top: 10px;"> + <div style="float: left; width: 10px;"></div> + <div style="float: left; width: 100px; height: 100px;"></div> + </div> +</div> + +<script> +test(() => { }, 'test passes if it does not crash'); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-crash-chrome-009.html b/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-crash-chrome-009.html new file mode 100644 index 0000000..23df49cf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/position-absolute-crash-chrome-009.html
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://crbug.com/974760"> +<meta name="assert" content="fixed children inside inline container do not crash"> +<style> +#container { + position: relative; + overflow: auto; + width: 200px; + height: 200px; +} +#inline-fixed-container { + filter:url(""); +} +#fixed-container { + position: fixed; +} +#target { + position: fixed; +} +</style> +<div id="container"> + <span id="inline-fixed-container"> + <div id="fixed-container"> + <div id="target"></div> + </div> + </span> +</div> +<script> +test(() => { + document.body.offsetTop; + document.querySelector("#target").appendChild( + document.createTextNode("foo")); + document.body.offsetTop; +}, 'this test passes if it does not crash'); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt index 0d8fb1a5..1fa19f3 100644 --- a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts. promise_test: Unhandled rejection with value: object "InvalidStateError: Already called show() once" +FAIL If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts. assert_throws: The iframe was navigated away, so showPromise must reject with AbortError function "function() { throw e }" threw object "InvalidStateError: Already called show() once" that is not a DOMException AbortError: property "code" is equal to 11, expected 20 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html index 3c7e85b..4ba760ac 100644 --- a/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html +++ b/third_party/blink/web_tests/external/wpt/payment-request/rejects_if_not_active.https.html
@@ -58,8 +58,8 @@ iframe, "/payment-request/resources/page1.html" ); - const showPromise = await test_driver.bless("show payment request", () => { - return request.show(); + const [showPromise] = await test_driver.bless("show payment request", () => { + return [request.show()]; }); // Navigate the iframe to a new location. Wait for the load event to fire. await new Promise(resolve => {
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html similarity index 74% rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html index 6d903c4..2d6147d 100644 --- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html +++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html
@@ -2,11 +2,14 @@ <html> <head> <title>Pointer Events properties tests</title> -<meta name="timeout" content="long"> + <meta name="timeout" content="long"> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-actions.js"></script> + <script src="/resources/testdriver-vendor.js"></script> <!-- Additional helper script for common checks across event types --> <script type="text/javascript" src="../pointerevent_support.js"></script> <style> @@ -45,8 +48,21 @@ lastScreenY = 0; } + function injectInput(pointerType) { + var pointerId = pointerType + "Pointer1"; + return new test_driver.Actions() + .addPointer(pointerId, pointerType) + .pointerMove(0, 0, {origin: box1}) + .pointerDown() + .pointerMove(20, 30, {origin: box1}) + .pointerMove(60, 40, {origin: box1}) + .pointerMove(0, 0, {origin: box2}) + .pointerUp() + .send(); + } + function run() { - var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ['mouse', 'touch']); + var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ALL_POINTERS); [document, document.getElementById('innerFrame').contentDocument].forEach(function(element) { on_event(element, 'pointermove', function (event) { @@ -73,14 +89,22 @@ startSummation = false; test_pointerEvent.done(); }); + + // Inject input + injectInput("mouse").then(function(){ + return injectInput("touch") + }).then(function() { + return injectInput("pen") + }) } + </script> </head> <body onload="run()"> <h1>Pointer Events movementX/Y attribute test</h1> <h2 id="pointerTypeDescription"></h2> <h4> - Test Description: This test checks the properties of pointer events that do not support hover. + Test Description: This test checks the movementX/Y properties of pointer events. <ol> <li>Press down on the black square.</li> <li>Move your pointer slowly along a straight line to the red square.</li>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html similarity index 67% rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html index 8ac35f8..c66584a 100644 --- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html +++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html
@@ -6,6 +6,9 @@ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-actions.js"></script> + <script src="/resources/testdriver-vendor.js"></script> <!-- Additional helper script for common checks across event types --> <script type="text/javascript" src="../pointerevent_support.js"></script> <script> @@ -24,15 +27,6 @@ on_event(div1, 'pointerdown', function(event) { div2.setPointerCapture(event.pointerId); }); - on_event(div1, 'pointermove', function(event) { - if (lost_capture) { - test_pointerEvent.step(function() { - assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1."); - assert_true(lost_capture, "Pointer capture was lost after got a pointer lock."); - }); - test_pointerEvent.done(); - } - }); on_event(document, 'contextmenu', function(event) { event.preventDefault(); }); @@ -51,6 +45,29 @@ on_event(document,"pointerlockerror", function() { assert_unreached("Pointer lock error"); }) + + injectInput().then(function(){ + test_pointerEvent.step(function(){ + assert_true(lost_capture, "Pointer capture was lost after got a pointer lock."); + assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1."); + }); + test_pointerEvent.done(); + }) + } + + // Inject mouse input + function injectInput() { + var actions = new test_driver.Actions(); + return actions.pointerMove(0, 0, {origin: div1}) + .pointerDown({button: actions.ButtonType.LEFT}) + .pointerMove(30, 30, {origin: div1}) + .pointerMove(30, 0, {origin: div1}) + .pointerDown({button: actions.ButtonType.RIGHT}) + .pointerMove(60, 30, {origin: div1}) + .pointerMove(20, 20, {origin: div1}) + .pointerUp({button: actions.ButtonType.RIGHT}) + .pointerUp({button: actions.ButtonType.LEFT}) + .send(); } </script> </head>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html similarity index 71% rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html index d8dbeaa..f3f61cf 100644 --- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html +++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html
@@ -6,6 +6,9 @@ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-actions.js"></script> + <script src="/resources/testdriver-vendor.js"></script> <!-- Additional helper script for common checks across event types --> <script type="text/javascript" src="../pointerevent_support.js"></script> <script> @@ -20,14 +23,14 @@ var test_pointerEvent = setup_pointerevent_test("no pointercapture while pointerlock", ['mouse']); var div1 = document.getElementById("div1"); var div2 = document.getElementById("div2"); - + on_event(div1, 'pointerdown', function(event) { div2.setPointerCapture(event.pointerId); div1.requestPointerLock(); }); on_event(div1, 'pointermove', function(event) { + mouse_move_count++ if (lock_change_count == 1) { - mouse_move_count++; if (mouse_move_count == 2) { try { div2.setPointerCapture(event.pointerId); @@ -44,14 +47,6 @@ mouse_move_count = 0; } - } else if (lock_change_count == 2) { - mouse_move_count++; - if (mouse_move_count == 2) { - test_pointerEvent.step(function() { - assert_equals(capture_count, 0, "There shouldn't be any capture events fired."); - }); - test_pointerEvent.done(); - } } }); on_event(div2, 'gotpointercapture', function(event) { @@ -69,6 +64,30 @@ assert_equals(document.pointerLockElement, null, "document.pointerLockElement should be null."); }); }); + + injectInput().then(function(){ + test_pointerEvent.step(function(){ + assert_equals(lock_change_count, 2, "Pointer is unlocked"); + assert_greater_than(mouse_move_count, 1, "More than 1 pointermove has been received after unlocked"); + assert_equals(capture_count, 0, "There shouldn't be any capture events fired."); + }); + test_pointerEvent.done(); + }) + } + // Inject mouse input + function injectInput() { + var actions = new test_driver.Actions(); + return actions.pointerMove(0, 0, {origin: div1}) + .pointerDown() + .pointerMove(30, 30, {origin: div1}) + .pointerMove(60, 30, {origin: div1}) + .pointerMove(30, 20, {origin: div1}) + .pointerMove(10, 50, {origin: div1}) + .pointerMove(40, 10, {origin: div1}) + .pointerMove(5, 30, {origin: div1}) + .pointerMove(-5, 15, {origin: div1}) + .pointerUp() + .send(); } </script> </head>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html similarity index 77% rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html index 80c01d6..b2251d6 100644 --- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html +++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
@@ -6,6 +6,9 @@ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-actions.js"></script> + <script src="/resources/testdriver-vendor.js"></script> <!-- Additional helper script for common checks across event types --> <script type="text/javascript" src="../pointerevent_support.js"></script> </head> @@ -58,9 +61,25 @@ }); } }); + on_event(target0, "click", function(event) { target0.requestPointerLock(); }); + + var x = innerframe.getBoundingClientRect().x + target1.getBoundingClientRect().x; + var y = innerframe.getBoundingClientRect().y + target1.getBoundingClientRect().y; + // Inject mouse input + new test_driver.Actions() + .pointerMove(5, 5, {origin: target0}) + .pointerDown() + .pointerUp() + .pointerMove(100, 300, {origin: target0}) + .pointerMove(x+10, y+10) + .pointerDown() + .pointerUp() + .pointerMove(5, 5, {origin: target0}) + .send(); + } </script>
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html similarity index 85% rename from third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html rename to third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html index b2fadbfe..a6f238cb 100644 --- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html +++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html
@@ -7,6 +7,9 @@ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-actions.js"></script> + <script src="/resources/testdriver-vendor.js"></script> <!-- Additional helper script for common checks across event types --> <script type="text/javascript" src="../pointerevent_support.js"></script> </head> @@ -14,7 +17,7 @@ <h2>PointerMove</h2> <h4>Test Description: This test checks if pointermove event are triggered by button state changes <ol> - <li>Lick on the black rectangle to lock the pointer </li> + <li>Click on the black rectangle to lock the pointer </li> <li>Press a button and hold it</li> <li>Press a second button</li> <li>Release the second button</li> @@ -86,6 +89,17 @@ on_event(target0, "contextmenu", function (event) { event.preventDefault(); }); + + // Inject mouse input + var actions = new test_driver.Actions(); + actions.pointerMove(0, 0, {origin: target0}) + .pointerDown({button: actions.ButtonType.LEFT}) + .pointerUp({button: actions.ButtonType.LEFT}) + .pointerDown({button: actions.ButtonType.LEFT}) + .pointerDown({button: actions.ButtonType.MIDDLE}) + .pointerUp({button: actions.ButtonType.MIDDLE}) + .pointerUp({button: actions.ButtonType.LEFT}) + .send(); } </script> <h1>Pointer Lock Pointer Events pointermove on button state changes Tests</h1>
diff --git a/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html b/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html index 4a6772f..b7e8fd5 100644 --- a/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html +++ b/third_party/blink/web_tests/external/wpt/sms/interceptor.https.html
@@ -12,7 +12,7 @@ 1) Include <script src="./sms_provider.js"></script> in your test. 2) Set expectations - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { // mock behavior }) 3) Call navigator.sms.receive() @@ -24,8 +24,8 @@ Here are the symbols that are exposed to tests that need to be implemented per engine: - - function getNextMessage(): the main/only function that can be mocked. - - function expect(): the main/only function that enables us to mock it + - function receive(): the main/only function that can be mocked. + - function expect(): the main/only function that enables us to mock it. - enum State {kSuccess, kTimeout}: allows you to mock success/failures. --> @@ -34,12 +34,10 @@ 'use strict'; promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello", }); }); @@ -49,20 +47,16 @@ }, 'Basic usage'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello1", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello1", }); }); - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello2", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello2", }); }); @@ -77,19 +71,15 @@ }, 'Handle multiple requests in different order.'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - status: Status.kTimeout - } + status: Status.kTimeout, }); }); - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "success", - status: Status.kSuccess - } + status: Status.kSuccess, + message: "success", }); }); @@ -109,11 +99,9 @@ }, 'Handle multiple requests with success and error.'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - status: Status.kTimeout, - } + status: Status.kTimeout, }); }); @@ -167,12 +155,10 @@ }, 'Should throw error with invalid timeout (NaN)'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello", }); });
diff --git a/third_party/blink/web_tests/external/wpt/sms/sms_provider.js b/third_party/blink/web_tests/external/wpt/sms/sms_provider.js index a475941..eaa31ebe 100644 --- a/third_party/blink/web_tests/external/wpt/sms/sms_provider.js +++ b/third_party/blink/web_tests/external/wpt/sms/sms_provider.js
@@ -5,7 +5,7 @@ '/gen/mojo/public/mojom/base/big_buffer.mojom-lite.js', '/gen/mojo/public/mojom/base/string16.mojom-lite.js', '/gen/mojo/public/mojom/base/time.mojom-lite.js', - '/gen/third_party/blink/public/mojom/sms/sms_manager.mojom-lite.js', + '/gen/third_party/blink/public/mojom/sms/sms_receiver.mojom-lite.js', ].forEach(path => { let script = document.createElement('script'); script.src = path; @@ -24,8 +24,8 @@ this.returnValues = {} } - getNextMessage(timeout) { - let call = this.returnValues.getNextMessage.shift(); + receive(timeout) { + let call = this.returnValues.receive.shift(); if (!call) { throw new Error("Unexpected call."); } @@ -39,7 +39,7 @@ } } -function getNextMessage(timeout, callback) { +function receive(timeout, callback) { throw new Error("expected to be overriden by tests"); } @@ -58,9 +58,9 @@ let provider = new SmsProvider(); let interceptor = new MojoInterfaceInterceptor( - blink.mojom.SmsManager.$interfaceName); + blink.mojom.SmsReceiver.$interfaceName); interceptor.oninterfacerequest = (e) => { - let impl = new blink.mojom.SmsManager(provider); + let impl = new blink.mojom.SmsReceiver(provider); impl.bindHandle(e.handle); }
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_movementxy-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_movementxy-manual-automation.js deleted file mode 100644 index 1ebba07..0000000 --- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_movementxy-manual-automation.js +++ /dev/null
@@ -1,7 +0,0 @@ -importAutomationScript('/pointerevents/pointerevent_common_input.js'); - -function inject_input() { - return smoothDrag('#box1', '#box2', 'mouse').then(function() { - return smoothDrag('#box1', '#box2', 'touch'); - }); -}
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual-automation.js deleted file mode 100644 index f522475..0000000 --- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual-automation.js +++ /dev/null
@@ -1,31 +0,0 @@ -importAutomationScript('/pointerevents/pointerevent_common_input.js'); - -function inject_input() { - const targetDocument = document; - const targetSelector = '#div1' - return new Promise(function(resolve, reject) { - if (window.chrome && chrome.gpuBenchmarking) { - scrollPageIfNeeded(targetSelector, targetDocument); - var target = targetDocument.querySelector(targetSelector); - var targetRect = target.getBoundingClientRect(); - var xPosition = targetRect.left + boundaryOffset; - var yPosition = targetRect.top + boundaryOffset; - const leftButton = 0; - const rightButton = 2; - - chrome.gpuBenchmarking.pointerActionSequence( [ - {source: 'mouse', - actions: [ - {name: 'pointerMove', x: xPosition, y: yPosition}, - {name: 'pointerDown', x: xPosition, y: yPosition, button: leftButton}, - {name: 'pointerMove', x: xPosition + 30, y: yPosition + 30}, - {name: 'pointerMove', x: xPosition + 30, y: yPosition}, - {name: 'pointerDown', x: xPosition + 30, y: yPosition, button: rightButton}, - {name: 'pointerMove', x: xPosition + 60, y: yPosition + 30}, - {name: 'pointerMove', x: xPosition + 30, y: yPosition + 20}, - ]}], resolve); - } else { - reject(); - } - }); -}
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual-automation.js deleted file mode 100644 index 94765a11..0000000 --- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual-automation.js +++ /dev/null
@@ -1,5 +0,0 @@ -importAutomationScript('/pointerevents/pointerevent_common_input.js'); - -function inject_input() { - return mouseRequestPointerLockAndCaptureInTarget('#div1'); -}
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual-automation.js deleted file mode 100644 index 1e17f64..0000000 --- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual-automation.js +++ /dev/null
@@ -1,16 +0,0 @@ -importAutomationScript('/pointerevents/pointerevent_common_input.js'); - -function inject_input() { - innerframe = document.getElementById("innerframe") - return mouseClickInTarget('#target0').then(function() { - return mouseMoveIntoTarget('#target0').then(function() { - return mouseMoveIntoTarget('#target1', innerframe).then(function() { - return mouseClickInTarget('#target1', innerframe).then(function() { - return mouseMoveIntoTarget('#target1', innerframe).then(function() { - return mouseMoveIntoTarget('#target0'); - }); - }); - }); - }); - }); -} \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual-automation.js b/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual-automation.js deleted file mode 100644 index cd42866e..0000000 --- a/third_party/blink/web_tests/external/wpt_automation/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual-automation.js +++ /dev/null
@@ -1,7 +0,0 @@ -importAutomationScript('/pointerevents/pointerevent_common_input.js'); - -function inject_input() { - return mouseClickInTarget('#target0').then(function() { - return mouseChordedButtonPress('#target0'); - }); -} \ No newline at end of file
diff --git a/third_party/blink/web_tests/fast/forms/validation-bubble-appearance-wrap.html b/third_party/blink/web_tests/fast/forms/validation-bubble-appearance-wrap.html new file mode 100644 index 0000000..550b930 --- /dev/null +++ b/third_party/blink/web_tests/fast/forms/validation-bubble-appearance-wrap.html
@@ -0,0 +1,6 @@ +<!DOCTYPE html> +<p>Check if text in a validation bubble is wrapped within the bubble.</p> +<input type="email" value="emailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddressemailaddress"> +<script> +document.querySelector('input').reportValidity(); +</script>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt index 07762c6..f604f8d 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors-expected.txt
@@ -23,4 +23,12 @@ id : <number> sessionId : <string> } +{ + error : { + code : -32602 + message : U2F only supports the "usb", "ble" and "nfc" transports + } + id : <number> + sessionId : <string> +}
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js index 182bf3e..1e47622 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/webauthn/webauthn-add-virtual-authenticator-errors.js
@@ -35,5 +35,15 @@ }); testRunner.log(transportError); + const u2fCableError = await dp.WebAuthn.addVirtualAuthenticator({ + options: { + protocol: "u2f", + transport: "cable", + hasResidentKey: false, + hasUserVerification: false, + }, + }); + testRunner.log(u2fCableError); + testRunner.completeTest(); })
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..9cc84b7d --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..7037d0a --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..b7e5fa4e8 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac-retina/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..eb409a8 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-expected.txt new file mode 100644 index 0000000..cfd42aa --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/external/wpt/pointerevents/pointerlock/pointerevent_movementxy-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL mouse pointerevent attributes assert_equals: movementX should be the delta between current event's and last event's screenX expected 20 but got 0 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..eb409a8 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..15417b5 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents-ref.html b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents-ref.html new file mode 100644 index 0000000..8394e99 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents-ref.html
@@ -0,0 +1,16 @@ +<!doctype HTML> +<html> +<meta charset="utf8"> +<title>Display Locking: iframe locking (reference)</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> + +<style> +div { + background: blue; +} +</style> + +<div>lorem ipsum</div> +<iframe id="frame" width=400 height=200 srcdoc=''></iframe> +<div>consectetur adipiscing elit</div>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents.html b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents.html new file mode 100644 index 0000000..8c805f7 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/display-lock/paint/locked-iframe-doesnt-paint-contents.html
@@ -0,0 +1,43 @@ +<!doctype HTML> +<html class="reftest-wait"> +<meta charset="utf8"> +<title>Display Locking: iframe locking</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> +<link rel="match" href="locked-iframe-doesnt-paint-contents-ref.html"> +<script src="/common/reftest-wait.js"></script> + +<style> +div { + background: blue; +} +iframe { + contain: style layout; +} +</style> + +<div>lorem ipsum</div> +<iframe id="frame" width=400 height=200 srcdoc=' + <style> + div { + background: lightgreen; + } + </style> + <div>dolor sit amet</div> +'></iframe> +<div>consectetur adipiscing elit</div> + +<script> +async function runTest() { + const container = document.getElementById("frame"); + await container.displayLock.acquire({ timeout: Infinity }); + takeScreenshot(); +} + +window.onload = () => { + requestAnimationFrame(() => { + requestAnimationFrame(runTest); + }); +}; +</script> +</html>
diff --git a/third_party/boringssl/BUILD.generated.gni b/third_party/boringssl/BUILD.generated.gni index b86201d..c07e0ec 100644 --- a/third_party/boringssl/BUILD.generated.gni +++ b/third_party/boringssl/BUILD.generated.gni
@@ -127,6 +127,7 @@ "src/crypto/fipsmodule/ec/internal.h", "src/crypto/fipsmodule/ec/p256-x86_64-table.h", "src/crypto/fipsmodule/ec/p256-x86_64.h", + "src/crypto/fipsmodule/fips_shared_support.c", "src/crypto/fipsmodule/is_fips.c", "src/crypto/fipsmodule/md5/internal.h", "src/crypto/fipsmodule/modes/internal.h",
diff --git a/third_party/boringssl/BUILD.generated_tests.gni b/third_party/boringssl/BUILD.generated_tests.gni index 8a9f0ca..2b07a8f 100644 --- a/third_party/boringssl/BUILD.generated_tests.gni +++ b/third_party/boringssl/BUILD.generated_tests.gni
@@ -162,6 +162,7 @@ "src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt", "src/third_party/wycheproof_testvectors/eddsa_test.txt", "src/third_party/wycheproof_testvectors/kw_test.txt", + "src/third_party/wycheproof_testvectors/kwp_test.txt", "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt", "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt", "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt",
diff --git a/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S index 3a57522..067575e 100644 --- a/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +++ b/third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
@@ -2823,15 +2823,22 @@ orq %r8,%r12 orq %r9,%r12 -.byte 0x3e - jnz .Ladd_proceedq .byte 102,73,15,126,208 .byte 102,73,15,126,217 - testq %r8,%r8 + orq %r8,%r12 +.byte 0x3e jnz .Ladd_proceedq + + + testq %r9,%r9 jz .Ladd_doubleq + + + + + .byte 102,72,15,126,199 pxor %xmm0,%xmm0 movdqu %xmm0,0(%rdi) @@ -3944,15 +3951,22 @@ orq %r8,%r12 orq %r9,%r12 -.byte 0x3e - jnz .Ladd_proceedx .byte 102,73,15,126,208 .byte 102,73,15,126,217 - testq %r8,%r8 + orq %r8,%r12 +.byte 0x3e jnz .Ladd_proceedx + + + testq %r9,%r9 jz .Ladd_doublex + + + + + .byte 102,72,15,126,199 pxor %xmm0,%xmm0 movdqu %xmm0,0(%rdi)
diff --git a/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S index 237c0a3..1f4a931 100644 --- a/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +++ b/third_party/boringssl/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S
@@ -2772,15 +2772,22 @@ orq %r8,%r12 orq %r9,%r12 -.byte 0x3e - jnz L$add_proceedq .byte 102,73,15,126,208 .byte 102,73,15,126,217 - testq %r8,%r8 + orq %r8,%r12 +.byte 0x3e jnz L$add_proceedq + + + testq %r9,%r9 jz L$add_doubleq + + + + + .byte 102,72,15,126,199 pxor %xmm0,%xmm0 movdqu %xmm0,0(%rdi) @@ -3875,15 +3882,22 @@ orq %r8,%r12 orq %r9,%r12 -.byte 0x3e - jnz L$add_proceedx .byte 102,73,15,126,208 .byte 102,73,15,126,217 - testq %r8,%r8 + orq %r8,%r12 +.byte 0x3e jnz L$add_proceedx + + + testq %r9,%r9 jz L$add_doublex + + + + + .byte 102,72,15,126,199 pxor %xmm0,%xmm0 movdqu %xmm0,0(%rdi)
diff --git a/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm b/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm index cdde93904..215f5d2 100644 --- a/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm +++ b/third_party/boringssl/win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm
@@ -2953,15 +2953,22 @@ or r12,r8 or r12,r9 -DB 0x3e - jnz NEAR $L$add_proceedq DB 102,73,15,126,208 DB 102,73,15,126,217 - test r8,r8 + or r12,r8 +DB 0x3e jnz NEAR $L$add_proceedq + + + test r9,r9 jz NEAR $L$add_doubleq + + + + + DB 102,72,15,126,199 pxor xmm0,xmm0 movdqu XMMWORD[rdi],xmm0 @@ -4087,15 +4094,22 @@ or r12,r8 or r12,r9 -DB 0x3e - jnz NEAR $L$add_proceedx DB 102,73,15,126,208 DB 102,73,15,126,217 - test r8,r8 + or r12,r8 +DB 0x3e jnz NEAR $L$add_proceedx + + + test r9,r9 jz NEAR $L$add_doublex + + + + + DB 102,72,15,126,199 pxor xmm0,xmm0 movdqu XMMWORD[rdi],xmm0
diff --git a/third_party/webxr_test_pages/webxr-samples/input-tracking.html b/third_party/webxr_test_pages/webxr-samples/input-tracking.html index 6b5d7fd7..c5ae265 100644 --- a/third_party/webxr_test_pages/webxr-samples/input-tracking.html +++ b/third_party/webxr_test_pages/webxr-samples/input-tracking.html
@@ -154,8 +154,13 @@ }, (e) => { if (!session.mode.startsWith('immersive')) { // If we're in inline mode, our underlying platform may not support - // the stationary reference space, but an identity space is guaranteed. - return session.requestReferenceSpace('viewer'); + // the local-floor reference space, but a viewer space is guaranteed. + return session.requestReferenceSpace('viewer').then((viewerRefSpace) => { + // Adjust the viewer space for an estimated user height. Otherwise, + // the poses queried with this space will originate from the floor. + let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0}); + return viewerRefSpace.getOffsetReferenceSpace(xform); + }); } else { throw e; }
diff --git a/third_party/webxr_test_pages/webxr-samples/positional-audio.html b/third_party/webxr_test_pages/webxr-samples/positional-audio.html index 6892dfe..2cd7fd1 100644 --- a/third_party/webxr_test_pages/webxr-samples/positional-audio.html +++ b/third_party/webxr_test_pages/webxr-samples/positional-audio.html
@@ -373,8 +373,13 @@ }, (e) => { if (!session.mode.startsWith('immersive')) { // If we're in inline mode, our underlying platform may not support - // the stationary reference space, but an identity space is guaranteed. - return session.requestReferenceSpace('viewer'); + // the local-floor reference space, but a viewer space is guaranteed. + return session.requestReferenceSpace('viewer').then((viewerRefSpace) => { + // Adjust the viewer space for an estimated user height. Otherwise, + // the poses queried with this space will originate from the floor. + let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0}); + return viewerRefSpace.getOffsetReferenceSpace(xform); + }); } else { throw e; }
diff --git a/third_party/webxr_test_pages/webxr-samples/teleportation.html b/third_party/webxr_test_pages/webxr-samples/teleportation.html index 2bf2b89..bf056d5 100644 --- a/third_party/webxr_test_pages/webxr-samples/teleportation.html +++ b/third_party/webxr_test_pages/webxr-samples/teleportation.html
@@ -83,14 +83,9 @@ let xrImmersiveRefSpaceOffset = null; let xrNonImmersiveRefSpaceBase = null; let xrNonImmersiveRefSpaceOffset = null; - let xrViewerSpace = null; + let xrViewerSpaces = {}; - // For inline sessions, use an estimated height of 1.5 meters. - let trackingSpaceOriginInWorldSpace = { - 'immersive-vr' : vec3.create(), - 'inline' : vec3.fromValues(0, 1.5, 0) - }; - + let trackingSpaceOriginInWorldSpace = vec3.create(); let trackingSpaceHeadingDegrees = 0; // around +Y axis, positive angles rotate left let floorSize = 10; let floorPosition = [0, -floorSize / 2 + 0.01, 0]; @@ -232,13 +227,19 @@ }); session.requestReferenceSpace('local-floor').then((refSpace) => { + console.log("created local-floor reference space for " + session.mode + " session"); return refSpace; }, (e) => { if (!session.mode.startsWith('immersive')) { // If we're in inline mode, our underlying platform may not support - // the stationary reference space, but a viewer space is guaranteed. - console.log("falling back to viewer reference space"); - return session.requestReferenceSpace('viewer'); + // the local-floor reference space, but a viewer space is guaranteed. + console.log("falling back to viewer reference space for " + session.mode + "session"); + return session.requestReferenceSpace('viewer').then((viewerRefSpace) => { + // Adjust the viewer space for an estimated user height. Otherwise, + // the poses queried with this space will originate from the floor. + let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0}); + return viewerRefSpace.getOffsetReferenceSpace(xform); + }); } else { throw e; } @@ -255,7 +256,7 @@ // origin, which does not change for the duration of the session. // This is used when updating the player position and/or orientation // in onSelect. - xrViewerSpace = viewerSpace; + xrViewerSpaces[session.mode] = viewerSpace; session.requestAnimationFrame(onXRFrame); }); }); @@ -281,7 +282,7 @@ let session = ev.frame.session; let refSpace = getRefSpace(session, true); - let headPose = ev.frame.getPose(xrViewerSpace, refSpace); + let headPose = ev.frame.getPose(xrViewerSpaces[session.mode], refSpace); if (!headPose) return; // Get the position offset in world space from the tracking space origin @@ -291,7 +292,7 @@ vec3.sub( playerOffsetInWorldSpaceOld, playerInWorldSpaceOld, - trackingSpaceOriginInWorldSpace[session.mode]); + trackingSpaceOriginInWorldSpace); // based on https://github.com/immersive-web/webxr/blob/master/input-explainer.md#targeting-ray-pose let inputSourcePose = ev.frame.getPose(ev.inputSource.targetRaySpace, refSpace); @@ -353,7 +354,7 @@ // Update tracking space origin so that origin + playerOffset == player location in world space vec3.sub( - trackingSpaceOriginInWorldSpace[session.mode], + trackingSpaceOriginInWorldSpace, playerInWorldSpaceNew, playerOffsetInWorldSpaceNew); @@ -364,7 +365,7 @@ // Compute the origin offset based on player position/orientation. quat.identity(invOrientation); quat.rotateY(invOrientation, invOrientation, -trackingSpaceHeadingDegrees * Math.PI / 180); - vec3.negate(invPosition, trackingSpaceOriginInWorldSpace[session.mode]); + vec3.negate(invPosition, trackingSpaceOriginInWorldSpace); vec3.transformQuat(invPosition, invPosition, invOrientation); let xform = new XRRigidTransform( {x: invPosition[0], y: invPosition[1], z: invPosition[2]}, @@ -376,7 +377,7 @@ let refSpace = getRefSpace(session, false).getOffsetReferenceSpace(xform); setRefSpace(session, refSpace, true); - console.log('teleport to', trackingSpaceOriginInWorldSpace[session.mode]); + console.log('teleport to', trackingSpaceOriginInWorldSpace); } function onEndSession(session) {
diff --git a/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html b/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html index 595c662..f609781 100644 --- a/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html +++ b/third_party/webxr_test_pages/webxr-samples/tests/permission-request.html
@@ -256,8 +256,13 @@ }, (e) => { if (!session.mode.startsWith('immersive')) { // If we're in inline mode, our underlying platform may not support - // the stationary reference space, but an identity space is guaranteed. - return session.requestReferenceSpace('viewer'); + // the local-floor reference space, but a viewer space is guaranteed. + return session.requestReferenceSpace('viewer').then((viewerRefSpace) => { + // Adjust the viewer space for an estimated user height. Otherwise, + // the poses queried with this space will originate from the floor. + let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0}); + return viewerRefSpace.getOffsetReferenceSpace(xform); + }); } else { throw e; }
diff --git a/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html b/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html index 696c581..8f49f61 100644 --- a/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html +++ b/third_party/webxr_test_pages/webxr-samples/tests/pointer-painter.html
@@ -58,6 +58,7 @@ import {Gltf2Node} from '../js/cottontail/src/nodes/gltf2.js'; import {QueryArgs} from '../js/cottontail/src/util/query-args.js'; import {FallbackHelper} from '../js/cottontail/src/util/fallback-helper.js'; + import {vec3} from '../js/cottontail/src/math/gl-matrix.js'; // If requested, initialize the WebXR polyfill if (QueryArgs.getBool('allowPolyfill', false)) { @@ -149,8 +150,13 @@ }, (e) => { if (!session.mode.startsWith('immersive')) { // If we're in inline mode, our underlying platform may not support - // the stationary reference space, but an identity space is guaranteed. - return session.requestReferenceSpace('viewer'); + // the local-floor reference space, but a viewer space is guaranteed. + return session.requestReferenceSpace('viewer').then((viewerRefSpace) => { + // Adjust the viewer space for an estimated user height. Otherwise, + // the poses queried with this space will originate from the floor. + let xform = new XRRigidTransform({x: 0, y: -1.5, z: 0}); + return viewerRefSpace.getOffsetReferenceSpace(xform); + }); } else { throw e; }
diff --git a/tools/chrome_proxy/webdriver/lofi.py b/tools/chrome_proxy/webdriver/lofi.py deleted file mode 100644 index 0d0570e..0000000 --- a/tools/chrome_proxy/webdriver/lofi.py +++ /dev/null
@@ -1,48 +0,0 @@ -# Copyright 2017 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 common -from common import TestDriver -from common import IntegrationTest -from decorators import ChromeVersionEqualOrAfterM - -class LoFi(IntegrationTest): - - @ChromeVersionEqualOrAfterM(75) - def testServerLoFiWithForcingFlag(self): - with TestDriver() as test_driver: - test_driver.AddChromeArg('--enable-spdy-proxy-auth') - test_driver.EnableChromeFeature('Previews') - test_driver.EnableChromeFeature('DataReductionProxyDecidesTransform') - test_driver.AddChromeArg('--force-effective-connection-type=Slow-2G') - test_driver.SetExperiment('force_page_policies_empty_image') - - test_driver.LoadURL('http://check.googlezip.net/static/index.html') - - responses = test_driver.GetHTTPResponses() - self.assertNotEqual(len(responses), 0) - for response in responses: - if response.url.endswith('html'): - self.assertIn('empty-image', - response.response_headers['chrome-proxy']) - - @ChromeVersionEqualOrAfterM(74) - def testNoServerLoFiByDefault(self): - with TestDriver() as test_driver: - test_driver.AddChromeArg('--enable-spdy-proxy-auth') - test_driver.EnableChromeFeature('Previews') - test_driver.EnableChromeFeature('DataReductionProxyDecidesTransform') - test_driver.AddChromeArg('--force-effective-connection-type=Slow-2G') - - test_driver.LoadURL('http://check.googlezip.net/static/index.html') - - responses = test_driver.GetHTTPResponses() - self.assertNotEqual(len(responses), 0) - for response in responses: - if response.url.endswith('html'): - self.assertNotIn('empty-image', - response.response_headers['chrome-proxy']) - -if __name__ == '__main__': - IntegrationTest.RunAllTests()
diff --git a/tools/chrome_proxy/webdriver/subresource_redirect.py b/tools/chrome_proxy/webdriver/subresource_redirect.py index 9051184..4fe16307 100644 --- a/tools/chrome_proxy/webdriver/subresource_redirect.py +++ b/tools/chrome_proxy/webdriver/subresource_redirect.py
@@ -12,6 +12,8 @@ class SubresourceRedirect(IntegrationTest): + # Verifies that image subresources on a page have been returned + # from the compression server. @ChromeVersionEqualOrAfterM(77) def testCompressImage(self): with TestDriver() as test_driver: @@ -31,8 +33,36 @@ self.assertEqual(5, image_responses) - # TODO(harrisonsean): Add compression server bypass test + # Verifies that when the image compression server serves a + # redirect, then Chrome fetches the image directly. + @ChromeVersionEqualOrAfterM(77) + def testOnRedirectImage(self): + with TestDriver() as test_driver: + test_driver.AddChromeArg('--enable-subresource-redirect') + # Image compression server returns a 307 for all images on this webpage. + test_driver.LoadURL( + 'https://testsafebrowsing.appspot.com/s/image_small.html') + server_bypass = 0 + image_responses = 0 + + for response in test_driver.GetHTTPResponses(): + content_type = '' + if 'content-type' in response.response_headers: + content_type = response.response_headers['content-type'] + if ('image/' in content_type + and re.match(LITEPAGES_REGEXP, response.url) + and 200 == response.status): + image_responses += 1 + if ('https://testsafebrowsing.appspot.com/s/bad_assets/small.png' + == response.url and 200 == response.status): + server_bypass += 1 + + self.assertEqual(1, server_bypass) + self.assertEqual(0, image_responses) + + # Verifies that non-image subresources aren't redirected to the + # compression server. @ChromeVersionEqualOrAfterM(77) def testNoCompressNonImage(self): with TestDriver() as test_driver: @@ -52,6 +82,8 @@ self.assertEqual(0, image_responses) + # Verifies that non-secure connections aren't redirected to the + # compression server. @ChromeVersionEqualOrAfterM(77) def testNoCompressNonHTTPS(self): with TestDriver() as test_driver:
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index 8d2d58a..0a42f6e 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -371,13 +371,10 @@ 'Android FYI Release (NVIDIA Shield TV)': 'gpu_tests_android_release_trybot_arm64', 'Android FYI Release (Pixel 2)': 'gpu_tests_android_release_trybot', 'Android FYI 32 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot', - 'Android FYI 32 Vk Release (Pixel XL)': 'gpu_tests_android_vulkan_release_trybot', 'Android FYI 64 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot_arm64', - 'Android FYI 64 Vk Release (Pixel XL)': 'gpu_tests_android_vulkan_release_trybot_arm64', 'Android FYI 32 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot', - 'Android FYI 32 dEQP Vk Release (Pixel XL)': 'deqp_android_vulkan_release_trybot', 'Android FYI 64 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot_arm64', - 'Android FYI 64 dEQP Vk Release (Pixel XL)': 'deqp_android_vulkan_release_trybot_arm64', + 'Android FYI SkiaRenderer Vulkan (Pixel 2)': 'gpu_tests_android_release_trybot', 'GPU FYI Linux Builder': 'gpu_fyi_tests_release_trybot', 'GPU FYI Linux Ozone Builder': 'gpu_fyi_tests_ozone_linux_system_gbm_libdrm_release_trybot', 'GPU FYI Linux Builder (dbg)': 'gpu_fyi_tests_debug_trybot', @@ -652,10 +649,6 @@ 'gpu-fyi-try-android-p-pixel-2-32-deqp-vk': 'deqp_android_vulkan_release_trybot', 'gpu-fyi-try-android-p-pixel-2-64-vk': 'gpu_tests_android_vulkan_release_trybot_arm64', 'gpu-fyi-try-android-p-pixel-2-64-deqp-vk': 'deqp_android_vulkan_release_trybot_arm64', - 'gpu-fyi-try-android-p-pixel-xl-32-vk': 'gpu_tests_android_vulkan_release_trybot', - 'gpu-fyi-try-android-p-pixel-xl-32-deqp-vk': 'deqp_android_vulkan_release_trybot', - 'gpu-fyi-try-android-p-pixel-xl-64-vk': 'gpu_tests_android_vulkan_release_trybot_arm64', - 'gpu-fyi-try-android-p-pixel-xl-64-deqp-vk': 'deqp_android_vulkan_release_trybot_arm64', 'linux_android_dbg_ng': 'android_debug_trybot', 'try-nougat-phone-tester': 'android_debug_trybot_arm64', }, @@ -750,7 +743,6 @@ 'linux_chromium_compile_dbg_32_ng': 'debug_trybot_x86', 'linux_chromium_compile_dbg_ng': 'debug_trybot', 'linux_chromium_compile_rel_ng': 'release_trybot', - 'linux_chromium_dbg_32_ng': 'gpu_tests_debug_trybot_x86', 'linux_chromium_dbg_ng': 'gpu_tests_debug_trybot', # This is intentionally a release_bot and not a release_trybot;
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index fd88da4c..b999799f 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -4645,8 +4645,13 @@ </action> <action name="CreateHostedApp"> - <owner>Please list the metric's owners. Add more owner tags as needed.</owner> - <description>Please enter the description of this user action.</description> + <obsolete> + Deprecated as of 06/2019 (replaced by InstallWebAppFromMenu and + CreateShortcut). + </obsolete> + <owner>alancutter@chromium.org</owner> + <owner>raymes@chromium.org</owner> + <description>The sum of CreateShortcut and InstallWebAppFromMenu</description> </action> <action name="CreateLink"> @@ -4660,9 +4665,12 @@ </action> <action name="CreateShortcut"> - <obsolete>Deprecated as of 04/2017 (replaced by CreateHostedApp).</obsolete> - <owner>Please list the metric's owners. Add more owner tags as needed.</owner> - <description>Please enter the description of this user action.</description> + <owner>alancutter@chromium.org</owner> + <owner>raymes@chromium.org</owner> + <description> + Shortcut app creation triggered via "Menu > More Tools > Create + Shortcut..." + </description> </action> <action name="CredentialManager_AccountChooser_Accepted"> @@ -7713,6 +7721,14 @@ <description>Please enter the description of this user action.</description> </action> +<action name="InstallWebAppFromMenu"> + <owner>alancutter@chromium.org</owner> + <owner>raymes@chromium.org</owner> + <description> + PWA install triggered via "Menu > Install App name..." + </description> +</action> + <action name="InstantExtended.MostVisitedClicked"> <obsolete>Deprecated as of 2/2016</obsolete> <owner>Please list the metric's owners. Add more owner tags as needed.</owner> @@ -11528,6 +11544,16 @@ </description> </action> +<action name="MobileExitStackView"> + <owner>yusufo@chromium.org</owner> + <owner>wychen@chromium.org</owner> + <description> + User exited the Android tab switcher due to one of the listed actions, + opened a new normal/incognito tab, selected an existed tab, or pressed + system back button. + </description> +</action> + <action name="MobileExternalNavigationDispatched"> <owner>thildebr@chromium.org</owner> <description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index a04a8324..eebe868 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -6241,6 +6241,11 @@ <int value="1" label="Present"/> </enum> +<enum name="BooleanProcessReuseDisallowed"> + <int value="0" label="Process reuse allowed"/> + <int value="1" label="Process reuse disallowed"/> +</enum> + <enum name="BooleanProfileSignedIn"> <int value="0" label="Profile was not Signed In"/> <int value="1" label="Profile was Signed In"/> @@ -27820,6 +27825,11 @@ <int value="67" label="User Disabled WIN10_RS5"/> <int value="68" label="Fallback to Software WIN10_RS5"/> <int value="69" label="Status Unknown WIN10_RS5"/> + <int value="70" label="Enabled WIN10_19H1"/> + <int value="71" label="Blacklisted WIN10_19H1"/> + <int value="72" label="User Disabled WIN10_19H1"/> + <int value="73" label="Fallback to Software WIN10_19H1"/> + <int value="74" label="Status Unknown WIN10_19H1"/> </enum> <enum name="GPUBlacklistTestResultPerEntry"> @@ -61501,6 +61511,7 @@ <int value="11" label="Windows 10 RS3"/> <int value="12" label="Windows 10 RS4"/> <int value="13" label="Windows 10 RS5"/> + <int value="14" label="Windows 10 19H1"/> </enum> <enum name="WindowType">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 2d36823..65ffe90 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -2387,9 +2387,9 @@ </histogram> <histogram name="Android.Language.WrongLanguageAfterResume" enum="Boolean" - expires_after="2019-08-01"> + expires_after="2020-01-01"> <owner>tiborg@chromium.org</owner> - <owner>digit@chromium.org</owner> + <owner>heamy@chromium.org</owner> <summary> Reports whether Chrome was started in a language other than the system language but we support the system language. That can happen if the user @@ -15297,6 +15297,9 @@ </histogram> <histogram name="Bookmarks.LaunchDepth" expires_after="M77"> + <obsolete> + Deprecated as of 6/2019. This histogram is no longer necessary. + </obsolete> <owner>yfriedman@chromium.org</owner> <summary> Logs the depth of the bookmark in the bookmark tree hierarchy every time a @@ -29225,7 +29228,9 @@ </histogram> <histogram name="Download.ContentType.Image" enum="DownloadImageType" - expires_after="M77"> + expires_after="never"> +<!-- expires-never: Monitors download system health. --> + <owner>dtrainor@chromium.org</owner> <summary>Types of images that are downloaded.</summary> </histogram> @@ -29236,7 +29241,9 @@ </histogram> <histogram name="Download.ContentType.Video" enum="DownloadVideoType" - expires_after="M77"> + expires_after="never"> +<!-- expires-never: Monitors download system health. --> + <owner>xingliu@chromium.org</owner> <summary>Types of video files that are downloaded.</summary> </histogram> @@ -44837,7 +44844,10 @@ </histogram> <histogram name="GPU.BlockStatusForClient3DAPIs" - enum="BlockStatusForClient3DAPIs" expires_after="M77"> + enum="BlockStatusForClient3DAPIs"> + <obsolete> + Removed in M77. + </obsolete> <owner>kbr@chromium.org</owner> <summary> Indicates whether WebGL / Pepper3D were blocked, and if so, for all domains, @@ -59311,6 +59321,9 @@ <histogram name="Memory.Experimental.CompressedPagesPerSecond" units="pages/s" expires_after="M77"> + <obsolete> + Deprecated June 2019. + </obsolete> <owner>bashi@chromium.org</owner> <summary> The number of pages compressed per second. Recorded every 60 seconds. Only @@ -59359,6 +59372,9 @@ <histogram name="Memory.Experimental.DecompressedPagesPerSecond" units="pages/s" expires_after="M77"> + <obsolete> + Deprecated June 2019. + </obsolete> <owner>bashi@chromium.org</owner> <summary> The number of pages decompressed per second. Recorded every 60 seconds. Only @@ -59960,6 +59976,9 @@ <histogram name="Memory.Experimental.SwapInPerSecond" units="swaps/s" expires_after="M77"> + <obsolete> + Deprecated June 2019. + </obsolete> <owner>bashi@chromium.org</owner> <summary> The number of swap-ins per second. Recorded every 60 seconds. @@ -59967,6 +59986,9 @@ </histogram> <histogram name="Memory.Experimental.SwapOutPerSecond" units="swaps/s"> + <obsolete> + Deprecated June 2019. + </obsolete> <owner>bashi@chromium.org</owner> <summary> The number of swap-outs per second. Recorded every 60 seconds. @@ -62320,7 +62342,7 @@ </histogram> <histogram name="MobileDownload.Location.Dialog.Type" - enum="DownloadLocationDialogType" expires_after="M77"> + enum="DownloadLocationDialogType"> <owner>xingliu@chromium.org</owner> <summary> Records the download location dialog type when the dialog is shown to the @@ -62329,7 +62351,7 @@ </histogram> <histogram name="MobileDownload.Location.DirectoryType" - enum="DownloadLocationDirectoryType" expires_after="2019-09-24"> + enum="DownloadLocationDirectoryType"> <owner>dtrainor@chromium.org</owner> <owner>qinmin@chromium.org</owner> <owner>xingliu@chromium.org</owner> @@ -62347,7 +62369,7 @@ </histogram> <histogram name="MobileDownload.Location.Setting.DirectoryType" - enum="DownloadLocationDirectoryType" expires_after="M77"> + enum="DownloadLocationDirectoryType"> <owner>xingliu@chromium.org</owner> <summary> Records the directory type when the user selects the download directory @@ -88138,6 +88160,9 @@ <histogram name="PageLoad.Clients.MultiTabLoading.NumTabsWithInflightLoad" units="tabs" expires_after="M77"> + <obsolete> + Removed June 2019. + </obsolete> <owner>ksakamoto@chromium.org</owner> <summary> Records the number of tabs with inflight loading activities. Recorded when a @@ -93556,6 +93581,9 @@ </histogram> <histogram name="PDF.IsFontSubstituted" enum="Boolean" expires_after="M77"> + <obsolete> + Removed in June 2019. + </obsolete> <owner>npm@chromium.org</owner> <summary> Measures if PDFs opened in the PDF viewer require fonts to be substituted. @@ -101444,6 +101472,17 @@ </summary> </histogram> +<histogram name="Previews.ServerLitePage.PreresolvedToPreviewServer" + enum="Boolean" expires_after="M80"> + <owner>robertogden@chromium.org</owner> + <owner>tbansal@chromium.org</owner> + <summary> + Recorded whenever lite page preview preresolver preresolves a URL. True is + recorded when the URL that is preresolved is for the lite pages previews + server, False is when the origin is preresolved. + </summary> +</histogram> + <histogram name="Previews.ServerLitePage.ReportedNavigationRestartPenalty" units="ms" expires_after="2019-01-25"> <obsolete> @@ -101475,8 +101514,8 @@ <owner>robertogden@chromium.org</owner> <owner>tbansal@chromium.org</owner> <summary> - Recorded whenever the litepage host preresolve state is changed. True is - recorded when preresolving starts and False is recorded when it stops. + Recorded whenever the lite page preview preresolver state is changed. True + is recorded when preresolving starts and False is recorded when it stops. </summary> </histogram> @@ -103577,6 +103616,9 @@ </histogram> <histogram name="Quota.DaysSinceLastAccess" units="days" expires_after="M77"> + <obsolete> + Removed June 2019 + </obsolete> <owner>jarrydg@chromium.org</owner> <summary> The number of days since an origin's data was last accessed. Logged upon @@ -103841,6 +103883,9 @@ </histogram> <histogram name="Quota.TimeToGetSettings" units="ms" expires_after="M77"> + <obsolete> + Removed June 2019 + </obsolete> <owner>jarrydg@chromium.org</owner> <summary> Time spent querying the embedder for the settings values. Logged at @@ -122947,6 +122992,20 @@ </summary> </histogram> +<histogram name="SiteIsolation.PendingSitelessNavigationDisallowsProcessReuse" + enum="BooleanProcessReuseDisallowed" expires_after="M82"> + <owner>alexmos@chromium.org</owner> + <owner>creis@chromium.org</owner> + <owner>site-isolation-dev@chromium.org</owner> + <summary> + Whether or not the RenderProcessHost is disqualified from process reuse + because it has a pending navigation to a URL for which SiteInstance does not + assign a site URL, such as chrome-native://newtab. This is intended to + measure how often this scenario results in spinning up extra processes. + Measured once per IsSuitableHost() invocation. + </summary> +</histogram> + <histogram name="SiteIsolation.ProxyCount"> <owner>creis@chromium.org</owner> <owner>lukasza@chromium.org</owner> @@ -140141,6 +140200,9 @@ </histogram> <histogram name="Variations.SeedLoadSuccessTime" units="ms" expires_after="M77"> + <obsolete> + Deprecated 2019-06. See results on https://crbug.com/936172#c8. + </obsolete> <owner>paulmiller@chromium.org</owner> <owner>changwan@chromium.org</owner> <summary> @@ -140152,6 +140214,9 @@ <histogram name="Variations.SeedLoadWouldBlockTime" units="ms" expires_after="M75"> + <obsolete> + Deprecated 2019-06. See results on https://crbug.com/936172#c8. + </obsolete> <owner>paulmiller@chromium.org</owner> <owner>changwan@chromium.org</owner> <summary> @@ -140623,8 +140688,9 @@ </histogram> <histogram base="true" name="VR.Component.Assets.DurationUntilReady.OnEnter" - units="ms"> - <owner>tiborg@chromium.org</owner> + units="ms" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary> Duration from entering a VR mode until the VR assets component is ready to use. @@ -140632,22 +140698,25 @@ </histogram> <histogram name="VR.Component.Assets.DurationUntilReady.OnRegisterComponent" - units="ms"> - <owner>tiborg@chromium.org</owner> + units="ms" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary> Duration from registering VR assets component until it is ready to use. </summary> </histogram> <histogram base="true" name="VR.Component.Assets.Status.OnEnter" - enum="VRComponentStatus"> - <owner>tiborg@chromium.org</owner> + enum="VRComponentStatus" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary>Status of the VR assets component when entering a VR mode.</summary> </histogram> <histogram name="VR.Component.Assets.VersionAndStatus.OnLoad" - enum="VRAssetsLoadStatus" expires_after="M77"> - <owner>tiborg@chromium.org</owner> + enum="VRAssetsLoadStatus" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary> The component version and status of loading the VR assets. The value is encoded as (XXX)(YYY)(SSS) where XXX is the major component version, YYY the @@ -140657,8 +140726,9 @@ </histogram> <histogram name="VR.Component.Assets.VersionAndStatus.OnUpdate" - enum="VRAssetsComponentUpdateStatus" expires_after="M77"> - <owner>tiborg@chromium.org</owner> + enum="VRAssetsComponentUpdateStatus" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary> The version and update status of the VR assets component. The value is encoded as (XXX)(YYY)(SSS) where XXX is the major version, YYY the minor @@ -140682,14 +140752,16 @@ </histogram> <histogram base="true" name="VR.NetworkConnectionType.OnEnter" - enum="NetworkConnectionType"> - <owner>tiborg@chromium.org</owner> + enum="NetworkConnectionType" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary>Network connection type when entering a VR mode.</summary> </histogram> <histogram name="VR.NetworkConnectionType.OnRegisterComponent" - enum="NetworkConnectionType" expires_after="M77"> - <owner>tiborg@chromium.org</owner> + enum="NetworkConnectionType" expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary> Network connection type when registering the VR component(s). </summary> @@ -140765,8 +140837,10 @@ </summary> </histogram> -<histogram name="VRRuntimeVersion" units="normalized version"> - <owner>tiborg@chromium.org</owner> +<histogram name="VRRuntimeVersion" units="normalized version" + expires_after="M78"> + <owner>cassew@chromium.org</owner> + <owner>samdrazin@chromium.org</owner> <summary>The version of the runtime being used for VR.</summary> </histogram>
diff --git a/ui/base/clipboard/clipboard.h b/ui/base/clipboard/clipboard.h index 2a4c2f07..6403ff0 100644 --- a/ui/base/clipboard/clipboard.h +++ b/ui/base/clipboard/clipboard.h
@@ -36,16 +36,20 @@ class COMPONENT_EXPORT(BASE_CLIPBOARD) Clipboard : public base::ThreadChecker { public: - static bool IsSupportedClipboardType(int32_t type) { + static bool IsSupportedClipboardType(ClipboardType type) { switch (type) { - case CLIPBOARD_TYPE_COPY_PASTE: + case ClipboardType::kCopyPaste: return true; + case ClipboardType::kSelection: #if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_CHROMEOS) - case CLIPBOARD_TYPE_SELECTION: return true; +#else + return false; #endif + case ClipboardType::kDrag: + return false; } - return false; + NOTREACHED(); } // Sets the list of threads that are allowed to access the clipboard.
diff --git a/ui/base/clipboard/clipboard_android.cc b/ui/base/clipboard/clipboard_android.cc index b3f20e59..557cab5 100644 --- a/ui/base/clipboard/clipboard_android.cc +++ b/ui/base/clipboard/clipboard_android.cc
@@ -295,13 +295,13 @@ bool ClipboardAndroid::IsFormatAvailable(const ClipboardFormatType& format, ClipboardType type) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); return g_map.Get().HasFormat(format.ToString()); } void ClipboardAndroid::Clear(ClipboardType type) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); g_map.Get().Clear(); } @@ -309,7 +309,7 @@ std::vector<base::string16>* types, bool* contains_filenames) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); if (!types || !contains_filenames) { NOTREACHED(); @@ -337,7 +337,7 @@ void ClipboardAndroid::ReadText(ClipboardType type, base::string16* result) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); std::string utf8; ReadAsciiText(type, &utf8); *result = base::UTF8ToUTF16(utf8); @@ -346,7 +346,7 @@ void ClipboardAndroid::ReadAsciiText(ClipboardType type, std::string* result) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); *result = g_map.Get().Get(ClipboardFormatType::GetPlainTextType().ToString()); } @@ -357,7 +357,7 @@ uint32_t* fragment_start, uint32_t* fragment_end) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); if (src_url) src_url->clear(); @@ -376,7 +376,7 @@ SkBitmap ClipboardAndroid::ReadImage(ClipboardType type) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); std::string input = g_map.Get().Get(ClipboardFormatType::GetBitmapType().ToString()); @@ -428,7 +428,7 @@ void ClipboardAndroid::WriteObjects(ClipboardType type, const ObjectMap& objects) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); g_map.Get().Clear(); for (const auto& object : objects)
diff --git a/ui/base/clipboard/clipboard_aurax11.cc b/ui/base/clipboard/clipboard_aurax11.cc index 50426b06..6d4a46c 100644 --- a/ui/base/clipboard/clipboard_aurax11.cc +++ b/ui/base/clipboard/clipboard_aurax11.cc
@@ -182,7 +182,7 @@ ::Atom LookupSelectionForClipboardType(ClipboardType type) const; // Returns the X11 type that we pass to various XSelection functions for - // CLIPBOARD_TYPE_COPY_PASTE. + // ClipboardType::kCopyPaste. ::Atom GetCopyPasteSelection() const; // Finds the SelectionFormatMap for the incoming selection atom. @@ -295,7 +295,7 @@ ::Atom ClipboardAuraX11::AuraX11Details::LookupSelectionForClipboardType( ClipboardType type) const { - if (type == CLIPBOARD_TYPE_COPY_PASTE) + if (type == ClipboardType::kCopyPaste) return GetCopyPasteSelection(); return XA_PRIMARY; @@ -327,7 +327,7 @@ void ClipboardAuraX11::AuraX11Details::TakeOwnershipOfSelection( ClipboardType type) { - if (type == CLIPBOARD_TYPE_COPY_PASTE) + if (type == ClipboardType::kCopyPaste) return clipboard_owner_.TakeOwnershipOfSelection(clipboard_data_); else return primary_owner_.TakeOwnershipOfSelection(clipboard_data_); @@ -419,7 +419,7 @@ } void ClipboardAuraX11::AuraX11Details::Clear(ClipboardType type) { - if (type == CLIPBOARD_TYPE_COPY_PASTE) + if (type == ClipboardType::kCopyPaste) clipboard_owner_.ClearSelectionOwner(); else primary_owner_.ClearSelectionOwner(); @@ -528,7 +528,7 @@ uint64_t ClipboardAuraX11::GetSequenceNumber(ClipboardType type) const { DCHECK(CalledOnValidThread()); - if (type == CLIPBOARD_TYPE_COPY_PASTE) + if (type == ClipboardType::kCopyPaste) return SelectionChangeObserver::GetInstance()->clipboard_sequence_number(); else return SelectionChangeObserver::GetInstance()->primary_sequence_number(); @@ -680,7 +680,7 @@ DCHECK(CalledOnValidThread()); SelectionData data(aurax11_details_->RequestAndWaitForTypes( - CLIPBOARD_TYPE_COPY_PASTE, aurax11_details_->GetAtomsForFormat(format))); + ClipboardType::kCopyPaste, aurax11_details_->GetAtomsForFormat(format))); if (data.IsValid()) data.AssignTo(result); } @@ -695,7 +695,7 @@ DispatchObject(static_cast<ObjectType>(object.first), object.second); aurax11_details_->TakeOwnershipOfSelection(type); - if (type == CLIPBOARD_TYPE_COPY_PASTE) { + if (type == ClipboardType::kCopyPaste) { auto text_iter = objects.find(CBF_TEXT); if (text_iter != objects.end()) { aurax11_details_->CreateNewClipboardData(); @@ -705,7 +705,7 @@ if (char_vector.size()) WriteText(&char_vector.front(), char_vector.size()); } - aurax11_details_->TakeOwnershipOfSelection(CLIPBOARD_TYPE_SELECTION); + aurax11_details_->TakeOwnershipOfSelection(ClipboardType::kSelection); } } }
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm index 0a1ae03..dffa16e 100644 --- a/ui/base/clipboard/clipboard_mac.mm +++ b/ui/base/clipboard/clipboard_mac.mm
@@ -62,7 +62,7 @@ uint64_t ClipboardMac::GetSequenceNumber(ClipboardType type) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); return [pb changeCount]; @@ -71,7 +71,7 @@ bool ClipboardMac::IsFormatAvailable(const ClipboardFormatType& format, ClipboardType type) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); NSArray* types = [pb types]; @@ -87,7 +87,7 @@ void ClipboardMac::Clear(ClipboardType type) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); [pb declareTypes:@[] owner:nil]; @@ -119,7 +119,7 @@ void ClipboardMac::ReadText(ClipboardType type, base::string16* result) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); NSString* contents = [pb stringForType:NSPasteboardTypeString]; @@ -129,7 +129,7 @@ void ClipboardMac::ReadAsciiText(ClipboardType type, std::string* result) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); NSString* contents = [pb stringForType:NSPasteboardTypeString]; @@ -145,7 +145,7 @@ uint32_t* fragment_start, uint32_t* fragment_end) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); // TODO(avi): src_url? markup->clear(); @@ -172,14 +172,14 @@ void ClipboardMac::ReadRTF(ClipboardType type, std::string* result) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); return ReadData(ClipboardFormatType::GetRtfType(), result); } SkBitmap ClipboardMac::ReadImage(ClipboardType type, NSPasteboard* pb) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); // If the pasteboard's image data is not to its liking, the guts of NSImage // may throw, and that exception will leak. Prevent a crash in that case; @@ -234,7 +234,7 @@ const base::string16& type, base::string16* result) const { DCHECK(CalledOnValidThread()); - DCHECK_EQ(clipboard_type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(clipboard_type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); if ([[pb types] containsObject:kWebCustomDataPboardType]) { @@ -273,7 +273,7 @@ void ClipboardMac::WriteObjects(ClipboardType type, const ObjectMap& objects) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); NSPasteboard* pb = GetPasteboard(); [pb declareTypes:@[] owner:nil];
diff --git a/ui/base/clipboard/clipboard_mac_unittest.mm b/ui/base/clipboard/clipboard_mac_unittest.mm index fdd0bde..ed7dddc4 100644 --- a/ui/base/clipboard/clipboard_mac_unittest.mm +++ b/ui/base/clipboard/clipboard_mac_unittest.mm
@@ -79,7 +79,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard); - SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE, + SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste, pasteboard->get()); EXPECT_EQ(2 * width, bitmap.width()); EXPECT_EQ(2 * height, bitmap.height()); @@ -95,7 +95,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard); - SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE, + SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste, pasteboard->get()); EXPECT_EQ(width, bitmap.width()); EXPECT_EQ(height, bitmap.height()); @@ -109,7 +109,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard); - SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE, + SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste, pasteboard->get()); EXPECT_EQ(0, bitmap.width()); EXPECT_EQ(0, bitmap.height()); @@ -132,7 +132,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); ui::ClipboardMac* clipboard_mac = static_cast<ui::ClipboardMac*>(clipboard); - SkBitmap bitmap = clipboard_mac->ReadImage(ui::CLIPBOARD_TYPE_COPY_PASTE, + SkBitmap bitmap = clipboard_mac->ReadImage(ui::ClipboardType::kCopyPaste, pasteboard->get()); EXPECT_EQ(width, bitmap.width()); EXPECT_EQ(height, bitmap.height());
diff --git a/ui/base/clipboard/clipboard_ozone.cc b/ui/base/clipboard/clipboard_ozone.cc index 439e141..f437d249 100644 --- a/ui/base/clipboard/clipboard_ozone.cc +++ b/ui/base/clipboard/clipboard_ozone.cc
@@ -52,7 +52,7 @@ base::span<uint8_t> ReadClipboardDataAndWait(ClipboardType type, const std::string& mime_type) { // TODO(tonikitoo): add selection support. - if (type == ClipboardType::CLIPBOARD_TYPE_SELECTION) + if (type == ClipboardType::kSelection) return base::span<uint8_t>(); // We can use a fastpath if we are the owner of the selection. @@ -104,7 +104,7 @@ void ClearOfferedData() { offered_data_.clear(); } uint64_t GetSequenceNumber(ClipboardType type) { - if (type == ClipboardType::CLIPBOARD_TYPE_COPY_PASTE) + if (type == ClipboardType::kCopyPaste) return clipboard_sequence_number_; // TODO(tonikitoo): add sequence number for the selection clipboard type. return 0; @@ -273,7 +273,7 @@ ClipboardType type) const { DCHECK(CalledOnValidThread()); // TODO(tonikitoo): add selection support. - if (type == ClipboardType::CLIPBOARD_TYPE_SELECTION) + if (type == ClipboardType::kSelection) return false; auto available_types = async_clipboard_ozone_->RequestMimeTypes(); @@ -297,7 +297,7 @@ types->clear(); // TODO(tonikitoo): add selection support. - if (type == ClipboardType::CLIPBOARD_TYPE_SELECTION) + if (type == ClipboardType::kSelection) return; auto available_types = async_clipboard_ozone_->RequestMimeTypes(); @@ -382,14 +382,14 @@ std::string* result) const { DCHECK(CalledOnValidThread()); auto clipboard_data = async_clipboard_ozone_->ReadClipboardDataAndWait( - ClipboardType::CLIPBOARD_TYPE_COPY_PASTE, format.ToString()); + ClipboardType::kCopyPaste, format.ToString()); result->assign(clipboard_data.begin(), clipboard_data.end()); } void ClipboardOzone::WriteObjects(ClipboardType type, const ObjectMap& objects) { DCHECK(CalledOnValidThread()); - if (type == ClipboardType::CLIPBOARD_TYPE_COPY_PASTE) { + if (type == ClipboardType::kCopyPaste) { async_clipboard_ozone_->ClearOfferedData(); for (const auto& object : objects)
diff --git a/ui/base/clipboard/clipboard_test_template.h b/ui/base/clipboard/clipboard_test_template.h index c0ee5e1..1e7047c 100644 --- a/ui/base/clipboard/clipboard_test_template.h +++ b/ui/base/clipboard/clipboard_test_template.h
@@ -106,16 +106,16 @@ TYPED_TEST(ClipboardTest, ClearTest) { { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteText(ASCIIToUTF16("clear me")); } - this->clipboard().Clear(CLIPBOARD_TYPE_COPY_PASTE); + this->clipboard().Clear(ClipboardType::kCopyPaste); - EXPECT_TRUE(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE).empty()); + EXPECT_TRUE(this->GetAvailableTypes(ClipboardType::kCopyPaste).empty()); EXPECT_FALSE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste)); EXPECT_FALSE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste)); } TYPED_TEST(ClipboardTest, TextTest) { @@ -123,20 +123,20 @@ std::string ascii_text; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteText(text); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeText))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste)); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE)); - this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); + ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste)); + this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result); EXPECT_EQ(text, text_result); - this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text); + this->clipboard().ReadAsciiText(ClipboardType::kCopyPaste, &ascii_text); EXPECT_EQ(UTF16ToUTF8(text), ascii_text); } @@ -146,18 +146,18 @@ std::string url("http://www.example.com/"), url_result; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteText(plain); clipboard_writer.WriteHTML(markup, url); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeHTML))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste)); uint32_t fragment_start; uint32_t fragment_end; - this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, + this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result, &url_result, &fragment_start, &fragment_end); EXPECT_LE(markup.size(), fragment_end - fragment_start); EXPECT_EQ(markup, @@ -176,16 +176,16 @@ "}"; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteRTF(rtf); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeRTF))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetRtfType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetRtfType(), ClipboardType::kCopyPaste)); std::string result; - this->clipboard().ReadRTF(CLIPBOARD_TYPE_COPY_PASTE, &result); + this->clipboard().ReadRTF(ClipboardType::kCopyPaste, &result); EXPECT_EQ(rtf, result); } @@ -198,37 +198,37 @@ std::string url("http://www.example.com/"), url_result; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteText(text); } { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_SELECTION); + ScopedClipboardWriter clipboard_writer(ClipboardType::kSelection); clipboard_writer.WriteHTML(markup, url); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeText))); - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_SELECTION), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kSelection), Contains(ASCIIToUTF16(kMimeTypeHTML))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste)); EXPECT_FALSE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_SELECTION)); + ClipboardFormatType::GetPlainTextType(), ClipboardType::kSelection)); EXPECT_FALSE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste)); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_SELECTION)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kSelection)); - this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); + this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result); EXPECT_EQ(text, text_result); base::string16 markup_result; uint32_t fragment_start; uint32_t fragment_end; - this->clipboard().ReadHTML(CLIPBOARD_TYPE_SELECTION, &markup_result, + this->clipboard().ReadHTML(ClipboardType::kSelection, &markup_result, &url_result, &fragment_start, &fragment_end); EXPECT_LE(markup.size(), fragment_end - fragment_start); EXPECT_EQ(markup, @@ -243,18 +243,18 @@ base::string16 plain(ASCIIToUTF16("Bye!")), plain_result; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteText(plain); clipboard_writer.WriteHTML(markup, url); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeHTML))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste)); uint32_t fragment_start; uint32_t fragment_end; - this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, + this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result, &url_result, &fragment_start, &fragment_end); EXPECT_LE(markup.size(), fragment_end - fragment_start); EXPECT_EQ(markup, @@ -274,17 +274,17 @@ std::string url, url_result; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteHTML(markup, url); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeHTML))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste)); uint32_t fragment_start; uint32_t fragment_end; - this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, + this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result, &url_result, &fragment_start, &fragment_end); EXPECT_LE(markup.size(), fragment_end - fragment_start); EXPECT_EQ(markup, @@ -301,12 +301,12 @@ std::string url("http://www.example.com/"), url_result; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteBookmark(title, url); } EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetUrlWType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetUrlWType(), ClipboardType::kCopyPaste)); this->clipboard().ReadBookmark(&title_result, &url_result); EXPECT_EQ(title, title_result); EXPECT_EQ(url, url_result); @@ -320,24 +320,24 @@ std::string ascii_text; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteHTML(markup, url); clipboard_writer.WriteText(text); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeHTML))); - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeText))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste)); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste)); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste)); uint32_t fragment_start; uint32_t fragment_end; - this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, + this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &markup_result, &url_result, &fragment_start, &fragment_end); EXPECT_LE(markup.size(), fragment_end - fragment_start); EXPECT_EQ(markup, @@ -347,9 +347,9 @@ // this. EXPECT_EQ(url, url_result); #endif // defined(OS_WIN) - this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); + this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result); EXPECT_EQ(text, text_result); - this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text); + this->clipboard().ReadAsciiText(ClipboardType::kCopyPaste, &ascii_text); EXPECT_EQ(UTF16ToUTF8(text), ascii_text); } @@ -357,23 +357,23 @@ base::string16 url(ASCIIToUTF16("http://www.google.com/")); { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteText(url); } - EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), + EXPECT_THAT(this->GetAvailableTypes(ClipboardType::kCopyPaste), Contains(ASCIIToUTF16(kMimeTypeText))); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextWType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextWType(), ClipboardType::kCopyPaste)); EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetPlainTextType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetPlainTextType(), ClipboardType::kCopyPaste)); base::string16 text_result; - this->clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); + this->clipboard().ReadText(ClipboardType::kCopyPaste, &text_result); EXPECT_EQ(text_result, url); std::string ascii_text; - this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text); + this->clipboard().ReadAsciiText(ClipboardType::kCopyPaste, &ascii_text); EXPECT_EQ(UTF16ToUTF8(url), ascii_text); // TODO(tonikitoo, msisov): enable back for ClipboardOzone implements @@ -381,7 +381,7 @@ #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ !defined(OS_CHROMEOS) && !defined(USE_OZONE) ascii_text.clear(); - this->clipboard().ReadAsciiText(CLIPBOARD_TYPE_SELECTION, &ascii_text); + this->clipboard().ReadAsciiText(ClipboardType::kSelection, &ascii_text); EXPECT_EQ(UTF16ToUTF8(url), ascii_text); #endif } @@ -397,7 +397,7 @@ const T* bitmap_data, const U8x4* expect_data) { { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); SkBitmap bitmap; ASSERT_TRUE(bitmap.setInfo(info)); bitmap.setPixels( @@ -406,8 +406,8 @@ } EXPECT_TRUE(clipboard->IsFormatAvailable(ClipboardFormatType::GetBitmapType(), - CLIPBOARD_TYPE_COPY_PASTE)); - const SkBitmap& image = clipboard->ReadImage(CLIPBOARD_TYPE_COPY_PASTE); + ClipboardType::kCopyPaste)); + const SkBitmap& image = clipboard->ReadImage(ClipboardType::kCopyPaste); ASSERT_EQ(image.info().colorType(), kN32_SkColorType); ASSERT_NE(image.info().alphaType(), kUnpremul_SkAlphaType); EXPECT_EQ(gfx::Size(info.width(), info.height()), @@ -530,12 +530,12 @@ write_pickle.WriteString(payload); { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WritePickledData(write_pickle, kFormat); } ASSERT_TRUE( - this->clipboard().IsFormatAvailable(kFormat, CLIPBOARD_TYPE_COPY_PASTE)); + this->clipboard().IsFormatAvailable(kFormat, ClipboardType::kCopyPaste)); std::string output; this->clipboard().ReadData(kFormat, &output); ASSERT_FALSE(output.empty()); @@ -561,14 +561,14 @@ write_pickle2.WriteString(payload2); { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WritePickledData(write_pickle1, kFormat1); // overwrite the previous pickle for fun clipboard_writer.WritePickledData(write_pickle2, kFormat2); } ASSERT_TRUE( - this->clipboard().IsFormatAvailable(kFormat2, CLIPBOARD_TYPE_COPY_PASTE)); + this->clipboard().IsFormatAvailable(kFormat2, ClipboardType::kCopyPaste)); // Check string 2. std::string output2; @@ -582,14 +582,14 @@ EXPECT_EQ(payload2, unpickled_string2); { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WritePickledData(write_pickle2, kFormat2); // overwrite the previous pickle for fun clipboard_writer.WritePickledData(write_pickle1, kFormat1); } ASSERT_TRUE( - this->clipboard().IsFormatAvailable(kFormat1, CLIPBOARD_TYPE_COPY_PASTE)); + this->clipboard().IsFormatAvailable(kFormat1, ClipboardType::kCopyPaste)); // Check string 1. std::string output1; @@ -614,15 +614,15 @@ std::string url_result; base::string16 html_result; { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteHyperlink(ASCIIToUTF16(kTitle), kUrl); } EXPECT_TRUE(this->clipboard().IsFormatAvailable( - ClipboardFormatType::GetHtmlType(), CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardFormatType::GetHtmlType(), ClipboardType::kCopyPaste)); uint32_t fragment_start; uint32_t fragment_end; - this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &html_result, + this->clipboard().ReadHTML(ClipboardType::kCopyPaste, &html_result, &url_result, &fragment_start, &fragment_end); EXPECT_EQ(kExpectedHtml, html_result.substr(fragment_end - kExpectedHtml.size(), @@ -632,13 +632,13 @@ TYPED_TEST(ClipboardTest, WebSmartPasteTest) { { - ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter clipboard_writer(ClipboardType::kCopyPaste); clipboard_writer.WriteWebSmartPaste(); } EXPECT_TRUE(this->clipboard().IsFormatAvailable( ClipboardFormatType::GetWebKitSmartPasteType(), - CLIPBOARD_TYPE_COPY_PASTE)); + ClipboardType::kCopyPaste)); } #if defined(OS_WIN) // Windows only tests. @@ -690,7 +690,7 @@ // Test writing all formats we have simultaneously. TYPED_TEST(ClipboardTest, WriteEverything) { { - ScopedClipboardWriter writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter writer(ClipboardType::kCopyPaste); writer.WriteText(UTF8ToUTF16("foo")); writer.WriteHTML(UTF8ToUTF16("foo"), "bar"); writer.WriteBookmark(UTF8ToUTF16("foo"), "bar"); @@ -709,13 +709,13 @@ #if !defined(OS_ANDROID) // Simple test that the sequence number appears to change when the clipboard is // written to. -// TODO(dcheng): Add a version to test CLIPBOARD_TYPE_SELECTION. +// TODO(dcheng): Add a version to test ClipboardType::kSelection. TYPED_TEST(ClipboardTest, GetSequenceNumber) { const uint64_t first_sequence_number = - this->clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE); + this->clipboard().GetSequenceNumber(ClipboardType::kCopyPaste); { - ScopedClipboardWriter writer(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter writer(ClipboardType::kCopyPaste); writer.WriteText(UTF8ToUTF16("World")); } @@ -724,7 +724,7 @@ base::RunLoop().RunUntilIdle(); const uint64_t second_sequence_number = - this->clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE); + this->clipboard().GetSequenceNumber(ClipboardType::kCopyPaste); EXPECT_NE(first_sequence_number, second_sequence_number); } @@ -733,37 +733,37 @@ // Test that writing empty parameters doesn't try to dereference an empty data // vector. Not crashing = passing. TYPED_TEST(ClipboardTest, WriteTextEmptyParams) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WriteText(base::string16()); } TYPED_TEST(ClipboardTest, WriteHTMLEmptyParams) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WriteHTML(base::string16(), std::string()); } TYPED_TEST(ClipboardTest, WriteRTFEmptyParams) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WriteRTF(std::string()); } TYPED_TEST(ClipboardTest, WriteBookmarkEmptyParams) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WriteBookmark(base::string16(), std::string()); } TYPED_TEST(ClipboardTest, WriteHyperlinkEmptyParams) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WriteHyperlink(base::string16(), std::string()); } TYPED_TEST(ClipboardTest, WritePickledData) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WritePickledData(base::Pickle(), ClipboardFormatType::GetPlainTextType()); } TYPED_TEST(ClipboardTest, WriteImageEmptyParams) { - ScopedClipboardWriter scw(CLIPBOARD_TYPE_COPY_PASTE); + ScopedClipboardWriter scw(ClipboardType::kCopyPaste); scw.WriteImage(SkBitmap()); }
diff --git a/ui/base/clipboard/clipboard_types.h b/ui/base/clipboard/clipboard_types.h index dc12e88..5a57c07a 100644 --- a/ui/base/clipboard/clipboard_types.h +++ b/ui/base/clipboard/clipboard_types.h
@@ -7,12 +7,13 @@ namespace ui { -// |ClipboardType| designates which clipboard the action should be applied to. -enum ClipboardType { - CLIPBOARD_TYPE_COPY_PASTE, - CLIPBOARD_TYPE_SELECTION, // Only supported on systems running X11. - CLIPBOARD_TYPE_DRAG, // Only supported on Mac OS X. - CLIPBOARD_TYPE_LAST = CLIPBOARD_TYPE_DRAG +// |ClipboardType| designates which clipboard buffer the action should be +// applied to. +enum class ClipboardType { + kCopyPaste, + kSelection, // Only supported on systems running X11. + kDrag, // Only supported on Mac OS X. + kMaxValue = kDrag }; } // namespace ui
diff --git a/ui/base/clipboard/clipboard_util_mac.mm b/ui/base/clipboard/clipboard_util_mac.mm index 1707d30..42316fc9 100644 --- a/ui/base/clipboard/clipboard_util_mac.mm +++ b/ui/base/clipboard/clipboard_util_mac.mm
@@ -217,13 +217,13 @@ NSPasteboard* ClipboardUtil::PasteboardFromType(ui::ClipboardType type) { NSString* type_string = nil; switch (type) { - case ui::CLIPBOARD_TYPE_COPY_PASTE: + case ui::ClipboardType::kCopyPaste: type_string = NSGeneralPboard; break; - case ui::CLIPBOARD_TYPE_DRAG: + case ui::ClipboardType::kDrag: type_string = NSDragPboard; break; - case ui::CLIPBOARD_TYPE_SELECTION: + case ui::ClipboardType::kSelection: NOTREACHED(); break; }
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc index 17dee83..7ed451d 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc
@@ -239,18 +239,18 @@ void ClipboardWin::OnPreShutdown() {} uint64_t ClipboardWin::GetSequenceNumber(ClipboardType type) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); return ::GetClipboardSequenceNumber(); } bool ClipboardWin::IsFormatAvailable(const ClipboardFormatType& format, ClipboardType type) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); return ::IsClipboardFormatAvailable(format.ToFormatEtc().cfFormat) != FALSE; } void ClipboardWin::Clear(ClipboardType type) { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); ScopedClipboard clipboard; if (!clipboard.Acquire(GetClipboardWindow())) return; @@ -295,7 +295,7 @@ } void ClipboardWin::ReadText(ClipboardType type, base::string16* result) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); if (!result) { NOTREACHED(); return; @@ -320,7 +320,7 @@ void ClipboardWin::ReadAsciiText(ClipboardType type, std::string* result) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); if (!result) { NOTREACHED(); return; @@ -348,7 +348,7 @@ std::string* src_url, uint32_t* fragment_start, uint32_t* fragment_end) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); markup->clear(); // TODO(dcheng): Remove these checks, I don't think they should be optional. @@ -401,14 +401,14 @@ } void ClipboardWin::ReadRTF(ClipboardType type, std::string* result) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); ReadData(ClipboardFormatType::GetRtfType(), result); TrimAfterNull(result); } SkBitmap ClipboardWin::ReadImage(ClipboardType type) const { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); // Acquire the clipboard. ScopedClipboard clipboard; @@ -495,7 +495,7 @@ void ClipboardWin::ReadCustomData(ClipboardType clipboard_type, const base::string16& type, base::string16* result) const { - DCHECK_EQ(clipboard_type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(clipboard_type, ClipboardType::kCopyPaste); // Acquire the clipboard. ScopedClipboard clipboard; @@ -557,7 +557,7 @@ } void ClipboardWin::WriteObjects(ClipboardType type, const ObjectMap& objects) { - DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE); + DCHECK_EQ(type, ClipboardType::kCopyPaste); ScopedClipboard clipboard; if (!clipboard.Acquire(GetClipboardWindow()))
diff --git a/ui/base/clipboard/test/test_clipboard.cc b/ui/base/clipboard/test/test_clipboard.cc index 6e299a4..3355aed 100644 --- a/ui/base/clipboard/test/test_clipboard.cc +++ b/ui/base/clipboard/test/test_clipboard.cc
@@ -16,7 +16,7 @@ namespace ui { TestClipboard::TestClipboard() - : default_store_type_(CLIPBOARD_TYPE_COPY_PASTE) {} + : default_store_type_(ClipboardType::kCopyPaste) {} TestClipboard::~TestClipboard() = default; @@ -153,7 +153,7 @@ default_store_type_ = type; for (const auto& kv : objects) DispatchObject(static_cast<ObjectType>(kv.first), kv.second); - default_store_type_ = CLIPBOARD_TYPE_COPY_PASTE; + default_store_type_ = ClipboardType::kCopyPaste; } void TestClipboard::WriteText(const char* text_data, size_t text_len) { @@ -161,8 +161,8 @@ GetDefaultStore().data[ClipboardFormatType::GetPlainTextType()] = text; // Create a dummy entry. GetDefaultStore().data[ClipboardFormatType::GetPlainTextWType()]; - if (IsSupportedClipboardType(CLIPBOARD_TYPE_SELECTION)) - GetStore(CLIPBOARD_TYPE_SELECTION) + if (IsSupportedClipboardType(ClipboardType::kSelection)) + GetStore(ClipboardType::kSelection) .data[ClipboardFormatType::GetPlainTextType()] = text; ui::ClipboardMonitor::GetInstance()->NotifyClipboardDataChanged(); }
diff --git a/ui/base/ime/win/tsf_text_store.cc b/ui/base/ime/win/tsf_text_store.cc index 44c6954..4770dfa 100644 --- a/ui/base/ime/win/tsf_text_store.cc +++ b/ui/base/ime/win/tsf_text_store.cc
@@ -566,6 +566,8 @@ if (string_pending_insertion_.empty()) { if (!text_input_client_->HasCompositionText()) { if (has_composition_range_) { + string_pending_insertion_ = string_buffer_document_.substr( + composition_range_.GetMin(), composition_range_.length()); StartCompositionOnExistingText(); } else { composition_start_ = selection_.start(); @@ -593,25 +595,29 @@ // TextInputClient::InsertText() or TextInputClient::SetCompositionText(). const size_t new_composition_start = composition_start_; - // If new_composition_start is greater than last_composition_start, - // then we know that there are some committed text. we need to call - // TextInputClient::InsertText to complete the current composition. When there - // are some committed text, it is not necessarily true that composition_string - // is empty. We need to complete current composition with committed text and - // start new composition with composition_string. Another scenario would be if - // the replacement text is coming from on-screen keyboard, we should replace - // current selection with new text. - if (((new_composition_start > last_composition_start) || + // There are several scenarios that we want to commit composition text. For + // those scenarios, we need to call TextInputClient::InsertText to complete + // the current composition. When there are some committed text. + // 1. If new_composition_start is greater than last_composition_start and + // there is active composition, then we know that there are some committed + // text. It is not necessarily true that composition_string is empty. We need + // to complete current composition with committed text and start new + // composition with composition_string. + // 2. If the replacement text is coming from on-screen keyboard, we should + // replace current selection with new text. + // 3. User commits current composition text. + if (((new_composition_start > last_composition_start && + text_input_client_->HasCompositionText()) || (wparam_keydown_fired_ == 0 && !has_composition_range_ && - !text_input_client_->HasCompositionText())) && + !text_input_client_->HasCompositionText()) || + (wparam_keydown_fired_ != 0 && !has_composition_range_)) && text_input_client_) { CommitTextAndEndCompositionIfAny(last_composition_start, new_composition_start); } const base::string16& composition_string = string_buffer_document_.substr( - composition_range_.start(), - composition_range_.end() - composition_range_.start()); + composition_range_.GetMin(), composition_range_.length()); // Only need to set composition if the current composition string // (composition_string) is not the same as previous composition string @@ -632,6 +638,15 @@ previous_composition_start_ = composition_range_.start(); previous_composition_selection_range_ = selection_; + // We need to remove replacing text first before starting new composition if + // there are any. + if (new_text_inserted_ && !replace_text_range_.is_empty() && + !text_input_client_->HasCompositionText() && + last_composition_start > replace_text_range_.start()) { + text_input_client_->ExtendSelectionAndDelete( + last_composition_start - replace_text_range_.start(), 0); + } + StartCompositionOnNewText(new_composition_start, composition_string); } @@ -1214,8 +1229,7 @@ void TSFTextStore::CommitTextAndEndCompositionIfAny(size_t old_size, size_t new_size) const { - if (new_text_inserted_ && - (replace_text_range_.start() != replace_text_range_.end()) && + if (new_text_inserted_ && !replace_text_range_.is_empty() && !text_input_client_->HasCompositionText()) { // This is a special case to handle text replacement scenarios during // English typing when we are trying to replace an existing text with some @@ -1246,7 +1260,7 @@ // This is a special case. We should only replace existing text and commit // the new text if replacement text has already been inserted into Blink. if (new_text_inserted_ && (old_size > replace_text_range_.start()) && - (replace_text_range_.start() != replace_text_range_.end())) { + !replace_text_range_.is_empty()) { new_committed_string_offset = replace_text_range_.start(); new_committed_string_size = replace_text_size_; } @@ -1296,8 +1310,7 @@ } else { // User wants to commit the current composition const base::string16& committed_string = string_buffer_document_.substr( - composition_range_.start(), - composition_range_.end() - composition_range_.start()); + composition_range_.GetMin(), composition_range_.length()); text_input_client_->SetActiveCompositionForAccessibility( composition_range_, committed_string, /*is_composition_committed*/ true);
diff --git a/ui/base/ime/win/tsf_text_store_unittest.cc b/ui/base/ime/win/tsf_text_store_unittest.cc index 79c1215d..b162d32 100644 --- a/ui/base/ime/win/tsf_text_store_unittest.cc +++ b/ui/base/ime/win/tsf_text_store_unittest.cc
@@ -1119,6 +1119,7 @@ // Need to set |has_composition_range_| to indicate composition scenario. *has_composition_range() = true; + text_store_->OnKeyTraceDown(66u, 3145729u); return S_OK; } @@ -1577,7 +1578,6 @@ composition_range()->set_end(0); *has_composition_range() = false; - text_store_->OnKeyTraceUp(66u, 3145729u); return S_OK; } @@ -1593,8 +1593,7 @@ } HRESULT LockGranted4(DWORD flags) { - text_store_->OnKeyTraceDown(8u, 917505u); - text_store_->OnKeyTraceUp(8u, 917505u); + text_store_->OnKeyTraceUp(66u, 3145729u); return S_OK; } @@ -2527,16 +2526,9 @@ composition_range()->set_end(0); *has_composition_range() = false; - text_store_->OnKeyTraceUp(65u, 1966081u); return S_OK; } - ui::EventDispatchDetails DispatchKeyEventPostIME3(KeyEvent* key) { - EXPECT_EQ(ui::ET_KEY_RELEASED, key->type()); - EXPECT_EQ(VKEY_PROCESSKEY, key->key_code()); - return ui::EventDispatchDetails(); - } - void InsertText3(const base::string16& text) { EXPECT_EQ(L"a", text); SetHasCompositionText(false); @@ -2553,13 +2545,13 @@ *edit_flag() = true; *composition_start() = 3; + text_store_->OnKeyTraceUp(65u, 1966081u); text_store_->OnStartComposition(nullptr, nullptr); - text_store_->OnKeyTraceDown(67u, 1966081u); return S_OK; } ui::EventDispatchDetails DispatchKeyEventPostIME4(KeyEvent* key) { - EXPECT_EQ(ui::ET_KEY_PRESSED, key->type()); + EXPECT_EQ(ui::ET_KEY_RELEASED, key->type()); EXPECT_EQ(VKEY_PROCESSKEY, key->key_code()); return ui::EventDispatchDetails(); } @@ -2585,7 +2577,6 @@ composition_range()->set_start(3); composition_range()->set_end(4); - text_store_->OnKeyTraceUp(67u, 1966081u); text_store_->OnKeyTraceDown(65u, 1966081u); *has_composition_range() = true; @@ -2593,13 +2584,7 @@ return S_OK; } - ui::EventDispatchDetails DispatchKeyEventPostIME5a(KeyEvent* key) { - EXPECT_EQ(ui::ET_KEY_RELEASED, key->type()); - EXPECT_EQ(VKEY_PROCESSKEY, key->key_code()); - return ui::EventDispatchDetails(); - } - - ui::EventDispatchDetails DispatchKeyEventPostIME5b(KeyEvent* key) { + ui::EventDispatchDetails DispatchKeyEventPostIME5(KeyEvent* key) { EXPECT_EQ(ui::ET_KEY_PRESSED, key->type()); EXPECT_EQ(VKEY_PROCESSKEY, key->key_code()); return ui::EventDispatchDetails(); @@ -2660,13 +2645,9 @@ .WillOnce( Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME2b)) .WillOnce( - Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME3)) - .WillOnce( Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME4)) .WillOnce( - Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME5a)) - .WillOnce(Invoke(&callback, - &RegressionTestCallback::DispatchKeyEventPostIME5b)); + Invoke(&callback, &RegressionTestCallback::DispatchKeyEventPostIME5)); EXPECT_CALL(text_input_client_, InsertText(_)) .WillOnce(Invoke(&callback, &RegressionTestCallback::InsertText2)) @@ -2706,5 +2687,111 @@ EXPECT_EQ(S_OK, result); } +// Some IMEs may replace existing text with new text and start new composition +// on the new text. We should replace old text with new text and start new +// composition. This test covers the above scenario. +class RegressionTest2Callback : public TSFTextStoreTestCallback { + public: + explicit RegressionTest2Callback(TSFTextStore* text_store) + : TSFTextStoreTestCallback(text_store) {} + + HRESULT LockGranted1(DWORD flags) { + SetTextTest(0, 0, L"abc", S_OK); + SetSelectionTest(3, 3, S_OK); + + *composition_start() = 3; + return S_OK; + } + + HRESULT LockGranted2(DWORD flags) { + GetTextTest(0, -1, L"abc", 3); + SetTextTest(1, 3, L"DE", S_OK); + GetTextTest(0, -1, L"aDE", 3); + SetSelectionTest(3, 3, S_OK); + + text_spans()->clear(); + ImeTextSpan text_span; + text_span.start_offset = 1; + text_span.end_offset = 3; + text_span.underline_color = SK_ColorBLACK; + text_span.thickness = ImeTextSpan::Thickness::kThin; + text_span.background_color = SK_ColorTRANSPARENT; + text_spans()->push_back(text_span); + *edit_flag() = true; + *composition_start() = 1; + composition_range()->set_start(1); + composition_range()->set_end(3); + text_store_->OnKeyTraceDown(65u, 1966081u); + *has_composition_range() = true; + + return S_OK; + } + + void SetCompositionText2(const ui::CompositionText& composition) { + EXPECT_EQ(L"DE", composition.text); + EXPECT_EQ(2u, composition.selection.start()); + EXPECT_EQ(2u, composition.selection.end()); + ASSERT_EQ(1u, composition.ime_text_spans.size()); + EXPECT_EQ(SK_ColorBLACK, composition.ime_text_spans[0].underline_color); + EXPECT_EQ(SK_ColorTRANSPARENT, + composition.ime_text_spans[0].background_color); + EXPECT_EQ(0u, composition.ime_text_spans[0].start_offset); + EXPECT_EQ(2u, composition.ime_text_spans[0].end_offset); + EXPECT_EQ(ImeTextSpan::Thickness::kThin, + composition.ime_text_spans[0].thickness); + SetHasCompositionText(true); + } + + HRESULT LockGranted3(DWORD flags) { + GetTextTest(0, -1, L"aDE", 3); + + text_spans()->clear(); + *edit_flag() = true; + *composition_start() = 3; + composition_range()->set_start(0); + composition_range()->set_end(0); + + *has_composition_range() = false; + return S_OK; + } + + void InsertText3(const base::string16& text) { + EXPECT_EQ(L"DE", text); + SetHasCompositionText(false); + } + + private: + DISALLOW_COPY_AND_ASSIGN(RegressionTest2Callback); +}; + +TEST_F(TSFTextStoreTest, RegressionTest2) { + RegressionTest2Callback callback(text_store_.get()); + EXPECT_CALL(text_input_client_, SetCompositionText(_)) + .WillOnce( + Invoke(&callback, &RegressionTest2Callback::SetCompositionText2)); + + EXPECT_CALL(text_input_client_, InsertText(_)) + .WillOnce(Invoke(&callback, &RegressionTest2Callback::InsertText3)); + + EXPECT_CALL(*sink_, OnLockGranted(_)) + .WillOnce(Invoke(&callback, &RegressionTest2Callback::LockGranted1)) + .WillOnce(Invoke(&callback, &RegressionTest2Callback::LockGranted2)) + .WillOnce(Invoke(&callback, &RegressionTest2Callback::LockGranted3)); + + ON_CALL(text_input_client_, HasCompositionText()) + .WillByDefault( + Invoke(&callback, &TSFTextStoreTestCallback::HasCompositionText)); + + HRESULT result = kInvalidResult; + EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result)); + EXPECT_EQ(S_OK, result); + result = kInvalidResult; + EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result)); + EXPECT_EQ(S_OK, result); + result = kInvalidResult; + EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result)); + EXPECT_EQ(S_OK, result); +} + } // namespace } // namespace ui
diff --git a/ui/base/mojo/clipboard_blink_struct_traits.h b/ui/base/mojo/clipboard_blink_struct_traits.h index 8a6cfc9..656a95c 100644 --- a/ui/base/mojo/clipboard_blink_struct_traits.h +++ b/ui/base/mojo/clipboard_blink_struct_traits.h
@@ -15,8 +15,8 @@ static blink::mojom::ClipboardBuffer ToMojom( ui::ClipboardType clipboard_type) { // We only convert ui::Clipboardtype to blink::mojom::ClipboardBuffer - // in tests, and they use ui::CLIPBOARD_TYPE_COPY_PASTE. - DCHECK(clipboard_type == ui::CLIPBOARD_TYPE_COPY_PASTE); + // in tests, and they use ui::ClipboardType::kCopyPaste. + DCHECK(clipboard_type == ui::ClipboardType::kCopyPaste); return blink::mojom::ClipboardBuffer::kStandard; } @@ -24,11 +24,11 @@ ui::ClipboardType* out) { switch (clipboard_type) { case blink::mojom::ClipboardBuffer::kStandard: - *out = ui::CLIPBOARD_TYPE_COPY_PASTE; + *out = ui::ClipboardType::kCopyPaste; return true; case blink::mojom::ClipboardBuffer::kSelection: #if defined(USE_X11) - *out = ui::CLIPBOARD_TYPE_SELECTION; + *out = ui::ClipboardType::kSelection; return true; #else return false;
diff --git a/ui/base/mojo/clipboard_host.cc b/ui/base/mojo/clipboard_host.cc index 769dde85..59e2346c 100644 --- a/ui/base/mojo/clipboard_host.cc +++ b/ui/base/mojo/clipboard_host.cc
@@ -15,7 +15,7 @@ ClipboardHost::ClipboardHost() : clipboard_(Clipboard::GetForCurrentThread()), - clipboard_writer_(new ScopedClipboardWriter(CLIPBOARD_TYPE_COPY_PASTE)) {} + clipboard_writer_(new ScopedClipboardWriter(ClipboardType::kCopyPaste)) {} ClipboardHost::~ClipboardHost() { clipboard_writer_->Reset();
diff --git a/ui/base/mojo/clipboard_struct_traits.h b/ui/base/mojo/clipboard_struct_traits.h index 518cb04..1961c30 100644 --- a/ui/base/mojo/clipboard_struct_traits.h +++ b/ui/base/mojo/clipboard_struct_traits.h
@@ -14,11 +14,11 @@ struct EnumTraits<ui::mojom::ClipboardType, ui::ClipboardType> { static ui::mojom::ClipboardType ToMojom(ui::ClipboardType type) { switch (type) { - case ui::CLIPBOARD_TYPE_COPY_PASTE: + case ui::ClipboardType::kCopyPaste: return ui::mojom::ClipboardType::COPY_PASTE; - case ui::CLIPBOARD_TYPE_SELECTION: + case ui::ClipboardType::kSelection: return ui::mojom::ClipboardType::SELECTION; - case ui::CLIPBOARD_TYPE_DRAG: + case ui::ClipboardType::kDrag: return ui::mojom::ClipboardType::DRAG; } } @@ -26,13 +26,13 @@ static bool FromMojom(ui::mojom::ClipboardType type, ui::ClipboardType* out) { switch (type) { case ui::mojom::ClipboardType::COPY_PASTE: - *out = ui::CLIPBOARD_TYPE_COPY_PASTE; + *out = ui::ClipboardType::kCopyPaste; return true; case ui::mojom::ClipboardType::SELECTION: - *out = ui::CLIPBOARD_TYPE_SELECTION; + *out = ui::ClipboardType::kSelection; return true; case ui::mojom::ClipboardType::DRAG: - *out = ui::CLIPBOARD_TYPE_DRAG; + *out = ui::ClipboardType::kDrag; return true; } NOTREACHED();
diff --git a/ui/native_theme/common_theme.cc b/ui/native_theme/common_theme.cc index 89f324a5..e7f06ef 100644 --- a/ui/native_theme/common_theme.cc +++ b/ui/native_theme/common_theme.cc
@@ -305,18 +305,6 @@ case NativeTheme::kColorId_UnfocusedBorderColor: return SkColorSetA(SK_ColorBLACK, 0x66); - // Results Tables - case NativeTheme::kColorId_ResultsTableNormalBackground: - return SK_ColorWHITE; - case NativeTheme::kColorId_ResultsTableHoveredBackground: - return SkColorSetA(base_theme->GetSystemColor( - NativeTheme::kColorId_ResultsTableNormalText), - 0x0D); - case NativeTheme::kColorId_ResultsTableNormalText: - return SK_ColorBLACK; - case NativeTheme::kColorId_ResultsTableDimmedText: - return SkColorSetRGB(0x64, 0x64, 0x64); - // Material spinner/throbber case NativeTheme::kColorId_ThrobberSpinningColor: return gfx::kGoogleBlue600;
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h index 66f5488e..68d9f2a 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h
@@ -367,11 +367,6 @@ kColorId_TableHeaderText, kColorId_TableHeaderBackground, kColorId_TableHeaderSeparator, - // Results Tables, such as the omnibox. - kColorId_ResultsTableNormalBackground, - kColorId_ResultsTableHoveredBackground, - kColorId_ResultsTableNormalText, - kColorId_ResultsTableDimmedText, // Colors for the material spinner (aka throbber). kColorId_ThrobberSpinningColor, kColorId_ThrobberWaitingColor,
diff --git a/ui/native_theme/native_theme_dark_aura.cc b/ui/native_theme/native_theme_dark_aura.cc index e97ba31f..bccba2f2 100644 --- a/ui/native_theme/native_theme_dark_aura.cc +++ b/ui/native_theme/native_theme_dark_aura.cc
@@ -54,14 +54,6 @@ case kColorId_TextfieldSelectionBackgroundFocused: return kTextSelectionBackgroundFocused; - // Results Tables - case kColorId_ResultsTableNormalBackground: - return SkColorSetRGB(0x28, 0x28, 0x28); - case kColorId_ResultsTableNormalText: - return SK_ColorWHITE; - case kColorId_ResultsTableDimmedText: - return SkColorSetA(GetSystemColor(kColorId_ResultsTableNormalText), 0x80); - // FocusableBorder case kColorId_FocusedBorderColor: return SkColorSetA(gfx::kGoogleBlue300, 0x66); @@ -78,7 +70,6 @@ case kColorId_LabelDisabledColor: case kColorId_TextOnProminentButtonColor: case kColorId_ButtonPressedShade: - case kColorId_ResultsTableHoveredBackground: case kColorId_ProminentButtonDisabledColor: case kColorId_ButtonBorderColor: case kColorId_DefaultIconColor:
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc index ed5b1ef..0e10023 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc
@@ -539,17 +539,6 @@ case kColorId_TableGroupingIndicatorColor: return system_colors_[COLOR_GRAYTEXT]; - // Results Tables - case kColorId_ResultsTableNormalBackground: - return system_colors_[COLOR_WINDOW]; - case kColorId_ResultsTableHoveredBackground: - return color_utils::AlphaBlend(system_colors_[COLOR_HIGHLIGHT], - system_colors_[COLOR_WINDOW], 0.25f); - case kColorId_ResultsTableNormalText: - return system_colors_[COLOR_WINDOWTEXT]; - case kColorId_ResultsTableDimmedText: - return color_utils::AlphaBlend(system_colors_[COLOR_WINDOWTEXT], - system_colors_[COLOR_WINDOW], 0.5f); default: break; }
diff --git a/ui/ozone/platform/scenic/BUILD.gn b/ui/ozone/platform/scenic/BUILD.gn index 67d670f..59d1d8ae 100644 --- a/ui/ozone/platform/scenic/BUILD.gn +++ b/ui/ozone/platform/scenic/BUILD.gn
@@ -63,11 +63,16 @@ "//ui/platform_window", ] + data_deps = [] if (enable_vulkan) { sources += [ "vulkan_implementation_scenic.cc", "vulkan_implementation_scenic.h", ] defines += [ "VK_USE_PLATFORM_MAGMA_KHR" ] + data_deps += [ + "//third_party/angle:libEGL", + "//third_party/angle:libGLESv2", + ] } }
diff --git a/ui/ozone/platform/scenic/scenic_surface_factory.cc b/ui/ozone/platform/scenic/scenic_surface_factory.cc index af49373..409a38d 100644 --- a/ui/ozone/platform/scenic/scenic_surface_factory.cc +++ b/ui/ozone/platform/scenic/scenic_surface_factory.cc
@@ -84,14 +84,17 @@ std::vector<gl::GLImplementation> ScenicSurfaceFactory::GetAllowedGLImplementations() { - // TODO(spang): Remove this after crbug.com/897208 is fixed. - return std::vector<gl::GLImplementation>{gl::kGLImplementationSwiftShaderGL, - gl::kGLImplementationStubGL}; + return std::vector<gl::GLImplementation>{ + gl::kGLImplementationSwiftShaderGL, + gl::kGLImplementationEGLGLES2, + gl::kGLImplementationStubGL, + }; } GLOzone* ScenicSurfaceFactory::GetGLOzone(gl::GLImplementation implementation) { switch (implementation) { case gl::kGLImplementationSwiftShaderGL: + case gl::kGLImplementationEGLGLES2: return egl_implementation_.get(); default: return nullptr;
diff --git a/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc b/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc index 3102ce8d..b7bf51c 100644 --- a/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc +++ b/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc
@@ -114,10 +114,14 @@ std::vector<const char*> VulkanImplementationScenic::GetRequiredDeviceExtensions() { - return {VK_KHR_SWAPCHAIN_EXTENSION_NAME, - VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME, - VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME, - VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME}; + return { + VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME, + VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME, + VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME, + VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME, + VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME, + VK_KHR_SWAPCHAIN_EXTENSION_NAME, + }; } VkFence VulkanImplementationScenic::CreateVkFenceForGpuFence(
diff --git a/ui/views/controls/label.cc b/ui/views/controls/label.cc index 90a54d5..bc082eb 100644 --- a/ui/views/controls/label.cc +++ b/ui/views/controls/label.cc
@@ -734,7 +734,7 @@ void Label::UpdateSelectionClipboard() { #if defined(OS_LINUX) && !defined(OS_CHROMEOS) if (!obscured()) { - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_SELECTION) + ui::ScopedClipboardWriter(ui::ClipboardType::kSelection) .WriteText(GetSelectedText()); } #endif @@ -959,7 +959,7 @@ void Label::CopyToClipboard() { if (!HasSelection() || obscured()) return; - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(GetSelectedText()); }
diff --git a/ui/views/controls/label_unittest.cc b/ui/views/controls/label_unittest.cc index 2cab103d..66fd7c7f 100644 --- a/ui/views/controls/label_unittest.cc +++ b/ui/views/controls/label_unittest.cc
@@ -1053,7 +1053,7 @@ EXPECT_STR_EQ(" mouse drag", GetSelectedText()); event_generator()->PressKey(ui::VKEY_C, kControlCommandModifier); - EXPECT_STR_EQ(" mouse drag", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ(" mouse drag", GetClipboardText(ui::ClipboardType::kCopyPaste)); } TEST_F(LabelSelectionTest, MouseDragMultilineLTR) { @@ -1249,14 +1249,14 @@ // selection clipboard. label()->SelectRange(gfx::Range(2, 5)); EXPECT_STR_EQ("bel", GetSelectedText()); - EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty()); + EXPECT_TRUE(GetClipboardText(ui::ClipboardType::kSelection).empty()); // Verify text selection using the mouse updates the selection clipboard. PerformMousePress(GetCursorPoint(5)); PerformMouseDragTo(GetCursorPoint(0)); PerformMouseRelease(GetCursorPoint(0)); EXPECT_STR_EQ("Label", GetSelectedText()); - EXPECT_STR_EQ("Label", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); + EXPECT_STR_EQ("Label", GetClipboardText(ui::ClipboardType::kSelection)); } #endif @@ -1275,7 +1275,7 @@ EXPECT_EQ(initial_text, GetSelectedText()); event_generator()->PressKey(ui::VKEY_C, kControlCommandModifier); - EXPECT_EQ(initial_text, GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_EQ(initial_text, GetClipboardText(ui::ClipboardType::kCopyPaste)); // The selection should get cleared on changing the text, but focus should not // be affected.
diff --git a/ui/views/controls/message_box_view.cc b/ui/views/controls/message_box_view.cc index 94173b3c..6c0b2c9 100644 --- a/ui/views/controls/message_box_view.cc +++ b/ui/views/controls/message_box_view.cc
@@ -168,7 +168,7 @@ if (message_labels_.size() == 1u && message_labels_[0]->selectable()) return false; - ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::ScopedClipboardWriter scw(ui::ClipboardType::kCopyPaste); scw.WriteText(std::accumulate( message_labels_.cbegin(), message_labels_.cend(), base::string16(), [](base::string16& left, Label* right) { return left + right->text(); }));
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc index 72ce49ef..67d069f 100644 --- a/ui/views/controls/textfield/textfield.cc +++ b/ui/views/controls/textfield/textfield.cc
@@ -617,8 +617,8 @@ gfx::Size Textfield::CalculatePreferredSize() const { DCHECK_GE(default_width_in_chars_, minimum_width_in_chars_); return gfx::Size( - views::style::GetExpectedTextWidth( - style::CONTEXT_TEXTFIELD, GetTextStyle(), default_width_in_chars_), + GetFontList().GetExpectedTextWidth(default_width_in_chars_) + + GetInsets().width(), LayoutProvider::GetControlHeightForFont(style::CONTEXT_TEXTFIELD, GetTextStyle(), GetFontList())); } @@ -626,11 +626,10 @@ gfx::Size Textfield::GetMinimumSize() const { DCHECK_LE(minimum_width_in_chars_, default_width_in_chars_); gfx::Size minimum_size = View::GetMinimumSize(); - if (minimum_width_in_chars_ >= 0) { - int expected_text_width = views::style::GetExpectedTextWidth( - style::CONTEXT_TEXTFIELD, GetTextStyle(), minimum_width_in_chars_); - minimum_size.set_width(expected_text_width + GetInsets().width()); - } + if (minimum_width_in_chars_ >= 0) + minimum_size.set_width( + GetFontList().GetExpectedTextWidth(minimum_width_in_chars_) + + GetInsets().width()); return minimum_size; } @@ -1705,7 +1704,7 @@ return readable && model_->HasSelection(); case ui::TextEditCommand::PASTE: ui::Clipboard::GetForCurrentThread()->ReadText( - ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + ui::ClipboardType::kCopyPaste, &result); return editable && !result.empty(); case ui::TextEditCommand::SELECT_ALL: return !text().empty() && GetSelectedRange().length() != text().length(); @@ -1803,7 +1802,7 @@ base::string16 Textfield::GetSelectionClipboardText() const { base::string16 selection_clipboard_text; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_SELECTION, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kSelection, &selection_clipboard_text); return selection_clipboard_text; } @@ -2104,10 +2103,10 @@ void Textfield::UpdateSelectionClipboard() { #if defined(OS_LINUX) && !defined(OS_CHROMEOS) if (text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD) { - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_SELECTION) + ui::ScopedClipboardWriter(ui::ClipboardType::kSelection) .WriteText(GetSelectedText()); if (controller_) - controller_->OnAfterCutOrCopy(ui::CLIPBOARD_TYPE_SELECTION); + controller_->OnAfterCutOrCopy(ui::ClipboardType::kSelection); } #endif } @@ -2263,7 +2262,7 @@ if (!read_only() && text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD && model_->Cut()) { if (controller_) - controller_->OnAfterCutOrCopy(ui::CLIPBOARD_TYPE_COPY_PASTE); + controller_->OnAfterCutOrCopy(ui::ClipboardType::kCopyPaste); return true; } return false; @@ -2272,7 +2271,7 @@ bool Textfield::Copy() { if (text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD && model_->Copy()) { if (controller_) - controller_->OnAfterCutOrCopy(ui::CLIPBOARD_TYPE_COPY_PASTE); + controller_->OnAfterCutOrCopy(ui::ClipboardType::kCopyPaste); return true; } return false;
diff --git a/ui/views/controls/textfield/textfield_model.cc b/ui/views/controls/textfield/textfield_model.cc index 5b9f9db..45f6d9c7 100644 --- a/ui/views/controls/textfield/textfield_model.cc +++ b/ui/views/controls/textfield/textfield_model.cc
@@ -522,8 +522,8 @@ bool TextfieldModel::Cut() { if (!HasCompositionText() && HasSelection() && !render_text_->obscured()) { - ui::ScopedClipboardWriter( - ui::CLIPBOARD_TYPE_COPY_PASTE).WriteText(GetSelectedText()); + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) + .WriteText(GetSelectedText()); // A trick to let undo/redo handle cursor correctly. // Undoing CUT moves the cursor to the end of the change rather // than beginning, unlike Delete/Backspace. @@ -539,8 +539,8 @@ bool TextfieldModel::Copy() { if (!HasCompositionText() && HasSelection() && !render_text_->obscured()) { - ui::ScopedClipboardWriter( - ui::CLIPBOARD_TYPE_COPY_PASTE).WriteText(GetSelectedText()); + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) + .WriteText(GetSelectedText()); return true; } return false; @@ -548,7 +548,7 @@ bool TextfieldModel::Paste() { base::string16 text; - ui::Clipboard::GetForCurrentThread()->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, + ui::Clipboard::GetForCurrentThread()->ReadText(ui::ClipboardType::kCopyPaste, &text); if (text.empty()) return false;
diff --git a/ui/views/controls/textfield/textfield_model_unittest.cc b/ui/views/controls/textfield/textfield_model_unittest.cc index 27a7566..2f06aaf 100644 --- a/ui/views/controls/textfield/textfield_model_unittest.cc +++ b/ui/views/controls/textfield/textfield_model_unittest.cc
@@ -591,7 +591,7 @@ ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); const base::string16 initial_clipboard_text = base::ASCIIToUTF16("initial text"); - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(initial_clipboard_text); base::string16 clipboard_text; @@ -601,14 +601,14 @@ // Cut with an empty selection should do nothing. model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, gfx::SELECTION_NONE); EXPECT_FALSE(model.Cut()); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text); EXPECT_EQ(initial_clipboard_text, clipboard_text); EXPECT_STR_EQ("HELLO WORLD", model.text()); EXPECT_EQ(11U, model.GetCursorPosition()); // Copy with an empty selection should do nothing. model.Copy(); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text); EXPECT_EQ(initial_clipboard_text, clipboard_text); EXPECT_STR_EQ("HELLO WORLD", model.text()); EXPECT_EQ(11U, model.GetCursorPosition()); @@ -617,7 +617,7 @@ model.render_text()->SetObscured(true); model.SelectAll(false); EXPECT_FALSE(model.Cut()); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text); EXPECT_EQ(initial_clipboard_text, clipboard_text); EXPECT_STR_EQ("HELLO WORLD", model.text()); EXPECT_STR_EQ("HELLO WORLD", model.GetSelectedText()); @@ -625,7 +625,7 @@ // Copy on obscured (password) text should do nothing. model.SelectAll(false); EXPECT_FALSE(model.Copy()); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text); EXPECT_EQ(initial_clipboard_text, clipboard_text); EXPECT_STR_EQ("HELLO WORLD", model.text()); EXPECT_STR_EQ("HELLO WORLD", model.GetSelectedText()); @@ -635,7 +635,7 @@ model.MoveCursor(gfx::LINE_BREAK, gfx::CURSOR_RIGHT, gfx::SELECTION_NONE); model.MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, gfx::SELECTION_RETAIN); EXPECT_TRUE(model.Cut()); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text); EXPECT_STR_EQ("WORLD", clipboard_text); EXPECT_STR_EQ("HELLO ", model.text()); EXPECT_EQ(6U, model.GetCursorPosition()); @@ -643,7 +643,7 @@ // Copy with non-empty selection. model.SelectAll(false); EXPECT_TRUE(model.Copy()); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &clipboard_text); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &clipboard_text); EXPECT_STR_EQ("HELLO ", clipboard_text); EXPECT_STR_EQ("HELLO ", model.text()); EXPECT_EQ(6U, model.GetCursorPosition()); @@ -1741,7 +1741,7 @@ TEST_F(TextfieldModelTest, Clipboard_WhiteSpaceStringTest) { // Test 1 // Clipboard text with a leading tab should be pasted with the tab stripped. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16("\tB")); TextfieldModel model(nullptr); @@ -1760,7 +1760,7 @@ // Test 2 // Clipboard text with multiple leading tabs and spaces should be pasted with // all tabs and spaces stripped. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16("\t\t\t B")); model.Append(base::ASCIIToUTF16("HELLO WORLD")); @@ -1777,7 +1777,7 @@ // Test 3 // Clipboard text with multiple tabs separating the words should be pasted // with one space replacing all tabs. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16("FOO \t\t BAR")); model.Append(base::ASCIIToUTF16("HELLO WORLD")); @@ -1795,7 +1795,7 @@ // Clipboard text with multiple leading tabs and multiple tabs separating // the words should be pasted with the leading tabs stripped and one space // replacing the intermediate tabs. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16("\t\tFOO \t\t BAR")); EXPECT_TRUE(model.Paste()); @@ -1808,7 +1808,7 @@ // Test 5 // Clipboard text with multiple trailing tabs should be pasted with all // trailing tabs stripped. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16("FOO BAR\t\t\t")); EXPECT_TRUE(model.Paste()); EXPECT_STR_EQ("FOO BAR", model.text()); @@ -1820,7 +1820,7 @@ // Test 6 // Clipboard text with only spaces and tabs should be pasted as a single // space. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16(" \t\t")); EXPECT_TRUE(model.Paste()); EXPECT_STR_EQ(" ", model.text()); @@ -1832,7 +1832,7 @@ // Test 7 // Clipboard text with lots of spaces between words should have all spaces // replaced with a single space. - ui::ScopedClipboardWriter(ui::CLIPBOARD_TYPE_COPY_PASTE) + ui::ScopedClipboardWriter(ui::ClipboardType::kCopyPaste) .WriteText(base::ASCIIToUTF16("FOO BAR")); EXPECT_TRUE(model.Paste()); EXPECT_STR_EQ("FOO BAR", model.text());
diff --git a/ui/views/controls/textfield/textfield_unittest.cc b/ui/views/controls/textfield/textfield_unittest.cc index d422612..2358e37 100644 --- a/ui/views/controls/textfield/textfield_unittest.cc +++ b/ui/views/controls/textfield/textfield_unittest.cc
@@ -416,7 +416,7 @@ ui::ClipboardType GetAndResetCopiedToClipboard() { ui::ClipboardType clipboard_type = copied_to_clipboard_; - copied_to_clipboard_ = ui::CLIPBOARD_TYPE_LAST; + copied_to_clipboard_ = ui::ClipboardType::kMaxValue; return clipboard_type; } @@ -730,7 +730,7 @@ menu->IsEnabledAt(menu_index++ /* CUT */)); EXPECT_EQ(textfield_has_selection, menu->IsEnabledAt(menu_index++ /* COPY */)); - EXPECT_NE(GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE).empty(), + EXPECT_NE(GetClipboardText(ui::ClipboardType::kCopyPaste).empty(), menu->IsEnabledAt(menu_index++ /* PASTE */)); EXPECT_EQ(textfield_has_selection, menu->IsEnabledAt(menu_index++ /* DELETE */)); @@ -803,7 +803,7 @@ // Position of the mouse for synthetic mouse events. gfx::Point mouse_position_; - ui::ClipboardType copied_to_clipboard_ = ui::CLIPBOARD_TYPE_LAST; + ui::ClipboardType copied_to_clipboard_ = ui::ClipboardType::kMaxValue; std::unique_ptr<ui::test::EventGenerator> event_generator_; private: @@ -1283,7 +1283,7 @@ EXPECT_STR_EQ("password", textfield_->text()); EXPECT_TRUE(last_contents_.empty()); model_->SelectAll(false); - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "foo"); // Cut and copy should be disabled. EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_CUT)); @@ -1293,7 +1293,7 @@ textfield_->ExecuteCommand(IDS_APP_COPY, 0); SendKeyEvent(ui::VKEY_C, false, true); SendAlternateCopy(); - EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("foo", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("password", textfield_->text()); // [Shift]+[Delete] should just delete without copying text to the clipboard. textfield_->SelectAll(false); @@ -1304,7 +1304,7 @@ textfield_->ExecuteCommand(IDS_APP_PASTE, 0); SendKeyEvent(ui::VKEY_V, false, true); SendAlternatePaste(); - EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("foo", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("foofoofoo", textfield_->text()); } @@ -1579,7 +1579,7 @@ EXPECT_TRUE(textfield_->context_menu_controller()); textfield_->SetText(ASCIIToUTF16("hello world")); - ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE); + ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardType::kCopyPaste); textfield_->ClearEditHistory(); EXPECT_TRUE(GetContextMenuModel()); VerifyTextfieldContextMenuContents(false, false, GetContextMenuModel()); @@ -1594,7 +1594,7 @@ VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel()); // Exercise the "paste enabled?" check in the verifier. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "Test"); VerifyTextfieldContextMenuContents(true, true, GetContextMenuModel()); } @@ -1965,12 +1965,12 @@ EXPECT_STR_EQ("read only", textfield_->GetSelectedText()); // Cut should be disabled. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "Test"); EXPECT_FALSE(textfield_->IsCommandIdEnabled(IDS_APP_CUT)); textfield_->ExecuteCommand(IDS_APP_CUT, 0); SendKeyEvent(ui::VKEY_X, false, true); SendAlternateCut(); - EXPECT_STR_EQ("Test", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("Test", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("read only", textfield_->text()); // Paste should be disabled. @@ -1981,16 +1981,16 @@ EXPECT_STR_EQ("read only", textfield_->text()); // Copy should work normally. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "Test"); EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_COPY)); textfield_->ExecuteCommand(IDS_APP_COPY, 0); - EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); + EXPECT_STR_EQ("read only", GetClipboardText(ui::ClipboardType::kCopyPaste)); + SetClipboardText(ui::ClipboardType::kCopyPaste, "Test"); SendKeyEvent(ui::VKEY_C, false, true); - EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "Test"); + EXPECT_STR_EQ("read only", GetClipboardText(ui::ClipboardType::kCopyPaste)); + SetClipboardText(ui::ClipboardType::kCopyPaste, "Test"); SendAlternateCopy(); - EXPECT_STR_EQ("read only", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("read only", GetClipboardText(ui::ClipboardType::kCopyPaste)); // SetText should work even in read only mode. textfield_->SetText(ASCIIToUTF16(" four five six ")); @@ -2304,70 +2304,70 @@ textfield_->SelectAll(false); EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_CUT)); textfield_->ExecuteCommand(IDS_APP_CUT, 0); - EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("123", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard()); // Ensure [Ctrl]+[x] cuts and [Ctrl]+[Alt][x] does nothing. textfield_->SetText(ASCIIToUTF16("456")); textfield_->SelectAll(false); SendKeyEvent(ui::VKEY_X, true, false, true, false); - EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("123", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("456", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); SendKeyEvent(ui::VKEY_X, false, true); - EXPECT_STR_EQ("456", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("456", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard()); // Ensure [Shift]+[Delete] cuts. textfield_->SetText(ASCIIToUTF16("123")); textfield_->SelectAll(false); SendAlternateCut(); - EXPECT_STR_EQ("123", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("123", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard()); // Reset clipboard text. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, ""); + SetClipboardText(ui::ClipboardType::kCopyPaste, ""); // Ensure [Shift]+[Delete] is a no-op in case there is no selection. textfield_->SetText(ASCIIToUTF16("123")); textfield_->SelectRange(gfx::Range(0)); SendAlternateCut(); - EXPECT_STR_EQ("", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("123", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); // Ensure IDS_APP_COPY copies. textfield_->SetText(ASCIIToUTF16("789")); textfield_->SelectAll(false); EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_COPY)); textfield_->ExecuteCommand(IDS_APP_COPY, 0); - EXPECT_STR_EQ("789", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("789", GetClipboardText(ui::ClipboardType::kCopyPaste)); + EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard()); // Ensure [Ctrl]+[c] copies and [Ctrl]+[Alt][c] does nothing. textfield_->SetText(ASCIIToUTF16("012")); textfield_->SelectAll(false); SendKeyEvent(ui::VKEY_C, true, false, true, false); - EXPECT_STR_EQ("789", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("789", GetClipboardText(ui::ClipboardType::kCopyPaste)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); SendKeyEvent(ui::VKEY_C, false, true); - EXPECT_STR_EQ("012", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("012", GetClipboardText(ui::ClipboardType::kCopyPaste)); + EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard()); // Ensure [Ctrl]+[Insert] copies. textfield_->SetText(ASCIIToUTF16("345")); textfield_->SelectAll(false); SendAlternateCopy(); - EXPECT_STR_EQ("345", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("345", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("345", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_COPY_PASTE, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kCopyPaste, GetAndResetCopiedToClipboard()); // Ensure IDS_APP_PASTE, [Ctrl]+[V], and [Shift]+[Insert] pastes; // also ensure that [Ctrl]+[Alt]+[V] does nothing. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "abc"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "abc"); textfield_->SetText(base::string16()); EXPECT_TRUE(textfield_->IsCommandIdEnabled(IDS_APP_PASTE)); textfield_->ExecuteCommand(IDS_APP_PASTE, 0); @@ -2382,9 +2382,9 @@ // Ensure [Ctrl]+[Shift]+[Insert] is a no-op. textfield_->SelectAll(false); SendKeyEvent(ui::VKEY_INSERT, true, true); - EXPECT_STR_EQ("abc", GetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE)); + EXPECT_STR_EQ("abc", GetClipboardText(ui::ClipboardType::kCopyPaste)); EXPECT_STR_EQ("abcabcabc", textfield_->text()); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); } TEST_F(TextfieldTest, CutCopyPasteWithEditCommand) { @@ -2863,13 +2863,13 @@ ui::EF_LEFT_MOUSE_BUTTON); textfield_->OnMouseReleased(release); EXPECT_EQ(gfx::Range(1, 3), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("12", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); + EXPECT_STR_EQ("12", GetClipboardText(ui::ClipboardType::kSelection)); // Select-all should update the selection clipboard. SendKeyEvent(ui::VKEY_A, false, true); EXPECT_EQ(gfx::Range(0, 4), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); // Shift-click selection modifications should update the clipboard. NonClientMouseClick(); @@ -2886,25 +2886,25 @@ ui::EF_LEFT_MOUSE_BUTTON); textfield_->OnMouseReleased(release_2); EXPECT_EQ(gfx::Range(0, 2), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("01", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); // Shift-Left/Right should update the selection clipboard. SendKeyEvent(ui::VKEY_RIGHT, true, false); - EXPECT_STR_EQ("012", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("012", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); SendKeyEvent(ui::VKEY_LEFT, true, false); - EXPECT_STR_EQ("01", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("01", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); SendKeyEvent(ui::VKEY_RIGHT, true, true); - EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); // Moving the cursor without a selection should not change the clipboard. SendKeyEvent(ui::VKEY_LEFT, false, false); EXPECT_EQ(gfx::Range(0, 0), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); // Middle clicking should paste at the mouse (not cursor) location. // The cursor should be placed at the end of the pasted text. @@ -2914,7 +2914,7 @@ textfield_->OnMousePressed(middle); EXPECT_STR_EQ("01230123", textfield_->text()); EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); + EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection)); // Middle clicking on an unfocused textfield should focus it and paste. textfield_->GetFocusManager()->ClearFocus(); @@ -2923,27 +2923,27 @@ EXPECT_TRUE(textfield_->HasFocus()); EXPECT_STR_EQ("012301230123", textfield_->text()); EXPECT_EQ(gfx::Range(8, 8), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("0123", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); + EXPECT_STR_EQ("0123", GetClipboardText(ui::ClipboardType::kSelection)); // Middle clicking with an empty selection clipboard should still focus. - SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, std::string()); + SetClipboardText(ui::ClipboardType::kSelection, std::string()); textfield_->GetFocusManager()->ClearFocus(); EXPECT_FALSE(textfield_->HasFocus()); textfield_->OnMousePressed(middle); EXPECT_TRUE(textfield_->HasFocus()); EXPECT_STR_EQ("012301230123", textfield_->text()); EXPECT_EQ(gfx::Range(4, 4), textfield_->GetSelectedRange()); - EXPECT_TRUE(GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION).empty()); + EXPECT_TRUE(GetClipboardText(ui::ClipboardType::kSelection).empty()); // Middle clicking in the selection should insert the selection clipboard // contents into the middle of the selection, and move the cursor to the end // of the pasted content. - SetClipboardText(ui::CLIPBOARD_TYPE_COPY_PASTE, "foo"); + SetClipboardText(ui::ClipboardType::kCopyPaste, "foo"); textfield_->SelectRange(gfx::Range(2, 6)); textfield_->OnMousePressed(middle); EXPECT_STR_EQ("0123foo01230123", textfield_->text()); EXPECT_EQ(gfx::Range(7, 7), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("foo", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); + EXPECT_STR_EQ("foo", GetClipboardText(ui::ClipboardType::kSelection)); // Double and triple clicking should update the clipboard contents. textfield_->SetText(ASCIIToUTF16("ab cd ef")); @@ -2963,25 +2963,25 @@ textfield_->OnMousePressed(double_click); textfield_->OnMouseReleased(release_word); EXPECT_EQ(gfx::Range(3, 5), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("cd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("cd", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); textfield_->OnMousePressed(press_word); textfield_->OnMouseReleased(release_word); EXPECT_EQ(gfx::Range(0, 8), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); // Selecting a range of text without any user interaction should not change // the clipboard content. textfield_->SelectRange(gfx::Range(0, 3)); EXPECT_STR_EQ("ab ", textfield_->GetSelectedText()); - EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("ab cd ef", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); - SetClipboardText(ui::CLIPBOARD_TYPE_SELECTION, "other"); + SetClipboardText(ui::ClipboardType::kSelection, "other"); textfield_->SelectAll(false); - EXPECT_STR_EQ("other", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("other", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); } // Verify that the selection clipboard is not updated for selections on a @@ -2994,8 +2994,8 @@ // textfield. SendKeyEvent(ui::VKEY_A, false, true); EXPECT_EQ(gfx::Range(0, 4), textfield_->GetSelectedRange()); - EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_SELECTION, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kSelection, GetAndResetCopiedToClipboard()); // Move focus to the next textfield. widget_->GetFocusManager()->AdvanceFocus(false); @@ -3008,20 +3008,20 @@ textfield2->SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); SendKeyEvent(ui::VKEY_A, false, true); EXPECT_EQ(gfx::Range(0, 4), textfield2->GetSelectedRange()); - EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); // Shift-Left/Right should not modify the selection clipboard for a password // textfield. SendKeyEvent(ui::VKEY_LEFT, true, false); EXPECT_EQ(gfx::Range(0, 3), textfield2->GetSelectedRange()); - EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); SendKeyEvent(ui::VKEY_RIGHT, true, false); EXPECT_EQ(gfx::Range(0, 4), textfield2->GetSelectedRange()); - EXPECT_STR_EQ("abcd", GetClipboardText(ui::CLIPBOARD_TYPE_SELECTION)); - EXPECT_EQ(ui::CLIPBOARD_TYPE_LAST, GetAndResetCopiedToClipboard()); + EXPECT_STR_EQ("abcd", GetClipboardText(ui::ClipboardType::kSelection)); + EXPECT_EQ(ui::ClipboardType::kMaxValue, GetAndResetCopiedToClipboard()); } #endif
diff --git a/ui/views/examples/native_theme_example.cc b/ui/views/examples/native_theme_example.cc index 7818147..680988f 100644 --- a/ui/views/examples/native_theme_example.cc +++ b/ui/views/examples/native_theme_example.cc
@@ -156,12 +156,6 @@ InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_TableHeaderText)); InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_TableHeaderBackground)); InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_TableHeaderSeparator)); - InsertColorRow(layout, - COLOR_LABEL_ARGS(kColorId_ResultsTableNormalBackground)); - InsertColorRow(layout, - COLOR_LABEL_ARGS(kColorId_ResultsTableHoveredBackground)); - InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ResultsTableNormalText)); - InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ResultsTableDimmedText)); InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ThrobberSpinningColor)); InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ThrobberWaitingColor)); InsertColorRow(layout, COLOR_LABEL_ARGS(kColorId_ThrobberLightColor));
diff --git a/ui/views/style/typography.cc b/ui/views/style/typography.cc index 98983f2..0fc46aa 100644 --- a/ui/views/style/typography.cc +++ b/ui/views/style/typography.cc
@@ -37,11 +37,5 @@ style); } -int GetExpectedTextWidth(int context, int style, int length) { - ValidateContextAndStyle(context, style); - return LayoutProvider::Get()->GetTypographyProvider().GetExpectedTextWidth( - context, style, length); -} - } // namespace style } // namespace views
diff --git a/ui/views/style/typography.h b/ui/views/style/typography.h index d630e605..e5a6c3c 100644 --- a/ui/views/style/typography.h +++ b/ui/views/style/typography.h
@@ -94,7 +94,6 @@ VIEWS_EXPORT const gfx::FontList& GetFont(int context, int style); VIEWS_EXPORT SkColor GetColor(const views::View& view, int context, int style); VIEWS_EXPORT int GetLineHeight(int context, int style); -VIEWS_EXPORT int GetExpectedTextWidth(int context, int style, int length); } // namespace style } // namespace views
diff --git a/ui/views/style/typography_provider.cc b/ui/views/style/typography_provider.cc index 5756db3..2f0f271 100644 --- a/ui/views/style/typography_provider.cc +++ b/ui/views/style/typography_provider.cc
@@ -99,14 +99,6 @@ return 0; } -int DefaultTypographyProvider::GetExpectedTextWidth(int context, - int style, - int length) const { - // TODO(etienneb): Do not rely on font.GetExpectedTextWidth(...) to retrieve - // the expected text width. - return GetFont(context, style).GetExpectedTextWidth(length); -} - // static void DefaultTypographyProvider::GetDefaultFont(int context, int style,
diff --git a/ui/views/style/typography_provider.h b/ui/views/style/typography_provider.h index 3a52348..0e3c6e04 100644 --- a/ui/views/style/typography_provider.h +++ b/ui/views/style/typography_provider.h
@@ -35,13 +35,6 @@ // Gets the line spacing, or 0 if it should be provided by gfx::FontList. virtual int GetLineHeight(int context, int style) const = 0; - // Returns the expected number of horizontal pixels needed to display the - // specified length of characters. Call gfx::GetStringWidth() to retrieve the - // actual number. - virtual int GetExpectedTextWidth(int context, - int style, - int length) const = 0; - // Returns the weight that will result in the ResourceBundle returning an // appropriate "medium" weight for UI. This caters for systems that are known // to be unable to provide a system font with weight other than NORMAL or BOLD @@ -68,7 +61,6 @@ int context, int style) const override; int GetLineHeight(int context, int style) const override; - int GetExpectedTextWidth(int context, int style, int length) const override; // Sets the |size_delta| and |font_weight| that the the default GetFont() // implementation uses. Always sets values, even for styles it doesn't know
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc index d9013f9..e321103 100644 --- a/ui/views/view_unittest.cc +++ b/ui/views/view_unittest.cc
@@ -1998,21 +1998,21 @@ normal->SelectAll(false); normal->ExecuteCommand(IDS_APP_CUT, 0); base::string16 result; - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); EXPECT_EQ(kNormalText, result); normal->SetText(kNormalText); // Let's revert to the original content. read_only->SelectAll(false); read_only->ExecuteCommand(IDS_APP_CUT, 0); result.clear(); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); // Cut should have failed, so the clipboard content should not have changed. EXPECT_EQ(kNormalText, result); password->SelectAll(false); password->ExecuteCommand(IDS_APP_CUT, 0); result.clear(); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); // Cut should have failed, so the clipboard content should not have changed. EXPECT_EQ(kNormalText, result); @@ -2024,19 +2024,19 @@ read_only->SelectAll(false); read_only->ExecuteCommand(IDS_APP_COPY, 0); result.clear(); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); EXPECT_EQ(kReadOnlyText, result); normal->SelectAll(false); normal->ExecuteCommand(IDS_APP_COPY, 0); result.clear(); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); EXPECT_EQ(kNormalText, result); password->SelectAll(false); password->ExecuteCommand(IDS_APP_COPY, 0); result.clear(); - clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); + clipboard->ReadText(ui::ClipboardType::kCopyPaste, &result); // Text cannot be copied from an obscured field; the clipboard won't change. EXPECT_EQ(kNormalText, result);
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js b/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js index 7f9c2b96..41bcfa3 100644 --- a/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js +++ b/ui/webui/resources/cr_components/chromeos/network/network_siminfo.js
@@ -522,28 +522,28 @@ if (this.error_ == ErrorType.NONE) { return ''; } - // TODO(stevenjb): Translate - let msg; + const retriesLeft = (this.simUnlockSent_ && this.deviceStateProperties_ && + this.deviceStateProperties_.simLockStatus) ? + this.deviceStateProperties_.simLockStatus.retriesLeft : + 0; + if (this.error_ == ErrorType.INCORRECT_PIN) { - msg = 'Incorrect PIN.'; - } else if (this.error_ == ErrorType.INCORRECT_PUK) { - msg = 'Incorrect PUK.'; - } else if (this.error_ == ErrorType.MISMATCHED_PIN) { - msg = 'PIN values do not match.'; - } else if (this.error_ == ErrorType.INVALID_PIN) { - msg = 'Invalid PIN.'; - } else if (this.error_ == ErrorType.INVALID_PUK) { - msg = 'Invalid PUK.'; - } else { - return 'UNKNOWN ERROR'; + return this.i18n('networkSimErrorIncorrectPin', retriesLeft); } - const retriesLeft = this.simUnlockSent_ && this.deviceStateProperties_ && - this.deviceStateProperties_.simLockStatus && - this.deviceStateProperties_.simLockStatus.retriesLeft; - if (retriesLeft) { - msg += ' Retries left: ' + retriesLeft.toString(); + if (this.error_ == ErrorType.INCORRECT_PUK) { + return this.i18n('networkSimErrorIncorrectPuk', retriesLeft); } - return msg; + if (this.error_ == ErrorType.MISMATCHED_PIN) { + return this.i18n('networkSimErrorPinMismatch'); + } + if (this.error_ == ErrorType.INVALID_PIN) { + return this.i18n('networkSimErrorInvalidPin', retriesLeft); + } + if (this.error_ == ErrorType.INVALID_PUK) { + return this.i18n('networkSimErrorInvalidPuk', retriesLeft); + } + assertNotReached(); + return ''; }, /**
diff --git a/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn b/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn index 47f3122..04f8ef77 100644 --- a/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn +++ b/ui/webui/resources/cr_elements/chromeos/network/BUILD.gn
@@ -65,8 +65,10 @@ js_library("cr_network_select") { deps = [ ":cr_network_list_types", + ":cr_network_listener_behavior", ":cr_onc_types", "//ui/webui/resources/js:util", + "//ui/webui/resources/js/chromeos:onc_mojo", ] externs_list = [ "$externs_path/networking_private.js" ] }
diff --git a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html index 98640a6..b60466f 100644 --- a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html +++ b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.html
@@ -2,7 +2,9 @@ <link rel="import" href="../../chromeos/network/cr_network_list.html"> <link rel="import" href="../../chromeos/network/cr_onc_types.html"> +<link rel="import" href="cr_network_listener_behavior.html"> <link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> +<link rel="import" href="chrome://resources/html/chromeos/onc_mojo.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-progress/paper-progress.html"> <dom-module id="cr-network-select">
diff --git a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js index f1d8f2e..52899343 100644 --- a/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js +++ b/ui/webui/resources/cr_elements/chromeos/network/cr_network_select.js
@@ -10,6 +10,8 @@ Polymer({ is: 'cr-network-select', + behaviors: [CrNetworkListenerBehavior], + properties: { /** * Show all buttons in list items. @@ -65,54 +67,31 @@ cellularDeviceState_: Object, }, - /** - * Returns network list object for testing. - */ - getNetworkListForTest: function() { - return this.$.networkList.$$('#networkList'); - }, - /** @type {!CrOnc.NetworkStateProperties|undefined} */ defaultNetworkState_: undefined, - focus: function() { - this.$.networkList.focus(); - }, - - /** - * Listener function for chrome.networkingPrivate.onNetworkListChanged event. - * @type {function(!Array<string>)} - * @private - */ - networkListChangedListener_: function() {}, - - /** - * Listener function for chrome.networkingPrivate.onDeviceStateListChanged - * event. - * @type {function(!Array<string>)} - * @private - */ - deviceStateListChangedListener_: function() {}, /** @private {number|null} */ scanIntervalId_: null, + /** @private {?chromeos.networkConfig.mojom.CrosNetworkConfigProxy} */ + networkConfigProxy_: null, + + /** @override */ + created: function() { + this.networkConfigProxy_ = + network_config.MojoInterfaceProviderImpl.getInstance() + .getMojoServiceProxy(); + }, + /** @override */ attached: function() { - this.networkListChangedListener_ = this.refreshNetworks.bind(this); - chrome.networkingPrivate.onNetworkListChanged.addListener( - this.networkListChangedListener_); - - this.deviceStateListChangedListener_ = this.refreshNetworks.bind(this); - chrome.networkingPrivate.onDeviceStateListChanged.addListener( - this.deviceStateListChangedListener_); - this.refreshNetworks(); /** @const */ const INTERVAL_MS = 10 * 1000; - chrome.networkingPrivate.requestNetworkScan(); + this.networkConfigProxy_.requestNetworkScan(OncMojo.NetworkType.kAll); this.scanIntervalId_ = window.setInterval(function() { - chrome.networkingPrivate.requestNetworkScan(); + this.networkConfigProxy_.requestNetworkScan(OncMojo.NetworkType.kAll); }.bind(this), INTERVAL_MS); }, @@ -121,10 +100,27 @@ if (this.scanIntervalId_ !== null) { window.clearInterval(this.scanIntervalId_); } - chrome.networkingPrivate.onNetworkListChanged.removeListener( - this.networkListChangedListener_); - chrome.networkingPrivate.onDeviceStateListChanged.removeListener( - this.deviceStateListChangedListener_); + }, + + /** + * Returns network list object for testing. + */ + getNetworkListForTest: function() { + return this.$.networkList.$$('#networkList'); + }, + + focus: function() { + this.$.networkList.focus(); + }, + + /** CrosNetworkConfigObserver impl */ + onNetworkStateListChanged: function() { + this.refreshNetworks(); + }, + + /** CrosNetworkConfigObserver impl */ + onDeviceStateListChanged: function() { + this.refreshNetworks(); }, /**
diff --git a/ui/webui/resources/cr_elements/cr_button/BUILD.gn b/ui/webui/resources/cr_elements/cr_button/BUILD.gn index 1425406..b625d82 100644 --- a/ui/webui/resources/cr_elements/cr_button/BUILD.gn +++ b/ui/webui/resources/cr_elements/cr_button/BUILD.gn
@@ -13,7 +13,6 @@ js_library("cr_button") { deps = [ "//third_party/polymer/v1_0/components-chromium/paper-behaviors:paper-ripple-behavior-extracted", - "//ui/webui/resources/js:cr", "//ui/webui/resources/js/cr/ui:focus_outline_manager", ] }
diff --git a/ui/webui/resources/cr_elements/cr_button/cr_button.html b/ui/webui/resources/cr_elements/cr_button/cr_button.html index 58c3d13..8c1636e 100644 --- a/ui/webui/resources/cr_elements/cr_button/cr_button.html +++ b/ui/webui/resources/cr_elements/cr_button/cr_button.html
@@ -1,6 +1,5 @@ <link rel="import" href="../../html/polymer.html"> -<link rel="import" href="chrome://resources/html/cr.html"> <link rel="import" href="chrome://resources/html/cr/ui/focus_outline_manager.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-behaviors/paper-ripple-behavior.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
diff --git a/ui/webui/resources/cr_elements/cr_button/cr_button.js b/ui/webui/resources/cr_elements/cr_button/cr_button.js index 2dd96d21..301a0606 100644 --- a/ui/webui/resources/cr_elements/cr_button/cr_button.js +++ b/ui/webui/resources/cr_elements/cr_button/cr_button.js
@@ -34,6 +34,7 @@ keydown: 'onKeyDown_', keyup: 'onKeyUp_', pointerdown: 'onPointerDown_', + tap: 'onTap_', }, /** @override */ @@ -109,4 +110,13 @@ onPointerDown_: function() { this.ensureRipple(); }, + + /** + * Need to handle tap events to enable tap events for where they are still + * used with |button.addEventListener('tap', handler)|. + * TODO(crbug.com/812035): Remove function and listener after Chrome OS no + * longer uses tap event at least with addEventListener(). + * @private + */ + onTap_: function() {} });
diff --git a/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html b/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html index 97965d2..c8f6922 100644 --- a/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html +++ b/ui/webui/resources/cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector.html
@@ -13,8 +13,6 @@ --avatar-size: 96px; --avatar-spacing: 24px; display: inline-flex; - - @apply --avatar-selector; } #avatar-grid .avatar { @@ -37,8 +35,6 @@ padding: 0; transition: none !important; /* Polymer's :host([animated]) rule. */ width: var(--avatar-size); - - @apply --avatar-selector-avatar; } @media (prefers-color-scheme: dark) {
diff --git a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html index a2dc60b..180680c0 100644 --- a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html +++ b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.html
@@ -72,7 +72,7 @@ explicitly used. --> <cr-input label="[[label]]" on-click="onClick_" value="[[value]]" on-input="onInput_" id="search" autofocus="[[autofocus]]" - placeholder="[[placeholder]]" + placeholder="[[placeholder]]" readonly="[[readonly]]" error-message="[[getErrorMessage_(errorMessage, errorMessageAllowed)]]" invalid="[[shouldShowErrorMessage_(errorMessage, errorMessageAllowed)]]"> <div id="progress-container" slot="suffix">
diff --git a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js index 22ae2af..031473f3 100644 --- a/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js +++ b/ui/webui/resources/cr_elements/cr_searchable_drop_down/cr_searchable_drop_down.js
@@ -20,6 +20,11 @@ reflectToAttribute: true, }, + readonly: { + type: Boolean, + reflectToAttribute: true, + }, + /** * Whether space should be left below the text field to display an error * message. Must be true for |errorMessage| to be displayed. @@ -102,7 +107,9 @@ /** @private */ onClick_: function() { - this.$$('iron-dropdown').open(); + if (!this.readonly) { + this.$$('iron-dropdown').open(); + } }, /** @private */
diff --git a/ui/webui/resources/html/cr/ui/focus_outline_manager.html b/ui/webui/resources/html/cr/ui/focus_outline_manager.html index 666ab0c..db17b1e 100644 --- a/ui/webui/resources/html/cr/ui/focus_outline_manager.html +++ b/ui/webui/resources/html/cr/ui/focus_outline_manager.html
@@ -1 +1,2 @@ +<link rel="import" href="../../../html/cr.html"> <script src="../../../js/cr/ui/focus_outline_manager.js"></script>