diff --git a/BUILD.gn b/BUILD.gn index e3178c08..f8ee68c6 100644 --- a/BUILD.gn +++ b/BUILD.gn
@@ -1293,8 +1293,8 @@ } if (is_win || is_android) { data_deps += [ - "//chrome/test:angle_perftests", "//components:components_perftests", + "//third_party/angle/src/tests:angle_perftests", ] } }
diff --git a/DEPS b/DEPS index 073d5e7d..5a4771b 100644 --- a/DEPS +++ b/DEPS
@@ -194,11 +194,11 @@ # 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': '52a4379f03f7cd4e1c67eb69a756abc5838a658f', + 'skia_revision': 'b19fe438d6bf5682dce223586bdfe268a4173606', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '475b4206994c8112c5ceec31fca9caa542fbd07f', + 'v8_revision': 'b24a8db8f5b35fb2b2155a82ac5e2cd0827a056c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -206,7 +206,7 @@ # 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': 'd38c75c5ea103067d9751d085de47c3c6774dd93', + 'angle_revision': '465a912582bbe291786b0e009c81973ba46649a4', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -265,7 +265,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'bc71e369059fbfc22ac86445a4c8d941dbaa2b92', + 'devtools_frontend_revision': 'e2f33ada858c9a773126cf8724942d029e927db6', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -876,7 +876,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '95099f475463caa66801dd1b22ee851fe8bc05be', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '49735e227c7e1ae863f40e3502bb1bc76fd610f7', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -1220,7 +1220,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + 'f5fe9513c1e0ac193bd94c9eb59af438cebf9b8a', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '350be7ea7229bf9916a236738a1c5ec232d918fc', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1317,7 +1317,7 @@ }, 'src/third_party/re2/src': - Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '14d3193228e3b3cfd21094474d64434a4840bae9', + Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'a65cf8adc4eb975683f1db54ff788caa7a9b4f01', 'src/third_party/r8': { 'packages': [ @@ -1520,7 +1520,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ba7df5276ab4dd60eca00eefcc3dcc7e45857bf8', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@08485d8c2154939de9817fc705b00d9203e31336', 'condition': 'checkout_src_internal', },
diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h index f0edc53b..9305174 100644 --- a/base/allocator/partition_allocator/partition_alloc.h +++ b/base/allocator/partition_allocator/partition_alloc.h
@@ -786,7 +786,7 @@ } size_t requested_size = size; size = internal::PartitionSizeAdjustAdd(size); -#if ENABLE_CHECKED_PTR +#if ENABLE_TAG_FOR_CHECKED_PTR2 PA_CHECK(size >= requested_size); #endif auto* bucket = SizeToBucket(size);
diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc index 454de9ca..dd45ad0b 100644 --- a/base/allocator/partition_allocator/partition_alloc_unittest.cc +++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
@@ -130,7 +130,7 @@ namespace internal { const size_t kTestAllocSize = 16; -#if !DCHECK_IS_ON() +#if !DCHECK_IS_ON() || BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) const size_t kPointerOffset = kPartitionTagSize; const size_t kExtraAllocSize = kPartitionTagSize; #else @@ -919,8 +919,11 @@ #if defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) TEST_F(PartitionAllocTest, GetOffsetMultiplePages) { - size_t size = 48 - kExtraAllocSize; - size_t real_size = size + kExtraAllocSize; + const size_t real_size = 80; + const size_t requested_size = real_size - kExtraAllocSize; + // Double check we don't end up with 0 or negative size. + EXPECT_GT(requested_size, 0u); + EXPECT_LE(requested_size, real_size); PartitionBucket<ThreadSafe>* bucket = allocator.root()->SizeToBucket(real_size); // Make sure the test is testing multiple partition pages case. @@ -930,12 +933,12 @@ (bucket->num_system_pages_per_slot_span * kSystemPageSize) / real_size; std::vector<void*> ptrs; for (size_t i = 0; i < num_slots; ++i) { - ptrs.push_back(allocator.root()->Alloc(size, type_name)); + ptrs.push_back(allocator.root()->Alloc(requested_size, type_name)); } for (size_t i = 0; i < num_slots; ++i) { char* ptr = static_cast<char*>(ptrs[i]); - for (size_t offset = 0; offset < size; offset += 13) { - EXPECT_EQ(PartitionAllocGetSize<ThreadSafe>(ptr), size); + for (size_t offset = 0; offset < requested_size; offset += 13) { + EXPECT_EQ(PartitionAllocGetSize<ThreadSafe>(ptr), requested_size); EXPECT_EQ(PartitionAllocGetSlotOffset<ThreadSafe>(ptr + offset), offset); // TODO(bartekn): Remove when CheckedPtr2Impl no longer calls mismatched // vartiant. @@ -2385,7 +2388,7 @@ // rounded up to the nearest bucket size, then have an address of the form: // // (page-aligned address) + i * bucket_size. -#if DCHECK_IS_ON() || ENABLE_CHECKED_PTR +#if DCHECK_IS_ON() || ENABLE_TAG_FOR_CHECKED_PTR2 // When DCHECK_IS_ON(), a kCookieSize (16) cookie is added on both sides // before rounding up the allocation size. The returned pointer points after // the cookie. @@ -2458,7 +2461,7 @@ } #endif // !ENABLE_PARTITION_ALLOC_COOKIES -#if ENABLE_CHECKED_PTR +#if ENABLE_TAG_FOR_CHECKED_PTR2 TEST_F(PartitionAllocTest, TagBasic) { size_t alloc_size = 64 - kExtraAllocSize;
diff --git a/base/allocator/partition_allocator/partition_tag.h b/base/allocator/partition_allocator/partition_tag.h index ae91f29..8f4aecc8 100644 --- a/base/allocator/partition_allocator/partition_tag.h +++ b/base/allocator/partition_allocator/partition_tag.h
@@ -10,7 +10,7 @@ #include "base/notreached.h" #include "build/build_config.h" -#define ENABLE_CHECKED_PTR 0 +#define ENABLE_TAG_FOR_CHECKED_PTR2 0 namespace base { namespace internal { @@ -21,7 +21,7 @@ static constexpr PartitionTag kTagTemporaryInitialValue = 0x0BAD; -#if ENABLE_CHECKED_PTR +#if ENABLE_TAG_FOR_CHECKED_PTR2 // Allocate extra 16 bytes for the partition tag. 14 bytes are unused // (reserved). @@ -63,7 +63,7 @@ return *PartitionTagPointer(ptr); } -#else // !ENABLE_CHECKED_PTR +#else // !ENABLE_TAG_FOR_CHECKED_PTR2 // No tag added. static constexpr size_t kPartitionTagSize = 0; @@ -91,7 +91,7 @@ return 0; } -#endif // !ENABLE_CHECKED_PTR +#endif // !ENABLE_TAG_FOR_CHECKED_PTR2 } // namespace internal } // namespace base
diff --git a/base/memory/checked_ptr.h b/base/memory/checked_ptr.h index bcc69e8..7f7620cc 100644 --- a/base/memory/checked_ptr.h +++ b/base/memory/checked_ptr.h
@@ -328,7 +328,8 @@ // we aren't striving to maximize compatibility with raw pointers, merely // adding support for cases encountered so far). template <typename T, -#if defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) && ENABLE_CHECKED_PTR +#if defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) && \ + ENABLE_TAG_FOR_CHECKED_PTR2 typename Impl = internal::CheckedPtr2Impl<>> #else typename Impl = internal::CheckedPtrNoOpImpl>
diff --git a/base/memory/checked_ptr_unittest.cc b/base/memory/checked_ptr_unittest.cc index 28b5b65..d17828a 100644 --- a/base/memory/checked_ptr_unittest.cc +++ b/base/memory/checked_ptr_unittest.cc
@@ -618,7 +618,8 @@ } // namespace -#if defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) && ENABLE_CHECKED_PTR +#if defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) && \ + ENABLE_TAG_FOR_CHECKED_PTR2 namespace base { namespace internal { @@ -716,4 +717,5 @@ } // namespace internal } // namespace base -#endif // defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) && ENABLE_CHECKED_PTR +#endif // defined(ARCH_CPU_64_BITS) && !defined(OS_NACL) && + // ENABLE_TAG_FOR_CHECKED_PTR2
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index d483562..eadda43a 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -1527,6 +1527,13 @@ # TODO(https://crbug.com/1049569): Remove after Clang 87b235db. cflags += [ "-Wno-max-tokens" ] } + + if (llvm_force_head_revision) { + # An ABI compat warning we don't care about, https://crbug.com/1102157 + # TODO(thakis): Push this to the (few) targets that need it, + # instead of having a global flag. + cflags += [ "-Wno-psabi" ] + } } } }
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index a7d602a..e36d4b6 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -0.20200704.0.1 +0.20200705.3.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index 440e24c..e36d4b6 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -0.20200703.3.1 +0.20200705.3.1
diff --git a/chrome/VERSION b/chrome/VERSION index 1df8d7d..20f893fd 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=86 MINOR=0 -BUILD=4193 +BUILD=4195 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java index 0f66238..cbe8798 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
@@ -296,6 +296,13 @@ } /** + * Initializes download related systems for background task. + */ + public void initForBackgroundTask() { + getNativeDownloadManagerService(); + } + + /** * Pre-load shared prefs to avoid being blocked on the disk access async task in the future. */ public static void warmUpSharedPrefs() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java index 530db7b..31f9f20d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java
@@ -9,6 +9,7 @@ import org.chromium.base.Callback; import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.NativeMethods; +import org.chromium.chrome.browser.download.DownloadManagerService; import org.chromium.chrome.browser.flags.CachedFeatureFlags; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchConfiguration; @@ -59,9 +60,9 @@ // In case of future upgrades, we would need to build an intent for the old version and // validate that this code still works. This would require decoupling this immediate class // from native as well. - assert BrowserStartupController.getInstance().isFullBrowserStarted() || mStartsServiceManagerOnly; + DownloadManagerService.getDownloadManagerService().initForBackgroundTask(); ProfileKey key = ProfileKey.getLastUsedRegularProfileKey(); DownloadBackgroundTaskJni.get().startBackgroundTask(DownloadBackgroundTask.this, key, mCurrentTaskType, needsReschedule -> callback.taskFinished(needsReschedule));
diff --git a/chrome/app/os_settings_strings.grdp b/chrome/app/os_settings_strings.grdp index 72e26cd..a5adc71 100644 --- a/chrome/app/os_settings_strings.grdp +++ b/chrome/app/os_settings_strings.grdp
@@ -2806,10 +2806,13 @@ <!-- Apps > Manage your apps > Parallels --> <message name="IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_CAMERA_LABEL" desc="Label for the Parallels permissions dialog when camera permissions are being adjusted"> - The change in camera setting requires Parallels Desktop to relaunch + The change in camera setting requires Parallels Desktop to relaunch. Relaunch Parallels Desktop to proceed. </message> <message name="IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_MICROPHONE_LABEL" desc="Label for the Parallels permissions dialog when microphone permissions are being adjusted"> - The change in microphone setting requires Parallels Desktop to relaunch + The change in microphone setting requires Parallels Desktop to relaunch. Relaunch Parallels Desktop to proceed. + </message> + <message name="IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_RELAUNCH_BUTTON" desc="Label for the relaunch button in the Plugin Vm permissions dialog"> + Relaunch </message> <!-- Apps > Manage your apps > Parallels > Shared folders -->
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_CAMERA_LABEL.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_CAMERA_LABEL.png.sha1 index a8bec807..f7e28ad 100644 --- a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_CAMERA_LABEL.png.sha1 +++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_CAMERA_LABEL.png.sha1
@@ -1 +1 @@ -2bbc97e60c184025e970669308edeeecc357b8c6 \ No newline at end of file +ecc6f52546d8c449d6fd407324cdf64df53d5ea4 \ No newline at end of file
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_MICROPHONE_LABEL.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_MICROPHONE_LABEL.png.sha1 index ce9f9ef..6cb8738 100644 --- a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_MICROPHONE_LABEL.png.sha1 +++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_MICROPHONE_LABEL.png.sha1
@@ -1 +1 @@ -861539d267a6410e439a59d64fbaa42539c15bd6 \ No newline at end of file +d72b198d8dd8bf56c6313a6b3555342a68734538 \ No newline at end of file
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_RELAUNCH_BUTTON.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_RELAUNCH_BUTTON.png.sha1 new file mode 100644 index 0000000..f7e28ad --- /dev/null +++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_RELAUNCH_BUTTON.png.sha1
@@ -0,0 +1 @@ +ecc6f52546d8c449d6fd407324cdf64df53d5ea4 \ No newline at end of file
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 9e0c67f..9ee51ee 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -3153,9 +3153,9 @@ "kerberos/kerberos_ticket_expiry_notification_test.cc", "lacros/lacros_util_unittest.cc", "local_search_service/content_extraction_utils_unittest.cc", - "local_search_service/index_unittest.cc", "local_search_service/inverted_index_search_unittest.cc", "local_search_service/inverted_index_unittest.cc", + "local_search_service/linear_map_search_unittest.cc", "local_search_service/local_search_service_unittest.cc", "local_search_service/proxy/local_search_service_proxy_unittest.cc", "local_search_service/proxy/types_mojom_traits_unittest.cc",
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc index ee2a9e9..bd9556cc 100644 --- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc +++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_util.cc
@@ -26,11 +26,7 @@ return base::nullopt; } const AXNodeInfoData* node_ptr = source_node.GetNode(); - // Source node should be node, not window, when event type is not - // WINDOW_CHANGED. - DCHECK(node_ptr); - - if (node_ptr->range_info) { + if (node_ptr && node_ptr->range_info) { return ax::mojom::Event::kValueChanged; } else { return ax::mojom::Event::kAriaAttributeChanged;
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index 40d14b7..561e51d 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -626,6 +626,7 @@ TestCase("transferDragDropTreeItemDenies").FilesNg(), TestCase("transferDragAndHoverTreeItemEntryList"), TestCase("transferDragAndHoverTreeItemFakeEntry"), + TestCase("transferDragFileListItemSelects"), TestCase("transferDragAndDrop"), TestCase("transferDragAndHover"), TestCase("transferFromDownloadsToDownloads"),
diff --git a/chrome/browser/chromeos/input_method/assistive_window_controller.cc b/chrome/browser/chromeos/input_method/assistive_window_controller.cc index 64af79b..be7752a 100644 --- a/chrome/browser/chromeos/input_method/assistive_window_controller.cc +++ b/chrome/browser/chromeos/input_method/assistive_window_controller.cc
@@ -11,13 +11,10 @@ #include "ash/public/cpp/shell_window_ids.h" #include "ash/shell.h" #include "ash/wm/window_util.h" -#include "base/metrics/user_metrics.h" #include "chrome/browser/chromeos/input_method/assistive_window_controller_delegate.h" #include "chrome/browser/chromeos/input_method/assistive_window_properties.h" #include "chrome/browser/chromeos/input_method/ui/suggestion_details.h" #include "chrome/browser/profiles/profile_manager.h" -#include "chrome/browser/ui/settings_window_manager_chromeos.h" -#include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h" #include "components/prefs/pref_service.h" #include "ui/base/ime/chromeos/ime_bridge.h" #include "ui/views/widget/widget.h" @@ -163,11 +160,9 @@ suggestion_window_view_->Show(details); } +// TODO(crbug/1102219): Method unused. Remove all definitions and references. void AssistiveWindowController::ShowMultipleSuggestions( const std::vector<base::string16>& suggestions) { - if (!suggestion_window_view_) - InitSuggestionWindow(); - suggestion_window_view_->ShowMultipleCandidates(suggestions); } void AssistiveWindowController::SetButtonHighlighted( @@ -208,7 +203,7 @@ if (!suggestion_window_view_) InitSuggestionWindow(); if (window_.visible) { - suggestion_window_view_->ShowMultipleCandidates(window.candidates); + suggestion_window_view_->ShowMultipleCandidates(window); } else { HideSuggestion(); } @@ -221,14 +216,7 @@ void AssistiveWindowController::AssistiveWindowButtonClicked( const ui::ime::AssistiveWindowButton& button) const { - if (button.id == ui::ime::ButtonId::kSmartInputsSettingLink) { - base::RecordAction(base::UserMetricsAction("OpenSmartInputsSettings")); - chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( - ProfileManager::GetActiveUserProfile(), - chromeos::settings::mojom::kSmartInputsSubpagePath); - } else { delegate_->AssistiveWindowButtonClicked(button); - } } ui::ime::SuggestionWindowView*
diff --git a/chrome/browser/chromeos/input_method/assistive_window_properties.h b/chrome/browser/chromeos/input_method/assistive_window_properties.h index b74c53e3..521d069 100644 --- a/chrome/browser/chromeos/input_method/assistive_window_properties.h +++ b/chrome/browser/chromeos/input_method/assistive_window_properties.h
@@ -14,10 +14,11 @@ AssistiveWindowProperties(); ~AssistiveWindowProperties(); - ui::ime::AssistiveWindowType type; - bool visible; + ui::ime::AssistiveWindowType type = ui::ime::AssistiveWindowType::kNone; + bool visible = false; std::string announce_string; std::vector<base::string16> candidates; + bool show_indices = false; }; } // namespace chromeos
diff --git a/chrome/browser/chromeos/input_method/emoji_suggester.cc b/chrome/browser/chromeos/input_method/emoji_suggester.cc index fafa4689..7c76eb0a 100644 --- a/chrome/browser/chromeos/input_method/emoji_suggester.cc +++ b/chrome/browser/chromeos/input_method/emoji_suggester.cc
@@ -69,7 +69,8 @@ } // namespace -EmojiSuggester::EmojiSuggester(InputMethodEngine* engine) : engine_(engine) { +EmojiSuggester::EmojiSuggester(SuggestionHandlerInterface* engine) + : engine_(engine) { LoadEmojiMap(); properties_.type = ui::ime::AssistiveWindowType::kEmojiSuggestion; current_candidate_.id = ui::ime::ButtonId::kSuggestion; @@ -134,6 +135,9 @@ if (AcceptSuggestion(current_candidate_.index)) status = SuggestionStatus::kAccept; } else if (event.key == "Down") { + if (!properties_.show_indices) { + ShowSuggestionWindowWithIndices(true); + } current_candidate_.index < candidates_.size() - 1 ? current_candidate_.index++ : current_candidate_.index = 0; @@ -142,6 +146,9 @@ &error); status = SuggestionStatus::kBrowsing; } else if (event.key == "Up") { + if (!properties_.show_indices) { + ShowSuggestionWindowWithIndices(true); + } current_candidate_.index > 0 && current_candidate_.index != INT_MAX ? current_candidate_.index-- : current_candidate_.index = candidates_.size() - 1; @@ -191,6 +198,12 @@ properties_.visible = true; properties_.candidates = candidates_; properties_.announce_string = kShowEmojiSuggestionMessage; + ShowSuggestionWindowWithIndices(false); +} + +void EmojiSuggester::ShowSuggestionWindowWithIndices(bool show_indices) { + properties_.show_indices = show_indices; + std::string error; engine_->SetAssistiveWindowProperties(context_id_, properties_, &error); if (!error.empty()) { LOG(ERROR) << "Fail to show suggestion. " << error;
diff --git a/chrome/browser/chromeos/input_method/emoji_suggester.h b/chrome/browser/chromeos/input_method/emoji_suggester.h index 7b05d0f..8cdfc61 100644 --- a/chrome/browser/chromeos/input_method/emoji_suggester.h +++ b/chrome/browser/chromeos/input_method/emoji_suggester.h
@@ -7,10 +7,10 @@ #include <string> -#include "chrome/browser/chromeos/input_method/input_method_engine.h" #include "chrome/browser/chromeos/input_method/input_method_engine_base.h" #include "chrome/browser/chromeos/input_method/suggester.h" #include "chrome/browser/chromeos/input_method/suggestion_enums.h" +#include "chrome/browser/chromeos/input_method/suggestion_handler_interface.h" #include "chrome/browser/chromeos/input_method/ui/assistive_delegate.h" namespace chromeos { @@ -19,7 +19,7 @@ // dismiss the suggestion according to the user action. class EmojiSuggester : public Suggester { public: - explicit EmojiSuggester(InputMethodEngine* engine); + explicit EmojiSuggester(SuggestionHandlerInterface* engine); ~EmojiSuggester() override; // Suggester overrides: @@ -37,13 +37,14 @@ private: void ShowSuggestion(const std::string& text); + void ShowSuggestionWindowWithIndices(bool show_indices); void LoadEmojiMap(); void OnEmojiDataLoaded(const std::string& emoji_data); void RecordAcceptanceIndex(int index); void ResetState(); void BuildCandidateAnnounceString(); - InputMethodEngine* const engine_; + SuggestionHandlerInterface* const engine_; // ID of the focused text field, 0 if none is focused. int context_id_ = -1;
diff --git a/chrome/browser/chromeos/input_method/emoji_suggester_unittest.cc b/chrome/browser/chromeos/input_method/emoji_suggester_unittest.cc index 9347bd9..c7d0f3e 100644 --- a/chrome/browser/chromeos/input_method/emoji_suggester_unittest.cc +++ b/chrome/browser/chromeos/input_method/emoji_suggester_unittest.cc
@@ -14,10 +14,66 @@ const char kEmojiData[] = "happy,😀;😃;😄"; +class TestSuggestionHandler : public SuggestionHandlerInterface { + public: + bool SetButtonHighlighted(int context_id, + const ui::ime::AssistiveWindowButton& button, + bool highlighted, + std::string* error) override { + return false; + } + + bool SetAssistiveWindowProperties( + int context_id, + const AssistiveWindowProperties& assistive_window, + std::string* error) override { + show_indices_ = assistive_window.show_indices; + return true; + } + + void VerifyShowIndices(bool show_indices) { + EXPECT_EQ(show_indices_, show_indices); + } + + bool DismissSuggestion(int context_id, std::string* error) override { + return false; + } + + bool AcceptSuggestion(int context_id, std::string* error) override { + return false; + } + + void OnSuggestionsChanged( + const std::vector<std::string>& suggestions) override {} + + bool ShowMultipleSuggestions(int context_id, + const std::vector<base::string16>& candidates, + std::string* error) override { + return false; + } + + void ClickButton(const ui::ime::AssistiveWindowButton& button) override {} + + bool AcceptSuggestionCandidate(int context_id, + const base::string16& candidate, + std::string* error) override { + return false; + } + + bool SetSuggestion(int context_id, + const ui::ime::SuggestionDetails& details, + std::string* error) override { + return false; + } + + private: + bool show_indices_ = false; +}; + class EmojiSuggesterTest : public testing::Test { protected: void SetUp() override { - engine_ = std::make_unique<InputMethodEngine>(); + engine_ = std::make_unique<TestSuggestionHandler>(); emoji_suggester_ = std::make_unique<EmojiSuggester>(engine_.get()); emoji_suggester_->LoadEmojiMapForTesting(kEmojiData); chrome_keyboard_controller_client_ = @@ -25,8 +81,14 @@ chrome_keyboard_controller_client_->set_keyboard_enabled_for_test(false); } + SuggestionStatus Press(std::string event_key) { + InputMethodEngineBase::KeyboardEvent event; + event.key = event_key; + return emoji_suggester_->HandleKeyEvent(event); + } + std::unique_ptr<EmojiSuggester> emoji_suggester_; - std::unique_ptr<InputMethodEngine> engine_; + std::unique_ptr<TestSuggestionHandler> engine_; base::test::TaskEnvironment task_environment_; std::unique_ptr<ChromeKeyboardControllerClient> chrome_keyboard_controller_client_; @@ -164,4 +226,40 @@ emoji_suggester_->HandleKeyEvent(event2)); } +TEST_F(EmojiSuggesterTest, DoesNotShowIndicesWhenFirstSuggesting) { + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + + engine_->VerifyShowIndices(false); +} + +TEST_F(EmojiSuggesterTest, ShowsIndexAfterPressingUp) { + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + Press("Up"); + + engine_->VerifyShowIndices(true); +} + +TEST_F(EmojiSuggesterTest, ShowsIndexAfterPressingDown) { + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + Press("Down"); + + engine_->VerifyShowIndices(true); +} + +TEST_F(EmojiSuggesterTest, DoesNotShowIndicesAfterGettingSuggestionsTwice) { + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + + engine_->VerifyShowIndices(false); +} + +TEST_F(EmojiSuggesterTest, + DoesNotShowIndicesAfterPressingDownThenGetNewSuggestions) { + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + Press("Down"); + EXPECT_TRUE(emoji_suggester_->Suggest(base::UTF8ToUTF16("happy "))); + + engine_->VerifyShowIndices(false); +} + } // namespace chromeos
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.cc b/chrome/browser/chromeos/input_method/input_method_engine.cc index b36a163..600ca5a 100644 --- a/chrome/browser/chromeos/input_method/input_method_engine.cc +++ b/chrome/browser/chromeos/input_method/input_method_engine.cc
@@ -176,6 +176,11 @@ return true; } +void InputMethodEngine::ClickButton( + const ui::ime::AssistiveWindowButton& button) { + observer_->OnAssistiveWindowButtonClicked(button); +} + bool InputMethodEngine::AcceptSuggestionCandidate( int context_id, const base::string16& suggestion,
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.h b/chrome/browser/chromeos/input_method/input_method_engine.h index 62c63ae0..9480368 100644 --- a/chrome/browser/chromeos/input_method/input_method_engine.h +++ b/chrome/browser/chromeos/input_method/input_method_engine.h
@@ -127,10 +127,17 @@ bool highlighted, std::string* error) override; + void ClickButton(const ui::ime::AssistiveWindowButton& button) override; + bool AcceptSuggestionCandidate(int context_id, const base::string16& candidate, std::string* error) override; + bool SetAssistiveWindowProperties( + int context_id, + const AssistiveWindowProperties& assistive_window, + std::string* error) override; + // This function returns the current property of the candidate window of the // corresponding engine_id. If the CandidateWindowProperty is not set for the // engine_id, a default value is set. The caller can use the returned value as @@ -154,12 +161,6 @@ // Set the position of the cursor in the candidate window. bool SetCursorPosition(int context_id, int candidate_id, std::string* error); - // Show/Hide given assistive window. - bool SetAssistiveWindowProperties( - int context_id, - const AssistiveWindowProperties& assistive_window, - std::string* error); - // Set the list of items that appears in the language menu when this IME is // active. bool SetMenuItems(
diff --git a/chrome/browser/chromeos/input_method/native_input_method_engine.cc b/chrome/browser/chromeos/input_method/native_input_method_engine.cc index 2b485ef7..1da0ee9 100644 --- a/chrome/browser/chromeos/input_method/native_input_method_engine.cc +++ b/chrome/browser/chromeos/input_method/native_input_method_engine.cc
@@ -8,8 +8,12 @@ #include "base/i18n/icu_string_conversions.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" +#include "base/metrics/user_metrics.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/settings_window_manager_chromeos.h" +#include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h" #include "chromeos/constants/chromeos_features.h" #include "ui/base/ime/chromeos/ime_bridge.h" #include "ui/base/ime/chromeos/input_method_manager.h" @@ -227,12 +231,37 @@ void NativeInputMethodEngine::ImeObserver::OnAssistiveWindowButtonClicked( const ui::ime::AssistiveWindowButton& button) { - if (button.id == ui::ime::ButtonId::kSuggestion) { - if (assistive_suggester_->IsAssistiveFeatureEnabled()) { - assistive_suggester_->AcceptSuggestion(button.index); - } - } else { - base_observer_->OnAssistiveWindowButtonClicked(button); + switch (button.id) { + case ui::ime::ButtonId::kSmartInputsSettingLink: + base::RecordAction(base::UserMetricsAction( + "ChromeOS.Settings.SmartInputs.PersonalInfoSuggestions.Open")); + // TODO(crbug/1101689): Add subpath for personal info suggestions + // settings. + chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( + ProfileManager::GetActiveUserProfile(), + chromeos::settings::mojom::kSmartInputsSubpagePath); + break; + case ui::ime::ButtonId::kLearnMore: + if (button.window_type == + ui::ime::AssistiveWindowType::kEmojiSuggestion) { + base::RecordAction(base::UserMetricsAction( + "ChromeOS.Settings.SmartInputs.EmojiSuggestions.Open")); + // TODO(crbug/1101689): Add subpath for emoji suggestions settings. + chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( + ProfileManager::GetActiveUserProfile(), + chromeos::settings::mojom::kSmartInputsSubpagePath); + } + break; + case ui::ime::ButtonId::kSuggestion: + if (assistive_suggester_->IsAssistiveFeatureEnabled()) { + assistive_suggester_->AcceptSuggestion(button.index); + } + break; + case ui::ime::ButtonId::kUndo: + case ui::ime::ButtonId::kAddToDictionary: + case ui::ime::ButtonId::kNone: + base_observer_->OnAssistiveWindowButtonClicked(button); + break; } }
diff --git a/chrome/browser/chromeos/input_method/native_input_method_engine_browsertest.cc b/chrome/browser/chromeos/input_method/native_input_method_engine_browsertest.cc index 7ff9289..14f2365 100644 --- a/chrome/browser/chromeos/input_method/native_input_method_engine_browsertest.cc +++ b/chrome/browser/chromeos/input_method/native_input_method_engine_browsertest.cc
@@ -7,12 +7,14 @@ #include "base/guid.h" #include "base/strings/utf_string_conversions.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/metrics/user_action_tester.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "chrome/browser/autofill/personal_data_manager_factory.h" #include "chrome/browser/chromeos/input_method/textinput_test_helper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/browser/ui/browser_finder.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" @@ -420,3 +422,31 @@ SetFocus(nullptr); } + +IN_PROC_BROWSER_TEST_F( + NativeInputMethodEngineTest, + OnLearnMoreButtonClickedOpensEmojiSuggestionSettingsPage) { + base::UserActionTester user_action_tester; + ui::ime::AssistiveWindowButton button; + button.id = ui::ime::ButtonId::kLearnMore; + button.window_type = ui::ime::AssistiveWindowType::kEmojiSuggestion; + + engine_.AssistiveWindowButtonClicked(button); + + EXPECT_EQ(1, user_action_tester.GetActionCount( + "ChromeOS.Settings.SmartInputs.EmojiSuggestions.Open")); +} + +IN_PROC_BROWSER_TEST_F( + NativeInputMethodEngineTest, + OnSettingLinkButtonClickedOpensPersonalInfoSuggestionSettingsPage) { + base::UserActionTester user_action_tester; + ui::ime::AssistiveWindowButton button; + button.id = ui::ime::ButtonId::kSmartInputsSettingLink; + + engine_.AssistiveWindowButtonClicked(button); + + EXPECT_EQ(1, + user_action_tester.GetActionCount( + "ChromeOS.Settings.SmartInputs.PersonalInfoSuggestions.Open")); +}
diff --git a/chrome/browser/chromeos/input_method/personal_info_suggester_unittest.cc b/chrome/browser/chromeos/input_method/personal_info_suggester_unittest.cc index 89197d7..fdb2491 100644 --- a/chrome/browser/chromeos/input_method/personal_info_suggester_unittest.cc +++ b/chrome/browser/chromeos/input_method/personal_info_suggester_unittest.cc
@@ -73,6 +73,8 @@ return false; } + void ClickButton(const ui::ime::AssistiveWindowButton& button) override {} + bool SetButtonHighlighted(int context_id, const ui::ime::AssistiveWindowButton& button, bool highlighted, @@ -86,6 +88,13 @@ return false; } + bool SetAssistiveWindowProperties( + int context_id, + const AssistiveWindowProperties& assistive_window, + std::string* error) override { + return false; + } + void VerifyShowTab(const bool show_tab) { EXPECT_EQ(show_tab_, show_tab); } void VerifyShowSettingLink(const bool show_setting_link) { EXPECT_EQ(show_setting_link_, show_setting_link);
diff --git a/chrome/browser/chromeos/input_method/suggestion_handler_interface.h b/chrome/browser/chromeos/input_method/suggestion_handler_interface.h index 6e47120..acd21445 100644 --- a/chrome/browser/chromeos/input_method/suggestion_handler_interface.h +++ b/chrome/browser/chromeos/input_method/suggestion_handler_interface.h
@@ -52,9 +52,19 @@ bool highlighted, std::string* error) = 0; + // Click the given button in assitive window. + virtual void ClickButton(const ui::ime::AssistiveWindowButton& button) = 0; + virtual bool AcceptSuggestionCandidate(int context_id, const base::string16& candidate, std::string* error) = 0; + + // Shows/Hides given assistive window. No-op if context_id doesn't match or + // engine is not active. + virtual bool SetAssistiveWindowProperties( + int context_id, + const AssistiveWindowProperties& assistive_window, + std::string* error) = 0; }; } // namespace chromeos
diff --git a/chrome/browser/chromeos/input_method/ui/assistive_delegate.h b/chrome/browser/chromeos/input_method/ui/assistive_delegate.h index b2dfc5d..00fb4f6 100644 --- a/chrome/browser/chromeos/input_method/ui/assistive_delegate.h +++ b/chrome/browser/chromeos/input_method/ui/assistive_delegate.h
@@ -17,6 +17,7 @@ kAddToDictionary, kSmartInputsSettingLink, kSuggestion, + kLearnMore, }; enum class AssistiveWindowType { @@ -28,6 +29,8 @@ struct AssistiveWindowButton { ButtonId id = ButtonId::kNone; AssistiveWindowType window_type = AssistiveWindowType::kNone; + // TODO(crbug/1101852): Rename index to suggestion_index for further clarity. + // Currently index is only considered when ButtonId is kSuggestion. size_t index = -1; std::string announce_string; };
diff --git a/chrome/browser/chromeos/input_method/ui/suggestion_view.cc b/chrome/browser/chromeos/input_method/ui/suggestion_view.cc index a177f0d..7887ae5 100644 --- a/chrome/browser/chromeos/input_method/ui/suggestion_view.cc +++ b/chrome/browser/chromeos/input_method/ui/suggestion_view.cc
@@ -21,6 +21,10 @@ // The label text is not set in this function. std::unique_ptr<views::Label> CreateIndexLabel() { auto index_label = std::make_unique<views::Label>(); + index_label->SetFontList(gfx::FontList({kFontStyle}, gfx::Font::NORMAL, + kIndexFontSize, + gfx::Font::Weight::MEDIUM)); + index_label->SetEnabledColor(kSuggestionColor); index_label->SetHorizontalAlignment(gfx::ALIGN_CENTER); index_label->SetBorder( views::CreateEmptyBorder(gfx::Insets(kPadding / 2, 0)));
diff --git a/chrome/browser/chromeos/input_method/ui/suggestion_view.h b/chrome/browser/chromeos/input_method/ui/suggestion_view.h index 55b86742..27d0af34 100644 --- a/chrome/browser/chromeos/input_method/ui/suggestion_view.h +++ b/chrome/browser/chromeos/input_method/ui/suggestion_view.h
@@ -22,11 +22,12 @@ constexpr char kFontStyle[] = "Roboto"; constexpr int kSuggestionFontSize = 14; constexpr int kAnnotationFontSize = 10; +constexpr int kIndexFontSize = 10; // Style-related constants constexpr int kAnnotationBorderThickness = 1; constexpr int kAnnotationCornerRadius = 4; -constexpr int kPadding = 10; +constexpr int kPadding = 8; constexpr int kAnnotationPaddingHeight = 6; constexpr char kTabKey[] = "tab"; constexpr SkColor kConfirmedTextColor = gfx::kGoogleGrey900;
diff --git a/chrome/browser/chromeos/input_method/ui/suggestion_window_view.cc b/chrome/browser/chromeos/input_method/ui/suggestion_window_view.cc index 4b7efbe..a3cf3a8 100644 --- a/chrome/browser/chromeos/input_method/ui/suggestion_window_view.cc +++ b/chrome/browser/chromeos/input_method/ui/suggestion_window_view.cc
@@ -11,21 +11,27 @@ #include "base/i18n/number_formatting.h" #include "base/macros.h" #include "base/strings/utf_string_conversions.h" +#include "chrome/browser/chromeos/input_method/assistive_window_properties.h" #include "chrome/browser/chromeos/input_method/ui/assistive_delegate.h" #include "chrome/browser/chromeos/input_method/ui/border_factory.h" #include "chrome/browser/chromeos/input_method/ui/suggestion_details.h" #include "chrome/browser/chromeos/input_method/ui/suggestion_view.h" +#include "components/strings/grit/components_strings.h" +#include "components/vector_icons/vector_icons.h" +#include "ui/base/l10n/l10n_util.h" #include "ui/display/display.h" #include "ui/display/screen.h" #include "ui/display/types/display_constants.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/geometry/insets.h" +#include "ui/gfx/paint_vector_icon.h" #include "ui/native_theme/native_theme.h" #include "ui/views/background.h" #include "ui/views/border.h" #include "ui/views/bubble/bubble_border.h" #include "ui/views/bubble/bubble_frame_view.h" +#include "ui/views/controls/button/image_button.h" #include "ui/views/controls/label.h" #include "ui/views/controls/link.h" #include "ui/views/layout/box_layout.h" @@ -38,7 +44,11 @@ const int kSettingLinkFontSize = 13; // TODO(crbug/1094843): Add localised string. const char kSettingLinkLabel[] = "Why am I seeing this suggestion?"; +// TODO(crbug/1099044): Update and use cros colors. +constexpr SkColor kSecondaryIconColor = gfx::kGoogleGrey500; +// TODO(crbug/1102175): Rename setting to settings since there can be multiple +// things to set. class SettingLinkView : public views::View { public: explicit SettingLinkView(AssistiveDelegate* delegate) : delegate_(delegate) { @@ -46,6 +56,9 @@ setting_link_ = AddChildView( std::make_unique<views::Link>(base::UTF8ToUTF16(kSettingLinkLabel))); setting_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT); + // TODO(crbug/1102215): Implement proper UI layout using Insets constant. + const gfx::Insets insets(0, kPadding, kPadding, kPadding); + setting_link_->SetBorder(views::CreateEmptyBorder(insets)); setting_link_->SetFontList(gfx::FontList({kFontStyle}, gfx::Font::ITALIC, kSettingLinkFontSize, gfx::Font::Weight::NORMAL)); @@ -53,9 +66,21 @@ &SettingLinkView::LinkClicked, base::Unretained(this))); } + void SetHighlighted(bool highlighted) { + if (highlighted_ == highlighted) + return; + + SetBackground(highlighted + ? views::CreateSolidBackground(kButtonHighlightColor) + : nullptr); + highlighted_ = highlighted; + SchedulePaint(); + } + private: AssistiveDelegate* delegate_; views::Link* setting_link_; + bool highlighted_ = false; void LinkClicked() { AssistiveWindowButton button; @@ -63,16 +88,6 @@ delegate_->AssistiveWindowButtonClicked(button); } - void Layout() override { - setting_link_->SetBounds(kPadding, 0, width(), height()); - } - - gfx::Size CalculatePreferredSize() const override { - gfx::Size size; - size.Enlarge(setting_link_->GetPreferredSize().width() + 2 * kPadding, 0); - return size; - } - DISALLOW_COPY_AND_ASSIGN(SettingLinkView); }; @@ -93,6 +108,8 @@ setting_link_view_ = AddChildView(std::make_unique<SettingLinkView>(delegate)); setting_link_view_->SetVisible(false); + + learn_more_button_ = AddChildView(CreateLearnMoreButton()); } SuggestionWindowView::~SuggestionWindowView() = default; @@ -109,6 +126,25 @@ return widget; } +std::unique_ptr<views::ImageButton> +SuggestionWindowView::CreateLearnMoreButton() { + auto button = std::make_unique<views::ImageButton>(this); + button->SetImageHorizontalAlignment(views::ImageButton::ALIGN_CENTER); + button->SetImageVerticalAlignment(views::ImageButton::ALIGN_MIDDLE); + button->SetFocusForPlatform(); + button->SetTooltipText(l10n_util::GetStringUTF16(IDS_LEARN_MORE)); + button->SetBorder(views::CreatePaddedBorder( + views::CreateSolidSidedBorder( + 1, 0, 0, 0, + GetNativeTheme()->GetSystemColor( + ui::NativeTheme::kColorId_FootnoteContainerBorder)), + views::LayoutProvider::Get()->GetInsetsMetric( + views::INSETS_VECTOR_IMAGE_BUTTON))); + button->AddButtonObserver(this); + button->SetVisible(false); + return button; +} + void SuggestionWindowView::Hide() { GetWidget()->Close(); } @@ -131,13 +167,22 @@ } void SuggestionWindowView::ShowMultipleCandidates( - const std::vector<base::string16>& candidates) { + const chromeos::AssistiveWindowProperties& properties) { + const std::vector<base::string16>& candidates = properties.candidates; MaybeInitializeSuggestionViews(candidates.size()); for (size_t i = 0; i < candidates.size(); i++) { SuggestionView* candidate_view = candidate_views_[i].get(); - candidate_view->SetViewWithIndex(base::FormatNumber(i + 1), candidates[i]); + if (properties.show_indices) { + candidate_view->SetViewWithIndex(base::FormatNumber(i + 1), + candidates[i]); + } else { + SuggestionDetails details; + details.text = candidates[i]; + candidate_view->SetView(details); + } candidate_view->SetEnabled(true); } + learn_more_button_->SetVisible(true); MakeVisible(); } @@ -169,6 +214,12 @@ UnhighlightCandidate(button.index); } break; + case ButtonId::kSmartInputsSettingLink: + setting_link_view_->SetHighlighted(highlighted); + break; + case ButtonId::kLearnMore: + SetLearnMoreButtonHighlighted(highlighted); + break; default: break; } @@ -195,6 +246,21 @@ highlighted_index_ = kInvalid; } +// TODO(b/1101669): Create abstract HighlightableButton for learn_more button, +// setting_link_view, suggestion_view and undo_view. +void SuggestionWindowView::SetLearnMoreButtonHighlighted(bool highlighted) { + if (is_learn_more_button_highlighted == highlighted) { + return; + } + + learn_more_button_->SetBackground( + highlighted ? views::CreateSolidBackground(kButtonHighlightColor) + : nullptr); + is_learn_more_button_highlighted = highlighted; + + SchedulePaint(); +} + void SuggestionWindowView::SetBounds(const gfx::Rect& cursor_bounds) { SetAnchorRect(cursor_bounds); } @@ -202,6 +268,14 @@ // TODO(crbug/1099116): Add test for ButtonPressed. void SuggestionWindowView::ButtonPressed(views::Button* sender, const ui::Event& event) { + if (sender == learn_more_button_) { + AssistiveWindowButton button; + button.id = ui::ime::ButtonId::kLearnMore; + button.window_type = ui::ime::AssistiveWindowType::kEmojiSuggestion; + delegate_->AssistiveWindowButtonClicked(button); + return; + } + for (size_t i = 0; i < candidate_views_.size(); i++) { if (sender == candidate_views_[i].get()) { AssistiveWindowButton button; @@ -217,6 +291,18 @@ void SuggestionWindowView::OnStateChanged( views::Button* observed_button, views::Button::ButtonState old_state) { + if (observed_button == learn_more_button_) { + switch (observed_button->state()) { + case views::Button::ButtonState::STATE_HOVERED: + case views::Button::ButtonState::STATE_PRESSED: + SetLearnMoreButtonHighlighted(true); + break; + default: + SetLearnMoreButtonHighlighted(false); + } + return; + } + for (size_t i = 0; i < candidate_views_.size(); i++) { if (observed_button == candidate_views_[i].get()) { switch (observed_button->state()) { @@ -232,10 +318,26 @@ } } +void SuggestionWindowView::OnThemeChanged() { + learn_more_button_->SetImage( + views::Button::ButtonState::STATE_NORMAL, + gfx::CreateVectorIcon(vector_icons::kHelpOutlineIcon, + kSecondaryIconColor)); + BubbleDialogDelegateView::OnThemeChanged(); +} + views::View* SuggestionWindowView::GetCandidateAreaForTesting() { return candidate_area_; } +views::View* SuggestionWindowView::GetSettingLinkViewForTesting() { + return setting_link_view_; +} + +views::View* SuggestionWindowView::GetLearnMoreButtonForTesting() { + return learn_more_button_; +} + const char* SuggestionWindowView::GetClassName() const { return "SuggestionWindowView"; }
diff --git a/chrome/browser/chromeos/input_method/ui/suggestion_window_view.h b/chrome/browser/chromeos/input_method/ui/suggestion_window_view.h index 146f086..6786a1c 100644 --- a/chrome/browser/chromeos/input_method/ui/suggestion_window_view.h +++ b/chrome/browser/chromeos/input_method/ui/suggestion_window_view.h
@@ -13,6 +13,14 @@ #include "ui/views/controls/button/button.h" #include "ui/views/controls/button/button_observer.h" +namespace chromeos { +struct AssistiveWindowProperties; +} // namespace chromeos + +namespace views { +class ImageButton; +} + namespace ui { namespace ime { @@ -40,7 +48,8 @@ // Shows suggestion text. void Show(const SuggestionDetails& details); - void ShowMultipleCandidates(const std::vector<base::string16>& candidates); + void ShowMultipleCandidates( + const chromeos::AssistiveWindowProperties& properties); // This highlights/unhighlights a valid button based on the given params. // Only one button of the same id will be highlighted at anytime. @@ -50,6 +59,8 @@ void SetBounds(const gfx::Rect& cursor_bounds); views::View* GetCandidateAreaForTesting(); + views::View* GetSettingLinkViewForTesting(); + views::View* GetLearnMoreButtonForTesting(); private: // Overridden from views::ButtonListener: @@ -59,6 +70,11 @@ void OnStateChanged(views::Button* observed_button, views::Button::ButtonState old_state) override; + // views::View's override: + void OnThemeChanged() override; + + std::unique_ptr<views::ImageButton> CreateLearnMoreButton(); + void MaybeInitializeSuggestionViews(size_t candidates_size); void MakeVisible(); @@ -72,6 +88,10 @@ // range. void UnhighlightCandidate(int index); + // This highlights or unhighlights the Learn More Button based on the given + // parameter. No-op if the button is already in that state. + void SetLearnMoreButtonHighlighted(bool highlighted); + // views::BubbleDialogDelegateView: const char* GetClassName() const override; @@ -84,6 +104,9 @@ // The view for rendering setting link, positioned below candidate_area_. SettingLinkView* setting_link_view_; + views::ImageButton* learn_more_button_; + bool is_learn_more_button_highlighted = false; + // The items in view_ std::vector<std::unique_ptr<SuggestionView>> candidate_views_;
diff --git a/chrome/browser/chromeos/input_method/ui/suggestion_window_view_unittest.cc b/chrome/browser/chromeos/input_method/ui/suggestion_window_view_unittest.cc index d029e97f..f43713f8 100644 --- a/chrome/browser/chromeos/input_method/ui/suggestion_window_view_unittest.cc +++ b/chrome/browser/chromeos/input_method/ui/suggestion_window_view_unittest.cc
@@ -7,6 +7,7 @@ #include <string> #include "base/strings/string_number_conversions.h" +#include "chrome/browser/chromeos/input_method/assistive_window_properties.h" #include "chrome/browser/chromeos/input_method/ui/assistive_delegate.h" #include "chrome/browser/chromeos/input_method/ui/suggestion_view.h" #include "testing/gtest/include/gtest/gtest.h" @@ -31,10 +32,13 @@ void SetUp() override { views::ViewsTestBase::SetUp(); InitCandidates(); + window_.candidates = candidates_; suggestion_window_view_ = new SuggestionWindowView(GetContext(), delegate_.get()); candidate_button_.id = ButtonId::kSuggestion; + setting_link_view_.id = ButtonId::kSmartInputsSettingLink; + learn_more_button_.id = ButtonId::kLearnMore; suggestion_window_view_->InitWidget(); } @@ -72,13 +76,16 @@ std::unique_ptr<MockAssistiveDelegate> delegate_ = std::make_unique<MockAssistiveDelegate>(); std::vector<base::string16> candidates_; + chromeos::AssistiveWindowProperties window_; AssistiveWindowButton candidate_button_; + AssistiveWindowButton setting_link_view_; + AssistiveWindowButton learn_more_button_; DISALLOW_COPY_AND_ASSIGN(SuggestionWindowViewTest); }; TEST_F(SuggestionWindowViewTest, HighlightOneCandidateWhenIndexIsValid) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); for (int index = 0; index < static_cast<int>(candidates_.size()); index++) { candidate_button_.index = index; suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); @@ -89,7 +96,7 @@ } TEST_F(SuggestionWindowViewTest, HighlightNoCandidateWhenIndexIsInvalid) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); int invalid[] = {kInvalid, candidates_.size()}; for (int index : invalid) { candidate_button_.index = index; @@ -101,7 +108,7 @@ } TEST_F(SuggestionWindowViewTest, HighlightTheSameCandidateWhenCalledTwice) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); int highlight_index = 0; candidate_button_.index = highlight_index; suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); @@ -113,7 +120,7 @@ TEST_F(SuggestionWindowViewTest, HighlightValidCandidateAfterGivingInvalidIndexThenValidIndex) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); int valid_index = 0; candidate_button_.index = candidates_.size(); suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); @@ -126,7 +133,7 @@ TEST_F(SuggestionWindowViewTest, KeepHighlightingValidCandidateWhenGivingValidThenInvalidIndex) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); int valid_index = 0; candidate_button_.index = valid_index; suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); @@ -138,7 +145,7 @@ } TEST_F(SuggestionWindowViewTest, UnhighlightCandidateIfCurrentlyHighlighted) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); candidate_button_.index = 0; suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); suggestion_window_view_->SetButtonHighlighted(candidate_button_, false); @@ -149,7 +156,7 @@ TEST_F(SuggestionWindowViewTest, DoesNotUnhighlightCandidateIfNotCurrentlyHighlighted) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); int highlight_index = 0; candidate_button_.index = highlight_index; suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); @@ -161,7 +168,7 @@ } TEST_F(SuggestionWindowViewTest, DoesNotUnhighlightCandidateIfOutOfRange) { - suggestion_window_view_->ShowMultipleCandidates(candidates_); + suggestion_window_view_->ShowMultipleCandidates(window_); int highlight_index = 0; candidate_button_.index = highlight_index; suggestion_window_view_->SetButtonHighlighted(candidate_button_, true); @@ -177,5 +184,85 @@ } } +TEST_F(SuggestionWindowViewTest, HighlightsSettingLinkViewWhenNotHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(setting_link_view_, true); + + EXPECT_TRUE( + suggestion_window_view_->GetSettingLinkViewForTesting()->background() != + nullptr); +} + +TEST_F(SuggestionWindowViewTest, + HighlightsSettingLinkViewWhenAlreadyHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(setting_link_view_, true); + suggestion_window_view_->SetButtonHighlighted(setting_link_view_, true); + + EXPECT_TRUE( + suggestion_window_view_->GetSettingLinkViewForTesting()->background() != + nullptr); +} + +TEST_F(SuggestionWindowViewTest, UnhighlightsSettingLinkViewWhenHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(setting_link_view_, false); + + EXPECT_TRUE( + suggestion_window_view_->GetSettingLinkViewForTesting()->background() == + nullptr); +} + +TEST_F(SuggestionWindowViewTest, + UnhighlightsKeepSettingLinkViewUnhighlightedWhenAlreadyNotHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(setting_link_view_, false); + suggestion_window_view_->SetButtonHighlighted(setting_link_view_, false); + + EXPECT_TRUE( + suggestion_window_view_->GetSettingLinkViewForTesting()->background() == + nullptr); +} + +TEST_F(SuggestionWindowViewTest, HighlightsLearnMoreButtonWhenNotHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(learn_more_button_, true); + + EXPECT_TRUE( + suggestion_window_view_->GetLearnMoreButtonForTesting()->background() != + nullptr); +} + +TEST_F(SuggestionWindowViewTest, + HighlightsLearnMoreButtonWhenAlreadyHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(learn_more_button_, true); + suggestion_window_view_->SetButtonHighlighted(learn_more_button_, true); + + EXPECT_TRUE( + suggestion_window_view_->GetLearnMoreButtonForTesting()->background() != + nullptr); +} + +TEST_F(SuggestionWindowViewTest, UnhighlightsLearnMoreButtonWhenHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(learn_more_button_, false); + + EXPECT_TRUE( + suggestion_window_view_->GetLearnMoreButtonForTesting()->background() == + nullptr); +} + +TEST_F(SuggestionWindowViewTest, + UnhighlightsKeepLearnMoreButtonUnhighlightedWhenAlreadyNotHighlighted) { + suggestion_window_view_->ShowMultipleCandidates(window_); + suggestion_window_view_->SetButtonHighlighted(learn_more_button_, false); + suggestion_window_view_->SetButtonHighlighted(learn_more_button_, false); + + EXPECT_TRUE( + suggestion_window_view_->GetLearnMoreButtonForTesting()->background() == + nullptr); +} + } // namespace ime } // namespace ui
diff --git a/chrome/browser/chromeos/local_search_service/index.cc b/chrome/browser/chromeos/local_search_service/index.cc index 4ab359b..69c47adea 100644 --- a/chrome/browser/chromeos/local_search_service/index.cc +++ b/chrome/browser/chromeos/local_search_service/index.cc
@@ -8,28 +8,12 @@ #include "base/metrics/histogram_functions.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/chromeos/local_search_service/linear_map_search.h" namespace local_search_service { namespace { // Only logs metrics if |histogram_prefix| is not empty. -void MaybeLogSearchResultsStats(const std::string& histogram_prefix, - ResponseStatus status, - size_t num_results) { - if (histogram_prefix.empty()) - return; - - base::UmaHistogramEnumeration(histogram_prefix + ".ResponseStatus", status); - if (status == ResponseStatus::kSuccess) { - // Only logs number of results if search is a success. - base::UmaHistogramCounts100(histogram_prefix + ".NumberResults", - num_results); - } -} - -// Only logs metrics if |histogram_prefix| is not empty. void MaybeLogIndexIdAndBackendType(const std::string& histogram_prefix, Backend backend) { if (histogram_prefix.empty()) @@ -43,6 +27,8 @@ switch (index_id) { case IndexId::kCrosSettings: return prefix + "CrosSettings"; + case IndexId::kHelpApp: + return prefix + "HelpApp"; default: return ""; } @@ -50,12 +36,8 @@ } // namespace -Index::Index(IndexId index_id, Backend backend) : index_id_(index_id) { - // TODO(jiameng): currently only support linear map. - DCHECK_EQ(backend, Backend::kLinearMap); - - histogram_prefix_ = IndexIdBasedHistogramPrefix(*index_id_); - linear_map_search_ = std::make_unique<LinearMapSearch>(); +Index::Index(IndexId index_id, Backend backend) { + histogram_prefix_ = IndexIdBasedHistogramPrefix(index_id); if (!g_browser_process || !g_browser_process->local_state()) { return; } @@ -63,50 +45,35 @@ reporter_ = std::make_unique<SearchMetricsReporter>(g_browser_process->local_state()); DCHECK(reporter_); - reporter_->SetIndexId(*index_id_); + reporter_->SetIndexId(index_id); MaybeLogIndexIdAndBackendType(histogram_prefix_, backend); } Index::~Index() = default; -uint64_t Index::GetSize() { - DCHECK(linear_map_search_); - return linear_map_search_->GetSize(); -} - -void Index::AddOrUpdate(const std::vector<local_search_service::Data>& data) { - DCHECK(linear_map_search_); - linear_map_search_->AddOrUpdate(data); -} - -uint32_t Index::Delete(const std::vector<std::string>& ids) { - DCHECK(linear_map_search_); - const uint32_t num_deleted = linear_map_search_->Delete(ids); - return num_deleted; -} - -ResponseStatus Index::Find(const base::string16& query, - uint32_t max_results, - std::vector<Result>* results) { - DCHECK(linear_map_search_); - ResponseStatus status = linear_map_search_->Find(query, max_results, results); - MaybeLogSearchResultsStats(histogram_prefix_, status, results->size()); - +void Index::MaybeLogSearchResultsStats(ResponseStatus status, + size_t num_results) { if (reporter_) reporter_->OnSearchPerformed(); - return status; + if (histogram_prefix_.empty()) + return; + + base::UmaHistogramEnumeration(histogram_prefix_ + ".ResponseStatus", status); + if (status == ResponseStatus::kSuccess) { + // Only logs number of results if search is a success. + base::UmaHistogramCounts100(histogram_prefix_ + ".NumberResults", + num_results); + } } void Index::SetSearchParams(const SearchParams& search_params) { - DCHECK(linear_map_search_); - linear_map_search_->SetSearchParams(search_params); + search_params_ = search_params; } SearchParams Index::GetSearchParamsForTesting() { - DCHECK(linear_map_search_); - return linear_map_search_->GetSearchParams(); + return search_params_; }
diff --git a/chrome/browser/chromeos/local_search_service/index.h b/chrome/browser/chromeos/local_search_service/index.h index 77eebb7..9413ccf8 100644 --- a/chrome/browser/chromeos/local_search_service/index.h +++ b/chrome/browser/chromeos/local_search_service/index.h
@@ -19,50 +19,52 @@ namespace local_search_service { -class LinearMapSearch; - // A local search service Index. -// It is the client-facing API for search and indexing. It owns different -// backends that provide actual data storage/indexing/search functions. +// It is the client-facing API for search and indexing. It can be implemented +// with different backends that provide actual data storage/indexing/search +// functions. class Index { public: Index(IndexId index_id, Backend backend); - ~Index(); + virtual ~Index(); Index(const Index&) = delete; Index& operator=(const Index&) = delete; // Returns number of data items. - uint64_t GetSize(); + virtual uint64_t GetSize() = 0; // Adds or updates data. // IDs of data should not be empty. - void AddOrUpdate(const std::vector<Data>& data); + virtual void AddOrUpdate(const std::vector<Data>& data) = 0; // Deletes data with |ids| and returns number of items deleted. // If an id doesn't exist in the Index, no operation will be done. // IDs should not be empty. - uint32_t Delete(const std::vector<std::string>& ids); + virtual uint32_t Delete(const std::vector<std::string>& ids) = 0; // Returns matching results for a given query. // Zero |max_results| means no max. - // For each data in the index, we return the 1st search tag that matches - // the query (i.e. above the threshold). Client should put the most - // important search tag first when registering the data in the index. - ResponseStatus Find(const base::string16& query, - uint32_t max_results, - std::vector<Result>* results); + // Search behaviour depends on the implementation. + virtual ResponseStatus Find(const base::string16& query, + uint32_t max_results, + std::vector<Result>* results) = 0; + + // Logs daily search metrics if |reporter_| is non-null and other + // UMA metrics if |histogram_prefix_| is non-empty. + // Each implementation of this class should call this method at the end of + // Find. + void MaybeLogSearchResultsStats(ResponseStatus status, size_t num_results); void SetSearchParams(const SearchParams& search_params); - SearchParams GetSearchParamsForTesting(); + + protected: + SearchParams search_params_; + private: - base::Optional<IndexId> index_id_; std::string histogram_prefix_; std::unique_ptr<SearchMetricsReporter> reporter_; - // TODO(jiameng): Currently linear map is the only backend supported. We will - // add inverted index in the next CLs. - std::unique_ptr<LinearMapSearch> linear_map_search_; base::WeakPtrFactory<Index> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/chromeos/local_search_service/index_unittest.cc b/chrome/browser/chromeos/local_search_service/index_unittest.cc deleted file mode 100644 index 04bfdaa..0000000 --- a/chrome/browser/chromeos/local_search_service/index_unittest.cc +++ /dev/null
@@ -1,187 +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 <map> -#include <memory> -#include <set> -#include <sstream> -#include <string> -#include <utility> -#include <vector> - -#include "base/strings/utf_string_conversions.h" -#include "chrome/browser/chromeos/local_search_service/index.h" -#include "chrome/browser/chromeos/local_search_service/shared_structs.h" -#include "chrome/browser/chromeos/local_search_service/test_utils.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace local_search_service { - -namespace { - -// This is (data-id, content-ids). -using ResultWithIds = std::pair<std::string, std::vector<std::string>>; -using ContentWithId = std::pair<std::string, std::string>; - -void CheckSearchParams(const SearchParams& actual, - const SearchParams& expected) { - EXPECT_DOUBLE_EQ(actual.relevance_threshold, expected.relevance_threshold); - EXPECT_DOUBLE_EQ(actual.prefix_threshold, expected.prefix_threshold); - EXPECT_DOUBLE_EQ(actual.fuzzy_threshold, expected.fuzzy_threshold); -} - -void FindAndCheckResults(Index* index, - std::string query, - int32_t max_results, - ResponseStatus expected_status, - const std::vector<ResultWithIds>& expected_results) { - DCHECK(index); - - std::vector<Result> results; - auto status = index->Find(base::UTF8ToUTF16(query), max_results, &results); - - EXPECT_EQ(status, expected_status); - - if (!results.empty()) { - // If results are returned, check size and values match the expected. - EXPECT_EQ(results.size(), expected_results.size()); - for (size_t i = 0; i < results.size(); ++i) { - EXPECT_EQ(results[i].id, expected_results[i].first); - EXPECT_EQ(results[i].positions.size(), expected_results[i].second.size()); - - for (size_t j = 0; j < results[i].positions.size(); ++j) { - EXPECT_EQ(results[i].positions[j].content_id, - expected_results[i].second[j]); - } - // Scores should be non-increasing. - if (i < results.size() - 1) { - EXPECT_GE(results[i].score, results[i + 1].score); - } - } - return; - } - - // If no results are returned, expected ids should be empty. - EXPECT_TRUE(expected_results.empty()); -} - -} // namespace - -class IndexTest : public testing::Test { - void SetUp() override { - index_ = - std::make_unique<Index>(IndexId::kCrosSettings, Backend::kLinearMap); - } - - protected: - std::unique_ptr<Index> index_; -}; - -TEST_F(IndexTest, SetSearchParams) { - { - // No params are specified so default values are used. - const SearchParams used_params = index_->GetSearchParamsForTesting(); - - CheckSearchParams(used_params, SearchParams()); - } - - { - // Params are specified and are used. - SearchParams search_params; - const SearchParams default_params; - search_params.relevance_threshold = default_params.relevance_threshold / 2; - search_params.prefix_threshold = default_params.prefix_threshold / 2; - search_params.fuzzy_threshold = default_params.fuzzy_threshold / 2; - - index_->SetSearchParams(search_params); - - const SearchParams used_params = index_->GetSearchParamsForTesting(); - - CheckSearchParams(used_params, search_params); - } -} - -TEST_F(IndexTest, RelevanceThreshold) { - const std::map<std::string, std::vector<ContentWithId>> data_to_register = { - {"id1", {{"tag1", "Wi-Fi"}}}, {"id2", {{"tag2", "famous"}}}}; - std::vector<Data> data = CreateTestData(data_to_register); - index_->AddOrUpdate(data); - EXPECT_EQ(index_->GetSize(), 2u); - { - SearchParams search_params; - search_params.relevance_threshold = 0.0; - index_->SetSearchParams(search_params); - - const std::vector<ResultWithIds> expected_results = {{"id1", {"tag1"}}, - {"id2", {"tag2"}}}; - FindAndCheckResults(index_.get(), "wifi", - /*max_results=*/-1, ResponseStatus::kSuccess, - expected_results); - } - { - SearchParams search_params; - search_params.relevance_threshold = 0.3; - index_->SetSearchParams(search_params); - - const std::vector<ResultWithIds> expected_results = {{"id1", {"tag1"}}}; - FindAndCheckResults(index_.get(), "wifi", - /*max_results=*/-1, ResponseStatus::kSuccess, - expected_results); - } - { - SearchParams search_params; - search_params.relevance_threshold = 0.9; - index_->SetSearchParams(search_params); - - FindAndCheckResults(index_.get(), "wifi", - /*max_results=*/-1, ResponseStatus::kSuccess, {}); - } -} - -TEST_F(IndexTest, MaxResults) { - const std::map<std::string, std::vector<ContentWithId>> data_to_register = { - {"id1", {{"tag1", "abcde"}, {"tag2", "Wi-Fi"}}}, - {"id2", {{"tag3", "wifi"}}}}; - std::vector<Data> data = CreateTestData(data_to_register); - index_->AddOrUpdate(data); - EXPECT_EQ(index_->GetSize(), 2u); - SearchParams search_params; - search_params.relevance_threshold = 0.3; - index_->SetSearchParams(search_params); - - { - const std::vector<ResultWithIds> expected_results = {{"id2", {"tag3"}}, - {"id1", {"tag2"}}}; - FindAndCheckResults(index_.get(), "wifi", - /*max_results=*/-1, ResponseStatus::kSuccess, - expected_results); - } - { - const std::vector<ResultWithIds> expected_results = {{"id2", {"tag3"}}}; - FindAndCheckResults(index_.get(), "wifi", - /*max_results=*/1, ResponseStatus::kSuccess, - expected_results); - } -} - -TEST_F(IndexTest, ResultFound) { - const std::map<std::string, std::vector<ContentWithId>> data_to_register = { - {"id1", {{"cid1", "id1"}, {"cid2", "tag1a"}, {"cid3", "tag1b"}}}, - {"xyz", {{"cid4", "xyz"}}}}; - std::vector<Data> data = CreateTestData(data_to_register); - EXPECT_EQ(data.size(), 2u); - - index_->AddOrUpdate(data); - EXPECT_EQ(index_->GetSize(), 2u); - - // Find result with query "id1". It returns an exact match. - const std::vector<ResultWithIds> expected_results = {{"id1", {"cid1"}}}; - FindAndCheckResults(index_.get(), "id1", - /*max_results=*/-1, ResponseStatus::kSuccess, - expected_results); - FindAndCheckResults(index_.get(), "abc", - /*max_results=*/-1, ResponseStatus::kSuccess, {}); -} - -} // namespace local_search_service
diff --git a/chrome/browser/chromeos/local_search_service/linear_map_search.cc b/chrome/browser/chromeos/local_search_service/linear_map_search.cc index bed5fe1..6badaa8d 100644 --- a/chrome/browser/chromeos/local_search_service/linear_map_search.cc +++ b/chrome/browser/chromeos/local_search_service/linear_map_search.cc
@@ -9,6 +9,7 @@ #include "base/optional.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" +#include "chrome/browser/chromeos/local_search_service/search_utils.h" #include "chrome/common/string_matching/fuzzy_tokenized_string_match.h" #include "chrome/common/string_matching/tokenized_string.h" @@ -60,15 +61,10 @@ return false; } -// Compares Results by |score|. -bool CompareResults(const local_search_service::Result& r1, - const local_search_service::Result& r2) { - return r1.score > r2.score; -} - } // namespace -LinearMapSearch::LinearMapSearch() = default; +LinearMapSearch::LinearMapSearch(IndexId index_id) + : Index(index_id, Backend::kLinearMap) {} LinearMapSearch::~LinearMapSearch() = default; @@ -108,23 +104,24 @@ std::vector<Result>* results) { DCHECK(results); results->clear(); + if (query.empty()) { - return ResponseStatus::kEmptyQuery; + const ResponseStatus status = ResponseStatus::kEmptyQuery; + MaybeLogSearchResultsStats(status, 0u); + return status; } + if (data_.empty()) { - return ResponseStatus::kEmptyIndex; + const ResponseStatus status = ResponseStatus::kEmptyIndex; + MaybeLogSearchResultsStats(status, 0u); + return status; } *results = GetSearchResults(query, max_results); - return ResponseStatus::kSuccess; -} -void LinearMapSearch::SetSearchParams(const SearchParams& search_params) { - search_params_ = search_params; -} - -SearchParams LinearMapSearch::GetSearchParams() { - return search_params_; + const ResponseStatus status = ResponseStatus::kSuccess; + MaybeLogSearchResultsStats(status, results->size()); + return status; } std::vector<Result> LinearMapSearch::GetSearchResults(
diff --git a/chrome/browser/chromeos/local_search_service/linear_map_search.h b/chrome/browser/chromeos/local_search_service/linear_map_search.h index 3e67929..cef4b8c 100644 --- a/chrome/browser/chromeos/local_search_service/linear_map_search.h +++ b/chrome/browser/chromeos/local_search_service/linear_map_search.h
@@ -12,47 +12,35 @@ #include "base/macros.h" #include "base/strings/string16.h" +#include "chrome/browser/chromeos/local_search_service/index.h" #include "chrome/browser/chromeos/local_search_service/shared_structs.h" class TokenizedString; namespace local_search_service { +// An implementation of Index. // A search backend that linearly scans all documents in the storage and finds // documents that match the input query. Search is done by matching query with // documents' search tags. -class LinearMapSearch { +class LinearMapSearch : public Index { public: - LinearMapSearch(); - ~LinearMapSearch(); + explicit LinearMapSearch(IndexId index_id); + ~LinearMapSearch() override; LinearMapSearch(const LinearMapSearch&) = delete; LinearMapSearch& operator=(const LinearMapSearch&) = delete; - // Returns number of data items. - uint64_t GetSize(); - - // Adds or updates data. - // IDs of data should not be empty. - void AddOrUpdate(const std::vector<Data>& data); - - // Deletes data with |ids| and returns number of items deleted. - // If an id doesn't exist in the LinearMapSearch, no operation will be done. - // IDs should not be empty. - uint32_t Delete(const std::vector<std::string>& ids); - - // Returns matching results for a given query. - // Zero |max_results| means no max. + // Index overrides: + uint64_t GetSize() override; + void AddOrUpdate(const std::vector<Data>& data) override; + uint32_t Delete(const std::vector<std::string>& ids) override; // For each data in the index, we return the 1st search tag that matches // the query (i.e. above the threshold). Client should put the most // important search tag first when registering the data in the index. ResponseStatus Find(const base::string16& query, uint32_t max_results, - std::vector<Result>* results); - - void SetSearchParams(const SearchParams& search_params); - - SearchParams GetSearchParams(); + std::vector<Result>* results) override; private: // Returns all search results for a given query. @@ -64,9 +52,6 @@ std::string, std::vector<std::pair<std::string, std::unique_ptr<TokenizedString>>>> data_; - - // Search parameters. - SearchParams search_params_; }; } // namespace local_search_service
diff --git a/chrome/browser/chromeos/local_search_service/linear_map_search_unittest.cc b/chrome/browser/chromeos/local_search_service/linear_map_search_unittest.cc new file mode 100644 index 0000000..4e90a4d9 --- /dev/null +++ b/chrome/browser/chromeos/local_search_service/linear_map_search_unittest.cc
@@ -0,0 +1,186 @@ +// 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 <map> +#include <memory> +#include <set> +#include <sstream> +#include <string> +#include <utility> +#include <vector> + +#include "base/strings/utf_string_conversions.h" +#include "chrome/browser/chromeos/local_search_service/linear_map_search.h" +#include "chrome/browser/chromeos/local_search_service/shared_structs.h" +#include "chrome/browser/chromeos/local_search_service/test_utils.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace local_search_service { + +namespace { + +// This is (data-id, content-ids). +using ResultWithIds = std::pair<std::string, std::vector<std::string>>; +using ContentWithId = std::pair<std::string, std::string>; + +void CheckSearchParams(const SearchParams& actual, + const SearchParams& expected) { + EXPECT_DOUBLE_EQ(actual.relevance_threshold, expected.relevance_threshold); + EXPECT_DOUBLE_EQ(actual.prefix_threshold, expected.prefix_threshold); + EXPECT_DOUBLE_EQ(actual.fuzzy_threshold, expected.fuzzy_threshold); +} + +void FindAndCheckResults(LinearMapSearch* index, + std::string query, + int32_t max_results, + ResponseStatus expected_status, + const std::vector<ResultWithIds>& expected_results) { + DCHECK(index); + + std::vector<Result> results; + auto status = index->Find(base::UTF8ToUTF16(query), max_results, &results); + + EXPECT_EQ(status, expected_status); + + if (!results.empty()) { + // If results are returned, check size and values match the expected. + EXPECT_EQ(results.size(), expected_results.size()); + for (size_t i = 0; i < results.size(); ++i) { + EXPECT_EQ(results[i].id, expected_results[i].first); + EXPECT_EQ(results[i].positions.size(), expected_results[i].second.size()); + + for (size_t j = 0; j < results[i].positions.size(); ++j) { + EXPECT_EQ(results[i].positions[j].content_id, + expected_results[i].second[j]); + } + // Scores should be non-increasing. + if (i < results.size() - 1) { + EXPECT_GE(results[i].score, results[i + 1].score); + } + } + return; + } + + // If no results are returned, expected ids should be empty. + EXPECT_TRUE(expected_results.empty()); +} + +} // namespace + +class LinearMapSearchTest : public testing::Test { + void SetUp() override { + index_ = std::make_unique<LinearMapSearch>(IndexId::kCrosSettings); + } + + protected: + std::unique_ptr<LinearMapSearch> index_; +}; + +TEST_F(LinearMapSearchTest, SetSearchParams) { + { + // No params are specified so default values are used. + const SearchParams used_params = index_->GetSearchParamsForTesting(); + + CheckSearchParams(used_params, SearchParams()); + } + + { + // Params are specified and are used. + SearchParams search_params; + const SearchParams default_params; + search_params.relevance_threshold = default_params.relevance_threshold / 2; + search_params.prefix_threshold = default_params.prefix_threshold / 2; + search_params.fuzzy_threshold = default_params.fuzzy_threshold / 2; + + index_->SetSearchParams(search_params); + + const SearchParams used_params = index_->GetSearchParamsForTesting(); + + CheckSearchParams(used_params, search_params); + } +} + +TEST_F(LinearMapSearchTest, RelevanceThreshold) { + const std::map<std::string, std::vector<ContentWithId>> data_to_register = { + {"id1", {{"tag1", "Wi-Fi"}}}, {"id2", {{"tag2", "famous"}}}}; + std::vector<Data> data = CreateTestData(data_to_register); + index_->AddOrUpdate(data); + EXPECT_EQ(index_->GetSize(), 2u); + { + SearchParams search_params; + search_params.relevance_threshold = 0.0; + index_->SetSearchParams(search_params); + + const std::vector<ResultWithIds> expected_results = {{"id1", {"tag1"}}, + {"id2", {"tag2"}}}; + FindAndCheckResults(index_.get(), "wifi", + /*max_results=*/-1, ResponseStatus::kSuccess, + expected_results); + } + { + SearchParams search_params; + search_params.relevance_threshold = 0.3; + index_->SetSearchParams(search_params); + + const std::vector<ResultWithIds> expected_results = {{"id1", {"tag1"}}}; + FindAndCheckResults(index_.get(), "wifi", + /*max_results=*/-1, ResponseStatus::kSuccess, + expected_results); + } + { + SearchParams search_params; + search_params.relevance_threshold = 0.9; + index_->SetSearchParams(search_params); + + FindAndCheckResults(index_.get(), "wifi", + /*max_results=*/-1, ResponseStatus::kSuccess, {}); + } +} + +TEST_F(LinearMapSearchTest, MaxResults) { + const std::map<std::string, std::vector<ContentWithId>> data_to_register = { + {"id1", {{"tag1", "abcde"}, {"tag2", "Wi-Fi"}}}, + {"id2", {{"tag3", "wifi"}}}}; + std::vector<Data> data = CreateTestData(data_to_register); + index_->AddOrUpdate(data); + EXPECT_EQ(index_->GetSize(), 2u); + SearchParams search_params; + search_params.relevance_threshold = 0.3; + index_->SetSearchParams(search_params); + + { + const std::vector<ResultWithIds> expected_results = {{"id2", {"tag3"}}, + {"id1", {"tag2"}}}; + FindAndCheckResults(index_.get(), "wifi", + /*max_results=*/-1, ResponseStatus::kSuccess, + expected_results); + } + { + const std::vector<ResultWithIds> expected_results = {{"id2", {"tag3"}}}; + FindAndCheckResults(index_.get(), "wifi", + /*max_results=*/1, ResponseStatus::kSuccess, + expected_results); + } +} + +TEST_F(LinearMapSearchTest, ResultFound) { + const std::map<std::string, std::vector<ContentWithId>> data_to_register = { + {"id1", {{"cid1", "id1"}, {"cid2", "tag1a"}, {"cid3", "tag1b"}}}, + {"xyz", {{"cid4", "xyz"}}}}; + std::vector<Data> data = CreateTestData(data_to_register); + EXPECT_EQ(data.size(), 2u); + + index_->AddOrUpdate(data); + EXPECT_EQ(index_->GetSize(), 2u); + + // Find result with query "id1". It returns an exact match. + const std::vector<ResultWithIds> expected_results = {{"id1", {"cid1"}}}; + FindAndCheckResults(index_.get(), "id1", + /*max_results=*/-1, ResponseStatus::kSuccess, + expected_results); + FindAndCheckResults(index_.get(), "abc", + /*max_results=*/-1, ResponseStatus::kSuccess, {}); +} + +} // namespace local_search_service
diff --git a/chrome/browser/chromeos/local_search_service/local_search_service.cc b/chrome/browser/chromeos/local_search_service/local_search_service.cc index f68e426cc..fd662a0 100644 --- a/chrome/browser/chromeos/local_search_service/local_search_service.cc +++ b/chrome/browser/chromeos/local_search_service/local_search_service.cc
@@ -6,7 +6,7 @@ #include <utility> -#include "chrome/browser/chromeos/local_search_service/index.h" +#include "chrome/browser/chromeos/local_search_service/linear_map_search.h" namespace local_search_service { @@ -17,8 +17,19 @@ Index* LocalSearchService::GetIndex(IndexId index_id, Backend backend) { auto it = indices_.find(index_id); if (it == indices_.end()) { - it = indices_.emplace(index_id, std::make_unique<Index>(index_id, backend)) - .first; + // TODO(jiameng): allow inverted index in the next cl. + DCHECK_EQ(backend, Backend::kLinearMap); + switch (backend) { + case Backend::kLinearMap: + it = indices_ + .emplace(index_id, std::make_unique<LinearMapSearch>(index_id)) + .first; + break; + default: + it = indices_ + .emplace(index_id, std::make_unique<LinearMapSearch>(index_id)) + .first; + } } DCHECK(it != indices_.end()); DCHECK(it->second);
diff --git a/chrome/browser/chromeos/local_search_service/proxy/local_search_service_proxy.mojom b/chrome/browser/chromeos/local_search_service/proxy/local_search_service_proxy.mojom index dbe6983..fc13594 100644 --- a/chrome/browser/chromeos/local_search_service/proxy/local_search_service_proxy.mojom +++ b/chrome/browser/chromeos/local_search_service/proxy/local_search_service_proxy.mojom
@@ -8,7 +8,8 @@ import "mojo/public/mojom/base/string16.mojom"; enum IndexId { - kCrosSettings = 0 + kCrosSettings = 0, + kHelpApp = 1 // Add new client IDs here. };
diff --git a/chrome/browser/chromeos/local_search_service/proxy/types_mojom_traits.cc b/chrome/browser/chromeos/local_search_service/proxy/types_mojom_traits.cc index 06be634..455234f6 100644 --- a/chrome/browser/chromeos/local_search_service/proxy/types_mojom_traits.cc +++ b/chrome/browser/chromeos/local_search_service/proxy/types_mojom_traits.cc
@@ -14,6 +14,8 @@ switch (input) { case local_search_service::IndexId::kCrosSettings: return local_search_service::mojom::IndexId::kCrosSettings; + case local_search_service::IndexId::kHelpApp: + return local_search_service::mojom::IndexId::kHelpApp; } NOTREACHED(); return local_search_service::mojom::IndexId::kCrosSettings; @@ -28,6 +30,9 @@ case local_search_service::mojom::IndexId::kCrosSettings: *output = local_search_service::IndexId::kCrosSettings; return true; + case local_search_service::mojom::IndexId::kHelpApp: + *output = local_search_service::IndexId::kHelpApp; + return true; } NOTREACHED(); return false;
diff --git a/chrome/browser/chromeos/local_search_service/search_metrics_reporter.cc b/chrome/browser/chromeos/local_search_service/search_metrics_reporter.cc index 98eda5e..8d2e033 100644 --- a/chrome/browser/chromeos/local_search_service/search_metrics_reporter.cc +++ b/chrome/browser/chromeos/local_search_service/search_metrics_reporter.cc
@@ -22,18 +22,21 @@ constexpr std::array<const char*, SearchMetricsReporter::kNumberIndexIds> kDailyCountPrefs = { prefs::kLocalSearchServiceMetricsCrosSettingsCount, + prefs::kLocalSearchServiceMetricsHelpAppCount, }; // Histograms corresponding to IndexId values. constexpr std::array<const char*, SearchMetricsReporter::kNumberIndexIds> kDailyCountHistograms = { SearchMetricsReporter::kCrosSettingsName, + SearchMetricsReporter::kHelpAppName, }; } // namespace constexpr char SearchMetricsReporter::kDailyEventIntervalName[]; constexpr char SearchMetricsReporter::kCrosSettingsName[]; +constexpr char SearchMetricsReporter::kHelpAppName[]; constexpr int SearchMetricsReporter::kNumberIndexIds;
diff --git a/chrome/browser/chromeos/local_search_service/search_metrics_reporter.h b/chrome/browser/chromeos/local_search_service/search_metrics_reporter.h index 23949d6..7612b76c 100644 --- a/chrome/browser/chromeos/local_search_service/search_metrics_reporter.h +++ b/chrome/browser/chromeos/local_search_service/search_metrics_reporter.h
@@ -34,6 +34,8 @@ // Histogram names of daily counts, one for each IndexId. static constexpr char kCrosSettingsName[] = "LocalSearchService.CrosSettings.DailySearch"; + static constexpr char kHelpAppName[] = + "LocalSearchService.HelpApp.DailySearch"; // Registers prefs used by SearchMetricsReporter in |registry|. static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
diff --git a/chrome/browser/chromeos/local_search_service/shared_structs.h b/chrome/browser/chromeos/local_search_service/shared_structs.h index 8dbee3a9..d319c1ac 100644 --- a/chrome/browser/chromeos/local_search_service/shared_structs.h +++ b/chrome/browser/chromeos/local_search_service/shared_structs.h
@@ -14,7 +14,7 @@ // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. -enum class IndexId { kCrosSettings = 0, kMaxValue = kCrosSettings }; +enum class IndexId { kCrosSettings = 0, kHelpApp = 1, kMaxValue = kHelpApp }; // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused.
diff --git a/chrome/browser/chromeos/plugin_vm/mock_plugin_vm_manager.h b/chrome/browser/chromeos/plugin_vm/mock_plugin_vm_manager.h index 00b285a..a416867e 100644 --- a/chrome/browser/chromeos/plugin_vm/mock_plugin_vm_manager.h +++ b/chrome/browser/chromeos/plugin_vm/mock_plugin_vm_manager.h
@@ -20,6 +20,7 @@ MockPluginVmManager& operator=(const MockPluginVmManager&) = delete; MOCK_METHOD(void, LaunchPluginVm, (LaunchPluginVmCallback callback), ()); + MOCK_METHOD(void, RelaunchPluginVm, (), ()); MOCK_METHOD(void, StopPluginVm, (const std::string& name, bool force), ()); MOCK_METHOD(void, UninstallPluginVm, (), ()); MOCK_METHOD(uint64_t, seneschal_server_handle, (), (const)); @@ -38,6 +39,7 @@ (chromeos::VmStartingObserver * observer), ()); MOCK_METHOD(vm_tools::plugin_dispatcher::VmState, vm_state, (), (const)); + MOCK_METHOD(bool, IsRelaunchNeededForNewPermissions, (), (const)); }; } // namespace test
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager.h b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager.h index bbf2e05..99a49e5 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager.h +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager.h
@@ -35,6 +35,7 @@ ~PluginVmManager() override; virtual void LaunchPluginVm(LaunchPluginVmCallback callback) = 0; + virtual void RelaunchPluginVm() = 0; virtual void StopPluginVm(const std::string& name, bool force) = 0; virtual void UninstallPluginVm() = 0; @@ -68,6 +69,10 @@ bool GetPermission(PermissionType permission_type); void SetPermission(PermissionType permission_type, bool value); + // Indicates whether relaunch (suspend + start) is needed for the new + // permissions to go into effect. + virtual bool IsRelaunchNeededForNewPermissions() const = 0; + protected: PluginVmManager();
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.cc b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.cc index 0dbdb7c2..eae41be 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.cc +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.cc
@@ -160,6 +160,48 @@ std::move(request), base::DoNothing()); } +void PluginVmManagerImpl::RelaunchPluginVm() { + if (relaunch_in_progress_) { + pending_relaunch_vm_ = true; + return; + } + + relaunch_in_progress_ = true; + + vm_tools::plugin_dispatcher::SuspendVmRequest request; + request.set_owner_id(owner_id_); + request.set_vm_name_uuid(kPluginVmName); + + // TODO(dtor): This may not work if the vm is STARTING|CONTINUING|RESUMING. + chromeos::DBusThreadManager::Get()->GetVmPluginDispatcherClient()->SuspendVm( + std::move(request), + base::BindOnce(&PluginVmManagerImpl::OnSuspendVmForRelaunch, + weak_ptr_factory_.GetWeakPtr())); +} + +void PluginVmManagerImpl::OnSuspendVmForRelaunch( + base::Optional<vm_tools::plugin_dispatcher::SuspendVmResponse> reply) { + if (reply && + reply->error() == vm_tools::plugin_dispatcher::VmErrorCode::VM_SUCCESS) { + LaunchPluginVm(base::BindOnce(&PluginVmManagerImpl::OnRelaunchVmComplete, + weak_ptr_factory_.GetWeakPtr())); + return; + } + + LOG(ERROR) << "Failed to suspend Plugin VM for relaunch"; +} + +void PluginVmManagerImpl::OnRelaunchVmComplete(bool success) { + relaunch_in_progress_ = false; + + if (!success) { + LOG(ERROR) << "Failed to relaunch Plugin VM"; + } else if (pending_relaunch_vm_) { + pending_relaunch_vm_ = false; + RelaunchPluginVm(); + } +} + void PluginVmManagerImpl::UninstallPluginVm() { if (uninstaller_notification_) { uninstaller_notification_->ForceRedisplay(); @@ -265,6 +307,11 @@ return vm_state_; } +bool PluginVmManagerImpl::IsRelaunchNeededForNewPermissions() const { + return vm_is_starting_ || + vm_state_ == vm_tools::plugin_dispatcher::VmState::VM_STATE_RUNNING; +} + void PluginVmManagerImpl::InstallDlcAndUpdateVmState( base::OnceCallback<void(bool default_vm_exists)> success_callback, base::OnceClosure error_callback) { @@ -338,7 +385,6 @@ } } - void PluginVmManagerImpl::OnListVmsForLaunch(bool default_vm_exists) { if (!default_vm_exists) { LOG(WARNING) << "Default VM is missing, it may have been manually removed."; @@ -378,6 +424,7 @@ RemoveDriveDownloadDirectoryIfExists(); pending_start_vm_ = false; + vm_is_starting_ = true; vm_tools::plugin_dispatcher::StartVmRequest request; request.set_owner_id(owner_id_); @@ -414,6 +461,8 @@ result = PluginVmLaunchResult::kError; } + vm_is_starting_ = false; + if (result != PluginVmLaunchResult::kSuccess) { ShowStartVmFailedDialog(result); LaunchFailed(result);
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.h b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.h index fdfad5e..c5e677c7 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.h +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl.h
@@ -37,6 +37,7 @@ // TODO(juwa): Don't allow launch/stop/uninstall to run simultaneously. // |callback| is called either when VM tools are ready or if an error occurs. void LaunchPluginVm(LaunchPluginVmCallback callback) override; + void RelaunchPluginVm() override; void StopPluginVm(const std::string& name, bool force) override; void UninstallPluginVm() override; @@ -55,6 +56,8 @@ vm_tools::plugin_dispatcher::VmState vm_state() const override; + bool IsRelaunchNeededForNewPermissions() const override; + void AddVmStartingObserver(chromeos::VmStartingObserver* observer) override; void RemoveVmStartingObserver( chromeos::VmStartingObserver* observer) override; @@ -101,6 +104,11 @@ // Called when LaunchPluginVm() is unsuccessful. void LaunchFailed(PluginVmLaunchResult result = PluginVmLaunchResult::kError); + // The flow to relaunch Plugin Vm. + void OnSuspendVmForRelaunch( + base::Optional<vm_tools::plugin_dispatcher::SuspendVmResponse> reply); + void OnRelaunchVmComplete(bool success); + // The flow to uninstall Plugin Vm. void OnListVmsForUninstall(bool default_vm_exists); void StopVmForUninstall(); @@ -125,10 +133,24 @@ vm_tools::plugin_dispatcher::VmState vm_state_ = vm_tools::plugin_dispatcher::VmState::VM_STATE_UNKNOWN; + // Indicates that we are attempting to start the VM. This fact may not yet + // be reflected in VM state as the dispatcher may not have had a chance + // to update it, or maybe it even is not yet aware that we issued StartVm + // request. + bool vm_is_starting_ = false; + + // Indicates that we are executing VM relaunch. + bool relaunch_in_progress_ = false; + // We can't immediately start the VM when it is in states like suspending, so // delay until an in progress operation finishes. bool pending_start_vm_ = false; + // If we receive second or third relaunch request while already in the middle + // of relaunch, we need to repeat it to ensure that privileges are set up + // according to the latest settings. + bool pending_relaunch_vm_ = false; + // We can't immediately destroy the VM when it is in states like // suspending, so delay until an in progress operation finishes. bool pending_destroy_disk_image_ = false;
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl_unittest.cc b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl_unittest.cc index 3e4ad8d..29e716e 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl_unittest.cc +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_manager_impl_unittest.cc
@@ -337,6 +337,29 @@ kPluginVmLaunchResultHistogram, PluginVmLaunchResult::kInvalidLicense, 1); } +TEST_F(PluginVmManagerImplTest, RelaunchPluginVm) { + test_helper_->AllowPluginVm(); + EXPECT_TRUE(IsPluginVmAllowedForProfile(testing_profile_.get())); + + // The PluginVmManagerImpl calls StartVm when the VM is not yet running. + SetListVmsResponse(vm_tools::plugin_dispatcher::VmState::VM_STATE_STOPPED); + + plugin_vm_manager_->RelaunchPluginVm(); + task_environment_.RunUntilIdle(); + EXPECT_TRUE(VmPluginDispatcherClient().list_vms_called()); + EXPECT_TRUE(VmPluginDispatcherClient().start_vm_called()); + EXPECT_TRUE(VmPluginDispatcherClient().show_vm_called()); + EXPECT_FALSE(ConciergeClient().get_vm_info_called()); + EXPECT_FALSE(SeneschalClient().share_path_called()); + EXPECT_EQ(plugin_vm_manager_->seneschal_server_handle(), 0ul); + + histogram_tester_->ExpectUniqueSample(kPluginVmLaunchResultHistogram, + PluginVmLaunchResult::kSuccess, 1); + + NotifyVmToolsStateChanged( + vm_tools::plugin_dispatcher::VmToolsState::VM_TOOLS_STATE_INSTALLED); +} + TEST_F(PluginVmManagerImplTest, UninstallRunningPluginVm) { test_helper_->AllowPluginVm(); EXPECT_TRUE(IsPluginVmAllowedForProfile(testing_profile_.get()));
diff --git a/chrome/browser/download/android/BUILD.gn b/chrome/browser/download/android/BUILD.gn index 8bae339..eedcc95 100644 --- a/chrome/browser/download/android/BUILD.gn +++ b/chrome/browser/download/android/BUILD.gn
@@ -205,6 +205,7 @@ "java/res/values-night-v17/colors.xml", "java/res/values-v17/attrs.xml", "java/res/values-v17/colors.xml", + "java/res/values-v17/dimens.xml", "java/res/values-v17/ids.xml", "java/res/values-v17/styles.xml", "java/res/xml/download_preferences.xml",
diff --git a/chrome/browser/download/android/java/res/layout/download_later_dialog.xml b/chrome/browser/download/android/java/res/layout/download_later_dialog.xml index 617e743a..50b7436 100644 --- a/chrome/browser/download/android/java/res/layout/download_later_dialog.xml +++ b/chrome/browser/download/android/java/res/layout/download_later_dialog.xml
@@ -20,15 +20,15 @@ android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="3dp" - android:textAppearance="@style/TextAppearance.DownloadLaterTitle" + android:layout_marginBottom="@dimen/download_dialog_title_margin_bottom" + android:textAppearance="@style/TextAppearance.DownloadDialogTitle" android:text="@string/download_later_dialog_title" /> <TextView android:id="@+id/subtitle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="10dp" + android:layout_marginBottom="@dimen/download_dialog_subtitle_margin_bottom" android:textAppearance="@style/TextAppearance.TextMedium.Secondary" android:text="@string/download_later_dialog_subtitle" />
diff --git a/chrome/browser/download/android/java/res/layout/download_location_dialog.xml b/chrome/browser/download/android/java/res/layout/download_location_dialog.xml index c975f5a..209526c4 100644 --- a/chrome/browser/download/android/java/res/layout/download_location_dialog.xml +++ b/chrome/browser/download/android/java/res/layout/download_location_dialog.xml
@@ -16,12 +16,18 @@ style="@style/AlertDialogContent"> <TextView + android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/download_dialog_title_margin_bottom" + android:textAppearance="@style/TextAppearance.DownloadDialogTitle" /> + + <TextView android:id="@+id/subtitle" - android:textAppearance="@style/TextAppearance.TextMedium.Secondary" - android:visibility="gone" - android:layout_marginBottom="16dp" /> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/download_dialog_subtitle_margin_bottom" + android:textAppearance="@style/TextAppearance.TextMedium.Secondary" /> <LinearLayout android:layout_width="match_parent"
diff --git a/chrome/browser/download/android/java/res/values-v17/dimens.xml b/chrome/browser/download/android/java/res/values-v17/dimens.xml new file mode 100644 index 0000000..990f552 --- /dev/null +++ b/chrome/browser/download/android/java/res/values-v17/dimens.xml
@@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 2020 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. --> + +<resources xmlns:tools="http://schemas.android.com/tools"> + <dimen name="download_dialog_title_margin_bottom">3dp</dimen> + <dimen name="download_dialog_subtitle_margin_bottom">10dp</dimen> +</resources>
diff --git a/chrome/browser/download/android/java/res/values-v17/styles.xml b/chrome/browser/download/android/java/res/values-v17/styles.xml index 4056d99..e401469 100644 --- a/chrome/browser/download/android/java/res/values-v17/styles.xml +++ b/chrome/browser/download/android/java/res/values-v17/styles.xml
@@ -83,8 +83,8 @@ <item name="android:tint">@color/modern_grey_800</item> </style> - <!-- Download Later Styles --> - <style name="TextAppearance.DownloadLaterTitle" parent="TextAppearance.AlertDialogTitleStyle"> + <!-- Download Dialogs Styles --> + <style name="TextAppearance.DownloadDialogTitle" parent="TextAppearance.AlertDialogTitleStyle"> <item name="android:textSize">20sp</item> </style> </resources>
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java index a7be8e3..f633d37 100644 --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.download.DownloadPromptStatus; import org.chromium.chrome.browser.download.R; import org.chromium.chrome.browser.download.settings.DownloadDirectoryAdapter; +import org.chromium.components.browser_ui.util.DownloadUtils; import org.chromium.components.browser_ui.widget.text.AlertDialogEditText; import java.io.File; @@ -35,6 +36,7 @@ extends ScrollView implements OnCheckedChangeListener, DownloadDirectoryAdapter.Delegate { private DownloadDirectoryAdapter mDirectoryAdapter; + private TextView mTitle; private TextView mSubtitleView; private AlertDialogEditText mFileName; private Spinner mFileLocation; @@ -50,13 +52,15 @@ protected void onFinishInflate() { super.onFinishInflate(); + mTitle = findViewById(R.id.title); mSubtitleView = findViewById(R.id.subtitle); mFileName = findViewById(R.id.file_name); mFileLocation = findViewById(R.id.file_location); mDontShowAgain = findViewById(R.id.show_again_checkbox); } - void initialize(@DownloadLocationDialogType int dialogType, File suggestedPath) { + void initialize(@DownloadLocationDialogType int dialogType, File suggestedPath, long totalBytes, + CharSequence title) { mDialogType = dialogType; // Automatically check "don't show again" the first time the user is seeing the dialog. @@ -66,9 +70,23 @@ mDontShowAgain.setOnCheckedChangeListener(this); mFileName.setText(suggestedPath.getName()); - mSubtitleView.setVisibility( - dialogType == DownloadLocationDialogType.DEFAULT ? View.GONE : View.VISIBLE); + mTitle.setText(title); switch (dialogType) { + case DownloadLocationDialogType.DEFAULT: + // Show a file size subtitle if file size is available. + if (totalBytes > 0) { + mSubtitleView.setText( + DownloadUtils.getStringForBytes(getContext(), totalBytes)); + } else { + // Hide the subtitle and adjust the bottom margin. + mSubtitleView.setVisibility(View.GONE); + MarginLayoutParams titleMargin = (MarginLayoutParams) mTitle.getLayoutParams(); + titleMargin.bottomMargin = getResources().getDimensionPixelSize( + R.dimen.download_dialog_subtitle_margin_bottom); + setLayoutParams(titleMargin); + } + break; + case DownloadLocationDialogType.LOCATION_FULL: mSubtitleView.setText(R.string.download_location_download_to_default_folder); break;
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java index 3f1ea81..2bb122e 100644 --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
@@ -139,13 +139,13 @@ // Actually show the dialog. mCustomView = (DownloadLocationCustomView) LayoutInflater.from(mContext).inflate( R.layout.download_location_dialog, null); - mCustomView.initialize(mDialogType, new File(mSuggestedPath)); + mCustomView.initialize( + mDialogType, new File(mSuggestedPath), mTotalBytes, getTitle(mDialogType)); Resources resources = mContext.getResources(); mDialogModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS) .with(ModalDialogProperties.CONTROLLER, this) - .with(ModalDialogProperties.TITLE, getTitle(mTotalBytes, mDialogType)) .with(ModalDialogProperties.CUSTOM_VIEW, mCustomView) .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources, R.string.duplicate_download_infobar_download_button) @@ -156,7 +156,7 @@ mModalDialogManager.showDialog(mDialogModel, ModalDialogManager.ModalDialogType.APP); } - private String getTitle(long totalBytes, @DownloadLocationDialogType int dialogType) { + private String getTitle(@DownloadLocationDialogType int dialogType) { switch (dialogType) { case DownloadLocationDialogType.LOCATION_FULL: return mContext.getString(R.string.download_location_not_enough_space); @@ -171,16 +171,7 @@ return mContext.getString(R.string.download_location_rename_file); case DownloadLocationDialogType.DEFAULT: - String title = mContext.getString(R.string.download_location_dialog_title); - if (totalBytes > 0) { - StringBuilder stringBuilder = new StringBuilder(title); - stringBuilder.append(" "); - stringBuilder.append( - org.chromium.components.browser_ui.util.DownloadUtils.getStringForBytes( - mContext, totalBytes)); - title = stringBuilder.toString(); - } - return title; + return mContext.getString(R.string.download_location_dialog_title); } assert false; return null;
diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc b/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc index f2f203c0..54b8c2d 100644 --- a/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc +++ b/chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.cc
@@ -118,6 +118,7 @@ case ui::ime::ButtonId::kNone: case ui::ime::ButtonId::kSmartInputsSettingLink: case ui::ime::ButtonId::kSuggestion: + case ui::ime::ButtonId::kLearnMore: return input_ime::ASSISTIVE_WINDOW_BUTTON_NONE; case ui::ime::ButtonId::kUndo: return input_ime::ASSISTIVE_WINDOW_BUTTON_UNDO;
diff --git a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc index 2581ac8..c986862 100644 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.cc
@@ -36,7 +36,7 @@ content::GlobalFrameRoutingId frame_id, const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback< void(ChromeNativeFileSystemPermissionContext::SensitiveDirectoryResult)> callback) { @@ -59,7 +59,7 @@ } ShowNativeFileSystemRestrictedDirectoryDialog( - origin, path, is_directory, std::move(callback), web_contents); + origin, path, handle_type, std::move(callback), web_contents); } // Sentinel used to indicate that no PathService key is specified for a path in @@ -303,7 +303,7 @@ void ChromeNativeFileSystemPermissionContext::ConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, content::GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback) { @@ -320,7 +320,7 @@ base::BindOnce(&ShouldBlockAccessToPath, paths[0]), base::BindOnce(&ChromeNativeFileSystemPermissionContext:: DidConfirmSensitiveDirectoryAccess, - GetWeakPtr(), origin, paths, is_directory, frame_id, + GetWeakPtr(), origin, paths, handle_type, frame_id, std::move(callback))); } @@ -351,7 +351,7 @@ DidConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, content::GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback, bool should_block) { @@ -367,7 +367,7 @@ content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&ShowNativeFileSystemRestrictedDirectoryDialogOnUIThread, - frame_id, origin, paths[0], is_directory, + frame_id, origin, paths[0], handle_type, std::move(result_callback))); }
diff --git a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h index 6a952a3..ac9eb52 100644 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h
@@ -49,7 +49,7 @@ void ConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, content::GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback) override; void PerformAfterWriteChecks( @@ -96,7 +96,7 @@ void DidConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, content::GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback, bool should_block);
diff --git a/chrome/browser/native_file_system/chrome_native_file_system_permission_context_unittest.cc b/chrome/browser/native_file_system/chrome_native_file_system_permission_context_unittest.cc index d79bc95..e5b0759 100644 --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context_unittest.cc +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context_unittest.cc
@@ -47,7 +47,7 @@ scoped_refptr<content::NativeFileSystemPermissionGrant> GetReadPermissionGrant(const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) override { NOTREACHED(); return nullptr; @@ -55,7 +55,7 @@ scoped_refptr<content::NativeFileSystemPermissionGrant> GetWritePermissionGrant(const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) override { NOTREACHED(); return nullptr; @@ -103,7 +103,8 @@ base::RunLoop loop; SensitiveDirectoryResult out_result; permission_context_->ConfirmSensitiveDirectoryAccess( - kTestOrigin, paths, /*is_directory=*/false, + kTestOrigin, paths, + content::NativeFileSystemPermissionContext::HandleType::kFile, content::GlobalFrameRoutingId(), base::BindLambdaForTesting([&](SensitiveDirectoryResult result) { out_result = result;
diff --git a/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc b/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc index 10f1bf9..d690e47 100644 --- a/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc +++ b/chrome/browser/native_file_system/native_file_system_permission_request_manager.cc
@@ -17,14 +17,14 @@ const NativeFileSystemPermissionRequestManager::RequestData& a, const NativeFileSystemPermissionRequestManager::RequestData& b) { return a.origin == b.origin && a.path == b.path && - a.is_directory == b.is_directory && a.access == b.access; + a.handle_type == b.handle_type && a.access == b.access; } bool RequestsAreForSamePath( const NativeFileSystemPermissionRequestManager::RequestData& a, const NativeFileSystemPermissionRequestManager::RequestData& b) { return a.origin == b.origin && a.path == b.path && - a.is_directory == b.is_directory; + a.handle_type == b.handle_type; } } // namespace
diff --git a/chrome/browser/native_file_system/native_file_system_permission_request_manager.h b/chrome/browser/native_file_system/native_file_system_permission_request_manager.h index e66be8e..393f74ec 100644 --- a/chrome/browser/native_file_system/native_file_system_permission_request_manager.h +++ b/chrome/browser/native_file_system/native_file_system_permission_request_manager.h
@@ -9,6 +9,7 @@ #include "base/containers/circular_deque.h" #include "base/files/file_path.h" #include "base/memory/weak_ptr.h" +#include "content/public/browser/native_file_system_permission_context.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" #include "url/origin.h" @@ -44,13 +45,14 @@ }; struct RequestData { - RequestData(const url::Origin& origin, - const base::FilePath& path, - bool is_directory, - Access access) + RequestData( + const url::Origin& origin, + const base::FilePath& path, + content::NativeFileSystemPermissionContext::HandleType handle_type, + Access access) : origin(origin), path(path), - is_directory(is_directory), + handle_type(handle_type), access(access) {} RequestData(RequestData&&) = default; RequestData(const RequestData&) = default; @@ -59,7 +61,7 @@ url::Origin origin; base::FilePath path; - bool is_directory; + content::NativeFileSystemPermissionContext::HandleType handle_type; Access access; };
diff --git a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc index bdce70c..fab17cc 100644 --- a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc +++ b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.cc
@@ -33,17 +33,19 @@ class OriginScopedNativeFileSystemPermissionContext::PermissionGrantImpl : public content::NativeFileSystemPermissionGrant { + using HandleType = NativeFileSystemPermissionContext::HandleType; + public: PermissionGrantImpl( base::WeakPtr<OriginScopedNativeFileSystemPermissionContext> context, const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, GrantType type) : context_(std::move(context)), origin_(origin), path_(path), - is_directory_(is_directory), + handle_type_(handle_type), type_(type) {} // NativeFileSystemPermissionGrant: @@ -148,7 +150,7 @@ // code does not have to have any way to request Access::kReadWrite. request_manager->AddRequest( - {origin_, path_, is_directory_, access}, + {origin_, path_, handle_type_, access}, base::BindOnce(&PermissionGrantImpl::OnPermissionRequestResult, this, std::move(callback)), std::move(fullscreen_block)); @@ -159,9 +161,9 @@ return origin_; } - bool is_directory() const { + HandleType handle_type() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - return is_directory_; + return handle_type_; } const base::FilePath& path() const { @@ -189,7 +191,7 @@ for (const auto& entry : grants) { if (entry.second->GetStatus() != PermissionStatus::GRANTED) continue; - if (entry.second->is_directory()) { + if (entry.second->handle_type() == HandleType::kDirectory) { directory_grants->push_back(entry.second->path()); } else { file_grants->push_back(entry.second->path()); @@ -238,7 +240,7 @@ if (type_ == GrantType::kWrite) { base::UmaHistogramEnumeration( "NativeFileSystemAPI.WritePermissionRequestOutcome", outcome); - if (is_directory_) { + if (handle_type_ == HandleType::kDirectory) { base::UmaHistogramEnumeration( "NativeFileSystemAPI.WritePermissionRequestOutcome.Directory", outcome); @@ -249,7 +251,7 @@ } else { base::UmaHistogramEnumeration( "NativeFileSystemAPI.ReadPermissionRequestOutcome", outcome); - if (is_directory_) { + if (handle_type_ == HandleType::kDirectory) { base::UmaHistogramEnumeration( "NativeFileSystemAPI.ReadPermissionRequestOutcome.Directory", outcome); @@ -267,7 +269,7 @@ base::WeakPtr<OriginScopedNativeFileSystemPermissionContext> const context_; const url::Origin origin_; const base::FilePath path_; - const bool is_directory_; + const HandleType handle_type_; const GrantType type_; // This member should only be updated via SetStatus(), to make sure @@ -302,7 +304,7 @@ OriginScopedNativeFileSystemPermissionContext::GetReadPermissionGrant( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, UserAction user_action) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // operator[] might insert a new OriginState in |origins_|, but that @@ -313,7 +315,7 @@ auto*& existing_grant = origin_state.read_grants[path]; scoped_refptr<PermissionGrantImpl> new_grant; - if (existing_grant && existing_grant->is_directory() != is_directory) { + if (existing_grant && existing_grant->handle_type() != handle_type) { // |path| changed from being a directory to being a file or vice versa, // don't just re-use the existing grant but revoke the old grant before // creating a new grant. @@ -323,7 +325,7 @@ if (!existing_grant) { new_grant = base::MakeRefCounted<PermissionGrantImpl>( - weak_factory_.GetWeakPtr(), origin, path, is_directory, + weak_factory_.GetWeakPtr(), origin, path, handle_type, GrantType::kRead); existing_grant = new_grant.get(); } @@ -336,7 +338,8 @@ case CONTENT_SETTING_ASK: // Files automatically get read access when picked by the user, // directories need to first be confirmed. - if (user_action != UserAction::kLoadFromStorage && !is_directory) { + if (user_action != UserAction::kLoadFromStorage && + handle_type == HandleType::kFile) { existing_grant->SetStatus(PermissionStatus::GRANTED); ScheduleUsageIconUpdate(); } @@ -361,7 +364,7 @@ OriginScopedNativeFileSystemPermissionContext::GetWritePermissionGrant( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // operator[] might insert a new OriginState in |origins_|, but that @@ -372,7 +375,7 @@ auto*& existing_grant = origin_state.write_grants[path]; scoped_refptr<PermissionGrantImpl> new_grant; - if (existing_grant && existing_grant->is_directory() != is_directory) { + if (existing_grant && existing_grant->handle_type() != handle_type) { // |path| changed from being a directory to being a file or vice versa, // don't just re-use the existing grant but revoke the old grant before // creating a new grant. @@ -382,7 +385,7 @@ if (!existing_grant) { new_grant = base::MakeRefCounted<PermissionGrantImpl>( - weak_factory_.GetWeakPtr(), origin, path, is_directory, + weak_factory_.GetWeakPtr(), origin, path, handle_type, GrantType::kWrite); existing_grant = new_grant.get(); } @@ -422,7 +425,7 @@ // refactor the calling code of this method to just do what this // implementation does directly. scoped_refptr<content::NativeFileSystemPermissionGrant> grant = - GetReadPermissionGrant(origin, path, /*is_directory=*/true, + GetReadPermissionGrant(origin, path, HandleType::kDirectory, UserAction::kOpen); static_cast<PermissionGrantImpl*>(grant.get()) ->RequestPermissionImpl(
diff --git a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.h b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.h index bdfc8d3e..a1ea5330e 100644 --- a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.h +++ b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context.h
@@ -28,12 +28,12 @@ scoped_refptr<content::NativeFileSystemPermissionGrant> GetReadPermissionGrant(const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) override; scoped_refptr<content::NativeFileSystemPermissionGrant> GetWritePermissionGrant(const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) override; void ConfirmDirectoryReadAccess( const url::Origin& origin,
diff --git a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context_unittest.cc b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context_unittest.cc index 63e7ca0..9e8fa83 100644 --- a/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context_unittest.cc +++ b/chrome/browser/native_file_system/origin_scoped_native_file_system_permission_context_unittest.cc
@@ -41,6 +41,7 @@ content::NativeFileSystemPermissionGrant::PermissionRequestOutcome; using SensitiveDirectoryResult = ChromeNativeFileSystemPermissionContext::SensitiveDirectoryResult; +using HandleType = content::NativeFileSystemPermissionContext::HandleType; class OriginScopedNativeFileSystemPermissionContextTest : public testing::Test { public: @@ -122,51 +123,49 @@ TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetReadPermissionGrant_InitialState_LoadFromStorage) { auto grant = permission_context()->GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, - UserAction::kLoadFromStorage); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kLoadFromStorage); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetReadPermissionGrant_InitialState_Open_File) { auto grant = permission_context()->GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetReadPermissionGrant_InitialState_Open_Directory) { auto grant = permission_context()->GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_InitialState_LoadFromStorage) { auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, - UserAction::kLoadFromStorage); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kLoadFromStorage); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_InitialState_Open_File) { auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_InitialState_Open_Directory) { auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_InitialState_WritableImplicitState) { auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus()); // The existing grant should not change if the permission is blocked globally. @@ -178,18 +177,18 @@ // Getting a grant for the same file again should also not change the grant, // even now asking for more permissions is blocked globally. grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_WriteGrantedChangesExistingGrant) { auto grant1 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); auto grant2 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); auto grant3 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); // All grants should be the same grant, and be granted. EXPECT_EQ(grant1, grant2); EXPECT_EQ(grant1, grant3); @@ -199,14 +198,14 @@ TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_GrantIsRevokedWhenNoLongerUsed) { auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus()); grant.reset(); // After reset grant should go away, so new grant request should be in ASK // state. grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } @@ -217,7 +216,7 @@ CONTENT_SETTING_BLOCK); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::DENIED, grant->GetStatus()); grant.reset(); @@ -226,7 +225,7 @@ CONTENT_SETTING_ASK); grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); } @@ -238,7 +237,7 @@ CONTENT_SETTING_BLOCK); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::DENIED, grant->GetStatus()); grant.reset(); @@ -247,7 +246,7 @@ CONTENT_SETTING_ASK); grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus()); } @@ -259,11 +258,11 @@ CONTENT_SETTING_BLOCK); auto grant1 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); auto grant2 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); auto grant3 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); // All grants should be the same grant, and be denied. EXPECT_EQ(grant1, grant2); EXPECT_EQ(grant1, grant3); @@ -278,14 +277,14 @@ CONTENT_SETTING_BLOCK); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::DENIED, grant->GetStatus()); grant.reset(); // After reset grant should go away, but the new grant request should be in // DENIED state. grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::DENIED, grant->GetStatus()); } @@ -293,14 +292,14 @@ OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_GrantIsRevokedWhenNoLongerUsed_GlobalGuardBlockedAfterNewGrant) { auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus()); grant.reset(); // After reset grant should go away, but the new grant request should be in // ASK state. grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus()); SetDefaultContentSettingValue( @@ -320,7 +319,7 @@ ->SimulateUserActivation(); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop; grant->RequestPermission( @@ -342,7 +341,7 @@ ->SimulateUserActivation(); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop; grant->RequestPermission( @@ -363,7 +362,7 @@ ->SimulateUserActivation(); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop; grant->RequestPermission( @@ -382,7 +381,7 @@ ->set_auto_response_for_test(PermissionAction::GRANTED); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop; grant->RequestPermission( @@ -402,7 +401,7 @@ // should call the passed-in callback and return immediately without showing a // prompt. auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); base::RunLoop loop; grant->RequestPermission( @@ -425,7 +424,7 @@ CONTENT_SETTING_BLOCK); auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop; grant->RequestPermission( @@ -438,7 +437,7 @@ EXPECT_EQ(PermissionStatus::DENIED, grant->GetStatus()); auto grant2 = permission_context()->GetWritePermissionGrant( - kTestOrigin2, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin2, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop2; grant2->RequestPermission( @@ -456,7 +455,7 @@ CONTENT_SETTING_ASK); grant2 = permission_context()->GetWritePermissionGrant( - kTestOrigin2, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin2, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop3; grant2->RequestPermission( @@ -475,9 +474,9 @@ // should update the PermissionStatus to DENIED, call the passed-in // callback, and return immediately without showing a prompt. auto grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); auto grant2 = permission_context()->GetWritePermissionGrant( - kTestOrigin2, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin2, kTestPath, HandleType::kFile, UserAction::kOpen); SetDefaultContentSettingValue( ContentSettingsType::NATIVE_FILE_SYSTEM_WRITE_GUARD, @@ -510,9 +509,9 @@ kTestOrigin, ContentSettingsType::NATIVE_FILE_SYSTEM_WRITE_GUARD, CONTENT_SETTING_ASK); grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); grant2 = permission_context()->GetWritePermissionGrant( - kTestOrigin2, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin2, kTestPath, HandleType::kFile, UserAction::kOpen); base::RunLoop loop3; grant->RequestPermission( @@ -549,19 +548,19 @@ // Allowlisted origin automatically gets write permission. auto grant1 = permission_context()->GetWritePermissionGrant( - kChromeOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kChromeOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant1->GetStatus()); auto grant2 = permission_context()->GetWritePermissionGrant( - kChromeOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kChromeOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant2->GetStatus()); // Other origin should gets blocked. auto grant3 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::DENIED, grant3->GetStatus()); auto grant4 = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::DENIED, grant4->GetStatus()); } @@ -579,33 +578,33 @@ // Initial grant (file). auto grant1 = permission_context()->GetWritePermissionGrant( - kChromeOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kChromeOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant1->GetStatus()); // Existing grant (file). auto grant2 = permission_context()->GetWritePermissionGrant( - kChromeOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kChromeOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant2->GetStatus()); // Initial grant (directory). auto grant3 = permission_context()->GetWritePermissionGrant( - kChromeOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kChromeOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant3->GetStatus()); // Existing grant (directory). auto grant4 = permission_context()->GetWritePermissionGrant( - kChromeOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kChromeOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, grant4->GetStatus()); } TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetReadPermissionGrant_FileBecomesDirectory) { auto file_grant = permission_context()->GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kOpen); EXPECT_EQ(PermissionStatus::GRANTED, file_grant->GetStatus()); auto directory_grant = permission_context()->GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, directory_grant->GetStatus()); // Requesting a permission grant for a directory which was previously a file @@ -616,11 +615,11 @@ TEST_F(OriginScopedNativeFileSystemPermissionContextTest, GetWritePermissionGrant_FileBecomesDirectory) { auto file_grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, UserAction::kSave); + kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave); EXPECT_EQ(PermissionStatus::GRANTED, file_grant->GetStatus()); auto directory_grant = permission_context()->GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, UserAction::kOpen); + kTestOrigin, kTestPath, HandleType::kDirectory, UserAction::kOpen); EXPECT_EQ(PermissionStatus::ASK, directory_grant->GetStatus()); // Requesting a permission grant for a directory which was previously a file
diff --git a/chrome/browser/resources/chromeos/edu_login/app.html b/chrome/browser/resources/chromeos/edu_login/app.html index ae8851c..cdba6174 100644 --- a/chrome/browser/resources/chromeos/edu_login/app.html +++ b/chrome/browser/resources/chromeos/edu_login/app.html
@@ -13,4 +13,5 @@ login-params="[[loginParams_]]"> </edu-login-signin> </cr-view-manager> -<edu-login-error hidden$="[[!isErrorShown_]]"></edu-login-error> +<edu-login-error hidden$="[[!isErrorShown_]]" error-type="[[errorType_]]"> +</edu-login-error>
diff --git a/chrome/browser/resources/chromeos/edu_login/app.js b/chrome/browser/resources/chromeos/edu_login/app.js index a29baf1..ef6ac67eb 100644 --- a/chrome/browser/resources/chromeos/edu_login/app.js +++ b/chrome/browser/resources/chromeos/edu_login/app.js
@@ -14,7 +14,7 @@ import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {EduAccountLoginBrowserProxyImpl} from './browser_proxy.js'; -import {EduCoexistenceFlowResult, EduLoginParams, ParentAccount} from './edu_login_util.js'; +import {EduCoexistenceFlowResult, EduLoginErrorType, EduLoginParams, ParentAccount} from './edu_login_util.js'; /** @enum {string} */ const Steps = { @@ -78,12 +78,19 @@ isErrorShown_: { type: Boolean, value: false, - } + }, + + /** @private {EduLoginErrorType} */ + errorType_: { + type: String, + value: '', + }, }, listeners: { 'go-next': 'onGoNext_', 'go-back': 'onGoBack_', + 'edu-login-error': 'onError_', }, /** @override */ @@ -136,4 +143,13 @@ EduAccountLoginBrowserProxyImpl.getInstance() .updateEduCoexistenceFlowResult(result); }, + + /** + * @param {!Event} e + * @private + */ + onError_(e) { + this.errorType_ = e.detail.errorType; + this.isErrorShown_ = true; + }, });
diff --git a/chrome/browser/resources/chromeos/edu_login/edu_login_parent_signin.js b/chrome/browser/resources/chromeos/edu_login/edu_login_parent_signin.js index 19cc45b..36d9936 100644 --- a/chrome/browser/resources/chromeos/edu_login/edu_login_parent_signin.js +++ b/chrome/browser/resources/chromeos/edu_login/edu_login_parent_signin.js
@@ -13,7 +13,7 @@ import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {EduAccountLoginBrowserProxyImpl} from './browser_proxy.js'; -import {EduLoginParams, ParentAccount, ParentSigninFailureResult} from './edu_login_util.js'; +import {EduLoginErrorType, EduLoginParams, ParentAccount, ParentSigninFailureResult} from './edu_login_util.js'; Polymer({ is: 'edu-login-parent-signin', @@ -174,11 +174,13 @@ * password. */ parentSigninFailure_(result) { - if (result.isWrongPassword) { + if (result && result.isWrongPassword) { this.isWrongPassword_ = true; this.$.passwordField.focus(); + } else { + this.fire( + 'edu-login-error', {errorType: EduLoginErrorType.CANNOT_ADD_ACCOUNT}); } - // TODO(anastasiian): handle other error cases }, /** @private */
diff --git a/chrome/browser/resources/chromeos/edu_login/edu_login_parents.js b/chrome/browser/resources/chromeos/edu_login/edu_login_parents.js index 2d07e85..63c0d90 100644 --- a/chrome/browser/resources/chromeos/edu_login/edu_login_parents.js +++ b/chrome/browser/resources/chromeos/edu_login/edu_login_parents.js
@@ -11,7 +11,7 @@ import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {EduAccountLoginBrowserProxyImpl} from './browser_proxy.js'; -import {ParentAccount} from './edu_login_util.js'; +import {EduLoginErrorType, ParentAccount} from './edu_login_util.js'; Polymer({ is: 'edu-login-parents', @@ -66,10 +66,15 @@ /** @override */ ready() { - // TODO(anastasiian): handle fetching error. - EduAccountLoginBrowserProxyImpl.getInstance().getParents().then(result => { - this.parents_ = result; - }); + EduAccountLoginBrowserProxyImpl.getInstance().getParents().then( + result => { + this.parents_ = result; + }, + error => { + this.fire( + 'edu-login-error', + {errorType: EduLoginErrorType.CANNOT_ADD_ACCOUNT}); + }); }, /**
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn index 9a49bb22..e837a455 100644 --- a/chrome/browser/resources/settings/chromeos/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -69,6 +69,10 @@ "../../../../../ui/webui/resources:modulize", ] excludes = [ + "chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom-lite.js", + "chrome://resources/mojo/chromeos/services/network_config/public/mojom/network_types.mojom-lite.js", + "chrome://resources/mojo/services/network/public/mojom/ip_address.mojom-lite.js", + "chrome://resources/cr_components/chromeos/network/mojo_interface_provider.m.js", "chrome://resources/js/cr.m.js", "chrome://resources/css/cros_colors.generated.css", "chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js", @@ -234,15 +238,13 @@ #":closure_compile_local_module", #"ambient_mode_page:closure_compile_module", "bluetooth_page:closure_compile_module", - #"crostini_page:closure_compile_module", #"date_time_page:closure_compile_module", #"device_page:closure_compile_module", #"google_assistant_page:closure_compile_module", #"internet_page:closure_compile_module", "localized_link:closure_compile_module", - - #"multidevice_page:closure_compile_module", + "multidevice_page:closure_compile_module", #"os_a11y_page:closure_compile_module", #"os_about_page:closure_compile_module", #"os_apps_page:closure_compile_module", @@ -253,7 +255,6 @@ #"os_printing_page:closure_compile_module", #"os_privacy_page:closure_compile_module", "os_reset_page:closure_compile_module", - #"os_search_page:closure_compile_module", #"os_settings_main:closure_compile_module", #"os_settings_menu:closure_compile_module", @@ -278,9 +279,8 @@ # ":os_settings.m", # ":os_settings_icons_css.m", ":os_settings_routes.m", - - # ":route_origin_behavior.m", - # ":search_handler.m", + ":route_origin_behavior.m", + #":search_handler.m", ] } @@ -339,7 +339,8 @@ js_library("route_origin_behavior.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/route_origin_behavior.m.js" ] deps = [ - # TODO: Fill those in. + ":os_route.m", + "//ui/webui/resources/js:cr.m", ] extra_deps = [ ":modulize" ] }
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/multidevice_page/BUILD.gn index fb41281..0453afe 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/BUILD.gn
@@ -3,6 +3,9 @@ # found in the LICENSE file. import("//third_party/closure_compiler/compile_js.gni") +import("//tools/polymer/polymer.gni") +import("//ui/webui/resources/tools/js_modulizer.gni") +import("../os_settings.gni") js_type_check("closure_compile") { deps = [ @@ -88,13 +91,16 @@ "..:os_settings_routes", "../../prefs:prefs_behavior", "//ui/webui/resources/cr_elements/cr_radio_button:cr_radio_button", + "//ui/webui/resources/js:web_ui_listener_behavior", "//ui/webui/resources/js:cr", ] } js_library("multidevice_subpage") { deps = [ + ":multidevice_browser_proxy", ":multidevice_constants", + ":multidevice_feature_behavior", "..:os_route", "..:os_settings_routes", "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior", @@ -108,6 +114,7 @@ ":multidevice_feature_behavior", "..:os_route", "..:os_settings_routes", + "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider", "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior", "//ui/webui/resources/cr_components/chromeos/network:onc_mojo", ] @@ -115,43 +122,43 @@ extra_sources = [ "$interfaces_path/networking_private_interface.js" ] } -# TODO: Uncomment as the Polymer3 migration makes progress. -#js_type_check("closure_compile_module") { -# is_polymer3 = true -# deps = [ -# ":multidevice_browser_proxy.m", -# ":multidevice_constants.m", -# ":multidevice_feature_behavior.m", -# ":multidevice_feature_item.m", -# ":multidevice_feature_toggle.m", -# ":multidevice_page.m", -# ":multidevice_radio_button.m", -# ":multidevice_smartlock_subpage.m", -# ":multidevice_subpage.m", -# ":multidevice_tether_item.m" -# ] -#} +js_type_check("closure_compile_module") { + is_polymer3 = true + deps = [ + ":multidevice_browser_proxy.m", + ":multidevice_constants.m", + ":multidevice_feature_behavior.m", + ":multidevice_feature_item.m", + ":multidevice_feature_toggle.m", + ":multidevice_page.m", + ":multidevice_radio_button.m", + ":multidevice_smartlock_subpage.m", + ":multidevice_subpage.m", + ":multidevice_tether_item.m", + ] +} js_library("multidevice_browser_proxy.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.m.js" ] - deps = [ - # TODO: Fill those in. + deps = [ + ":multidevice_constants.m", + "//ui/webui/resources/js:cr.m", ] extra_deps = [ ":modulize" ] } js_library("multidevice_constants.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.m.js" ] - deps = [ - # TODO: Fill those in. - ] - extra_deps = [ ":multidevice_constants_module" ] + deps = [] + extra_deps = [ ":modulize" ] } js_library("multidevice_feature_behavior.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_constants.m", + "//ui/webui/resources/js:i18n_behavior.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] extra_deps = [ ":modulize" ] } @@ -159,7 +166,13 @@ js_library("multidevice_feature_item.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_item.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_constants.m", + ":multidevice_feature_behavior.m", + "..:os_route.m", + "..:route_origin_behavior.m", + "../..:router.m", + "../localized_link:localized_link.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] extra_deps = [ ":multidevice_feature_item_module" ] } @@ -167,7 +180,9 @@ js_library("multidevice_feature_toggle.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_toggle.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_constants.m", + ":multidevice_feature_behavior.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] extra_deps = [ ":multidevice_feature_toggle_module" ] } @@ -175,7 +190,18 @@ js_library("multidevice_page.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_browser_proxy.m", + ":multidevice_constants.m", + ":multidevice_feature_behavior.m", + "..:metrics_recorder.m", + "..:os_route.m", + "../..:router.m", + "../../controls:password_prompt_dialog.m", + "../../prefs:prefs_behavior.m", + "../localized_link:localized_link.m", + "//ui/webui/resources/js:web_ui_listener_behavior.m", + "//ui/webui/resources/js:assert.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] extra_deps = [ ":multidevice_page_module" ] } @@ -183,7 +209,9 @@ js_library("multidevice_radio_button.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_radio_button.m.js" ] deps = [ - # TODO: Fill those in. + "//third_party/polymer/v1_0/components-chromium/iron-a11y-keys-behavior:iron-a11y-keys-behavior-extracted", + "//ui/webui/resources/cr_elements/cr_radio_button:cr_radio_button_behavior.m", + "//ui/webui/resources/cr_elements/policy:cr_policy_indicator.m", ] extra_deps = [ ":multidevice_radio_button_module" ] } @@ -191,33 +219,52 @@ js_library("multidevice_smartlock_subpage.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_constants.m", + ":multidevice_feature_behavior.m", + "..:metrics_recorder.m", + "..:os_route.m", + "..:os_settings_routes.m", + "../../prefs:prefs_behavior.m", + "//ui/webui/resources/cr_elements/cr_radio_button:cr_radio_button.m", + "//ui/webui/resources/js:web_ui_listener_behavior.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] extra_deps = [ ":multidevice_smartlock_subpage_module" ] + externs_list = [ "$externs_path/quick_unlock_private.js" ] } js_library("multidevice_subpage.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_browser_proxy.m", + ":multidevice_constants.m", + "..:os_route.m", + "..:os_settings_routes.m", + "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] - extra_deps = [ ":multidevice_subpage_module" ] + extra_deps = [ + ":multidevice_subpage_module" + ] } js_library("multidevice_tether_item.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.m.js" ] deps = [ - # TODO: Fill those in. + ":multidevice_feature_behavior.m", + "..:os_route.m", + "..:os_settings_routes.m", + "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider.m", + "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior.m", + "//ui/webui/resources/cr_components/chromeos/network:onc_mojo.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] extra_deps = [ ":multidevice_tether_item_module" ] } -import("//tools/polymer/polymer.gni") - group("polymer3_elements") { public_deps = [ ":modulize", - ":multidevice_constants_module", ":multidevice_feature_item_module", ":multidevice_feature_toggle_module", ":multidevice_page_module", @@ -228,59 +275,77 @@ ] } -polymer_modulizer("multidevice_constants") { - js_file = "multidevice_constants.js" - html_file = "multidevice_constants.html" - html_type = "dom-module" -} - polymer_modulizer("multidevice_feature_item") { js_file = "multidevice_feature_item.js" html_file = "multidevice_feature_item.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports } polymer_modulizer("multidevice_feature_toggle") { js_file = "multidevice_feature_toggle.js" html_file = "multidevice_feature_toggle.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports } polymer_modulizer("multidevice_page") { js_file = "multidevice_page.js" html_file = "multidevice_page.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports + [ + "ui/webui/resources/html/polymer.html|Polymer,html,beforeNextRender", + "ui/webui/resources/html/assert.html|assert", + ] } polymer_modulizer("multidevice_radio_button") { js_file = "multidevice_radio_button.js" html_file = "multidevice_radio_button.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports } polymer_modulizer("multidevice_smartlock_subpage") { js_file = "multidevice_smartlock_subpage.js" html_file = "multidevice_smartlock_subpage.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports } polymer_modulizer("multidevice_subpage") { js_file = "multidevice_subpage.js" html_file = "multidevice_subpage.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports } polymer_modulizer("multidevice_tether_item") { js_file = "multidevice_tether_item.js" html_file = "multidevice_tether_item.html" html_type = "dom-module" + migrated_imports = os_settings_migrated_imports + namespace_rewrites = os_settings_namespace_rewrites + auto_imports = os_settings_auto_imports } -import("//ui/webui/resources/tools/js_modulizer.gni") - js_modulizer("modulize") { input_files = [ "multidevice_browser_proxy.js", "multidevice_feature_behavior.js", + "multidevice_constants.js", ] + namespace_rewrites = os_settings_namespace_rewrites }
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js index 9fcd416..8fdf6c39 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js
@@ -2,6 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import {addSingletonGetter, sendWithPromise} from 'chrome://resources/js/cr.m.js'; +// #import {MultiDevicePageContentData, MultiDeviceFeature} from './multidevice_constants.m.js'; +// clang-format on + cr.define('settings', function() { /** * An object containing messages for web permissisions origin @@ -10,10 +15,10 @@ * @typedef {{origin: string, * enabled: boolean}} */ - let AndroidSmsInfo; + /* #export */ let AndroidSmsInfo; /** @interface */ - class MultiDeviceBrowserProxy { + /* #export */ class MultiDeviceBrowserProxy { showMultiDeviceSetupDialog() {} /** @return {!Promise<!settings.MultiDevicePageContentData>} */ @@ -74,7 +79,7 @@ /** * @implements {settings.MultiDeviceBrowserProxy} */ - class MultiDeviceBrowserProxyImpl { + /* #export */ class MultiDeviceBrowserProxyImpl { /** @override */ showMultiDeviceSetupDialog() { chrome.send('showMultiDeviceSetupDialog');
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js index b404986..247185c2 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js
@@ -3,6 +3,17 @@ // found in the LICENSE file. cr.define('settings', function() { + + /** + * The state of the preference controlling Smart Lock's ability to sign-in the + * user. + * @enum {string} + */ + /* #export */ const SmartLockSignInEnabledState = { + ENABLED: 'enabled', + DISABLED: 'disabled', + }; + /** * The possible statuses of hosts on the logged in account that determine the * page content. Note that this is based on (and must include an analog of @@ -10,7 +21,7 @@ * services/multidevice_setup/public/mojom/multidevice_setup.mojom. * @enum {number} */ - MultiDeviceSettingsMode = { + /* #export */ const MultiDeviceSettingsMode = { NO_ELIGIBLE_HOSTS: 0, NO_HOST_SET: 1, HOST_SET_WAITING_FOR_SERVER: 2, @@ -24,7 +35,7 @@ * //chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom. * @enum {number} */ - MultiDeviceFeature = { + /* #export */ const MultiDeviceFeature = { BETTER_TOGETHER_SUITE: 0, INSTANT_TETHERING: 1, MESSAGES: 2, @@ -37,7 +48,7 @@ * //chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom. * @enum {number} */ - MultiDeviceFeatureState = { + /* #export */ const MultiDeviceFeatureState = { PROHIBITED_BY_POLICY: 0, DISABLED_BY_USER: 1, ENABLED_BY_USER: 2, @@ -72,7 +83,7 @@ * isAndroidSmsPairingComplete: boolean * }} */ - let MultiDevicePageContentData; + /* #export */ let MultiDevicePageContentData; // #cr_define_end return { @@ -80,5 +91,6 @@ MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData, + SmartLockSignInEnabledState }; });
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.html b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.html index e1dc076..f2c7847a 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.html +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.html
@@ -3,5 +3,4 @@ <link rel="import" href="multidevice_constants.html"> <!-- Anyone using this behavior might be using the referenced icons. --> <link rel="import" href="../os_icons.html"> -<link rel="import" href="../../i18n_setup.html"> <script src="multidevice_feature_behavior.js"></script>
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.js index 1cac4cee..c09a675 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.js
@@ -2,6 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import {MultiDeviceSettingsMode, MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData } from './multidevice_constants.m.js'; +// #import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js'; +// clang-format on + /** * @fileoverview Polymer behavior for dealing with MultiDevice features. It is * intended to facilitate passing data between elements in the MultiDevice page @@ -184,7 +189,7 @@ }; /** @polymerBehavior */ -const MultiDeviceFeatureBehavior = [ +/* #export */ const MultiDeviceFeatureBehavior = [ I18nBehavior, MultiDeviceFeatureBehaviorImpl, ];
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.html b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.html index 0daf9c5..a3c918c 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.html +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.html
@@ -6,6 +6,7 @@ <link rel="import" href="chrome://resources/html/cr.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> +<link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="../../i18n_setup.html"> <link rel="import" href="../os_route.html">
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.html b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.html index 7701042..c85293d9 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.html +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.html
@@ -8,6 +8,8 @@ <link rel="import" href="multidevice_feature_behavior.html"> <link rel="import" href="multidevice_feature_toggle.html"> <link rel="import" href="multidevice_radio_button.html"> +<link rel="import" href="../os_route.html"> +<link rel="import" href="../os_settings_routes.html"> <link rel="import" href="../../i18n_setup.html"> <link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../metrics_recorder.html">
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.js index f82fbde..fda7fdc 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.js
@@ -2,188 +2,174 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.define('settings', function() { - /** - * The state of the preference controlling Smart Lock's ability to sign-in the - * user. - * @enum {string} - */ - const SignInEnabledState = { - ENABLED: 'enabled', - DISABLED: 'disabled', - }; +// #import {OsSettingsRoutes} from './os_settings_routes.m.js' - Polymer({ - is: 'settings-multidevice-smartlock-subpage', +Polymer({ + is: 'settings-multidevice-smartlock-subpage', - behaviors: [ - MultiDeviceFeatureBehavior, - WebUIListenerBehavior, - ], + behaviors: [ + MultiDeviceFeatureBehavior, + WebUIListenerBehavior, + ], - properties: { - /** @type {?OsSettingsRoutes} */ - routes: { - type: Object, - value: settings.routes, - }, - - /** - * True if Smart Lock is enabled. - * @private - */ - smartLockEnabled_: { - type: Boolean, - computed: 'computeIsSmartLockEnabled_(pageContentData)', - }, - - /** - * Whether Smart Lock may be used to sign-in the user (as opposed to only - * being able to unlock the user's screen). - * @private {!settings.SignInEnabledState} - */ - smartLockSignInEnabled_: { - type: Object, - value: SignInEnabledState.DISABLED, - }, - - /** - * True if the user is allowed to enable Smart Lock sign-in. - * @private - */ - smartLockSignInAllowed_: { - type: Boolean, - value: true, - }, - - /** @private */ - showPasswordPromptDialog_: { - type: Boolean, - value: false, - }, - - /** - * Authentication token provided by password-prompt-dialog. - * @private {!chrome.quickUnlockPrivate.TokenInfo|undefined} - */ - authToken_: { - type: Object, - }, - }, - - /** @private {?settings.MultiDeviceBrowserProxy} */ - browserProxy_: null, - - /** @override */ - ready() { - this.browserProxy_ = settings.MultiDeviceBrowserProxyImpl.getInstance(); - - this.addWebUIListener( - 'smart-lock-signin-enabled-changed', - this.updateSmartLockSignInEnabled_.bind(this)); - - this.addWebUIListener( - 'smart-lock-signin-allowed-changed', - this.updateSmartLockSignInAllowed_.bind(this)); - - this.browserProxy_.getSmartLockSignInEnabled().then(enabled => { - this.updateSmartLockSignInEnabled_(enabled); - }); - - this.browserProxy_.getSmartLockSignInAllowed().then(allowed => { - this.updateSmartLockSignInAllowed_(allowed); - }); + properties: { + /** @type {?OsSettingsRoutes} */ + routes: { + type: Object, + value: settings.routes, }, /** - * Returns true if Smart Lock is an enabled feature. - * @return {boolean} + * True if Smart Lock is enabled. * @private */ - computeIsSmartLockEnabled_() { - return !!this.pageContentData && - this.getFeatureState(settings.MultiDeviceFeature.SMART_LOCK) == - settings.MultiDeviceFeatureState.ENABLED_BY_USER; + smartLockEnabled_: { + type: Boolean, + computed: 'computeIsSmartLockEnabled_(pageContentData)', }, /** - * Updates the state of the Smart Lock 'sign-in enabled' toggle. - * @private + * Whether Smart Lock may be used to sign-in the user (as opposed to only + * being able to unlock the user's screen). + * @private {!settings.SmartLockSignInEnabledState} */ - updateSmartLockSignInEnabled_(enabled) { - this.smartLockSignInEnabled_ = - enabled ? SignInEnabledState.ENABLED : SignInEnabledState.DISABLED; + smartLockSignInEnabled_: { + type: Object, + value: settings.SmartLockSignInEnabledState.DISABLED, }, /** - * Updates the Smart Lock 'sign-in enabled' toggle such that disallowing - * sign-in disables the toggle. + * True if the user is allowed to enable Smart Lock sign-in. * @private */ - updateSmartLockSignInAllowed_(allowed) { - this.smartLockSignInAllowed_ = allowed; + smartLockSignInAllowed_: { + type: Boolean, + value: true, }, /** @private */ - openPasswordPromptDialog_() { - this.showPasswordPromptDialog_ = true; + showPasswordPromptDialog_: { + type: Boolean, + value: false, }, /** - * Sets the Smart Lock 'sign-in enabled' pref based on the value of the - * radio group representing the pref. - * @private + * Authentication token provided by password-prompt-dialog. + * @private {!chrome.quickUnlockPrivate.TokenInfo|undefined} */ - onSmartLockSignInEnabledChanged_() { - const radioGroup = this.$$('cr-radio-group'); - const enabled = radioGroup.selected == SignInEnabledState.ENABLED; - - if (!enabled) { - // No authentication check is required to disable. - this.browserProxy_.setSmartLockSignInEnabled(false /* enabled */); - settings.recordSettingChange(); - return; - } - - // Toggle the enabled state back to disabled, as authentication may not - // succeed. The toggle state updates automatically by the pref listener. - radioGroup.selected = SignInEnabledState.DISABLED; - this.openPasswordPromptDialog_(); + authToken_: { + type: Object, }, + }, - /** - * Updates the state of the password dialog controller flag when the UI - * element closes. - * @private - */ - onEnableSignInDialogClose_() { - this.showPasswordPromptDialog_ = false; + /** @private {?settings.MultiDeviceBrowserProxy} */ + browserProxy_: null, - // If |this.authToken_| is set when the dialog has been closed, this means - // that the user entered the correct password into the dialog when - // attempting to enable SignIn with Smart Lock. - if (this.authToken_) { - this.browserProxy_.setSmartLockSignInEnabled( - true /* enabled */, this.authToken_.token); - settings.recordSettingChange(); - } + /** @override */ + ready() { + this.browserProxy_ = settings.MultiDeviceBrowserProxyImpl.getInstance(); - // Always require password entry if re-enabling SignIn with Smart Lock. - this.authToken_ = undefined; - }, + this.addWebUIListener( + 'smart-lock-signin-enabled-changed', + this.updateSmartLockSignInEnabled_.bind(this)); - /** - * @param {!CustomEvent<!chrome.quickUnlockPrivate.TokenInfo>} e - * @private - */ - onTokenObtained_(e) { - this.authToken_ = e.detail; - }, + this.addWebUIListener( + 'smart-lock-signin-allowed-changed', + this.updateSmartLockSignInAllowed_.bind(this)); - }); + this.browserProxy_.getSmartLockSignInEnabled().then(enabled => { + this.updateSmartLockSignInEnabled_(enabled); + }); - // #cr_define_end - return { - SignInEnabledState: SignInEnabledState, - }; + this.browserProxy_.getSmartLockSignInAllowed().then(allowed => { + this.updateSmartLockSignInAllowed_(allowed); + }); + }, + + /** + * Returns true if Smart Lock is an enabled feature. + * @return {boolean} + * @private + */ + computeIsSmartLockEnabled_() { + return !!this.pageContentData && + this.getFeatureState(settings.MultiDeviceFeature.SMART_LOCK) == + settings.MultiDeviceFeatureState.ENABLED_BY_USER; + }, + + /** + * Updates the state of the Smart Lock 'sign-in enabled' toggle. + * @private + */ + updateSmartLockSignInEnabled_(enabled) { + this.smartLockSignInEnabled_ = + enabled ? settings.SmartLockSignInEnabledState.ENABLED : + settings.SmartLockSignInEnabledState.DISABLED; + }, + + /** + * Updates the Smart Lock 'sign-in enabled' toggle such that disallowing + * sign-in disables the toggle. + * @private + */ + updateSmartLockSignInAllowed_(allowed) { + this.smartLockSignInAllowed_ = allowed; + }, + + /** @private */ + openPasswordPromptDialog_() { + this.showPasswordPromptDialog_ = true; + }, + + /** + * Sets the Smart Lock 'sign-in enabled' pref based on the value of the + * radio group representing the pref. + * @private + */ + onSmartLockSignInEnabledChanged_() { + const radioGroup = this.$$('cr-radio-group'); + const enabled = radioGroup.selected == settings.SmartLockSignInEnabledState.ENABLED; + + if (!enabled) { + // No authentication check is required to disable. + this.browserProxy_.setSmartLockSignInEnabled(false /* enabled */); + settings.recordSettingChange(); + return; + } + + // Toggle the enabled state back to disabled, as authentication may not + // succeed. The toggle state updates automatically by the pref listener. + radioGroup.selected = settings.SmartLockSignInEnabledState.DISABLED; + this.openPasswordPromptDialog_(); + }, + + /** + * Updates the state of the password dialog controller flag when the UI + * element closes. + * @private + */ + onEnableSignInDialogClose_() { + this.showPasswordPromptDialog_ = false; + + // If |this.authToken_| is set when the dialog has been closed, this means + // that the user entered the correct password into the dialog when + // attempting to enable SignIn with Smart Lock. + if (this.authToken_) { + this.browserProxy_.setSmartLockSignInEnabled( + true /* enabled */, this.authToken_.token); + settings.recordSettingChange(); + } + + // Always require password entry if re-enabling SignIn with Smart Lock. + this.authToken_ = undefined; + }, + + /** + * @param {!CustomEvent<!chrome.quickUnlockPrivate.TokenInfo>} e + * @private + */ + onTokenObtained_(e) { + this.authToken_ = e.detail; + }, + });
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.html b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.html index 6034229..8e00bf7 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.html +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.html
@@ -8,9 +8,11 @@ <link rel="import" href="chrome://resources/html/i18n_behavior.html"> <link rel="import" href="../../i18n_setup.html"> <link rel="import" href="../os_route.html"> +<link rel="import" href="../os_settings_routes.html"> <link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../settings_vars_css.html"> <link rel="import" href="multidevice_constants.html"> +<link rel="import" href="multidevice_browser_proxy.html"> <link rel="import" href="multidevice_feature_behavior.html"> <link rel="import" href="multidevice_feature_item.html"> <link rel="import" href="multidevice_feature_toggle.html">
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.html b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.html index e1c7b83..9727517 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.html +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.html
@@ -1,10 +1,12 @@ <link rel="import" href="chrome://resources/html/polymer.html"> -<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_icon.html"> <link rel="import" href="chrome://resources/cr_components/chromeos/network/network_listener_behavior.html"> +<link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html"> +<link rel="import" href="chrome://resources/cr_components/chromeos/network/network_icon.html"> <link rel="import" href="chrome://resources/cr_components/chromeos/network/onc_mojo.html"> <link rel="import" href="../../i18n_setup.html"> <link rel="import" href="../os_route.html"> +<link rel="import" href="../os_settings_routes.html"> <link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../settings_vars_css.html"> <link rel="import" href="multidevice_feature_behavior.html">
diff --git a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_browser_proxy.js b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_browser_proxy.js index 9bb110250..afba731 100644 --- a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_browser_proxy.js
@@ -50,6 +50,11 @@ * permissions */ setPluginVmPermission(permissionSetting) {} + + /** + * Relaunches Plugin VM. + */ + relaunchPluginVm() {} } /** @implements {settings.PluginVmBrowserProxy} */ @@ -77,6 +82,11 @@ 'setPluginVmPermission', [permissionSetting.permissionType, permissionSetting.proposedValue]); } + + /** @override */ + relaunchPluginVm() { + chrome.send('relaunchPluginVm'); + } } // The singleton instance_ can be replaced with a test version of this wrapper
diff --git a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.html b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.html index 6cd595b8..7b16df6 100644 --- a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.html +++ b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.html
@@ -16,9 +16,9 @@ on-click="onCancelTap_"> $i18n{cancel} </cr-button> - <cr-button id="dialogOkButton" class="action-button" - on-click="onOkTap_"> - $i18n{ok} + <cr-button id="dialogRelaunchButton" class="action-button" + on-click="onRelaunchTap_"> + $i18n{pluginVmPermissionDialogRelaunchButton} </cr-button> </div> </cr-dialog>
diff --git a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.js b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.js index 3e2f96e2..f73e19ac6 100644 --- a/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.js +++ b/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_permission_dialog.js
@@ -46,14 +46,15 @@ }, /** @private */ - onOkTap_() { + onRelaunchTap_() { + const proxy = settings.PluginVmBrowserProxyImpl.getInstance(); // Reinitializing PermissionSetting Object to keep the closure compiler // happy. - settings.PluginVmBrowserProxyImpl.getInstance().setPluginVmPermission({ + proxy.setPluginVmPermission({ permissionType: this.pendingPermissionChange.permissionType, proposedValue: this.pendingPermissionChange.proposedValue }); - // TODO(1071872): Restart Plugin Vm. + proxy.relaunchPluginVm(); this.$.dialog.close(); },
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.gni b/chrome/browser/resources/settings/chromeos/os_settings.gni index 400b8e00..9380471 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings.gni +++ b/chrome/browser/resources/settings/chromeos/os_settings.gni
@@ -3,22 +3,38 @@ # found in the LICENSE file. import("//third_party/closure_compiler/compile_js.gni") +import("//ui/webui/resources/cr_components/chromeos/os_cr_components.gni") import("../settings.gni") os_settings_namespace_rewrites = - settings_namespace_rewrites + [ + settings_namespace_rewrites + cr_components_chromeos_namespace_rewrites + [ "settings.OsResetBrowserProxy|OsResetBrowserProxy", + "settings.MultiDeviceBrowserProxy|MultiDeviceBrowserProxy", + "settings.MultiDeviceBrowserProxyImpl|MultiDeviceBrowserProxyImpl", + "settings.MultiDeviceSettingsMode|MultiDeviceSettingsMode", + "settings.MultiDeviceFeature|MultiDeviceFeature", + "settings.MultiDeviceFeatureState|MultiDeviceFeatureState", + "settings.MultiDevicePageContentData|MultiDevicePageContentData", + "settings.RouteObserverBehavior|RouteObserverBehavior", + "settings.Route|Route", "settings.recordSettingChange|recordSettingChange", + "settings.SmartLockSignInEnabledState|SmartLockSignInEnabledState", ] -os_settings_auto_imports = settings_auto_imports + [ - "chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.html|OsResetBrowserProxy,OsResetBrowserProxyImpl", - "chrome/browser/resources/settings/chromeos/metrics_recorder.html|recordSettingChange", - "chrome/browser/resources/settings/lifetime_browser_proxy.html|LifetimeBrowserProxy,LifetimeBrowserProxyImpl", - "chrome/browser/resources/settings/chromeos/os_route.html|routes", - "chrome/browser/resources/settings/route.html|routes", - "chrome/browser/resources/settings/router.html|Router,Route,RouteObserverBehavior", - "ui/webui/resources/html/polymer.html|Polymer,html,flush", - ] +os_settings_auto_imports = + settings_auto_imports + cr_components_chromeos_auto_imports + [ + "chrome/browser/resources/settings/chromeos/metrics_recorder.html|recordSettingChange", + "chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.html|MultiDeviceSettingsMode,MultiDeviceFeature,MultiDeviceFeatureState,MultiDevicePageContentData,SmartLockSignInEnabledState", + "chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.html|MultiDeviceFeatureBehavior", + "chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.html|MultiDeviceBrowserProxy,MultiDeviceBrowserProxyImpl", + "chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_browser_proxy.html|OsResetBrowserProxy,OsResetBrowserProxyImpl", + "chrome/browser/resources/settings/chromeos/os_settings_routes.html|OsSettingsRoutes", + "chrome/browser/resources/settings/chromeos/route_origin_behavior.html|RouteOriginBehaviorImpl,RouteOriginBehavior", + "chrome/browser/resources/settings/lifetime_browser_proxy.html|LifetimeBrowserProxy,LifetimeBrowserProxyImpl", + "chrome/browser/resources/settings/chromeos/os_route.html|routes", + "chrome/browser/resources/settings/route.html|routes", + "chrome/browser/resources/settings/router.html|Router,Route,RouteObserverBehavior", + "ui/webui/resources/html/polymer.html|Polymer,html,flush", + ] os_settings_migrated_imports = settings_migrated_imports
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.js b/chrome/browser/resources/settings/chromeos/os_settings.js index 54d2fd69..0d2e48e 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings.js +++ b/chrome/browser/resources/settings/chromeos/os_settings.js
@@ -9,7 +9,14 @@ import './bluetooth_page/bluetooth_subpage.m.js'; import './bluetooth_page/bluetooth_device_list_item.m.js'; import '../nearby_share_page/nearby_share_subpage.m.js'; +import './multidevice_page/multidevice_page.m.js'; +// clang-format off export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.m.js'; export {bluetoothApis} from './bluetooth_page/bluetooth_page.m.js'; export {OsResetBrowserProxyImpl} from './os_reset_page/os_reset_browser_proxy.m.js'; +export {MultiDeviceSettingsMode, MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData, SmartLockSignInEnabledState} from './multidevice_page/multidevice_constants.m.js'; +export {MultiDeviceBrowserProxy, MultiDeviceBrowserProxyImpl} from './multidevice_page/multidevice_browser_proxy.m.js'; +export {Route, Router} from '../router.m.js'; +export {routes} from './os_route.m.js'; +// clang-format off
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp b/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp index c764effb..cb6ad09 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp +++ b/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp
@@ -40,6 +40,66 @@ use_base_dir="false" compress="false" type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_PAGE_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_page.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_SUBPAGE_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_subpage.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_CONSTANTS_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_BROWSER_PROXY_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_FEATURE_BEHAVIOR_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_behavior.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_FEATURE_ITEM_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_item.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_TETHER_ITEM_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_tether_item.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_FEATURE_TOGGLE_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_feature_toggle.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_SMARTLOCK_SUBPAGE_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_smartlock_subpage.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_MULTIDEVICE_RADIO_BUTTON_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_radio_button.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_OS_SETTINGS_ROUTE_ORIGIN_BEHAVIOR_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/route_origin_behavior.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> + <include name="IDR_SETTINGS_CONTROLS_PASSWORD_PROMPT_DIALOG_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/controls/password_prompt_dialog.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> <include name="IDR_OS_SETTINGS_OS_ICONS_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_icons.m.js" use_base_dir="false"
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_routes.html b/chrome/browser/resources/settings/chromeos/os_settings_routes.html new file mode 100644 index 0000000..e4bab58 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_settings_routes.html
@@ -0,0 +1 @@ +<script src="./os_settings_routes.js"></script> \ No newline at end of file
diff --git a/chrome/browser/resources/settings/chromeos/route_origin_behavior.js b/chrome/browser/resources/settings/chromeos/route_origin_behavior.js index ea0e47e2..d536f56 100644 --- a/chrome/browser/resources/settings/chromeos/route_origin_behavior.js +++ b/chrome/browser/resources/settings/chromeos/route_origin_behavior.js
@@ -2,9 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// #import {RouteObserverBehavior, Route, Router} from '../router.m.js'; +// #import {assert} from 'chrome://resources/js/assert.m.js'; + cr.define('settings', function() { /** @polymerBehavior */ - const RouteOriginBehaviorImpl = { + /* #export */ const RouteOriginBehaviorImpl = { properties: { /** * A map whose values are query selectors of subpage buttons on the page @@ -65,7 +68,7 @@ }; /** @polymerBehavior */ - const RouteOriginBehavior = + /* #export */ const RouteOriginBehavior = [settings.RouteObserverBehavior, RouteOriginBehaviorImpl]; // #cr_define_end
diff --git a/chrome/browser/resources/settings/os_settings_resources.grd b/chrome/browser/resources/settings/os_settings_resources.grd index 3eea67fd..91f752d 100644 --- a/chrome/browser/resources/settings/os_settings_resources.grd +++ b/chrome/browser/resources/settings/os_settings_resources.grd
@@ -917,6 +917,12 @@ <structure name="IDR_OS_SETTINGS_OS_ROUTE_HTML" file="chromeos/os_route.html" compress="false" type="chrome_html" /> + <structure name="IDR_OS_SETTINGS_OS__SETTINGS_ROUTES_HTML" + file="chromeos/os_settings_routes.html" + compress="false" type="chrome_html" /> + <structure name="IDR_OS_SETTINGS_OS__SETTINGS_ROUTES_JS" + file="chromeos/os_settings_routes.js" + compress="false" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_OS_ROUTE_JS" file="chromeos/os_route.js" compress="false" type="chrome_html" />
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index 71079a25..0414121 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1139,7 +1139,7 @@ Ask where to save files </message> <message name="IDS_DOWNLOAD_LOCATION_DIALOG_TITLE" desc="Title for the dialog that asks where the user wants to save the download file before the download begins."> - Download file + Choose where to download </message> <message name="IDS_DOWNLOAD_LOCATION_DIALOG_CHECKBOX" desc="Label for the checkbox that allows the user to indicate if they do not want the download location selection dialog to appear every time they initiate a download."> Don‘t show again
diff --git a/chrome/browser/ui/native_file_system_dialogs.cc b/chrome/browser/ui/native_file_system_dialogs.cc index 8b609f4d1..01a5ce3 100644 --- a/chrome/browser/ui/native_file_system_dialogs.cc +++ b/chrome/browser/ui/native_file_system_dialogs.cc
@@ -19,7 +19,7 @@ void ShowNativeFileSystemRestrictedDirectoryDialog( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void( content::NativeFileSystemPermissionContext::SensitiveDirectoryResult)> callback,
diff --git a/chrome/browser/ui/native_file_system_dialogs.h b/chrome/browser/ui/native_file_system_dialogs.h index 0260c45..3291f45 100644 --- a/chrome/browser/ui/native_file_system_dialogs.h +++ b/chrome/browser/ui/native_file_system_dialogs.h
@@ -44,7 +44,7 @@ void ShowNativeFileSystemRestrictedDirectoryDialog( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void( content::NativeFileSystemPermissionContext::SensitiveDirectoryResult)> callback,
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_permission_view.cc b/chrome/browser/ui/views/native_file_system/native_file_system_permission_view.cc index 056fe559..53b94b0 100644 --- a/chrome/browser/ui/views/native_file_system/native_file_system_permission_view.cc +++ b/chrome/browser/ui/views/native_file_system/native_file_system_permission_view.cc
@@ -13,6 +13,7 @@ #include "components/constrained_window/constrained_window_views.h" #include "components/permissions/permission_util.h" #include "components/vector_icons/vector_icons.h" +#include "content/public/browser/native_file_system_permission_context.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/strings/grit/ui_strings.h" @@ -22,18 +23,19 @@ namespace { using AccessType = NativeFileSystemPermissionRequestManager::Access; +using HandleType = content::NativeFileSystemPermissionContext::HandleType; int GetMessageText(const NativeFileSystemPermissionView::Request& request) { switch (request.access) { case AccessType::kRead: - return request.is_directory + return request.handle_type == HandleType::kDirectory ? IDS_NATIVE_FILE_SYSTEM_ORIGIN_SCOPED_READ_PERMISSION_DIRECTORY_TEXT : IDS_NATIVE_FILE_SYSTEM_ORIGIN_SCOPED_READ_PERMISSION_FILE_TEXT; case AccessType::kWrite: case AccessType::kReadWrite: // Only difference between write and read-write access dialog is in button // label and dialog title. - return request.is_directory + return request.handle_type == HandleType::kDirectory ? IDS_NATIVE_FILE_SYSTEM_ORIGIN_SCOPED_WRITE_PERMISSION_DIRECTORY_TEXT : IDS_NATIVE_FILE_SYSTEM_ORIGIN_SCOPED_WRITE_PERMISSION_FILE_TEXT; } @@ -43,13 +45,13 @@ int GetButtonLabel(const NativeFileSystemPermissionView::Request& request) { switch (request.access) { case AccessType::kRead: - return request.is_directory + return request.handle_type == HandleType::kDirectory ? IDS_NATIVE_FILE_SYSTEM_VIEW_DIRECTORY_PERMISSION_ALLOW_TEXT : IDS_NATIVE_FILE_SYSTEM_VIEW_FILE_PERMISSION_ALLOW_TEXT; case AccessType::kWrite: return IDS_NATIVE_FILE_SYSTEM_WRITE_PERMISSION_ALLOW_TEXT; case AccessType::kReadWrite: - return request.is_directory + return request.handle_type == HandleType::kDirectory ? IDS_NATIVE_FILE_SYSTEM_EDIT_DIRECTORY_PERMISSION_ALLOW_TEXT : IDS_NATIVE_FILE_SYSTEM_EDIT_FILE_PERMISSION_ALLOW_TEXT; } @@ -107,7 +109,7 @@ base::string16 NativeFileSystemPermissionView::GetWindowTitle() const { switch (request_.access) { case AccessType::kRead: - if (request_.is_directory) { + if (request_.handle_type == HandleType::kDirectory) { return l10n_util::GetStringUTF16( IDS_NATIVE_FILE_SYSTEM_READ_DIRECTORY_PERMISSION_TITLE); } else { @@ -120,7 +122,7 @@ IDS_NATIVE_FILE_SYSTEM_WRITE_PERMISSION_TITLE, request_.path.BaseName().LossyDisplayName()); case AccessType::kReadWrite: - if (request_.is_directory) { + if (request_.handle_type == HandleType::kDirectory) { return l10n_util::GetStringUTF16( IDS_NATIVE_FILE_SYSTEM_EDIT_DIRECTORY_PERMISSION_TITLE); } else {
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_permission_view_browsertest.cc b/chrome/browser/ui/views/native_file_system/native_file_system_permission_view_browsertest.cc index 9885bc95..1b8983e 100644 --- a/chrome/browser/ui/views/native_file_system/native_file_system_permission_view_browsertest.cc +++ b/chrome/browser/ui/views/native_file_system/native_file_system_permission_view_browsertest.cc
@@ -13,20 +13,20 @@ #include "ui/views/controls/button/label_button.h" using AccessType = NativeFileSystemPermissionRequestManager::Access; +using HandleType = content::NativeFileSystemPermissionContext::HandleType; class NativeFileSystemPermissionViewTest : public DialogBrowserTest { public: // DialogBrowserTest: void ShowUi(const std::string& name) override { NativeFileSystemPermissionView::Request request( - kTestOrigin, base::FilePath(), /*is_directory=*/false, - AccessType::kWrite); + kTestOrigin, base::FilePath(), HandleType::kFile, AccessType::kWrite); if (name == "LongFileName") { request.path = base::FilePath(FILE_PATH_LITERAL( "/foo/bar/Some Really Really Really Really Long File Name.txt")); } else if (name == "Folder") { request.path = base::FilePath(FILE_PATH_LITERAL("/bar/MyProject")); - request.is_directory = true; + request.handle_type = HandleType::kDirectory; } else if (name == "LongOrigin") { request.path = base::FilePath(FILE_PATH_LITERAL("/foo/README.txt")); request.origin = @@ -42,11 +42,11 @@ "chrome-extension://ehoadneljpdggcbbknedodolkkjodefl/capture.html")); } else if (name == "FolderRead") { request.path = base::FilePath(FILE_PATH_LITERAL("/bar/MyProject")); - request.is_directory = true; + request.handle_type = HandleType::kDirectory; request.access = AccessType::kRead; } else if (name == "FolderReadWrite") { request.path = base::FilePath(FILE_PATH_LITERAL("/bar/MyProject")); - request.is_directory = true; + request.handle_type = HandleType::kDirectory; request.access = AccessType::kReadWrite; } else if (name == "FileRead") { request.path = base::FilePath(FILE_PATH_LITERAL("/foo/README.txt"));
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.cc b/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.cc index 7431c663..cbe33f4 100644 --- a/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.cc +++ b/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.cc
@@ -16,6 +16,8 @@ #include "ui/views/controls/label.h" #include "ui/views/layout/fill_layout.h" +using HandleType = content::NativeFileSystemPermissionContext::HandleType; + NativeFileSystemRestrictedDirectoryDialogView:: ~NativeFileSystemRestrictedDirectoryDialogView() { // Make sure the dialog ends up calling the callback no matter what. @@ -27,12 +29,12 @@ views::Widget* NativeFileSystemRestrictedDirectoryDialogView::ShowDialog( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void(SensitiveDirectoryResult)> callback, content::WebContents* web_contents) { auto delegate = base::WrapUnique(new NativeFileSystemRestrictedDirectoryDialogView( - origin, path, is_directory, std::move(callback))); + origin, path, handle_type, std::move(callback))); return constrained_window::ShowWebModalDialogViews(delegate.release(), web_contents); } @@ -40,8 +42,9 @@ base::string16 NativeFileSystemRestrictedDirectoryDialogView::GetWindowTitle() const { return l10n_util::GetStringUTF16( - is_directory_ ? IDS_NATIVE_FILE_SYSTEM_RESTRICTED_DIRECTORY_TITLE - : IDS_NATIVE_FILE_SYSTEM_RESTRICTED_FILE_TITLE); + handle_type_ == HandleType::kDirectory + ? IDS_NATIVE_FILE_SYSTEM_RESTRICTED_DIRECTORY_TITLE + : IDS_NATIVE_FILE_SYSTEM_RESTRICTED_FILE_TITLE); } bool NativeFileSystemRestrictedDirectoryDialogView::ShouldShowCloseButton() @@ -66,14 +69,14 @@ NativeFileSystemRestrictedDirectoryDialogView( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void(SensitiveDirectoryResult)> callback) - : is_directory_(is_directory), callback_(std::move(callback)) { - SetButtonLabel( - ui::DIALOG_BUTTON_OK, - l10n_util::GetStringUTF16( - is_directory_ ? IDS_NATIVE_FILE_SYSTEM_RESTRICTED_DIRECTORY_BUTTON - : IDS_NATIVE_FILE_SYSTEM_RESTRICTED_FILE_BUTTON)); + : handle_type_(handle_type), callback_(std::move(callback)) { + SetButtonLabel(ui::DIALOG_BUTTON_OK, + l10n_util::GetStringUTF16( + handle_type_ == HandleType::kDirectory + ? IDS_NATIVE_FILE_SYSTEM_RESTRICTED_DIRECTORY_BUTTON + : IDS_NATIVE_FILE_SYSTEM_RESTRICTED_FILE_BUTTON)); auto run_callback = [](NativeFileSystemRestrictedDirectoryDialogView* dialog, SensitiveDirectoryResult result) { @@ -89,19 +92,20 @@ views::TEXT, views::TEXT)); AddChildView(native_file_system_ui_helper::CreateOriginLabel( - is_directory_ ? IDS_NATIVE_FILE_SYSTEM_RESTRICTED_DIRECTORY_TEXT - : IDS_NATIVE_FILE_SYSTEM_RESTRICTED_FILE_TEXT, + handle_type_ == HandleType::kDirectory + ? IDS_NATIVE_FILE_SYSTEM_RESTRICTED_DIRECTORY_TEXT + : IDS_NATIVE_FILE_SYSTEM_RESTRICTED_FILE_TEXT, origin, CONTEXT_BODY_TEXT_LARGE, /*show_emphasis=*/true)); } void ShowNativeFileSystemRestrictedDirectoryDialog( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void( content::NativeFileSystemPermissionContext::SensitiveDirectoryResult)> callback, content::WebContents* web_contents) { NativeFileSystemRestrictedDirectoryDialogView::ShowDialog( - origin, path, is_directory, std::move(callback), web_contents); + origin, path, handle_type, std::move(callback), web_contents); }
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.h b/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.h index cc88542..7bd2393 100644 --- a/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.h +++ b/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view.h
@@ -41,7 +41,7 @@ static views::Widget* ShowDialog( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void(SensitiveDirectoryResult)> callback, content::WebContents* web_contents); @@ -55,10 +55,10 @@ NativeFileSystemRestrictedDirectoryDialogView( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, base::OnceCallback<void(SensitiveDirectoryResult)> callback); - const bool is_directory_; + const content::NativeFileSystemPermissionContext::HandleType handle_type_; base::OnceCallback<void(SensitiveDirectoryResult)> callback_; DISALLOW_COPY_AND_ASSIGN(NativeFileSystemRestrictedDirectoryDialogView);
diff --git a/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view_browsertest.cc b/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view_browsertest.cc index 8a3ce6e..5fdb2e56 100644 --- a/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/native_file_system/native_file_system_restricted_directory_dialog_view_browsertest.cc
@@ -22,7 +22,7 @@ void ShowUi(const std::string& name) override { widget_ = NativeFileSystemRestrictedDirectoryDialogView::ShowDialog( kTestOrigin, base::FilePath(FILE_PATH_LITERAL("/foo/bar")), - /*is_directory=*/true, + content::NativeFileSystemPermissionContext::HandleType::kDirectory, base::BindLambdaForTesting([&](SensitiveDirectoryResult result) { callback_called_ = true; callback_result_ = result;
diff --git a/chrome/browser/ui/webui/settings/chromeos/apps_section.cc b/chrome/browser/ui/webui/settings/chromeos/apps_section.cc index 9f14dbb..6d8ebbc5 100644 --- a/chrome/browser/ui/webui/settings/chromeos/apps_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/apps_section.cc
@@ -318,6 +318,8 @@ IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_CAMERA_LABEL}, {"pluginVmPermissionDialogMicrophoneLabel", IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_MICROPHONE_LABEL}, + {"pluginVmPermissionDialogRelaunchButton", + IDS_SETTINGS_APPS_PLUGIN_VM_PERMISSION_DIALOG_RELAUNCH_BUTTON}, }; AddLocalizedStringsBulk(html_source, kLocalizedStrings);
diff --git a/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc b/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc index 0f531b8..38bf2e6 100644 --- a/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc +++ b/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc
@@ -12,7 +12,6 @@ #include "base/bind_helpers.h" #include "chrome/browser/chromeos/file_manager/path_util.h" #include "chrome/browser/chromeos/guest_os/guest_os_share_path.h" -#include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h" #include "chrome/browser/profiles/profile.h" #include "content/public/browser/browser_thread.h" @@ -28,20 +27,24 @@ "getPluginVmSharedPathsDisplayText", base::BindRepeating( &PluginVmHandler::HandleGetPluginVmSharedPathsDisplayText, - weak_ptr_factory_.GetWeakPtr())); + base::Unretained(this))); web_ui()->RegisterMessageCallback( "removePluginVmSharedPath", base::BindRepeating(&PluginVmHandler::HandleRemovePluginVmSharedPath, - weak_ptr_factory_.GetWeakPtr())); + base::Unretained(this))); web_ui()->RegisterMessageCallback( "wouldPermissionChangeRequireRelaunch", base::BindRepeating( &PluginVmHandler::HandleWouldPermissionChangeRequireRelaunch, - weak_ptr_factory_.GetWeakPtr())); + base::Unretained(this))); web_ui()->RegisterMessageCallback( "setPluginVmPermission", base::BindRepeating(&PluginVmHandler::HandleSetPluginVmPermission, - weak_ptr_factory_.GetWeakPtr())); + base::Unretained(this))); + web_ui()->RegisterMessageCallback( + "relaunchPluginVm", + base::BindRepeating(&PluginVmHandler::HandleRelaunchPluginVm, + base::Unretained(this))); } void PluginVmHandler::HandleGetPluginVmSharedPathsDisplayText( @@ -87,14 +90,12 @@ static_cast<plugin_vm::PermissionType>(args->GetList()[1].GetInt()); DCHECK(permission_type == plugin_vm::PermissionType::kCamera || permission_type == plugin_vm::PermissionType::kMicrophone); + plugin_vm::PluginVmManager* manager = + plugin_vm::PluginVmManagerFactory::GetForProfile(profile_); + bool current_value = manager->GetPermission(permission_type); bool proposed_value = args->GetList()[2].GetBool(); - bool current_value = - plugin_vm::PluginVmManagerFactory::GetForProfile(profile_)->GetPermission( - permission_type); - // This can probably incorrectly return false in a small window during - // startup. - bool requires_relaunch = - plugin_vm::IsPluginVmRunning(profile_) && proposed_value != current_value; + bool requires_relaunch = proposed_value != current_value && + manager->IsRelaunchNeededForNewPermissions(); ResolveJavascriptCallback(base::Value(callback_id), base::Value(requires_relaunch)); @@ -111,5 +112,11 @@ permission_type, proposed_value); } +void PluginVmHandler::HandleRelaunchPluginVm(const base::ListValue* args) { + CHECK_EQ(0U, args->GetList().size()); + plugin_vm::PluginVmManagerFactory::GetForProfile(profile_) + ->RelaunchPluginVm(); +} + } // namespace settings } // namespace chromeos
diff --git a/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h b/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h index 36270cc..e1d77e2 100644 --- a/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h +++ b/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h
@@ -39,6 +39,8 @@ void HandleWouldPermissionChangeRequireRelaunch(const base::ListValue* args); // Sets the specified permission to the value proposed. void HandleSetPluginVmPermission(const base::ListValue* args); + // Relaunches Plugin VM. + void HandleRelaunchPluginVm(const base::ListValue* args); Profile* profile_;
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 1d1bad94..ab4f577 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-master-1593839947-023c9396eba780d7d1ca59fefcc0f5fd2bb94b17.profdata +chrome-mac-master-1593993254-dbbaa6aa1e1e0b6f79ccb648844aec2deeff08b4.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 962b6d1..5e8ab18c 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-master-1592964003-9ddbb03b2a49f9cdb1031f0ca4d2168e3c19b2de.profdata +chrome-win32-master-1593993254-590c1c6949804f5c7fc0a1e827a031b5cd1d9e34.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index e0ca12ff9..ca279f7 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-master-1593820445-63e268bbd52aa67f7602004b15c9eeb2067b1cce.profdata +chrome-win64-master-1593970160-b868b25d854d27d062f6932d7e877d2efc883cc1.profdata
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index f287eb9..bd398fa3 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc
@@ -2321,6 +2321,8 @@ // local_search_service::MetricsReporter. const char kLocalSearchServiceMetricsCrosSettingsCount[] = "local_search_service.metrics.cros_settings_count"; +const char kLocalSearchServiceMetricsHelpAppCount[] = + "local_search_service.metrics.help_app_count"; #endif // defined(OS_CHROMEOS)
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index 55c5323..edb85c0b 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -746,6 +746,7 @@ extern const char kLastRsuDeviceIdUploaded[]; extern const char kLocalSearchServiceMetricsDailySample[]; extern const char kLocalSearchServiceMetricsCrosSettingsCount[]; +extern const char kLocalSearchServiceMetricsHelpAppCount[]; #endif // defined(OS_CHROMEOS)
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index b33a418..b09441c 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -2936,16 +2936,19 @@ data_deps = [ "//base:base_perftests", - "//chrome/test:angle_perftests", - "//chrome/test:dawn_perf_tests", "//components:components_perftests", "//components/tracing:tracing_perftests", "//gpu:command_buffer_perftests", "//gpu:gpu_perftests", "//media:media_perftests", "//testing:run_perf_test", + "//third_party/angle/src/tests:angle_perftests", ] + if (build_dawn_tests) { + data_deps += [ "//third_party/dawn/src/tests:dawn_perf_tests" ] + } + if (!is_android && !is_fuchsia) { data_deps += [ "//chrome/test:load_library_perf_tests", @@ -2983,30 +2986,6 @@ deps = [ "//chrome/test:telemetry_perf_tests" ] } -group("standalone_angle_unittests") { - testonly = true - - # TODO(jmadill): Move into ANGLE. http://anglebug.com/3162 - data = [ "//testing/scripts/run_gtest_angle_test.py" ] - data_deps = [ "//third_party/angle/src/tests:standalone_angle_unittests" ] -} - -group("angle_perftests") { - testonly = true - data_deps = [ "//testing:run_perf_test" ] - if (is_win || is_linux || is_android) { - data_deps += [ "//third_party/angle/src/tests:angle_perftests" ] - } -} - -group("dawn_perf_tests") { - testonly = true - data_deps = [ "//testing:run_perf_test" ] - if (build_dawn_tests) { - data_deps += [ "//third_party/dawn/src/tests:dawn_perf_tests" ] - } -} - if (is_mac) { mojom("firefox_importer_interface") { sources =
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn index 2939977..a57a72e 100644 --- a/chrome/test/data/webui/BUILD.gn +++ b/chrome/test/data/webui/BUILD.gn
@@ -235,10 +235,16 @@ "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_bluetooth_private.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_bluetooth.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/localized_link_test.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_reset_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.m.js", + "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.m.js", ] } defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
diff --git a/chrome/test/data/webui/settings/chromeos/BUILD.gn b/chrome/test/data/webui/settings/chromeos/BUILD.gn index 5f41743..84a0aff 100644 --- a/chrome/test/data/webui/settings/chromeos/BUILD.gn +++ b/chrome/test/data/webui/settings/chromeos/BUILD.gn
@@ -37,10 +37,16 @@ "fake_settings_search_handler.js", "fake_user_action_recorder.js", "localized_link_test.js", + "multidevice_page_tests.js", + "multidevice_subpage_tests.js", + "multidevice_smartlock_subpage_test.js", + "multidevice_feature_item_tests.js", + "multidevice_feature_toggle_tests.js", "nearby_share_subpage_tests.js", "os_reset_page_test.js", "test_os_reset_browser_proxy.js", "test_os_lifetime_browser_proxy.js", + "test_multidevice_browser_proxy.js", ] namespace_rewrites = os_settings_namespace_rewrites + os_test_namespace_rewrites
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js index 82ac4b7..53101af 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js
@@ -337,7 +337,7 @@ !!pluginVmDetailView.$$('app-management-plugin-vm-permission-dialog')); }); - test('ok camera permission dialog', async function() { + test('Relaunch camera permission dialog', async function() { const camera_toggle = pluginVmDetailView.$$('#camera-permission') .$$('#toggle-row') .$$('#toggle'); @@ -350,6 +350,7 @@ 0, pluginVmBrowserProxy.getCallCount( 'wouldPermissionChangeRequireRelaunch')); + assertEquals(0, pluginVmBrowserProxy.getCallCount('relaunchPluginVm')); assertEquals(0, pluginVmBrowserProxy.getCallCount('setPluginVmPermission')); pluginVmBrowserProxy.pluginVmRunning = true; @@ -368,7 +369,7 @@ assertPermissions( /*expectedCameraState=*/ true, /*expectedMicrophoneState=*/ true); const dialogClosedPromise = test_util.eventToPromise('close', dialog); - dialog.$$('#dialogOkButton').click(); + dialog.$$('#dialogRelaunchButton').click(); await Promise.all( [dialogClosedPromise, fakeHandler.flushPipesForTesting()]); syncPermissions(); @@ -377,6 +378,7 @@ 1, pluginVmBrowserProxy.getCallCount( 'wouldPermissionChangeRequireRelaunch')); + assertEquals(1, pluginVmBrowserProxy.getCallCount('relaunchPluginVm')); assertEquals(1, pluginVmBrowserProxy.getCallCount('setPluginVmPermission')); assertFalse(camera_toggle.checked); assertPermissions( @@ -385,7 +387,7 @@ !!pluginVmDetailView.$$('app-management-plugin-vm-permission-dialog')); }); - test('ok microphone permission dialog', async function() { + test('Relaunch microphone permission dialog', async function() { const microphone_toggle = pluginVmDetailView.$$('#microphone-permission') .$$('#toggle-row') .$$('#toggle'); @@ -398,6 +400,7 @@ 0, pluginVmBrowserProxy.getCallCount( 'wouldPermissionChangeRequireRelaunch')); + assertEquals(0, pluginVmBrowserProxy.getCallCount('relaunchPluginVm')); assertEquals(0, pluginVmBrowserProxy.getCallCount('setPluginVmPermission')); pluginVmBrowserProxy.pluginVmRunning = true; @@ -416,7 +419,7 @@ assertPermissions( /*expectedCameraState=*/ true, /*expectedMicrophoneState=*/ true); const dialogClosedPromise = test_util.eventToPromise('close', dialog); - dialog.$$('#dialogOkButton').click(); + dialog.$$('#dialogRelaunchButton').click(); await Promise.all( [dialogClosedPromise, fakeHandler.flushPipesForTesting()]); syncPermissions(); @@ -425,6 +428,7 @@ 1, pluginVmBrowserProxy.getCallCount( 'wouldPermissionChangeRequireRelaunch')); + assertEquals(1, pluginVmBrowserProxy.getCallCount('relaunchPluginVm')); assertEquals(1, pluginVmBrowserProxy.getCallCount('setPluginVmPermission')); assertFalse(microphone_toggle.checked); assertPermissions(
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js index c0d7dea..bc43eb4 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js
@@ -10,6 +10,7 @@ 'removePluginVmSharedPath', 'wouldPermissionChangeRequireRelaunch', 'setPluginVmPermission', + 'relaunchPluginVm', ]); this.pluginVmRunning = false; this.permissions = [true, true]; // [0]Camera, [1]Microphone @@ -42,4 +43,9 @@ this.permissions[permissionSetting.permissionType] = permissionSetting.proposedValue; } + + /** @override */ + relaunchPluginVm() { + this.methodCalled('relaunchPluginVm'); + } }
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.js b/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.js index 278cac74..0f0801e 100644 --- a/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.js +++ b/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.js
@@ -2,6 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import 'chrome://os-settings/chromeos/os_settings.js'; + +// #import {MultiDeviceFeature, MultiDeviceFeatureState, routes, Router} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// clang-format on + suite('Multidevice', function() { /** @type {?SettingsMultideviceFeatureItemElement} */ let featureItem = null;
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.js b/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.js index 5543681..8def0b2 100644 --- a/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.js +++ b/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.js
@@ -2,6 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import 'chrome://os-settings/chromeos/os_settings.js'; + +// #import {MultiDeviceFeature, MultiDeviceFeatureState} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// clang-format on + /** * @fileoverview * Suite of tests for settings-multidevice-feature-toggle element. For
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.js b/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.js index ce44e00..ab03c40 100644 --- a/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.js +++ b/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.js
@@ -2,6 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import 'chrome://os-settings/chromeos/os_settings.js'; + +// #import {TestLifetimeBrowserProxy} from './test_os_lifetime_browser_proxy.m.js'; +// #import {MultiDeviceSettingsMode, MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData, MultiDeviceBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {TestOsResetBrowserProxy} from './test_os_reset_browser_proxy.m.js'; +// #import {assertEquals, assertFalse, assertNotEquals, assertTrue} from '../../chai_assert.js'; +// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {TestMultideviceBrowserProxy, createFakePageContentData, HOST_DEVICE} from './test_multidevice_browser_proxy.m.js'; +// clang-format on + suite('Multidevice', function() { let multidevicePage = null; let browserProxy = null;
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.js b/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.js index ad91f7a..36acf6b 100644 --- a/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.js +++ b/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.js
@@ -2,6 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import 'chrome://os-settings/chromeos/os_settings.js'; + +// #import {MultiDeviceFeature, MultiDeviceFeatureState, MultiDeviceBrowserProxyImpl, SmartLockSignInEnabledState} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +// #import {assert} from 'chrome://resources/js/assert.m.js'; +// #import {eventToPromise} from 'chrome://test/test_util.m.js'; +// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {TestMultideviceBrowserProxy} from './test_multidevice_browser_proxy.m.js'; +// clang-format on + suite('Multidevice', function() { let smartLockSubPage = null; let browserProxy = null; @@ -180,7 +191,7 @@ const smartLockSignInRadio = getSmartLockSignInRadio(); assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); }); test('Smart Lock signin enabled', function() { @@ -191,11 +202,11 @@ const smartLockSignInRadio = getSmartLockSignInRadio(); assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); return whenSignInEnabledSet.then(() => { assertEquals( - settings.SignInEnabledState.ENABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.ENABLED, smartLockSignInRadio.selected); }); }); @@ -204,13 +215,13 @@ const smartLockSignInRadio = getSmartLockSignInRadio(); assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); cr.webUIListenerCallback('smart-lock-signin-enabled-changed', true); Polymer.dom.flush(); assertEquals( - settings.SignInEnabledState.ENABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.ENABLED, smartLockSignInRadio.selected); }); test('Smart Lock sign in successful authentication', function() { @@ -218,7 +229,7 @@ const smartLockSignInRadio = getSmartLockSignInRadio(); assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); // The password dialog is not visible. let passwordDialog = smartLockSubPage.$$('settings-password-prompt-dialog'); @@ -238,7 +249,7 @@ // Sign in radio is still disabled because the user has not authenticated // using the password dialog. assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); // Simulate the user entering a valid password into the dialog. passwordDialog.authToken = 'validAuthToken'; @@ -247,7 +258,7 @@ return browserProxy.whenCalled('getSmartLockSignInEnabled').then(params => { assertEquals( - settings.SignInEnabledState.ENABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.ENABLED, smartLockSignInRadio.selected); }); }); @@ -256,7 +267,7 @@ const smartLockSignInRadio = getSmartLockSignInRadio(); assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); // The password dialog is not visible. let passwordDialog = smartLockSubPage.$$('settings-password-prompt-dialog'); @@ -276,7 +287,7 @@ // Sign in radio is still disabled because the user has not authenticated // using the password dialog. assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); // Simulate the user closing the password dialog. passwordDialog.dispatchEvent(new CustomEvent('close')); @@ -289,7 +300,7 @@ // The password dialog is closed and unauthenticated, so sign in is still // disabled. assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); }); test('Smart Lock disable sign in does not show password dialog', function() { @@ -301,7 +312,7 @@ const smartLockSignInRadio = getSmartLockSignInRadio(); assertEquals( - settings.SignInEnabledState.ENABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.ENABLED, smartLockSignInRadio.selected); // The password dialog is not visible. let passwordDialog = smartLockSubPage.$$('settings-password-prompt-dialog'); @@ -320,7 +331,7 @@ // Sign in radio is now disabled. assertEquals( - settings.SignInEnabledState.DISABLED, smartLockSignInRadio.selected); + settings.SmartLockSignInEnabledState.DISABLED, smartLockSignInRadio.selected); }); test('Smart Lock sign in control enabled by default', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.js b/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.js index 2b09c73..17267468 100644 --- a/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.js +++ b/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.js
@@ -2,6 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// clang-format off +// #import 'chrome://os-settings/chromeos/os_settings.js'; + +// #import {MultiDeviceSettingsMode, MultiDeviceFeature, MultiDeviceFeatureState, MultiDeviceBrowserProxyImpl, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +// #import {TestMultideviceBrowserProxy} from './test_multidevice_browser_proxy.m.js'; + suite('Multidevice', function() { let multideviceSubpage = null; let browserProxy = null;
diff --git a/chrome/test/data/webui/settings/chromeos/os_namespace_rewrites.gni b/chrome/test/data/webui/settings/chromeos/os_namespace_rewrites.gni index 16024f3..932e5c40 100644 --- a/chrome/test/data/webui/settings/chromeos/os_namespace_rewrites.gni +++ b/chrome/test/data/webui/settings/chromeos/os_namespace_rewrites.gni
@@ -1,7 +1,14 @@ -os_test_namespace_rewrites = [ +import("//chrome/browser/resources/settings/chromeos/os_settings.gni") + +os_test_namespace_rewrites = os_settings_namespace_rewrites + [ + "multidevice.createFakePageContentData|createFakePageContentData", + "multidevice.TestMultideviceBrowserProxy|TestMultideviceBrowserProxy", + "multidevice.HOST_DEVICE|HOST_DEVICE", "reset_page.TestOsResetBrowserProxy|TestOsResetBrowserProxy", "settings.TestLifetimeBrowserProxy|TestLifetimeBrowserProxy", "settings.FakeBluetooth|FakeBluetooth", "settings.FakeBluetoothPrivate|FakeBluetoothPrivate", + "settings.MultiDeviceSettingsMode|MultiDeviceSettingsMode", "test_util.flushTasks|flushTasks", + "test_util.eventToPromise|eventToPromise" ]
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js index 74e0c22..328527c 100644 --- a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js +++ b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js
@@ -39,6 +39,11 @@ ['LocalizedLink', 'localized_link_test.m.js'], ['BluetoothPage', 'bluetooth_page_tests.m.js'], ['NearbyShareSubPage', 'nearby_share_subpage_tests.m.js'], + ['MultidevicePage', 'multidevice_page_tests.m.js'], + ['MultideviceSubPage', 'multidevice_subpage_tests.m.js'], + ['MultideviceSmartLockSubPage', 'multidevice_smartlock_subpage_test.m.js'], + ['MultideviceFeatureItem', 'multidevice_feature_item_tests.m.js'], + ['MultideviceFeatureToggle', 'multidevice_feature_toggle_tests.m.js'], ].forEach(test => registerTest(...test)); function registerTest(testName, module, caseName) {
diff --git a/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js index b7e6e0b..93627e48 100644 --- a/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js +++ b/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.js
@@ -2,16 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js'; +// #import {MultiDeviceSettingsMode, MultiDeviceFeature, MultiDevicePageContentData} from 'chrome://os-settings/chromeos/os_settings.js'; + cr.define('multidevice', function() { /** * Default Host device for PageContentData. */ - const HOST_DEVICE = 'Pixel XL'; + /* #export */ const HOST_DEVICE = 'Pixel XL'; /** * Test value for messages for web permissions origin. */ - const TEST_ANDROID_SMS_ORIGIN = 'http://foo.com'; + /* #export */ const TEST_ANDROID_SMS_ORIGIN = 'http://foo.com'; /** * Builds fake pageContentData for the specified mode. If it is a mode @@ -22,7 +25,7 @@ * to a set host. * @return {!MultiDevicePageContentData} */ - function createFakePageContentData(mode, opt_hostDeviceName) { + /* #export */ function createFakePageContentData(mode, opt_hostDeviceName) { const pageContentData = {mode: mode}; if ([ settings.MultiDeviceSettingsMode.HOST_SET_WAITING_FOR_SERVER, @@ -39,7 +42,7 @@ * Note: Only showMultiDeviceSetupDialog is used by the multidevice-page * element. */ - class TestMultideviceBrowserProxy extends TestBrowserProxy { + /* #export */ class TestMultideviceBrowserProxy extends TestBrowserProxy { constructor() { super([ 'showMultiDeviceSetupDialog', @@ -109,6 +112,7 @@ } } + // #cr_define_end return { TestMultideviceBrowserProxy: TestMultideviceBrowserProxy, createFakePageContentData: createFakePageContentData,
diff --git a/chromeos/profiles/airmont.afdo.newest.txt b/chromeos/profiles/airmont.afdo.newest.txt index 3d8ebab..1a65d92 100644 --- a/chromeos/profiles/airmont.afdo.newest.txt +++ b/chromeos/profiles/airmont.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-airmont-85-4176.0-1593430899-benchmark-85.0.4183.8-r1-redacted.afdo.xz +chromeos-chrome-amd64-airmont-85-4176.0-1593430899-benchmark-85.0.4183.11-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/broadwell.afdo.newest.txt b/chromeos/profiles/broadwell.afdo.newest.txt index 17ac479..7f2c9c9 100644 --- a/chromeos/profiles/broadwell.afdo.newest.txt +++ b/chromeos/profiles/broadwell.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-broadwell-85-4147.51-1593425684-benchmark-85.0.4183.8-r1-redacted.afdo.xz +chromeos-chrome-amd64-broadwell-85-4147.51-1593425684-benchmark-85.0.4183.11-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/silvermont.afdo.newest.txt b/chromeos/profiles/silvermont.afdo.newest.txt index d360e27..5d7e200 100644 --- a/chromeos/profiles/silvermont.afdo.newest.txt +++ b/chromeos/profiles/silvermont.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-silvermont-85-4176.0-1593423523-benchmark-85.0.4183.8-r1-redacted.afdo.xz +chromeos-chrome-amd64-silvermont-85-4176.0-1593423523-benchmark-85.0.4183.11-r1-redacted.afdo.xz
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc index 46bd46ba..6bd638ea 100644 --- a/chromeos/services/assistant/assistant_manager_service_impl.cc +++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -38,6 +38,7 @@ #include "chromeos/services/assistant/public/cpp/assistant_client.h" #include "chromeos/services/assistant/public/cpp/device_actions.h" #include "chromeos/services/assistant/public/cpp/features.h" +#include "chromeos/services/assistant/public/shared/utils.h" #include "chromeos/services/assistant/service_context.h" #include "chromeos/services/assistant/utils.h" #include "chromeos/strings/grit/chromeos_strings.h"
diff --git a/chromeos/services/assistant/public/cpp/BUILD.gn b/chromeos/services/assistant/public/cpp/BUILD.gn index b1a3391..82652491 100644 --- a/chromeos/services/assistant/public/cpp/BUILD.gn +++ b/chromeos/services/assistant/public/cpp/BUILD.gn
@@ -30,6 +30,7 @@ "//ash/public/mojom", "//chromeos/constants:constants", "//chromeos/services/assistant/public/mojom", + "//chromeos/services/assistant/public/shared", "//chromeos/services/network_config/public/mojom", "//services/audio/public/mojom", "//services/device/public/mojom",
diff --git a/chromeos/services/assistant/public/cpp/assistant_enums.h b/chromeos/services/assistant/public/cpp/assistant_enums.h index 7573c786..1f28a7f 100644 --- a/chromeos/services/assistant/public/cpp/assistant_enums.h +++ b/chromeos/services/assistant/public/cpp/assistant_enums.h
@@ -93,15 +93,6 @@ kBetterOnboarding, }; -// Models status of an app. -enum class AppStatus { - kUnknown, - kAvailable, - kUnavailable, - kVersionMismatch, - kDisabled, -}; - // Enumeration of Assistant entry points. These values are persisted to logs. // Entries should not be renumbered and numeric values should never be reused. // Only append to this enum is allowed if the possible entry source grows.
diff --git a/chromeos/services/assistant/public/cpp/assistant_service.cc b/chromeos/services/assistant/public/cpp/assistant_service.cc index 1dc91d6..39d96d4 100644 --- a/chromeos/services/assistant/public/cpp/assistant_service.cc +++ b/chromeos/services/assistant/public/cpp/assistant_service.cc
@@ -59,13 +59,6 @@ default; AssistantSuggestion::~AssistantSuggestion() = default; -AndroidAppInfo::AndroidAppInfo() = default; -AndroidAppInfo::AndroidAppInfo(const AndroidAppInfo& suggestion) = default; -AndroidAppInfo& AndroidAppInfo::operator=(const AndroidAppInfo&) = default; -AndroidAppInfo::AndroidAppInfo(AndroidAppInfo&& suggestion) = default; -AndroidAppInfo& AndroidAppInfo::operator=(AndroidAppInfo&&) = default; -AndroidAppInfo::~AndroidAppInfo() = default; - bool AssistantInteractionSubscriber::OnOpenAppResponse( const AndroidAppInfo& app_info) { return false;
diff --git a/chromeos/services/assistant/public/cpp/assistant_service.h b/chromeos/services/assistant/public/cpp/assistant_service.h index 0e868c48..d5b536b 100644 --- a/chromeos/services/assistant/public/cpp/assistant_service.h +++ b/chromeos/services/assistant/public/cpp/assistant_service.h
@@ -13,6 +13,7 @@ #include "base/scoped_observer.h" #include "chromeos/services/assistant/public/cpp/assistant_enums.h" #include "chromeos/services/assistant/public/cpp/assistant_notification.h" +#include "chromeos/services/assistant/public/shared/utils.h" #include "ui/accessibility/mojom/ax_assistant_structure.mojom.h" namespace chromeos { @@ -64,34 +65,6 @@ GURL action_url; }; -// Models an Android app. -struct COMPONENT_EXPORT(ASSISTANT_SERVICE_PUBLIC) AndroidAppInfo { - AndroidAppInfo(); - AndroidAppInfo(const AndroidAppInfo& suggestion); - AndroidAppInfo& operator=(const AndroidAppInfo&); - AndroidAppInfo(AndroidAppInfo&& suggestion); - AndroidAppInfo& operator=(AndroidAppInfo&&); - ~AndroidAppInfo(); - - // Unique name to identify a specific app. - std::string package_name; - - // Version number of the app. - int version{0}; - - // Localized app name. - std::string localized_app_name; - - // Intent data to operate on. - std::string intent; - - // Status of the app. - AppStatus status{AppStatus::kUnknown}; - - // The general action to be performed, such as ACTION_VIEW, ACTION_MAIN, etc. - std::string action; -}; - // Subscribes to Assistant's interaction event. These events are server driven // in response to the user's direct interaction with the assistant. Responses // from the assistant may contain untrusted third-party content. Subscriber
diff --git a/chromeos/services/assistant/public/shared/BUILD.gn b/chromeos/services/assistant/public/shared/BUILD.gn index 3d4a01ef..5a4014c 100644 --- a/chromeos/services/assistant/public/shared/BUILD.gn +++ b/chromeos/services/assistant/public/shared/BUILD.gn
@@ -11,7 +11,11 @@ defines = [ "IS_ASSISTANT_SERVICE_SHARED_IMPL" ] - sources = [ "constants.h" ] + sources = [ + "constants.h", + "utils.cc", + "utils.h", + ] if (enable_cros_libassistant) { sources += [ "//chromeos/assistant/internal/constants.cc" ]
diff --git a/chromeos/services/assistant/public/shared/utils.cc b/chromeos/services/assistant/public/shared/utils.cc new file mode 100644 index 0000000..bda40c4 --- /dev/null +++ b/chromeos/services/assistant/public/shared/utils.cc
@@ -0,0 +1,18 @@ +// Copyright 2020 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 "chromeos/services/assistant/public/shared/utils.h" + +namespace chromeos { +namespace assistant { + +AndroidAppInfo::AndroidAppInfo() = default; +AndroidAppInfo::AndroidAppInfo(const AndroidAppInfo& suggestion) = default; +AndroidAppInfo& AndroidAppInfo::operator=(const AndroidAppInfo&) = default; +AndroidAppInfo::AndroidAppInfo(AndroidAppInfo&& suggestion) = default; +AndroidAppInfo& AndroidAppInfo::operator=(AndroidAppInfo&&) = default; +AndroidAppInfo::~AndroidAppInfo() = default; + +} // namespace assistant +} // namespace chromeos
diff --git a/chromeos/services/assistant/public/shared/utils.h b/chromeos/services/assistant/public/shared/utils.h new file mode 100644 index 0000000..560dc85 --- /dev/null +++ b/chromeos/services/assistant/public/shared/utils.h
@@ -0,0 +1,61 @@ +// Copyright 2020 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 CHROMEOS_SERVICES_ASSISTANT_PUBLIC_SHARED_UTILS_H_ +#define CHROMEOS_SERVICES_ASSISTANT_PUBLIC_SHARED_UTILS_H_ + +#include <string> + +#include "base/component_export.h" + +namespace chromeos { +namespace assistant { + +// Models status of an app. +enum class AppStatus { + kUnknown, + kAvailable, + kUnavailable, + kVersionMismatch, + kDisabled, +}; + +// Models an Android app. +struct COMPONENT_EXPORT(ASSISTANT_SERVICE_SHARED) AndroidAppInfo { + AndroidAppInfo(); + AndroidAppInfo(const AndroidAppInfo& suggestion); + AndroidAppInfo& operator=(const AndroidAppInfo&); + AndroidAppInfo(AndroidAppInfo&& suggestion); + AndroidAppInfo& operator=(AndroidAppInfo&&); + ~AndroidAppInfo(); + + // Unique name to identify a specific app. + std::string package_name; + + // Version number of the app. + int version{0}; + + // Localized app name. + std::string localized_app_name; + + // Intent data to operate on. + std::string intent; + + // Status of the app. + AppStatus status{AppStatus::kUnknown}; + + // The general action to be performed, such as ACTION_VIEW, ACTION_MAIN, etc. + std::string action; +}; + +// Models an Interaction. +struct COMPONENT_EXPORT(ASSISTANT_SERVICE_SHARED) InteractionInfo { + const int interaction_id; + const std::string user_id; +}; + +} // namespace assistant +} // namespace chromeos + +#endif // CHROMEOS_SERVICES_ASSISTANT_PUBLIC_SHARED_UTILS_H_
diff --git a/components/autofill/core/browser/form_data_importer.cc b/components/autofill/core/browser/form_data_importer.cc index d53fdd63..1009591 100644 --- a/components/autofill/core/browser/form_data_importer.cc +++ b/components/autofill/core/browser/form_data_importer.cc
@@ -540,7 +540,12 @@ // If we don't know the type of the field, or the user hasn't entered any // information into the field, or the field is non-focusable (hidden), then // skip it. - if (!field->IsFieldFillable() || !field->is_focusable || value.empty()) + // TODO(crbug.com/1101280): Remove |skip_unfocussable_field| + bool skip_unfocussable_field = + !field->is_focusable && + !base::FeatureList::IsEnabled( + features::kAutofillProfileImportFromUnfocusableFields); + if (!field->IsFieldFillable() || skip_unfocussable_field || value.empty()) continue; AutofillType field_type = field->Type();
diff --git a/components/autofill/core/browser/form_data_importer_unittest.cc b/components/autofill/core/browser/form_data_importer_unittest.cc index decd54d9..1487f0f 100644 --- a/components/autofill/core/browser/form_data_importer_unittest.cc +++ b/components/autofill/core/browser/form_data_importer_unittest.cc
@@ -306,7 +306,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -353,14 +353,14 @@ features::kAutofillProfileImportFromUnifiedSection); // Without the feature, the import is expected to fail. - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); // After enabled the feature, the import is expected to succeed. scoped_feature.Reset(); scoped_feature.InitAndEnableFeature( features::kAutofillProfileImportFromUnifiedSection); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -397,7 +397,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); ASSERT_EQ(0U, personal_data_manager_->GetProfiles().size()); } @@ -428,7 +428,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); ASSERT_EQ(1U, personal_data_manager_->GetProfiles().size()); } @@ -459,7 +459,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); ASSERT_EQ(0U, personal_data_manager_->GetProfiles().size()); } @@ -481,7 +481,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); ASSERT_EQ(0U, personal_data_manager_->GetProfiles().size()); ASSERT_EQ(0U, personal_data_manager_->GetCreditCards().size()); @@ -509,7 +509,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); ASSERT_EQ(1U, personal_data_manager_->GetProfiles().size()); } @@ -536,7 +536,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); ASSERT_EQ(1U, personal_data_manager_->GetProfiles().size()); } @@ -558,7 +558,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); ASSERT_EQ(1U, personal_data_manager_->GetProfiles().size()); } @@ -598,7 +598,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", nullptr, @@ -610,6 +610,64 @@ EXPECT_EQ(0, expected.Compare(*results[0])); } +TEST_F(FormDataImporterTest, ImportAddressProfiles_UnFocussableFields) { + FormData form; + form.url = GURL("https://wwww.foo.com"); + + FormFieldData field; + + test::CreateTestFormField("First name:", "first_name", "George", "text", + &field); + form.fields.push_back(field); + + test::CreateTestFormField("Last name:", "last_name", "Washington", "text", + &field); + form.fields.push_back(field); + + test::CreateTestFormField("Phone:", "phone", "1234554321", "text", &field); + form.fields.push_back(field); + + test::CreateTestFormField("Address:", "address1", "21 Laussat St", "text", + &field); + form.fields.push_back(field); + + test::CreateTestFormField("City:", "city", "San Francisco", "text", &field); + // Set this field to be unfocusable. + field.is_focusable = false; + form.fields.push_back(field); + + test::CreateTestFormField("State:", "state", "California", "text", &field); + form.fields.push_back(field); + + test::CreateTestFormField("Zip:", "zip", "94102", "text", &field); + form.fields.push_back(field); + + FormStructure form_structure(form); + form_structure.DetermineHeuristicTypes(); + + // Verify the status quo that the form is not imported with the unfocusable + // fields. + // TODO(crbug.com/1101280): Remove once feature is launched. + scoped_feature_list_.InitAndDisableFeature( + features::kAutofillProfileImportFromUnfocusableFields); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); + + // Activate the feature and test again. + scoped_feature_list_.Reset(); + scoped_feature_list_.InitAndEnableFeature( + features::kAutofillProfileImportFromUnfocusableFields); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); + + AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&expected, "George", nullptr, "Washington", nullptr, + nullptr, "21 Laussat St", nullptr, "San Francisco", + "California", "94102", nullptr, "1234554321"); + const std::vector<AutofillProfile*>& results = + personal_data_manager_->GetProfiles(); + ASSERT_EQ(1U, results.size()); + EXPECT_EQ(0, expected.Compare(*results[0])); +} + TEST_F(FormDataImporterTest, ImportAddressProfiles_MultilineAddress) { FormData form; form.url = GURL("https://wwww.foo.com"); @@ -637,7 +695,7 @@ form.fields.push_back(field); FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -677,7 +735,7 @@ FormStructure form_structure1(form1); form_structure1.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure1); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure1); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -713,7 +771,7 @@ FormStructure form_structure2(form2); form_structure2.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure2); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure2); AutofillProfile expected2(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected2, "John", nullptr, "Adams", "second@gmail.com", @@ -770,7 +828,7 @@ FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -844,7 +902,7 @@ // Still able to do the import. FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -926,7 +984,7 @@ FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); // Only two are saved. AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); @@ -980,7 +1038,7 @@ FormStructure form_structure1(form1); form_structure1.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure1); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure1); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -1026,7 +1084,7 @@ FormStructure form_structure2(form2); form_structure2.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure2); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure2); const std::vector<AutofillProfile*>& results2 = personal_data_manager_->GetProfiles(); @@ -1063,7 +1121,7 @@ FormStructure form_structure1(form1); form_structure1.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure1); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure1); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", nullptr, @@ -1099,7 +1157,7 @@ FormStructure form_structure2(form2); form_structure2.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure2); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure2); const std::vector<AutofillProfile*>& results2 = personal_data_manager_->GetProfiles(); @@ -1143,7 +1201,7 @@ FormStructure form_structure1(form1); form_structure1.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure1); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure1); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -1181,7 +1239,7 @@ FormStructure form_structure2(form2); form_structure2.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure2); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure2); const std::vector<AutofillProfile*>& results2 = personal_data_manager_->GetProfiles(); @@ -1217,7 +1275,7 @@ FormStructure form_structure1(form1); form_structure1.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure1); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure1); // Since no refresh is expected, reload the data from the database to make // sure no changes were written out. @@ -1273,7 +1331,7 @@ FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); // Expect that no new profile is saved. const std::vector<AutofillProfile*>& results = @@ -1291,7 +1349,7 @@ FormStructure form_structure2(form); form_structure2.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure2); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure2); // Expect that no new profile is saved. const std::vector<AutofillProfile*>& results2 = @@ -1330,7 +1388,7 @@ FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); // Since no refresh is expected, reload the data from the database to make // sure no changes were written out. @@ -1374,7 +1432,7 @@ // the page language is not set. FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); ASSERT_EQ(0U, personal_data_manager_->GetProfiles().size()); ASSERT_EQ(0U, personal_data_manager_->GetCreditCards().size()); @@ -1388,7 +1446,7 @@ // enabled. scoped_feature_list_.InitAndDisableFeature( features::kAutofillUsePageLanguageToTranslateCountryNames); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); // There should be no imported address profile. ASSERT_EQ(0U, personal_data_manager_->GetProfiles().size()); @@ -1399,7 +1457,7 @@ scoped_feature_list_.Reset(); scoped_feature_list_.InitAndEnableFeature( features::kAutofillUsePageLanguageToTranslateCountryNames); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); // There should be one imported address profile. ASSERT_EQ(1U, personal_data_manager_->GetProfiles().size()); @@ -1446,7 +1504,7 @@ FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/true, form_structure); + ImportAddressProfiles(/*extraction_successful=*/true, form_structure); AutofillProfile expected(base::GenerateGUID(), test::kEmptyOrigin); test::SetProfileInfo(&expected, "George", nullptr, "Washington", @@ -1493,7 +1551,7 @@ FormStructure form_structure(form); form_structure.DetermineHeuristicTypes(); - ImportAddressProfiles(/*extraction_success=*/false, form_structure); + ImportAddressProfiles(/*extraction_successful=*/false, form_structure); // Since no refresh is expected, reload the data from the database to make // sure no changes were written out.
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc index d7dae7f9..ae61ea6 100644 --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc
@@ -165,6 +165,11 @@ "AutofillProfileImportFromUnifiedSection", base::FEATURE_DISABLED_BY_DEFAULT}; +// TODO(crbug.com/1101280): Remove once feature is tested. +const base::Feature kAutofillProfileImportFromUnfocusableFields{ + "AutofillProfileImportFromUnfocusableFields", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Controls whether Autofill uses server-side validation to ensure that fields // with invalid data are not suggested. const base::Feature kAutofillProfileServerValidation{
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h index 14d2601..595d628 100644 --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h
@@ -48,6 +48,7 @@ extern const base::Feature kAutofillOverrideWithRaterConsensus; extern const base::Feature kAutofillPreferServerNamePredictions; extern const base::Feature kAutofillProfileClientValidation; +extern const base::Feature kAutofillProfileImportFromUnfocusableFields; extern const base::Feature kAutofillProfileImportFromUnifiedSection; extern const base::Feature kAutofillProfileServerValidation; extern const base::Feature kAutofillRejectCompanyBirthyear;
diff --git a/components/download/public/common/auto_resumption_handler.cc b/components/download/public/common/auto_resumption_handler.cc index b4cf42f..1b73224d 100644 --- a/components/download/public/common/auto_resumption_handler.cc +++ b/components/download/public/common/auto_resumption_handler.cc
@@ -49,6 +49,9 @@ // The window end time before which the system should fire the task. const int64_t kWindowEndTimeSeconds = 24 * 60 * 60; +// The window length for download later task. +const int64_t kDownloadLaterTaskWindowSeconds = 15; /* 15 seconds.*/ + bool IsConnected(network::mojom::ConnectionType type) { switch (type) { case network::mojom::ConnectionType::CONNECTION_UNKNOWN: @@ -158,6 +161,7 @@ void AutoResumptionHandler::OnDownloadRemoved(download::DownloadItem* item) { resumable_downloads_.erase(item->GetGuid()); + downloads_to_retry_.erase(item); RecomputeTaskParams(); } @@ -204,6 +208,12 @@ kBatchDownloadUpdatesInterval); } +// Go through all the downloads. +// 1- If there is no immediately resumable downloads, finish the task +// 2- If there are resumable downloads, schedule a task +// 3- If there are no resumable downloads, unschedule the task. +// At any point either a task is running or is scheduled but not both, which is +// handled by TaskManager. void AutoResumptionHandler::RescheduleTaskIfNecessary() { if (!config_->is_auto_resumption_enabled_in_native) return; @@ -213,21 +223,33 @@ bool has_resumable_downloads = false; bool has_actionable_downloads = false; bool can_download_on_metered = false; + + std::vector<DownloadItem*> download_later_items; + auto now = clock_->Now(); + for (auto iter = resumable_downloads_.begin(); iter != resumable_downloads_.end(); ++iter) { download::DownloadItem* download = iter->second; if (!IsAutoResumableDownload(download)) continue; + if (ShouldDownloadLater(download, now)) { + download_later_items.push_back(download); + continue; + } + has_resumable_downloads = true; has_actionable_downloads |= ShouldResumeNow(download); can_download_on_metered |= download->AllowMetered(); - if (can_download_on_metered) - break; } - if (!has_actionable_downloads) + if (!has_actionable_downloads) { task_manager_->NotifyTaskFinished(kResumptionTaskType, false); + task_manager_->NotifyTaskFinished(DownloadTaskType::DOWNLOAD_LATER_TASK, + false); + } + + RescheduleDownloadLaterTask(download_later_items); if (!has_resumable_downloads) { task_manager_->UnscheduleTask(kResumptionTaskType); @@ -245,15 +267,28 @@ if (!config_->is_auto_resumption_enabled_in_native) return; - for (auto iter = resumable_downloads_.begin(); - iter != resumable_downloads_.end(); ++iter) { - download::DownloadItem* download = iter->second; + int resumed = MaybeResumeDownloads(resumable_downloads_); + + // If we resume nothing, finish the current task and reschedule. + if (!resumed) + RecomputeTaskParams(); +} + +int AutoResumptionHandler::MaybeResumeDownloads( + const std::map<std::string, DownloadItem*>& downloads) { + int resumed = 0; + for (const auto& pair : downloads) { + DownloadItem* download = pair.second; if (!IsAutoResumableDownload(download)) continue; - if (ShouldResumeNow(download)) + if (ShouldResumeNow(download)) { download->Resume(false); + resumed++; + } } + + return resumed; } bool AutoResumptionHandler::ShouldResumeNow( @@ -262,9 +297,7 @@ return false; // If the user selects a time to start in the future, don't resume now. - const auto& download_schedule = download->GetDownloadSchedule(); - if (download_schedule && - download_schedule->start_time().value_or(base::Time()) >= clock_->Now()) { + if (ShouldDownloadLater(download, clock_->Now())) { return false; } @@ -294,6 +327,51 @@ } // static +bool AutoResumptionHandler::ShouldDownloadLater(DownloadItem* item, + base::Time now) { + const auto& download_schedule = item->GetDownloadSchedule(); + if (download_schedule && + download_schedule->start_time().value_or(base::Time()) > now) { + return true; + } + + return false; +} + +void AutoResumptionHandler::RescheduleDownloadLaterTask( + const std::vector<DownloadItem*> downloads) { + base::Time window_start = base::Time::Max(); + for (auto* download : downloads) { + const auto schedule = download->GetDownloadSchedule(); + if (!schedule || !schedule->start_time().has_value()) + continue; + + if (schedule->start_time().value() < window_start) + window_start = schedule->start_time().value(); + } + + base::Time now = clock_->Now(); + if (window_start.is_max() || window_start < now) { + // Unschedule download later task, nothing to schedule. + task_manager_->UnscheduleTask(DownloadTaskType::DOWNLOAD_LATER_TASK); + } else { + // Fulfill the user scheduled time. + TaskManager::TaskParams task_params; + task_params.window_start_time_seconds = (window_start - now).InSeconds(); + task_params.window_end_time_seconds = + task_params.window_start_time_seconds + kDownloadLaterTaskWindowSeconds; + task_params.require_charging = false; + task_params.require_unmetered_network = false; + + // Needs to call |UnscheduleTask| first to make |task_manager_| set + // needs_reschedule to false. + task_manager_->UnscheduleTask(DownloadTaskType::DOWNLOAD_LATER_TASK); + task_manager_->ScheduleTask(DownloadTaskType::DOWNLOAD_LATER_TASK, + task_params); + } +} + +// static bool AutoResumptionHandler::IsInterruptedDownloadAutoResumable( download::DownloadItem* download_item, int auto_resumption_size_limit) {
diff --git a/components/download/public/common/auto_resumption_handler.h b/components/download/public/common/auto_resumption_handler.h index 40f2224..c6f4f1d0 100644 --- a/components/download/public/common/auto_resumption_handler.h +++ b/components/download/public/common/auto_resumption_handler.h
@@ -77,16 +77,31 @@ void OnDownloadDestroyed(download::DownloadItem* item) override; private: + using DownloadMap = std::map<std::string, DownloadItem*>; + // NetworkStatusListener::Observer implementation. void OnNetworkChanged(network::mojom::ConnectionType type) override; void ResumePendingDownloads(); + + // Maybe resume some of the |downloads|. Returns the number of downloads + // resumed. + int MaybeResumeDownloads(const DownloadMap& downloads); + void RecomputeTaskParams(); void RescheduleTaskIfNecessary(); void ResumeDownloadImmediately(); bool ShouldResumeNow(download::DownloadItem* download) const; bool IsAutoResumableDownload(download::DownloadItem* item) const; + // Returns whether the user has scheduled the download to happen later. + static bool ShouldDownloadLater(DownloadItem* item, base::Time now); + + // Reschedule the download later background task. May cancel the task when no + // need to run a future task. + void RescheduleDownloadLaterTask(const std::vector<DownloadItem*> downloads); + + // Listens to network events to stop/resume downloads accordingly. std::unique_ptr<download::NetworkStatusListener> network_listener_; std::unique_ptr<download::TaskManager> task_manager_; @@ -97,7 +112,7 @@ // List of downloads that are auto-resumable. These will be resumed as soon as // network conditions becomes favorable. - std::map<std::string, download::DownloadItem*> resumable_downloads_; + DownloadMap resumable_downloads_; // A temporary list of downloads which are being retried immediately. std::set<download::DownloadItem*> downloads_to_retry_;
diff --git a/components/download/public/common/auto_resumption_handler_unittest.cc b/components/download/public/common/auto_resumption_handler_unittest.cc index ab3a891..9951bfb1 100644 --- a/components/download/public/common/auto_resumption_handler_unittest.cc +++ b/components/download/public/common/auto_resumption_handler_unittest.cc
@@ -33,6 +33,21 @@ namespace { const char kNow[] = "1 Sep 2020 01:00:00 GMT"; +const DownloadTaskType kResumptionTaskType = + DownloadTaskType::DOWNLOAD_AUTO_RESUMPTION_TASK; +const DownloadTaskType kDownloadLaterTaskType = + DownloadTaskType::DOWNLOAD_LATER_TASK; +const int64_t kDownloadLaterTaskWindowSeconds = 15; + +TaskManager::TaskParams TaskParams(int64_t window_start_time_seconds, + int64_t window_end_time_seconds, + bool require_wifi) { + TaskManager::TaskParams params; + params.window_start_time_seconds = window_start_time_seconds; + params.window_end_time_seconds = window_end_time_seconds; + params.require_unmetered_network = require_wifi; + return params; +} base::Time GetNow() { base::Time now; @@ -137,8 +152,11 @@ task_runner_->FastForwardUntilNoTasksRemain(); // Complete the download. - EXPECT_CALL(*task_manager_, NotifyTaskFinished(_, _)).Times(1); - EXPECT_CALL(*task_manager_, UnscheduleTask(_)).Times(1); + EXPECT_CALL(*task_manager_, NotifyTaskFinished(kResumptionTaskType, _)); + EXPECT_CALL(*task_manager_, + NotifyTaskFinished(kDownloadLaterTaskType, false)); + EXPECT_CALL(*task_manager_, UnscheduleTask(kResumptionTaskType)); + EXPECT_CALL(*task_manager_, UnscheduleTask(kDownloadLaterTaskType)); SetDownloadState(item.get(), DownloadItem::COMPLETE, false, false); auto_resumption_handler_->OnDownloadUpdated(item.get()); task_runner_->FastForwardUntilNoTasksRemain(); @@ -156,7 +174,9 @@ task_runner_->FastForwardUntilNoTasksRemain(); // Remove the download. - EXPECT_CALL(*task_manager_, NotifyTaskFinished(_, _)).Times(1); + EXPECT_CALL(*task_manager_, NotifyTaskFinished(kResumptionTaskType, _)); + EXPECT_CALL(*task_manager_, + NotifyTaskFinished(kDownloadLaterTaskType, false)); SetDownloadState(item.get(), DownloadItem::COMPLETE, false, false); auto_resumption_handler_->OnDownloadRemoved(item.get()); task_runner_->FastForwardUntilNoTasksRemain(); @@ -178,15 +198,19 @@ task_runner_->FastForwardUntilNoTasksRemain(); // Finish item1. The task should still be running. - EXPECT_CALL(*task_manager_, UnscheduleTask(_)).Times(0); + EXPECT_CALL(*task_manager_, UnscheduleTask(kResumptionTaskType)).Times(0); + EXPECT_CALL(*task_manager_, UnscheduleTask(kDownloadLaterTaskType)); EXPECT_CALL(*task_manager_, NotifyTaskFinished(_, _)).Times(0); SetDownloadState(item1.get(), DownloadItem::CANCELLED, false, false); auto_resumption_handler_->OnDownloadUpdated(item1.get()); task_runner_->FastForwardUntilNoTasksRemain(); // Finish item2. The task should now complete. - EXPECT_CALL(*task_manager_, UnscheduleTask(_)).Times(1); - EXPECT_CALL(*task_manager_, NotifyTaskFinished(_, _)).Times(1); + EXPECT_CALL(*task_manager_, UnscheduleTask(kResumptionTaskType)); + EXPECT_CALL(*task_manager_, UnscheduleTask(kDownloadLaterTaskType)); + EXPECT_CALL(*task_manager_, NotifyTaskFinished(kResumptionTaskType, _)); + EXPECT_CALL(*task_manager_, + NotifyTaskFinished(kDownloadLaterTaskType, false)); SetDownloadState(item2.get(), DownloadItem::COMPLETE, false, false); auto_resumption_handler_->OnDownloadUpdated(item2.get()); task_runner_->FastForwardUntilNoTasksRemain(); @@ -273,14 +297,25 @@ TEST_F(AutoResumptionHandlerTest, DownloadLaterStartFutureNotAutoResumed) { SetNetworkConnectionType(ConnectionType::CONNECTION_WIFI); auto item = std::make_unique<NiceMock<MockDownloadItem>>(); - base::Time future_time = base::Time::Now() + base::TimeDelta::FromDays(10); + auto delta = base::TimeDelta::FromDays(10); + base::Time future_time = GetNow() + delta; + SetDownloadState(item.get(), DownloadItem::INTERRUPTED, false, false); SetDownloadSchedule(item.get(), DownloadSchedule(false /*only_on_wifi*/, future_time)); - SetDownloadState(item.get(), DownloadItem::INTERRUPTED, false, false, false); - auto_resumption_handler_->OnDownloadStarted(item.get()); - task_runner_->FastForwardUntilNoTasksRemain(); + int64_t window_start = delta.InSeconds(); + auto task_params = TaskParams( + window_start, window_start + kDownloadLaterTaskWindowSeconds, false); EXPECT_CALL(*item.get(), Resume(_)).Times(0); + EXPECT_CALL(*task_manager_, + ScheduleTask(kDownloadLaterTaskType, task_params)); + EXPECT_CALL(*task_manager_, ScheduleTask(kResumptionTaskType, _)).Times(0); + EXPECT_CALL(*task_manager_, UnscheduleTask(kResumptionTaskType)); + EXPECT_CALL(*task_manager_, UnscheduleTask(kDownloadLaterTaskType)); + EXPECT_CALL(*task_manager_, NotifyTaskFinished(kDownloadLaterTaskType, _)); + EXPECT_CALL(*task_manager_, NotifyTaskFinished(kResumptionTaskType, _)); + + auto_resumption_handler_->OnDownloadStarted(item.get()); auto_resumption_handler_->OnStartScheduledTask( DownloadTaskType::DOWNLOAD_AUTO_RESUMPTION_TASK, base::DoNothing()); task_runner_->FastForwardUntilNoTasksRemain(); @@ -291,10 +326,10 @@ TEST_F(AutoResumptionHandlerTest, DownloadLaterMeteredAutoResumed) { SetNetworkConnectionType(ConnectionType::CONNECTION_3G); auto item = std::make_unique<NiceMock<MockDownloadItem>>(); - SetDownloadSchedule(item.get(), - DownloadSchedule(true /*only_on_wifi*/, base::nullopt)); SetDownloadState(item.get(), DownloadItem::INTERRUPTED, false, true /*allow_metered*/); + SetDownloadSchedule(item.get(), + DownloadSchedule(true /*only_on_wifi*/, base::nullopt)); auto_resumption_handler_->OnDownloadStarted(item.get()); task_runner_->FastForwardUntilNoTasksRemain();
diff --git a/components/download/public/task/task_manager.h b/components/download/public/task/task_manager.h index 0bfe8854..a61269a 100644 --- a/components/download/public/task/task_manager.h +++ b/components/download/public/task/task_manager.h
@@ -57,11 +57,13 @@ virtual void OnStopScheduledTask(DownloadTaskType task_type) = 0; // Should be called once the task is complete. The callback passed through - // OnStartScheduledTask() will be run in order to notify that the task is done - // and the system should reschedule the task with the original params if - // |needs_reschedule| is true. If there are pending params for a new task, a - // new task will be scheduled immediately and reschedule logic will not be - // run. + // OnStartScheduledTask() will be run in order to notify that the task is + // done. If there are pending params for a new task, a new task will be + // scheduled immediately. + // + // Most caller should set |needs_reschedule| to false. The OS will reschedule + // the task with the original params but with a OS controlled back off time if + // |needs_reschedule| is true. virtual void NotifyTaskFinished(DownloadTaskType task_type, bool needs_reschedule) = 0;
diff --git a/components/download/public/task/task_manager_impl.cc b/components/download/public/task/task_manager_impl.cc index ac40fba6..772ac23 100644 --- a/components/download/public/task/task_manager_impl.cc +++ b/components/download/public/task/task_manager_impl.cc
@@ -49,11 +49,10 @@ void TaskManagerImpl::OnStartScheduledTask(DownloadTaskType task_type, TaskFinishedCallback callback) { - DCHECK(pending_task_params_.find(task_type) != pending_task_params_.end()); - current_task_params_[task_type] = pending_task_params_[task_type]; - pending_task_params_.erase(task_type); + if (pending_task_params_.find(task_type) != pending_task_params_.end()) + current_task_params_[task_type] = pending_task_params_[task_type]; - DCHECK(!IsRunningTask(task_type)); + pending_task_params_.erase(task_type); task_finished_callbacks_[task_type] = std::move(callback); }
diff --git a/components/download/public/task/task_manager_unittest.cc b/components/download/public/task/task_manager_unittest.cc index 526fa54..5aac8623 100644 --- a/components/download/public/task/task_manager_unittest.cc +++ b/components/download/public/task/task_manager_unittest.cc
@@ -224,6 +224,34 @@ task_runner_->RunUntilIdle(); } +// Verifies that OnStartScheduledTask() can be called without preceding +// ScheduleTask() calls. +TEST_F(TaskManagerImplTest, StartTaskWithoutPendingParams) { + MockTaskWaiter waiter; + auto callback = + base::BindOnce(&MockTaskWaiter::TaskFinished, base::Unretained(&waiter)); + task_manager_->OnStartScheduledTask(DownloadTaskType::DOWNLOAD_TASK, + std::move(callback)); + EXPECT_CALL(waiter, TaskFinished(false)).Times(1); + task_manager_->NotifyTaskFinished(DownloadTaskType::DOWNLOAD_TASK, false); + task_runner_->RunUntilIdle(); +} + +// Verifies that OnStopScheduledTask() can be called without preceding +// ScheduleTask() calls. +TEST_F(TaskManagerImplTest, StopTaskWithoutPendingParams) { + MockTaskWaiter waiter; + EXPECT_CALL(waiter, TaskFinished(false)).Times(0); + + auto callback = + base::BindOnce(&MockTaskWaiter::TaskFinished, base::Unretained(&waiter)); + task_manager_->OnStartScheduledTask(DownloadTaskType::DOWNLOAD_TASK, + std::move(callback)); + task_manager_->OnStopScheduledTask(DownloadTaskType::DOWNLOAD_TASK); + + task_runner_->RunUntilIdle(); +} + TEST_F(TaskManagerImplTest, StopTaskWillSchedulePendingParams) { auto params = CreateTaskParams(); task_manager_->ScheduleTask(DownloadTaskType::DOWNLOAD_TASK, params);
diff --git a/components/drive/file_errors.h b/components/drive/file_errors.h index 242a247..e793a625 100644 --- a/components/drive/file_errors.h +++ b/components/drive/file_errors.h
@@ -33,9 +33,6 @@ FILE_ERROR_SERVICE_UNAVAILABLE = -18, }; -// Used as callbacks for file operations. -typedef base::Callback<void(FileError error)> FileOperationCallback; - // Returns a string representation of FileError. std::string FileErrorToString(FileError error);
diff --git a/components/performance_manager/service_worker_context_adapter.cc b/components/performance_manager/service_worker_context_adapter.cc index d055bac5..354a417 100644 --- a/components/performance_manager/service_worker_context_adapter.cc +++ b/components/performance_manager/service_worker_context_adapter.cc
@@ -122,6 +122,12 @@ return false; } +void ServiceWorkerContextAdapter::GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) { + NOTIMPLEMENTED(); +} + void ServiceWorkerContextAdapter::GetAllOriginsInfo( GetUsageInfoCallback callback) { NOTIMPLEMENTED();
diff --git a/components/performance_manager/service_worker_context_adapter.h b/components/performance_manager/service_worker_context_adapter.h index 1c2bbb8..bca2cd42 100644 --- a/components/performance_manager/service_worker_context_adapter.h +++ b/components/performance_manager/service_worker_context_adapter.h
@@ -62,6 +62,9 @@ const GURL& origin, CountExternalRequestsCallback callback) override; bool MaybeHasRegistrationForOrigin(const url::Origin& origin) override; + void GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) override; void GetAllOriginsInfo(GetUsageInfoCallback callback) override; void DeleteForOrigin(const GURL& origin_url, ResultCallback callback) override;
diff --git a/content/browser/native_file_system/mock_native_file_system_permission_context.cc b/content/browser/native_file_system/mock_native_file_system_permission_context.cc index b48bc5a7..059fcf0 100644 --- a/content/browser/native_file_system/mock_native_file_system_permission_context.cc +++ b/content/browser/native_file_system/mock_native_file_system_permission_context.cc
@@ -22,10 +22,10 @@ void MockNativeFileSystemPermissionContext::ConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback) { - ConfirmSensitiveDirectoryAccess_(origin, paths, is_directory, frame_id, + ConfirmSensitiveDirectoryAccess_(origin, paths, handle_type, frame_id, callback); }
diff --git a/content/browser/native_file_system/mock_native_file_system_permission_context.h b/content/browser/native_file_system/mock_native_file_system_permission_context.h index a98923e..480d4d3a 100644 --- a/content/browser/native_file_system/mock_native_file_system_permission_context.h +++ b/content/browser/native_file_system/mock_native_file_system_permission_context.h
@@ -20,7 +20,7 @@ scoped_refptr<NativeFileSystemPermissionGrant>( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, NativeFileSystemPermissionContext::UserAction user_action)); @@ -28,7 +28,7 @@ scoped_refptr<NativeFileSystemPermissionGrant>( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, NativeFileSystemPermissionContext::UserAction user_action)); @@ -46,14 +46,14 @@ void ConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback) override; MOCK_METHOD5( ConfirmSensitiveDirectoryAccess_, void(const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)>& callback));
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 89ea8eaf0..218abdf3 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
@@ -28,6 +28,8 @@ namespace content { +using HandleType = NativeFileSystemPermissionContext::HandleType; + namespace { // Returns true when |name| contains a path separator like "/". @@ -54,11 +56,7 @@ const BindingContext& context, const storage::FileSystemURL& url, const SharedHandleState& handle_state) - : NativeFileSystemHandleBase(manager, - context, - url, - handle_state, - /*is_directory=*/true) {} + : NativeFileSystemHandleBase(manager, context, url, handle_state) {} NativeFileSystemDirectoryHandleImpl::~NativeFileSystemDirectoryHandleImpl() = default; @@ -255,8 +253,7 @@ if (parent_path == child_path) { std::move(callback).Run( native_file_system_error::Ok(), - possible_child->type() == - NativeFileSystemTransferTokenImpl::HandleType::kDirectory + possible_child->type() == HandleType::kDirectory ? base::make_optional(std::vector<std::string>()) : base::nullopt); return; @@ -393,7 +390,9 @@ entries.push_back( CreateEntry(basename, child_url, - entry.type == filesystem::mojom::FsFileType::DIRECTORY)); + entry.type == filesystem::mojom::FsFileType::DIRECTORY + ? HandleType::kDirectory + : HandleType::kFile)); } (*listener)->DidReadDirectory(native_file_system_error::Ok(), std::move(entries), has_more_entries); @@ -455,8 +454,8 @@ NativeFileSystemEntryPtr NativeFileSystemDirectoryHandleImpl::CreateEntry( const std::string& basename, const storage::FileSystemURL& url, - bool is_directory) { - if (is_directory) { + HandleType handle_type) { + if (handle_type == HandleType::kDirectory) { return NativeFileSystemEntry::New( NativeFileSystemHandle::NewDirectory( manager()->CreateDirectoryHandle(context(), url, handle_state())),
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 061ffbb..022009a 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
@@ -97,7 +97,7 @@ blink::mojom::NativeFileSystemEntryPtr CreateEntry( const std::string& basename, const storage::FileSystemURL& url, - bool is_directory); + NativeFileSystemPermissionContext::HandleType handle_type); base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override;
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 6de257d..68d11bb 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
@@ -36,11 +36,7 @@ const BindingContext& context, const storage::FileSystemURL& url, const SharedHandleState& handle_state) - : NativeFileSystemHandleBase(manager, - context, - url, - handle_state, - /*is_directory=*/false) {} + : NativeFileSystemHandleBase(manager, context, url, handle_state) {} NativeFileSystemFileHandleImpl::~NativeFileSystemFileHandleImpl() = default; @@ -116,7 +112,7 @@ return; } - if (other->type() != NativeFileSystemTransferTokenImpl::HandleType::kFile) { + if (other->type() != NativeFileSystemPermissionContext::HandleType::kFile) { std::move(callback).Run(native_file_system_error::Ok(), false); return; }
diff --git a/content/browser/native_file_system/native_file_system_file_writer_impl.cc b/content/browser/native_file_system/native_file_system_file_writer_impl.cc index d7ce4e0..112d7c7 100644 --- a/content/browser/native_file_system/native_file_system_file_writer_impl.cc +++ b/content/browser/native_file_system/native_file_system_file_writer_impl.cc
@@ -89,11 +89,7 @@ const storage::FileSystemURL& swap_url, const SharedHandleState& handle_state, bool has_transient_user_activation) - : NativeFileSystemHandleBase(manager, - context, - url, - handle_state, - /*is_directory=*/false), + : NativeFileSystemHandleBase(manager, context, url, handle_state), swap_url_(swap_url), has_transient_user_activation_(has_transient_user_activation) { DCHECK_EQ(swap_url.type(), url.type());
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 a336416..060f2b9 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
@@ -17,8 +17,7 @@ NativeFileSystemManagerImpl* manager, const BindingContext& context, const storage::FileSystemURL& url, - const SharedHandleState& handle_state, - bool is_directory) + const SharedHandleState& handle_state) : manager_(manager), context_(context), url_(url),
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 72a88b5..50144d9 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
@@ -44,8 +44,7 @@ NativeFileSystemHandleBase(NativeFileSystemManagerImpl* manager, const BindingContext& context, const storage::FileSystemURL& url, - const SharedHandleState& handle_state, - bool is_directory); + const SharedHandleState& handle_state); ~NativeFileSystemHandleBase() override; const storage::FileSystemURL& url() const { return url_; }
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 0fbb5e1..a1bc5cc5 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
@@ -28,11 +28,7 @@ const BindingContext& context, const storage::FileSystemURL& url, const SharedHandleState& handle_state) - : NativeFileSystemHandleBase(manager, - context, - url, - handle_state, - /*is_directory=*/false) {} + : NativeFileSystemHandleBase(manager, context, url, handle_state) {} private: base::WeakPtr<NativeFileSystemHandleBase> AsWeakPtr() override {
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 e586e30..8adc48f 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
@@ -44,6 +44,7 @@ using SensitiveDirectoryResult = NativeFileSystemPermissionContext::SensitiveDirectoryResult; using storage::FileSystemContext; +using HandleType = NativeFileSystemPermissionContext::HandleType; namespace { @@ -96,11 +97,10 @@ return file.IsValid(); } -bool IsValidTransferToken( - NativeFileSystemTransferTokenImpl* token, - const url::Origin& expected_origin, - int process_id, - NativeFileSystemTransferTokenImpl::HandleType expected_handle_type) { +bool IsValidTransferToken(NativeFileSystemTransferTokenImpl* token, + const url::Origin& expected_origin, + int process_id, + HandleType expected_handle_type) { if (!token) { return false; } @@ -322,11 +322,9 @@ const storage::FileSystemURL& url = *resolved_token->GetAsFileSystemURL(); NativeFileSystemHandleData data; - data.set_handle_type( - resolved_token->type() == - NativeFileSystemTransferTokenImpl::HandleType::kFile - ? NativeFileSystemHandleData::kFile - : NativeFileSystemHandleData::kDirectory); + data.set_handle_type(resolved_token->type() == HandleType::kFile + ? NativeFileSystemHandleData::kFile + : NativeFileSystemHandleData::kDirectory); switch (url.type()) { case storage::kFileSystemTypeNativeLocal: { @@ -401,7 +399,9 @@ PermissionStatus::GRANTED); CreateTransferTokenImpl( url, SharedHandleState(permission_grant, permission_grant, {}), - data.handle_type() == NativeFileSystemHandleData::kDirectory, + data.handle_type() == NativeFileSystemHandleData::kDirectory + ? HandleType::kDirectory + : HandleType::kFile, std::move(token)); break; } @@ -418,13 +418,20 @@ const bool is_directory = data.handle_type() == NativeFileSystemHandleData::kDirectory; + // Permissions are scoped to |root_path|, rather than the individual + // handle. So if |relative_path| is not empty, this creates a + // SharedHandleState for a directory even if the handle represents a + // file. SharedHandleState handle_state = GetSharedHandleStateForPath( root_path, origin, std::move(root.file_system), - is_directory || !relative_path.empty(), + (is_directory || !relative_path.empty()) ? HandleType::kDirectory + : HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage); - CreateTransferTokenImpl(child, handle_state, is_directory, - std::move(token)); + CreateTransferTokenImpl( + child, handle_state, + is_directory ? HandleType::kDirectory : HandleType::kFile, + std::move(token)); break; } case NativeFileSystemHandleData::DATA_NOT_SET: @@ -450,7 +457,7 @@ SharedHandleState shared_handle_state = GetSharedHandleStateForPath( file_path, binding_context.origin, std::move(url.file_system), - /*is_directory=*/true, + HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen); return blink::mojom::NativeFileSystemEntry::New( @@ -526,12 +533,12 @@ void NativeFileSystemManagerImpl::CreateTransferTokenFromPath( const base::FilePath& file_path, - bool is_directory, + content::NativeFileSystemPermissionContext::HandleType handle_type, int renderer_id, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) { auto token_impl = NativeFileSystemTransferTokenImpl::CreateFromPath( - file_path, is_directory, this, std::move(receiver), renderer_id); + file_path, handle_type, this, std::move(receiver), renderer_id); auto token = token_impl->token(); transfer_tokens_.emplace(token, std::move(token_impl)); } @@ -541,16 +548,16 @@ mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) { return CreateTransferTokenImpl(file.url(), file.handle_state(), - /*is_directory=*/false, std::move(receiver)); + HandleType::kFile, std::move(receiver)); } void NativeFileSystemManagerImpl::CreateTransferTokenForTesting( const storage::FileSystemURL& url, const SharedHandleState& handle_state, - bool is_directory, + HandleType handle_type, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) { - return CreateTransferTokenImpl(url, handle_state, is_directory, + return CreateTransferTokenImpl(url, handle_state, handle_type, std::move(receiver)); } @@ -559,7 +566,7 @@ mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) { return CreateTransferTokenImpl(directory.url(), directory.handle_state(), - /*is_directory=*/true, std::move(receiver)); + HandleType::kDirectory, std::move(receiver)); } void NativeFileSystemManagerImpl::ResolveTransferToken( @@ -584,9 +591,8 @@ NativeFileSystemTransferTokenImpl* resolved_token) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!IsValidTransferToken( - resolved_token, binding_context.origin, binding_context.process_id(), - NativeFileSystemTransferTokenImpl::HandleType::kFile)) { + if (!IsValidTransferToken(resolved_token, binding_context.origin, + binding_context.process_id(), HandleType::kFile)) { // Fail silently. In practice, the NativeFileSystemManager should not // receive any invalid tokens. Before redeeming a token, the render process // performs an origin check to ensure the token is valid. Invalid tokens @@ -610,9 +616,9 @@ NativeFileSystemTransferTokenImpl* resolved_token) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!IsValidTransferToken( - resolved_token, binding_context.origin, binding_context.process_id(), - NativeFileSystemTransferTokenImpl::HandleType::kDirectory)) { + if (!IsValidTransferToken(resolved_token, binding_context.origin, + binding_context.process_id(), + HandleType::kDirectory)) { // Fail silently. See comment above in // DidResolveTransferTokenForFileHandle() for details. return; @@ -685,7 +691,8 @@ const bool is_directory = options.type() == blink::mojom::ChooseFileSystemEntryType::kOpenDirectory; permission_context_->ConfirmSensitiveDirectoryAccess( - binding_context.origin, entries_copy, is_directory, + binding_context.origin, entries_copy, + is_directory ? HandleType::kDirectory : HandleType::kFile, binding_context.frame_id, base::BindOnce( &NativeFileSystemManagerImpl::DidVerifySensitiveDirectoryAccess, @@ -801,13 +808,13 @@ void NativeFileSystemManagerImpl::CreateTransferTokenImpl( const storage::FileSystemURL& url, const SharedHandleState& handle_state, - bool is_directory, + HandleType handle_type, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); auto token_impl = NativeFileSystemTransferTokenImpl::Create( - url, handle_state, is_directory, this, std::move(receiver)); + url, handle_state, handle_type, this, std::move(receiver)); auto token = token_impl->token(); transfer_tokens_.emplace(token, std::move(token_impl)); } @@ -883,7 +890,7 @@ SharedHandleState shared_handle_state = GetSharedHandleStateForPath( file_path, binding_context.origin, std::move(url.file_system), - /*is_directory=*/false, user_action); + HandleType::kFile, user_action); return blink::mojom::NativeFileSystemEntry::New( blink::mojom::NativeFileSystemHandle::NewFile( @@ -896,14 +903,14 @@ const base::FilePath& path, const url::Origin& origin, storage::IsolatedContext::ScopedFSHandle file_system, - bool is_directory, + HandleType handle_type, NativeFileSystemPermissionContext::UserAction user_action) { scoped_refptr<NativeFileSystemPermissionGrant> read_grant, write_grant; if (permission_context_) { read_grant = permission_context_->GetReadPermissionGrant( - origin, path, is_directory, user_action); + origin, path, handle_type, user_action); write_grant = permission_context_->GetWritePermissionGrant( - origin, path, is_directory, user_action); + origin, path, handle_type, user_action); } else { // Auto-deny all write grants if no permisson context is available, unless // Experimental Web Platform features are enabled.
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 bec22cf9..33ede48 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
@@ -15,6 +15,7 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/native_file_system_entry_factory.h" #include "content/public/browser/native_file_system_permission_context.h" +#include "content/public/browser/native_file_system_permission_grant.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver_set.h" @@ -171,7 +172,7 @@ // and drop operations. void CreateTransferTokenFromPath( const base::FilePath& file_path, - bool is_directory, + NativeFileSystemPermissionContext::HandleType handle_type, int renderer_id, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver); @@ -180,7 +181,7 @@ void CreateTransferTokenForTesting( const storage::FileSystemURL& url, const SharedHandleState& handle_state, - bool is_directory, + NativeFileSystemPermissionContext::HandleType handle_type, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver); @@ -220,7 +221,7 @@ const base::FilePath& path, const url::Origin& origin, storage::IsolatedContext::ScopedFSHandle file_system, - bool is_directory, + NativeFileSystemPermissionContext::HandleType handle_type, NativeFileSystemPermissionContext::UserAction user_action); // Creates a FileSystemURL which corresponds to a FilePath and Origin. @@ -267,7 +268,7 @@ void CreateTransferTokenImpl( const storage::FileSystemURL& url, const SharedHandleState& handle_state, - bool is_directory, + NativeFileSystemPermissionContext::HandleType handle_type, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver); void DoResolveTransferToken(
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 index 64c8e1a0..39a9859d 100644 --- 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
@@ -34,6 +34,7 @@ using base::test::RunOnceCallback; using blink::mojom::PermissionStatus; +using HandleType = content::NativeFileSystemPermissionContext::HandleType; class NativeFileSystemManagerImplTest : public testing::Test { public: @@ -78,12 +79,12 @@ GetHandleForDirectory(const base::FilePath& path) { EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, path, /*is_directory=*/true, + kTestOrigin, path, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, path, /*is_directory=*/true, + kTestOrigin, path, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); @@ -181,12 +182,12 @@ EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(ask_grant_)); @@ -207,12 +208,12 @@ EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kSave)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kSave)) .WillOnce(testing::Return(allow_grant_)); @@ -233,12 +234,12 @@ EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, + kTestOrigin, kTestPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, + kTestOrigin, kTestPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(ask_grant_)); @@ -341,8 +342,7 @@ ASSERT_TRUE(token); ASSERT_TRUE(token->GetAsFileSystemURL()); EXPECT_EQ(test_file_url, *token->GetAsFileSystemURL()); - EXPECT_EQ(NativeFileSystemTransferTokenImpl::HandleType::kFile, - token->type()); + EXPECT_EQ(HandleType::kFile, token->type()); // Deserialized sandboxed filesystem handles should always be readable and // writable. @@ -368,8 +368,7 @@ ASSERT_TRUE(token); ASSERT_TRUE(token->GetAsFileSystemURL()); EXPECT_EQ(test_file_url, *token->GetAsFileSystemURL()); - EXPECT_EQ(NativeFileSystemTransferTokenImpl::HandleType::kDirectory, - token->type()); + EXPECT_EQ(HandleType::kDirectory, token->type()); // Deserialized sandboxed filesystem handles should always be readable and // writable. @@ -385,12 +384,12 @@ // Expect calls to get grants when creating the initial handle. EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); @@ -406,13 +405,13 @@ EXPECT_CALL( permission_context_, GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant_)); EXPECT_CALL( permission_context_, GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/false, + kTestOrigin, kTestPath, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant2_)); @@ -425,8 +424,7 @@ EXPECT_EQ(kTestPath, url.path()); EXPECT_EQ(storage::kFileSystemTypeNativeLocal, url.type()); EXPECT_EQ(storage::kFileSystemTypeIsolated, url.mount_type()); - EXPECT_EQ(NativeFileSystemTransferTokenImpl::HandleType::kFile, - token->type()); + EXPECT_EQ(HandleType::kFile, token->type()); EXPECT_EQ(ask_grant_, token->GetReadGrant()); EXPECT_EQ(ask_grant2_, token->GetWriteGrant()); } @@ -444,13 +442,13 @@ EXPECT_CALL( permission_context_, GetReadPermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, + kTestOrigin, kTestPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant_)); EXPECT_CALL( permission_context_, GetWritePermissionGrant( - kTestOrigin, kTestPath, /*is_directory=*/true, + kTestOrigin, kTestPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant2_)); @@ -463,8 +461,7 @@ EXPECT_EQ(kTestPath, url.path()); EXPECT_EQ(storage::kFileSystemTypeNativeLocal, url.type()); EXPECT_EQ(storage::kFileSystemTypeIsolated, url.mount_type()); - EXPECT_EQ(NativeFileSystemTransferTokenImpl::HandleType::kDirectory, - token->type()); + EXPECT_EQ(HandleType::kDirectory, token->type()); EXPECT_EQ(ask_grant_, token->GetReadGrant()); EXPECT_EQ(ask_grant2_, token->GetWriteGrant()); } @@ -501,13 +498,13 @@ EXPECT_CALL( permission_context_, GetReadPermissionGrant( - kTestOrigin, kDirectoryPath, /*is_directory=*/true, + kTestOrigin, kDirectoryPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant_)); EXPECT_CALL( permission_context_, GetWritePermissionGrant( - kTestOrigin, kDirectoryPath, /*is_directory=*/true, + kTestOrigin, kDirectoryPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant2_)); @@ -521,8 +518,7 @@ url.path()); EXPECT_EQ(storage::kFileSystemTypeNativeLocal, url.type()); EXPECT_EQ(storage::kFileSystemTypeIsolated, url.mount_type()); - EXPECT_EQ(NativeFileSystemTransferTokenImpl::HandleType::kFile, - token->type()); + EXPECT_EQ(HandleType::kFile, token->type()); EXPECT_EQ(ask_grant_, token->GetReadGrant()); EXPECT_EQ(ask_grant2_, token->GetWriteGrant()); } @@ -559,13 +555,13 @@ EXPECT_CALL( permission_context_, GetReadPermissionGrant( - kTestOrigin, kDirectoryPath, /*is_directory=*/true, + kTestOrigin, kDirectoryPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant_)); EXPECT_CALL( permission_context_, GetWritePermissionGrant( - kTestOrigin, kDirectoryPath, /*is_directory=*/true, + kTestOrigin, kDirectoryPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kLoadFromStorage)) .WillOnce(testing::Return(ask_grant2_)); @@ -578,8 +574,7 @@ EXPECT_EQ(kDirectoryPath.AppendASCII(kTestName), url.path()); EXPECT_EQ(storage::kFileSystemTypeNativeLocal, url.type()); EXPECT_EQ(storage::kFileSystemTypeIsolated, url.mount_type()); - EXPECT_EQ(NativeFileSystemTransferTokenImpl::HandleType::kDirectory, - token->type()); + EXPECT_EQ(HandleType::kDirectory, token->type()); EXPECT_EQ(ask_grant_, token->GetReadGrant()); EXPECT_EQ(ask_grant2_, token->GetWriteGrant()); } @@ -598,19 +593,19 @@ // NativeFileSystemManager::GetFileHandleFromToken. mojo::PendingRemote<blink::mojom::NativeFileSystemTransferToken> token_remote; manager_->CreateTransferTokenFromPath( - file_path, /*is_directory=*/false, kBindingContext.process_id(), + file_path, HandleType::kFile, kBindingContext.process_id(), token_remote.InitWithNewPipeAndPassReceiver()); // Expect permission requests when the token is sent to be redeemed. EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, file_path, /*is_directory=*/false, + kTestOrigin, file_path, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, file_path, /*is_directory=*/false, + kTestOrigin, file_path, HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); @@ -628,7 +623,7 @@ manager_->CreateTransferTokenForTesting( test_file_url.url, {allow_grant_, allow_grant_, test_file_url.file_system}, - /*is_directory=*/false, + HandleType::kFile, explicit_token_remote.InitWithNewPipeAndPassReceiver()); // Expect the explicitly defined file handle to be identical to the one @@ -658,7 +653,7 @@ // to redeem to the token. mojo::PendingRemote<blink::mojom::NativeFileSystemTransferToken> token_remote; manager_->CreateTransferTokenFromPath( - file_path, /*is_directory=*/false, + file_path, HandleType::kFile, /*renderer_id=*/kBindingContext.process_id() - 1, token_remote.InitWithNewPipeAndPassReceiver()); @@ -687,19 +682,19 @@ // NativeFileSystemManager::GetFileHandleFromToken. mojo::PendingRemote<blink::mojom::NativeFileSystemTransferToken> token_remote; manager_->CreateTransferTokenFromPath( - kDirPath, /*is_directory=*/true, kBindingContext.process_id(), + kDirPath, HandleType::kDirectory, kBindingContext.process_id(), token_remote.InitWithNewPipeAndPassReceiver()); // Expect permission requests when the token is sent to be redeemed. EXPECT_CALL(permission_context_, GetReadPermissionGrant( - kTestOrigin, kDirPath, /*is_directory=*/true, + kTestOrigin, kDirPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); EXPECT_CALL(permission_context_, GetWritePermissionGrant( - kTestOrigin, kDirPath, /*is_directory=*/true, + kTestOrigin, kDirPath, HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen)) .WillOnce(testing::Return(allow_grant_)); @@ -740,7 +735,7 @@ // to redeem to the transfer token. mojo::PendingRemote<blink::mojom::NativeFileSystemTransferToken> token_remote; manager_->CreateTransferTokenFromPath( - kDirPath, /*is_directory=*/true, + kDirPath, HandleType::kDirectory, /*renderer_id=*/kBindingContext.process_id() - 1, token_remote.InitWithNewPipeAndPassReceiver());
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 7095841..a9b73b5 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
@@ -9,6 +9,7 @@ #include "third_party/blink/public/mojom/native_file_system/native_file_system_directory_handle.mojom.h" namespace content { +using HandleType = NativeFileSystemPermissionContext::HandleType; namespace { @@ -24,11 +25,13 @@ NativeFileSystemTransferTokenImplForHandles( const storage::FileSystemURL& url, const NativeFileSystemManagerImpl::SharedHandleState& handle_state, - HandleType type, + HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) - : NativeFileSystemTransferTokenImpl(type, manager, std::move(receiver)), + : NativeFileSystemTransferTokenImpl(handle_type, + manager, + std::move(receiver)), url_(url), handle_state_(handle_state) { DCHECK_EQ(url_.mount_type() == storage::kFileSystemTypeIsolated, @@ -57,7 +60,7 @@ std::unique_ptr<NativeFileSystemFileHandleImpl> CreateFileHandle( const NativeFileSystemManagerImpl::BindingContext& binding_context) override { - DCHECK_EQ(type_, HandleType::kFile); + DCHECK_EQ(handle_type_, HandleType::kFile); return std::make_unique<NativeFileSystemFileHandleImpl>( manager_, binding_context, url_, handle_state_); } @@ -65,7 +68,7 @@ std::unique_ptr<NativeFileSystemDirectoryHandleImpl> CreateDirectoryHandle( const NativeFileSystemManagerImpl::BindingContext& binding_context) override { - DCHECK_EQ(type_, HandleType::kDirectory); + DCHECK_EQ(handle_type_, HandleType::kDirectory); return std::make_unique<NativeFileSystemDirectoryHandleImpl>( manager_, binding_context, url_, handle_state_); } @@ -116,14 +119,14 @@ std::unique_ptr<NativeFileSystemFileHandleImpl> CreateFileHandle( const NativeFileSystemManagerImpl::BindingContext& binding_context) override { - DCHECK_EQ(type_, HandleType::kFile); + DCHECK_EQ(handle_type_, HandleType::kFile); NativeFileSystemManagerImpl::FileSystemURLAndFSHandle url = manager_->CreateFileSystemURLFromPath(binding_context.origin, file_path_); NativeFileSystemManagerImpl::SharedHandleState shared_handle_state = manager_->GetSharedHandleStateForPath( file_path_, binding_context.origin, std::move(url.file_system), - /*is_directory=*/false, + HandleType::kFile, NativeFileSystemPermissionContext::UserAction::kOpen); return std::make_unique<NativeFileSystemFileHandleImpl>( manager_, binding_context, url.url, shared_handle_state); @@ -132,14 +135,14 @@ std::unique_ptr<NativeFileSystemDirectoryHandleImpl> CreateDirectoryHandle( const NativeFileSystemManagerImpl::BindingContext& binding_context) override { - DCHECK_EQ(type_, HandleType::kDirectory); + DCHECK_EQ(handle_type_, HandleType::kDirectory); NativeFileSystemManagerImpl::FileSystemURLAndFSHandle url = manager_->CreateFileSystemURLFromPath(binding_context.origin, file_path_); NativeFileSystemManagerImpl::SharedHandleState shared_handle_state = manager_->GetSharedHandleStateForPath( file_path_, binding_context.origin, url.file_system, - /*is_directory=*/true, + HandleType::kDirectory, NativeFileSystemPermissionContext::UserAction::kOpen); return std::make_unique<NativeFileSystemDirectoryHandleImpl>( manager_, binding_context, url.url, shared_handle_state); @@ -156,34 +159,34 @@ NativeFileSystemTransferTokenImpl::Create( const storage::FileSystemURL& url, const NativeFileSystemManagerImpl::SharedHandleState& handle_state, - bool is_directory, + HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) { return std::make_unique<NativeFileSystemTransferTokenImplForHandles>( - url, handle_state, - is_directory ? HandleType::kDirectory : HandleType::kFile, manager, - std::move(receiver)); + url, handle_state, handle_type, manager, std::move(receiver)); } // static std::unique_ptr<NativeFileSystemTransferTokenImpl> NativeFileSystemTransferTokenImpl::CreateFromPath( const base::FilePath file_path, - bool is_directory, + HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver, int renderer_process_id) { return std::make_unique<NativeFileSystemTransferTokenFromPath>( - file_path, is_directory ? HandleType::kDirectory : HandleType::kFile, - manager, std::move(receiver), renderer_process_id); + file_path, handle_type, manager, std::move(receiver), + renderer_process_id); } NativeFileSystemTransferTokenImpl::NativeFileSystemTransferTokenImpl( - HandleType type, + HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver) - : token_(base::UnguessableToken::Create()), type_(type), manager_(manager) { + : token_(base::UnguessableToken::Create()), + handle_type_(handle_type), + manager_(manager) { DCHECK(manager_); receivers_.set_disconnect_handler(
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 7010e5b8..7170677 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
@@ -22,8 +22,6 @@ class CONTENT_EXPORT NativeFileSystemTransferTokenImpl : public blink::mojom::NativeFileSystemTransferToken { public: - enum class HandleType { kFile, kDirectory }; - // Create a token that is tied to a particular origin (the origin of |url|, // and uses the permission grants in |handle_state| when creating new handles // out of the token. This is used for postMessage and IndexedDB serialization, @@ -31,7 +29,7 @@ static std::unique_ptr<NativeFileSystemTransferTokenImpl> Create( const storage::FileSystemURL& url, const NativeFileSystemManagerImpl::SharedHandleState& handle_state, - bool is_directory, + NativeFileSystemPermissionContext::HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver); @@ -39,21 +37,23 @@ // Create a token that is not associated with any origin. static std::unique_ptr<NativeFileSystemTransferTokenImpl> CreateFromPath( const base::FilePath file_path, - bool is_directory, + NativeFileSystemPermissionContext::HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver, int renderer_process_id); NativeFileSystemTransferTokenImpl( - HandleType type, + NativeFileSystemPermissionContext::HandleType handle_type, NativeFileSystemManagerImpl* manager, mojo::PendingReceiver<blink::mojom::NativeFileSystemTransferToken> receiver); ~NativeFileSystemTransferTokenImpl() override; const base::UnguessableToken& token() const { return token_; } - HandleType type() const { return type_; } + NativeFileSystemPermissionContext::HandleType type() const { + return handle_type_; + } // Returns true if |origin| is allowed to use this token. Where the transfer // token isn't associated with an origin, |process_id| is checked. @@ -81,7 +81,7 @@ protected: const base::UnguessableToken token_; - const HandleType type_; + const NativeFileSystemPermissionContext::HandleType handle_type_; // Raw pointer since NativeFileSystemManagerImpl owns |this|. NativeFileSystemManagerImpl* const manager_;
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc index 0a3853b2..f52ebfc 100644 --- a/content/browser/service_worker/service_worker_context_wrapper.cc +++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -579,6 +579,28 @@ return false; } +void ServiceWorkerContextWrapper::GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) { + RunOrPostTaskOnCoreThread( + FROM_HERE, base::BindOnce(&ServiceWorkerContextWrapper:: + GetInstalledRegistrationOriginsOnCoreThread, + this, host_filter, std::move(callback), + base::ThreadTaskRunnerHandle::Get())); +} + +void ServiceWorkerContextWrapper::GetInstalledRegistrationOriginsOnCoreThread( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback, + scoped_refptr<base::SingleThreadTaskRunner> task_runner_for_callback) { + DCHECK_CURRENTLY_ON(GetCoreThreadId()); + + context()->registry()->storage()->GetRegisteredOrigins(base::BindOnce( + &ServiceWorkerContextWrapper:: + DidGetRegisteredOriginsForGetInstalledRegistrationOrigins, + host_filter, std::move(callback), task_runner_for_callback)); +} + void ServiceWorkerContextWrapper::GetAllOriginsInfo( GetUsageInfoCallback callback) { RunOrPostTaskOnCoreThread( @@ -1115,28 +1137,6 @@ context_core_->registry()->GetAllRegistrationsInfos(std::move(callback)); } -void ServiceWorkerContextWrapper::GetInstalledRegistrationOrigins( - base::Optional<std::string> host_filter, - GetInstalledRegistrationOriginsCallback callback) { - RunOrPostTaskOnCoreThread( - FROM_HERE, base::BindOnce(&ServiceWorkerContextWrapper:: - GetInstalledRegistrationOriginsOnCoreThread, - this, host_filter, std::move(callback), - base::ThreadTaskRunnerHandle::Get())); -} - -void ServiceWorkerContextWrapper::GetInstalledRegistrationOriginsOnCoreThread( - base::Optional<std::string> host_filter, - GetInstalledRegistrationOriginsCallback callback, - scoped_refptr<base::SingleThreadTaskRunner> task_runner_for_callback) { - DCHECK_CURRENTLY_ON(GetCoreThreadId()); - - context()->registry()->storage()->GetRegisteredOrigins(base::BindOnce( - &ServiceWorkerContextWrapper:: - DidGetRegisteredOriginsForGetInstalledRegistrationOrigins, - host_filter, std::move(callback), task_runner_for_callback)); -} - void ServiceWorkerContextWrapper::GetStorageUsageForOrigin( const url::Origin& origin, GetStorageUsageForOriginCallback callback) {
diff --git a/content/browser/service_worker/service_worker_context_wrapper.h b/content/browser/service_worker/service_worker_context_wrapper.h index afe08bf..9d83d699 100644 --- a/content/browser/service_worker/service_worker_context_wrapper.h +++ b/content/browser/service_worker/service_worker_context_wrapper.h
@@ -168,6 +168,9 @@ const GURL& url, CountExternalRequestsCallback callback) override; bool MaybeHasRegistrationForOrigin(const url::Origin& origin) override; + void GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) override; void GetAllOriginsInfo(GetUsageInfoCallback callback) override; void DeleteForOrigin(const GURL& origin, ResultCallback callback) override; void PerformStorageCleanup(base::OnceClosure callback) override; @@ -309,16 +312,6 @@ const std::string& key_prefix, StatusCallback callback); - // Returns a set of origins which have at least one stored registration. - // The set doesn't include installing/uninstalling/uninstalled registrations. - // When |host_filter| is specified the set only includes origins whose host - // matches |host_filter|. - // This function can be called from any thread and the callback is called on - // that thread. - void GetInstalledRegistrationOrigins( - base::Optional<std::string> host_filter, - GetInstalledRegistrationOriginsCallback callback); - // Returns total resource size stored in the storage for |origin|. // This can be called from any thread and the callback is called on that // thread.
diff --git a/content/public/browser/native_file_system_permission_context.h b/content/public/browser/native_file_system_permission_context.h index ebad6b1..6c81fe2 100644 --- a/content/public/browser/native_file_system_permission_context.h +++ b/content/public/browser/native_file_system_permission_context.h
@@ -37,11 +37,15 @@ kLoadFromStorage, }; + // This enum helps distinguish between file or directory Native File System + // handles. + enum class HandleType { kFile, kDirectory }; + // Returns the read permission grant to use for a particular path. virtual scoped_refptr<NativeFileSystemPermissionGrant> GetReadPermissionGrant( const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) = 0; // Returns the permission grant to use for a particular path. This could be a @@ -52,7 +56,7 @@ virtual scoped_refptr<NativeFileSystemPermissionGrant> GetWritePermissionGrant(const url::Origin& origin, const base::FilePath& path, - bool is_directory, + HandleType handle_type, UserAction user_action) = 0; // Displays a dialog to confirm that the user intended to give read access to @@ -80,7 +84,7 @@ virtual void ConfirmSensitiveDirectoryAccess( const url::Origin& origin, const std::vector<base::FilePath>& paths, - bool is_directory, + HandleType handle_type, GlobalFrameRoutingId frame_id, base::OnceCallback<void(SensitiveDirectoryResult)> callback) = 0;
diff --git a/content/public/browser/service_worker_context.h b/content/public/browser/service_worker_context.h index 6ad8029..9610c55 100644 --- a/content/public/browser/service_worker_context.h +++ b/content/public/browser/service_worker_context.h
@@ -67,6 +67,9 @@ public: using ResultCallback = base::OnceCallback<void(bool success)>; + using GetInstalledRegistrationOriginsCallback = + base::OnceCallback<void(const std::set<url::Origin>& origins)>; + using GetUsageInfoCallback = base::OnceCallback<void(const std::vector<StorageUsageInfo>& usage_info)>; @@ -165,6 +168,16 @@ // Must be called on the UI thread. virtual bool MaybeHasRegistrationForOrigin(const url::Origin& origin) = 0; + // Returns a set of origins which have at least one stored registration. + // The set doesn't include installing/uninstalling/uninstalled registrations. + // When |host_filter| is specified the set only includes origins whose host + // matches |host_filter|. + // This function can be called from any thread and the callback is called on + // that thread. + virtual void GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) = 0; + // May be called from any thread, and the callback is called on that thread. virtual void GetAllOriginsInfo(GetUsageInfoCallback callback) = 0;
diff --git a/content/public/test/fake_service_worker_context.cc b/content/public/test/fake_service_worker_context.cc index acb539b..8b45710 100644 --- a/content/public/test/fake_service_worker_context.cc +++ b/content/public/test/fake_service_worker_context.cc
@@ -59,6 +59,11 @@ const url::Origin& origin) { return registered_origins_.find(origin) != registered_origins_.end(); } +void FakeServiceWorkerContext::GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) { + NOTREACHED(); +} void FakeServiceWorkerContext::GetAllOriginsInfo( GetUsageInfoCallback callback) { NOTREACHED();
diff --git a/content/public/test/fake_service_worker_context.h b/content/public/test/fake_service_worker_context.h index 7ee08ce..8c2663e9 100644 --- a/content/public/test/fake_service_worker_context.h +++ b/content/public/test/fake_service_worker_context.h
@@ -49,6 +49,9 @@ const GURL& url, CountExternalRequestsCallback callback) override; bool MaybeHasRegistrationForOrigin(const url::Origin& origin) override; + void GetInstalledRegistrationOrigins( + base::Optional<std::string> host_filter, + GetInstalledRegistrationOriginsCallback callback) override; void GetAllOriginsInfo(GetUsageInfoCallback callback) override; void DeleteForOrigin(const GURL& origin, ResultCallback callback) override; void PerformStorageCleanup(base::OnceClosure callback) override;
diff --git a/docs/chromedriver_status.md b/docs/chromedriver_status.md index c94b8b1..b4cf87a 100644 --- a/docs/chromedriver_status.md +++ b/docs/chromedriver_status.md
@@ -1,6 +1,6 @@ # WebDriver Status -Below is a list of all WebDriver commands and their current support in ChromeDriver based on what is in the [WebDriver Specification](https://w3c.github.io/webdriver/webdriver-spec.html). +Below is a list of all WebDriver commands and their current support in ChromeDriver based on what is in the [WebDriver Specification](https://w3c.github.io/webdriver/). | Method | URL | Command | Status | Bug | --- | --- | --- | --- | --- |
diff --git a/media/gpu/vaapi/vaapi_video_decoder.cc b/media/gpu/vaapi/vaapi_video_decoder.cc index 48b9092..ac23793 100644 --- a/media/gpu/vaapi/vaapi_video_decoder.cc +++ b/media/gpu/vaapi/vaapi_video_decoder.cc
@@ -393,15 +393,16 @@ VLOGF(2); const gfx::Rect visible_rect = decoder_->GetVisibleRect(); - gfx::Size natural_size = GetNaturalSize(visible_rect, pixel_aspect_ratio_); - pic_size_ = decoder_->GetPicSize(); + const gfx::Size natural_size = + GetNaturalSize(visible_rect, pixel_aspect_ratio_); + const gfx::Size pic_size = decoder_->GetPicSize(); const base::Optional<VideoPixelFormat> format = GfxBufferFormatToVideoPixelFormat( GetBufferFormat(decoder_->GetProfile())); CHECK(format); auto format_fourcc = Fourcc::FromVideoPixelFormat(*format); CHECK(format_fourcc); - if (!frame_pool_->Initialize(*format_fourcc, pic_size_, visible_rect, + if (!frame_pool_->Initialize(*format_fourcc, pic_size, visible_rect, natural_size, decoder_->GetRequiredNumOfPictures())) { DLOG(WARNING) << "Failed Initialize()ing the frame pool."; @@ -427,7 +428,7 @@ vaapi_wrapper_->DestroyContext(); } - vaapi_wrapper_->CreateContext(pic_size_); + vaapi_wrapper_->CreateContext(pic_size); // If we reset during resolution change, then there is no decode tasks. In // this case we do nothing and wait for next input. Otherwise, continue @@ -536,8 +537,6 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(decoder_sequence_checker_); DVLOGF(3); - pic_size_ = gfx::Size(); - if (profile_ >= H264PROFILE_MIN && profile_ <= H264PROFILE_MAX) { auto accelerator = std::make_unique<H264VaapiVideoDecoderDelegate>(this, vaapi_wrapper_);
diff --git a/media/gpu/vaapi/vaapi_video_decoder.h b/media/gpu/vaapi/vaapi_video_decoder.h index d7a4d3e..cd211fff 100644 --- a/media/gpu/vaapi/vaapi_video_decoder.h +++ b/media/gpu/vaapi/vaapi_video_decoder.h
@@ -139,9 +139,6 @@ // Color space of the video frame. VideoColorSpace color_space_; - // The video coded size. - gfx::Size pic_size_; - // Ratio of natural size to |visible_rect_| of the output frames. double pixel_aspect_ratio_ = 0.0;
diff --git a/ppapi/shared_impl/BUILD.gn b/ppapi/shared_impl/BUILD.gn index 41e16866..110d2e2 100644 --- a/ppapi/shared_impl/BUILD.gn +++ b/ppapi/shared_impl/BUILD.gn
@@ -203,7 +203,7 @@ } if (is_mac) { - libs = [ "QuartzCore.framework" ] + frameworks = [ "QuartzCore.framework" ] } }
diff --git a/testing/buildbot/chromium.ci.json b/testing/buildbot/chromium.ci.json index 832f38e..9776eef 100644 --- a/testing/buildbot/chromium.ci.json +++ b/testing/buildbot/chromium.ci.json
@@ -123,7 +123,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -345,7 +345,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -407,7 +407,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -759,7 +759,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -821,7 +821,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -1189,7 +1189,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -1536,7 +1536,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -1941,7 +1941,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -2004,7 +2004,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -2378,7 +2378,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -2439,7 +2439,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -5886,7 +5886,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" } ] }, @@ -6264,7 +6264,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" } ] }, @@ -6396,7 +6396,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" } ] }, @@ -7002,7 +7002,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -8059,7 +8059,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -9261,7 +9261,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -9828,7 +9828,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -21076,7 +21076,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -21398,7 +21398,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -21720,7 +21720,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -22042,7 +22042,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -22373,7 +22373,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -22682,7 +22682,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -23007,7 +23007,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -23316,7 +23316,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -23651,7 +23651,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -23948,7 +23948,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -24266,7 +24266,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -24584,7 +24584,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -24902,7 +24902,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -25222,7 +25222,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -25538,7 +25538,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -25854,7 +25854,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -26170,7 +26170,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -39995,7 +39995,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -90008,7 +90008,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -91623,7 +91623,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -92132,7 +92132,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -134931,7 +134931,7 @@ "expiration": 21600, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -136637,7 +136637,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -137581,7 +137581,7 @@ "expiration": 14400, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -139396,7 +139396,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -141223,7 +141223,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -152276,7 +152276,7 @@ "expiration": 21600, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json index 93e90c1..fb4121e 100644 --- a/testing/buildbot/chromium.dawn.json +++ b/testing/buildbot/chromium.dawn.json
@@ -264,7 +264,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -586,7 +586,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -908,7 +908,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -1230,7 +1230,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -1561,7 +1561,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -1870,7 +1870,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -2195,7 +2195,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -2504,7 +2504,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -2839,7 +2839,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -3136,7 +3136,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -3454,7 +3454,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -3772,7 +3772,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -4090,7 +4090,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -4410,7 +4410,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -4726,7 +4726,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -5042,7 +5042,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [ @@ -5358,7 +5358,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:dawn_perf_tests/" + "test_id_prefix": "ninja://third_party/dawn/src/tests:dawn_perf_tests/" }, { "args": [
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json index 2f6e875..304bfcf 100644 --- a/testing/buildbot/chromium.gpu.fyi.json +++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -123,7 +123,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -345,7 +345,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -407,7 +407,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -759,7 +759,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -821,7 +821,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -1189,7 +1189,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -1536,7 +1536,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -1941,7 +1941,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -2004,7 +2004,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -2378,7 +2378,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -2439,7 +2439,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [ @@ -2768,7 +2768,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" } ] }, @@ -3146,7 +3146,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" } ] }, @@ -3278,7 +3278,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" } ] }, @@ -3884,7 +3884,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -4941,7 +4941,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -6143,7 +6143,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -6710,7 +6710,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -11884,7 +11884,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -21399,7 +21399,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -23014,7 +23014,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -23523,7 +23523,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -24986,7 +24986,7 @@ "expiration": 21600, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -26692,7 +26692,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -27636,7 +27636,7 @@ "expiration": 14400, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -29451,7 +29451,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -31278,7 +31278,7 @@ ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:angle_perftests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:angle_perftests/" }, { "args": [ @@ -31946,7 +31946,7 @@ "expiration": 21600, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, - "test_id_prefix": "ninja://chrome/test:standalone_angle_unittests/" + "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_unittests/" }, { "args": [
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl index a27a02f..c00f9281 100644 --- a/testing/buildbot/gn_isolate_map.pyl +++ b/testing/buildbot/gn_isolate_map.pyl
@@ -152,7 +152,7 @@ "--test-launcher-jobs=1", "--test-launcher-retry-limit=0", ], - "label": "//chrome/test:angle_perftests", + "label": "//third_party/angle/src/tests:angle_perftests", "script": "//testing/scripts/run_performance_tests.py", "type": "script", }, @@ -701,7 +701,7 @@ "--test-launcher-jobs=1", "--test-launcher-retry-limit=0", ], - "label": "//chrome/test:dawn_perf_tests", + "label": "//third_party/dawn/src/tests:dawn_perf_tests", "script": "//testing/scripts/run_performance_tests.py", "type": "script", }, @@ -1534,7 +1534,7 @@ "args": [ "standalone_angle_unittests", ], - "label": "//chrome/test:standalone_angle_unittests", + "label": "//third_party/angle/src/tests:standalone_angle_unittests", "type": "script", "script": "//testing/scripts/run_gtest_angle_test.py", },
diff --git a/testing/scripts/run_gtest_angle_test.py b/testing/scripts/run_gtest_angle_test.py deleted file mode 100755 index 069972a..0000000 --- a/testing/scripts/run_gtest_angle_test.py +++ /dev/null
@@ -1,133 +0,0 @@ -#!/usr/bin/env python -# Copyright 2020 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. - -"""Runs an isolated non-Telemetry ANGLE test. - -The main contract is that the caller passes the arguments: - - --isolated-script-test-output=[FILENAME] -json is written to that file in the format: -https://chromium.googlesource.com/chromium/src/+/master/docs/testing/json_test_results_format.md - -Optional argument: - - --isolated-script-test-filter=[TEST_NAMES] - -is a double-colon-separated ("::") list of test names, to run just that subset -of tests. This list is parsed by this harness and sent down via the ---gtest_filter argument. - -This script is intended to be the base command invoked by the isolate, -followed by a subsequent non-python executable. For a similar script see -run_performance_test.py. - -# TODO(jmadill): Move this into the ANGLE repo. http://anglebug.com/3162 -""" - -import argparse -import json -import os -import shutil -import sys -import tempfile -import traceback - -import common - -# Add src/testing/ into sys.path for importing xvfb and test_env. -sys.path.append(os.path.join(os.path.dirname(__file__), '..')) -import xvfb -import test_env - -# Unfortunately we need to copy these variables from ../test_env.py. -# Importing it and using its get_sandbox_env breaks test runs on Linux -# (it seems to unset DISPLAY). -CHROME_SANDBOX_ENV = 'CHROME_DEVEL_SANDBOX' -CHROME_SANDBOX_PATH = '/opt/chromium/chrome_sandbox' - - -def IsWindows(): - return sys.platform == 'cygwin' or sys.platform.startswith('win') - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('executable', help='Test executable.') - parser.add_argument('--isolated-script-test-output', type=str, - required=True) - parser.add_argument('--isolated-script-test-perf-output', type=str, - required=False) - parser.add_argument('--isolated-script-test-filter', type=str, - required=False) - parser.add_argument('--xvfb', help='Start xvfb.', action='store_true') - - args, extra_flags = parser.parse_known_args() - - env = os.environ.copy() - - # total_shards = None - # shard_index = None - if 'GTEST_TOTAL_SHARDS' in env: - extra_flags += ['--shard-count=%d' % env['GTEST_TOTAL_SHARDS']] - if 'GTEST_SHARD_INDEX' in env: - extra_flags += ['--shard-index=%d' % env['GTEST_SHARD_INDEX']] - - # Assume we want to set up the sandbox environment variables all the - # time; doing so is harmless on non-Linux platforms and is needed - # all the time on Linux. - env[CHROME_SANDBOX_ENV] = CHROME_SANDBOX_PATH - - rc = 0 - try: - # Consider adding stdio control flags. - if args.isolated_script_test_output: - extra_flags.append('--results-file=%s' % - args.isolated_script_test_output) - - if args.isolated_script_test_perf_output: - extra_flags.append('--histogram-json-file=%s' % - args.isolated_script_test_perf_output) - - if args.isolated_script_test_filter: - filter_list = common.extract_filter_list( - args.isolated_script_test_filter) - extra_flags.append('--gtest_filter=' + ':'.join(filter_list)) - - if IsWindows(): - args.executable = '.\\%s.exe' % args.executable - else: - args.executable = './%s' % args.executable - with common.temporary_file() as tempfile_path: - env['CHROME_HEADLESS'] = '1' - cmd = [args.executable] + extra_flags - - if args.xvfb: - rc = xvfb.run_executable(cmd, env, stdoutfile=tempfile_path) - else: - rc = test_env.run_command_with_output( - cmd, env=env, stdoutfile=tempfile_path) - - except Exception: - traceback.print_exc() - rc = 1 - - return rc - - -# This is not really a "script test" so does not need to manually add -# any additional compile targets. -def main_compile_targets(args): - json.dump([], args.output) - - -if __name__ == '__main__': - # Conform minimally to the protocol defined by ScriptTest. - if 'compile_targets' in sys.argv: - funcs = { - 'run': None, - 'compile_targets': main_compile_targets, - } - sys.exit(common.run_script(sys.argv[1:], funcs)) - sys.exit(main())
diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h index f55e4e3..ece9014 100644 --- a/third_party/blink/renderer/core/css/style_engine.h +++ b/third_party/blink/renderer/core/css/style_engine.h
@@ -387,6 +387,7 @@ } bool NeedsFullStyleUpdate() const; + void UpdateViewport(); void UpdateViewportStyle(); void UpdateStyleAndLayoutTree(); void RecalcStyle(); @@ -486,7 +487,6 @@ InvalidationScope invalidation_scope); void InvalidateInitialData(); - void UpdateViewport(); void UpdateActiveUserStyleSheets(); void UpdateActiveStyleSheets(); void UpdateGlobalRuleSet() {
diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc index 35b5fd3..ec1ab42 100644 --- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc +++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc
@@ -36,7 +36,7 @@ #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/core/css/media_values_cached.h" -#include "third_party/blink/renderer/core/css/resolver/style_resolver.h" +#include "third_party/blink/renderer/core/css/style_engine.h" #include "third_party/blink/renderer/core/dom/document_fragment.h" #include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/core/frame/local_frame.h" @@ -1020,10 +1020,10 @@ DCHECK(GetDocument()); have_background_parser_ = true; - // Make sure that a resolver is set up, so that the correct viewport + // Make sure that the viewport is up-to-date, so that the correct viewport // dimensions will be fed to the background parser and preload scanner. if (GetDocument()->Loader()) - GetDocument()->EnsureStyleResolver(); + GetDocument()->GetStyleEngine().UpdateViewport(); std::unique_ptr<BackgroundHTMLParser::Configuration> config = std::make_unique<BackgroundHTMLParser::Configuration>();
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc index 39db49cc..6607eb8 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.cc
@@ -530,30 +530,25 @@ // relative to |this|. contents_rect.offset -= OffsetInContainerBlock(); - // Compute the self ink overflow. - PhysicalRect self_rect; if (Type() == kLine) { // Line boxes don't have self overflow. Compute content overflow only. *self_and_contents_rect_out = contents_rect; - } else if (Type() == kBox) { - if (const NGPhysicalBoxFragment* box_fragment = BoxFragment()) { - DCHECK(box_fragment->IsInlineBox()); - self_rect = box_fragment->ComputeSelfInkOverflow(); - } else { - NOTREACHED(); - } - *self_and_contents_rect_out = UnionRect(self_rect, contents_rect); - } else { - NOTREACHED(); - } - - DCHECK(IsContainer()); - if (LocalRect().Contains(*self_and_contents_rect_out)) { - ink_overflow_type_ = ink_overflow_.Reset(InkOverflowType()); + ink_overflow_type_ = + ink_overflow_.SetContents(InkOverflowType(), contents_rect, Size()); return; } - ink_overflow_type_ = - ink_overflow_.Set(InkOverflowType(), self_rect, contents_rect, Size()); + + if (const NGPhysicalBoxFragment* box_fragment = BoxFragment()) { + DCHECK(box_fragment->IsInlineBox()); + // Compute the self ink overflow. + PhysicalRect self_rect = box_fragment->ComputeSelfInkOverflow(); + *self_and_contents_rect_out = UnionRect(self_rect, contents_rect); + ink_overflow_type_ = + ink_overflow_.Set(InkOverflowType(), self_rect, contents_rect, Size()); + return; + } + + NOTREACHED(); } void NGFragmentItem::SetDeltaToNextForSameLayoutObject(wtf_size_t delta) const {
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc index 08b8f0b0..393972a 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc
@@ -190,7 +190,7 @@ if (!ink_overflow_computed_or_mathml_paint_info_) ComputeSelfInkOverflow(); if (ink_overflow_) - return ink_overflow_->self_ink_overflow; + return ink_overflow_->ink_overflow; return LocalRect(); } @@ -209,9 +209,9 @@ return; } if (ink_overflow_) - ink_overflow_->self_ink_overflow = *ink_overflow; + ink_overflow_->ink_overflow = *ink_overflow; else - ink_overflow_ = std::make_unique<NGSelfInkOverflow>(*ink_overflow); + ink_overflow_ = std::make_unique<NGSingleInkOverflow>(*ink_overflow); } scoped_refptr<const NGPhysicalTextFragment>
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h b/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h index 442f8bf..f682eab 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h
@@ -139,7 +139,7 @@ // Fragments are immutable but allow certain expensive data, specifically ink // overflow, to be cached as long as it is guaranteed to always recompute to // the same value. - mutable std::unique_ptr<NGSelfInkOverflow> ink_overflow_; + mutable std::unique_ptr<NGSingleInkOverflow> ink_overflow_; friend class NGTextFragmentBuilder; };
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc index c4a6d74..621ab54 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.h" +#include <tuple> #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_logical_line_item.h" @@ -13,18 +14,20 @@ namespace blink { -PhysicalRect AdjustTextRectForEmHeight(const PhysicalRect& rect, - const ComputedStyle& style, - WritingMode writing_mode) { +namespace { + +std::tuple<LayoutUnit, LayoutUnit> AdjustTextOverUnderOffsetsForEmHeight( + LayoutUnit over, + LayoutUnit under, + const ComputedStyle& style) { + DCHECK_LE(over, under); const SimpleFontData* font_data = style.GetFont().PrimaryFont(); if (!font_data) - return rect; + return std::make_pair(over, under); const auto font_baseline = style.GetFontBaseline(); const LayoutUnit ascent = font_data->GetFontMetrics().FixedAscent(font_baseline); - const LayoutUnit line_height = IsHorizontalWritingMode(writing_mode) - ? rect.size.height - : rect.size.width; + const LayoutUnit line_height = under - over; // Gap amount to avoid too dense result. // TODO(crbug.com/1082087): Adjust the value. constexpr int kGapPx = 1; @@ -36,7 +39,23 @@ LayoutUnit under_diff((line_height - ascent) - font_data->EmHeightDescent(font_baseline) - kGapPx); under_diff = LayoutUnit(under_diff.ClampNegativeToZero().Floor()); - const LayoutUnit new_line_height = line_height - over_diff - under_diff; + return std::make_tuple(over + over_diff, under - under_diff); +} + +} // anonymous namespace + +PhysicalRect AdjustTextRectForEmHeight(const PhysicalRect& rect, + const ComputedStyle& style, + WritingMode writing_mode) { + const LayoutUnit line_height = IsHorizontalWritingMode(writing_mode) + ? rect.size.height + : rect.size.width; + LayoutUnit over, under; + std::tie(over, under) = + AdjustTextOverUnderOffsetsForEmHeight(LayoutUnit(), line_height, style); + const LayoutUnit over_diff = over; + const LayoutUnit under_diff = line_height - under; + const LayoutUnit new_line_height = under - over; if (IsHorizontalWritingMode(writing_mode)) { return {{rect.offset.left, rect.offset.top + over_diff}, @@ -259,13 +278,12 @@ LayoutUnit line_over, const ComputedStyle& line_style) { DCHECK(RuntimeEnabledFeatures::LayoutNGRubyEnabled()); - // Min/max position of content without line-height. + // Min/max position of content and annotations, ignoring line-height. LayoutUnit content_over = line_over + line_box_metrics.ascent; LayoutUnit content_under = content_over; - // Min/max position of annotations. - LayoutUnit annotation_over = content_over; - LayoutUnit annotation_under = content_over; + bool has_over_annotation = false; + bool has_under_annotation = false; const LayoutUnit line_under = line_over + line_box_metrics.LineHeight(); bool has_over_emphasis = false; @@ -273,8 +291,50 @@ for (const NGLogicalLineItem& item : logical_line) { if (item.HasInFlowFragment()) { if (!item.IsControl()) { - content_over = std::min(content_over, item.BlockOffset()); - content_under = std::max(content_under, item.BlockEndOffset()); + LayoutUnit item_over = item.BlockOffset(); + LayoutUnit item_under = item.BlockEndOffset(); + if (item.fragment || item.shape_result) { + if (const auto* style = item.Style()) { + std::tie(item_over, item_under) = + AdjustTextOverUnderOffsetsForEmHeight(item_over, item_under, + *style); + } + } else { + const auto* fragment = item.PhysicalFragment(); + if (fragment && fragment->IsRubyRun()) { + PhysicalRect rect = + To<NGPhysicalBoxFragment>(fragment)->ScrollableOverflow( + NGPhysicalFragment::kEmHeight); + LayoutUnit block_size; + if (IsHorizontalWritingMode(line_style.GetWritingMode())) { + item_under = item_over + rect.Bottom(); + item_over += rect.offset.top; + block_size = fragment->Size().height; + } else { + block_size = fragment->Size().width; + // We assume 'over' is always on right in vertical writing modes. + // TODO(layout-dev): sideways-lr support. + DCHECK(line_style.IsFlippedBlocksWritingMode() || + line_style.IsFlippedLinesWritingMode()); + item_under = item_over + block_size; + item_over = item_under - rect.Right(); + item_under -= rect.offset.left; + } + + // Check if we really have an annotation. + if (const auto* layout_result = item.layout_result.get()) { + LayoutUnit overflow = layout_result->AnnotationOverflow(); + if (IsFlippedLinesWritingMode(line_style.GetWritingMode())) + overflow = -overflow; + if (overflow < LayoutUnit()) + has_over_annotation = true; + else if (overflow > LayoutUnit()) + has_under_annotation = true; + } + } + } + content_over = std::min(content_over, item_over); + content_under = std::max(content_under, item_under); } if (const auto* style = item.Style()) { if (style->GetTextEmphasisMark() != TextEmphasisMark::kNone) { @@ -285,27 +345,6 @@ } } } - - // Accumulate |AnnotationOverflow| from ruby runs. All ruby run items have - // |layout_result|. - const NGLayoutResult* layout_result = item.layout_result.get(); - if (!layout_result) - continue; - LayoutUnit overflow = layout_result->AnnotationOverflow(); - if (IsFlippedLinesWritingMode(line_style.GetWritingMode())) - overflow = -overflow; - if (overflow < LayoutUnit()) { - annotation_over = - std::min(annotation_over, item.rect.offset.block_offset + overflow); - } else if (overflow > LayoutUnit()) { - const LayoutUnit logical_bottom = - item.rect.offset.block_offset + - layout_result->PhysicalFragment() - .Size() - .ConvertToLogical(line_style.GetWritingMode()) - .block_size; - annotation_under = std::max(annotation_under, logical_bottom + overflow); - } } // Probably this is an empty line. We should secure font-size space. @@ -321,21 +360,22 @@ // TODO(layout-dev): If the text-emphasis is in [line_over, line_under], // this line can provide annotation space. if (has_over_emphasis) - content_over = line_over; + content_over = std::min(content_over, line_over); if (has_under_emphasis) + content_under = std::max(content_under, line_under); + + // With some fonts, text fragment sizes can exceed line-height. + // We'd like to set overflow only if we have annotations. + // This affects fast/ruby/line-height.html on macOS. + if (content_over < line_over && !has_over_annotation) + content_over = line_over; + if (content_under > line_under && !has_under_annotation) content_under = line_under; - const LayoutUnit overflow_over = - (line_over - annotation_over).ClampNegativeToZero(); - const LayoutUnit overflow_under = - (annotation_under - line_under).ClampNegativeToZero(); - return {overflow_over, overflow_under, - // With some fonts, text fragment sizes can exceed line-height. - // We need ClampNegativeToZero(). - overflow_over ? LayoutUnit() - : (content_over - line_over).ClampNegativeToZero(), - overflow_under ? LayoutUnit() - : (line_under - content_under).ClampNegativeToZero()}; + return {(line_over - content_over).ClampNegativeToZero(), + (content_under - line_under).ClampNegativeToZero(), + (content_over - line_over).ClampNegativeToZero(), + (line_under - content_under).ClampNegativeToZero()}; } } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc index 211a20f..c37baaf 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc
@@ -46,16 +46,18 @@ case kNone: break; case kSmallSelf: - static_assert(sizeof(outsets_) == sizeof(self_), + case kSmallContents: + static_assert(sizeof(outsets_) == sizeof(single_), "outsets should be the size of a pointer"); - self_ = source.self_; + single_ = source.single_; #if DCHECK_IS_ON() for (wtf_size_t i = 0; i < base::size(outsets_); ++i) DCHECK_EQ(outsets_[i], source.outsets_[i]); #endif break; case kSelf: - self_ = new NGSelfInkOverflow(*source.self_); + case kContents: + single_ = new NGSingleInkOverflow(*source.single_); break; case kSelfAndContents: container_ = new NGContainerInkOverflow(*source.container_); @@ -69,11 +71,13 @@ switch (type) { case kNotSet: case kSmallSelf: + case kSmallContents: break; case kNone: return kNone; case kSelf: - delete self_; + case kContents: + delete single_; break; case kSelfAndContents: delete container_; @@ -101,13 +105,15 @@ switch (type) { case kNotSet: case kNone: + case kSmallContents: + case kContents: return {PhysicalOffset(), size}; case kSmallSelf: return FromOutsets(size); case kSelf: case kSelfAndContents: - DCHECK(self_); - return self_->self_ink_overflow; + DCHECK(single_); + return single_->ink_overflow; } NOTREACHED(); return {PhysicalOffset(), size}; @@ -124,10 +130,12 @@ case kNone: return {PhysicalOffset(), size}; case kSmallSelf: + case kSmallContents: return FromOutsets(size); case kSelf: - DCHECK(self_); - return self_->self_ink_overflow; + case kContents: + DCHECK(single_); + return single_->ink_overflow; case kSelfAndContents: DCHECK(container_); return container_->SelfAndContentsInkOverflow(); @@ -182,11 +190,13 @@ case kNotSet: case kNone: case kSmallSelf: - self_ = new NGSelfInkOverflow(ink_overflow); + case kSmallContents: + single_ = new NGSingleInkOverflow(ink_overflow); return SetType(new_type); case kSelf: - DCHECK(self_); - self_->self_ink_overflow = ink_overflow; + case kContents: + DCHECK(single_); + single_->ink_overflow = ink_overflow; return SetType(new_type); } NOTREACHED(); @@ -201,24 +211,43 @@ return SetSingle(type, ink_overflow, size, kSelf, kSmallSelf); } +NGInkOverflow::Type NGInkOverflow::SetContents(Type type, + const PhysicalRect& ink_overflow, + const PhysicalSize& size) { + CheckType(type); + if (!HasOverflow(ink_overflow, size)) + return Reset(type); + return SetSingle(type, ink_overflow, size, kContents, kSmallContents); +} + NGInkOverflow::Type NGInkOverflow::Set(Type type, const PhysicalRect& self, const PhysicalRect& contents, const PhysicalSize& size) { CheckType(type); + if (!HasOverflow(self, size)) { + if (!HasOverflow(contents, size)) + return Reset(type); + return SetSingle(type, contents, size, kContents, kSmallContents); + } + if (!HasOverflow(contents, size)) + return SetSingle(type, self, size, kSelf, kSmallSelf); + switch (type) { case kSelf: + case kContents: Reset(type); FALLTHROUGH; case kNotSet: case kNone: case kSmallSelf: + case kSmallContents: container_ = new NGContainerInkOverflow(self, contents); return SetType(kSelfAndContents); case kSelfAndContents: DCHECK(container_); - container_->self_ink_overflow = self; + container_->ink_overflow = self; container_->contents_ink_overflow = contents; return kSelfAndContents; }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h index 753a2e57..ddb2e83 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h +++ b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h
@@ -14,29 +14,30 @@ class ComputedStyle; struct NGTextFragmentPaintInfo; -// Represents an ink-overflow rectangle. Used for objects without children, such -// as text runs. -struct NGSelfInkOverflow { - USING_FAST_MALLOC(NGSelfInkOverflow); +// Represents an ink-overflow rectangle. Used for: +// - Objects without children, such as text runs. +// - Objects that has only self or contents ink-overflow. +struct NGSingleInkOverflow { + USING_FAST_MALLOC(NGSingleInkOverflow); public: - explicit NGSelfInkOverflow(const PhysicalRect& ink_overflow) - : self_ink_overflow(ink_overflow) {} + explicit NGSingleInkOverflow(const PhysicalRect& ink_overflow) + : ink_overflow(ink_overflow) {} - PhysicalRect self_ink_overflow; + PhysicalRect ink_overflow; }; // Represents two ink-overflow rectangles, to keep self and contents ink // overflow separately. Used for objects with children, such as boxes. -struct NGContainerInkOverflow : NGSelfInkOverflow { +struct NGContainerInkOverflow : NGSingleInkOverflow { USING_FAST_MALLOC(NGContainerInkOverflow); public: NGContainerInkOverflow(const PhysicalRect& self, const PhysicalRect& contents) - : NGSelfInkOverflow(self), contents_ink_overflow(contents) {} + : NGSingleInkOverflow(self), contents_ink_overflow(contents) {} PhysicalRect SelfAndContentsInkOverflow() const { - return UnionRect(self_ink_overflow, contents_ink_overflow); + return UnionRect(ink_overflow, contents_ink_overflow); } PhysicalRect contents_ink_overflow; @@ -58,6 +59,8 @@ kNone, kSmallSelf, kSelf, + kSmallContents, + kContents, kSelfAndContents // When adding values, make sure |NGFragmentItem| has enough storage. }; @@ -83,8 +86,15 @@ Type Reset(Type type); // Set self ink overflow rect. + // If |this| had contents ink overflow, it is cleared. Type SetSelf(Type type, const PhysicalRect& self, const PhysicalSize& size); + // Set contents ink overflow rect. + // If |this| had self ink overflow, it is cleared. + Type SetContents(Type type, + const PhysicalRect& contents, + const PhysicalSize& size); + // Set self and contents ink overflow rects. Type Set(Type type, const PhysicalRect& self, @@ -132,12 +142,12 @@ union { // When only self or contents overflow. - NGSelfInkOverflow* self_; + NGSingleInkOverflow* single_; // When both self and contents overflow. NGContainerInkOverflow* container_; // Outsets in small |LayoutUnit|s when overflow is small. SmallRawValue outsets_[4]; - static_assert(sizeof(outsets_) == sizeof(self_), + static_assert(sizeof(outsets_) == sizeof(single_), "outsets should be the size of a pointer"); };
diff --git a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow_test.cc b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow_test.cc index 3426101..77688d6 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow_test.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow_test.cc
@@ -40,6 +40,14 @@ FloatRect rect; FloatRect expect; NGInkOverflow::Type type; + + NGInkOverflow::Type ExpectedTypeForContents() const { + if (type == NGInkOverflow::kSelf) + return NGInkOverflow::kContents; + if (type == NGInkOverflow::kSmallSelf) + return NGInkOverflow::kSmallContents; + return type; + } } rect_data[] = { {{20, 10}, {0, 0, 0, 0}, {0, 0, 20, 10}, NGInkOverflow::kNone}, {{20, 10}, {0, 0, 20, 10}, {0, 0, 20, 10}, NGInkOverflow::kNone}, @@ -110,15 +118,9 @@ NGInkOverflow ink_overflow; NGInkOverflow::Type type = ink_overflow.Set( NGInkOverflow::kNotSet, {}, FromFloatRound(data.rect), data.size); + EXPECT_EQ(type, data.ExpectedTypeForContents()); PhysicalRect result = ink_overflow.SelfAndContents(type, data.size); - // TODO(kojii): When empty is set, the visual overflow becomes empty rather - // than LocalRect. This is likely not needed and should be revisited, but keep - // the behavior for now to keep test results the same. - EXPECT_EQ(type, NGInkOverflow::kSelfAndContents); - if (data.rect.IsEmpty()) - EXPECT_EQ(result, PhysicalRect()); - else - EXPECT_EQ(result, FromFloatRound(data.expect)); + EXPECT_EQ(result, FromFloatRound(data.expect)); ink_overflow.Reset(type); } @@ -133,6 +135,39 @@ copy.Reset(type); } +struct SelfAndContentsData { + PhysicalSize size; + PhysicalRect self; + PhysicalRect contents; + NGInkOverflow::Type type; +} self_and_contents_data[] = { + {{10, 10}, {0, 0, 10, 10}, {0, 0, 10, 10}, NGInkOverflow::kNone}, + {{10, 10}, + {-1, -1, 12, 12}, + {0, 0, 20, 20}, + NGInkOverflow::kSelfAndContents}, +}; + +class SelfAndContentsDataTest + : public NGInkOverflowTest, + public testing::WithParamInterface<SelfAndContentsData> {}; + +INSTANTIATE_TEST_SUITE_P(NGInkOverflowTest, + SelfAndContentsDataTest, + testing::ValuesIn(self_and_contents_data)); + +TEST_P(SelfAndContentsDataTest, SelfAndContents) { + const SelfAndContentsData data = GetParam(); + NGInkOverflow ink_overflow; + NGInkOverflow::Type type = ink_overflow.Set(NGInkOverflow::kNotSet, data.self, + data.contents, data.size); + EXPECT_EQ(type, data.type); + EXPECT_EQ(ink_overflow.Self(type, data.size), data.self); + EXPECT_EQ(ink_overflow.SelfAndContents(type, data.size), + UnionRect(data.self, data.contents)); + ink_overflow.Reset(type); +} + } // namespace } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc b/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc index 91774587..25adb38c 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc
@@ -291,7 +291,8 @@ void AddChild(const PhysicalRect& child_scrollable_overflow) { // Do not add overflow if fragment is not reachable by scrolling. - if (IsRectReachableByScroll(child_scrollable_overflow)) + if (height_type == kEmHeight || + IsRectReachableByScroll(child_scrollable_overflow)) children_overflow.Unite(child_scrollable_overflow); }
diff --git a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc index 691884f7..5c5e5bef 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc
@@ -517,7 +517,7 @@ if (!ink_overflow_) return fragment.LocalRect(); - return ink_overflow_->self_ink_overflow; + return ink_overflow_->ink_overflow; } PhysicalRect NGPaintFragment::InkOverflow() const { @@ -534,9 +534,9 @@ return fragment.LocalRect(); if (HasOverflowClip()) - return ink_overflow_->self_ink_overflow; + return ink_overflow_->ink_overflow; - PhysicalRect rect = ink_overflow_->self_ink_overflow; + PhysicalRect rect = ink_overflow_->ink_overflow; rect.Unite(ink_overflow_->contents_ink_overflow); return rect; } @@ -608,7 +608,7 @@ ink_overflow_ = std::make_unique<NGContainerInkOverflow>(self_rect, contents_rect); } else { - ink_overflow_->self_ink_overflow = self_rect; + ink_overflow_->ink_overflow = self_rect; ink_overflow_->contents_ink_overflow = contents_rect; } return self_and_contents_rect;
diff --git a/third_party/blink/renderer/modules/manifest/manifest_parser.cc b/third_party/blink/renderer/modules/manifest/manifest_parser.cc index 8a80176f..88a84876 100644 --- a/third_party/blink/renderer/modules/manifest/manifest_parser.cc +++ b/third_party/blink/renderer/modules/manifest/manifest_parser.cc
@@ -40,6 +40,12 @@ return true; } +// Determines whether |url| is within scope of |scope|. +bool URLIsWithinScope(const KURL& url, const KURL& scope) { + return SecurityOrigin::AreSameOrigin(url, scope) && + url.GetPath().StartsWith(scope.GetPath()); +} + } // anonymous namespace ManifestParser::ManifestParser(const String& data, @@ -209,7 +215,7 @@ KURL ManifestParser::ParseURL(const JSONObject* object, const String& key, const KURL& base_url, - ParseURLOriginRestrictions origin_restriction) { + ParseURLRestrictions origin_restriction) { base::Optional<String> url_str = ParseString(object, key, NoTrim); if (!url_str.has_value()) return KURL(); @@ -221,14 +227,25 @@ } switch (origin_restriction) { - case ParseURLOriginRestrictions::kSameOriginOnly: + case ParseURLRestrictions::kNoRestrictions: + return resolved; + case ParseURLRestrictions::kSameOriginOnly: if (!SecurityOrigin::AreSameOrigin(resolved, document_url_)) { AddErrorInfo("property '" + key + "' ignored, should be same origin as document."); return KURL(); } return resolved; - case ParseURLOriginRestrictions::kNoRestrictions: + case ParseURLRestrictions::kWithinScope: + if (!URLIsWithinScope(resolved, manifest_->scope)) { + AddErrorInfo("property '" + key + + "' ignored, should be within scope of the manifest."); + return KURL(); + } + + // Within scope implies same origin as document URL. + DCHECK(SecurityOrigin::AreSameOrigin(resolved, document_url_)); + return resolved; } @@ -248,13 +265,13 @@ KURL ManifestParser::ParseStartURL(const JSONObject* object) { return ParseURL(object, "start_url", manifest_url_, - ParseURLOriginRestrictions::kSameOriginOnly); + ParseURLRestrictions::kSameOriginOnly); } KURL ManifestParser::ParseScope(const JSONObject* object, const KURL& start_url) { KURL scope = ParseURL(object, "scope", manifest_url_, - ParseURLOriginRestrictions::kSameOriginOnly); + ParseURLRestrictions::kNoRestrictions); // This will change to remove the |document_url_| fallback in the future. // See https://github.com/w3c/manifest/issues/668. @@ -264,8 +281,7 @@ if (scope.IsEmpty()) return KURL(default_value.BaseAsString()); - if (!SecurityOrigin::AreSameOrigin(default_value, scope) || - !default_value.GetPath().StartsWith(scope.GetPath())) { + if (!URLIsWithinScope(default_value, scope)) { AddErrorInfo( "property 'scope' ignored. Start url should be within scope " "of scope URL."); @@ -273,6 +289,7 @@ } DCHECK(scope.IsValid()); + DCHECK(SecurityOrigin::AreSameOrigin(scope, document_url_)); return scope; } @@ -305,7 +322,7 @@ KURL ManifestParser::ParseIconSrc(const JSONObject* icon) { return ParseURL(icon, "src", manifest_url_, - ParseURLOriginRestrictions::kNoRestrictions); + ParseURLRestrictions::kNoRestrictions); } String ManifestParser::ParseIconType(const JSONObject* icon) { @@ -442,16 +459,9 @@ KURL ManifestParser::ParseShortcutUrl(const JSONObject* shortcut) { KURL shortcut_url = ParseURL(shortcut, "url", manifest_url_, - ParseURLOriginRestrictions::kSameOriginOnly); - if (shortcut_url.IsNull()) { + ParseURLRestrictions::kWithinScope); + if (shortcut_url.IsNull()) AddErrorInfo("property 'url' of 'shortcut' not present."); - } else if (!shortcut_url.GetString().StartsWith( - manifest_->scope.GetString())) { - AddErrorInfo( - "property 'url' of 'shortcut' ignored. url should be within scope of " - "the manifest."); - return KURL(); - } return shortcut_url; } @@ -673,7 +683,7 @@ auto share_target = mojom::blink::ManifestShareTarget::New(); share_target->action = ParseURL(share_target_object, "action", manifest_url_, - ParseURLOriginRestrictions::kSameOriginOnly); + ParseURLRestrictions::kSameOriginOnly); if (!share_target->action.IsValid()) { AddErrorInfo( "property 'share_target' ignored. Property 'action' is " @@ -775,7 +785,7 @@ mojom::blink::ManifestFileHandlerPtr entry = mojom::blink::ManifestFileHandler::New(); entry->action = ParseURL(file_handler, "action", manifest_url_, - ParseURLOriginRestrictions::kSameOriginOnly); + ParseURLRestrictions::kSameOriginOnly); if (!entry->action.IsValid()) { AddErrorInfo("FileHandler ignored. Property 'action' is invalid."); return base::nullopt; @@ -920,7 +930,7 @@ return base::nullopt; } protocol_handler->url = ParseURL(object, "url", manifest_url_, - ParseURLOriginRestrictions::kSameOriginOnly); + ParseURLRestrictions::kSameOriginOnly); bool is_valid_url = protocol_handler->url.IsValid(); if (is_valid_url) { const char kToken[] = "%s"; @@ -954,7 +964,7 @@ base::Optional<KURL> ManifestParser::ParseRelatedApplicationURL( const JSONObject* application) { return ParseURL(application, "url", manifest_url_, - ParseURLOriginRestrictions::kNoRestrictions); + ParseURLRestrictions::kNoRestrictions); } String ManifestParser::ParseRelatedApplicationId(
diff --git a/third_party/blink/renderer/modules/manifest/manifest_parser.h b/third_party/blink/renderer/modules/manifest/manifest_parser.h index def6a44..7ac1649b 100644 --- a/third_party/blink/renderer/modules/manifest/manifest_parser.h +++ b/third_party/blink/renderer/modules/manifest/manifest_parser.h
@@ -51,10 +51,13 @@ // Used to indicate whether to strip whitespace when parsing a string. enum TrimType { Trim, NoTrim }; - // Indicate whether a parsed URL should be restricted to document origin. - enum class ParseURLOriginRestrictions { + // Indicate restrictions to be placed on the parsed URL with respect to the + // document URL or manifest scope. + enum class ParseURLRestrictions { kNoRestrictions = 0, - kSameOriginOnly, + kSameOriginOnly, // Parsed URLs must be same origin as the document URL. + kWithinScope, // Parsed URLs must be within scope of the manifest scope + // (implies same origin as document URL). }; // Helper function to parse booleans present on a given |dictionary| in a @@ -99,7 +102,7 @@ KURL ParseURL(const JSONObject* object, const String& key, const KURL& base_url, - ParseURLOriginRestrictions origin_restriction); + ParseURLRestrictions origin_restriction); // Parses the 'name' field of the manifest, as defined in: // https://w3c.github.io/manifest/#dfn-steps-for-processing-the-name-member
diff --git a/third_party/blink/renderer/modules/manifest/manifest_parser_unittest.cc b/third_party/blink/renderer/modules/manifest/manifest_parser_unittest.cc index b64e15008..38044ea9 100644 --- a/third_party/blink/renderer/modules/manifest/manifest_parser_unittest.cc +++ b/third_party/blink/renderer/modules/manifest/manifest_parser_unittest.cc
@@ -373,8 +373,10 @@ EXPECT_EQ( "property 'start_url' ignored, should be same origin as document.", errors()[0]); - EXPECT_EQ("property 'scope' ignored, should be same origin as document.", - errors()[1]); + EXPECT_EQ( + "property 'scope' ignored. Start url should be within scope " + "of scope URL.", + errors()[1]); } // No start URL. Document URL is in scope. @@ -1389,7 +1391,7 @@ KURL("http://foo.com/landing/manifest.json"), DefaultDocumentUrl()); EXPECT_TRUE(manifest->shortcuts.IsEmpty()); EXPECT_EQ(2u, GetErrorCount()); - EXPECT_EQ("property 'url' ignored, should be same origin as document.", + EXPECT_EQ("property 'url' ignored, should be within scope of the manifest.", errors()[0]); EXPECT_EQ("property 'url' of 'shortcut' not present.", errors()[1]); } @@ -1405,11 +1407,10 @@ KURL("http://foo.com/landing/index.html")); EXPECT_TRUE(manifest->shortcuts.IsEmpty()); ASSERT_EQ(manifest->scope.GetString(), "http://foo.com/landing"); - EXPECT_EQ(1u, GetErrorCount()); - EXPECT_EQ( - "property 'url' of 'shortcut' ignored. url should be within scope of " - "the manifest.", - errors()[0]); + EXPECT_EQ(2u, GetErrorCount()); + EXPECT_EQ("property 'url' ignored, should be within scope of the manifest.", + errors()[0]); + EXPECT_EQ("property 'url' of 'shortcut' not present.", errors()[1]); } // Shortcut url should be within the manifest scope.
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 9ce71d5..935f490 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -931,7 +931,7 @@ // provides a convenient way for testing legacy layout code path in blink // unit tests. name: "LayoutNG", - implied_by: ["LayoutNGFieldset", "LayoutNGGrid", "EditingNG", "BidiCaretAffinity", "LayoutNGTable"], + implied_by: ["LayoutNGFieldset", "LayoutNGGrid", "BidiCaretAffinity", "LayoutNGTable"], status: "stable", }, { @@ -951,7 +951,7 @@ }, { name: "LayoutNGFragmentItem", - implied_by: ["LayoutNGBlockFragmentation", "LayoutNGFragmentTraversal"], + implied_by: ["LayoutNGBlockFragmentation", "LayoutNGFragmentTraversal", "EditingNG"], status: "test", }, {
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 0c66c86..47d7fbb 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1163,6 +1163,7 @@ virtual/layout_ng_fragment_traversal/external/wpt/css/CSS2/normal-flow/min-width-applies-to-012.xht [ Pass ] virtual/layout_ng_fragment_traversal/external/wpt/css/CSS2/normal-flow/width-applies-to-012.xht [ Pass ] +crbug.com/982194 [ Win ] virtual/layout_ng_fragment_traversal/external/wpt/css/CSS2/linebox/empty-inline-002.xht [ Failure ] crbug.com/982194 [ Mac ] virtual/layout_ng_fragment_traversal/fast/table/027-vertical.html [ Failure ] crbug.com/982194 [ Mac ] virtual/layout_ng_fragment_traversal/fast/table/border-collapsing/003-vertical.html [ Failure ] @@ -2659,6 +2660,15 @@ crbug.com/1018465 external/wpt/css/css-pseudo/active-selection-056.html [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Linux ] external/wpt/css/mediaqueries/mq-gamut-004.html [ Failure ] +crbug.com/626703 [ Mac ] external/wpt/css/mediaqueries/mq-gamut-004.html [ Failure ] +crbug.com/626703 [ Win ] external/wpt/css/mediaqueries/mq-gamut-004.html [ Failure ] +crbug.com/626703 [ Linux ] external/wpt/css/mediaqueries/mq-gamut-002.html [ Failure ] +crbug.com/626703 [ Mac ] external/wpt/css/mediaqueries/mq-gamut-002.html [ Failure ] +crbug.com/626703 [ Win ] external/wpt/css/mediaqueries/mq-gamut-002.html [ Failure ] +crbug.com/626703 [ Linux ] external/wpt/css/mediaqueries/mq-negative-range-001.html [ Failure ] +crbug.com/626703 [ Mac ] external/wpt/css/mediaqueries/mq-negative-range-001.html [ Failure ] +crbug.com/626703 [ Win ] external/wpt/css/mediaqueries/mq-negative-range-001.html [ Failure ] crbug.com/626703 [ Linux ] external/wpt/css/mediaqueries/mq-range-001.html [ Failure ] crbug.com/626703 [ Mac ] external/wpt/css/mediaqueries/mq-range-001.html [ Failure ] crbug.com/626703 [ Win ] external/wpt/css/mediaqueries/mq-range-001.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index 871f05e..3abdd9c 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -9935,7 +9935,7 @@ "painting": { "reftests": { "mask-print.svg": [ - "ea8e3d29b9c4e1dce623d265c1c1a2865c08d28a", + "b63ec72054c224f5e14a54248ae0a514e37f0610", [ null, [ @@ -9950,11 +9950,11 @@ null, [ [ - 1, + 0, 1 ], [ - 17280, + 0, 17280 ] ] @@ -128010,7 +128010,72 @@ ] ], "mq-deprecated-001.html": [ - "a5efb190c4ca6debcaa5d05ddc53561c13ff6c66", + "0aa06666cd53d913eab8dbe6a95ab6f2b2c855f5", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-gamut-001.html": [ + "b0496192933dc4c2e0e4514da630b1828b7d3804", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-gamut-002.html": [ + "a63399ede1af3cd6a550c9a9f58ad67fa98970a8", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-gamut-003.html": [ + "29bde56e69e84613bd72913218477f331ca31106", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-gamut-004.html": [ + "fe285564701be15cf88f379d7747e6aae3291666", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-gamut-005.html": [ + "a1fe4d9e6e0c9b28a5103fc7f48b9955998dc6c3", [ null, [ @@ -128074,6 +128139,19 @@ {} ] ], + "mq-negative-range-001.html": [ + "eb1030a8dd4c5c2504e2af114c75a3e97332b2e1", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "mq-range-001.html": [ "f54917ada1cf1f625c7bbb2cf73aeb7305615f08", [ @@ -226189,7 +226267,7 @@ [] ], "mask-print-ref.svg": [ - "5d58e49bc8e9b4f018a69ea4783eb90df83e14c7", + "4717ac4a2750e236db2a7e003ac9acd6c40a9305", [] ], "paint-context-001-ref.svg": [
diff --git a/third_party/blink/web_tests/external/wpt/css/css-tables/tentative/colspan-redistribution-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-tables/tentative/colspan-redistribution-expected.txt new file mode 100644 index 0000000..0e697f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-tables/tentative/colspan-redistribution-expected.txt
@@ -0,0 +1,120 @@ +This is a testharness.js-based test. +PASS table 1 +PASS table 2 +FAIL table 3 assert_equals: +<table data-expected-width="492"> + <tbody><tr> + <td data-expected-width="46"></td> + <td></td> + <td>x</td> + </tr> + <tr> + <td colspan="2" style="width:20%"><div style="width:100px">100px</div></td> +</tr></tbody></table> +width expected 46 but got 92 +PASS table 4 +PASS table 5 +PASS table 6 +PASS table 7 +PASS table 8 +FAIL table 9 assert_equals: +<table data-expected-width="344"> + <tbody><tr> + <td style="width:20px" data-expected-width="146"><div style="width:100px">20/100px</div></td> + <td style="width:40px"><div style="width:100px">40/100px</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td data-expected-width="300" colspan="2" style=""><div style="width:300px">300px min</div></td> + </tr> +</tbody></table> +width expected 146 but got 100 +PASS table 10 +PASS table 11 +PASS table 12 +PASS table 13 +PASS table 14 +FAIL table 15 assert_equals: +<table style="width:1px" data-expected-width="166"> + <tbody><tr> + <td style="width:70px" data-expected-width="42">0</td> + <td style="width:70px" data-expected-width="42">0</td> + <td data-expected-width="50"><div style="width:50px">50</div></td> + </tr> + <tr> + <td colspan="3"><div style="width:150px"></div> + </td> + </tr> +</tbody></table> +width expected 42 but got 49 +PASS table 16 +PASS table 17 +PASS table 18 +FAIL table 19 assert_equals: +<table style="width:1px" data-expected-width="252"> + <tbody><tr> + <td style="width:40%" data-expected-width="80"><div style="width:20px">40%</div></td> + <td style="width:50px" data-expected-width="120"><div style="width:50px">50</div></td> + <td data-expected-width="20" style="width:100px"><div style="width:20px">20</div></td> + </tr> + <tr> + <td colspan="2" data-expected-width="208"><div style="width:208px">208px min</div></td> + </tr> +</tbody></table> +width expected 80 but got 57 +PASS table 20 +PASS table 21 +FAIL table 22 assert_equals: +<table data-expected-width="532"> + <tbody><tr> + <td colspan="2"><div style="width:208px">200</div></td> + <td><div style="width:50px">50</div></td> + </tr> + <tr> + <td><div style="width:50px">50</div></td> + <td colspan="2"><div style="width:408px">400</div></td> + </tr> + <tr> + <td data-expected-width="100">Auto</td> + <td data-expected-width="267"><div style="width:50px">Auto</div></td> + <td data-expected-width="133">Auto</td> + </tr> +</tbody></table> +width expected 532 but got 482 +FAIL table 23 assert_equals: +<table data-expected-width="482"> + <tbody><tr> + <td colspan="2"><div style="width:408px">400</div></td> + <td><div style="width:50px">50</div></td> + </tr> + <tr> + <td><div style="width:50px">50</div></td> + <td colspan="2"><div style="width:208px">200</div></td> + </tr> + <tr> + <td data-expected-width="200">Auto</td> + <td data-expected-width="200"><div style="width:50px">Auto</div></td> + <td data-expected-width="50">Auto</td> + </tr> +</tbody></table> +width expected 482 but got 532 +FAIL table 24 assert_equals: +<table data-expected-width="740"> + <tbody><tr> + <td colspan="3"><div style="width:316px">300</div></td> + <td><div style="width:50px">50</div></td> + </tr> + <tr> + <td><div style="width:50px">50</div></td> + <td colspan="3"><div style="width:616px">600</div></td> + </tr> + <tr> + <td data-expected-width="100">Auto</td> + <td data-expected-width="240"><div style="width:50px">Auto</div></td> + <td data-expected-width="240"><div style="width:50px">Auto</div></td> + <td data-expected-width="120">Auto</td> + </tr> +</tbody></table> +width expected 740 but got 690 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-tables/tentative/colspan-redistribution.html b/third_party/blink/web_tests/external/wpt/css/css-tables/tentative/colspan-redistribution.html new file mode 100644 index 0000000..e440728 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-tables/tentative/colspan-redistribution.html
@@ -0,0 +1,486 @@ +<!doctype html> +<title>COLSPAN redistribution</title> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src="/resources/check-layout-th.js"></script> +<link rel="stylesheet" type="text/css" href="./support/table-tentative.css"> +<link rel="author" title="Aleks Totic" href="atotic@chromium.org" /> +<link rel="help" href="https://www.w3.org/TR/css-tables-3/#distributing-width-to-columns" /> +<style> + main table { + border-spacing: 8px 8px; + margin-top:8px; + background: gray; + } + main td { + background: #BFB; + font-size: 10px; + } + main td > div { + display: inline-block; + background: rgba(56,162,56,0.3); + } +</style> +<main> +<h1>Colspan>1 width redistribution</h1> +<p>TD with colspan>1 redistributes its min/max/percent widths to the spanned cells.</p> +<p>Creating explainable tests with percentage cells is complicated. Cell's percentage cannot be observed directly, but must be inferred from td+table widths. Rules that govern relationship between table grid width and percentage cell width are:</p> +<ol> + <li id="rule1"><span class="rule1">Rule#1</span>, Each percentage column sets the floor for maximum table width. That table width is column.min_width / column.percent * 100.<br> Ex: 20px wide column, with 20% width, implies that the entire table must be at least 100px wide.</li> + <li id="rule2"><span class="rule2">Rule#2</span>, Sum of all percentages, combined with sum of widths of all non-percentages sets the floor maximum table widths. <br>Let P% be sum of all percentages, and Fpx sum of widths of all non-percentage columns. Maximum table width = Fpx * (1 + (100-P%)/P%).<br> + Ex: if percentage columns are 20%, and non-percentage columns are 100px, implies that that 80% is at least 100px, and that the entire table is at least 125px. + </li> +</ol> +<h2>Test design</h2> +<p>All examples have border-spacing:8, td.padding:0.</p> +<p>Tests are mostly tables with 2 rows. 1st row are the columns, 2nd row is the colspan>1 column being distributed. Most test's colspan>1 cell colspan encloses all cells except the last one. Each test is accompanied by test description. Test description contains:</p> +<ol> + <li>First line describes the test geometry: cell:css/min/max. C1:20%/20px means width:20%, intrinsic min width 20px. If max is omitted, min == max.</li> + <li>Second line describes algorithm being tested in detail</li> + <li>Third line describes computation that generates the result.</li> + <li class="error">Red paragraphs are major browser disagreements</li> +</ol> + +<h2>Colspan>1 cell's percentage distribution</h2> +<p>Rules</p> +<ul> + <li>Percentages can only be redistributed to non-percentage cells.</li> + <li>If percentage does not get redistributed, treat colspan>1 cell width as Auto</li> + <li>If all columns are empty (no max width), redistribute percentage evenly.</li> +</ul> + +<p class="testdesc">C0:10%/20px C1:10%/20px C2:auto +No colspan>1 cells, shows what table looks like without colspan>1 cell distribution. +Table width by rule#1, 20px/0.1(10%) + 4*8 => 232px. Excess table width is distributed to auto cell.</p> +<table data-expected-width="232"> + <tr> + <td style="width:10%"><div style="width:20px">x</div></td> + <td style="width:10%"><div style="width:20px">x</div></td> + <td>x</td> + </tr> +</table> + +<p class="testdesc">Colspan>1:40%/Auto C0:10%/20px C1:10%/20px C2:auto +Percentage does not get redistributed because all columns are percentages. +Table width by rule#1 same as previous example.</p> +<table data-expected-width="232"> + <tr> + <td style="width:10%" data-expected-width="20"><div style="width:20px">x</div></td> + <td style="width:10%"><div style="width:20px">x</div></td> + <td>x</td> + </tr> + <tr> + <td colspan=2 style="width:40%">40%</td> + </tr> +</table> + +<p class="testdesc">Colspan>1:20%/100px C0:Auto/0 C1:Auto/0 C2:Auto/Auto +Percentage gets redistributed evenly to empty cells. +Each cell gets 10%, then (100-8)/2=>46px min width. Table min width is 46/0.1(10%) + 4*8 => 460 + 32 => 492</p> +<p class="error">Chrome Legacy is wrong, 1st span cell gets all the width. FF/Edge agree.</p> +<table data-expected-width="492"> + <tr> + <td data-expected-width="46"></td> + <td></td> + <td>x</td> + </tr> + <tr> + <td colspan=2 style="width:20%"><div style="width:100px">100px</div></td> +</table> + +<p class="testdesc">Colspan>1: 19%/200px colspan>1 cell, C0: 20%.20px, C1: 80px/80px +Percentage is not getting redistributed, because column% > colspan>1%</p> +<table data-expected-width="224"> + <tr> + <td style="width:20%" data-expected-width="40"><div style="width:20px">20</div></td> + <td style="width:80px" data-expected-width="160"><div style="width:80px">80</div></td> + </tr> + <tr> + <td colspan=2 style="width:19%" data-expected-width="208"><div style="width:208px">208</div></td> + </tr> +</table> + +<h2>Colspan>1 cell's minimum width distribution</h2> +<h3>All unconstrained columns</h3> + +<p class="testdesc">Colspan>1: Auto/300px C0:Auto/75pxpx C1:Auto:25px; C2:20px/Auto +Basic distribution over auto columns, cells grow evenly. +Distribute 300-8=292 proportional to maxwidth. C0 gets 75/100*292=219.</p> +<table data-expected-width="344"> + <tr> + <td data-expected-width="219"><div style="width:75px">75px</div></td> + <td><div style="width:25px">25px</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td data-expected-width="300" colspan=2><div style="width:300px">300px min</div></td> + </tr> +</table> + +<p class="testdesc">Colspan>1: 260px/300px C0:Auto/100px C1:Auto/100px C2:Auto/Auto +Colspan>1 cell min width wins over css width. +Table width same as previous example.</p> +<table data-expected-width="344"> + <tr> + <td data-expected-width="146"><div style="width:100px">100px</div></td> + <td><div style="width:100px">100px</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td data-expected-width="300" colspan=2 style="width:260px"><div style="width:300px">300px min</div></td> + </tr> +</table> + +<h3>All fixed columns</h3> +<li>column gets min_width proportional to its max width. + +<p 7 class="testdesc">Colspan>1: 260/300 C0:100/50/100 C1:100/100 C2:20/Auto +Distribute surplus proportional to max width. +Colspan>1 is distributing 292, surplus 92, each column gets 46. +</p> +<table data-expected-width="344"> + <tr> + <td style="width:100px" data-expected-width="146"><div style="width:50px">50</div><div style="width:50px">50</div></td> + <td style="width:100px"><div style="width:100px">100px</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td data-expected-width="300" colspan=2 style="width:260px"><div style="width:300px">300px min</div></td> + </tr> +</table> + +<p 8 class="testdesc">Colspan>1: 300/300 C0:100/25 C1:100/75 C2:20/Auto +Column minimum width is less than its CSS width. +Just like last example, both columns get 46. +<table data-expected-width="334" style="width:1px"> + <tr> + <td style="width:100px" data-expected-width="146"><div style="width:25px">25px</div></td> + <td style="width:100px"><div style="width:75px">75px</div></td> + <td style="width:20px"><div style="width:10px">x</div></td> + </tr> + <tr> + <td data-expected-width="300" colspan=2 style=""><div style="width:300px">300px min</div></td> + </tr> +</table> + +<p class="testdesc">Colspan>1: 300/300 C0:20/100 C1:100/75 C2:20/Auto +First column's min width > css width. +Like last example, each column minimum width increases in proportion to the max.</p> +<p class="error">Chrome differs from FF/Edge. It distributes min-width in proportion to css width, not max width</p> +<table data-expected-width="344"> + <tr> + <td style="width:20px" data-expected-width="146"><div style="width:100px">20/100px</div></td> + <td style="width:40px"><div style="width:100px">40/100px</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td data-expected-width="300" colspan=2 style=""><div style="width:300px">300px min</div></td> + </tr> +</table> + +<h3>All percent columns</h3> + <ul> + <li>min width never gets smaller than it started. + <li>min width becomes cell.percent/cells.percent * colspan>1_cell.min_width</li> + <li>max width becomes cell.percent/cells.percent * colspan>1_cell.max_width</li> + </ul> + +<p 10 class="testdesc">Colspan>1:Auto/300px C0:25%/50 C1:25%/30 C2:20/Auto +Colspan>1 min width gets distributed proportional to percentage (not min/max width). +Columns get min_width = 146, causes table width of 146/0.25 + 4*8 = 616. +<table data-expected-width="616"> + <tr> + <td style="width:25%" data-expected-width="146"><div style="width:50px">25%/50</div></td> + <td style="width:25%"><div style="width:30px">25%/30</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td colspan=2 style=""><div style="width:300px">300px min</div></td> + </tr> +</table> + +<p 11 class="testdesc">Colspan>1:Auto/400px C0:20%/50 C1:60%/50 C2:20/Auto. +Colspan>1 min width gets distributed proportional to percentage (not min/max width). +Cells get 98/294, table by rule#1 98px/0.2 + 32 = 522</p> +<p class="error">Edge disagrees, table is 870</p> +<div style="width:600px"> +<table data-expected-width="522"> + <tr> + <td style="width:20%" data-expected-width="98"><div style="width:50px">20%/50px</div></td> + <td style="width:60%" data-expected-width="294"><div style="width:50px">60%/50px</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td colspan=2 style=""><div style="width:400px">400px min</div></td> + </tr> +</table> +</div> + +<p 12 class="testdesc">Colspan>1:Auto/400 C0:50%/150 C1:30%/150 C2:20/Auto +This tests conflict resolution where min-width > redistributed min width. +400-8px distributed max width tries to redistribute as 245|147, but gets constrained to 245|150 in Chrome. +table width from C0 245/0.5 + 4*8 = 522 +table width from C1 150/0.3 + 4*8 = 532 +C0 = 50% of 500 = 250, C1 = 30% of 500 = 150 , C2 gets the remaining 100</p> +<p class="error">Chrome/FF/Edge end up with tables of different widths: 532/590/685. Chrome's 2nd span cell seems 'most correct' at its original max width of 150. In FF, extra min-width seems to cause more width to be redistributed. If you hover over 30%/150 cell, its min width will change to 100px, and all browsers will agree.</p> +<style> + .test12:hover { + width:100px !important; + } +</style> +<table data-expected-width="532"> + <tr> + <td style="width:50%" data-expected-width="250"><div style="width:150px">50%/150px</div></td> + <td style="width:30%" data-expected-width="150"><div class="test12" style="width:150px">30%/150px</div></td> + <td style="width:20px" data-expected-width="100">x</td> + </tr> + <tr> + <td colspan=2 style=""><div style="width:400px">400px min</div></td> + </tr> +</table> + +<p 13 class="testdesc"> Colspan>1:Auto/400px C0:50%/75px/125px, C1:30%/75px/125px C2:20px/Auto +Colspan>1 cell distribution over different percentages. +400-8px min width gets redistributed as 245/147 (no min width limits) +</p> +<p class="error">Edge is different, table is 685 instead of 522.</p> +<table data-expected-width="522"> + <tr> + <td style="width:50%" data-expected-width="245"><div style="width:75px">50%/75</div><div style="width:50px">/125</div></td> + <td style="width:30%" data-expected-width="147"><div style="width:75px">30%/75</div><div style="width:50px">/125</div></td> + <td style="width:20px">x</td> + </tr> + <tr> + <td colspan=2 style=""><div style="width:400px">400px min</div></td> + </tr> +</table> + +<h3>Auto/fixed mix columns</h3> +<p class="testdesc">Colspan>1: Auto/500; C0: Auto/40 C1:150/100 +Colspan>1 excess min: 500-140-8=352; excess max: 500-190-8=302 +Initial min/max C0:40/40, C1:100/150 +Excess is distributed to Auto C0:392/342, C1:100/150 +Assignable width is 492. C0 gets 342, C1 get max:150 +Chrome Legacy does something very different to arrive at the same answer. +Initial min/max is the same. +Min gets distributed to C0 and C1 in proportion to max_width: C0:342/40 C1:150/150, +Min also gets clamped to css width. This is the key difference betweeen NG +and Legacy code. NG cannot clamp to css width, because it is not available. +Max gets distributed to both in proportion to max_width: C0:342/103 C1:150/389 +Assignable table width is: 492 (sum of min), min gets used as final width. + +Analysis: colspan>1 cell distribution over fixed/auto. +Legacy incorrectly distributes minmax over both fixed and auto cells +in proportion to max width,and clamps min to css width. + +This width becomes final width for auto tables without any further distribution. +FF distributes min only over auto, and max over auto. +Final distribution uses Guess 2 rules: start off with Auto(min), Fixed(max), +distribute excess to Auto. Ends up with the same result as Legacy.</p> +<table data-expected-width=516> + <tr> + <td data-expected-width=342> + <div style="width:40px">Auto</div></td> + <td style="width:150px" data-expected-width=150> + <div style="width:100px">150</div></td> + </tr> + <tr> + <td colspan="2"> + <div style="width:500px">500</div></td> + </tr> +</table> +<p class="testdesc">C0:70/Auto C1:70/Auto C2:Auto/50 +This testcase demonstrates how Legacy Chrome handling of min widths is broken. +There are 2 fixed columns, and 1 auto. The width of fixed columns should be +the same, but is not. The problem happens when min-width of fixed columns is +less than fixed width, and there are auto columns.</p> + +<p class="error">Chrome Legacy incorrectly assigns minimum width to C0/C1 +to css width of 70. It does compute assignable table width correctly +as 166 px. This violates the invariant: +assignable table width >= sum of min widths. +Chrome resolves invariant violation by truncating one fixed width column +below its minimum width. </p> +<table style="width:1px" data-expected-width=166> + <tr> + <td style="width:70px" data-expected-width=42>0</td> + <td style="width:70px" data-expected-width=42>0</td> + <td data-expected-width=50><div style="width:50px" >50</div></td> + </tr> + <tr> + <td colspan=3 ><div style="width:150px"></div> + </td> + </tr> +</table> + +<h3>Percentage/fixed mix columns</h3> +<p>The Legacy code that deals with this is confusing, it tries to redistribute minimum width in proportion to max width, unless there are auto cells. All the browsers disagree on final widths. Some things everyone agrees on: + <li>if there are auto cells, fixed cells do not grow.</li> +</p> + +<p class="testdesc">Colspan>1:N/A C0:60%/100 C2:100/100 +An example what table looks like without colspan>1 distribution. +Table width by rule#2: (60/(100-60) +1) * 100 = 250 + 24 = 274</p> +<table data-expected-width="274"> + <tr> + <td data-expected-width="150" style="width:60%"><div style="width:100px">60%</div></td> + <td data-expected-width="100" style="width:100px"><div style="width:100px">100px</div></td> + </tr> +</table> + +<p class="testdesc">Colspan>1:N/A C0:50%/100 C1:50%/100 C2:100/100 +Total column percent is 100%, forcing maximum table grid width by rule #2 to infinity. +Table css width is 1px, overriding grid max width. +Final column width is column's minimum width. +</p> +<div style="width:500px"> + <table style="width:1px"> + <tr> + <td data-expected-width="100" style="width:50%"><div style="width:100px">50%</div></td> + <td data-expected-width="100" style="width:50%"><div style="width:100px">50%</div></td> + <td data-expected-width="100" style="width:100px"><div style="width:100px">100px</div></td> + </tr> + </table> +</div> + +<p class="testdesc">Colspan>1:N/A C0:50%/100 C1:50%/100 C2:100/100 +Same example as above, but table width is auto. +Table grows to size of containing block.</p> +<div style="width:500px"> + <table> + <tr> + <td data-expected-width="184" style="width:50%"><div style="width:100px">50%</div></td> + <td data-expected-width="184" style="width:50%"><div style="width:100px">50%</div></td> + <td data-expected-width="100" style="width:100px"><div style="width:100px">100px</div></td> + </tr> + </table> +</div> + +<p class="testdesc">Colspan>1: Auto/200px C0:40%/20 C1:50/50 C2:100/20 +Table css width is 1px. This forces grid minimum. +FF: %ge cell gets its percentage width resolved wrt distributing cell. +fixed cells get remaining excess width redistributed in proportion +to max size. +Chrome algorithm: distributes proportionally to min_width. The problem with +this is that 40% cell will end up with 0 if no min width. +<p class="error">Edge distributes all the width to the %ge cell, Chrome distributes proportionally to min width. </p> +<table style="width:1px" data-expected-width="252"> + <tr> + <td style="width:40%" data-expected-width=80><div style="width:20px">40%</div></td> + <td style="width:50px" data-expected-width=120><div style="width:50px">50</div></td> + <td data-expected-width="20" style="width:100px"><div style="width:20px">20</div></td> + </tr> + <tr> + <td colspan=2 data-expected-width="208" ><div style="width:208px">208px min</div></td> + </tr> +</table> + +<h2>Merging cell widths into column widths</h2> +<p>What happens when different types of cells get merged into a single column?</p> +<p class="testdesc">C0:0 25%/50px C0:1 50%/40px +C0:0 alone would imply table width of 50/.25 = 200px. +C0:1 alone would imply table width of 40/.5 = 80px. +But, largest percentage and largest min width win, so the table width is 50/.5 = 100px. +</p> +<table data-expected-width=124> + <tr> + <td style="width:25%" data-expected-width=50> + <div style="width:50px">25%/50px</div></td> + <td data-expected-width=50>Auto</td> + </tr> + <tr> + <td style="width:50%"> + <div style="width:40px">50%/40</div></td> + <td>Auto</td> + </tr> +</table> + +<p class="testdesc">Merging fixed and percentage +Column that contains both percent and fixed cells is treated as percent. +<table data-expected-width=632> + <tr> + <td style="width:25%" data-expected-width=150> + <div style="width:100px" >25%/100</div></td> + <td style="width:50px" data-expected-width=50>50px fixed</td> + <td>auto</td> + </tr> + <tr> + <td style="width:150px">150</td> + <td>Auto</td> + <td>Auto</td> + </tr> +</table> + +<p class="testdesc">Order of colspan>1 cell redistribution +Initial minmax of all cells is 50px. +C0:1 redistributes 200 +C1:2 redistributes 400 +Chrome distributes right-to-left: +C1:2 distributes 400, and C1 and C2 both get 200 +When C0:1 turns come, C0+C1 are already long enough, nothing to distirbute +<p class="error"> +In testcase /tables/mozilla_expected_failures/core/col_span2.html +distribution right-to-left is described as a bug. +Firefox and Edge both distribute left to right. +Chrome is only one that distributes right to left. +Firefox distribution is not cumulative, it uses original minmax to compute final widths. Edge agrees with TablesNG. +But, mozilla is stable for row reordering.</p> +</p> +<table data-expected-width=532> + <tr> + <td colspan=2><div style="width:208px">200</div></td> + <td><div style="width:50px">50</div></td> + </tr> + <tr> + <td><div style="width:50px">50</div></td> + <td colspan=2><div style="width:408px">400</div></td> + </tr> + <tr> + <td data-expected-width=100>Auto</td> + <td data-expected-width=267><div style="width:50px">Auto</div></td> + <td data-expected-width=133>Auto</td> + </tr> +</table> +<table data-expected-width=482> + <tr> + <td colspan=2><div style="width:408px">400</div></td> + <td><div style="width:50px">50</div></td> + </tr> + <tr> + <td><div style="width:50px">50</div></td> + <td colspan=2><div style="width:208px">200</div></td> + </tr> + <tr> + <td data-expected-width=200>Auto</td> + <td data-expected-width=200><div style="width:50px">Auto</div></td> + <td data-expected-width=50>Auto</td> + </tr> +</table> +<p class="testdesc">Order of colspan>1 cell redistribution +Similar to previous testcase, but colspan is 3, not 2.</p> +<p class="error"> +In testcase /tables/mozilla_expected_failures/core/col_span2.html +distribution right-to-left is described as a bug. +Firefox and Edge both distribute left to right. +TablesNG matches Edge/FF.</p> +</p> +<table data-expected-width=740> + <tr> + <td colspan=3><div style="width:316px">300</div></td> + <td><div style="width:50px">50</div></td> + </tr> + <tr> + <td><div style="width:50px">50</div></td> + <td colspan=3><div style="width:616px">600</div></td> + </tr> + <tr> + <td data-expected-width=100>Auto</td> + <td data-expected-width=240><div style="width:50px">Auto</div></td> + <td data-expected-width=240><div style="width:50px">Auto</div></td> + <td data-expected-width=120>Auto</td> + </tr> +</table> +</main> +<script> + checkLayout("table"); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-deprecated-001.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-deprecated-001.html index a5efb190c..0aa0666 100644 --- a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-deprecated-001.html +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-deprecated-001.html
@@ -1,5 +1,5 @@ <!doctype html> -<title>Test: invalid range syntax</title> +<title>Test: deprecated media types</title> <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> <link rel="help" href="https://drafts.csswg.org/mediaqueries-4/#media-types"> <link rel="help" href="https://drafts.csswg.org/mediaqueries-4/#ref-for-media-type%E2%91%A0%E2%91%A6">
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-001.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-001.html new file mode 100644 index 0000000..b049619 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-001.html
@@ -0,0 +1,24 @@ +<!doctype html> +<title>Test: srgb color gamut</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/mediaqueries-4/#color-gamut"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="the srgb color-gamut is syntactically supported"> +<meta name="flags" content=""> +<style> +div { + width: 100px; + height: 100px; + background-color: red; +} + +@media (color-gamut: srgb), + not (color-gamut: srgb) +{ + div { background-color: green; } +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. + +<div></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-002.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-002.html new file mode 100644 index 0000000..a63399e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-002.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>Test: p3 color gamut</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/mediaqueries-4/#color-gamut"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/276"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="the p3 color-gamut is syntactically supported"> +<meta name="flags" content=""> +<style> +div { + width: 100px; + height: 100px; + background-color: red; +} + +@media (color-gamut: p3), + not (color-gamut: p3) +{ + div { background-color: green; } +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. + +<div></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-003.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-003.html new file mode 100644 index 0000000..29bde56e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-003.html
@@ -0,0 +1,26 @@ +<!doctype html> +<title>Test: p3 color gamut (old name)</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/mediaqueries-4/#color-gamut"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/4535"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/276"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="the dci-p3 (old name for p3) color-gamut is not syntactically supported"> +<meta name="flags" content=""> +<style> +div { + width: 100px; + height: 100px; + background-color: green; +} + +@media (color-gamut: dci-p3), + not (color-gamut: dci-p3) +{ + div { background-color: red; } +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. + +<div></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-004.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-004.html new file mode 100644 index 0000000..fe2855647 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-004.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>Test: rec2020 color gamut</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/mediaqueries-4/#color-gamut"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/4535"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="the rec2020 color-gamut is syntactically supported"> +<meta name="flags" content=""> +<style> +div { + width: 100px; + height: 100px; + background-color: red; +} + +@media (color-gamut: rec2020), + not (color-gamut: rec2020) +{ + div { background-color: green; } +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. + +<div></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-005.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-005.html new file mode 100644 index 0000000..a1fe4d9e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-gamut-005.html
@@ -0,0 +1,25 @@ +<!doctype html> +<title>Test: rec2020 color gamut(old name)</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/mediaqueries-4/#color-gamut"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/4535"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="the rec-2020 (old name for rec2020) color-gamut is not syntactically supported"> +<meta name="flags" content=""> +<style> +div { + width: 100px; + height: 100px; + background-color: green; +} + +@media (color-gamut: rec-2020), + not (color-gamut: rec-2020) +{ + div { background-color: red; } +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. + +<div></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-negative-range-001.html b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-negative-range-001.html new file mode 100644 index 0000000..eb1030a8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/mediaqueries/mq-negative-range-001.html
@@ -0,0 +1,40 @@ +<!doctype html> +<title>Test: false in the negative range</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/mediaqueries-4/#mq-syntax"> +<link rel="help" href="https://www.w3.org/TR/mediaqueries-4/#false-in-the-negative-range"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/1454"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" content="features that are 'false in the negative range' should still parse with negative values"> +<meta name="flags" content=""> +<style> +div { + width: 100px; + height: 100px; + background-color: red; +} + +@media + (min-width: -100px) + and + (min-height: -100px) + and + (min-resolution: -1dpi) + and + (min-color: -10) + and + (min-color-index: -10) + and + (min-monochrome: -10) + and + (min-device-width: -100px) + and + (min-device-height: -100px) +{ + div { background-color: green; } +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. + +<div></div>
diff --git a/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print-ref.svg b/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print-ref.svg index 5d58e49..4717ac4 100644 --- a/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print-ref.svg +++ b/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print-ref.svg
@@ -2,4 +2,5 @@ <rect x="0" y="0" width="200" height="200" fill="green" /> <rect x="0" y="0" width="100" height="200" fill="red"/> <rect x="90" y="0" width="20" height="200" fill="black" /> +<rect x="0" y="0" width="200" height="4" fill="black" /> </svg>
diff --git a/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print.svg b/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print.svg index ea8e3d2..b63ec72 100644 --- a/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print.svg +++ b/third_party/blink/web_tests/external/wpt/svg/painting/reftests/mask-print.svg
@@ -1,6 +1,6 @@ <svg width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/1999/xhtml"> -<html:meta name="fuzzy" content="1;17280" /> +<html:meta name="fuzzy" content="0-1;0-17280" /> <html:link rel="match" href="mask-print-ref.svg" /> <defs> <mask id="Mask"> @@ -11,4 +11,5 @@ <rect x="0" y="0" width="200" height="200" fill="green" /> <rect x="0" y="0" width="200" height="200" fill="red" mask="url(#Mask)" /> <rect x="90" y="0" width="20" height="200" fill="black" /> +<rect x="0" y="0" width="200" height="4" fill="black" /> </svg>
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/3d-corners-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/3d-corners-expected.png new file mode 100644 index 0000000..dd2d657 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/3d-corners-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/3d-cube-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/3d-cube-expected.png new file mode 100644 index 0000000..31bbe80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/3d-cube-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/absolute-position-changed-in-composited-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/absolute-position-changed-in-composited-layer-expected.png new file mode 100644 index 0000000..ba706ee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/absolute-position-changed-in-composited-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/absolute-position-changed-with-composited-parent-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/absolute-position-changed-with-composited-parent-layer-expected.png new file mode 100644 index 0000000..ba706ee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/absolute-position-changed-with-composited-parent-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png new file mode 100644 index 0000000..bb7ec6a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/busy-indicator-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/state-at-end-event-transform-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/state-at-end-event-transform-layer-expected.png new file mode 100644 index 0000000..10e342ff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/animation/state-at-end-event-transform-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility-transformed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility-transformed-expected.png new file mode 100644 index 0000000..0096542 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility-transformed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-3d-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-3d-expected.png new file mode 100644 index 0000000..342d8d075 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-3d-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-hierarchical-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-hierarchical-transform-expected.png new file mode 100644 index 0000000..f94bb9e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-hierarchical-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-image-expected.png new file mode 100644 index 0000000..0d1bfef0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-non3d-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-non3d-expected.png new file mode 100644 index 0000000..b6a4da9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-non3d-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-simple-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-simple-expected.png new file mode 100644 index 0000000..b3d5843 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-simple-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-webgl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-webgl-expected.png new file mode 100644 index 0000000..21e942f8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/backface-visibility/backface-visibility-webgl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/background-color/background-color-outside-document-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/background-color/background-color-outside-document-expected.png new file mode 100644 index 0000000..c346eb9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/background-color/background-color-outside-document-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/checkerboard-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/checkerboard-expected.png new file mode 100644 index 0000000..95e575a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/checkerboard-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/child-layer-3d-sorting-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/child-layer-3d-sorting-expected.png new file mode 100644 index 0000000..c6a7dc7a3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/child-layer-3d-sorting-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/color-matching/image-color-matching-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/color-matching/image-color-matching-expected.png new file mode 100644 index 0000000..31f88dfe5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/color-matching/image-color-matching-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/composited-scaled-child-with-border-radius-parent-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/composited-scaled-child-with-border-radius-parent-clip-expected.png new file mode 100644 index 0000000..fcb9ddb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/composited-scaled-child-with-border-radius-parent-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/composited-translated-child-with-border-radius-parent-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/composited-translated-child-with-border-radius-parent-clip-expected.png new file mode 100644 index 0000000..8fa2523 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/composited-translated-child-with-border-radius-parent-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/compositing-visible-descendant-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/compositing-visible-descendant-expected.png new file mode 100644 index 0000000..afea6e50 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/compositing-visible-descendant-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/clear-fixed-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/clear-fixed-iframe-expected.png new file mode 100644 index 0000000..3f0e2cdf --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/clear-fixed-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-alpha-expected.png new file mode 100644 index 0000000..5edbd6f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-alpha-large-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-alpha-large-expected.png new file mode 100644 index 0000000..1bc5b522 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-alpha-large-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-blur-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-blur-expected.png new file mode 100644 index 0000000..474a9558 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-blur-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-blur-large-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-blur-large-expected.png new file mode 100644 index 0000000..20db530 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/filter-occlusion-blur-large-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/scrolled-within-boxshadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/scrolled-within-boxshadow-expected.png new file mode 100644 index 0000000..f5df8252 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/scrolled-within-boxshadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/tile-occlusion-boundaries-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/tile-occlusion-boundaries-expected.png new file mode 100644 index 0000000..3cdc9ba --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/tile-occlusion-boundaries-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/translated-boxshadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/translated-boxshadow-expected.png new file mode 100644 index 0000000..a199aa9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/translated-boxshadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/unscrolled-within-boxshadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/unscrolled-within-boxshadow-expected.png new file mode 100644 index 0000000..f5df8252 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/culling/unscrolled-within-boxshadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/direct-image-compositing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/direct-image-compositing-expected.png new file mode 100644 index 0000000..21898ef5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/direct-image-compositing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-background-after-style-recalc-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-background-after-style-recalc-expected.png new file mode 100644 index 0000000..09ebee7f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-background-after-style-recalc-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-body-background-positioned-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-body-background-positioned-expected.png new file mode 100644 index 0000000..3b2238b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-body-background-positioned-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-changed-in-composited-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-changed-in-composited-layer-expected.png new file mode 100644 index 0000000..ba706ee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-changed-in-composited-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-changed-within-composited-parent-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-changed-within-composited-parent-layer-expected.png new file mode 100644 index 0000000..ba706ee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-changed-within-composited-parent-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-scroll-offset-history-restore-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-scroll-offset-history-restore-expected.png new file mode 100644 index 0000000..ece07ee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/fixed-position-scroll-offset-history-restore-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/flat-with-transformed-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/flat-with-transformed-child-expected.png new file mode 100644 index 0000000..540072e4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/flat-with-transformed-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/framesets/composited-frame-alignment-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/framesets/composited-frame-alignment-expected.png new file mode 100644 index 0000000..16ed5985 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/framesets/composited-frame-alignment-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/generated-content-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/generated-content-expected.png new file mode 100644 index 0000000..ffe947d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/generated-content-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/abs-position-inside-opacity-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/abs-position-inside-opacity-expected.png new file mode 100644 index 0000000..8f8a65d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/abs-position-inside-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/ancestor-overflow-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/ancestor-overflow-change-expected.png new file mode 100644 index 0000000..ad7cabce --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/ancestor-overflow-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-clipped-composited-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-clipped-composited-child-expected.png new file mode 100644 index 0000000..3ccafc9b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-clipped-composited-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-ignores-hidden-dynamic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-ignores-hidden-dynamic-expected.png new file mode 100644 index 0000000..235542d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-ignores-hidden-dynamic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.png new file mode 100644 index 0000000..0108983 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/clipping-foreground-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/clipping-foreground-expected.png new file mode 100644 index 0000000..487bc1cc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/clipping-foreground-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/composited-html-size-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/composited-html-size-expected.png new file mode 100644 index 0000000..5602817 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/composited-html-size-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/composited-in-columns-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/composited-in-columns-expected.png new file mode 100644 index 0000000..4094a2c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/composited-in-columns-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-in-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-in-composited-expected.png new file mode 100644 index 0000000..16ff91b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-in-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png new file mode 100644 index 0000000..dde1bfc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-down-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-expected.png new file mode 100644 index 0000000..3defcf57 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-composited-page-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-expected.png new file mode 100644 index 0000000..b898ab57 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-iframe-composited-page-scale-down-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-iframe-composited-page-scale-down-expected.png new file mode 100644 index 0000000..0778ec8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-iframe-composited-page-scale-down-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-iframe-composited-page-scale-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-iframe-composited-page-scale-expected.png new file mode 100644 index 0000000..0bb7a48 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-iframe-composited-page-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png new file mode 100644 index 0000000..1f9359dd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png new file mode 100644 index 0000000..6f45270 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/flipped-writing-mode-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/flipped-writing-mode-expected.png new file mode 100644 index 0000000..33b2b15 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/flipped-writing-mode-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/foreground-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/foreground-layer-expected.png new file mode 100644 index 0000000..b8b09b8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/foreground-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/foreground-offset-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/foreground-offset-change-expected.png new file mode 100644 index 0000000..e6ab6c71 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/foreground-offset-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/horizontal-scroll-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/horizontal-scroll-composited-expected.png new file mode 100644 index 0000000..de95d695 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/horizontal-scroll-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/layer-due-to-layer-children-deep-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/layer-due-to-layer-children-deep-expected.png new file mode 100644 index 0000000..08fd2b0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/layer-due-to-layer-children-deep-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/layer-due-to-layer-children-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/layer-due-to-layer-children-expected.png new file mode 100644 index 0000000..a28865bf --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/layer-due-to-layer-children-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/outline-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/outline-change-expected.png new file mode 100644 index 0000000..6fe4588 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/outline-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/partial-layout-update-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/partial-layout-update-expected.png new file mode 100644 index 0000000..4eebff6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/partial-layout-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/repaint-foreground-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/repaint-foreground-layer-expected.png new file mode 100644 index 0000000..125eff4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/repaint-foreground-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/root-layer-update-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/root-layer-update-expected.png new file mode 100644 index 0000000..3038cf29 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/root-layer-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/rtl-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/rtl-composited-expected.png new file mode 100644 index 0000000..c440971f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/rtl-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/tall-page-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/tall-page-composited-expected.png new file mode 100644 index 0000000..7b64aa0e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/tall-page-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/transformed-abs-position-inside-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/transformed-abs-position-inside-composited-expected.png new file mode 100644 index 0000000..8a14aacd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/transformed-abs-position-inside-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.png new file mode 100644 index 0000000..7e4232e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/vertical-scroll-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/vertical-scroll-composited-expected.png new file mode 100644 index 0000000..34fbeff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/vertical-scroll-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/video-fixed-scrolling-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/video-fixed-scrolling-expected.png new file mode 100644 index 0000000..6d9c8d4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/video-fixed-scrolling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/video-opacity-overlay-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/video-opacity-overlay-expected.png new file mode 100644 index 0000000..cd4333b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/geometry/video-opacity-overlay-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png new file mode 100644 index 0000000..eed8f5a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-rotated-div-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png new file mode 100644 index 0000000..543aaf7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-rotated-link-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-transparent-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-transparent-expected.png new file mode 100644 index 0000000..f4826962 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-pixel-transparent-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png new file mode 100644 index 0000000..1dbf044 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-simple-scaledX-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png new file mode 100644 index 0000000..f7d0097f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-skew-matrix-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png new file mode 100644 index 0000000..20c66b2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-with-box-shadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png new file mode 100644 index 0000000..066aeee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/gestures/gesture-tapHighlight-with-squashing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/composited-iframe-alignment-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/composited-iframe-alignment-expected.png new file mode 100644 index 0000000..7695cae --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/composited-iframe-alignment-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/composited-iframe-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/composited-iframe-scroll-expected.png new file mode 100644 index 0000000..8571713 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/composited-iframe-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/fixed-position-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/fixed-position-iframe-expected.png new file mode 100644 index 0000000..599a86b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/fixed-position-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-content-flipping-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-content-flipping-expected.png new file mode 100644 index 0000000..3504b3f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-content-flipping-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-copy-on-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-copy-on-scroll-expected.png new file mode 100644 index 0000000..cc6c055 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-copy-on-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-in-composited-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-in-composited-layer-expected.png new file mode 100644 index 0000000..603e3082 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/iframe-in-composited-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-iframe-expected.png new file mode 100644 index 0000000..c744796 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-expected.png new file mode 100644 index 0000000..c744796 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/invisible-nested-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/nested-composited-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/nested-composited-iframe-expected.png new file mode 100644 index 0000000..599a86b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/nested-composited-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/nested-iframe-scrolling-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/nested-iframe-scrolling-expected.png new file mode 100644 index 0000000..87973882 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/nested-iframe-scrolling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/repaint-after-losing-scrollbars-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/repaint-after-losing-scrollbars-expected.png new file mode 100644 index 0000000..ae22e9b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/repaint-after-losing-scrollbars-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scroll-fixed-transformed-element-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scroll-fixed-transformed-element-expected.png new file mode 100644 index 0000000..6cede919 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scroll-fixed-transformed-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scroll-grandchild-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scroll-grandchild-iframe-expected.png new file mode 100644 index 0000000..80d5914a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/iframes/scroll-grandchild-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/content-image-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/content-image-change-expected.png new file mode 100644 index 0000000..2769d76 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/content-image-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-background-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-background-color-expected.png new file mode 100644 index 0000000..da7b5aa3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-background-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-clip-path-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-clip-path-expected.png new file mode 100644 index 0000000..e67e686d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-clip-path-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-dynamic-clip-path-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-dynamic-clip-path-expected.png new file mode 100644 index 0000000..e67e686d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-image-dynamic-clip-path-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-svg-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-svg-image-expected.png new file mode 100644 index 0000000..ea1030e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/images/direct-svg-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/img-layer-grow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/img-layer-grow-expected.png new file mode 100644 index 0000000..8e91a3c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/img-layer-grow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/img-layer-object-fit-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/img-layer-object-fit-expected.png new file mode 100644 index 0000000..8ab6f61 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/img-layer-object-fit-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-and-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-and-transform-expected.png new file mode 100644 index 0000000..752fbc9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-and-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-scroll-expected.png new file mode 100644 index 0000000..e262db3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-under-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-under-transform-expected.png new file mode 100644 index 0000000..752fbc9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/fixed-position-under-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-child-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-child-layer-expected.png new file mode 100644 index 0000000..9d87b3ab --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-child-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.png new file mode 100644 index 0000000..8b7e993 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-and-clipped-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-layer-expected.png new file mode 100644 index 0000000..9d87b3ab --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-layer-with-transform-body-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-layer-with-transform-body-expected.png new file mode 100644 index 0000000..a6e4351 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/overlap-transformed-layer-with-transform-body-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/spanOverlapsCanvas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/spanOverlapsCanvas-expected.png new file mode 100644 index 0000000..3a7f71f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layer-creation/spanOverlapsCanvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layers-inside-overflow-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layers-inside-overflow-scroll-expected.png new file mode 100644 index 0000000..d11cce0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layers-inside-overflow-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layout-width-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layout-width-change-expected.png new file mode 100644 index 0000000..9822a1b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/layout-width-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/lots-of-img-layers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/lots-of-img-layers-expected.png new file mode 100644 index 0000000..6883ca4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/lots-of-img-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/lots-of-img-layers-with-opacity-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/lots-of-img-layers-with-opacity-expected.png new file mode 100644 index 0000000..ee75e0c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/lots-of-img-layers-with-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/direct-image-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/direct-image-mask-expected.png new file mode 100644 index 0000000..f09cca2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/direct-image-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/mask-of-clipped-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/mask-of-clipped-layer-expected.png new file mode 100644 index 0000000..1ae18182 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/mask-of-clipped-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/masked-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/masked-ancestor-expected.png new file mode 100644 index 0000000..e14316e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/masked-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/multiple-masks-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/multiple-masks-expected.png new file mode 100644 index 0000000..ad9d763 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/multiple-masks-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/simple-composited-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/simple-composited-mask-expected.png new file mode 100644 index 0000000..3ec7361 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/masks/simple-composited-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/massive-scale-interest-rect-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/massive-scale-interest-rect-expected.png new file mode 100644 index 0000000..d3d6737e7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/massive-scale-interest-rect-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/nested-border-radius-composited-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/nested-border-radius-composited-child-expected.png new file mode 100644 index 0000000..71a6e64 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/nested-border-radius-composited-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/nested-direct-image-compositing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/nested-direct-image-compositing-expected.png new file mode 100644 index 0000000..de963f3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/nested-direct-image-compositing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/opacity-with-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/opacity-with-mask-expected.png new file mode 100644 index 0000000..e802395 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/opacity-with-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png new file mode 100644 index 0000000..2d1aaba --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/accelerated-scrolling-with-clip-path-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/accelerated-scrolling-with-clip-path-text-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/accelerated-scrolling-with-clip-path-text-expected.png new file mode 100644 index 0000000..e644bb9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/accelerated-scrolling-with-clip-path-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/ancestor-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/ancestor-overflow-expected.png new file mode 100644 index 0000000..058ec98 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/ancestor-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-above-composited-subframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-above-composited-subframe-expected.png new file mode 100644 index 0000000..93f5e22a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-above-composited-subframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png new file mode 100644 index 0000000..0b96948 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-composited-subframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png new file mode 100644 index 0000000..0fe5e7e76 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-grandparent-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png new file mode 100644 index 0000000..c0068f2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-parent-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-squashed-layers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-squashed-layers-expected.png new file mode 100644 index 0000000..9f437ba9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-squashed-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png new file mode 100644 index 0000000..c44f46c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-on-two-ancestors-composited-grandchild-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-outside-bounds-of-compositing-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-outside-bounds-of-compositing-ancestor-expected.png new file mode 100644 index 0000000..7948e09 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-outside-bounds-of-compositing-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-styles-with-composited-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-styles-with-composited-child-expected.png new file mode 100644 index 0000000..02a228f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/border-radius-styles-with-composited-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-content-under-overflow-controls-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-content-under-overflow-controls-expected.png new file mode 100644 index 0000000..dde7bbf8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-content-under-overflow-controls-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-parent-reset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-parent-reset-expected.png new file mode 100644 index 0000000..53cbfe8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clip-parent-reset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png new file mode 100644 index 0000000..004a4586 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/composited-layer-under-border-radius-under-composited-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/composited-layer-under-border-radius-under-composited-layer-expected.png new file mode 100644 index 0000000..907f478 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/composited-layer-under-border-radius-under-composited-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png new file mode 100644 index 0000000..f775693 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/fixed-position-ancestor-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/fixed-position-ancestor-clip-expected.png new file mode 100644 index 0000000..b0057ff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/fixed-position-ancestor-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/fractional-sized-scrolling-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/fractional-sized-scrolling-layer-expected.png new file mode 100644 index 0000000..7f0b7894 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/fractional-sized-scrolling-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..1833e11 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/grandchild-composited-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..1833e11 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/grandchild-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/image-load-overflow-scrollbars-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/image-load-overflow-scrollbars-expected.png new file mode 100644 index 0000000..c0f12b5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/image-load-overflow-scrollbars-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/mask-with-filter-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/mask-with-filter-expected.png new file mode 100644 index 0000000..906dd4b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/mask-with-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/mask-with-small-content-rect-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/mask-with-small-content-rect-expected.png new file mode 100644 index 0000000..81e54f80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/mask-with-small-content-rect-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-border-radius-clipping-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-border-radius-clipping-expected.png new file mode 100644 index 0000000..a0299c1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-border-radius-clipping-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-expected.png new file mode 100644 index 0000000..c659c80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png new file mode 100644 index 0000000..2778568 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-with-intervening-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-with-rotation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-with-rotation-expected.png new file mode 100644 index 0000000..bea19dad --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-render-surfaces-with-rotation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-scrolling-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-scrolling-expected.png new file mode 100644 index 0000000..3544c45 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/nested-scrolling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png new file mode 100644 index 0000000..10d9153 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-compositing-descendant-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-compositing-descendant-expected.png new file mode 100644 index 0000000..d285fe26 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-compositing-descendant-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-hidden-canvas-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-hidden-canvas-layer-expected.png new file mode 100644 index 0000000..2c24647 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-hidden-canvas-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-positioning-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-positioning-expected.png new file mode 100644 index 0000000..3ec02c6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-positioning-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scaled-descendant-overlapping-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scaled-descendant-overlapping-expected.png new file mode 100644 index 0000000..48dce68 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scaled-descendant-overlapping-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scroll-expected.png new file mode 100644 index 0000000..38d5831 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scroll-with-local-image-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scroll-with-local-image-background-expected.png new file mode 100644 index 0000000..bf127fd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/overflow-scroll-with-local-image-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png new file mode 100644 index 0000000..faa957f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/parent-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/parent-overflow-expected.png new file mode 100644 index 0000000..9e6c45b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/parent-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/relpos-under-abspos-border-radius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/relpos-under-abspos-border-radius-expected.png new file mode 100644 index 0000000..ed480437 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/relpos-under-abspos-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/remove-overflow-crash2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/remove-overflow-crash2-expected.png new file mode 100644 index 0000000..ad37897d3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/remove-overflow-crash2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/repaint-after-losing-scrollbars-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/repaint-after-losing-scrollbars-expected.png new file mode 100644 index 0000000..cf52e06 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/repaint-after-losing-scrollbars-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png new file mode 100644 index 0000000..43d39b0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-effect-interleave-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-effect-interleave-expected.png new file mode 100644 index 0000000..99946db --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-effect-interleave-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-expected.png new file mode 100644 index 0000000..00798e9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-z-order-interleave-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-z-order-interleave-expected.png new file mode 100644 index 0000000..6413b6e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/rotate-then-clip-z-order-interleave-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scaled-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scaled-mask-expected.png new file mode 100644 index 0000000..71bbf14 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scaled-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-ancestor-update-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-ancestor-update-expected.png new file mode 100644 index 0000000..ed395e5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-ancestor-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-neg-z-index-and-composited-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-neg-z-index-and-composited-child-expected.png new file mode 100644 index 0000000..0ad21d1d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-neg-z-index-and-composited-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor-expected.png new file mode 100644 index 0000000..82eadeff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png new file mode 100644 index 0000000..7ce6cc56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-negative-z-index-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-negative-z-index-child-expected.png new file mode 100644 index 0000000..8986f6aa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-negative-z-index-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-negative-z-index-child-positioned-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-negative-z-index-child-positioned-expected.png new file mode 100644 index 0000000..8986f6aa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-layer-placement-negative-z-index-child-positioned-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-painting-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-painting-expected.png new file mode 100644 index 0000000..aac3fe6d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbar-painting-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbars-with-clipped-owner-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbars-with-clipped-owner-expected.png new file mode 100644 index 0000000..43bc11f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/scrollbars-with-clipped-owner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..1833e11 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-composited-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png new file mode 100644 index 0000000..49fbb2e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-with-border-radius-ancestor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-with-border-radius-ancestor-expected.png new file mode 100644 index 0000000..bea96ba --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/siblings-with-border-radius-ancestor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/theme-affects-visual-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/theme-affects-visual-overflow-expected.png new file mode 100644 index 0000000..222cc9ff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/theme-affects-visual-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/tiled-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/tiled-mask-expected.png new file mode 100644 index 0000000..afac061 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/tiled-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/transform-in-empty-container-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/transform-in-empty-container-expected.png new file mode 100644 index 0000000..178979a2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/transform-in-empty-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/universal-accelerated-overflow-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/universal-accelerated-overflow-scroll-expected.png new file mode 100644 index 0000000..0c8703a6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/universal-accelerated-overflow-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png new file mode 100644 index 0000000..281de3f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/zero-size-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/zero-size-overflow-expected.png new file mode 100644 index 0000000..626a5c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overflow/zero-size-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/children-opacity-huge-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/children-opacity-huge-expected.png new file mode 100644 index 0000000..13d7e8a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/children-opacity-huge-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/children-opacity-no-overlap-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/children-opacity-no-overlap-expected.png new file mode 100644 index 0000000..6103be37 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/children-opacity-no-overlap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/reflection-opacity-huge-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/reflection-opacity-huge-expected.png new file mode 100644 index 0000000..89a81aba --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/overlap-blending/reflection-opacity-huge-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/perpendicular-layer-sorting-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/perpendicular-layer-sorting-expected.png new file mode 100644 index 0000000..786cdd9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/perpendicular-layer-sorting-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/perspective-interest-rect-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/perspective-interest-rect-expected.png new file mode 100644 index 0000000..c2fd815a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/perspective-interest-rect-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-alpha-expected.png new file mode 100644 index 0000000..e10689e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-no-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-no-alpha-expected.png new file mode 100644 index 0000000..3312fbee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-no-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-reflection-expected.png new file mode 100644 index 0000000..da34ac5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/plugins/webplugin-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/preserve-3d-toggle-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/preserve-3d-toggle-expected.png new file mode 100644 index 0000000..626a5c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/preserve-3d-toggle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png new file mode 100644 index 0000000..ceed7d7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/animation-inside-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/backface-hidden-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/backface-hidden-reflection-expected.png new file mode 100644 index 0000000..626a5c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/backface-hidden-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/become-simple-composited-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/become-simple-composited-reflection-expected.png new file mode 100644 index 0000000..57ac096 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/become-simple-composited-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/compositing-change-inside-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/compositing-change-inside-reflection-expected.png new file mode 100644 index 0000000..ca749888 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/compositing-change-inside-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png new file mode 100644 index 0000000..c45610e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/deeply-nested-reflections-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/enable-disable-compositing-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/enable-disable-compositing-reflection-expected.png new file mode 100644 index 0000000..ea1030e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/enable-disable-compositing-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/masked-reflection-on-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/masked-reflection-on-composited-expected.png new file mode 100644 index 0000000..c73f410 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/masked-reflection-on-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-animated-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-animated-expected.png new file mode 100644 index 0000000..918ebd7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-animated-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png new file mode 100644 index 0000000..d7365d2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png new file mode 100644 index 0000000..16657d7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-on-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png new file mode 100644 index 0000000..122b5cb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png new file mode 100644 index 0000000..203fe86 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-size-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transformed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transformed-expected.png new file mode 100644 index 0000000..f34e388 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transformed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transformed2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transformed2-expected.png new file mode 100644 index 0000000..fd4df3f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transformed2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png new file mode 100644 index 0000000..7f224c2f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/nested-reflection-transition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-in-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-in-composited-expected.png new file mode 100644 index 0000000..02c46fd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-in-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-on-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-on-composited-expected.png new file mode 100644 index 0000000..512312fc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-on-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-opacity-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-opacity-expected.png new file mode 100644 index 0000000..a6e4884 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-opacity-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-ordering-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-ordering-expected.png new file mode 100644 index 0000000..018dc6b0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-ordering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-positioning-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-positioning-expected.png new file mode 100644 index 0000000..2fad879 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-positioning-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-positioning2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-positioning2-expected.png new file mode 100644 index 0000000..96824786 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/reflection-positioning2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/remove-add-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/remove-add-reflection-expected.png new file mode 100644 index 0000000..4d16665 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/remove-add-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/simple-composited-reflections-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/simple-composited-reflections-expected.png new file mode 100644 index 0000000..755cbe4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/simple-composited-reflections-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png new file mode 100644 index 0000000..8161158 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/reflections/transform-inside-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/render-surface-alpha-blending-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/render-surface-alpha-blending-expected.png new file mode 100644 index 0000000..7b800bdc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/render-surface-alpha-blending-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rounded-corners-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rounded-corners-expected.png new file mode 100644 index 0000000..e6cdc54 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rounded-corners-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-expected.png new file mode 100644 index 0000000..7bcaeaa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-overflow-expected.png new file mode 100644 index 0000000..08139776 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png new file mode 100644 index 0000000..89f6bd14 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-absolute-overflow-scrolled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-expected.png new file mode 100644 index 0000000..7bcaeaa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-overflow-expected.png new file mode 100644 index 0000000..08139776 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png new file mode 100644 index 0000000..89f6bd14 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-fixed-overflow-scrolled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.png new file mode 100644 index 0000000..7bcaeaa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.png new file mode 100644 index 0000000..5e5bcb0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png new file mode 100644 index 0000000..d465dc7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.png new file mode 100644 index 0000000..7bcaeaa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.png new file mode 100644 index 0000000..5e5bcb0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png new file mode 100644 index 0000000..d465dc7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.png new file mode 100644 index 0000000..ecfea5e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-iframe-relative-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-overflow-invalidation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-overflow-invalidation-expected.png new file mode 100644 index 0000000..dc499e6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-overflow-invalidation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-overflow-scrolling-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-overflow-scrolling-expected.png new file mode 100644 index 0000000..f0cff81b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-overflow-scrolling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-relative-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-relative-expected.png new file mode 100644 index 0000000..ed9606f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/rtl/rtl-relative-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scaling/tiled-layer-recursion-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scaling/tiled-layer-recursion-expected.png new file mode 100644 index 0000000..d91ad28 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scaling/tiled-layer-recursion-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scissor-out-of-viewport-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scissor-out-of-viewport-expected.png new file mode 100644 index 0000000..0ad21d1d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scissor-out-of-viewport-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scroll-with-ancestor-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scroll-with-ancestor-clip-expected.png new file mode 100644 index 0000000..f85ac14 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scroll-with-ancestor-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbar-painting-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbar-painting-expected.png new file mode 100644 index 0000000..dde7bbf8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbar-painting-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbars/custom-composited-different-track-parts-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbars/custom-composited-different-track-parts-expected.png new file mode 100644 index 0000000..0aa2974 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbars/custom-composited-different-track-parts-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbars/nested-overlay-scrollbars-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbars/nested-overlay-scrollbars-expected.png new file mode 100644 index 0000000..7b92870 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/scrollbars/nested-overlay-scrollbars-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/self-painting-layers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/self-painting-layers-expected.png new file mode 100644 index 0000000..3a4aec9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/self-painting-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/shadows/shadow-drawing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/shadows/shadow-drawing-expected.png new file mode 100644 index 0000000..cce6a22 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/shadows/shadow-drawing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/sibling-positioning-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/sibling-positioning-expected.png new file mode 100644 index 0000000..41dcf4d75 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/sibling-positioning-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/frame-clip-squashed-scrolled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/frame-clip-squashed-scrolled-expected.png new file mode 100644 index 0000000..19adc2a7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/frame-clip-squashed-scrolled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.png new file mode 100644 index 0000000..c1290ece --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/selection-repaint-with-gaps-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-print-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-print-expected.png new file mode 100644 index 0000000..2349f84 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/squashing-print-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/vertical-writing-mode-squashed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/vertical-writing-mode-squashed-expected.png new file mode 100644 index 0000000..1d5faab --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/squashing/vertical-writing-mode-squashed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/text-on-large-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/text-on-large-layer-expected.png new file mode 100644 index 0000000..f77f320 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/text-on-large-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/text-on-scaled-surface-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/text-on-scaled-surface-expected.png new file mode 100644 index 0000000..4acaf9b156 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/text-on-scaled-surface-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/transitions/scale-transition-no-start-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/transitions/scale-transition-no-start-expected.png new file mode 100644 index 0000000..6498972 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/transitions/scale-transition-no-start-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/transitions/singular-scale-transition-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/transitions/singular-scale-transition-expected.png new file mode 100644 index 0000000..87942d92 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/transitions/singular-scale-transition-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png new file mode 100644 index 0000000..175d5cd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-layer-creation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-squashing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-squashing-expected.png new file mode 100644 index 0000000..535c375 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/video/video-controls-squashing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.png new file mode 100644 index 0000000..87973882 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/layer-visible-content-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-composited-expected.png new file mode 100644 index 0000000..f9e2fe4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-composited-transforms-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-composited-transforms-expected.png new file mode 100644 index 0000000..626a5c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-composited-transforms-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-image-layers-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-image-layers-expected.png new file mode 100644 index 0000000..ddfeed8a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-image-layers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-on-distant-descendant-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-on-distant-descendant-expected.png new file mode 100644 index 0000000..9d87b3ab --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-on-distant-descendant-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-canvas2d-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-canvas2d-layer-expected.png new file mode 100644 index 0000000..af96f84 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-canvas2d-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-video-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-video-layer-expected.png new file mode 100644 index 0000000..2a6e0ff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-video-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-webgl-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-webgl-layer-expected.png new file mode 100644 index 0000000..af96f84 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/visibility/visibility-simple-webgl-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-background-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-background-color-expected.png new file mode 100644 index 0000000..292672c6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-background-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-no-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-no-alpha-expected.png new file mode 100644 index 0000000..4df897ad --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-no-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-nonpremultiplied-blend-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-nonpremultiplied-blend-expected.png new file mode 100644 index 0000000..e91e3d5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-nonpremultiplied-blend-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-reflection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-reflection-expected.png new file mode 100644 index 0000000..3b97e94e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-reflection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-repaint-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-repaint-expected.png new file mode 100644 index 0000000..82c662b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/webgl/webgl-repaint-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/z-order/collect-layers-does-not-initialize-pos-z-order-list-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/z-order/collect-layers-does-not-initialize-pos-z-order-list-expected.png new file mode 100644 index 0000000..04b62d8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/z-order/collect-layers-does-not-initialize-pos-z-order-list-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/z-order/negative-z-index-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/z-order/negative-z-index-expected.png new file mode 100644 index 0000000..93f0f90 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/compositing/z-order/negative-z-index-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/external/wpt/css/css-transforms/css-transform-scale-001-manual-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/external/wpt/css/css-transforms/css-transform-scale-001-manual-expected.png new file mode 100644 index 0000000..c47a061 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/external/wpt/css/css-transforms/css-transform-scale-001-manual-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/001-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/001-expected.png new file mode 100644 index 0000000..1bbc5b6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-gif-as-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-gif-as-background-expected.png new file mode 100644 index 0000000..e1b6465 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-gif-as-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-gif-as-background-rounded-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-gif-as-background-rounded-expected.png new file mode 100644 index 0000000..90b4a1d8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-gif-as-background-rounded-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-svg-as-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-svg-as-mask-expected.png new file mode 100644 index 0000000..4be86116 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/animated-svg-as-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-clip-text-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-clip-text-expected.png new file mode 100644 index 0000000..eef029c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-clip-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-clip-text-on-body-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-clip-text-on-body-expected.png new file mode 100644 index 0000000..0ad21d1d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-clip-text-on-body-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-color-image-border-radius-bleed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-color-image-border-radius-bleed-expected.png new file mode 100644 index 0000000..6ed5951 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-color-image-border-radius-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-fast-path-simple-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-fast-path-simple-color-expected.png new file mode 100644 index 0000000..626a5c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-fast-path-simple-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-inherit-color-bug-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-inherit-color-bug-expected.png new file mode 100644 index 0000000..189af50 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-inherit-color-bug-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-leakage-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-leakage-expected.png new file mode 100644 index 0000000..7fb4c13 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-leakage-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-leakage-transforms-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-leakage-transforms-expected.png new file mode 100644 index 0000000..ec5d58f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-leakage-transforms-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-multi-image-border-radius-bleed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-multi-image-border-radius-bleed-expected.png new file mode 100644 index 0000000..6ed5951 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-multi-image-border-radius-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-origin-root-element-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-origin-root-element-expected.png new file mode 100644 index 0000000..47025e01 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-origin-root-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png new file mode 100644 index 0000000..81fc419 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png new file mode 100644 index 0000000..526d726 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-parsing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-rounding-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-rounding-expected.png new file mode 100644 index 0000000..44166b8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-position-rounding-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-repeat-with-background-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-repeat-with-background-color-expected.png new file mode 100644 index 0000000..e451792 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-repeat-with-background-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-svg-scaling-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-svg-scaling-expected.png new file mode 100644 index 0000000..a3b7054 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-svg-scaling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-tiling-sub-pixel-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-tiling-sub-pixel-expected.png new file mode 100644 index 0000000..4c3da5e3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-tiling-sub-pixel-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-with-sub-pixel-offset-positioning-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-with-sub-pixel-offset-positioning-expected.png new file mode 100644 index 0000000..dce1d55 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/background-with-sub-pixel-offset-positioning-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/body-generated-image-propagated-to-root-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/body-generated-image-propagated-to-root-expected.png new file mode 100644 index 0000000..e1ddc26 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/body-generated-image-propagated-to-root-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/border-radius-split-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/border-radius-split-background-expected.png new file mode 100644 index 0000000..5879ccb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/border-radius-split-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/border-radius-split-background-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/border-radius-split-background-image-expected.png new file mode 100644 index 0000000..53e2da80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/border-radius-split-background-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/gradient-background-leakage-2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/gradient-background-leakage-2-expected.png new file mode 100644 index 0000000..ddb4701 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/gradient-background-leakage-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/gradient-background-leakage-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/gradient-background-leakage-expected.png new file mode 100644 index 0000000..bb55565f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/gradient-background-leakage-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/mask-box-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/mask-box-image-expected.png new file mode 100644 index 0000000..f651e5b0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/mask-box-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/mask-composite-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/mask-composite-expected.png new file mode 100644 index 0000000..ea199d5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/mask-composite-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/opacity-on-document-element-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/opacity-on-document-element-expected.png new file mode 100644 index 0000000..cd5e038f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/opacity-on-document-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png new file mode 100644 index 0000000..b2f35bd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png new file mode 100644 index 0000000..15d67b4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png new file mode 100644 index 0000000..94bb12d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/noRepeatCorrectClip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/noRepeatCorrectClip-expected.png new file mode 100644 index 0000000..6ed8cb00 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/repeat/noRepeatCorrectClip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/root-background-propagation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/root-background-propagation-expected.png new file mode 100644 index 0000000..599a86b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/root-background-propagation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/root-background-propagation2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/root-background-propagation2-expected.png new file mode 100644 index 0000000..db608c9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/root-background-propagation2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/selection-background-color-of-image-list-style-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/selection-background-color-of-image-list-style-expected.png new file mode 100644 index 0000000..154cdb4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/selection-background-color-of-image-list-style-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/selection-background-color-of-list-style-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/selection-background-color-of-list-style-expected.png new file mode 100644 index 0000000..73fcf50 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/selection-background-color-of-list-style-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize01-expected.png new file mode 100644 index 0000000..1fa9c932 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize02-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize02-expected.png new file mode 100644 index 0000000..5439565e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize02-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize03-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize03-expected.png new file mode 100644 index 0000000..5a0ea64 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize03-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize04-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize04-expected.png new file mode 100644 index 0000000..a7dfcf22 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize04-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize05-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize05-expected.png new file mode 100644 index 0000000..bcb984f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize05-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize06-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize06-expected.png new file mode 100644 index 0000000..b4a726f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize06-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize07-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize07-expected.png new file mode 100644 index 0000000..fb1f057 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize07-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize08-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize08-expected.png new file mode 100644 index 0000000..8885f5f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize08-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize09-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize09-expected.png new file mode 100644 index 0000000..b5e14ae --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize09-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize10-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize10-expected.png new file mode 100644 index 0000000..89dd6e7d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize10-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize11-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize11-expected.png new file mode 100644 index 0000000..c99aae10 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize11-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize12-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize12-expected.png new file mode 100644 index 0000000..6f020783 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize12-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize13-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize13-expected.png new file mode 100644 index 0000000..910fd0d1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize13-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize14-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize14-expected.png new file mode 100644 index 0000000..cd435e2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize14-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize15-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize15-expected.png new file mode 100644 index 0000000..c8be4c444 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize15-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize16-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize16-expected.png new file mode 100644 index 0000000..b0d5b02 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize16-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize17-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize17-expected.png new file mode 100644 index 0000000..711d1bb9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize17-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize18-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize18-expected.png new file mode 100644 index 0000000..bf3eeed --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize18-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize19-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize19-expected.png new file mode 100644 index 0000000..c7aeda17 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize19-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize20-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize20-expected.png new file mode 100644 index 0000000..711d1bb9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize20-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize21-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize21-expected.png new file mode 100644 index 0000000..bf3eeed --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize21-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize22-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize22-expected.png new file mode 100644 index 0000000..57b0a0a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/backgroundSize22-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/contain-and-cover-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/contain-and-cover-expected.png new file mode 100644 index 0000000..c38f8321 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/contain-and-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/contain-and-cover-zoomed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/contain-and-cover-zoomed-expected.png new file mode 100644 index 0000000..e1c1f90 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/contain-and-cover-zoomed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/scaled-sprited-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/scaled-sprited-background-expected.png new file mode 100644 index 0000000..7115f43 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/scaled-sprited-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/zero-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/zero-expected.png new file mode 100644 index 0000000..6877ccf --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/size/zero-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/svg-as-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/svg-as-mask-expected.png new file mode 100644 index 0000000..626cc1f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/svg-as-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-body-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-body-background-expected.png new file mode 100644 index 0000000..948c6ec --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-body-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-body-html-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-body-html-background-expected.png new file mode 100644 index 0000000..3f0c436 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-body-html-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-html-body-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-html-body-background-expected.png new file mode 100644 index 0000000..1a721fd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/backgrounds/transformed-html-body-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-002-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-002-expected.png new file mode 100644 index 0000000..bded15b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-002-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-009a-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-009a-expected.png new file mode 100644 index 0000000..c126c969 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-009a-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-012-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-012-expected.png new file mode 100644 index 0000000..143e8f5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/bidi-012-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/block-mask-overlay-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/block-mask-overlay-image-expected.png new file mode 100644 index 0000000..bd9fc2b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/block-mask-overlay-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/block-mask-overlay-image-outset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/block-mask-overlay-image-outset-expected.png new file mode 100644 index 0000000..7c2ea45 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/block-mask-overlay-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-antialiasing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-antialiasing-expected.png new file mode 100644 index 0000000..d9e8534 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-antialiasing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png new file mode 100644 index 0000000..40f4c56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png new file mode 100644 index 0000000..95805107 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png new file mode 100644 index 0000000..40f4c56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-longhand-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png new file mode 100644 index 0000000..5c8e4802 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-massive-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-omit-right-slice-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-omit-right-slice-expected.png new file mode 100644 index 0000000..f59d3d5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-omit-right-slice-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png new file mode 100644 index 0000000..3c8c0711 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png new file mode 100644 index 0000000..3c8c0711 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-in-shorthand-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png new file mode 100644 index 0000000..1f5510d8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-outset-split-inline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png new file mode 100644 index 0000000..40f4c56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png new file mode 100644 index 0000000..2171b81 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-round-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-both-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-both-expected.png new file mode 100644 index 0000000..4c3240d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-both-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-horiz-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-horiz-expected.png new file mode 100644 index 0000000..e55f5db --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-horiz-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-non-multiple-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-non-multiple-expected.png new file mode 100644 index 0000000..05996d066 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-repeat-space-non-multiple-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png new file mode 100644 index 0000000..c6ab150 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-rotate-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png new file mode 100644 index 0000000..01e44c65 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png new file mode 100644 index 0000000..e4819632 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-gradient-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-gradient-expected.png new file mode 100644 index 0000000..397461f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scaled-gradient-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png new file mode 100644 index 0000000..40f4c56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-scrambled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-side-reduction-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-side-reduction-expected.png new file mode 100644 index 0000000..a348bae --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-side-reduction-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png new file mode 100644 index 0000000..9403866b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slice-constrained-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png new file mode 100644 index 0000000..876241b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-slices-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png new file mode 100644 index 0000000..40f4c56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-trumps-radius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-trumps-radius-expected.png new file mode 100644 index 0000000..626a5c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-image-trumps-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-inner-bleed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-inner-bleed-expected.png new file mode 100644 index 0000000..f965d48 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-inner-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-large-radius-opposite-wide-edge-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-large-radius-opposite-wide-edge-expected.png new file mode 100644 index 0000000..519522d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-large-radius-opposite-wide-edge-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-left-right-same-bottom-different-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-left-right-same-bottom-different-color-expected.png new file mode 100644 index 0000000..e78702a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-left-right-same-bottom-different-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-mixed-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-mixed-alpha-expected.png new file mode 100644 index 0000000..034a6ea --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-mixed-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-mixed-alpha2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-mixed-alpha2-expected.png new file mode 100644 index 0000000..64dc62f7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-mixed-alpha2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-background-constrained-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-background-constrained-expected.png new file mode 100644 index 0000000..51ac866 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-background-constrained-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-circle-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-circle-expected.png new file mode 100644 index 0000000..b94a6c1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-circle-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-complex-inner-double-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-complex-inner-double-expected.png new file mode 100644 index 0000000..21b7b81 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-complex-inner-double-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-complex-inner-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-complex-inner-expected.png new file mode 100644 index 0000000..615adce --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-complex-inner-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-constraints-double-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-constraints-double-expected.png new file mode 100644 index 0000000..bdf8e39 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-constraints-double-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-constraints-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-constraints-expected.png new file mode 100644 index 0000000..ae9c21fc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-constraints-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-different-width-001-double-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-different-width-001-double-expected.png new file mode 100644 index 0000000..56c1401e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-different-width-001-double-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-different-width-001-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-different-width-001-expected.png new file mode 100644 index 0000000..6bf9a00 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-different-width-001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-01-expected.png new file mode 100644 index 0000000..91a10d43 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-02-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-02-expected.png new file mode 100644 index 0000000..4d78705d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-02-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-03-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-03-expected.png new file mode 100644 index 0000000..3865e9a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-groove-03-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-huge-assert-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-huge-assert-expected.png new file mode 100644 index 0000000..69969b4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-huge-assert-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-inline-flow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-inline-flow-expected.png new file mode 100644 index 0000000..3b09814e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-inline-flow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-inset-outset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-inset-outset-expected.png new file mode 100644 index 0000000..622650cf --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-inset-outset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-all-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-all-expected.png new file mode 100644 index 0000000..e7799b34 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-border-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-border-expected.png new file mode 100644 index 0000000..14e558d6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-border-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-expected.png new file mode 100644 index 0000000..5ca5a0f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-padding-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-padding-expected.png new file mode 100644 index 0000000..bf6b84e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-padding-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-with-mask-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-with-mask-expected.png new file mode 100644 index 0000000..bd40cd08 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-with-mask-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-with-shadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-with-shadow-expected.png new file mode 100644 index 0000000..64f4918e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-canvas-with-shadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-expected.png new file mode 100644 index 0000000..d2cbffb96 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-ratio-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-ratio-expected.png new file mode 100644 index 0000000..6da6551 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-ratio-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-shadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-shadow-expected.png new file mode 100644 index 0000000..e72de9f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-mask-video-shadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-percent-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-percent-expected.png new file mode 100644 index 0000000..278d10e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-percent-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-split-inline-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-split-inline-expected.png new file mode 100644 index 0000000..12de418 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-split-inline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-valid-border-clipping-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-valid-border-clipping-expected.png new file mode 100644 index 0000000..a6ee1cd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-valid-border-clipping-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-01-expected.png new file mode 100644 index 0000000..b7e3f2f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-02-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-02-expected.png new file mode 100644 index 0000000..499da00 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-02-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-03-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-03-expected.png new file mode 100644 index 0000000..75c2fe705 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-03-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-04-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-04-expected.png new file mode 100644 index 0000000..6fcd841 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-04-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-05-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-05-expected.png new file mode 100644 index 0000000..d27695e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-wide-border-05-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-box-shadow-01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-box-shadow-01-expected.png new file mode 100644 index 0000000..5c30011e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-box-shadow-01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-box-shadow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-box-shadow-expected.png new file mode 100644 index 0000000..a2214267 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/fast/borders/border-radius-with-box-shadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-images-cached-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-images-cached-image-expected.png new file mode 100644 index 0000000..a90d136b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-images-cached-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossless-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossless-images-expected.png new file mode 100644 index 0000000..ef80d00ac --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossless-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossless-images-strict-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossless-images-strict-expected.png new file mode 100644 index 0000000..27b370d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossless-images-strict-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossy-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossy-images-expected.png new file mode 100644 index 0000000..e0b099d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/document-policy-unoptimized-lossy-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/gif-animated-partial-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/gif-animated-partial-load-expected.png new file mode 100644 index 0000000..3cf2616b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/gif-animated-partial-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/jpeg-partial-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/jpeg-partial-load-expected.png new file mode 100644 index 0000000..24c3f2f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/jpeg-partial-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-animated-partial-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-animated-partial-load-expected.png new file mode 100644 index 0000000..6b2155f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-animated-partial-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-as-document-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-as-document-expected.png new file mode 100644 index 0000000..5a93e998 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-as-document-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-expected.png new file mode 100644 index 0000000..eea5030 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-no-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-no-alpha-expected.png new file mode 100644 index 0000000..d21bb26 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-partial-load-no-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-progressive-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-progressive-load-expected.png new file mode 100644 index 0000000..c1b74f1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/png-progressive-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/webp-partial-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/webp-partial-load-expected.png new file mode 100644 index 0000000..d1eb33df --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/webp-partial-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/webp-progressive-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/webp-progressive-load-expected.png new file mode 100644 index 0000000..e70fc45 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/http/tests/images/webp-progressive-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/12-55-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/12-55-expected.png new file mode 100644 index 0000000..c709cd2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/12-55-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/182-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/182-expected.png new file mode 100644 index 0000000..4d84fd7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/182-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/2-comp-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/2-comp-expected.png new file mode 100644 index 0000000..f07a15ab --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/2-comp-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/2-dht-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/2-dht-expected.png new file mode 100644 index 0000000..c39ecc6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/2-dht-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/23-55-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/23-55-expected.png new file mode 100644 index 0000000..ca77590 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/23-55-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/55-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/55-expected.png new file mode 100644 index 0000000..4f7e941 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/55-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/alt-text-wrapping-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/alt-text-wrapping-expected.png new file mode 100644 index 0000000..90aa894 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/alt-text-wrapping-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cHRM_color_spin-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cHRM_color_spin-expected.png new file mode 100644 index 0000000..b400b32 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cHRM_color_spin-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-jpeg-with-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..f46f7e7b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-animate-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-animate-expected.png new file mode 100644 index 0000000..2cf02a1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-animate-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-animate-rotate-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-animate-rotate-expected.png new file mode 100644 index 0000000..4cc2c43f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-animate-rotate-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-clip-text-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-clip-text-expected.png new file mode 100644 index 0000000..1aa7af0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-clip-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cover-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cover-expected.png new file mode 100644 index 0000000..c044e0e5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cover-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cross-fade-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cross-fade-expected.png new file mode 100644 index 0000000..42b2ee9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cross-fade-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cross-fade-png-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cross-fade-png-expected.png new file mode 100644 index 0000000..42b2ee9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-cross-fade-png-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-repeat-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-repeat-expected.png new file mode 100644 index 0000000..3715184 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-repeat-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-space-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-space-expected.png new file mode 100644 index 0000000..52be7bd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-background-image-space-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-fade-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-fade-expected.png new file mode 100644 index 0000000..30c7e003 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-fade-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png new file mode 100644 index 0000000..d6628b6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png new file mode 100644 index 0000000..40f4c56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-border-image-source-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-clip-expected.png new file mode 100644 index 0000000..3a4eab8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-drag-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-drag-image-expected.png new file mode 100644 index 0000000..6201271 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-drag-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png new file mode 100644 index 0000000..fec63e5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-group-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-iframe-expected.png new file mode 100644 index 0000000..4426cee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-expected.png new file mode 100644 index 0000000..bd3f990 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-pattern-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-pattern-expected.png new file mode 100644 index 0000000..21e3901 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-pattern-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-svg-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-svg-expected.png new file mode 100644 index 0000000..d9b22bc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-canvas-svg-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-filter-all-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-filter-all-expected.png new file mode 100644 index 0000000..c68f29c10 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-filter-all-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-object-fit-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-object-fit-expected.png new file mode 100644 index 0000000..cbbad10a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-object-fit-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-pseudo-content-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-pseudo-content-expected.png new file mode 100644 index 0000000..f7d7852 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-pseudo-content-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-shape-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-shape-expected.png new file mode 100644 index 0000000..44efe86 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-shape-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-svg-resource-url-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-svg-resource-url-expected.png new file mode 100644 index 0000000..a164f628 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-image-svg-resource-url-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-mask-image-svg-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-mask-image-svg-expected.png new file mode 100644 index 0000000..6812fa8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-mask-image-svg-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-adobe-to-srgb-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-adobe-to-srgb-expected.png new file mode 100644 index 0000000..1c1fd77 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-adobe-to-srgb-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-adobe-to-srgb-webgl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-adobe-to-srgb-webgl-expected.png new file mode 100644 index 0000000..fbd22eb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-adobe-to-srgb-webgl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-srgb-to-srgb-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-srgb-to-srgb-expected.png new file mode 100644 index 0000000..488daf5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-munsell-srgb-to-srgb-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-object-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-object-expected.png new file mode 100644 index 0000000..8303492 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-object-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-expected.png new file mode 100644 index 0000000..2f895215 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-fill-text-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-fill-text-expected.png new file mode 100644 index 0000000..21e1271 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-fill-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-foreign-object-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-foreign-object-expected.png new file mode 100644 index 0000000..cf94c31b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/color-profile-svg-foreign-object-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-background-size-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-background-size-expected.png new file mode 100644 index 0000000..8b4b87c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-background-size-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-blending-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-blending-expected.png new file mode 100644 index 0000000..2769d76 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-blending-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-invalidation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-invalidation-expected.png new file mode 100644 index 0000000..eed7b7c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-invalidation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-overflow-position-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-overflow-position-expected.png new file mode 100644 index 0000000..b8b9f15 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-overflow-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-simple-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-simple-expected.png new file mode 100644 index 0000000..3aba588e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-simple-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-sizing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-sizing-expected.png new file mode 100644 index 0000000..16a51e3e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-sizing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-svg-size-diff-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-svg-size-diff-expected.png new file mode 100644 index 0000000..cddcd4fd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-svg-size-diff-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-svg-size-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-svg-size-expected.png new file mode 100644 index 0000000..2a22a507 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-svg-size-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-tiled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-tiled-expected.png new file mode 100644 index 0000000..8ee3b36 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/cross-fade-tiled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/directly-composited-image-orientation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/directly-composited-image-orientation-expected.png new file mode 100644 index 0000000..a1395e0c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/directly-composited-image-orientation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-2-expected.png new file mode 100644 index 0000000..6d83db7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-descendant-iframe-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-descendant-iframe-composited-expected.png new file mode 100644 index 0000000..82205152 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-descendant-iframe-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-descendant-painting-sibling-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-descendant-painting-sibling-expected.png new file mode 100644 index 0000000..82205152 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-descendant-painting-sibling-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-expected.png new file mode 100644 index 0000000..366d125 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-transformed-child-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-transformed-child-expected.png new file mode 100644 index 0000000..7881fe8f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-transformed-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-transformed-parent-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-transformed-parent-expected.png new file mode 100644 index 0000000..82205152 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-image-transformed-parent-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-svg-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-svg-image-expected.png new file mode 100644 index 0000000..00c9272 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/drag-svg-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/embed-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/embed-image-expected.png new file mode 100644 index 0000000..6d79c81 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/embed-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/favicon-as-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/favicon-as-image-expected.png new file mode 100644 index 0000000..655e945 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/favicon-as-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gif-loop-count-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gif-loop-count-expected.png new file mode 100644 index 0000000..b244cf84c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gif-loop-count-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gif-short-app-extension-string-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gif-short-app-extension-string-expected.png new file mode 100644 index 0000000..3735b25 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gif-short-app-extension-string-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gray-scale-jpeg-with-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gray-scale-jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..18c25d2e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gray-scale-jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gray-scale-png-with-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gray-scale-png-with-color-profile-expected.png new file mode 100644 index 0000000..8d494b4b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/gray-scale-png-with-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/icon-0colors-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/icon-0colors-expected.png new file mode 100644 index 0000000..5a44ba0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/icon-0colors-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/icon-decoding-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/icon-decoding-expected.png new file mode 100644 index 0000000..4f4c0b4e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/icon-decoding-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-css3-content-data-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-css3-content-data-expected.png new file mode 100644 index 0000000..fd853d45 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-css3-content-data-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-in-map-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-in-map-expected.png new file mode 100644 index 0000000..ee8064ae --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-in-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-map-anchor-children-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-map-anchor-children-expected.png new file mode 100644 index 0000000..b83146e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/image-map-anchor-children-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-circle-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-circle-focus-ring-expected.png new file mode 100644 index 0000000..bfea906 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-expected.png new file mode 100644 index 0000000..3d592a3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-in-positioned-container-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-in-positioned-container-expected.png new file mode 100644 index 0000000..03412b4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-in-positioned-container-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-expected.png new file mode 100644 index 0000000..8865a47 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png new file mode 100644 index 0000000..4117a3f3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-explicitly-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png new file mode 100644 index 0000000..a216aa7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-outline-color-not-inherited-from-map-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-with-paint-root-offset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-with-paint-root-offset-expected.png new file mode 100644 index 0000000..1523c1a5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-with-paint-root-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-with-scale-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-with-scale-transform-expected.png new file mode 100644 index 0000000..97cba0b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-with-scale-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-zero-outline-width-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-zero-outline-width-expected.png new file mode 100644 index 0000000..d8b99ef --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-zero-outline-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-zoom-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-zoom-expected.png new file mode 100644 index 0000000..a3d2bed --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-focus-ring-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-overflowing-circle-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-overflowing-circle-focus-ring-expected.png new file mode 100644 index 0000000..b3f261c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-overflowing-circle-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-overflowing-polygon-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-overflowing-polygon-focus-ring-expected.png new file mode 100644 index 0000000..7bfd109 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-overflowing-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-polygon-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-polygon-focus-ring-expected.png new file mode 100644 index 0000000..aab16c7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/imagemap-polygon-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-with-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-with-color-profile-expected.png new file mode 100644 index 0000000..b1eaf63 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-with-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-image-decoding-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-image-decoding-expected.png new file mode 100644 index 0000000..1267e9d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-image-decoding-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-progressive-canvas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-progressive-canvas-expected.png new file mode 100644 index 0000000..692d6ca --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-progressive-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-progressive-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-progressive-image-expected.png new file mode 100644 index 0000000..008c433 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/jpeg-yuv-progressive-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/mask-box-image-crash-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/mask-box-image-crash-expected.png new file mode 100644 index 0000000..0ad21d1d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/mask-box-image-crash-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/missing-image-border-zoom-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/missing-image-border-zoom-expected.png new file mode 100644 index 0000000..ee571be --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/missing-image-border-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/motion-jpeg-single-frame-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/motion-jpeg-single-frame-expected.png new file mode 100644 index 0000000..ae50a70 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/motion-jpeg-single-frame-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/object-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/object-image-expected.png new file mode 100644 index 0000000..6d79c81 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/object-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/optimize-contrast-canvas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/optimize-contrast-canvas-expected.png new file mode 100644 index 0000000..ddebadb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/optimize-contrast-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/optimize-contrast-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/optimize-contrast-image-expected.png new file mode 100644 index 0000000..ddebadb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/optimize-contrast-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paint-subrect-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paint-subrect-expected.png new file mode 100644 index 0000000..856b967 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paint-subrect-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paint-subrect-grid-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paint-subrect-grid-expected.png new file mode 100644 index 0000000..599d90a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paint-subrect-grid-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paletted-png-with-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paletted-png-with-color-profile-expected.png new file mode 100644 index 0000000..3dc018e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/paletted-png-with-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pdf-as-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pdf-as-background-expected.png new file mode 100644 index 0000000..a0a5dbb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pdf-as-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pdf-as-tiled-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pdf-as-tiled-background-expected.png new file mode 100644 index 0000000..a0a5dbb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pdf-as-tiled-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixel-crack-image-background-webkit-transform-scale-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixel-crack-image-background-webkit-transform-scale-expected.png new file mode 100644 index 0000000..7f81158 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixel-crack-image-background-webkit-transform-scale-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-background-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-background-image-expected.png new file mode 100644 index 0000000..046077715 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-background-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-border-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-border-image-expected.png new file mode 100644 index 0000000..f922140 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-border-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-canvas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-canvas-expected.png new file mode 100644 index 0000000..ef0cb80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-canvas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-composited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-composited-expected.png new file mode 100644 index 0000000..d74fbd1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-composited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-image-expected.png new file mode 100644 index 0000000..ef0cb80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-svg-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-svg-image-expected.png new file mode 100644 index 0000000..ef0cb80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/pixelated-svg-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-color-profile-ignore-gamma-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-color-profile-ignore-gamma-expected.png new file mode 100644 index 0000000..f992167 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-color-profile-ignore-gamma-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-inside-ico-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-inside-ico-expected.png new file mode 100644 index 0000000..0dd995fb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-inside-ico-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-suite/test-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-suite/test-expected.png new file mode 100644 index 0000000..2c5b2450 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-suite/test-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-with-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-with-color-profile-expected.png new file mode 100644 index 0000000..b1eaf63 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png-with-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png_per_row_alpha_decoding-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png_per_row_alpha_decoding-expected.png new file mode 100644 index 0000000..14d4bc4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/png_per_row_alpha_decoding-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-0px-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-0px-images-expected.png new file mode 100644 index 0000000..e987618d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-0px-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-0px-images-quirk-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-0px-images-quirk-expected.png new file mode 100644 index 0000000..baee84c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-0px-images-quirk-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-10px-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-10px-images-expected.png new file mode 100644 index 0000000..777635d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-10px-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-16px-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-16px-images-expected.png new file mode 100644 index 0000000..113c293 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-16px-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-1px-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-1px-images-expected.png new file mode 100644 index 0000000..1f3f554 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-1px-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-block-flow-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-block-flow-images-expected.png new file mode 100644 index 0000000..651c4d3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-block-flow-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png new file mode 100644 index 0000000..7e2d94b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-empty-alt-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-expected.png new file mode 100644 index 0000000..5e54c06 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rendering-broken-images-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rgb-jpeg-with-adobe-marker-only-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rgb-jpeg-with-adobe-marker-only-expected.png new file mode 100644 index 0000000..e35d848 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rgb-jpeg-with-adobe-marker-only-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rgb-png-with-cmyk-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rgb-png-with-cmyk-color-profile-expected.png new file mode 100644 index 0000000..8fc9aaf7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/rgb-png-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/sprite-no-bleed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/sprite-no-bleed-expected.png new file mode 100644 index 0000000..6091699 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/sprite-no-bleed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-color-profile-lossless-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-color-profile-lossless-expected.png new file mode 100644 index 0000000..286a3c4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-color-profile-lossless-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-color-profile-lossy-alpha-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-color-profile-lossy-alpha-expected.png new file mode 100644 index 0000000..97d049c8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-color-profile-lossy-alpha-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-flip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-flip-expected.png new file mode 100644 index 0000000..faf767b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/webp-flip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/ycbcr-with-cmyk-color-profile-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/ycbcr-with-cmyk-color-profile-expected.png new file mode 100644 index 0000000..eb0b8de --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/ycbcr-with-cmyk-color-profile-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-border-radius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-border-radius-expected.png new file mode 100644 index 0000000..20c9509 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-filter-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-filter-expected.png new file mode 100644 index 0000000..abfde15 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-image-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-image-expected.png new file mode 100644 index 0000000..b2ecb9f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-image-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png new file mode 100644 index 0000000..c4294f7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-image-profile-match-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-layer-expected.png new file mode 100644 index 0000000..bc00e7da --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-layer-filter-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-layer-filter-expected.png new file mode 100644 index 0000000..032e85ce --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/color-profile-layer-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/webp-color-profile-lossy-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/webp-color-profile-lossy-expected.png new file mode 100644 index 0000000..d235781cd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/webp-color-profile-lossy-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png new file mode 100644 index 0000000..b9f16c5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/images/yuv-decode-eligible/webp-no-color-profile-lossy-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/fieldset-legend-background-shadow-border-radius-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/fieldset-legend-background-shadow-border-radius-expected.png new file mode 100644 index 0000000..623a424 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/fieldset-legend-background-shadow-border-radius-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/root-element-background-transparency-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/root-element-background-transparency-expected.png new file mode 100644 index 0000000..8adad0a1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/root-element-background-transparency-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/rounded-clip-fractional-offset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/rounded-clip-fractional-offset-expected.png new file mode 100644 index 0000000..9629f2ae --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/background/rounded-clip-fractional-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/clipath/clip-path-with-background-and-box-behind-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/clipath/clip-path-with-background-and-box-behind-expected.png new file mode 100644 index 0000000..0d42ad4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/clipath/clip-path-with-background-and-box-behind-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/filters/clip-filter-overflow-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/filters/clip-filter-overflow-clip-expected.png new file mode 100644 index 0000000..2d7ef0a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/filters/clip-filter-overflow-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/filters/clip-under-filter-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/filters/clip-under-filter-expected.png new file mode 100644 index 0000000..6500ba96 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/filters/clip-under-filter-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/frames/frameset-with-stacking-context-and-not-stacking-context-children-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/frames/frameset-with-stacking-context-and-not-stacking-context-children-expected.png new file mode 100644 index 0000000..b0566c1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/frames/frameset-with-stacking-context-and-not-stacking-context-children-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/frames/frameset-with-stacking-contexts-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/frames/frameset-with-stacking-contexts-expected.png new file mode 100644 index 0000000..5dd6331 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/frames/frameset-with-stacking-contexts-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/inline/outline-offset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/inline/outline-offset-expected.png new file mode 100644 index 0000000..1375cff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/inline/outline-offset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png new file mode 100644 index 0000000..6d4ff713 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4774354-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png new file mode 100644 index 0000000..b56cbed --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/4776765-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png new file mode 100644 index 0000000..a1a55b0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-image-paint-invalidation-large-abspos-div-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-image-paint-invalidation-small-document-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-image-paint-invalidation-small-document-expected.png new file mode 100644 index 0000000..f70271f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/background-image-paint-invalidation-small-document-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-move-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-move-overflow-expected.png new file mode 100644 index 0000000..0c59bd5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-move-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-resize-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-resize-expected.png new file mode 100644 index 0000000..4ae776d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-resize-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-resize-overflow-expected.png new file mode 100644 index 0000000..4ae776d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/background/viewport-gradient-background-html-resize-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/border-radius-repaint-2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/border-radius-repaint-2-expected.png new file mode 100644 index 0000000..93c20f5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/box/border-radius-repaint-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/bugzilla-7235-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/bugzilla-7235-expected.png new file mode 100644 index 0000000..8a62c265 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/bugzilla-7235-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-putImageData-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-putImageData-expected.png new file mode 100644 index 0000000..6a0c9aba --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-putImageData-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-resize-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-resize-expected.png new file mode 100644 index 0000000..cb008c3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-resize-no-full-invalidation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-resize-no-full-invalidation-expected.png new file mode 100644 index 0000000..88040e3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/canvas-resize-no-full-invalidation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png new file mode 100644 index 0000000..345135f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-outside-block-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-subpixel-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-subpixel-expected.png new file mode 100644 index 0000000..7affdd98 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/caret-subpixel-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/background-clip-text-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/background-clip-text-expected.png new file mode 100644 index 0000000..3817ea1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/background-clip-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/intermediate-layout-position-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/intermediate-layout-position-clip-expected.png new file mode 100644 index 0000000..2d31b2b3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/clip/intermediate-layout-position-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/become-overlay-composited-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/become-overlay-composited-layer-expected.png new file mode 100644 index 0000000..f0801ea --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/become-overlay-composited-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/clip-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/clip-change-expected.png new file mode 100644 index 0000000..87973882 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/clip-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-document-element-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-document-element-expected.png new file mode 100644 index 0000000..afa1a5b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/composited-document-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-added-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-added-expected.png new file mode 100644 index 0000000..b1dd58b5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-added-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-added-individual-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-added-individual-expected.png new file mode 100644 index 0000000..b1dd58b5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-added-individual-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-removed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-removed-expected.png new file mode 100644 index 0000000..f077c93 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-removed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-removed-individual-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-removed-individual-expected.png new file mode 100644 index 0000000..f077c93 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/containing-block-removed-individual-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/content-into-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/content-into-overflow-expected.png new file mode 100644 index 0000000..78954fd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/content-into-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/fixed-pos-inside-composited-intermediate-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/fixed-pos-inside-composited-intermediate-layer-expected.png new file mode 100644 index 0000000..48923a6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/fixed-pos-inside-composited-intermediate-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/fixed-scroll-in-empty-root-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/fixed-scroll-in-empty-root-layer-expected.png new file mode 100644 index 0000000..2eb4f405 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/fixed-scroll-in-empty-root-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png new file mode 100644 index 0000000..42ff182 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/invalidations-with-large-negative-margin-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/layer-repaint-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/layer-repaint-expected.png new file mode 100644 index 0000000..d904556 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/layer-repaint-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/layer-repaint-rects-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/layer-repaint-rects-expected.png new file mode 100644 index 0000000..d9e8611 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/layer-repaint-rects-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/new-stacking-context-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/new-stacking-context-expected.png new file mode 100644 index 0000000..e9d7a2a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/new-stacking-context-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/newly-composited-on-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/newly-composited-on-scroll-expected.png new file mode 100644 index 0000000..e90878258 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/newly-composited-on-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png new file mode 100644 index 0000000..c37ac74 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/newly-composited-repaint-rect-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/opacity-between-absolute-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/opacity-between-absolute-expected.png new file mode 100644 index 0000000..23333c57 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/opacity-between-absolute-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/opacity-between-absolute2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/opacity-between-absolute2-expected.png new file mode 100644 index 0000000..c144f589 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/opacity-between-absolute2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overflow-into-content-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overflow-into-content-expected.png new file mode 100644 index 0000000..6699f9b6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/overflow-into-content-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/page-scale-repaint-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/page-scale-repaint-expected.png new file mode 100644 index 0000000..f97f6ae --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/page-scale-repaint-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png new file mode 100644 index 0000000..96f66bde --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/requires-backing-repaint-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/requires-backing-repaint-expected.png new file mode 100644 index 0000000..22d58dd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/requires-backing-repaint-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/same-size-invalidation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/same-size-invalidation-expected.png new file mode 100644 index 0000000..5f61b59 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/same-size-invalidation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png new file mode 100644 index 0000000..897cde5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-layer-no-content-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png new file mode 100644 index 0000000..897cde5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-layer-out-of-view-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png new file mode 100644 index 0000000..be1c10b3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scroll-fixed-squahed-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scrolling-without-painting-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scrolling-without-painting-expected.png new file mode 100644 index 0000000..44f3a6d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/scrolling-without-painting-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-invoke-deferred-compositing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-invoke-deferred-compositing-expected.png new file mode 100644 index 0000000..70a4f81f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-invoke-deferred-compositing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png new file mode 100644 index 0000000..b249012 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png new file mode 100644 index 0000000..c4c2ee7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-repaint-composited-descendants-on-overflow-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-repaint-composited-descendants-on-overflow-change-expected.png new file mode 100644 index 0000000..040f7de --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/paint/invalidation/compositing/should-not-repaint-composited-descendants-on-overflow-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/month/month-appearance-l10n-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/month/month-appearance-l10n-expected.png new file mode 100644 index 0000000..76a1510 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/month/month-appearance-l10n-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/month/month-appearance-pseudo-elements-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/month/month-appearance-pseudo-elements-expected.png new file mode 100644 index 0000000..ca35d7dd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/month/month-appearance-pseudo-elements-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-datalist-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-datalist-expected.png new file mode 100644 index 0000000..dfabc7f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-datalist-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-rtl-expected.png new file mode 100644 index 0000000..44e3a20 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png new file mode 100644 index 0000000..4d16f42 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-spinbutton-layer-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-spinbutton-layer-expected.png new file mode 100644 index 0000000..1bf532c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/number/number-appearance-spinbutton-layer-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/placeholder-position-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/placeholder-position-expected.png new file mode 100644 index 0000000..36d3053 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/placeholder-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/plaintext-mode-2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/plaintext-mode-2-expected.png new file mode 100644 index 0000000..fa8612a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/plaintext-mode-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/radio/radio-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/radio/radio-appearance-basic-expected.png new file mode 100644 index 0000000..4ecf6dac --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/radio/radio-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/input-appearance-range-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/input-appearance-range-expected.png new file mode 100644 index 0000000..217f81dc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/input-appearance-range-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/range-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/range-appearance-basic-expected.png new file mode 100644 index 0000000..ee55bef --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/range-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/range-update-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/range-update-expected.png new file mode 100644 index 0000000..11256db --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/range-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/slider-padding-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/slider-padding-expected.png new file mode 100644 index 0000000..aee4a09 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/slider-padding-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/slider-thumb-shared-style-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/slider-thumb-shared-style-expected.png new file mode 100644 index 0000000..6e4a897 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/range/slider-thumb-shared-style-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-cancel-button-style-sharing-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-cancel-button-style-sharing-expected.png new file mode 100644 index 0000000..c3d63fec --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-cancel-button-style-sharing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-display-none-cancel-button-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-display-none-cancel-button-expected.png new file mode 100644 index 0000000..eeb863f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-display-none-cancel-button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-rtl-expected.png new file mode 100644 index 0000000..a101724 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-vertical-alignment-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-vertical-alignment-expected.png new file mode 100644 index 0000000..f11320a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/search-vertical-alignment-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/searchfield-heights-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/searchfield-heights-expected.png new file mode 100644 index 0000000..a96e211 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/search/searchfield-heights-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png new file mode 100644 index 0000000..6cf5cba1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-coarse-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-empty-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-empty-expected.png new file mode 100644 index 0000000..3a08de5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-empty-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-expected.png new file mode 100644 index 0000000..6271a126 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png new file mode 100644 index 0000000..4d8b9448 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-fractional-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-long-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-long-expected.png new file mode 100644 index 0000000..43da484 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-long-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-many-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-many-expected.png new file mode 100644 index 0000000..a3f7c33 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-many-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png new file mode 100644 index 0000000..413ca31 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-minimum-font-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png new file mode 100644 index 0000000..e9ac4ca3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-rtl-default-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png new file mode 100644 index 0000000..a9979202 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png new file mode 100644 index 0000000..663d013 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-single-option-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-styled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-styled-expected.png new file mode 100644 index 0000000..315e2c79 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-styled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png new file mode 100644 index 0000000..9b6b0ed1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-texttransform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-transform-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-transform-expected.png new file mode 100644 index 0000000..0d40d58 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-transform-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png new file mode 100644 index 0000000..edaee6e6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png new file mode 100644 index 0000000..d60be99 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png new file mode 100644 index 0000000..dba459c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/003-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/003-expected.png new file mode 100644 index 0000000..9fe171936 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/003-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/004-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/004-expected.png new file mode 100644 index 0000000..4b6a49e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/004-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label01-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label01-expected.png new file mode 100644 index 0000000..6d585aee --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label01-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label02-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label02-expected.png new file mode 100644 index 0000000..d35569e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label02-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label03-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label03-expected.png new file mode 100644 index 0000000..72e44ecb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label03-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label04-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label04-expected.png new file mode 100644 index 0000000..5504a14 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label04-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label05-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label05-expected.png new file mode 100644 index 0000000..be393806 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label05-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label06-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label06-expected.png new file mode 100644 index 0000000..5ba5fc4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label06-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label07-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label07-expected.png new file mode 100644 index 0000000..fca04e6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/HTMLOptionElement_label07-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/basic-selects-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/basic-selects-expected.png new file mode 100644 index 0000000..5b3c0ab --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/basic-selects-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/disabled-select-change-index-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/disabled-select-change-index-expected.png new file mode 100644 index 0000000..23e0585a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/disabled-select-change-index-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/input-select-after-resize-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/input-select-after-resize-expected.png new file mode 100644 index 0000000..79ee120 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/input-select-after-resize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-appearance-basic-expected.png new file mode 100644 index 0000000..08624ddc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-appearance-separator-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-appearance-separator-expected.png new file mode 100644 index 0000000..d6a0fdd7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-appearance-separator-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-bidi-align-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-bidi-align-expected.png new file mode 100644 index 0000000..2271fb3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-bidi-align-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-clip-expected.png new file mode 100644 index 0000000..d02b24e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-scrollbar-incremental-load-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-scrollbar-incremental-load-expected.png new file mode 100644 index 0000000..1736888 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-scrollbar-incremental-load-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-width-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-width-change-expected.png new file mode 100644 index 0000000..8ca4183 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-width-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-with-display-none-option-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-with-display-none-option-expected.png new file mode 100644 index 0000000..4df1542 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/listbox-with-display-none-option-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-basic-expected.png new file mode 100644 index 0000000..4e6ef52 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-none-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-none-expected.png new file mode 100644 index 0000000..5cf89c8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-rtl-expected.png new file mode 100644 index 0000000..bcc56a57 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-clip-expected.png new file mode 100644 index 0000000..0cb27a0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-deselect-update-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-deselect-update-expected.png new file mode 100644 index 0000000..b72b4c5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-deselect-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-narrow-width-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-narrow-width-expected.png new file mode 100644 index 0000000..c84f5cc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-narrow-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-no-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-no-overflow-expected.png new file mode 100644 index 0000000..7c3718e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-no-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-option-wrap-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-option-wrap-expected.png new file mode 100644 index 0000000..5952f6b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-option-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-restrict-line-height-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-restrict-line-height-expected.png new file mode 100644 index 0000000..a8c9845 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-restrict-line-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-separator-painting-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-separator-painting-expected.png new file mode 100644 index 0000000..7e10577 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-separator-painting-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-style-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-style-color-expected.png new file mode 100644 index 0000000..4554f88 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-style-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-width-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-width-change-expected.png new file mode 100644 index 0000000..a7a6b43 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/menulist-width-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png new file mode 100644 index 0000000..680edc5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/multiselect-in-listbox-keyboard-focusring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/optgroup-rendering-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/optgroup-rendering-expected.png new file mode 100644 index 0000000..aa95d8f6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/optgroup-rendering-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-script-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-script-expected.png new file mode 100644 index 0000000..e5655e0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-script-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-strip-whitespace-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-strip-whitespace-expected.png new file mode 100644 index 0000000..9179731 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-strip-whitespace-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-text-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-text-clip-expected.png new file mode 100644 index 0000000..7466056 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/option-text-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-align-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-align-expected.png new file mode 100644 index 0000000..7d7010a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-align-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-autofilled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-autofilled-expected.png new file mode 100644 index 0000000..d6cc027 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-autofilled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-background-none-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-background-none-expected.png new file mode 100644 index 0000000..6b40c641 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-background-none-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-baseline-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-baseline-expected.png new file mode 100644 index 0000000..72159ff --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-baseline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-block-background-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-block-background-expected.png new file mode 100644 index 0000000..e8d02d9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-block-background-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-listbox-size-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-listbox-size-expected.png new file mode 100644 index 0000000..aeccf5ce5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-listbox-size-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-listbox-to-popup-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-listbox-to-popup-expected.png new file mode 100644 index 0000000..9b4fafe --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-listbox-to-popup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-popup-to-listbox-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-popup-to-listbox-expected.png new file mode 100644 index 0000000..db7e0dc --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-change-popup-to-listbox-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-dirty-parent-pref-widths-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-dirty-parent-pref-widths-expected.png new file mode 100644 index 0000000..8b2262a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-dirty-parent-pref-widths-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-disabled-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-disabled-appearance-expected.png new file mode 100644 index 0000000..6f3b445 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-disabled-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-empty-option-height-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-empty-option-height-expected.png new file mode 100644 index 0000000..c6f0dc0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-empty-option-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-initial-position-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-initial-position-expected.png new file mode 100644 index 0000000..317779a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-initial-position-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-item-background-clip-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-item-background-clip-expected.png new file mode 100644 index 0000000..c72bf84 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-item-background-clip-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-list-box-with-height-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-list-box-with-height-expected.png new file mode 100644 index 0000000..9c70906d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-list-box-with-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-listbox-multiple-no-focusring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-listbox-multiple-no-focusring-expected.png new file mode 100644 index 0000000..ee41ce7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-listbox-multiple-no-focusring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-multiple-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-multiple-rtl-expected.png new file mode 100644 index 0000000..c7ef10d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-multiple-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-overflow-scroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-overflow-scroll-expected.png new file mode 100644 index 0000000..dc9a255 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-overflow-scroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-overflow-scroll-inherited-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-overflow-scroll-inherited-expected.png new file mode 100644 index 0000000..832dd1f2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-overflow-scroll-inherited-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-selected-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-selected-expected.png new file mode 100644 index 0000000..d950fe1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-selected-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-size-invalid-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-size-invalid-expected.png new file mode 100644 index 0000000..a3a4c685 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-size-invalid-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-style-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-style-expected.png new file mode 100644 index 0000000..84ba702 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-style-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-visual-hebrew-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-visual-hebrew-expected.png new file mode 100644 index 0000000..03a7e82 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-visual-hebrew-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-writing-direction-natural-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-writing-direction-natural-expected.png new file mode 100644 index 0000000..87eaa95 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/select-writing-direction-natural-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/selectlist-minsize-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/selectlist-minsize-expected.png new file mode 100644 index 0000000..6425262 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/select/selectlist-minsize-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/stuff-on-my-optgroup-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/stuff-on-my-optgroup-expected.png new file mode 100644 index 0000000..5302d2d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/stuff-on-my-optgroup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/submit/submit-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/submit/submit-appearance-basic-expected.png new file mode 100644 index 0000000..cc3ad0e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/submit/submit-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..2eeadd1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/date-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png new file mode 100644 index 0000000..982d937 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..d52bd5aa --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png new file mode 100644 index 0000000..309e635d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..930e9d2 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/month-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png new file mode 100644 index 0000000..7e05d51 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..476ee2b --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png new file mode 100644 index 0000000..3fe926bd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png new file mode 100644 index 0000000..8f815d64 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png new file mode 100644 index 0000000..f705f091 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png new file mode 100644 index 0000000..6336c9d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/tabbing-input-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/tabbing-input-iframe-expected.png new file mode 100644 index 0000000..38f62ffb7 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/tabbing-input-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/targeted-frame-submission-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/targeted-frame-submission-expected.png new file mode 100644 index 0000000..4ff7565 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/targeted-frame-submission-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text-style-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text-style-color-expected.png new file mode 100644 index 0000000..83cd97a5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text-style-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-bkcolor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-bkcolor-expected.png new file mode 100644 index 0000000..1b14e44 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-bkcolor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-default-bkcolor-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-default-bkcolor-expected.png new file mode 100644 index 0000000..492e841 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-default-bkcolor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-disabled-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-disabled-expected.png new file mode 100644 index 0000000..bd9fa75 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-focus-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-focus-expected.png new file mode 100644 index 0000000..47c1273 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-focus-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-preventDefault-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-preventDefault-expected.png new file mode 100644 index 0000000..6bbe4c8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-preventDefault-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-readonly-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-readonly-expected.png new file mode 100644 index 0000000..77026b7e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-readonly-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-selection-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-selection-expected.png new file mode 100644 index 0000000..51fbca1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-selection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-visibility-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-visibility-expected.png new file mode 100644 index 0000000..c7e9706 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-visibility-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-width-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-width-expected.png new file mode 100644 index 0000000..d4cdf112 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-appearance-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-baseline-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-baseline-expected.png new file mode 100644 index 0000000..643f379 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-baseline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-disabled-color-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-disabled-color-expected.png new file mode 100644 index 0000000..8ca74b0 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-disabled-color-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-double-click-selection-gap-bug-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-double-click-selection-gap-bug-expected.png new file mode 100644 index 0000000..1973762e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-double-click-selection-gap-bug-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-field-text-truncated-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-field-text-truncated-expected.png new file mode 100644 index 0000000..7b30c4e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-field-text-truncated-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png new file mode 100644 index 0000000..823c58c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-visibility-1-expected.png new file mode 100644 index 0000000..75fbf80 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-visibility-3-expected.png new file mode 100644 index 0000000..930d3e53 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-placeholder-visibility-3-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-autoscroll-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-autoscroll-expected.png new file mode 100644 index 0000000..92fc5f8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-autoscroll-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-dimmed-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-dimmed-expected.png new file mode 100644 index 0000000..edad1ea --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-dimmed-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-empty-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-empty-expected.png new file mode 100644 index 0000000..e0905d56 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-empty-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-spaces-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-spaces-expected.png new file mode 100644 index 0000000..a0a0eb1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-spaces-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-tab-shows-caret-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-tab-shows-caret-expected.png new file mode 100644 index 0000000..b9b64a1f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-tab-shows-caret-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-table-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-table-expected.png new file mode 100644 index 0000000..afa7a66 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-table-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-click-inside-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-click-inside-expected.png new file mode 100644 index 0000000..de35df4 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-click-inside-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-click-outside-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-click-outside-expected.png new file mode 100644 index 0000000..5c14db2d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-click-outside-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-double-click-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-double-click-expected.png new file mode 100644 index 0000000..b7719f2c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-double-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-drag-down-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-drag-down-expected.png new file mode 100644 index 0000000..6e4491c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-drag-down-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-option-delete-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-option-delete-expected.png new file mode 100644 index 0000000..3496853 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-option-delete-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-scroll-left-on-blur-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-scroll-left-on-blur-expected.png new file mode 100644 index 0000000..205cde5 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-scroll-left-on-blur-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-self-emptying-click-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-self-emptying-click-expected.png new file mode 100644 index 0000000..6f315bb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-self-emptying-click-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-word-wrap-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-word-wrap-expected.png new file mode 100644 index 0000000..7dcf1e37 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-text-word-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-width-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-width-expected.png new file mode 100644 index 0000000..66edfd66 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/input-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-appearance-basic-expected.png new file mode 100644 index 0000000..388326e9 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-appearance-datalist-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-appearance-datalist-expected.png new file mode 100644 index 0000000..40a24d3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-appearance-datalist-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-font-height-mismatch-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-font-height-mismatch-expected.png new file mode 100644 index 0000000..5139d3d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/text-font-height-mismatch-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-focus-ring-expected.png new file mode 100644 index 0000000..8e08865 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png new file mode 100644 index 0000000..eda1f4e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-outline-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-overflow-by-value-update-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-overflow-by-value-update-expected.png new file mode 100644 index 0000000..c29e39f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-overflow-by-value-update-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-overflow-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-overflow-expected.png new file mode 100644 index 0000000..ca90837 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/text/textfield-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/basic-textareas-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/basic-textareas-expected.png new file mode 100644 index 0000000..3d55212 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/basic-textareas-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/basic-textareas-quirks-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/basic-textareas-quirks-expected.png new file mode 100644 index 0000000..00f56f0a --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/basic-textareas-quirks-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/placeholder-appearance-textarea-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/placeholder-appearance-textarea-expected.png new file mode 100644 index 0000000..408ffc3 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/placeholder-appearance-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/reset-textarea-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/reset-textarea-expected.png new file mode 100644 index 0000000..9956d752 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/reset-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-align-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-align-expected.png new file mode 100644 index 0000000..a8929dd --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-align-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-appearance-basic-expected.png new file mode 100644 index 0000000..9985b10 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png new file mode 100644 index 0000000..278a457 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-paint-order-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png new file mode 100644 index 0000000..1f7849e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png new file mode 100644 index 0000000..7b0af93 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scroll-height-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scroll-height-expected.png new file mode 100644 index 0000000..aecc2bd6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scroll-height-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrollbar-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrollbar-expected.png new file mode 100644 index 0000000..a55cdda --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrollbar-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png new file mode 100644 index 0000000..ab965949 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrolled-focus-ring-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrolled-type-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrolled-type-expected.png new file mode 100644 index 0000000..9f6fcdb --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-scrolled-type-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-setinnerhtml-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-setinnerhtml-expected.png new file mode 100644 index 0000000..437b417 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-setinnerhtml-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-width-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-width-expected.png new file mode 100644 index 0000000..033f94de --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/textarea/textarea-width-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/time/time-appearance-basic-expected.png new file mode 100644 index 0000000..a9339f57 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/time/time-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/time/time-appearance-pseudo-elements-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/time/time-appearance-pseudo-elements-expected.png new file mode 100644 index 0000000..32d42f97 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/time/time-appearance-pseudo-elements-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-edge-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-edge-expected.png new file mode 100644 index 0000000..8ff0b28 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-edge-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-escape-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-escape-expected.png new file mode 100644 index 0000000..570f294f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-escape-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-iframe-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-iframe-expected.png new file mode 100644 index 0000000..f719cb8 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-iframe-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-rtl-ui-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-rtl-ui-expected.png new file mode 100644 index 0000000..c57f49d --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-rtl-ui-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-wrap-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-wrap-expected.png new file mode 100644 index 0000000..7932f630 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-appearance-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-device-emulation-change-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-device-emulation-change-expected.png new file mode 100644 index 0000000..be2fe2e1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-device-emulation-change-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-device-emulation-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-device-emulation-expected.png new file mode 100644 index 0000000..be2fe2e1 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/validation-bubble-device-emulation-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/visual-hebrew-text-field-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/visual-hebrew-text-field-expected.png new file mode 100644 index 0000000..ed8586f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/visual-hebrew-text-field-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/week/week-appearance-basic-expected.png new file mode 100644 index 0000000..d61c932 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/week/week-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/week/week-appearance-pseudo-elements-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/week/week-appearance-pseudo-elements-expected.png new file mode 100644 index 0000000..a3bad04 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/form-controls-refresh-disabled/fast/forms/week/week-appearance-pseudo-elements-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/layout_ng_fieldset/fast/forms/fieldset/fieldset-with-float-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/layout_ng_fieldset/fast/forms/fieldset/fieldset-with-float-expected.png new file mode 100644 index 0000000..5be4384f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/layout_ng_fieldset/fast/forms/fieldset/fieldset-with-float-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/layout_ng_fieldset/fast/forms/fieldset/float-before-fieldset-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/layout_ng_fieldset/fast/forms/fieldset/float-before-fieldset-expected.png new file mode 100644 index 0000000..352a73c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/layout_ng_fieldset/fast/forms/fieldset/float-before-fieldset-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/001-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/001-expected.png new file mode 100644 index 0000000..9008f5f --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/001-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/bad-xml-slash-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/bad-xml-slash-expected.png new file mode 100644 index 0000000..d5a2423c --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/bad-xml-slash-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/broken-comments-vs-parsing-mode-expected.png b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/broken-comments-vs-parsing-mode-expected.png new file mode 100644 index 0000000..8b12b78e --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/force-device-scale-factor=1.5/virtual/synchronous_html_parser/fast/parser/broken-comments-vs-parsing-mode-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt new file mode 100644 index 0000000..e43d415 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/outline/focus-ring-on-continuation-move-expected.txt
@@ -0,0 +1,15 @@ +{ + "layers": [ + { + "name": "Scrolling Contents Layer", + "bounds": [800, 600], + "contentsOpaque": true, + "backgroundColor": "#FFFFFF", + "invalidations": [ + [8, 230, 302, 104], + [6, 230, 104, 104] + ] + } + ] +} +
diff --git a/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt new file mode 100644 index 0000000..c8fc2ee6 --- /dev/null +++ b/third_party/blink/web_tests/flag-specific/layout-ng-fragment-item/paint/invalidation/outline/focus-ring-on-inline-continuation-move-expected.txt
@@ -0,0 +1,15 @@ +{ + "layers": [ + { + "name": "Scrolling Contents Layer", + "bounds": [800, 600], + "contentsOpaque": true, + "backgroundColor": "#FFFFFF", + "invalidations": [ + [6, 8, 104, 182], + [6, 6, 104, 108] + ] + } + ] +} +
diff --git a/third_party/blink/web_tests/platform/linux/fast/ruby/ruby-position-modern-japanese-fonts-expected.png b/third_party/blink/web_tests/platform/linux/fast/ruby/ruby-position-modern-japanese-fonts-expected.png index 49f6e616..6f858699 100644 --- a/third_party/blink/web_tests/platform/linux/fast/ruby/ruby-position-modern-japanese-fonts-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/ruby/ruby-position-modern-japanese-fonts-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/fast/ruby/ruby-position-modern-japanese-fonts-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/fast/ruby/ruby-position-modern-japanese-fonts-expected.png index 29e4a91..6bcb8ffe 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/fast/ruby/ruby-position-modern-japanese-fonts-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/fast/ruby/ruby-position-modern-japanese-fonts-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/ruby/ruby-position-modern-japanese-fonts-expected.png b/third_party/blink/web_tests/platform/mac/fast/ruby/ruby-position-modern-japanese-fonts-expected.png index 213acd4..384a36d 100644 --- a/third_party/blink/web_tests/platform/mac/fast/ruby/ruby-position-modern-japanese-fonts-expected.png +++ b/third_party/blink/web_tests/platform/mac/fast/ruby/ruby-position-modern-japanese-fonts-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/ruby/ruby-position-modern-japanese-fonts-expected.png b/third_party/blink/web_tests/platform/win/fast/ruby/ruby-position-modern-japanese-fonts-expected.png index a927dbf..24ab61d 100644 --- a/third_party/blink/web_tests/platform/win/fast/ruby/ruby-position-modern-japanese-fonts-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/ruby/ruby-position-modern-japanese-fonts-expected.png Binary files differ
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index fb159de4d..18a585a 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -4350,6 +4350,24 @@ </description> </action> +<action name="ChromeOS.Settings.SmartInputs.EmojiSuggestions.Open"> + <owner>myy@chromium.org</owner> + <owner>essential-inputs-team@google.com</owner> + <description> + Recorded when a user clicks the link to open Emoji Suggestions section in + Chrome OS Smart Inputs setting page. + </description> +</action> + +<action name="ChromeOS.Settings.SmartInputs.PersonalInfoSuggestions.Open"> + <owner>myy@chromium.org</owner> + <owner>essential-inputs-team@google.com</owner> + <description> + Recorded when a user clicks the link to open Personal Information + Suggestions section in Chrome OS Smart Inputs setting page. + </description> +</action> + <action name="ClearAuthenticationCache"> <owner>Please list the metric's owners. Add more owner tags as needed.</owner> <description>Please enter the description of this user action.</description> @@ -16337,6 +16355,7 @@ </action> <action name="OpenSmartInputsSettings"> + <obsolete>Deprecated 07/2020</obsolete> <owner>myy@chromium.org</owner> <owner>essential-inputs-team@google.com</owner> <description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 4b87ea2..6547fc0 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -16027,6 +16027,7 @@ <int value="36" label="Settings - Shortcuts"/> <int value="37" label="Drawer - Issues"/> <int value="38" label="Settings - Shortcuts (custom)"/> + <int value="39" label="CSS Overview"/> </enum> <enum name="DevToolsSetting">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 0c2c45f..0b9388fe 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -202177,6 +202177,7 @@ <histogram_suffixes name="IndexId" separator="." ordering="prefix,1"> <suffix name="CrosSettings" label="Cros Settings"/> + <suffix name="HelpApp" label="Help App"/> <affected-histogram name="LocalSearchService.Backend"/> <affected-histogram name="LocalSearchService.DailySearch"/> <affected-histogram name="LocalSearchService.NumberResults"/>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index f511d394..f956cb6 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -1,16 +1,16 @@ { "trace_processor_shell": { "win": { - "hash": "c3ad7be6f48e34eb9a71394e1102d2dfb57a5466", - "remote_path": "perfetto_binaries/trace_processor_shell/win/f5fe9513c1e0ac193bd94c9eb59af438cebf9b8a/trace_processor_shell.exe" + "hash": "4da4355fab5741c9081a10c27c74a69723cb1379", + "remote_path": "perfetto_binaries/trace_processor_shell/win/350be7ea7229bf9916a236738a1c5ec232d918fc/trace_processor_shell.exe" }, "mac": { "hash": "5e4c6a945f4fd4ac1a0ec196f57c64123af8008e", "remote_path": "perfetto_binaries/trace_processor_shell/mac/15131138169a31c1332e7e13914c370e2e5c816e/trace_processor_shell" }, "linux": { - "hash": "a1e0dc6f936c862ccfbbb1abb3e2f1511c263cb7", - "remote_path": "perfetto_binaries/trace_processor_shell/linux/f5fe9513c1e0ac193bd94c9eb59af438cebf9b8a/trace_processor_shell" + "hash": "d4bfc5c5f41e492c354d2b8fc246bb8a59c3781d", + "remote_path": "perfetto_binaries/trace_processor_shell/linux/350be7ea7229bf9916a236738a1c5ec232d918fc/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js b/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js index 277d2cb8..99d653a8 100644 --- a/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js +++ b/ui/file_manager/file_manager/foreground/js/file_transfer_controller.js
@@ -895,6 +895,11 @@ onDragEnterTree_(tree, event) { event.preventDefault(); // Required to prevent the cursor flicker. + if (!event.relatedTarget) { + event.dataTransfer.dropEffect = 'move'; + return; + } + this.lastEnteredTarget_ = event.target; let item = event.target; while (item && !(item instanceof cr.ui.TreeItem)) {
diff --git a/ui/file_manager/file_manager/test/crostini_mount.js b/ui/file_manager/file_manager/test/crostini_mount.js index de8be23f..2749819 100644 --- a/ui/file_manager/file_manager/test/crostini_mount.js +++ b/ui/file_manager/file_manager/test/crostini_mount.js
@@ -92,10 +92,22 @@ crostiniMount.testCrostiniMountOnDrag = async (done) => { const fakeRoot = '#directory-tree [root-type-icon="crostini"]'; chrome.fileManagerPrivate.mountCrostiniDelay_ = 0; + + function createDragDropEvent(type, relatedTarget) { + return new DragEvent(type, { + bubbles: true, + composed: true, + dataTransfer: new DataTransfer(), + relatedTarget: relatedTarget, + }); + } + await test.setupAndWaitUntilReady(); await test.waitForElement(fakeRoot); - assertTrue(test.sendEvent(fakeRoot, new Event('dragenter', {bubbles: true}))); - assertTrue(test.sendEvent(fakeRoot, new Event('dragleave', {bubbles: true}))); + const dragEnter = createDragDropEvent('dragenter', document.body); + assertTrue(test.sendEvent(fakeRoot, dragEnter)); + const dragLeave = createDragDropEvent('dragleave', null); + assertTrue(test.sendEvent(fakeRoot, dragLeave)); await test.waitForFiles( test.TestEntryInfo.getExpectedRows(test.BASIC_CROSTINI_ENTRY_SET)); chrome.fileManagerPrivate.removeMount('crostini');
diff --git a/ui/file_manager/integration_tests/file_manager/transfer.js b/ui/file_manager/integration_tests/file_manager/transfer.js index 5e32e48..10d72bb 100644 --- a/ui/file_manager/integration_tests/file_manager/transfer.js +++ b/ui/file_manager/integration_tests/file_manager/transfer.js
@@ -764,8 +764,43 @@ }; /** - * Tests that we can drag a file from #file-list to #directory-tree. - * It copies the file from Downloads to Downloads/photos. + * Tests that dragging a file list item selects its file list row. + */ +testcase.transferDragFileListItemSelects = async () => { + const entries = [ENTRIES.hello, ENTRIES.photos]; + + // Open files app. + const appId = await setupAndWaitUntilReady(RootPath.DOWNLOADS, entries, []); + + // The drag has to start in the file list column "name" text, otherwise it + // starts a drag-selection instead of a drag operation. + const listItem = `#file-list li[file-name="${ENTRIES.hello.nameText}"]`; + const source = listItem + ' .entry-name'; + + // Wait for the source. + await remoteCall.waitForElement(appId, source); + + // Wait for the target. + const target = listItem + ' .detail-icon'; + await remoteCall.waitForElement(appId, target); + + // Check: the file list row should not be selected + await remoteCall.waitForElement(appId, listItem + ':not([selected])'); + + // Drag the source and hover it over the target. + const skipDrop = true; + chrome.test.assertTrue( + await remoteCall.callRemoteTestUtil( + 'fakeDragAndDrop', appId, [source, target, skipDrop]), + 'fakeDragAndDrop failed'); + + // Check: the file list row should be selected. + await remoteCall.waitForElement(appId, listItem + '[selected]'); +}; + +/** + * Tests that dropping a file on a directory tree item (folder) copies the + * file to that folder. */ testcase.transferDragAndDrop = async () => { const entries = [ENTRIES.hello, ENTRIES.photos]; @@ -776,69 +811,70 @@ // Expand Downloads to display "photos" folder in the directory tree. await expandTreeItem(appId, '#directory-tree [entry-label="Downloads"]'); - // Drag has to start in the file list column "name" text content, otherwise it - // starts a selection instead of a drag. - const src = + // The drag has to start in the file list column "name" text, otherwise it + // starts a drag-selection instead of a drag operation. + const source = `#file-list li[file-name="${ENTRIES.hello.nameText}"] .entry-name`; - const dst = '#directory-tree [entry-label="photos"]'; - // Select the file to be dragged. - chrome.test.assertTrue( - await remoteCall.callRemoteTestUtil('fakeMouseClick', appId, [src]), - 'fakeMouseClick failed'); + // Wait for the source. + await remoteCall.waitForElement(appId, source); - // Drag and drop it. + // Wait for the directory tree target. + const target = '#directory-tree [entry-label="photos"]'; + await remoteCall.waitForElement(appId, target); + + // Drag the source and drop it on the target. const skipDrop = false; chrome.test.assertTrue( await remoteCall.callRemoteTestUtil( - 'fakeDragAndDrop', appId, [src, dst, skipDrop]), + 'fakeDragAndDrop', appId, [source, target, skipDrop]), 'fakeDragAndDrop failed'); - // Navigate to the dst folder. - chrome.test.assertTrue( - !!await remoteCall.callRemoteTestUtil('fakeMouseClick', appId, [dst]), - 'fakeMouseClick failed'); + // Navigate the file list to the target. + await remoteCall.waitAndClickElement(appId, target); // Wait for navigation to finish. await remoteCall.waitUntilCurrentDirectoryIsChanged( appId, '/My files/Downloads/photos'); - // Wait for the expected files to appear in the file list. + // Check: the dropped file should appear in the file list. await remoteCall.waitForFiles( appId, TestEntryInfo.getExpectedRows([ENTRIES.hello]), {ignoreLastModifiedTime: true}); }; -/** - * Tests that we can drag a file from #file-list and hover above USB root as - * EntryList without raising an error. +/* + * Tests that dragging a file over a directory tree item (folder) navigates + * the file list to that folder. */ testcase.transferDragAndHover = async () => { const entries = [ENTRIES.hello, ENTRIES.photos]; - await sendTestMessage({name: 'mountUsbWithPartitions'}); - await sendTestMessage({name: 'mountFakeUsb'}); - // Open files app. const appId = await setupAndWaitUntilReady(RootPath.DOWNLOADS, entries, []); - // Drag has to start in the file list column "name" text content, otherwise it - // starts a selection instead of a drag. - const src = + // Expand Downloads to display "photos" folder in the directory tree. + await expandTreeItem(appId, '#directory-tree [entry-label="Downloads"]'); + + // The drag has to start in the file list column "name" text, otherwise it + // starts a drag-selection instead of a drag operation. + const source = `#file-list li[file-name="${ENTRIES.hello.nameText}"] .entry-name`; - const dst1 = '#directory-tree [entry-label="Drive Label"]'; - const dst2 = '#directory-tree [entry-label="fake-usb"]'; - // Wait for USB roots to be ready. - await remoteCall.waitForElement(appId, dst1); - await remoteCall.waitForElement(appId, dst2); + // Wait for the directory tree target. + const target = '#directory-tree [entry-label="photos"]'; + await remoteCall.waitForElement(appId, target); - // Drag and hover it. + // Drag the source and hover it over the target. const skipDrop = true; chrome.test.assertTrue( await remoteCall.callRemoteTestUtil( - 'fakeDragAndDrop', appId, [src, dst1, skipDrop]), + 'fakeDragAndDrop', appId, [source, target, skipDrop]), 'fakeDragAndDrop failed'); + + // Check: drag hovering should navigate the file list. + await remoteCall.waitUntilCurrentDirectoryIsChanged( + appId, '/My files/Downloads/photos'); }; /**
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.cc b/ui/ozone/platform/wayland/host/wayland_event_source.cc index 48d500ae..41f1863 100644 --- a/ui/ozone/platform/wayland/host/wayland_event_source.cc +++ b/ui/ozone/platform/wayland/host/wayland_event_source.cc
@@ -161,13 +161,18 @@ } void WaylandEventSource::OnPointerButtonEvent(EventType type, - int changed_button) { + int changed_button, + WaylandWindow* window) { DCHECK(type == ET_MOUSE_PRESSED || type == ET_MOUSE_RELEASED); DCHECK(HasAnyPointerButtonFlag(changed_button)); if (!pointer_) return; + auto* prev_focused_window = window_with_pointer_focus_; + if (window) + HandlePointerFocusChange(window); + pointer_flags_ = type == ET_MOUSE_PRESSED ? (pointer_flags_ | changed_button) : (pointer_flags_ & ~changed_button); @@ -177,6 +182,9 @@ MouseEvent event(type, pointer_location_, pointer_location_, EventTimeForNow(), flags, changed_button); DispatchEvent(&event); + + if (window) + HandlePointerFocusChange(prev_focused_window); } void WaylandEventSource::OnPointerMotionEvent(const gfx::PointF& location) {
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.h b/ui/ozone/platform/wayland/host/wayland_event_source.h index 7c9c409..39f5d74 100644 --- a/ui/ozone/platform/wayland/host/wayland_event_source.h +++ b/ui/ozone/platform/wayland/host/wayland_event_source.h
@@ -92,7 +92,9 @@ void OnPointerDestroyed(WaylandPointer* pointer) override; void OnPointerFocusChanged(WaylandWindow* window, const gfx::PointF& location) override; - void OnPointerButtonEvent(EventType evtype, int changed_button) override; + void OnPointerButtonEvent(EventType evtype, + int changed_button, + WaylandWindow* window = nullptr) override; void OnPointerMotionEvent(const gfx::PointF& location) override; void OnPointerAxisEvent(const gfx::Vector2d& offset) override;
diff --git a/ui/ozone/platform/wayland/host/wayland_pointer.h b/ui/ozone/platform/wayland/host/wayland_pointer.h index b3f3a6c..c5cf9f7 100644 --- a/ui/ozone/platform/wayland/host/wayland_pointer.h +++ b/ui/ozone/platform/wayland/host/wayland_pointer.h
@@ -74,7 +74,9 @@ virtual void OnPointerDestroyed(WaylandPointer* pointer) = 0; virtual void OnPointerFocusChanged(WaylandWindow* window, const gfx::PointF& location) = 0; - virtual void OnPointerButtonEvent(EventType evtype, int changed_button) = 0; + virtual void OnPointerButtonEvent(EventType evtype, + int changed_button, + WaylandWindow* window = nullptr) = 0; virtual void OnPointerMotionEvent(const gfx::PointF& location) = 0; virtual void OnPointerAxisEvent(const gfx::Vector2d& offset) = 0; };
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc index f0cb985..fbf958c 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc
@@ -91,9 +91,11 @@ VLOG(1) << "End drag loop requested. state=" << state_; // This function is supposed to be called to indicate that the window was just - // snapped into a tab strip. So switch to |kAttached| state and ask to quit - // the nested loop. + // snapped into a tab strip. So switch to |kAttached| state, store the focused + // window as the pointer grabber and ask to quit the nested loop. state_ = State::kAttached; + pointer_grab_owner_ = window_manager_->GetCurrentFocusedWindow(); + DCHECK(pointer_grab_owner_); QuitLoop(); } @@ -167,10 +169,22 @@ } void WaylandWindowDragController::OnDragDrop() { - // Not used for window dragging sessions. Handling of drop events is fully - // done at OnDataSourceFinish function, i.e: wl_data_source::{cancel,finish}. + DCHECK_GE(state_, State::kAttached); + VLOG(1) << "Dropped. state=" << state_; + + // Some compositors, e.g: Exo, may delay the wl_data_source::cancelled event + // delivery for some seconds, when the drop happens within a toplevel surface. + // Such event is handled by OnDataSourceFinish() function below, which is the + // single entry point for the drop event in window drag controller. In order + // to prevent such delay, the current data offer must be destroyed here. + DCHECK(data_offer_); + data_offer_.reset(); } +// This function is called when either 'cancelled' or 'finished' data source +// events is received during a window dragging session. It is used to detect +// when drop happens, since it is the only event sent by the server regardless +// where it happens, inside or outside toplevel surfaces. void WaylandWindowDragController::OnDataSourceFinish(bool completed) { DCHECK_GE(state_, State::kAttached); DCHECK(data_source_); @@ -255,6 +269,8 @@ data_device_->StartDrag(*data_source_, *origin_window_, icon_surface_.get(), this); } + + pointer_grab_owner_ = origin_window_; return true; } @@ -286,14 +302,15 @@ // about to finish. void WaylandWindowDragController::HandleDropAndResetState() { DCHECK_EQ(state_, State::kDropped); - DCHECK(window_manager_->GetCurrentFocusedWindow()); - VLOG(1) << "Notifying drop. window=" - << window_manager_->GetCurrentFocusedWindow(); + DCHECK(pointer_grab_owner_); + VLOG(1) << "Notifying drop. window=" << pointer_grab_owner_; EventFlags pointer_button = EF_LEFT_MOUSE_BUTTON; DCHECK(connection_->event_source()->IsPointerButtonPressed(pointer_button)); - pointer_delegate_->OnPointerButtonEvent(ET_MOUSE_RELEASED, pointer_button); + pointer_delegate_->OnPointerButtonEvent(ET_MOUSE_RELEASED, pointer_button, + pointer_grab_owner_); + pointer_grab_owner_ = nullptr; state_ = State::kIdle; }
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h index 0fcb8c3..05f248f 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h
@@ -118,6 +118,10 @@ // The current toplevel window being dragged, when in detached mode. WaylandToplevelWindow* dragged_window_ = nullptr; + // Keeps track of the window that holds the pointer grab. i.e: the owner of + // the surface that must receive the mouse release event upon drop. + WaylandWindow* pointer_grab_owner_ = nullptr; + // The window where the DND session originated from. i.e: which had the // pointer focus when the session was initiated. WaylandWindow* origin_window_ = nullptr;
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc b/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc index 56a13b46..746f4cd 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc
@@ -133,6 +133,17 @@ EXPECT_EQ(window, window_manager()->GetCurrentFocusedWindow()); } + void SendPointerLeave(WaylandWindow* window, + MockPlatformWindowDelegate* delegate) { + auto* surface = server_.GetObject<wl::MockSurface>(window->GetWidget()); + wl_pointer_send_leave(pointer_->resource(), NextSerial(), + surface->resource()); + EXPECT_CALL(*delegate, DispatchEvent(_)).Times(1); + Sync(); + + EXPECT_EQ(nullptr, window_manager()->GetCurrentFocusedWindow()); + } + void SendPointerPress(WaylandWindow* window, MockPlatformWindowDelegate* delegate, int button) { @@ -479,20 +490,22 @@ EXPECT_EQ(target_window->GetWidget(), screen_->GetLocalProcessWidgetAtPoint({50, 50}, {})); + // Emulates a pointer::leave event being sent before data_source::cancelled, + // what happens with some compositors, e.g: Exosphere. Even in these cases, + // WaylandWindowDragController must guarantee the mouse button release event + // (aka: drop) is delivered to the upper layer listeners. + SendPointerLeave(target_window, &delegate_); + SendDndDrop(); - EXPECT_CALL(delegate_, DispatchEvent(_)).WillRepeatedly([&](Event* event) { + EXPECT_CALL(delegate_, DispatchEvent(_)).WillOnce([&](Event* event) { EXPECT_TRUE(event->IsMouseEvent()); switch (test_step) { case kSnapped: EXPECT_EQ(ET_MOUSE_RELEASED, event->type()); EXPECT_EQ(State::kDropped, drag_controller()->state()); + EXPECT_EQ(target_window, window_manager()->GetCurrentFocusedWindow()); test_step = kDone; break; - case kDone: - EXPECT_EQ(ET_MOUSE_EXITED, event->type()); - EXPECT_EQ(target_window->GetWidget(), - screen_->GetLocalProcessWidgetAtPoint({30, 42}, {})); - break; default: FAIL() << " event=" << event->GetName() << " state=" << drag_controller()->state()
diff --git a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn index 3146e1c..ccd5bda 100644 --- a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn +++ b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
@@ -246,7 +246,6 @@ is_polymer3 = true deps = [ ":mojo_interface_provider.m", - # ":cr_policy_network_behavior_mojo.m", # ":cr_policy_network_indicator_mojo.m", # ":network_apnlist.m", @@ -257,13 +256,11 @@ # ":network_config_select.m", # ":network_config_toggle.m", ":network_icon.m", - # ":network_ip_config.m", # ":network_list.m", # ":network_list_item.m", # ":network_list_types.m", ":network_listener_behavior.m", - # ":network_nameservers.m", # ":network_password_input.m", # ":network_property_list_mojo.m",