diff --git a/DEPS b/DEPS index e5df041..aed2ead 100644 --- a/DEPS +++ b/DEPS
@@ -44,7 +44,7 @@ # 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': 'b4614578d51c7064097839d706a6fe6cb53477fe', + 'v8_revision': '328ce17831c068a493c4759794153e8b04b6dc6d', # 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. @@ -228,7 +228,7 @@ Var('chromium_git') + '/native_client/src/third_party/scons-2.0.1.git' + '@' + '1c1550e17fc26355d08627fbdec13d8291227067', 'src/third_party/webrtc': - Var('chromium_git') + '/external/webrtc/trunk/webrtc.git' + '@' + 'a77fc98798be93e63384edcfb128b4f33949b1b7', # commit position 15939 + Var('chromium_git') + '/external/webrtc/trunk/webrtc.git' + '@' + 'a048ce1c9fcc0db50e10a33c463a71d19d29e275', # commit position 15954 'src/third_party/openmax_dl': Var('chromium_git') + '/external/webrtc/deps/third_party/openmax.git' + '@' + Var('openmax_dl_revision'),
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index 0106548..c04a109 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -78,6 +78,11 @@ # See: https://bugs.chromium.org/p/chromium/issues/detail?id=457359 fatal_linker_warnings = true + # Build with C++ RTTI enabled. Chromium builds without RTTI by default, + # but some sanitizers are known to require it, like CFI diagnostics + # and UBsan variants. + use_rtti = use_cfi_diag || is_ubsan_vptr || is_ubsan_security + # AFDO (Automatic Feedback Directed Optimizer) is a form of profile-guided # optimization that GCC supports. It used by ChromeOS in their official # builds. To use it, set auto_profile_path to the path to a file containing @@ -1188,9 +1193,10 @@ cflags_cc = [ "-frtti" ] } } + config("no_rtti") { - # CFI diagnostics and UBsan vptr require RTTI. - if (!use_cfi_diag && !is_ubsan_vptr && !is_ubsan_security) { + # Some sanitizer configs may require RTTI to be left enabled globally + if (!use_rtti) { if (is_win) { cflags_cc = [ "/GR-" ] } else {
diff --git a/chrome/app/vector_icons/BUILD.gn b/chrome/app/vector_icons/BUILD.gn deleted file mode 100644 index 35502cd..0000000 --- a/chrome/app/vector_icons/BUILD.gn +++ /dev/null
@@ -1,58 +0,0 @@ -# Copyright 2017 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -action("aggregate_vector_icons") { - visibility = [ ":*" ] - - script = "//ui/gfx/vector_icons/aggregate_vector_icons.py" - - icons = [ - "browser_tools.icon", - "browser_tools_error.icon", - "browser_tools_update.icon", - "navigate_back.1x.icon", - "navigate_back.icon", - "navigate_forward.1x.icon", - "navigate_forward.icon", - "navigate_home.1x.icon", - "navigate_home.icon", - "navigate_reload.1x.icon", - "navigate_reload.icon", - "navigate_stop.1x.icon", - "navigate_stop.icon", - ] - - output_cc = "$target_gen_dir/vector_icons.cc" - output_h = "$target_gen_dir/vector_icons.h" - - inputs = icons - inputs += [ - "vector_icons.cc.template", - "vector_icons.h.template", - ] - outputs = [ - output_cc, - output_h, - ] - - response_file_contents = rebase_path(icons, root_build_dir) - - args = [ - "--working_directory=" + rebase_path("./"), - "--file_list={{response_file_name}}", - "--output_cc=" + rebase_path(output_cc, root_build_dir), - "--output_h=" + rebase_path(output_h, root_build_dir), - ] -} - -source_set("vector_icons") { - sources = get_target_outputs(":aggregate_vector_icons") - sources += [ "//ui/gfx/vector_icon_types.h" ] - - deps = [ - ":aggregate_vector_icons", - "//base", - "//skia", - ] -}
diff --git a/chrome/app/vector_icons/vector_icons.cc.template b/chrome/app/vector_icons/vector_icons.cc.template deleted file mode 100644 index 5c5155e1..0000000 --- a/chrome/app/vector_icons/vector_icons.cc.template +++ /dev/null
@@ -1,21 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// vector_icons.cc.template is used to generate vector_icons.cc. Edit the former -// rather than the latter. - -#include "chrome/app/vector_icons/vector_icons.h" - -#include "base/logging.h" -#include "ui/gfx/vector_icon_types.h" - -#define PATH_ELEMENT_TEMPLATE(path_name, ...) \ -static gfx::PathElement path_name[] = {__VA_ARGS__}; - -#define VECTOR_ICON_TEMPLATE(icon_name, path_name, path_name_1x) \ -const gfx::VectorIcon icon_name = { path_name , path_name_1x }; - -using namespace gfx; - -TEMPLATE_PLACEHOLDER
diff --git a/chrome/app/vector_icons/vector_icons.h.template b/chrome/app/vector_icons/vector_icons.h.template deleted file mode 100644 index 4bc81a72..0000000 --- a/chrome/app/vector_icons/vector_icons.h.template +++ /dev/null
@@ -1,20 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// vector_icons.h.template is used to generate vector_icons.h. Edit the former -// rather than the latter. - -#ifndef CHROME_APP_VECTOR_ICONS_VECTOR_ICONS_H_ -#define CHROME_APP_VECTOR_ICONS_VECTOR_ICONS_H_ - -namespace gfx { -struct VectorIcon; -} - -#define VECTOR_ICON_TEMPLATE_H(icon_name) \ -extern const gfx::VectorIcon icon_name; - -TEMPLATE_PLACEHOLDER - -#endif // CHROME_APP_VECTOR_ICONS_VECTOR_ICONS_H_
diff --git a/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc b/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc index a6828be0..03662e8 100644 --- a/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc +++ b/chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc
@@ -94,6 +94,7 @@ prefs_(new sync_preferences::TestingPrefServiceSyncable( new TestingPrefStore, new TestingPrefStore, + new TestingPrefStore, recommended_prefs_, new user_prefs::PrefRegistrySyncable, new PrefNotifierImpl)),
diff --git a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc index ea214af..d21b916 100644 --- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc +++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
@@ -140,6 +140,13 @@ } #if defined(OS_ANDROID) + +bool IsPhysicalWebPageProviderEnabled() { + return base::FeatureList::IsEnabled( + ntp_snippets::kPhysicalWebPageSuggestionsFeature) && + base::FeatureList::IsEnabled(chrome::android::kPhysicalWebFeature); +} + void RegisterPhysicalWebPageProvider( ContentSuggestionsService* service, PhysicalWebDataSource* physical_web_data_source, @@ -317,8 +324,7 @@ } #if defined(OS_ANDROID) - if (base::FeatureList::IsEnabled( - ntp_snippets::kPhysicalWebPageSuggestionsFeature)) { + if (IsPhysicalWebPageProviderEnabled()) { RegisterPhysicalWebPageProvider(service, physical_web_data_source, pref_service); }
diff --git a/chrome/browser/recovery/recovery_install_global_error.cc b/chrome/browser/recovery/recovery_install_global_error.cc index bd68103..0b4d55b 100644 --- a/chrome/browser/recovery/recovery_install_global_error.cc +++ b/chrome/browser/recovery/recovery_install_global_error.cc
@@ -5,7 +5,6 @@ #include "chrome/browser/recovery/recovery_install_global_error.h" #include "chrome/app/chrome_command_ids.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/component_updater/recovery_component_installer.h" #include "chrome/browser/profiles/profile.h" @@ -18,6 +17,7 @@ #include "components/prefs/pref_service.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/vector_icons_public.h" #include "ui/native_theme/native_theme.h" RecoveryInstallGlobalError::RecoveryInstallGlobalError(Profile* profile) @@ -69,7 +69,7 @@ gfx::Image RecoveryInstallGlobalError::MenuItemIcon() { return gfx::Image(gfx::CreateVectorIcon( - kBrowserToolsUpdateIcon, + gfx::VectorIconId::BROWSER_TOOLS_UPDATE, ui::NativeTheme::GetInstanceForNativeUi()->GetSystemColor( ui::NativeTheme::kColorId_AlertSeverityHigh))); }
diff --git a/chrome/browser/resources/snippets_internals.html b/chrome/browser/resources/snippets_internals.html index fe99b6d..7d93f26 100644 --- a/chrome/browser/resources/snippets_internals.html +++ b/chrome/browser/resources/snippets_internals.html
@@ -45,6 +45,9 @@ <td class="name">Physical Web Page Suggestions enabled <td id="flag-physical-web-page-suggestions" class="value"> <tr> + <td class="name">Physical Web enabled + <td id="flag-physical-web" class="value"> + <tr> <td class="name">Snippets type <td id="switch-personalized" class="value"> <tr>
diff --git a/chrome/browser/safe_browsing/incident_reporting/platform_state_store_win_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/platform_state_store_win_unittest.cc index ce54e33..44d3606 100644 --- a/chrome/browser/safe_browsing/incident_reporting/platform_state_store_win_unittest.cc +++ b/chrome/browser/safe_browsing/incident_reporting/platform_state_store_win_unittest.cc
@@ -64,8 +64,9 @@ // Ownership of |user_pref_store| is passed to the service. std::unique_ptr<sync_preferences::TestingPrefServiceSyncable> prefs( new sync_preferences::TestingPrefServiceSyncable( - new TestingPrefStore(), user_pref_store, new TestingPrefStore(), - new user_prefs::PrefRegistrySyncable(), new PrefNotifierImpl())); + new TestingPrefStore(), new TestingPrefStore(), user_pref_store, + new TestingPrefStore(), new user_prefs::PrefRegistrySyncable(), + new PrefNotifierImpl())); chrome::RegisterUserProfilePrefs(prefs->registry()); profile_ = profile_manager_.CreateTestingProfile( kProfileName_, std::move(prefs), base::UTF8ToUTF16(kProfileName_), 0,
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index f55aa47..6b90129 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -1178,7 +1178,6 @@ ] deps += [ "//apps", - "//chrome/app/vector_icons", "//chrome/browser/profile_resetter:profile_reset_report_proto", "//chrome/common:features", "//components/feedback/proto",
diff --git a/chrome/browser/ui/cocoa/toolbar/app_toolbar_button.mm b/chrome/browser/ui/cocoa/toolbar/app_toolbar_button.mm index e5065fca..bc09d31c 100644 --- a/chrome/browser/ui/cocoa/toolbar/app_toolbar_button.mm +++ b/chrome/browser/ui/cocoa/toolbar/app_toolbar_button.mm
@@ -5,7 +5,6 @@ #import "chrome/browser/ui/cocoa/toolbar/app_toolbar_button.h" #include "base/macros.h" -#include "chrome/app/vector_icons/vector_icons.h" #import "chrome/browser/ui/cocoa/themed_window.h" #import "chrome/browser/ui/cocoa/view_id_util.h" #include "ui/base/material_design/material_design_controller.h" @@ -34,19 +33,19 @@ type_ = AppMenuIconController::IconType::NONE; } -- (const gfx::VectorIcon*)vectorIcon { +- (gfx::VectorIconId)vectorIconId { switch (type_) { case AppMenuIconController::IconType::NONE: DCHECK_EQ(severity_, AppMenuIconController::Severity::NONE); - return &kBrowserToolsIcon; + return gfx::VectorIconId::BROWSER_TOOLS; case AppMenuIconController::IconType::UPGRADE_NOTIFICATION: - return &kBrowserToolsUpdateIcon; + return gfx::VectorIconId::BROWSER_TOOLS_UPDATE; case AppMenuIconController::IconType::GLOBAL_ERROR: case AppMenuIconController::IconType::INCOMPATIBILITY_WARNING: - return &kBrowserToolsErrorIcon; + return gfx::VectorIconId::BROWSER_TOOLS_ERROR; } - return nullptr; + return gfx::VectorIconId::VECTOR_ICON_NONE; } - (SkColor)vectorIconColor:(BOOL)themeIsDark {
diff --git a/chrome/browser/ui/cocoa/toolbar/reload_button_cocoa.mm b/chrome/browser/ui/cocoa/toolbar/reload_button_cocoa.mm index 942994f..925bc40 100644 --- a/chrome/browser/ui/cocoa/toolbar/reload_button_cocoa.mm +++ b/chrome/browser/ui/cocoa/toolbar/reload_button_cocoa.mm
@@ -8,7 +8,6 @@ #include "base/macros.h" #include "chrome/app/chrome_command_ids.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/command_updater.h" #import "chrome/browser/ui/cocoa/accelerators_cocoa.h" #import "chrome/browser/ui/cocoa/themed_window.h" @@ -194,16 +193,16 @@ return VIEW_ID_RELOAD_BUTTON; } -- (const gfx::VectorIcon*)vectorIcon { +- (gfx::VectorIconId)vectorIconId { if ([self tag] == IDC_RELOAD) { - return &kNavigateReloadIcon; + return gfx::VectorIconId::NAVIGATE_RELOAD; } else if ([self tag] == IDC_STOP) { - return &kNavigateStopIcon; + return gfx::VectorIconId::NAVIGATE_STOP; } else { NOTREACHED(); } - return nullptr; + return gfx::VectorIconId::VECTOR_ICON_NONE; } - (void)mouseInsideStateDidChange:(BOOL)isInside {
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h b/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h index 4479eb9..acc93174 100644 --- a/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h +++ b/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.h
@@ -10,10 +10,7 @@ #import "base/mac/scoped_nsobject.h" #import "chrome/browser/ui/cocoa/themed_window.h" #import "ui/gfx/color_utils.h" - -namespace gfx { -struct VectorIcon; -} +#include "ui/gfx/vector_icons_public.h" enum class ToolbarButtonImageBackgroundStyle { DEFAULT, @@ -37,8 +34,8 @@ + (NSSize)toolbarButtonSize; // Whether or not to handle the mouse middle click events. @property(assign, nonatomic) BOOL handleMiddleClick; -// Override point for subclasses to return their vector icon. -- (const gfx::VectorIcon*)vectorIcon; +// Override point for subclasses to return their vector icon id. +- (gfx::VectorIconId)vectorIconId; // Override point for subclasses to return their vector icon color. - (SkColor)vectorIconColor:(BOOL)themeIsDark; // When in Material Design mode, sets the images for each of the ToolbarButton's
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.mm index 1953c44..a850b3a 100644 --- a/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.mm +++ b/chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.mm
@@ -6,7 +6,6 @@ #include "base/mac/foundation_util.h" #include "base/mac/sdk_forward_declarations.h" -#include "chrome/app/vector_icons/vector_icons.h" #import "chrome/browser/ui/cocoa/image_button_cell.h" #import "chrome/browser/ui/cocoa/l10n_util.h" #import "chrome/browser/ui/cocoa/view_id_util.h" @@ -205,22 +204,24 @@ yRadius:2] fill]; } -- (const gfx::VectorIcon*)vectorIcon { +- (gfx::VectorIconId)vectorIconId { BOOL isRTL = cocoa_l10n_util::ShouldDoExperimentalRTLLayout(); switch ([self viewID]) { case VIEW_ID_BACK_BUTTON: - return isRTL ? &kNavigateForwardIcon : &kNavigateBackIcon; + return isRTL ? gfx::VectorIconId::NAVIGATE_FORWARD + : gfx::VectorIconId::NAVIGATE_BACK; case VIEW_ID_FORWARD_BUTTON: - return isRTL ? &kNavigateBackIcon : &kNavigateForwardIcon; + return isRTL ? gfx::VectorIconId::NAVIGATE_BACK + : gfx::VectorIconId::NAVIGATE_FORWARD; case VIEW_ID_HOME_BUTTON: - return &kNavigateHomeIcon; + return gfx::VectorIconId::NAVIGATE_HOME; case VIEW_ID_APP_MENU: - return &kBrowserToolsIcon; + return gfx::VectorIconId::BROWSER_TOOLS; default: break; } - return nullptr; + return gfx::VectorIconId::VECTOR_ICON_NONE; } - (SkColor)vectorIconColor:(BOOL)themeIsDark { @@ -285,9 +286,9 @@ NSImage* disabledIcon = nil; BOOL isDarkTheme = NO; - const gfx::VectorIcon* icon = [self vectorIcon]; - if (!icon) { - // If the button does not have a vector icon (e.g. it's an extension + gfx::VectorIconId iconId = [self vectorIconId]; + if (iconId == gfx::VectorIconId::VECTOR_ICON_NONE) { + // If the button does not have a vector icon id (e.g. it's an extension // button), use its image. The hover, etc. images will be created using // imageForIcon:withBackgroundStyle: so do the same for the default image. // If we don't do this, the icon may not appear in the same place as in the @@ -307,19 +308,19 @@ // Create the normal and disabled state icons. These icons are always the // same shape but use a different color. - if (icon == &kBrowserToolsIcon) { + if (iconId == gfx::VectorIconId::BROWSER_TOOLS) { normalIcon = [self browserToolsIconForFillColor:normalColor]; disabledIcon = [self browserToolsIconForFillColor:disabledColor]; } else { normalIcon = NSImageFromImageSkia( - gfx::CreateVectorIcon(*icon, + gfx::CreateVectorIcon(iconId, kMDButtonIconSize.width, normalColor)); // The home button has no icon for its disabled state. - if (icon != &kNavigateReloadIcon) { + if (iconId != gfx::VectorIconId::NAVIGATE_RELOAD) { disabledIcon = NSImageFromImageSkia( - gfx::CreateVectorIcon(*icon, + gfx::CreateVectorIcon(iconId, kMDButtonIconSize.width, disabledColor)); }
diff --git a/chrome/browser/ui/global_error/global_error.cc b/chrome/browser/ui/global_error/global_error.cc index 370a8ad..8511cc36 100644 --- a/chrome/browser/ui/global_error/global_error.cc +++ b/chrome/browser/ui/global_error/global_error.cc
@@ -12,9 +12,9 @@ #include "ui/gfx/image/image.h" #if !defined(OS_ANDROID) -#include "chrome/app/vector_icons/vector_icons.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/vector_icons_public.h" #endif // GlobalError --------------------------------------------------------------- @@ -30,8 +30,8 @@ return ResourceBundle::GetSharedInstance().GetNativeImageNamed( IDR_INPUT_ALERT_MENU); #else - return gfx::Image( - gfx::CreateVectorIcon(kBrowserToolsErrorIcon, gfx::kGoogleYellow700)); + return gfx::Image(gfx::CreateVectorIcon( + gfx::VectorIconId::BROWSER_TOOLS_ERROR, gfx::kGoogleYellow700)); #endif }
diff --git a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc index 177966a..5c81cb0 100644 --- a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc +++ b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc
@@ -136,8 +136,9 @@ user_prefs_ = new TestingPrefStoreWithCustomReadError; sync_preferences::TestingPrefServiceSyncable* pref_service = new sync_preferences::TestingPrefServiceSyncable( - new TestingPrefStore(), user_prefs_, new TestingPrefStore(), - new user_prefs::PrefRegistrySyncable(), new PrefNotifierImpl()); + new TestingPrefStore(), new TestingPrefStore(), user_prefs_, + new TestingPrefStore(), new user_prefs::PrefRegistrySyncable(), + new PrefNotifierImpl()); chrome::RegisterUserProfilePrefs(pref_service->registry()); builder.SetPrefService( base::WrapUnique<sync_preferences::PrefServiceSyncable>(pref_service));
diff --git a/chrome/browser/ui/views/payments/payment_request_views_util.cc b/chrome/browser/ui/views/payments/payment_request_views_util.cc index c521b9cc..f0cc20a 100644 --- a/chrome/browser/ui/views/payments/payment_request_views_util.cc +++ b/chrome/browser/ui/views/payments/payment_request_views_util.cc
@@ -5,9 +5,9 @@ #include "chrome/browser/ui/views/payments/payment_request_views_util.h" #include "base/memory/ptr_util.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/ui/views/payments/payment_request_sheet_controller.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/vector_icons_public.h" #include "ui/views/background.h" #include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/controls/button/button.h" @@ -42,7 +42,7 @@ layout->SkipColumns(1); } else { views::VectorIconButton* back_arrow = new views::VectorIconButton(delegate); - back_arrow->SetIcon(kNavigateBackIcon); + back_arrow->SetIcon(gfx::VectorIconId::NAVIGATE_BACK); back_arrow->SetSize(back_arrow->GetPreferredSize()); back_arrow->set_tag(static_cast<int>( PaymentRequestCommonTags::BACK_BUTTON_TAG));
diff --git a/chrome/browser/ui/views/toolbar/app_menu_button.cc b/chrome/browser/ui/views/toolbar/app_menu_button.cc index 65edbb7a..b66144b7 100644 --- a/chrome/browser/ui/views/toolbar/app_menu_button.cc +++ b/chrome/browser/ui/views/toolbar/app_menu_button.cc
@@ -9,7 +9,6 @@ #include "base/single_thread_task_runner.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/themes/theme_properties.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_otr_state.h" @@ -25,6 +24,7 @@ #include "ui/base/theme_provider.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/vector_icons_public.h" #include "ui/keyboard/keyboard_controller.h" #include "ui/views/controls/button/label_button_border.h" #include "ui/views/controls/menu/menu_listener.h" @@ -136,22 +136,22 @@ break; } - const gfx::VectorIcon* icon_id = nullptr; + gfx::VectorIconId icon_id = gfx::VectorIconId::VECTOR_ICON_NONE; switch (type_) { case AppMenuIconController::IconType::NONE: - icon_id = &kBrowserToolsIcon; + icon_id = gfx::VectorIconId::BROWSER_TOOLS; DCHECK_EQ(AppMenuIconController::Severity::NONE, severity_); break; case AppMenuIconController::IconType::UPGRADE_NOTIFICATION: - icon_id = &kBrowserToolsUpdateIcon; + icon_id = gfx::VectorIconId::BROWSER_TOOLS_UPDATE; break; case AppMenuIconController::IconType::GLOBAL_ERROR: case AppMenuIconController::IconType::INCOMPATIBILITY_WARNING: - icon_id = &kBrowserToolsErrorIcon; + icon_id = gfx::VectorIconId::BROWSER_TOOLS_ERROR; break; } - SetImage(views::Button::STATE_NORMAL, gfx::CreateVectorIcon(*icon_id, color)); + SetImage(views::Button::STATE_NORMAL, gfx::CreateVectorIcon(icon_id, color)); } void AppMenuButton::SetTrailingMargin(int margin) {
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc index 94bb8cea..bc07083 100644 --- a/chrome/browser/ui/views/toolbar/reload_button.cc +++ b/chrome/browser/ui/views/toolbar/reload_button.cc
@@ -9,7 +9,6 @@ #include "base/macros.h" #include "base/strings/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/command_updater.h" #include "chrome/browser/search/search.h" #include "chrome/browser/themes/theme_properties.h" @@ -21,6 +20,7 @@ #include "ui/base/theme_provider.h" #include "ui/base/window_open_disposition.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/vector_icons_public.h" #include "ui/views/metrics.h" #include "ui/views/widget/widget.h" @@ -232,16 +232,17 @@ const ui::ThemeProvider* tp = GetThemeProvider(); // |tp| can be NULL in unit tests. if (tp) { - const gfx::VectorIcon& icon = - (mode == MODE_RELOAD) ? kNavigateReloadIcon : kNavigateStopIcon; + const gfx::VectorIconId icon_id = (mode == MODE_RELOAD) + ? gfx::VectorIconId::NAVIGATE_RELOAD + : gfx::VectorIconId::NAVIGATE_STOP; const SkColor normal_color = tp->GetColor(ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON); const SkColor disabled_color = tp->GetColor(ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON_INACTIVE); SetImage(views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(icon, normal_color)); + gfx::CreateVectorIcon(icon_id, normal_color)); SetImage(views::Button::STATE_DISABLED, - gfx::CreateVectorIcon(icon, disabled_color)); + gfx::CreateVectorIcon(icon_id, disabled_color)); set_ink_drop_base_color(normal_color); }
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index 63d49599..96191078 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -12,7 +12,6 @@ #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "chrome/app/chrome_command_ids.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/command_updater.h" #include "chrome/browser/extensions/extension_util.h" @@ -69,6 +68,7 @@ #include "ui/gfx/canvas.h" #include "ui/gfx/image/canvas_image_source.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/vector_icons_public.h" #include "ui/keyboard/keyboard_controller.h" #include "ui/native_theme/native_theme_aura.h" #include "ui/views/focus/view_storage.h" @@ -748,18 +748,19 @@ back_->SetImage( views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(kNavigateBackIcon, normal_color)); + gfx::CreateVectorIcon(gfx::VectorIconId::NAVIGATE_BACK, normal_color)); back_->SetImage( views::Button::STATE_DISABLED, - gfx::CreateVectorIcon(kNavigateBackIcon, normal_color)); + gfx::CreateVectorIcon(gfx::VectorIconId::NAVIGATE_BACK, disabled_color)); forward_->SetImage( views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(kNavigateForwardIcon, normal_color)); - forward_->SetImage( - views::Button::STATE_DISABLED, - gfx::CreateVectorIcon(kNavigateForwardIcon, disabled_color)); - home_->SetImage(views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(kNavigateHomeIcon, normal_color)); + gfx::CreateVectorIcon(gfx::VectorIconId::NAVIGATE_FORWARD, normal_color)); + forward_->SetImage(views::Button::STATE_DISABLED, + gfx::CreateVectorIcon(gfx::VectorIconId::NAVIGATE_FORWARD, + disabled_color)); + home_->SetImage( + views::Button::STATE_NORMAL, + gfx::CreateVectorIcon(gfx::VectorIconId::NAVIGATE_HOME, normal_color)); app_menu_button_->UpdateIcon(); back_->set_ink_drop_base_color(normal_color);
diff --git a/chrome/browser/ui/webui/snippets_internals_message_handler.cc b/chrome/browser/ui/webui/snippets_internals_message_handler.cc index 0eede3f..d2bca2c 100644 --- a/chrome/browser/ui/webui/snippets_internals_message_handler.cc +++ b/chrome/browser/ui/webui/snippets_internals_message_handler.cc
@@ -21,6 +21,7 @@ #include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" #include "base/values.h" +#include "chrome/browser/android/chrome_feature_list.h" #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_features.h" @@ -298,6 +299,9 @@ base::FeatureList::IsEnabled( ntp_snippets::kPhysicalWebPageSuggestionsFeature)); + SendBoolean("flag-physical-web", base::FeatureList::IsEnabled( + chrome::android::kPhysicalWebFeature)); + SendClassification(); SendLastRemoteSuggestionsBackgroundFetchTime();
diff --git a/chrome/browser/upgrade_detector.cc b/chrome/browser/upgrade_detector.cc index 2dfd1a91..67e3f3b3 100644 --- a/chrome/browser/upgrade_detector.cc +++ b/chrome/browser/upgrade_detector.cc
@@ -6,7 +6,6 @@ #include "base/bind.h" #include "base/command_line.h" -#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/ui/browser_otr_state.h" @@ -16,6 +15,7 @@ #include "content/public/browser/notification_service.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" +#include "ui/gfx/vector_icons_public.h" // How long to wait between checks for whether the user has been idle. static const int kIdleRepeatingTimerWait = 10; // Minutes (seconds if testing). @@ -57,7 +57,8 @@ } DCHECK_NE(gfx::kPlaceholderColor, color); - return gfx::Image(gfx::CreateVectorIcon(kBrowserToolsUpdateIcon, color)); + return gfx::Image( + gfx::CreateVectorIcon(gfx::VectorIconId::BROWSER_TOOLS_UPDATE, color)); } UpgradeDetector::UpgradeDetector()
diff --git a/chrome/installer/setup/install.cc b/chrome/installer/setup/install.cc index 14945b8..34976475 100644 --- a/chrome/installer/setup/install.cc +++ b/chrome/installer/setup/install.cc
@@ -301,8 +301,7 @@ const base::string16 manifest_template( base::ASCIIToUTF16(kManifestTemplate)); - BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* dist = BrowserDistribution::GetDistribution(); // TODO(grt): http://crbug.com/75152 Write a reference to a localized // resource for |display_name|. base::string16 display_name(dist->GetDisplayName());
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc index ac146e8d..1563064 100644 --- a/chrome/installer/setup/install_worker.cc +++ b/chrome/installer/setup/install_worker.cc
@@ -39,6 +39,7 @@ #include "chrome/installer/util/create_reg_key_work_item.h" #include "chrome/installer/util/firewall_manager_win.h" #include "chrome/installer/util/google_update_constants.h" +#include "chrome/installer/util/google_update_settings.h" #include "chrome/installer/util/install_util.h" #include "chrome/installer/util/installation_state.h" #include "chrome/installer/util/l10n_string_util.h" @@ -330,10 +331,9 @@ return true; } -// Migrates the usagestats value from the binaries to Chrome when migrating -// multi-install Chrome to single-install. -void AddMigrateUsageStatsWorkItems(const InstallationState& original_state, - const InstallerState& installer_state, +// Migrates consent for the collection of usage statistics from the binaries to +// Chrome when migrating multi-install Chrome to single-install. +void AddMigrateUsageStatsWorkItems(const InstallerState& installer_state, WorkItemList* install_list) { // This operation doesn't apply to SxS Chrome. if (InstallUtil::IsChromeSxSProcess()) @@ -341,28 +341,41 @@ // Bail out if an existing multi-install Chrome is not being migrated to // single-install. - if (!installer_state.is_migrating_to_single()) { - VLOG(1) << "No multi-install Chrome found to migrate to single-install."; + if (!installer_state.is_migrating_to_single()) + return; + + // Nothing to do if the binaries aren't actually installed. + if (!AreBinariesInstalled(installer_state)) + return; + + BrowserDistribution* chrome_dist = installer_state.product().distribution(); + + // Delete any stale value in Chrome's ClientStateMedium key. A new value, if + // found, will be written to the ClientState key below. + if (installer_state.system_install()) { + install_list->AddDeleteRegValueWorkItem( + installer_state.root_key(), chrome_dist->GetStateMediumKey(), + KEY_WOW64_64KEY, google_update::kRegUsageStatsField); + } + + google_update::Tristate consent = + GoogleUpdateSettings::GetCollectStatsConsentForApp( + installer_state.system_install(), *MakeBinariesRegistrationData()); + if (consent == google_update::TRISTATE_NONE) { + VLOG(1) << "No consent value found to migrate to single-install."; + // Delete any stale value in Chrome's ClientState key. + install_list->AddDeleteRegValueWorkItem( + installer_state.root_key(), chrome_dist->GetStateKey(), KEY_WOW64_64KEY, + google_update::kRegUsageStatsField); return; } - const ProductState* binaries_state = original_state.GetProductState( - installer_state.system_install(), BrowserDistribution::CHROME_BINARIES); + VLOG(1) << "Migrating usage stats consent from multi- to single-install."; - // There is nothing to be done if the binaries do not have stats. - DWORD usagestats = 0; - if (!binaries_state || !binaries_state->GetUsageStats(&usagestats)) { - VLOG(1) << "No usagestats value found to migrate to single-install."; - return; - } - - VLOG(1) << "Migrating usagestats value from multi-install to single-install."; - - // Write the value that was read to Chrome's ClientState key. + // Write consent to Chrome's ClientState key. install_list->AddSetRegValueWorkItem( - installer_state.root_key(), - installer_state.product().distribution()->GetStateKey(), KEY_WOW64_32KEY, - google_update::kRegUsageStatsField, usagestats, true); + installer_state.root_key(), chrome_dist->GetStateKey(), KEY_WOW64_32KEY, + google_update::kRegUsageStatsField, static_cast<DWORD>(consent), true); } } // namespace @@ -739,7 +752,7 @@ install_list); // Migrate usagestats back to Chrome. - AddMigrateUsageStatsWorkItems(original_state, installer_state, install_list); + AddMigrateUsageStatsWorkItems(installer_state, install_list); // Append the tasks that run after the installation. AppendPostInstallTasks(installer_state,
diff --git a/chrome/installer/setup/install_worker_unittest.cc b/chrome/installer/setup/install_worker_unittest.cc index db866ae..4115f098 100644 --- a/chrome/installer/setup/install_worker_unittest.cc +++ b/chrome/installer/setup/install_worker_unittest.cc
@@ -167,10 +167,6 @@ void set_state_key(const std::wstring& state_key) { state_key_ = state_key; } - - void set_state_type(BrowserDistribution::Type state_type) { - state_type_ = state_type; - } }; // The test fixture @@ -205,9 +201,7 @@ product_state.set_version(new base::Version(*current_version_)); product_state.set_brand(L"TEST"); product_state.set_eula_accepted(1); - BrowserDistribution* dist = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* dist = BrowserDistribution::GetDistribution(); base::FilePath install_path = installer::GetChromeInstallPath(system_level, dist); product_state.SetUninstallProgram( @@ -243,7 +237,6 @@ installer_state->set_operation(operation); // Hope this next one isn't checked for now. installer_state->set_state_key(L"PROBABLY_INVALID_REG_PATH"); - installer_state->set_state_type(BrowserDistribution::CHROME_BROWSER); return installer_state.release(); } @@ -255,12 +248,9 @@ machine_state.GetProductState(installer_state->system_install(), BrowserDistribution::CHROME_BROWSER); if (chrome) { - installer_state->AddProductFromState(BrowserDistribution::CHROME_BROWSER, - *chrome); + installer_state->AddProductFromState(*chrome); } else { - BrowserDistribution* dist = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* dist = BrowserDistribution::GetDistribution(); installer_state->AddProduct(base::MakeUnique<Product>(dist)); } }
diff --git a/chrome/installer/setup/installer_crash_reporting.cc b/chrome/installer/setup/installer_crash_reporting.cc index f8de665..961979d7 100644 --- a/chrome/installer/setup/installer_crash_reporting.cc +++ b/chrome/installer/setup/installer_crash_reporting.cc
@@ -32,28 +32,11 @@ // Crash Keys const char kCurrentVersion[] = "current-version"; -const char kDistributionType[] = "dist-type"; const char kIsMultiInstall[] = "multi-install"; const char kIsSystemLevel[] = "system-level"; const char kOperation[] = "operation"; const char kStateKey[] = "state-key"; -const char *DistributionTypeToString(BrowserDistribution::Type type) { - switch (type) { - case BrowserDistribution::CHROME_BROWSER: - return "chrome browser"; - case BrowserDistribution::CHROME_FRAME: - return "chrome frame"; - case BrowserDistribution::CHROME_BINARIES: - return "chrome binaries"; - case BrowserDistribution::NUM_TYPES: - // Fall out of switch. - break; - } - NOTREACHED(); - return ""; -} - const char *OperationToString(InstallerState::Operation operation) { switch (operation) { case InstallerState::SINGLE_INSTALL_OR_UPDATE: @@ -122,7 +105,6 @@ const base::debug::CrashKey kFixedKeys[] = { { crash_keys::kMetricsClientId, crash_keys::kSmallSize }, { kCurrentVersion, crash_keys::kSmallSize }, - { kDistributionType, crash_keys::kSmallSize }, { kIsMultiInstall, crash_keys::kSmallSize }, { kIsSystemLevel, crash_keys::kSmallSize }, { kOperation, crash_keys::kSmallSize }, @@ -143,8 +125,6 @@ void SetInitialCrashKeys(const InstallerState& state) { using base::debug::SetCrashKeyValue; - SetCrashKeyValue(kDistributionType, - DistributionTypeToString(state.state_type())); SetCrashKeyValue(kOperation, OperationToString(state.operation())); SetCrashKeyValue(kIsMultiInstall, "false"); SetCrashKeyValue(kIsSystemLevel, state.system_install() ? "true" : "false");
diff --git a/chrome/installer/setup/installer_state.cc b/chrome/installer/setup/installer_state.cc index 7d106038..9dff6bb 100644 --- a/chrome/installer/setup/installer_state.cc +++ b/chrome/installer/setup/installer_state.cc
@@ -12,6 +12,8 @@ #include "base/command_line.h" #include "base/files/file_util.h" #include "base/win/registry.h" +#include "chrome/installer/setup/setup_util.h" +#include "chrome/installer/util/app_registration_data.h" #include "chrome/installer/util/google_update_settings.h" #include "chrome/installer/util/helper.h" #include "chrome/installer/util/install_util.h" @@ -26,7 +28,6 @@ InstallerState::InstallerState() : operation_(UNINITIALIZED), - state_type_(BrowserDistribution::CHROME_BROWSER), level_(UNKNOWN_LEVEL), root_key_(NULL), msi_(false), @@ -36,7 +37,6 @@ InstallerState::InstallerState(Level level) : operation_(UNINITIALIZED), - state_type_(BrowserDistribution::CHROME_BROWSER), level_(UNKNOWN_LEVEL), root_key_(NULL), msi_(false), @@ -68,14 +68,12 @@ const bool is_uninstall = command_line.HasSwitch(switches::kUninstall); - Product* p = AddProductFromPreferences(BrowserDistribution::CHROME_BROWSER, - prefs, machine_state); + Product* p = AddProductFromPreferences(prefs, machine_state); + BrowserDistribution* dist = p->distribution(); VLOG(1) << (is_uninstall ? "Uninstall" : "Install") - << " distribution: " << p->distribution()->GetDisplayName(); + << " distribution: " << dist->GetDisplayName(); - BrowserDistribution* dist = BrowserDistribution::GetDistribution(); state_key_ = dist->GetStateKey(); - state_type_ = dist->GetType(); if (is_uninstall) { operation_ = UNINSTALL; @@ -83,7 +81,7 @@ operation_ = SINGLE_INSTALL_OR_UPDATE; // Is this a migration from multi-install to single-install? const ProductState* state = - machine_state.GetProductState(system_install(), state_type_); + machine_state.GetProductState(system_install(), dist->GetType()); is_migrating_to_single_ = state && state->is_multi_install(); } @@ -152,24 +150,22 @@ return AddProductInDirectory(nullptr, std::move(product)); } -// Adds a product of type |distribution_type| constructed on the basis of -// |prefs|, setting this object's msi flag if the product is represented in -// |machine_state| and is msi-installed. Returns the product that was added, -// or NULL if |state| is incompatible with this object. Ownership is not passed -// to the caller. +// Adds a product constructed on the basis of |prefs|, setting this object's msi +// flag if the product is represented in |machine_state| and is msi-installed. +// Returns the product that was added, or NULL if |state| is incompatible with +// this object. Ownership is not passed to the caller. Product* InstallerState::AddProductFromPreferences( - BrowserDistribution::Type distribution_type, const MasterPreferences& prefs, const InstallationState& machine_state) { - std::unique_ptr<Product> product_ptr(new Product( - BrowserDistribution::GetSpecificDistribution(distribution_type))); + std::unique_ptr<Product> product_ptr( + new Product(BrowserDistribution::GetDistribution())); product_ptr->InitializeFromPreferences(prefs); Product* product = AddProductInDirectory(nullptr, std::move(product_ptr)); if (product != NULL && !msi_) { const ProductState* product_state = machine_state.GetProductState( - system_install(), distribution_type); + system_install(), BrowserDistribution::CHROME_BROWSER); if (product_state != NULL) msi_ = product_state->is_msi(); } @@ -178,10 +174,9 @@ } Product* InstallerState::AddProductFromState( - BrowserDistribution::Type type, const ProductState& state) { std::unique_ptr<Product> product_ptr( - new Product(BrowserDistribution::GetSpecificDistribution(type))); + new Product(BrowserDistribution::GetDistribution())); product_ptr->InitializeFromUninstallCommand(state.uninstall_command()); // Strip off <version>/Installer/setup.exe; see GetInstallerDirectory(). @@ -207,7 +202,7 @@ DCHECK(product_); std::unique_ptr<base::Version> current_version; const ProductState* product_state = machine_state.GetProductState( - level_ == SYSTEM_LEVEL, product_->distribution()->GetType()); + level_ == SYSTEM_LEVEL, BrowserDistribution::CHROME_BROWSER); if (product_state != NULL) { const base::Version* version = NULL; @@ -250,7 +245,6 @@ operation_ = UNINITIALIZED; target_path_.clear(); state_key_.clear(); - state_type_ = BrowserDistribution::CHROME_BROWSER; product_.reset(); critical_update_version_ = base::Version(); level_ = UNKNOWN_LEVEL; @@ -325,10 +319,8 @@ // for success, the binaries have been uninstalled and therefore the result // will not be read by Google Update. InstallUtil::AddInstallerResultItems( - system_install, BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BINARIES) - ->GetStateKey(), - status, string_resource_id, launch_cmd, install_list.get()); + system_install, MakeBinariesRegistrationData()->GetStateKey(), status, + string_resource_id, launch_cmd, install_list.get()); #endif } install_list->Do();
diff --git a/chrome/installer/setup/installer_state.h b/chrome/installer/setup/installer_state.h index 05cfe697..50d40808 100644 --- a/chrome/installer/setup/installer_state.h +++ b/chrome/installer/setup/installer_state.h
@@ -67,8 +67,7 @@ // msi flag if |state| is msi-installed. Returns the product that was added, // or NULL if |state| is incompatible with this object. Ownership is not // passed to the caller. - Product* AddProductFromState(BrowserDistribution::Type type, - const ProductState& state); + Product* AddProductFromState(const ProductState& state); // Returns the product that was added, or NULL if |product| is incompatible // with this object. Ownership of the return value is not given to the caller. @@ -112,10 +111,6 @@ // The ClientState key by which we interact with Google Update. const base::string16& state_key() const { return state_key_; } - // Convenience method to return the type of the BrowserDistribution associated - // with the ClientState key we will be interacting with. - BrowserDistribution::Type state_type() const { return state_type_; } - // Returns true if this is an update of multi-install Chrome to // single-install. bool is_migrating_to_single() const { return is_migrating_to_single_; } @@ -172,7 +167,6 @@ Product* AddProductInDirectory(const base::FilePath* product_dir, std::unique_ptr<Product> product); Product* AddProductFromPreferences( - BrowserDistribution::Type distribution_type, const MasterPreferences& prefs, const InstallationState& machine_state); @@ -182,7 +176,6 @@ Operation operation_; base::FilePath target_path_; base::string16 state_key_; - BrowserDistribution::Type state_type_; std::unique_ptr<Product> product_; base::Version critical_update_version_; ProgressCalculator progress_calculator_;
diff --git a/chrome/installer/setup/installer_state_unittest.cc b/chrome/installer/setup/installer_state_unittest.cc index a8d7896..c694c2a 100644 --- a/chrome/installer/setup/installer_state_unittest.cc +++ b/chrome/installer/setup/installer_state_unittest.cc
@@ -89,8 +89,7 @@ { RegistryOverrideManager override_manager; override_manager.OverrideRegistry(root); - BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* dist = BrowserDistribution::GetDistribution(); RegKey chrome_key(root, dist->GetVersionKey().c_str(), KEY_ALL_ACCESS); EXPECT_TRUE(chrome_key.Valid()); if (chrome_key.Valid()) { @@ -134,9 +133,7 @@ state.Initialize(cmd_line, prefs, machine_state); state.WriteInstallerResult(installer::FIRST_INSTALL_SUCCESS, IDS_INSTALL_OS_ERROR_BASE, &launch_cmd); - BrowserDistribution* distribution = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* distribution = BrowserDistribution::GetDistribution(); EXPECT_EQ(ERROR_SUCCESS, key.Open(root, distribution->GetStateKey().c_str(), KEY_READ)); EXPECT_EQ(ERROR_SUCCESS, @@ -210,16 +207,12 @@ EXPECT_EQ(InstallerState::USER_LEVEL, installer_state.level()); EXPECT_EQ(InstallerState::SINGLE_INSTALL_OR_UPDATE, installer_state.operation()); - EXPECT_TRUE(wcsstr(installer_state.target_path().value().c_str(), - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER) - ->GetInstallSubDir() - .c_str())); + EXPECT_TRUE(wcsstr( + installer_state.target_path().value().c_str(), + BrowserDistribution::GetDistribution()->GetInstallSubDir().c_str())); EXPECT_FALSE(installer_state.verbose_logging()); EXPECT_EQ(installer_state.state_key(), - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER)->GetStateKey()); - EXPECT_EQ(installer_state.state_type(), BrowserDistribution::CHROME_BROWSER); + BrowserDistribution::GetDistribution()->GetStateKey()); // Now initialize it to install system-level single Chrome. { @@ -233,15 +226,12 @@ EXPECT_EQ(InstallerState::SYSTEM_LEVEL, installer_state.level()); EXPECT_EQ(InstallerState::SINGLE_INSTALL_OR_UPDATE, installer_state.operation()); - EXPECT_TRUE(wcsstr(installer_state.target_path().value().c_str(), - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER)-> - GetInstallSubDir().c_str())); + EXPECT_TRUE(wcsstr( + installer_state.target_path().value().c_str(), + BrowserDistribution::GetDistribution()->GetInstallSubDir().c_str())); EXPECT_TRUE(installer_state.verbose_logging()); EXPECT_EQ(installer_state.state_key(), - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER)->GetStateKey()); - EXPECT_EQ(installer_state.state_type(), BrowserDistribution::CHROME_BROWSER); + BrowserDistribution::GetDistribution()->GetStateKey()); } // A fixture for testing InstallerState::DetermineCriticalVersion. Individual
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc index 8506c0b..77998d4 100644 --- a/chrome/installer/setup/setup_main.cc +++ b/chrome/installer/setup/setup_main.cc
@@ -650,8 +650,8 @@ installer_state->SetStage(installer::PRECONDITIONS); // Remove any legacy "-multifail" or "-stage:*" values from the product's // "ap" value. - BrowserDistribution::GetSpecificDistribution(installer_state->state_type())-> - UpdateInstallStatus(system_install, archive_type, install_status); + BrowserDistribution::GetDistribution()->UpdateInstallStatus( + system_install, archive_type, install_status); // Drop to background processing mode if the process was started below the // normal process priority class. This is done here because InstallProducts- @@ -731,9 +731,7 @@ const InstallerState& installer_state, const base::FilePath& setup_exe, const base::CommandLine& cmd_line) { - BrowserDistribution* chrome_dist = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* chrome_dist = BrowserDistribution::GetDistribution(); // Only proceed with registering a dev chrome if no real Chrome installation // of the same distribution are present on this system.
diff --git a/chrome/installer/setup/setup_util.cc b/chrome/installer/setup/setup_util.cc index f4b8806..eec781e 100644 --- a/chrome/installer/setup/setup_util.cc +++ b/chrome/installer/setup/setup_util.cc
@@ -12,7 +12,6 @@ #include <algorithm> #include <iterator> #include <limits> -#include <memory> #include <set> #include <string> @@ -24,6 +23,7 @@ #include "base/files/file_util.h" #include "base/logging.h" #include "base/macros.h" +#include "base/memory/ptr_util.h" #include "base/metrics/histogram.h" #include "base/numerics/safe_conversions.h" #include "base/strings/string_number_conversions.h" @@ -132,14 +132,7 @@ // for this mode of install was dropped from ToT in December 2016. Remove any // stray bits in the registry leftover from such installs. void RemoveBinariesVersionKey(const InstallerState& installer_state) { -#if defined(GOOGLE_CHROME_BUILD) - UpdatingAppRegistrationData reg_data( - L"{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}"); -#else - NonUpdatingAppRegistrationData reg_data(L"Software\\Chromium Binaries"); -#endif - - base::string16 path(reg_data.GetVersionKey()); + base::string16 path(MakeBinariesRegistrationData()->GetVersionKey()); if (base::win::RegKey(installer_state.root_key(), path.c_str(), KEY_QUERY_VALUE | KEY_WOW64_32KEY) .Valid()) { @@ -372,9 +365,8 @@ // is the value used to select a specific differential update. If an archive // can't be found using that, fallback to using the newest version present. base::FilePath patch_source; - const ProductState* product = - original_state.GetProductState(installer_state.system_install(), - installer_state.state_type()); + const ProductState* product = original_state.GetProductState( + installer_state.system_install(), BrowserDistribution::CHROME_BROWSER); if (product) { patch_source = installer_state.GetInstallerDirectory(product->version()) .Append(installer::kChromeArchive); @@ -467,76 +459,6 @@ return false; } -void MigrateGoogleUpdateStateMultiToSingle( - bool system_level, - BrowserDistribution::Type to_migrate, - const installer::InstallationState& machine_state) { - const HKEY root = system_level ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; - const ProductState* product = NULL; - BrowserDistribution* dist = NULL; - LONG result = ERROR_SUCCESS; - base::win::RegKey state_key; - - Product product_to_migrate( - BrowserDistribution::GetSpecificDistribution(to_migrate)); - - // Copy usagestats from the binaries to the product's ClientState key. - product = machine_state.GetProductState(system_level, - BrowserDistribution::CHROME_BINARIES); - DWORD usagestats = 0; - if (product && product->GetUsageStats(&usagestats)) { - dist = product_to_migrate.distribution(); - result = state_key.Open(root, dist->GetStateKey().c_str(), - KEY_SET_VALUE); - if (result != ERROR_SUCCESS) { - LOG(ERROR) << "Failed opening ClientState key for " - << dist->GetDisplayName() << " to migrate usagestats."; - } else { - state_key.WriteValue(google_update::kRegUsageStatsField, usagestats); - } - } - - // Remove the migrating product from the "ap" value of other multi-install - // products. - for (int i = 0; i < BrowserDistribution::NUM_TYPES; ++i) { - BrowserDistribution::Type type = - static_cast<BrowserDistribution::Type>(i); - if (type == to_migrate) - continue; - product = machine_state.GetProductState(system_level, type); - if (product && product->is_multi_install()) { - installer::ChannelInfo channel_info; - dist = BrowserDistribution::GetSpecificDistribution(type); - result = state_key.Open(root, dist->GetStateKey().c_str(), - KEY_QUERY_VALUE | KEY_SET_VALUE); - if (result == ERROR_SUCCESS && - channel_info.Initialize(state_key) && - product_to_migrate.SetChannelFlags(false, &channel_info)) { - VLOG(1) << "Moving " << dist->GetDisplayName() - << " to channel: " << channel_info.value(); - channel_info.Write(&state_key); - } - } - } - - // Remove -multi, all product modifiers, and everything else but the channel - // name from the "ap" value of the product to migrate. - dist = product_to_migrate.distribution(); - result = state_key.Open(root, dist->GetStateKey().c_str(), - KEY_QUERY_VALUE | KEY_SET_VALUE); - if (result == ERROR_SUCCESS) { - installer::ChannelInfo channel_info; - if (!channel_info.Initialize(state_key)) { - LOG(ERROR) << "Failed reading " << dist->GetDisplayName() - << " channel info."; - } else if (channel_info.RemoveAllModifiersAndSuffixes()) { - VLOG(1) << "Moving " << dist->GetDisplayName() - << " to channel: " << channel_info.value(); - channel_info.Write(&state_key); - } - } -} - bool IsUninstallSuccess(InstallStatus install_status) { // The following status values represent failed uninstalls: // 15: CHROME_NOT_INSTALLED @@ -758,9 +680,7 @@ } bool IsChromeActivelyUsed(const InstallerState& installer_state) { - BrowserDistribution* chrome_dist = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* chrome_dist = BrowserDistribution::GetDistribution(); if (!installer_state.system_install()) { return IsActivelyUsedIn(HKEY_CURRENT_USER, chrome_dist->GetStateKey().c_str()); @@ -855,6 +775,31 @@ WorkItem::kWow64Default); } +std::unique_ptr<AppRegistrationData> MakeBinariesRegistrationData() { +#if defined(GOOGLE_CHROME_BUILD) + return base::MakeUnique<UpdatingAppRegistrationData>( + L"{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}"); +#else + return base::MakeUnique<NonUpdatingAppRegistrationData>( + L"Software\\Chromium Binaries"); +#endif +} + +bool AreBinariesInstalled(const InstallerState& installer_state) { + if (InstallUtil::IsChromeSxSProcess()) + return false; + + base::win::RegKey key; + base::string16 pv; + + // True if the "pv" value exists and isn't empty. + return key.Open(installer_state.root_key(), + MakeBinariesRegistrationData()->GetVersionKey().c_str(), + KEY_QUERY_VALUE | KEY_WOW64_32KEY) == ERROR_SUCCESS && + key.ReadValue(google_update::kRegVersionField, &pv) == ERROR_SUCCESS && + !pv.empty(); +} + void DoLegacyCleanups(const InstallerState& installer_state, InstallStatus install_status) { // Do no harm if the install didn't succeed.
diff --git a/chrome/installer/setup/setup_util.h b/chrome/installer/setup/setup_util.h index 77d44b5..b8607dfb 100644 --- a/chrome/installer/setup/setup_util.h +++ b/chrome/installer/setup/setup_util.h
@@ -12,6 +12,7 @@ #include <windows.h> #include <stdint.h> +#include <memory> #include <vector> #include "base/macros.h" @@ -88,14 +89,6 @@ // procesing mode is entered. bool AdjustProcessPriority(); -// Makes registry adjustments to migrate the Google Update state of |to_migrate| -// from multi-install to single-install. This includes copying the usagestats -// value and adjusting the ap values of all multi-install products. -void MigrateGoogleUpdateStateMultiToSingle( - bool system_level, - BrowserDistribution::Type to_migrate, - const installer::InstallationState& machine_state); - // Returns true if |install_status| represents a successful uninstall code. bool IsUninstallSuccess(InstallStatus install_status); @@ -140,6 +133,14 @@ // De-register Chrome's EventLog message provider dll. void DeRegisterEventLogProvider(); +// Returns a registration data instance for the now-deprecated multi-install +// binaries. +std::unique_ptr<AppRegistrationData> MakeBinariesRegistrationData(); + +// Returns true if the now-deprecated multi-install binaries are registered as +// an installed product with Google Update. +bool AreBinariesInstalled(const InstallerState& installer_state); + // Removes leftover bits from features that have been removed from the product. void DoLegacyCleanups(const InstallerState& installer_state, InstallStatus install_status);
diff --git a/chrome/installer/setup/setup_util_unittest.cc b/chrome/installer/setup/setup_util_unittest.cc index 39fe0d56..e3e878f 100644 --- a/chrome/installer/setup/setup_util_unittest.cc +++ b/chrome/installer/setup/setup_util_unittest.cc
@@ -387,9 +387,8 @@ installer_state_.reset(new installer::InstallerState( kSystemInstall_ ? installer::InstallerState::SYSTEM_LEVEL : installer::InstallerState::USER_LEVEL)); - installer_state_->AddProductFromState( - kProductType_, - *original_state_->GetProductState(kSystemInstall_, kProductType_)); + installer_state_->AddProductFromState(*original_state_->GetProductState( + kSystemInstall_, BrowserDistribution::CHROME_BROWSER)); // Create archives in the two version dirs. ASSERT_TRUE( @@ -421,8 +420,8 @@ void InstallProduct() { FakeProductState* product = FakeProductState::FromProductState( - original_state_->GetNonVersionedProductState(kSystemInstall_, - kProductType_)); + original_state_->GetNonVersionedProductState( + kSystemInstall_, BrowserDistribution::CHROME_BROWSER)); product->set_version(product_version_); base::CommandLine uninstall_command( @@ -436,13 +435,12 @@ void UninstallProduct() { FakeProductState::FromProductState( - original_state_->GetNonVersionedProductState(kSystemInstall_, - kProductType_)) + original_state_->GetNonVersionedProductState( + kSystemInstall_, BrowserDistribution::CHROME_BROWSER)) ->set_version(base::Version()); } static const bool kSystemInstall_; - static const BrowserDistribution::Type kProductType_; base::ScopedTempDir test_dir_; base::Version product_version_; base::Version max_version_; @@ -456,8 +454,6 @@ }; const bool FindArchiveToPatchTest::kSystemInstall_ = false; -const BrowserDistribution::Type FindArchiveToPatchTest::kProductType_ = - BrowserDistribution::CHROME_BROWSER; } // namespace @@ -511,85 +507,6 @@ EXPECT_EQ(base::FilePath().value(), patch_source.value()); } -#if defined(GOOGLE_CHROME_BUILD) -namespace { - -const bool kSystemLevel = false; -const HKEY kRootKey = kSystemLevel ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; -const wchar_t kVersionString[] = L"30.0.1574.0"; -const wchar_t kMultiChannel[] = L"2.0-dev-multi-chromeframe"; - -class MigrateMultiToSingleTest : public testing::Test { - protected: - void SetUp() override { - registry_override_manager_.OverrideRegistry(kRootKey); - } - - private: - registry_util::RegistryOverrideManager registry_override_manager_; -}; - -} // namespace - -// Test migrating Chrome Frame from multi to single. -TEST_F(MigrateMultiToSingleTest, ChromeFrame) { - installer::ProductState chrome_frame; - installer::ProductState binaries; - DWORD usagestats = 0; - - // Set up a config with dev-channel multi-install GCF. - base::win::RegKey key; - - BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BINARIES); - ASSERT_EQ(ERROR_SUCCESS, - base::win::RegKey(kRootKey, dist->GetVersionKey().c_str(), - KEY_SET_VALUE) - .WriteValue(google_update::kRegVersionField, kVersionString)); - ASSERT_EQ(ERROR_SUCCESS, - base::win::RegKey(kRootKey, dist->GetStateKey().c_str(), - KEY_SET_VALUE) - .WriteValue(google_update::kRegApField, kMultiChannel)); - ASSERT_EQ(ERROR_SUCCESS, - base::win::RegKey(kRootKey, dist->GetStateKey().c_str(), - KEY_SET_VALUE) - .WriteValue(google_update::kRegUsageStatsField, 1U)); - - dist = BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_FRAME); - ASSERT_EQ(ERROR_SUCCESS, - base::win::RegKey(kRootKey, dist->GetVersionKey().c_str(), - KEY_SET_VALUE) - .WriteValue(google_update::kRegVersionField, kVersionString)); - ASSERT_EQ(ERROR_SUCCESS, - base::win::RegKey(kRootKey, dist->GetStateKey().c_str(), - KEY_SET_VALUE) - .WriteValue(google_update::kRegApField, kMultiChannel)); - - // Do the registry migration. - installer::InstallationState machine_state; - machine_state.Initialize(); - - installer::MigrateGoogleUpdateStateMultiToSingle( - kSystemLevel, - BrowserDistribution::CHROME_FRAME, - machine_state); - - // Confirm that usagestats were copied to CF and that its channel was - // stripped. - ASSERT_TRUE(chrome_frame.Initialize(kSystemLevel, - BrowserDistribution::CHROME_FRAME)); - EXPECT_TRUE(chrome_frame.GetUsageStats(&usagestats)); - EXPECT_EQ(1U, usagestats); - EXPECT_EQ(L"2.0-dev", chrome_frame.channel().value()); - - // Confirm that the binaries' channel no longer contains GCF. - ASSERT_TRUE(binaries.Initialize(kSystemLevel, - BrowserDistribution::CHROME_BINARIES)); - EXPECT_EQ(L"2.0-dev-multi", binaries.channel().value()); -} -#endif // GOOGLE_CHROME_BUILD - TEST(SetupUtilTest, ContainsUnsupportedSwitch) { EXPECT_FALSE(installer::ContainsUnsupportedSwitch( base::CommandLine::FromString(L"foo.exe"))); @@ -790,7 +707,6 @@ operation_ = InstallerState::SINGLE_INSTALL_OR_UPDATE; target_path_ = target_path; state_key_ = dist->GetStateKey(); - state_type_ = dist->GetType(); product_ = base::MakeUnique<Product>(dist); level_ = InstallerState::USER_LEVEL; root_key_ = HKEY_CURRENT_USER;
diff --git a/chrome/installer/util/google_update_constants.h b/chrome/installer/util/google_update_constants.h index fa3af27..1ef90f05 100644 --- a/chrome/installer/util/google_update_constants.h +++ b/chrome/installer/util/google_update_constants.h
@@ -9,6 +9,11 @@ namespace google_update { +// Specifies whether a tristate item has a value and if so what the value is. +// When converted from a DWORD in the Windows registry, All values other than 1 +// are mapped to TRISTATE_FALSE. +enum Tristate { TRISTATE_FALSE = 0, TRISTATE_TRUE = 1, TRISTATE_NONE = 2 }; + // The GUID Google Update uses to keep track of Chrome upgrades. extern const wchar_t kChromeUpgradeCode[];
diff --git a/chrome/installer/util/google_update_settings.cc b/chrome/installer/util/google_update_settings.cc index 11d7e96..ebb3835 100644 --- a/chrome/installer/util/google_update_settings.cc +++ b/chrome/installer/util/google_update_settings.cc
@@ -27,7 +27,6 @@ #include "chrome/installer/util/app_registration_data.h" #include "chrome/installer/util/browser_distribution.h" #include "chrome/installer/util/channel_info.h" -#include "chrome/installer/util/google_update_constants.h" #include "chrome/installer/util/install_util.h" #include "chrome/installer/util/installation_state.h" #include "chrome/installer/util/product.h" @@ -270,61 +269,66 @@ return GetCollectStatsConsentAtLevel(IsSystemInstall()); } -// Older versions of Chrome unconditionally read from HKCU\...\ClientState\... -// and then HKLM\...\ClientState\.... This means that system-level Chrome -// never checked ClientStateMedium (which has priority according to Google -// Update) and gave preference to a value in HKCU (which was never checked by -// Google Update). From now on, Chrome follows Google Update's policy. +bool GoogleUpdateSettings::SetCollectStatsConsent(bool consented) { + return SetCollectStatsConsentAtLevel(IsSystemInstall(), consented); +} + bool GoogleUpdateSettings::GetCollectStatsConsentAtLevel(bool system_install) { BrowserDistribution* dist = BrowserDistribution::GetDistribution(); // Consent applies to all products in a multi-install package. - if (InstallUtil::IsMultiInstall(dist, system_install)) { + if (InstallUtil::IsMultiInstall(system_install)) { dist = BrowserDistribution::GetSpecificDistribution( BrowserDistribution::CHROME_BINARIES); } + return GetCollectStatsConsentForApp(system_install, + dist->GetAppRegistrationData()) == + google_update::TRISTATE_TRUE; +} + +google_update::Tristate GoogleUpdateSettings::GetCollectStatsConsentForApp( + bool system_install, + const AppRegistrationData& reg_data) { RegKey key; - DWORD value = 0; + DWORD value = google_update::TRISTATE_NONE; bool have_value = false; const REGSAM kAccess = KEY_QUERY_VALUE | KEY_WOW64_32KEY; // For system-level installs, try ClientStateMedium first. have_value = system_install && - key.Open(HKEY_LOCAL_MACHINE, dist->GetStateMediumKey().c_str(), + key.Open(HKEY_LOCAL_MACHINE, reg_data.GetStateMediumKey().c_str(), kAccess) == ERROR_SUCCESS && - key.ReadValueDW(google_update::kRegUsageStatsField, - &value) == ERROR_SUCCESS; + key.ReadValueDW(google_update::kRegUsageStatsField, &value) == + ERROR_SUCCESS; // Otherwise, try ClientState. if (!have_value) { have_value = key.Open(system_install ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER, - dist->GetStateKey().c_str(), - kAccess) == ERROR_SUCCESS && - key.ReadValueDW(google_update::kRegUsageStatsField, - &value) == ERROR_SUCCESS; + reg_data.GetStateKey().c_str(), kAccess) == ERROR_SUCCESS && + key.ReadValueDW(google_update::kRegUsageStatsField, &value) == + ERROR_SUCCESS; } - // Google Update specifically checks that the value is 1, so we do the same. - return have_value && value == 1; -} + if (!have_value) + return google_update::TRISTATE_NONE; -bool GoogleUpdateSettings::SetCollectStatsConsent(bool consented) { - return SetCollectStatsConsentAtLevel(IsSystemInstall(), consented); + return value == google_update::TRISTATE_TRUE ? google_update::TRISTATE_TRUE + : google_update::TRISTATE_FALSE; } // static bool GoogleUpdateSettings::SetCollectStatsConsentAtLevel(bool system_install, bool consented) { - // Google Update writes and expects 1 for true, 0 for false. - DWORD value = consented ? 1 : 0; + DWORD value = + consented ? google_update::TRISTATE_TRUE : google_update::TRISTATE_FALSE; BrowserDistribution* dist = BrowserDistribution::GetDistribution(); // Consent applies to all products in a multi-install package. - if (InstallUtil::IsMultiInstall(dist, system_install)) { + if (InstallUtil::IsMultiInstall(system_install)) { dist = BrowserDistribution::GetSpecificDistribution( BrowserDistribution::CHROME_BINARIES); } @@ -418,36 +422,13 @@ DCHECK(dist); const DWORD eula_accepted = consented ? 1 : 0; const REGSAM kAccess = KEY_SET_VALUE | KEY_WOW64_32KEY; - base::string16 reg_path = dist->GetStateMediumKey(); - bool succeeded = true; RegKey key; // Write the consent value into the product's ClientStateMedium key. - if (key.Create(HKEY_LOCAL_MACHINE, reg_path.c_str(), - kAccess) != ERROR_SUCCESS || - key.WriteValue(google_update::kRegEULAAceptedField, - eula_accepted) != ERROR_SUCCESS) { - succeeded = false; - } - - // If this is a multi-install, also write it into the binaries' key. - // --mutli-install is not provided on the command-line, so deduce it from - // the product's state. - const installer::ProductState* product_state = - machine_state.GetProductState(true, dist->GetType()); - if (product_state != NULL && product_state->is_multi_install()) { - dist = BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BINARIES); - reg_path = dist->GetStateMediumKey(); - if (key.Create(HKEY_LOCAL_MACHINE, reg_path.c_str(), - kAccess) != ERROR_SUCCESS || - key.WriteValue(google_update::kRegEULAAceptedField, - eula_accepted) != ERROR_SUCCESS) { - succeeded = false; - } - } - - return succeeded; + return key.Create(HKEY_LOCAL_MACHINE, dist->GetStateMediumKey().c_str(), + kAccess) == ERROR_SUCCESS && + key.WriteValue(google_update::kRegEULAAceptedField, eula_accepted) == + ERROR_SUCCESS; } int GoogleUpdateSettings::GetLastRunTime() { @@ -510,7 +491,7 @@ bool result = UpdateDidRunStateForApp(dist->GetAppRegistrationData(), did_run); // Update state for binaries, even if the previous call was unsuccessful. - if (InstallUtil::IsMultiInstall(dist, system_level)) + if (InstallUtil::IsMultiInstall(system_level)) result = UpdateDidRunStateForBinaries(did_run) && result; return result; } @@ -852,8 +833,7 @@ } void GoogleUpdateSettings::RecordChromeUpdatePolicyHistograms() { - const bool is_multi_install = InstallUtil::IsMultiInstall( - BrowserDistribution::GetDistribution(), IsSystemInstall()); + const bool is_multi_install = InstallUtil::IsMultiInstall(IsSystemInstall()); const base::string16 app_guid = BrowserDistribution::GetSpecificDistribution( is_multi_install ? BrowserDistribution::CHROME_BINARIES :
diff --git a/chrome/installer/util/google_update_settings.h b/chrome/installer/util/google_update_settings.h index 7336195..6cdfebc 100644 --- a/chrome/installer/util/google_update_settings.h +++ b/chrome/installer/util/google_update_settings.h
@@ -16,9 +16,11 @@ #include "base/time/time.h" #include "base/version.h" #include "build/build_config.h" +#include "chrome/installer/util/google_update_constants.h" #include "chrome/installer/util/util_constants.h" #include "components/metrics/client_info.h" +class AppRegistrationData; class BrowserDistribution; namespace installer { @@ -88,6 +90,11 @@ // used to download the chrome installer. static bool GetCollectStatsConsentAtLevel(bool system_install); + // Returns the consent value for an app or TRISTATE_NONE if none is found. + static google_update::Tristate GetCollectStatsConsentForApp( + bool system_install, + const AppRegistrationData& reg_data); + // Sets the user consent to send UMA and crash dumps to Google. Returns // false if the setting could not be recorded. static bool SetCollectStatsConsentAtLevel(bool system_install,
diff --git a/chrome/installer/util/google_update_settings_unittest.cc b/chrome/installer/util/google_update_settings_unittest.cc index 70c64fb..d05f106 100644 --- a/chrome/installer/util/google_update_settings_unittest.cc +++ b/chrome/installer/util/google_update_settings_unittest.cc
@@ -585,33 +585,21 @@ TEST_F(GoogleUpdateSettingsTest, SetEULAConsent) { using installer::FakeInstallationState; - const bool multi_install = true; const bool system_level = true; FakeInstallationState machine_state; // Chrome is installed. - machine_state.AddChrome(system_level, multi_install, - new base::Version(chrome::kChromeVersion)); + machine_state.AddChrome(system_level, false /* !multi_install */, + new base::Version(chrome::kChromeVersion)); RegKey key; DWORD value; - BrowserDistribution* binaries = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BINARIES); - BrowserDistribution* chrome = - BrowserDistribution::GetSpecificDistribution( - BrowserDistribution::CHROME_BROWSER); + BrowserDistribution* chrome = BrowserDistribution::GetDistribution(); - // eulaconsent is set on both the product and the binaries. + // eulaconsent is set on the product. EXPECT_TRUE(GoogleUpdateSettings::SetEULAConsent(machine_state, chrome, true)); EXPECT_EQ(ERROR_SUCCESS, - key.Open(HKEY_LOCAL_MACHINE, binaries->GetStateMediumKey().c_str(), - KEY_QUERY_VALUE)); - EXPECT_EQ(ERROR_SUCCESS, - key.ReadValueDW(google_update::kRegEULAAceptedField, &value)); - EXPECT_EQ(1U, value); - EXPECT_EQ(ERROR_SUCCESS, key.Open(HKEY_LOCAL_MACHINE, chrome->GetStateMediumKey().c_str(), KEY_QUERY_VALUE)); EXPECT_EQ(ERROR_SUCCESS,
diff --git a/chrome/installer/util/install_util.cc b/chrome/installer/util/install_util.cc index c450f32..77d8839 100644 --- a/chrome/installer/util/install_util.cc +++ b/chrome/installer/util/install_util.cc
@@ -323,9 +323,8 @@ env->UnSetVar(kEnvProgramFilesPath); } -bool InstallUtil::IsMultiInstall(BrowserDistribution* dist, - bool system_install) { - DCHECK(dist); +bool InstallUtil::IsMultiInstall(bool system_install) { + BrowserDistribution* dist = BrowserDistribution::GetDistribution(); ProductState state; return state.Initialize(system_install, dist) && state.is_multi_install(); }
diff --git a/chrome/installer/util/install_util.h b/chrome/installer/util/install_util.h index 5862148..91f9a9a7 100644 --- a/chrome/installer/util/install_util.h +++ b/chrome/installer/util/install_util.h
@@ -93,9 +93,8 @@ // with fresh data. static void ResetIsPerUserInstallForTest(); - // Returns true if the installation represented by the pair of |dist| and - // |system_level| is a multi install. - static bool IsMultiInstall(BrowserDistribution* dist, bool system_install); + // Returns true if Chrome at |system_level| is a multi install. + static bool IsMultiInstall(bool system_install); // Returns true if this is running setup process for Chrome SxS (as // indicated by the presence of --chrome-sxs on the command line) or if this
diff --git a/components/autofill/core/browser/password_generator.cc b/components/autofill/core/browser/password_generator.cc index 86877fb..def0673 100644 --- a/components/autofill/core/browser/password_generator.cc +++ b/components/autofill/core/browser/password_generator.cc
@@ -55,7 +55,7 @@ namespace autofill { -const int PasswordGenerator::kDefaultPasswordLength = 12; +const int PasswordGenerator::kDefaultPasswordLength = 15; void ForceFixPassword(std::string* password) { for (char& it : *password) {
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc index f8a2c216..78c1b69 100644 --- a/components/ntp_snippets/features.cc +++ b/components/ntp_snippets/features.cc
@@ -30,7 +30,7 @@ "NTPSnippetsIncreasedVisibility", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kPhysicalWebPageSuggestionsFeature{ - "NTPPhysicalWebPageSuggestions", base::FEATURE_DISABLED_BY_DEFAULT}; + "NTPPhysicalWebPageSuggestions", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kContentSuggestionsFeature{ "NTPSnippets", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/components/prefs/testing_pref_service.cc b/components/prefs/testing_pref_service.cc index 1dd760e..fdaa33b0 100644 --- a/components/prefs/testing_pref_service.cc +++ b/components/prefs/testing_pref_service.cc
@@ -15,6 +15,7 @@ template <> TestingPrefServiceBase<PrefService, PrefRegistry>::TestingPrefServiceBase( TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, TestingPrefStore* user_prefs, TestingPrefStore* recommended_prefs, PrefRegistry* pref_registry, @@ -23,7 +24,7 @@ pref_notifier, new PrefValueStore(managed_prefs, NULL, - NULL, + extension_prefs, NULL, user_prefs, recommended_prefs, @@ -35,6 +36,7 @@ PrefRegistry>::HandleReadError), false), managed_prefs_(managed_prefs), + extension_prefs_(extension_prefs), user_prefs_(user_prefs), recommended_prefs_(recommended_prefs) {} @@ -43,6 +45,7 @@ new TestingPrefStore(), new TestingPrefStore(), new TestingPrefStore(), + new TestingPrefStore(), new PrefRegistrySimple(), new PrefNotifierImpl()) {}
diff --git a/components/prefs/testing_pref_service.h b/components/prefs/testing_pref_service.h index f29e506d..6f917174 100644 --- a/components/prefs/testing_pref_service.h +++ b/components/prefs/testing_pref_service.h
@@ -40,6 +40,14 @@ // preference has been defined previously. void RemoveManagedPref(const std::string& path); + // Similar to the above, but for extension preferences. + // Does not really know about extensions and their order of installation. + // Useful in tests that only check that a preference is overridden by an + // extension. + const base::Value* GetExtensionPref(const std::string& path) const; + void SetExtensionPref(const std::string& path, base::Value* value); + void RemoveExtensionPref(const std::string& path); + // Similar to the above, but for user preferences. const base::Value* GetUserPref(const std::string& path) const; void SetUserPref(const std::string& path, base::Value* value); @@ -54,12 +62,12 @@ static void HandleReadError(PersistentPrefStore::PrefReadError error) {} protected: - TestingPrefServiceBase( - TestingPrefStore* managed_prefs, - TestingPrefStore* user_prefs, - TestingPrefStore* recommended_prefs, - ConstructionPrefRegistry* pref_registry, - PrefNotifierImpl* pref_notifier); + TestingPrefServiceBase(TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, + TestingPrefStore* user_prefs, + TestingPrefStore* recommended_prefs, + ConstructionPrefRegistry* pref_registry, + PrefNotifierImpl* pref_notifier); private: // Reads the value of the preference indicated by |path| from |pref_store|. @@ -77,6 +85,7 @@ // Pointers to the pref stores our value store uses. scoped_refptr<TestingPrefStore> managed_prefs_; + scoped_refptr<TestingPrefStore> extension_prefs_; scoped_refptr<TestingPrefStore> user_prefs_; scoped_refptr<TestingPrefStore> recommended_prefs_; @@ -104,6 +113,7 @@ template<> TestingPrefServiceBase<PrefService, PrefRegistry>::TestingPrefServiceBase( TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, TestingPrefStore* user_prefs, TestingPrefStore* recommended_prefs, PrefRegistry* pref_registry, @@ -134,6 +144,25 @@ } template <class SuperPrefService, class ConstructionPrefRegistry> +const base::Value* TestingPrefServiceBase< + SuperPrefService, + ConstructionPrefRegistry>::GetExtensionPref(const std::string& path) const { + return GetPref(extension_prefs_.get(), path); +} + +template <class SuperPrefService, class ConstructionPrefRegistry> +void TestingPrefServiceBase<SuperPrefService, ConstructionPrefRegistry>:: + SetExtensionPref(const std::string& path, base::Value* value) { + SetPref(extension_prefs_.get(), path, value); +} + +template <class SuperPrefService, class ConstructionPrefRegistry> +void TestingPrefServiceBase<SuperPrefService, ConstructionPrefRegistry>:: + RemoveExtensionPref(const std::string& path) { + RemovePref(extension_prefs_.get(), path); +} + +template <class SuperPrefService, class ConstructionPrefRegistry> const base::Value* TestingPrefServiceBase<SuperPrefService, ConstructionPrefRegistry>::GetUserPref( const std::string& path) const {
diff --git a/components/sync_preferences/testing_pref_service_syncable.cc b/components/sync_preferences/testing_pref_service_syncable.cc index 2fc6d3e..e1598e9 100644 --- a/components/sync_preferences/testing_pref_service_syncable.cc +++ b/components/sync_preferences/testing_pref_service_syncable.cc
@@ -14,6 +14,7 @@ TestingPrefServiceBase<sync_preferences::PrefServiceSyncable, user_prefs::PrefRegistrySyncable>:: TestingPrefServiceBase(TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, TestingPrefStore* user_prefs, TestingPrefStore* recommended_prefs, user_prefs::PrefRegistrySyncable* pref_registry, @@ -21,9 +22,9 @@ : sync_preferences::PrefServiceSyncable( pref_notifier, new PrefValueStore(managed_prefs, - nullptr, // supervised_user_prefs - nullptr, // extension_prefs - nullptr, // command_line_prefs + nullptr, // supervised_user_prefs + extension_prefs, // extension_prefs + nullptr, // command_line_prefs user_prefs, recommended_prefs, pref_registry->defaults().get(), @@ -36,6 +37,7 @@ user_prefs::PrefRegistrySyncable>::HandleReadError), false), managed_prefs_(managed_prefs), + extension_prefs_(extension_prefs), user_prefs_(user_prefs), recommended_prefs_(recommended_prefs) {} @@ -47,11 +49,13 @@ new TestingPrefStore(), new TestingPrefStore(), new TestingPrefStore(), + new TestingPrefStore(), new user_prefs::PrefRegistrySyncable(), new PrefNotifierImpl()) {} TestingPrefServiceSyncable::TestingPrefServiceSyncable( TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, TestingPrefStore* user_prefs, TestingPrefStore* recommended_prefs, user_prefs::PrefRegistrySyncable* pref_registry, @@ -59,6 +63,7 @@ : TestingPrefServiceBase<PrefServiceSyncable, user_prefs::PrefRegistrySyncable>( managed_prefs, + extension_prefs, user_prefs, recommended_prefs, pref_registry,
diff --git a/components/sync_preferences/testing_pref_service_syncable.h b/components/sync_preferences/testing_pref_service_syncable.h index 521b802..cf83573f 100644 --- a/components/sync_preferences/testing_pref_service_syncable.h +++ b/components/sync_preferences/testing_pref_service_syncable.h
@@ -22,6 +22,7 @@ public: TestingPrefServiceSyncable(); TestingPrefServiceSyncable(TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, TestingPrefStore* user_prefs, TestingPrefStore* recommended_prefs, user_prefs::PrefRegistrySyncable* pref_registry, @@ -45,6 +46,7 @@ TestingPrefServiceBase<sync_preferences::PrefServiceSyncable, user_prefs::PrefRegistrySyncable>:: TestingPrefServiceBase(TestingPrefStore* managed_prefs, + TestingPrefStore* extension_prefs, TestingPrefStore* user_prefs, TestingPrefStore* recommended_prefs, user_prefs::PrefRegistrySyncable* pref_registry,
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index 05ed29a..350ad30 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -901,10 +901,10 @@ Web Services </message> <message name="IDS_IOS_PAGE_INFO_OFFLINE_PAGE" desc="Message to display in the page info bubble when the page you are on is an offline page."> - The page has been saved locally to your Reading List. + This page has been saved to your Reading List. </message> <message name="IDS_IOS_PAGE_INFO_OFFLINE_TITLE" desc="Title of the message to display in the page info bubble when the page you are on is an offline page."> - Viewing in Offline Mode + Viewing Offline Version </message> <message name="IDS_IOS_PAGE_INFO_RELOAD" desc="Button title in the page info bubble that allows to reload the current page."> Reload @@ -1047,8 +1047,14 @@ <message name="IDS_IOS_READING_LIST_SNACKBAR_MESSAGE" desc="Message briefly displayed at the bottom of the screen to the user to inform that the selected page has been added to the reading list. [Length: 35em]" meaning="The selected page has been added to your reading list. [Length: 35em]"> Added to Reading List </message> - <message name="IDS_IOS_READING_LIST_ENTRY_ACCESSIBILITY_LABEL" desc="Accessibility label for a reading list entry. Summarizes fields in the reading list entry (title and url). Read by Text To Speech."> - <ph name="TITLE"><ex>Chromium - The Chromium Projects</ex>$1</ph>, <ph name="URL"><ex>http://www.chromium.org/Home</ex>$2</ph> + <message name="IDS_IOS_READING_LIST_ENTRY_ACCESSIBILITY_LABEL" desc="Accessibility label for a reading list entry. Summarizes fields in the reading list entry (title, status and url). Read by Text To Speech."> + <ph name="TITLE"><ex>Chromium - The Chromium Projects</ex>$1</ph>, <ph name="STATE"><ex>Available offline</ex>$2</ph>, <ph name="URL"><ex>http://www.chromium.org/Home</ex>$3</ph> + </message> + <message name="IDS_IOS_READING_LIST_ACCESSIBILITY_STATE_DOWNLOADED" desc="Accessibility label for the offline status of the reading list entry. Read by Text To Speech."> + Available offline + </message> + <message name="IDS_IOS_READING_LIST_ACCESSIBILITY_STATE_NOT_DOWNLOADED" desc="Accessibility label for the offline status of the reading list entry. Read by Text To Speech."> + Not available offline </message> <message name="IDS_IOS_READING_LIST_CANCEL_BUTTON" desc="Label of the button to stop editing the reading list entries (delete, mark as read/unread) [Length: 25em]" meaning="Stop editing. [Length: 25em]"> Cancel
diff --git a/ios/chrome/browser/downstream_chromium_browser_provider.h b/ios/chrome/browser/downstream_chromium_browser_provider.h index 2e1e189..acfadeb27 100644 --- a/ios/chrome/browser/downstream_chromium_browser_provider.h +++ b/ios/chrome/browser/downstream_chromium_browser_provider.h
@@ -16,18 +16,6 @@ ~DownstreamChromiumBrowserProvider() override; private: - // ChromeBrowserProvider implementations. All of these will move upstream - // into ChromiumBrowserProvider eventually, and from there callers will be - // converted to not go through the provider API at all. - void GetFaviconForURL( - ios::ChromeBrowserState* browser_state, - const GURL& page_url, - const std::vector<int>& desired_sizes_in_pixel, - const favicon_base::FaviconResultsCallback& callback) const override; - std::unique_ptr<sync_sessions::SyncedWindowDelegatesGetter> - CreateSyncedWindowDelegatesGetter( - ios::ChromeBrowserState* browser_state) override; - DISALLOW_COPY_AND_ASSIGN(DownstreamChromiumBrowserProvider); };
diff --git a/ios/chrome/browser/downstream_chromium_browser_provider.mm b/ios/chrome/browser/downstream_chromium_browser_provider.mm index 20a3056a..7a2608e 100644 --- a/ios/chrome/browser/downstream_chromium_browser_provider.mm +++ b/ios/chrome/browser/downstream_chromium_browser_provider.mm
@@ -4,30 +4,6 @@ #import "ios/chrome/browser/downstream_chromium_browser_provider.h" -#import <UIKit/UIKit.h> - -#include <memory> -#include <string> - -#include "base/memory/ptr_util.h" -#include "ios/chrome/browser/tabs/tab_model_synced_window_delegate_getter.h" -#include "ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.h" - DownstreamChromiumBrowserProvider::DownstreamChromiumBrowserProvider() {} DownstreamChromiumBrowserProvider::~DownstreamChromiumBrowserProvider() {} - -void DownstreamChromiumBrowserProvider::GetFaviconForURL( - ios::ChromeBrowserState* browser_state, - const GURL& page_url, - const std::vector<int>& desired_sizes_in_pixel, - const favicon_base::FaviconResultsCallback& callback) const { - ChromeWebUIIOSControllerFactory::GetInstance()->GetFaviconForURL( - browser_state, page_url, desired_sizes_in_pixel, callback); -} - -std::unique_ptr<sync_sessions::SyncedWindowDelegatesGetter> -DownstreamChromiumBrowserProvider::CreateSyncedWindowDelegatesGetter( - ios::ChromeBrowserState* browser_state) { - return base::MakeUnique<TabModelSyncedWindowDelegatesGetter>(browser_state); -}
diff --git a/ios/chrome/browser/favicon/BUILD.gn b/ios/chrome/browser/favicon/BUILD.gn index 01b0c56..4b3e6af 100644 --- a/ios/chrome/browser/favicon/BUILD.gn +++ b/ios/chrome/browser/favicon/BUILD.gn
@@ -30,12 +30,13 @@ "//components/favicon_base", "//components/keyed_service/core", "//components/keyed_service/ios", + "//components/resources", "//ios/chrome/browser", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/history", - "//ios/public/provider/chrome/browser", "//ios/web", "//skia", + "//ui/base", "//ui/gfx", "//url", ]
diff --git a/ios/chrome/browser/favicon/favicon_client_impl.h b/ios/chrome/browser/favicon/favicon_client_impl.h index 3874fb5..0680303 100644 --- a/ios/chrome/browser/favicon/favicon_client_impl.h +++ b/ios/chrome/browser/favicon/favicon_client_impl.h
@@ -12,16 +12,12 @@ #include "components/favicon/core/favicon_client.h" #include "components/favicon_base/favicon_callback.h" -namespace ios { -class ChromeBrowserState; -} - class GURL; // FaviconClientImpl implements the favicon::FaviconClient interface on iOS. class FaviconClientImpl : public favicon::FaviconClient { public: - FaviconClientImpl(ios::ChromeBrowserState* browser_state); + FaviconClientImpl(); ~FaviconClientImpl() override; private: @@ -33,8 +29,6 @@ const favicon_base::FaviconResultsCallback& callback, base::CancelableTaskTracker* tracker) override; - ios::ChromeBrowserState* browser_state_; - DISALLOW_COPY_AND_ASSIGN(FaviconClientImpl); };
diff --git a/ios/chrome/browser/favicon/favicon_client_impl.mm b/ios/chrome/browser/favicon/favicon_client_impl.mm index 860e4894..5f48768 100644 --- a/ios/chrome/browser/favicon/favicon_client_impl.mm +++ b/ios/chrome/browser/favicon/favicon_client_impl.mm
@@ -4,11 +4,21 @@ #include "ios/chrome/browser/favicon/favicon_client_impl.h" +#include <memory> + #include "base/bind.h" #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "base/task/cancelable_task_tracker.h" +#include "base/threading/thread_task_runner_handle.h" +#include "components/favicon/core/favicon_service.h" +#include "components/favicon_base/favicon_types.h" +#include "components/favicon_base/select_favicon_frames.h" +#include "components/grit/components_scaled_resources.h" #include "ios/chrome/browser/chrome_url_constants.h" -#include "ios/public/provider/chrome/browser/chrome_browser_provider.h" +#include "ui/base/layout.h" +#include "ui/base/resource/resource_bundle.h" +#include "ui/gfx/favicon_size.h" #include "url/gurl.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -17,19 +27,58 @@ namespace { -void RunFaviconCallbackIfNotCanceled( - const base::CancelableTaskTracker::IsCanceledCallback& is_canceled_cb, - const favicon_base::FaviconResultsCallback& original_callback, - const std::vector<favicon_base::FaviconRawBitmapResult>& results) { - if (!is_canceled_cb.Run()) { - original_callback.Run(results); +int GetFaviconResourceIdForNativeURL(const GURL& url) { + if (url.host_piece() == kChromeUICrashesHost) + return IDR_CRASH_SAD_FAVICON; + if (url.host_piece() == kChromeUIFlagsHost) + return IDR_FLAGS_FAVICON; + if (url.host_piece() == kChromeUIAppleFlagsHost) + return IDR_FLAGS_FAVICON; + return -1; +} + +void GetFaviconBitmapForNativeURL( + const GURL& url, + const std::vector<int>& desired_sizes_in_pixel, + std::vector<favicon_base::FaviconRawBitmapResult>* favicon_bitmap_results) { + const int resource_id = GetFaviconResourceIdForNativeURL(url); + if (resource_id == -1) + return; + + // Use ui::GetSupportedScaleFactors() because native URL favicon comes from + // resources. + std::vector<ui::ScaleFactor> scale_factors = ui::GetSupportedScaleFactors(); + + std::vector<gfx::Size> candidate_sizes; + for (ui::ScaleFactor scale_factor : scale_factors) { + float scale = ui::GetScaleForScaleFactor(scale_factor); + int candidate_size = static_cast<int>(gfx::kFaviconSize * scale + 0.5f); + candidate_sizes.push_back(gfx::Size(candidate_size, candidate_size)); + } + + std::vector<size_t> selected_indices; + SelectFaviconFrameIndices(candidate_sizes, desired_sizes_in_pixel, + &selected_indices, nullptr); + + for (size_t selected_index : selected_indices) { + ui::ScaleFactor scale_factor = scale_factors[selected_index]; + favicon_base::FaviconRawBitmapResult favicon_bitmap; + favicon_bitmap.icon_type = favicon_base::FAVICON; + favicon_bitmap.pixel_size = candidate_sizes[selected_index]; + favicon_bitmap.bitmap_data = + ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale( + resource_id, scale_factor); + + if (!favicon_bitmap.is_valid()) + continue; + + favicon_bitmap_results->push_back(favicon_bitmap); } } } // namespace -FaviconClientImpl::FaviconClientImpl(ios::ChromeBrowserState* browser_state) - : browser_state_(browser_state) {} +FaviconClientImpl::FaviconClientImpl() {} FaviconClientImpl::~FaviconClientImpl() {} @@ -45,13 +94,14 @@ base::CancelableTaskTracker* tracker) { DCHECK(tracker); DCHECK(IsNativeApplicationURL(url)); - base::CancelableTaskTracker::IsCanceledCallback is_canceled_cb; - base::CancelableTaskTracker::TaskId task_id = - tracker->NewTrackedTaskId(&is_canceled_cb); - if (task_id != base::CancelableTaskTracker::kBadTaskId) { - ios::GetChromeBrowserProvider()->GetFaviconForURL( - browser_state_, url, desired_sizes_in_pixel, - base::Bind(&RunFaviconCallbackIfNotCanceled, is_canceled_cb, callback)); - } - return task_id; + + auto favicon_bitmap_results = + base::MakeUnique<std::vector<favicon_base::FaviconRawBitmapResult>>(); + GetFaviconBitmapForNativeURL(url, desired_sizes_in_pixel, + favicon_bitmap_results.get()); + + return tracker->PostTask( + base::ThreadTaskRunnerHandle::Get().get(), FROM_HERE, + base::Bind(&favicon::FaviconService::FaviconResultsCallbackRunner, + callback, base::Owned(favicon_bitmap_results.release()))); }
diff --git a/ios/chrome/browser/favicon/favicon_service_factory.cc b/ios/chrome/browser/favicon/favicon_service_factory.cc index 6f7cce1a..0c72fd5 100644 --- a/ios/chrome/browser/favicon/favicon_service_factory.cc +++ b/ios/chrome/browser/favicon/favicon_service_factory.cc
@@ -53,7 +53,7 @@ ios::ChromeBrowserState* browser_state = ios::ChromeBrowserState::FromBrowserState(context); return base::MakeUnique<favicon::FaviconService>( - base::WrapUnique(new FaviconClientImpl(browser_state)), + base::MakeUnique<FaviconClientImpl>(), ios::HistoryServiceFactory::GetForBrowserState( browser_state, ServiceAccessType::EXPLICIT_ACCESS)); }
diff --git a/ios/chrome/browser/sync/BUILD.gn b/ios/chrome/browser/sync/BUILD.gn index 7711e27..3dabba1 100644 --- a/ios/chrome/browser/sync/BUILD.gn +++ b/ios/chrome/browser/sync/BUILD.gn
@@ -56,9 +56,9 @@ "//ios/chrome/browser/signin", "//ios/chrome/browser/sync/glue", "//ios/chrome/browser/sync/sessions", + "//ios/chrome/browser/tabs", "//ios/chrome/browser/undo", "//ios/chrome/common", - "//ios/public/provider/chrome/browser", "//ios/web", "//net", "//ui/base",
diff --git a/ios/chrome/browser/sync/ios_chrome_sync_client.mm b/ios/chrome/browser/sync/ios_chrome_sync_client.mm index 5ed9a2b..10bf741 100644 --- a/ios/chrome/browser/sync/ios_chrome_sync_client.mm +++ b/ios/chrome/browser/sync/ios_chrome_sync_client.mm
@@ -58,10 +58,10 @@ #include "ios/chrome/browser/sync/glue/sync_start_util.h" #include "ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory.h" #include "ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.h" +#include "ios/chrome/browser/tabs/tab_model_synced_window_delegate_getter.h" #include "ios/chrome/browser/undo/bookmark_undo_service_factory.h" #include "ios/chrome/browser/web_data_service_factory.h" #include "ios/chrome/common/channel_info.h" -#include "ios/public/provider/chrome/browser/chrome_browser_provider.h" #include "ios/web/public/web_thread.h" #include "ui/base/device_form_factor.h" @@ -79,7 +79,7 @@ explicit SyncSessionsClientImpl(ios::ChromeBrowserState* browser_state) : browser_state_(browser_state), window_delegates_getter_( - ios::GetChromeBrowserProvider()->CreateSyncedWindowDelegatesGetter( + base::MakeUnique<TabModelSyncedWindowDelegatesGetter>( browser_state)) {} ~SyncSessionsClientImpl() override {}
diff --git a/ios/chrome/browser/tabs/BUILD.gn b/ios/chrome/browser/tabs/BUILD.gn index 14b8f1b..04646b8d 100644 --- a/ios/chrome/browser/tabs/BUILD.gn +++ b/ios/chrome/browser/tabs/BUILD.gn
@@ -9,11 +9,16 @@ "tab_dialog_delegate.h", "tab_model.h", "tab_model_observer.h", + "tab_model_order_controller.h", + "tab_model_synced_window_delegate.h", + "tab_model_synced_window_delegate_getter.h", "tab_private.h", "tab_snapshotting_delegate.h", ] deps = [ + "//components/sessions", "//components/signin/ios/browser", + "//components/sync_sessions", "//ios/net", "//ios/web", "//ui/base", @@ -25,11 +30,8 @@ sources = [ "tab.mm", "tab_model.mm", - "tab_model_order_controller.h", "tab_model_order_controller.mm", - "tab_model_synced_window_delegate.h", "tab_model_synced_window_delegate.mm", - "tab_model_synced_window_delegate_getter.h", "tab_model_synced_window_delegate_getter.mm", ] deps = [ @@ -53,7 +55,6 @@ "//components/signin/core/browser", "//components/signin/ios/browser", "//components/strings", - "//components/sync_sessions", "//components/url_formatter", "//ios/chrome/app/strings", "//ios/chrome/browser",
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_collection_view_item.mm b/ios/chrome/browser/ui/reading_list/reading_list_collection_view_item.mm index 8c5a1a3..e13cc2f 100644 --- a/ios/chrome/browser/ui/reading_list/reading_list_collection_view_item.mm +++ b/ios/chrome/browser/ui/reading_list/reading_list_collection_view_item.mm
@@ -101,6 +101,7 @@ - (void)setDistillationState: (ReadingListEntry::DistillationState)distillationState { self.displayedCell.distillationState = distillationState; + self.displayedCell.accessibilityLabel = [self accessibilityLabel]; _distillationState = distillationState; } @@ -117,10 +118,7 @@ cell.delegate = self; cell.distillationState = _distillationState; cell.isAccessibilityElement = YES; - cell.accessibilityLabel = - l10n_util::GetNSStringF(IDS_IOS_READING_LIST_ENTRY_ACCESSIBILITY_LABEL, - base::SysNSStringToUTF16(self.text), - base::SysNSStringToUTF16(self.detailText)); + cell.accessibilityLabel = [self accessibilityLabel]; } #pragma mark - ReadingListCellDelegate @@ -129,6 +127,24 @@ self.displayedCell = nil; } +#pragma mark - Private + +- (NSString*)accessibilityLabel { + NSString* accessibilityState = nil; + if (self.distillationState == ReadingListEntry::PROCESSED) { + accessibilityState = l10n_util::GetNSString( + IDS_IOS_READING_LIST_ACCESSIBILITY_STATE_DOWNLOADED); + } else { + accessibilityState = l10n_util::GetNSString( + IDS_IOS_READING_LIST_ACCESSIBILITY_STATE_NOT_DOWNLOADED); + } + + return l10n_util::GetNSStringF(IDS_IOS_READING_LIST_ENTRY_ACCESSIBILITY_LABEL, + base::SysNSStringToUTF16(self.text), + base::SysNSStringToUTF16(accessibilityState), + base::SysNSStringToUTF16(self.detailText)); +} + #pragma mark - NSObject - (NSString*)description {
diff --git a/ios/chrome/browser/ui/webui/BUILD.gn b/ios/chrome/browser/ui/webui/BUILD.gn index d5ebc91..df43c20d 100644 --- a/ios/chrome/browser/ui/webui/BUILD.gn +++ b/ios/chrome/browser/ui/webui/BUILD.gn
@@ -67,8 +67,6 @@ deps = [ ":webui", "//base", - "//components/favicon/core", - "//components/favicon_base", "//components/resources", "//components/signin/core/browser", "//ios/chrome/app/resources:ios_resources", @@ -80,8 +78,6 @@ "//ios/chrome/browser/ui/webui/net_export", "//ios/chrome/browser/ui/webui/sync_internals", "//ios/web", - "//ui/base", - "//ui/gfx", "//url", ] }
diff --git a/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.h b/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.h index 5030097..7b3fa59 100644 --- a/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.h +++ b/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.h
@@ -9,18 +9,8 @@ #include "base/macros.h" #include "base/memory/singleton.h" -#include "components/favicon_base/favicon_callback.h" #include "ios/web/public/webui/web_ui_ios.h" #include "ios/web/public/webui/web_ui_ios_controller_factory.h" -#include "ui/base/layout.h" - -namespace base { -class RefCountedMemory; -} - -namespace ios { -class ChromeBrowserState; -} class GURL; @@ -32,14 +22,6 @@ static ChromeWebUIIOSControllerFactory* GetInstance(); - // Get the favicon for |page_url| and run |callback| with result when loaded. - // Note. |callback| is always run asynchronously. - void GetFaviconForURL( - ios::ChromeBrowserState* browser_state, - const GURL& page_url, - const std::vector<int>& desired_sizes_in_pixel, - const favicon_base::FaviconResultsCallback& callback) const; - protected: ChromeWebUIIOSControllerFactory(); ~ChromeWebUIIOSControllerFactory() override; @@ -47,14 +29,6 @@ private: friend struct base::DefaultSingletonTraits<ChromeWebUIIOSControllerFactory>; - // Gets the data for the favicon for a WebUIIOS page. Returns nullptr if the - // WebUIIOS does not have a favicon. - // The returned favicon data must be |gfx::kFaviconSize| x |gfx::kFaviconSize| - // DIP. GetFaviconForURL() should be updated if this changes. - base::RefCountedMemory* GetFaviconResourceBytes( - const GURL& page_url, - ui::ScaleFactor scale_factor) const; - DISALLOW_COPY_AND_ASSIGN(ChromeWebUIIOSControllerFactory); };
diff --git a/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm b/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm index 3488abe..cf1df75 100644 --- a/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm +++ b/ios/chrome/browser/ui/webui/chrome_web_ui_ios_controller_factory.mm
@@ -6,10 +6,6 @@ #include "base/bind.h" #include "base/location.h" -#include "base/threading/thread_task_runner_handle.h" -#include "components/favicon/core/favicon_service.h" -#include "components/favicon_base/favicon_types.h" -#include "components/favicon_base/select_favicon_frames.h" #include "ios/chrome/browser/chrome_url_constants.h" #include "ios/chrome/browser/experimental_flags.h" #include "ios/chrome/browser/ui/webui/about_ui.h" @@ -24,7 +20,6 @@ #include "ios/chrome/browser/ui/webui/signin_internals_ui_ios.h" #include "ios/chrome/browser/ui/webui/sync_internals/sync_internals_ui.h" #include "ios/chrome/browser/ui/webui/version_ui.h" -#include "ui/gfx/favicon_size.h" #include "url/gurl.h" using web::WebUIIOS; @@ -91,23 +86,9 @@ if (url_host == kChromeUIAppleFlagsHost) return &NewWebUIIOS<AppleFlagsUI>; - // NOTE: It's possible that |url| is a WebUI URL that will be handled by - // ChromeWebUIControllerFactory. Once the iOS port is no longer using - // ChromeWebUIControllerFactory, there should be a DLOG here noting that - // |url| is an unknown WebUI URL. - return nullptr; } -void RunFaviconCallbackAsync( - const favicon_base::FaviconResultsCallback& callback, - const std::vector<favicon_base::FaviconRawBitmapResult>* results) { - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, - base::Bind(&favicon::FaviconService::FaviconResultsCallbackRunner, - callback, base::Owned(results))); -} - } // namespace WebUIIOSController* @@ -130,67 +111,3 @@ ChromeWebUIIOSControllerFactory::ChromeWebUIIOSControllerFactory() {} ChromeWebUIIOSControllerFactory::~ChromeWebUIIOSControllerFactory() {} - -void ChromeWebUIIOSControllerFactory::GetFaviconForURL( - ios::ChromeBrowserState* browser_state, - const GURL& page_url, - const std::vector<int>& desired_sizes_in_pixel, - const favicon_base::FaviconResultsCallback& callback) const { - GURL url(page_url); - - std::vector<favicon_base::FaviconRawBitmapResult>* favicon_bitmap_results = - new std::vector<favicon_base::FaviconRawBitmapResult>(); - - // Use ui::GetSupportedScaleFactors instead of - // favicon_base::GetFaviconScales() because chrome favicons comes from - // resources. - std::vector<ui::ScaleFactor> resource_scale_factors = - ui::GetSupportedScaleFactors(); - - std::vector<gfx::Size> candidate_sizes; - for (size_t i = 0; i < resource_scale_factors.size(); ++i) { - float scale = ui::GetScaleForScaleFactor(resource_scale_factors[i]); - int candidate_edge_size = - static_cast<int>(gfx::kFaviconSize * scale + 0.5f); - candidate_sizes.push_back( - gfx::Size(candidate_edge_size, candidate_edge_size)); - } - std::vector<size_t> selected_indices; - SelectFaviconFrameIndices(candidate_sizes, desired_sizes_in_pixel, - &selected_indices, nullptr); - for (size_t i = 0; i < selected_indices.size(); ++i) { - size_t selected_index = selected_indices[i]; - ui::ScaleFactor selected_resource_scale = - resource_scale_factors[selected_index]; - - scoped_refptr<base::RefCountedMemory> bitmap( - GetFaviconResourceBytes(url, selected_resource_scale)); - if (bitmap.get() && bitmap->size()) { - favicon_base::FaviconRawBitmapResult bitmap_result; - bitmap_result.bitmap_data = bitmap; - // Leave |bitmap_result|'s icon URL as the default of GURL(). - bitmap_result.icon_type = favicon_base::FAVICON; - bitmap_result.pixel_size = candidate_sizes[selected_index]; - favicon_bitmap_results->push_back(bitmap_result); - } - } - - RunFaviconCallbackAsync(callback, favicon_bitmap_results); -} - -base::RefCountedMemory* -ChromeWebUIIOSControllerFactory::GetFaviconResourceBytes( - const GURL& page_url, - ui::ScaleFactor scale_factor) const { - if (!page_url.SchemeIs(kChromeUIScheme)) - return nullptr; - - if (page_url.host_piece() == kChromeUICrashesHost) - return CrashesUI::GetFaviconResourceBytes(scale_factor); - if (page_url.host_piece() == kChromeUIFlagsHost) - return FlagsUI::GetFaviconResourceBytes(scale_factor); - if (page_url.host_piece() == kChromeUIAppleFlagsHost) - return AppleFlagsUI::GetFaviconResourceBytes(scale_factor); - - return nullptr; -}
diff --git a/ios/chrome/browser/ui/webui/crashes_ui.cc b/ios/chrome/browser/ui/webui/crashes_ui.cc index 6286a34..269baea 100644 --- a/ios/chrome/browser/ui/webui/crashes_ui.cc +++ b/ios/chrome/browser/ui/webui/crashes_ui.cc
@@ -9,13 +9,11 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/macros.h" -#include "base/memory/ref_counted_memory.h" #include "base/strings/utf_string_conversions.h" #include "base/sys_info.h" #include "base/values.h" #include "components/crash/core/browser/crashes_ui_util.h" #include "components/grit/components_resources.h" -#include "components/grit/components_scaled_resources.h" #include "components/strings/grit/components_chromium_strings.h" #include "components/strings/grit/components_strings.h" #include "components/version_info/version_info.h" @@ -27,7 +25,6 @@ #include "ios/web/public/web_ui_ios_data_source.h" #include "ios/web/public/webui/web_ui_ios.h" #include "ios/web/public/webui/web_ui_ios_message_handler.h" -#include "ui/base/resource/resource_bundle.h" namespace { @@ -155,10 +152,3 @@ web::WebUIIOSDataSource::Add(ios::ChromeBrowserState::FromWebUIIOS(web_ui), CreateCrashesUIHTMLSource()); } - -// static -base::RefCountedMemory* CrashesUI::GetFaviconResourceBytes( - ui::ScaleFactor scale_factor) { - return ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale( - IDR_CRASH_SAD_FAVICON, scale_factor); -}
diff --git a/ios/chrome/browser/ui/webui/crashes_ui.h b/ios/chrome/browser/ui/webui/crashes_ui.h index 3eae058..91b3513 100644 --- a/ios/chrome/browser/ui/webui/crashes_ui.h +++ b/ios/chrome/browser/ui/webui/crashes_ui.h
@@ -7,11 +7,6 @@ #include "base/macros.h" #include "ios/web/public/webui/web_ui_ios_controller.h" -#include "ui/base/layout.h" - -namespace base { -class RefCountedMemory; -} namespace web { class WebUIIOS; @@ -21,9 +16,6 @@ public: explicit CrashesUI(web::WebUIIOS* web_ui); - static base::RefCountedMemory* GetFaviconResourceBytes( - ui::ScaleFactor scale_factor); - private: DISALLOW_COPY_AND_ASSIGN(CrashesUI); };
diff --git a/ios/chrome/browser/ui/webui/flags_ui.cc b/ios/chrome/browser/ui/webui/flags_ui.cc index a30327c..1ffd385 100644 --- a/ios/chrome/browser/ui/webui/flags_ui.cc +++ b/ios/chrome/browser/ui/webui/flags_ui.cc
@@ -9,14 +9,12 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/macros.h" -#include "base/memory/ref_counted_memory.h" #include "base/strings/utf_string_conversions.h" #include "base/values.h" #include "components/flags_ui/flags_ui_constants.h" #include "components/flags_ui/flags_ui_pref_names.h" #include "components/flags_ui/pref_service_flags_storage.h" #include "components/grit/components_resources.h" -#include "components/grit/components_scaled_resources.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" #include "components/strings/grit/components_chromium_strings.h" @@ -230,13 +228,6 @@ BaseFlagsUI::~BaseFlagsUI() {} -// static -base::RefCountedMemory* BaseFlagsUI::GetFaviconResourceBytes( - ui::ScaleFactor scale_factor) { - return ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale( - IDR_FLAGS_FAVICON, scale_factor); -} - /////////////////////////////////////////////////////////////////////////////// // // FlagsUI
diff --git a/ios/chrome/browser/ui/webui/flags_ui.h b/ios/chrome/browser/ui/webui/flags_ui.h index e011da4..3a4492f 100644 --- a/ios/chrome/browser/ui/webui/flags_ui.h +++ b/ios/chrome/browser/ui/webui/flags_ui.h
@@ -8,11 +8,6 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "ios/web/public/webui/web_ui_ios_controller.h" -#include "ui/base/layout.h" - -namespace base { -class RefCountedMemory; -} class BaseFlagsUI : public web::WebUIIOSController { public: @@ -24,9 +19,6 @@ BaseFlagsUI(web::WebUIIOS* web_ui, FlagsUIKind flags_ui_kind); ~BaseFlagsUI() override; - static base::RefCountedMemory* GetFaviconResourceBytes( - ui::ScaleFactor scale_factor); - private: void Initialize(web::WebUIIOS* web_ui, FlagsUIKind flags_ui_kind);
diff --git a/ios/chrome/browser/ui/webui/signin_internals_ui_ios.cc b/ios/chrome/browser/ui/webui/signin_internals_ui_ios.cc index 903b6ae..714215f1 100644 --- a/ios/chrome/browser/ui/webui/signin_internals_ui_ios.cc +++ b/ios/chrome/browser/ui/webui/signin_internals_ui_ios.cc
@@ -14,7 +14,6 @@ #include "ios/chrome/browser/signin/gaia_cookie_manager_service_factory.h" #include "ios/web/public/web_ui_ios_data_source.h" #include "ios/web/public/webui/web_ui_ios.h" -#include "ui/base/resource/resource_bundle.h" namespace {
diff --git a/ios/chrome/share_extension/share_extension_localize_strings_config.plist b/ios/chrome/share_extension/share_extension_localize_strings_config.plist index 27e4c3d..6fc22d7a 100644 --- a/ios/chrome/share_extension/share_extension_localize_strings_config.plist +++ b/ios/chrome/share_extension/share_extension_localize_strings_config.plist
@@ -15,6 +15,7 @@ <array> <string>IDS_IOS_ADD_READING_LIST_SHARE_EXTENSION</string> <string>IDS_IOS_ADD_BOOKMARKS_SHARE_EXTENSION</string> + <string>IDS_IOS_ADDED_ITEM_SHARE_EXTENSION</string> <string>IDS_IOS_ERROR_MESSAGE_SHARE_EXTENSION</string> <string>IDS_IOS_OK_BUTTON_SHARE_EXTENSION</string> </array>
diff --git a/ios/chrome/share_extension/share_extension_view.mm b/ios/chrome/share_extension/share_extension_view.mm index ad47be8..1e0f73c 100644 --- a/ios/chrome/share_extension/share_extension_view.mm +++ b/ios/chrome/share_extension/share_extension_view.mm
@@ -51,11 +51,16 @@ @interface ShareExtensionView () { __weak id<ShareExtensionViewActionTarget> _target; + + // Track if a button has been pressed. All button pressing will have no effect + // if |_dismissed| is YES. + BOOL _dismissed; } // Keep strong references of the views that need to be updated. @property(nonatomic, strong) UILabel* titleLabel; @property(nonatomic, strong) UILabel* URLLabel; +@property(nonatomic, strong) UIButton* readingListButton; @property(nonatomic, strong) UIImageView* screenshotView; @property(nonatomic, strong) UIStackView* itemStack; @@ -74,12 +79,27 @@ // Returns a navigationBar. - (UINavigationBar*)navigationBar; +// Called when "Read Later" button has been pressed. +- (void)addToReadingListPressed:(UIButton*)sender; + +// Called when "Add to bookmarks" button has been pressed. +- (void)addToBookmarksPressed:(UIButton*)sender; + +// Called when "Cancel" button has been pressed. +- (void)cancelPressed:(UIButton*)sender; + +// Animates the button |sender| by replaceing its string to "Added", then call +// completion. +- (void)animateButtonPressed:(UIButton*)sender + withCompletion:(void (^)(void))completion; + @end @implementation ShareExtensionView @synthesize titleLabel = _titleLabel; @synthesize URLLabel = _URLLabel; +@synthesize readingListButton = _readingListButton; @synthesize screenshotView = _screenshotView; @synthesize itemStack = _itemStack; @@ -91,6 +111,7 @@ if (self) { DCHECK(target); _target = target; + _dismissed = NO; [self.layer setCornerRadius:kCornerRadius]; [self setClipsToBounds:YES]; @@ -112,22 +133,21 @@ NSString* addToReadingListTitle = NSLocalizedString( @"IDS_IOS_ADD_READING_LIST_SHARE_EXTENSION", @"The add to reading list button text in share extension."); - UIButton* readingListButton = [self - buttonWithTitle:addToReadingListTitle - selector:@selector( - shareExtensionViewDidSelectAddToReadingList:)]; + self.readingListButton = + [self buttonWithTitle:addToReadingListTitle + selector:@selector(addToReadingListPressed:)]; NSString* addToBookmarksTitle = NSLocalizedString( @"IDS_IOS_ADD_BOOKMARKS_SHARE_EXTENSION", @"The Add to bookmarks button text in share extension."); - UIButton* bookmarksButton = [self - buttonWithTitle:addToBookmarksTitle - selector:@selector(shareExtensionViewDidSelectAddToBookmarks:)]; + UIButton* bookmarksButton = + [self buttonWithTitle:addToBookmarksTitle + selector:@selector(addToBookmarksPressed:)]; UIStackView* contentStack = [[UIStackView alloc] initWithArrangedSubviews:@[ [self navigationBar], [self dividerViewWithVibrancy:vibrancyEffect], [self sharedItemView], [self dividerViewWithVibrancy:vibrancyEffect], - readingListButton, [self dividerViewWithVibrancy:vibrancyEffect], + self.readingListButton, [self dividerViewWithVibrancy:vibrancyEffect], bookmarksButton ]]; [contentStack setAxis:UILayoutConstraintAxisVertical]; @@ -256,7 +276,7 @@ [button setTitleColor:systemColor forState:UIControlStateNormal]; [[button titleLabel] setFont:[UIFont systemFontOfSize:kButtonFontSize]]; [button setTranslatesAutoresizingMaskIntoConstraints:NO]; - [button addTarget:_target + [button addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside]; [button.heightAnchor constraintEqualToConstant:kButtonHeight].active = YES; @@ -281,9 +301,8 @@ UIBarButtonItem* cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:_target - action:@selector( - shareExtensionViewDidSelectCancel:)]; + target:self + action:@selector(cancelPressed:)]; NSString* appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]; @@ -295,6 +314,95 @@ return navigationBar; } +- (void)addToReadingListPressed:(UIButton*)sender { + if (_dismissed) { + return; + } + _dismissed = YES; + [self animateButtonPressed:sender + withCompletion:^{ + [_target shareExtensionViewDidSelectAddToReadingList:sender]; + }]; +} + +- (void)addToBookmarksPressed:(UIButton*)sender { + if (_dismissed) { + return; + } + _dismissed = YES; + [self animateButtonPressed:sender + withCompletion:^{ + [_target shareExtensionViewDidSelectAddToBookmarks:sender]; + }]; +} + +- (void)animateButtonPressed:(UIButton*)sender + withCompletion:(void (^)(void))completion { + NSString* addedString = + NSLocalizedString(@"IDS_IOS_ADDED_ITEM_SHARE_EXTENSION", + @"Button label after being pressed."); + NSString* addedCheckedString = + [addedString stringByAppendingString:@" \u2713"]; + // Create a label with the same style as the split animation between the text + // and the checkmark. + UILabel* addedLabel = [[UILabel alloc] initWithFrame:CGRectZero]; + [addedLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; + [addedLabel setText:addedString]; + [self addSubview:addedLabel]; + [addedLabel setFont:[sender titleLabel].font]; + [addedLabel setTextColor:[sender titleColorForState:UIControlStateNormal]]; + [addedLabel.leadingAnchor + constraintEqualToAnchor:[sender titleLabel].leadingAnchor] + .active = YES; + [addedLabel.centerYAnchor + constraintEqualToAnchor:[sender titleLabel].centerYAnchor] + .active = YES; + [addedLabel setAlpha:0]; + + void (^step3ShowCheck)() = ^{ + [UIView animateWithDuration:ui_util::kAnimationDuration + animations:^{ + [addedLabel setAlpha:0]; + [sender setAlpha:1]; + } + completion:^(BOOL finished) { + if (completion) { + completion(); + } + }]; + }; + + void (^step2ShowTextWithoutCheck)() = ^{ + [sender setTitle:addedCheckedString forState:UIControlStateNormal]; + [UIView animateWithDuration:ui_util::kAnimationDuration + animations:^{ + [addedLabel setAlpha:1]; + } + completion:^(BOOL finished) { + step3ShowCheck(); + }]; + }; + + void (^step1HideText)() = ^{ + [UIView animateWithDuration:ui_util::kAnimationDuration + animations:^{ + [sender setAlpha:0]; + } + completion:^(BOOL finished) { + step2ShowTextWithoutCheck(); + }]; + }; + step1HideText(); +} + +- (void)cancelPressed:(UIButton*)sender { + if (_dismissed) { + return; + } + _dismissed = YES; + [_target shareExtensionViewDidSelectCancel:sender]; +} + #pragma mark - Content getters and setters. - (void)setURL:(NSURL*)URL {
diff --git a/ios/chrome/share_extension/share_view_controller.mm b/ios/chrome/share_extension/share_view_controller.mm index 9ba8972a..31f0d40 100644 --- a/ios/chrome/share_extension/share_view_controller.mm +++ b/ios/chrome/share_extension/share_view_controller.mm
@@ -28,7 +28,6 @@ // Clip the last separator out of the table view. const CGFloat kScreenShotWidth = 100; const CGFloat kScreenShotHeight = 100; -const CGFloat kAnimationDuration = 0.3; const CGFloat kMediumAlpha = 0.5; } // namespace @@ -130,7 +129,7 @@ constraintEqualToAnchor:self.view.centerYAnchor]; [_widgetVerticalPlacementConstraint setActive:YES]; [self.maskView setAlpha:0]; - [UIView animateWithDuration:kAnimationDuration + [UIView animateWithDuration:ui_util::kAnimationDuration animations:^{ [self.maskView setAlpha:1]; [self.view layoutIfNeeded]; @@ -254,7 +253,7 @@ [_shareView.topAnchor constraintEqualToAnchor:self.view.bottomAnchor]; } [_widgetVerticalPlacementConstraint setActive:YES]; - [UIView animateWithDuration:kAnimationDuration + [UIView animateWithDuration:ui_util::kAnimationDuration animations:^{ [self.maskView setAlpha:0]; [self.view layoutIfNeeded];
diff --git a/ios/chrome/share_extension/strings/ios_share_extension_strings.grd b/ios/chrome/share_extension/strings/ios_share_extension_strings.grd index fd8dd38..a99a7dd 100644 --- a/ios/chrome/share_extension/strings/ios_share_extension_strings.grd +++ b/ios/chrome/share_extension/strings/ios_share_extension_strings.grd
@@ -136,6 +136,9 @@ <message name="IDS_IOS_ADD_BOOKMARKS_SHARE_EXTENSION" desc="Share extension button to add to bookmarks [Length: 30em]" meaning="Button title [Length: 30em]"> Add to Bookmarks </message> + <message name="IDS_IOS_ADDED_ITEM_SHARE_EXTENSION" desc="Label of the button 'add to' after it has been pressed confirming the action to the user."> + Added + </message> <message name="IDS_IOS_ERROR_MESSAGE_SHARE_EXTENSION" desc="Share extension message to tell the user the URL cannot be processed. The name of the application will be put in place of APPLICATION_NAME"> APPLICATION_NAME cannot handle this link. </message>
diff --git a/ios/chrome/share_extension/ui_util.h b/ios/chrome/share_extension/ui_util.h index 864b776..67ce201 100644 --- a/ios/chrome/share_extension/ui_util.h +++ b/ios/chrome/share_extension/ui_util.h
@@ -7,6 +7,9 @@ namespace ui_util { +// Standard animation timing for the extension. +extern const CGFloat kAnimationDuration; + // Returns the closest pixel-aligned value less than |value|, taking the scale // factor into account. At a scale of 1, equivalent to floor(). CGFloat AlignValueToPixel(CGFloat value);
diff --git a/ios/chrome/share_extension/ui_util.mm b/ios/chrome/share_extension/ui_util.mm index c898d51..d4af8acf 100644 --- a/ios/chrome/share_extension/ui_util.mm +++ b/ios/chrome/share_extension/ui_util.mm
@@ -12,6 +12,8 @@ namespace ui_util { +const CGFloat kAnimationDuration = 0.3; + CGFloat AlignValueToPixel(CGFloat value) { CGFloat scale = [[UIScreen mainScreen] scale]; return floor(value * scale) / scale;
diff --git a/ios/public/provider/chrome/browser/BUILD.gn b/ios/public/provider/chrome/browser/BUILD.gn index dd331e63..5004fb1 100644 --- a/ios/public/provider/chrome/browser/BUILD.gn +++ b/ios/public/provider/chrome/browser/BUILD.gn
@@ -14,9 +14,7 @@ ] deps = [ "//base", - "//components/favicon_base", "//components/metrics", - "//components/sync_sessions", ] libs = [ "CoreLocation.framework" ] } @@ -36,7 +34,6 @@ "//ios/public/provider/chrome/browser/images:test_support", "//ios/public/provider/chrome/browser/native_app_launcher:test_support", "//ios/public/provider/chrome/browser/omaha:test_support", - "//ios/public/provider/chrome/browser/sessions:test_support", "//ios/public/provider/chrome/browser/signin:test_support", "//ios/public/provider/chrome/browser/spotlight:test_support", "//ios/public/provider/chrome/browser/ui", @@ -54,7 +51,6 @@ "//ios/public/provider/chrome/browser/images:test_support", "//ios/public/provider/chrome/browser/native_app_launcher:test_support", "//ios/public/provider/chrome/browser/omaha:test_support", - "//ios/public/provider/chrome/browser/sessions:test_support", "//ios/public/provider/chrome/browser/signin:test_support", "//ios/public/provider/chrome/browser/ui:test_support", "//ios/public/provider/chrome/browser/user_feedback:test_support",
diff --git a/ios/public/provider/chrome/browser/chrome_browser_provider.h b/ios/public/provider/chrome/browser/chrome_browser_provider.h index 73ea0ab7..8f5c7f19 100644 --- a/ios/public/provider/chrome/browser/chrome_browser_provider.h +++ b/ios/public/provider/chrome/browser/chrome_browser_provider.h
@@ -15,11 +15,9 @@ #include "base/callback_forward.h" #include "base/memory/ref_counted.h" -#include "components/favicon_base/favicon_callback.h" class AppDistributionProvider; class BrandedImageProvider; -class GURL; class OmahaServiceProvider; class SpotlightProvider; class UserFeedbackProvider; @@ -29,10 +27,6 @@ class WebState; } -namespace sync_sessions { -class SyncedWindowDelegatesGetter; -} - @protocol AppRatingPrompt; @protocol LogoVendor; @protocol TextFieldStyling; @@ -91,13 +85,6 @@ virtual std::string GetDistributionBrandCode(); // Returns risk data used in Wallet requests. virtual std::string GetRiskData(); - // Get the favicon for |page_url| and run |callback| with result when loaded. - // Note. |callback| is always run asynchronously. - virtual void GetFaviconForURL( - ChromeBrowserState* browser_state, - const GURL& page_url, - const std::vector<int>& desired_sizes_in_pixel, - const favicon_base::FaviconResultsCallback& callback) const; // Creates and returns a new styled text field with the given |frame|. virtual UITextField<TextFieldStyling>* CreateStyledTextField( CGRect frame) const NS_RETURNS_RETAINED; @@ -140,10 +127,6 @@ // Returns an instance of the user feedback provider. virtual UserFeedbackProvider* GetUserFeedbackProvider() const; - // Returns the SyncedWindowDelegatesGetter implementation. - virtual std::unique_ptr<sync_sessions::SyncedWindowDelegatesGetter> - CreateSyncedWindowDelegatesGetter(ios::ChromeBrowserState* browser_state); - // Returns an instance of the branded image provider. virtual BrandedImageProvider* GetBrandedImageProvider() const;
diff --git a/ios/public/provider/chrome/browser/chrome_browser_provider.mm b/ios/public/provider/chrome/browser/chrome_browser_provider.mm index dab8adf..d771c77 100644 --- a/ios/public/provider/chrome/browser/chrome_browser_provider.mm +++ b/ios/public/provider/chrome/browser/chrome_browser_provider.mm
@@ -8,7 +8,6 @@ #include "base/logging.h" #include "components/metrics/metrics_provider.h" -#include "components/sync_sessions/synced_window_delegates_getter.h" namespace ios { @@ -66,12 +65,6 @@ return std::string(); } -void ChromeBrowserProvider::GetFaviconForURL( - ios::ChromeBrowserState* browser_state, - const GURL& page_url, - const std::vector<int>& desired_sizes_in_pixel, - const favicon_base::FaviconResultsCallback& callback) const {} - UITextField<TextFieldStyling>* ChromeBrowserProvider::CreateStyledTextField( CGRect frame) const { return nil; @@ -91,12 +84,6 @@ return false; } -std::unique_ptr<sync_sessions::SyncedWindowDelegatesGetter> -ChromeBrowserProvider::CreateSyncedWindowDelegatesGetter( - ios::ChromeBrowserState* browser_state) { - return nullptr; -} - VoiceSearchProvider* ChromeBrowserProvider::GetVoiceSearchProvider() const { return nullptr; }
diff --git a/ios/public/provider/chrome/browser/sessions/BUILD.gn b/ios/public/provider/chrome/browser/sessions/BUILD.gn deleted file mode 100644 index 6d75d90..0000000 --- a/ios/public/provider/chrome/browser/sessions/BUILD.gn +++ /dev/null
@@ -1,15 +0,0 @@ -# Copyright 2016 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. - -source_set("test_support") { - testonly = true - sources = [ - "test_synced_window_delegates_getter.cc", - "test_synced_window_delegates_getter.h", - ] - deps = [ - "//base", - "//components/sync_sessions", - ] -}
diff --git a/ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.cc b/ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.cc deleted file mode 100644 index 8375f3b..0000000 --- a/ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.cc +++ /dev/null
@@ -1,15 +0,0 @@ -// Copyright 2016 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 "ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.h" - -std::set<const sync_sessions::SyncedWindowDelegate*> -TestSyncedWindowDelegatesGetter::GetSyncedWindowDelegates() { - return std::set<const sync_sessions::SyncedWindowDelegate*>(); -} - -const sync_sessions::SyncedWindowDelegate* -TestSyncedWindowDelegatesGetter::FindById(SessionID::id_type id) { - return nullptr; -}
diff --git a/ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.h b/ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.h deleted file mode 100644 index 79c2676e..0000000 --- a/ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.h +++ /dev/null
@@ -1,27 +0,0 @@ -// Copyright 2016 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 IOS_PUBLIC_PROVIDER_CHROME_BROWSER_SESSIONS_TEST_SYNCED_WINDOW_DELEGATES_GETTER_H_ -#define IOS_PUBLIC_PROVIDER_CHROME_BROWSER_SESSIONS_TEST_SYNCED_WINDOW_DELEGATES_GETTER_H_ - -#include "base/macros.h" -#include "components/sync_sessions/synced_window_delegates_getter.h" - -class TestSyncedWindowDelegatesGetter - : public sync_sessions::SyncedWindowDelegatesGetter { - public: - TestSyncedWindowDelegatesGetter() {} - ~TestSyncedWindowDelegatesGetter() override {} - - // SyncedWindowDelegatesGetter. - std::set<const sync_sessions::SyncedWindowDelegate*> - GetSyncedWindowDelegates() override; - const sync_sessions::SyncedWindowDelegate* FindById( - SessionID::id_type id) override; - - private: - DISALLOW_COPY_AND_ASSIGN(TestSyncedWindowDelegatesGetter); -}; - -#endif // IOS_PUBLIC_PROVIDER_CHROME_BROWSER_SESSIONS_TEST_SYNCED_WINDOW_DELEGATES_GETTER_H_
diff --git a/ios/public/provider/chrome/browser/test_chrome_browser_provider.h b/ios/public/provider/chrome/browser/test_chrome_browser_provider.h index 48e8e78f..7fdc76b 100644 --- a/ios/public/provider/chrome/browser/test_chrome_browser_provider.h +++ b/ios/public/provider/chrome/browser/test_chrome_browser_provider.h
@@ -33,9 +33,6 @@ OmahaServiceProvider* GetOmahaServiceProvider() const override; UserFeedbackProvider* GetUserFeedbackProvider() const override; SpotlightProvider* GetSpotlightProvider() const override; - std::unique_ptr<sync_sessions::SyncedWindowDelegatesGetter> - CreateSyncedWindowDelegatesGetter( - ios::ChromeBrowserState* browser_state) override; BrandedImageProvider* GetBrandedImageProvider() const override; id<NativeAppWhitelistManager> GetNativeAppWhitelistManager() const override;
diff --git a/ios/public/provider/chrome/browser/test_chrome_browser_provider.mm b/ios/public/provider/chrome/browser/test_chrome_browser_provider.mm index dabe0ce..a4cebae 100644 --- a/ios/public/provider/chrome/browser/test_chrome_browser_provider.mm +++ b/ios/public/provider/chrome/browser/test_chrome_browser_provider.mm
@@ -12,7 +12,6 @@ #include "ios/public/provider/chrome/browser/distribution/test_app_distribution_provider.h" #include "ios/public/provider/chrome/browser/images/test_branded_image_provider.h" #include "ios/public/provider/chrome/browser/omaha/test_omaha_service_provider.h" -#include "ios/public/provider/chrome/browser/sessions/test_synced_window_delegates_getter.h" #include "ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.h" #include "ios/public/provider/chrome/browser/signin/test_signin_resources_provider.h" #import "ios/public/provider/chrome/browser/spotlight/test_spotlight_provider.h" @@ -88,12 +87,6 @@ return spotlight_provider_.get(); } -std::unique_ptr<sync_sessions::SyncedWindowDelegatesGetter> -TestChromeBrowserProvider::CreateSyncedWindowDelegatesGetter( - ios::ChromeBrowserState* browser_state) { - return base::MakeUnique<TestSyncedWindowDelegatesGetter>(); -} - BrandedImageProvider* TestChromeBrowserProvider::GetBrandedImageProvider() const { return branded_image_provider_.get();
diff --git a/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera2.java b/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera2.java index a519abf..51bd984 100644 --- a/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera2.java +++ b/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera2.java
@@ -32,6 +32,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -260,6 +261,7 @@ private CaptureRequest mPreviewRequest; private Handler mMainHandler; + private Range<Integer> mAeFpsRange; private CameraState mCameraState = CameraState.STOPPED; private final float mMaxZoom; private Rect mCropRect = new Rect(); @@ -375,6 +377,7 @@ requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_OFF); } else { requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON); + requestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, mAeFpsRange); } switch (mFillLightMode) { case AndroidFillLightMode.OFF: @@ -598,8 +601,28 @@ Log.e(TAG, "No supported resolutions."); return false; } - Log.d(TAG, "allocate: matched (%d x %d)", closestSupportedSize.getWidth(), - closestSupportedSize.getHeight()); + final List<Range<Integer>> fpsRanges = Arrays.asList(cameraCharacteristics.get( + CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES)); + if (fpsRanges.isEmpty()) { + Log.e(TAG, "No supported framerate ranges."); + return false; + } + final List<FramerateRange> framerateRanges = + new ArrayList<FramerateRange>(fpsRanges.size()); + // On some legacy implementations FPS values are multiplied by 1000. Multiply by 1000 + // everywhere for consistency. Set fpsUnitFactor to 1 if fps ranges are already multiplied + // by 1000. + final int fpsUnitFactor = fpsRanges.get(0).getUpper() > 1000 ? 1 : 1000; + for (Range<Integer> range : fpsRanges) { + framerateRanges.add(new FramerateRange( + range.getLower() * fpsUnitFactor, range.getUpper() * fpsUnitFactor)); + } + final FramerateRange aeFramerateRange = + getClosestFramerateRange(framerateRanges, frameRate * 1000); + mAeFpsRange = new Range<Integer>( + aeFramerateRange.min / fpsUnitFactor, aeFramerateRange.max / fpsUnitFactor); + Log.d(TAG, "allocate: matched (%d x %d) @[%d - %d]", closestSupportedSize.getWidth(), + closestSupportedSize.getHeight(), mAeFpsRange.getLower(), mAeFpsRange.getUpper()); // |mCaptureFormat| is also used to configure the ImageReader. mCaptureFormat = new VideoCaptureFormat(closestSupportedSize.getWidth(),
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index e5d7265..d2d5d23 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -737,15 +737,12 @@ crbug.com/432129 fast/html/marquee-scroll.html [ Failure Pass ] crbug.com/248938 [ Win Debug ] virtual/threaded/animations/transition-and-animation-2.html [ Timeout ] -crbug.com/248938 virtual/threaded/animations/change-one-anim.html [ Failure Pass ] crbug.com/326139 crbug.com/390125 media/video-frame-accurate-seek.html [ Failure Pass ] crbug.com/248938 virtual/threaded/animations/animation-iteration-event-destroy-renderer.html [ Pass Timeout ] -crbug.com/248938 virtual/threaded/animations/transition-and-animation-3.html [ Pass Timeout ] crbug.com/446385 [ Win7 Debug ] http/tests/xmlhttprequest/xmlhttprequest-json-response-overflow.html [ Crash Pass Timeout ] crbug.com/446385 [ Win7 Debug ] virtual/mojo-loading/http/tests/xmlhttprequest/xmlhttprequest-json-response-overflow.html [ Crash Pass Timeout ] crbug.com/248938 virtual/threaded/animations/dynamic-stylesheet-loading.html [ Pass Failure Timeout ] crbug.com/248938 virtual/threaded/transitions/change-duration-during-transition.html [ Pass Failure ] -crbug.com/248938 virtual/threaded/transitions/transition-end-event-nested.html [ Pass Failure ] crbug.com/638693 virtual/threaded/animations/display-inline-style-adjust.html [ Pass Crash Failure ] crbug.com/421283 fast/html/marquee-scrollamount.html [ Pass Failure ] crbug.com/248938 virtual/threaded/transitions/transition-end-event-rendering.html [ Pass Timeout ] @@ -2001,8 +1998,6 @@ crbug.com/669473 imported/csswg-test/css-ui-3/box-sizing-019.html [ Failure ] crbug.com/669473 imported/csswg-test/css-ui-3/box-sizing-024.html [ Failure ] crbug.com/669473 imported/csswg-test/css-ui-3/box-sizing-025.html [ Failure ] -crbug.com/676295 imported/csswg-test/css-ui-3/caret-color-009.html [ Failure ] -crbug.com/676295 imported/csswg-test/css-ui-3/caret-color-013.html [ Failure ] crbug.com/676295 imported/csswg-test/css-ui-3/caret-color-021.html [ Failure ] crbug.com/669473 imported/csswg-test/css-ui-3/text-overflow-002.html [ Failure ] crbug.com/669473 imported/csswg-test/css-ui-3/text-overflow-004.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/animations/change-one-anim-expected.txt b/third_party/WebKit/LayoutTests/animations/change-one-anim-expected.txt deleted file mode 100644 index 475c237..0000000 --- a/third_party/WebKit/LayoutTests/animations/change-one-anim-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -Warning this test is running in real-time and may be flaky. -PASS - "left" property for "box" element at 0.75s saw something close to: 150 -PASS - "top" property for "box" element at 0.75s saw something close to: 225 -
diff --git a/third_party/WebKit/LayoutTests/animations/change-one-anim.html b/third_party/WebKit/LayoutTests/animations/change-one-anim.html index 8f8880ce..9bb42b9a9 100644 --- a/third_party/WebKit/LayoutTests/animations/change-one-anim.html +++ b/third_party/WebKit/LayoutTests/animations/change-one-anim.html
@@ -1,64 +1,72 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" - "http://www.w3.org/TR/html4/loose.dtd"> - -<html lang="en"> +<!DOCTYPE html> +<html> <head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <title>Animation using matrix()</title> - <style type="text/css" media="screen"> - #box { - position: relative; - height: 20px; - width: 20px; - background-color: #9bb; - animation-name: horiz, vert; - animation-duration: 1s; - animation-iteration-count: infinite; - animation-direction: alternate; - animation-timing-function: linear; - } - - @keyframes horiz { - from { left: 0px; } - to { left:300px; } - } - @keyframes vert { - from { top: 0px; } - to { top: 300px; } - } - </style> - <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script> - <script type="text/javascript" charset="utf-8"> - - const expectedValues = [ - // [time, element-id, property, expected-value, tolerance] - [0.75, "box", "left", 150, 40], - [0.75, "box", "top", 225, 40], - ]; - - function removeAnim() - { - var target = document.getElementById("box"); - var left = window.getComputedStyle(target).left; - target.style.animationName = "vert"; - target.style.left = left; - } - - function setup() - { - setTimeout("removeAnim()", 500); - } - - runAnimationTest(expectedValues, setup, undefined, 'do-not-use-pause-api'); - </script> + <meta charset="utf-8"> + <script src="../resources/testharness.js"></script> + <script src="../resources/testharnessreport.js"></script> + <style> + #box { + position: relative; + height: 20px; + width: 20px; + background-color: #9bb; + left: 0px; + top: 0px; + animation-name: horiz, vert; + animation-duration: 4s; + animation-iteration-count: infinite; + animation-direction: alternate; + animation-timing-function: linear; + } + @keyframes horiz { + from { left: 100px; } + to { left: 500px; } + } + @keyframes vert { + from { top: 100px; } + to { top: 500px; } + } + </style> </head> <body> -This test performs two animations, left and top. It animates over 1 second. -At 0.5 second it removes the left animation and the top animation should continue -from where it left off. -<div id="box"> -</div> -<div id="result"> -</div> + <!-- + This test performs two animations, left and top. + When it removes the left animation, the top animation + should continue from where it left off. + --> + <div id="box"></div> + <script> + 'use strict'; + function waitForProgress() { + var initialTop = getComputedStyle(box).top; + return new Promise(resolve => { + function poll() { + var top = getComputedStyle(box).top; + if (top === initialTop) { + requestAnimationFrame(poll); + } else { + resolve(); + } + } + requestAnimationFrame(poll); + }); + } + + async_test(t => { + var previousTop = getComputedStyle(box).top; + waitForProgress().then(t.step_func(() => { + assert_greater_than(parseFloat(getComputedStyle(box).left), 100); + var currentTop = getComputedStyle(box).top; + assert_greater_than(parseFloat(currentTop), parseFloat(previousTop)); + box.style.animationName = 'vert'; + assert_equals(getComputedStyle(box).left, '0px'); + assert_equals(getComputedStyle(box).top, currentTop); + previousTop = currentTop; + })).then(waitForProgress).then(t.step_func_done(() => { + assert_equals(getComputedStyle(box).left, '0px'); + assert_greater_than(parseFloat(getComputedStyle(box).top), parseFloat(previousTop)); + })); + }, 'top animation continues when left animation stops'); + </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/animations/transition-and-animation-3.html b/third_party/WebKit/LayoutTests/animations/transition-and-animation-3.html index 17cf026..30f91ac 100644 --- a/third_party/WebKit/LayoutTests/animations/transition-and-animation-3.html +++ b/third_party/WebKit/LayoutTests/animations/transition-and-animation-3.html
@@ -52,13 +52,12 @@ function setupTest() { + document.body.offsetHeight; // Force style recalc document.getElementById('test').className = 'animating box'; runAnimationTest(expectedValues, animationStarted, undefined, 'do-not-use-pause-api'); } - window.addEventListener('load', function() { - window.setTimeout(setupTest, 0); - }, false); + window.addEventListener('load', setupTest, false); </script> </head>
diff --git a/third_party/WebKit/LayoutTests/editing/pasteboard/dragstart-contains-default-content-expected.txt b/third_party/WebKit/LayoutTests/editing/pasteboard/dragstart-contains-default-content-expected.txt index 2d5d8827..d7f3e48 100644 --- a/third_party/WebKit/LayoutTests/editing/pasteboard/dragstart-contains-default-content-expected.txt +++ b/third_party/WebKit/LayoutTests/editing/pasteboard/dragstart-contains-default-content-expected.txt
@@ -9,7 +9,7 @@ Test ID: selectionTest text/plain: Select some text in this box and drag it. text/url: -text/html: <span style="color: rgb(0, 0, 0); font-family: serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; caret-color: auto; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Select some text in this box and drag it.</span> +text/html: <span style="color: rgb(0, 0, 0); font-family: serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Select some text in this box and drag it.</span> Test ID: imageTest text/plain: text/url:
diff --git a/third_party/WebKit/LayoutTests/editing/pasteboard/onpaste-text-html-expected.txt b/third_party/WebKit/LayoutTests/editing/pasteboard/onpaste-text-html-expected.txt index 7f0e5d1..1b654e10 100644 --- a/third_party/WebKit/LayoutTests/editing/pasteboard/onpaste-text-html-expected.txt +++ b/third_party/WebKit/LayoutTests/editing/pasteboard/onpaste-text-html-expected.txt
@@ -1,5 +1,5 @@ CONSOLE MESSAGE: line 21: text/plain: This test verifies that we can get text/html from the clipboard during an onpaste event. -CONSOLE MESSAGE: line 23: text/html: <span style="color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; caret-color: auto; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">This test verifies that we can get text/html from the clipboard during an onpaste event.<span class="Apple-converted-space"> </span></span> +CONSOLE MESSAGE: line 23: text/html: <span style="color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">This test verifies that we can get text/html from the clipboard during an onpaste event.<span class="Apple-converted-space"> </span></span> This test verifies that we can get text/html from the clipboard during an onpaste event. This test requires DRT. Paste content in this div.This test verifies that we can get text/html from the clipboard during an onpaste event. PASS
diff --git a/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-listing-expected.txt b/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-listing-expected.txt index daca47b..cd11d41f 100644 --- a/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-listing-expected.txt
@@ -115,7 +115,7 @@ break-inside: auto buffered-rendering: auto caption-side: top -caret-color: auto +caret-color: rgb(0, 0, 0) clear: none clip: auto clip-path: none
diff --git a/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt b/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt index 0e0601b..ff4e627 100644 --- a/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
@@ -115,7 +115,7 @@ break-inside: auto buffered-rendering: auto caption-side: top -caret-color: auto +caret-color: rgb(0, 0, 0) clear: none clip: auto clip-path: none
diff --git a/third_party/WebKit/LayoutTests/fast/events/ondrop-text-html-expected.txt b/third_party/WebKit/LayoutTests/fast/events/ondrop-text-html-expected.txt index 6cc258b..0ca4aebd 100644 --- a/third_party/WebKit/LayoutTests/fast/events/ondrop-text-html-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/events/ondrop-text-html-expected.txt
@@ -1,4 +1,4 @@ CONSOLE MESSAGE: line 21: text/plain: This test verifies that we can get text/html from the drag object during an ondrop event. -CONSOLE MESSAGE: line 23: text/html: <span style="color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; caret-color: auto; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">This test verifies that we can get text/html from the drag object during an ondrop event.<span class="Apple-converted-space"> </span></span> +CONSOLE MESSAGE: line 23: text/html: <span style="color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">This test verifies that we can get text/html from the drag object during an ondrop event.<span class="Apple-converted-space"> </span></span> This test verifies that we can get text/html from the drag object during an ondrop event. This test requires DRT. PASS
diff --git a/third_party/WebKit/LayoutTests/fast/forms/password-placeholder-text-security-expected.html b/third_party/WebKit/LayoutTests/fast/forms/password-placeholder-text-security-expected.html index f380b11..0d6d0797 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/password-placeholder-text-security-expected.html +++ b/third_party/WebKit/LayoutTests/fast/forms/password-placeholder-text-security-expected.html
@@ -2,7 +2,7 @@ <head> <style> #pass1, #pass3 { - color: darkGray; + color: #757575; } </style> </head>
diff --git a/third_party/WebKit/LayoutTests/fast/forms/text/input-placeholder-text-indent-expected.html b/third_party/WebKit/LayoutTests/fast/forms/text/input-placeholder-text-indent-expected.html index b646b8157..edba082 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/text/input-placeholder-text-indent-expected.html +++ b/third_party/WebKit/LayoutTests/fast/forms/text/input-placeholder-text-indent-expected.html
@@ -1,5 +1,5 @@ <style> -input { color: darkGray; font-size: 30px; width: 500px; } +input { color: #757575; font-size: 30px; width: 500px; } input.a { text-indent: 0px; } input.b { text-indent: 10px; } input.c { text-indent: 200px; }
diff --git a/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-pseudo-style-expected.html b/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-pseudo-style-expected.html index 147639a..8050d24 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-pseudo-style-expected.html +++ b/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-pseudo-style-expected.html
@@ -1,7 +1,7 @@ <!DOCTYPE html> <style> input { - color: darkGray; + color: #757575; } input.red {
diff --git a/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-with-positioned-element-expected.html b/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-with-positioned-element-expected.html index 096d0919..7466eaac 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-with-positioned-element-expected.html +++ b/third_party/WebKit/LayoutTests/fast/forms/text/placeholder-with-positioned-element-expected.html
@@ -2,4 +2,4 @@ <div>aaa</div> <div>bbb</div> </div> -<input style="color: darkGray" value="placeholder"> +<input style="color: #757575;" value="placeholder">
diff --git a/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-pseudo-style-expected.html b/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-pseudo-style-expected.html index 8b6b049..324d9f1 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-pseudo-style-expected.html +++ b/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-pseudo-style-expected.html
@@ -1,7 +1,7 @@ <!DOCTYPE html> <style> textarea { - color: darkGray; + color: #757575; } .red {
diff --git a/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-wrapping-expected.html b/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-wrapping-expected.html index 2913acf..cf7cb62 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-wrapping-expected.html +++ b/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-placeholder-wrapping-expected.html
@@ -1,6 +1,6 @@ <textarea rows=8> A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog. </textarea> -<textarea rows=8 style="color: darkGray;"> +<textarea rows=8 style="color: #757575;"> A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog. </textarea>
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.png index 65094bc..b758cf8 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.txt index 654a9bd..002e5aa 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/css/text-overflow-input-expected.txt
@@ -105,13 +105,13 @@ text run at (556,43) width 4: " " LayoutBR {BR} at (0,0) size 0x0 layer at (10,75) size 150x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,75) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (169,75) size 137x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (169,75) size 137x16 @@ -129,13 +129,13 @@ LayoutText {#text} at (0,0) size 275x16 text run at (0,0) width 275: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (10,119) size 150x16 scrollX 167.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (-167,0) size 317x16 text run at (-167,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,119) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (181,119) size 138x16 scrollX 179.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (15,3) size 138x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (15,3) size 138x16 [color=#757575] LayoutText {#text} at (-179,0) size 317x16 text run at (-179,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (181,119) size 138x16 @@ -153,13 +153,13 @@ LayoutText {#text} at (-125,0) size 275x16 text run at (-125,0) width 275 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (10,199) size 150x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,199) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (169,199) size 137x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (169,199) size 137x16 @@ -177,13 +177,13 @@ LayoutText {#text} at (0,0) size 275x16 text run at (0,0) width 275: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (10,243) size 150x16 scrollX 167.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (-167,0) size 317x16 text run at (-167,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,243) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (181,243) size 138x16 scrollX 179.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (15,3) size 138x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (15,3) size 138x16 [color=#757575] LayoutText {#text} at (-179,0) size 317x16 text run at (-179,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (181,243) size 138x16 @@ -201,7 +201,7 @@ LayoutText {#text} at (-125,0) size 275x16 text run at (-125,0) width 275 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (233,323) size 150x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (233,323) size 150x16 @@ -211,7 +211,7 @@ LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (254,345) size 150x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (254,345) size 150x16
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.png index b5366035..7ff8ac7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.txt index 8bdc0c2..fcf3e37 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/placeholder-position-expected.txt
@@ -60,61 +60,61 @@ LayoutBR {BR} at (474,320) size 0x0 LayoutBR {BR} at (154,356) size 0x0 layer at (11,11) size 137x16 - LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (11,11) size 137x16 LayoutBlockFlow {DIV} at (0,0) size 137x16 layer at (10,33) size 90x16 - LayoutBlockFlow {DIV} at (2,3) size 90x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 90x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,33) size 90x16 LayoutBlockFlow {DIV} at (2,3) size 90x16 layer at (108,33) size 90x16 - LayoutBlockFlow {DIV} at (2,3) size 90x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 90x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (108,33) size 90x16 LayoutBlockFlow {DIV} at (2,3) size 90x16 layer at (206,33) size 150x16 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 105x16 text run at (0,0) width 105: "\x{65E5}\x{672C}\x{8A9E}placeholder" layer at (206,33) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (23,55) size 138x16 - LayoutBlockFlow {DIV} at (15,3) size 138x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (15,3) size 138x16 [color=#757575] LayoutText {#text} at (72,0) size 66x16 text run at (72,0) width 66: "placeholder" layer at (23,55) size 138x16 LayoutBlockFlow {DIV} at (0,0) size 138x16 layer at (11,77) size 137x16 - LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 137x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (11,77) size 137x16 LayoutBlockFlow {DIV} at (0,0) size 137x16 layer at (8,96) size 179x36 clip at (9,97) size 177x34 LayoutTextControl {TEXTAREA} at (0,88) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "placeholder" LayoutBlockFlow {DIV} at (3,3) size 175x16 layer at (10,135) size 150x16 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,135) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (8,168) size 179x49 clip at (9,169) size 177x47 LayoutTextControl {TEXTAREA} at (0,160) size 179x49 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,16) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,16) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "placeholder" LayoutBlockFlow {DIV} at (3,16) size 175x16 layer at (18,228) size 173x17 - LayoutBlockFlow {DIV} at (5,6) size 173x17 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (5,6) size 173x17 [color=#757575] LayoutText {#text} at (0,0) size 75x17 text run at (0,0) width 75: "placeholder" layer at (18,228) size 173x17 @@ -124,25 +124,25 @@ LayoutText {#text} at (0,4) size 32x16 text run at (0,4) width 32: "Value" layer at (168,263) size 150x16 - LayoutBlockFlow {DIV} at (2,7) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,7) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (168,259) size 150x25 LayoutBlockFlow {DIV} at (2,3) size 150x25 layer at (326,264) size 150x16 - LayoutBlockFlow {DIV} at (2,4.50) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,4.50) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (326,264) size 150x16 LayoutBlockFlow {DIV} at (2,4.50) size 150x16 layer at (484,263) size 150x16 - LayoutBlockFlow {DIV} at (2,4) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,4) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (484,259) size 150x25 LayoutBlockFlow {DIV} at (2,0) size 150x25 layer at (10,292) size 150x16 - LayoutBlockFlow {DIV} at (2,4.50) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,4.50) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,292) size 150x16 @@ -152,13 +152,13 @@ LayoutText {#text} at (59,0) size 32x16 text run at (59,0) width 32: "Value" layer at (168,315) size 150x16 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (42,0) size 66x16 text run at (42,0) width 66: "placeholder" layer at (168,315) size 150x16 LayoutBlockFlow {DIV} at (2,3) size 150x16 layer at (326,315) size 150x16 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (42,0) size 66x16 text run at (42,0) width 66: "placeholder" layer at (326,315) size 150x16 @@ -172,7 +172,7 @@ layer at (8,334) size 154x36 LayoutTextControl {INPUT} at (0,326) size 154x36 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] layer at (10,351) size 150x16 - LayoutBlockFlow {DIV} at (2,17) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,17) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,351) size 150x16
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.png index 0466a19..8b1ec67 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.txt index d127f36..db674a2 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/search/search-appearance-basic-expected.txt
@@ -162,7 +162,7 @@ LayoutText {#text} at (0,0) size 37x32 text run at (0,0) width 37: "foo" layer at (30,377) size 118x13 - LayoutBlockFlow {DIV} at (18,4) size 118x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (18,4) size 118x13 [color=#757575] LayoutText {#text} at (0,0) size 102x13 text run at (0,0) width 102: "Search for Events" layer at (30,377) size 118x13
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png index 3dc1cca..012aaaf 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.txt index 2ff8e18..5aa00b3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (10,47) size 150x16 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 68x16 text run at (0,0) width 68: "Placeholder" layer at (10,47) size 150x16
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png index c8698774..4511ef7 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.txt index 6b833f5..37c674e78 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/text/input-placeholder-visibility-3-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (10,47) size 150x16 - LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 150x16 [color=#757575] LayoutText {#text} at (0,0) size 68x16 text run at (0,0) width 68: "Placeholder" layer at (10,47) size 150x16
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/placeholder-appearance-textarea-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/placeholder-appearance-textarea-expected.png index 9d3a91c..233831ef 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/placeholder-appearance-textarea-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/placeholder-appearance-textarea-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png index 0ff6e1504..4d39aba 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt index c7b46932..48b4e3b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,44) size 179x36 clip at (9,45) size 177x34 LayoutTextControl {TEXTAREA} at (0,0) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 175x16
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png index 831d6f4..3f42381c 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt index de08f5b..a37120f 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,44) size 179x36 clip at (9,45) size 177x34 LayoutTextControl {TEXTAREA} at (0,0) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 175x16
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.png index dfe5c7b..38a9acb 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.txt index ccebf2e0..97265a3 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/css/text-overflow-input-expected.txt
@@ -109,13 +109,13 @@ text run at (535,37) width 5: " " LayoutBR {BR} at (0,0) size 0x0 layer at (11,71) size 125x13 scrollWidth 274 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,71) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (147,71) size 113x13 scrollWidth 274 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (147,71) size 113x13 @@ -133,13 +133,13 @@ LayoutText {#text} at (0,0) size 345x13 text run at (0,0) width 345: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,90) size 125x13 scrollX 148.00 scrollWidth 274 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (-148,0) size 274x13 text run at (-148,0) width 273: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,90) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (159,90) size 113x13 scrollX 160.00 scrollWidth 274 - LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#757575] LayoutText {#text} at (-160,0) size 274x13 text run at (-160,0) width 273: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (159,90) size 113x13 @@ -157,13 +157,13 @@ LayoutText {#text} at (-219,0) size 345x13 text run at (-219,0) width 344 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,143) size 125x13 scrollWidth 274 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,143) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (147,143) size 113x13 scrollWidth 274 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (147,143) size 113x13 @@ -181,13 +181,13 @@ LayoutText {#text} at (0,0) size 345x13 text run at (0,0) width 345: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,162) size 125x13 scrollX 148.00 scrollWidth 274 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (-148,0) size 274x13 text run at (-148,0) width 273: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,162) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (159,162) size 113x13 scrollX 160.00 scrollWidth 274 - LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#757575] LayoutText {#text} at (-160,0) size 274x13 text run at (-160,0) width 273: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (159,162) size 113x13 @@ -205,7 +205,7 @@ LayoutText {#text} at (-219,0) size 345x13 text run at (-219,0) width 344 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (257,215) size 125x13 scrollWidth 274 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (257,215) size 125x13 @@ -215,7 +215,7 @@ LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (281,234) size 125x13 scrollWidth 274 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 274x13 text run at (0,0) width 274: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (281,234) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.png index 6e7105b..ca2116c 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.txt index 19dcd53..3ed3d88 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/placeholder-position-expected.txt
@@ -61,61 +61,61 @@ LayoutBR {BR} at (405,270) size 0x0 LayoutBR {BR} at (131,303) size 0x0 layer at (12,11) size 113x13 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (12,11) size 113x13 LayoutBlockFlow {DIV} at (0,0) size 113x13 layer at (11,30) size 65x13 - LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (11,30) size 65x13 LayoutBlockFlow {DIV} at (3,3) size 65x13 layer at (86,30) size 65x13 - LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (86,30) size 65x13 LayoutBlockFlow {DIV} at (3,3) size 65x13 layer at (161,30) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 92x13 text run at (0,0) width 92: "\x{65E5}\x{672C}\x{8A9E}placeholder" layer at (161,30) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (24,49) size 113x13 - LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#757575] LayoutText {#text} at (54,0) size 59x13 text run at (54,0) width 59: "placeholder" layer at (24,49) size 113x13 LayoutBlockFlow {DIV} at (0,0) size 113x13 layer at (12,68) size 113x13 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (12,68) size 113x13 LayoutBlockFlow {DIV} at (0,0) size 113x13 layer at (8,84) size 141x32 clip at (9,85) size 139x30 LayoutTextControl {TEXTAREA} at (0,76) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" LayoutBlockFlow {DIV} at (3,3) size 135x13 layer at (11,119) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (11,119) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (8,149) size 141x45 clip at (9,150) size 139x43 LayoutTextControl {TEXTAREA} at (0,141) size 141x45 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,16) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,16) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" LayoutBlockFlow {DIV} at (3,16) size 135x13 layer at (19,205) size 166x17 - LayoutBlockFlow {DIV} at (6,6) size 166x17 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (6,6) size 166x17 [color=#757575] LayoutText {#text} at (0,0) size 80x17 text run at (0,0) width 80: "placeholder" layer at (19,205) size 166x17 @@ -125,25 +125,25 @@ LayoutText {#text} at (0,6) size 27x13 text run at (0,6) width 27: "Value" layer at (146,242) size 125x13 - LayoutBlockFlow {DIV} at (3,9) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,9) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (146,236) size 125x25 LayoutBlockFlow {DIV} at (3,3) size 125x25 layer at (281,242) size 125x13 - LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (281,242) size 125x13 LayoutBlockFlow {DIV} at (3,6) size 125x13 layer at (416,242) size 125x13 - LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (416,236) size 125x25 LayoutBlockFlow {DIV} at (3,0) size 125x25 layer at (551,242) size 125x13 - LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (551,242) size 125x13 @@ -153,13 +153,13 @@ LayoutText {#text} at (49,0) size 27x13 text run at (49,0) width 27: "Value" layer at (146,267) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (33,0) size 59x13 text run at (33,0) width 59: "placeholder" layer at (146,267) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (281,267) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (33,0) size 59x13 text run at (33,0) width 59: "placeholder" layer at (281,267) size 125x13 @@ -173,7 +173,7 @@ layer at (8,283) size 131x33 LayoutTextControl {INPUT} at (0,275) size 131x33 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] layer at (11,300) size 125x13 - LayoutBlockFlow {DIV} at (3,17) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,17) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 59x13 text run at (0,0) width 59: "placeholder" layer at (11,300) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.png index 355b2d8..cea7575 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.txt index 558df9c..c3ea2cd 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/search/search-appearance-basic-expected.txt
@@ -162,7 +162,7 @@ LayoutText {#text} at (0,0) size 33x26 text run at (0,0) width 33: "foo" layer at (30,336) size 132x13 - LayoutBlockFlow {DIV} at (18,4) size 132x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (18,4) size 132x13 [color=#757575] LayoutText {#text} at (0,0) size 92x13 text run at (0,0) width 92: "Search for Events" layer at (30,336) size 132x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.png index 659c134..93f593e9 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.txt index 6f3f9ffa..f581557 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (11,45) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 60x13 text run at (0,0) width 60: "Placeholder" layer at (11,45) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.png index 856e232..f837bb5 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.txt index 95aa71e..604b1b61 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/text/input-placeholder-visibility-3-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (11,45) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 60x13 text run at (0,0) width 60: "Placeholder" layer at (11,45) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.png index 4b3064b..8833125 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.txt index bdbe2615..7e77b22 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/placeholder-appearance-textarea-expected.txt
@@ -8,7 +8,7 @@ LayoutBR {BR} at (141,96) size 0x0 layer at (8,8) size 141x32 clip at (9,9) size 139x30 LayoutTextControl {TEXTAREA} at (0,0) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x26 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x26 [color=#757575] LayoutText {#text} at (0,0) size 37x26 text run at (0,0) width 22: "first \x{D}" text run at (21,0) width 1: " "
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png index a36e867..51cf431 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt index 8c6b83bd..82f5dd2 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 141x32 clip at (9,43) size 139x30 LayoutTextControl {TEXTAREA} at (0,0) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 60x13 text run at (0,0) width 60: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 135x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png index 8af0eb79..84e0421 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt index 88873c7..51afc42 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 141x32 clip at (9,43) size 139x30 LayoutTextControl {TEXTAREA} at (0,0) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 60x13 text run at (0,0) width 60: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 135x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.png index 5a4fdd8e..34db625 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.txt index fc04006..a550e68 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/css/text-overflow-input-expected.txt
@@ -109,13 +109,13 @@ text run at (519,37) width 5: " " LayoutBR {BR} at (0,0) size 0x0 layer at (11,71) size 117x13 scrollWidth 295 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,71) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (139,71) size 105x13 scrollWidth 295 - LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#757575] LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (139,71) size 105x13 @@ -133,13 +133,13 @@ LayoutText {#text} at (0,0) size 340x13 text run at (0,0) width 340: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,90) size 117x13 scrollX 178.00 scrollWidth 295 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (-178,0) size 296x13 text run at (-178,0) width 295: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,90) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (151,90) size 105x13 scrollX 190.00 scrollWidth 295 - LayoutBlockFlow {DIV} at (16,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 105x13 [color=#757575] LayoutText {#text} at (-190,0) size 296x13 text run at (-190,0) width 295: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (151,90) size 105x13 @@ -157,13 +157,13 @@ LayoutText {#text} at (-222,0) size 340x13 text run at (-222,0) width 339 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,143) size 117x13 scrollWidth 295 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,143) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (139,143) size 105x13 scrollWidth 295 - LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#757575] LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (139,143) size 105x13 @@ -181,13 +181,13 @@ LayoutText {#text} at (0,0) size 340x13 text run at (0,0) width 340: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,162) size 117x13 scrollX 178.00 scrollWidth 295 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (-178,0) size 296x13 text run at (-178,0) width 295: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,162) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (151,162) size 105x13 scrollX 190.00 scrollWidth 295 - LayoutBlockFlow {DIV} at (16,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 105x13 [color=#757575] LayoutText {#text} at (-190,0) size 296x13 text run at (-190,0) width 295: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (151,162) size 105x13 @@ -205,7 +205,7 @@ LayoutText {#text} at (-222,0) size 340x13 text run at (-222,0) width 339 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (257,215) size 117x13 scrollWidth 295 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (257,215) size 117x13 @@ -215,7 +215,7 @@ LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (281,234) size 117x13 scrollWidth 295 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 296x13 text run at (0,0) width 296: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (281,234) size 117x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.png index 88d6103..7d87ecd 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.txt index 3f2220a..56868ef 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/placeholder-position-expected.txt
@@ -61,61 +61,61 @@ LayoutBR {BR} at (381,271) size 0x0 LayoutBR {BR} at (123,304) size 0x0 layer at (12,11) size 105x13 - LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (12,11) size 105x13 LayoutBlockFlow {DIV} at (0,0) size 105x13 layer at (11,30) size 67x13 - LayoutBlockFlow {DIV} at (3,3) size 67x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 67x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (11,30) size 67x13 LayoutBlockFlow {DIV} at (3,3) size 67x13 layer at (88,30) size 67x13 - LayoutBlockFlow {DIV} at (3,3) size 67x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 67x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (88,30) size 67x13 LayoutBlockFlow {DIV} at (3,3) size 67x13 layer at (165,28) size 117x17 - LayoutBlockFlow {DIV} at (3,1) size 117x17 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,1) size 117x17 [color=#757575] LayoutText {#text} at (0,2) size 96x13 text run at (0,2) width 96: "\x{65E5}\x{672C}\x{8A9E}placeholder" layer at (165,30) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (24,49) size 105x13 - LayoutBlockFlow {DIV} at (16,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 105x13 [color=#757575] LayoutText {#text} at (42,0) size 63x13 text run at (42,0) width 63: "placeholder" layer at (24,49) size 105x13 LayoutBlockFlow {DIV} at (0,0) size 105x13 layer at (12,68) size 105x13 - LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 105x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (12,68) size 105x13 LayoutBlockFlow {DIV} at (0,0) size 105x13 layer at (8,84) size 161x32 clip at (9,85) size 159x30 LayoutTextControl {TEXTAREA} at (0,76) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 155x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 155x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" LayoutBlockFlow {DIV} at (3,3) size 155x13 layer at (11,119) size 117x13 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (11,119) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (8,149) size 161x45 clip at (9,150) size 159x43 LayoutTextControl {TEXTAREA} at (0,141) size 161x45 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,16) size 155x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,16) size 155x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" LayoutBlockFlow {DIV} at (3,16) size 155x13 layer at (19,205) size 162x18 - LayoutBlockFlow {DIV} at (6,6) size 162x18 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (6,6) size 162x18 [color=#757575] LayoutText {#text} at (0,0) size 85x18 text run at (0,0) width 85: "placeholder" layer at (19,205) size 162x18 @@ -125,25 +125,25 @@ LayoutText {#text} at (0,6) size 30x13 text run at (0,6) width 30: "Value" layer at (138,243) size 117x13 - LayoutBlockFlow {DIV} at (3,9) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,9) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (138,237) size 117x25 LayoutBlockFlow {DIV} at (3,3) size 117x25 layer at (265,243) size 117x13 - LayoutBlockFlow {DIV} at (3,6) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (265,243) size 117x13 LayoutBlockFlow {DIV} at (3,6) size 117x13 layer at (392,243) size 117x13 - LayoutBlockFlow {DIV} at (3,6) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (392,237) size 117x25 LayoutBlockFlow {DIV} at (3,0) size 117x25 layer at (519,243) size 117x13 - LayoutBlockFlow {DIV} at (3,6) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (519,243) size 117x13 @@ -153,13 +153,13 @@ LayoutText {#text} at (43,0) size 31x13 text run at (43,0) width 31: "Value" layer at (138,268) size 117x13 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (27,0) size 63x13 text run at (27,0) width 63: "placeholder" layer at (138,268) size 117x13 LayoutBlockFlow {DIV} at (3,3) size 117x13 layer at (265,268) size 117x13 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (27,0) size 63x13 text run at (27,0) width 63: "placeholder" layer at (265,268) size 117x13 @@ -173,7 +173,7 @@ layer at (8,284) size 123x33 LayoutTextControl {INPUT} at (0,276) size 123x33 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] layer at (11,301) size 117x13 - LayoutBlockFlow {DIV} at (3,17) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,17) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 63x13 text run at (0,0) width 63: "placeholder" layer at (11,301) size 117x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.png index 055de9b..31087c7f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.txt index 7b6e53e..46c752a 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/search/search-appearance-basic-expected.txt
@@ -162,7 +162,7 @@ LayoutText {#text} at (0,0) size 36x26 text run at (0,0) width 36: "foo" layer at (30,336) size 132x13 - LayoutBlockFlow {DIV} at (18,4) size 132x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (18,4) size 132x13 [color=#757575] LayoutText {#text} at (0,0) size 92x13 text run at (0,0) width 92: "Search for Events" layer at (30,336) size 132x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.png index 177ec759..827a278 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.txt index ce72e16..4228b66 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (11,45) size 117x13 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" layer at (11,45) size 117x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.png index 716eea4..03688a4 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.txt index 5fdb531..9360e9e 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/text/input-placeholder-visibility-3-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (11,45) size 117x13 - LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 117x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" layer at (11,45) size 117x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.png index cd2e6cf..5b1c8dd 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.txt index b45ea13..6e9ec06 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/placeholder-appearance-textarea-expected.txt
@@ -8,7 +8,7 @@ LayoutBR {BR} at (161,96) size 0x0 layer at (8,8) size 161x32 clip at (9,9) size 159x30 LayoutTextControl {TEXTAREA} at (0,0) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 155x26 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 155x26 [color=#757575] LayoutText {#text} at (0,0) size 38x26 text run at (0,0) width 25: "first \x{D}" text run at (24,0) width 1: " "
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png index bfc6393a..aa8560ad 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt index 0bddbe34..09c9567d 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 161x32 clip at (9,43) size 159x30 LayoutTextControl {TEXTAREA} at (0,0) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 155x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 155x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 155x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png index 89c5376..7f68481 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt index 870236eb..d371cc9 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 161x32 clip at (9,43) size 159x30 LayoutTextControl {TEXTAREA} at (0,0) size 161x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 155x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 155x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 155x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.png index 3b39898b..168bd65 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt index c38f6cb..9b1d7c310 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt
@@ -109,13 +109,13 @@ text run at (535,37) width 5: " " LayoutBR {BR} at (0,0) size 0x0 layer at (11,71) size 125x13 scrollWidth 284 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,71) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (147,71) size 113x13 scrollWidth 284 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (147,71) size 113x13 @@ -133,13 +133,13 @@ LayoutText {#text} at (0,0) size 305x13 text run at (0,0) width 305: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,90) size 125x13 scrollX 158.00 scrollWidth 284 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (-158,0) size 284x13 text run at (-158,0) width 283: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,90) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (159,90) size 113x13 scrollX 170.00 scrollWidth 284 - LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#757575] LayoutText {#text} at (-170,0) size 284x13 text run at (-170,0) width 283: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (159,90) size 113x13 @@ -157,13 +157,13 @@ LayoutText {#text} at (-179,0) size 305x13 text run at (-179,0) width 304 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,143) size 125x13 scrollWidth 284 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,143) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (147,143) size 113x13 scrollWidth 284 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (147,143) size 113x13 @@ -181,13 +181,13 @@ LayoutText {#text} at (0,0) size 305x13 text run at (0,0) width 305: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (11,162) size 125x13 scrollX 158.00 scrollWidth 284 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (-158,0) size 284x13 text run at (-158,0) width 283: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (11,162) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (159,162) size 113x13 scrollX 170.00 scrollWidth 284 - LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#757575] LayoutText {#text} at (-170,0) size 284x13 text run at (-170,0) width 283: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (159,162) size 113x13 @@ -205,7 +205,7 @@ LayoutText {#text} at (-179,0) size 305x13 text run at (-179,0) width 304 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (257,215) size 125x13 scrollWidth 284 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (257,215) size 125x13 @@ -215,7 +215,7 @@ LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (281,234) size 125x13 scrollWidth 284 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 285x13 text run at (0,0) width 285: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (281,234) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.png index 102caf8..ebaf8fff 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.txt index 8b58169..8a1a7e9a 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/placeholder-position-expected.txt
@@ -61,61 +61,61 @@ LayoutBR {BR} at (405,271) size 0x0 LayoutBR {BR} at (131,304) size 0x0 layer at (12,11) size 113x13 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (12,11) size 113x13 LayoutBlockFlow {DIV} at (0,0) size 113x13 layer at (11,30) size 65x13 - LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (11,30) size 65x13 LayoutBlockFlow {DIV} at (3,3) size 65x13 layer at (86,30) size 65x13 - LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 65x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (86,30) size 65x13 LayoutBlockFlow {DIV} at (3,3) size 65x13 layer at (161,30) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 95x13 text run at (0,0) width 95: "\x{65E5}\x{672C}\x{8A9E}placeholder" layer at (161,30) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (24,49) size 113x13 - LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (16,3) size 113x13 [color=#757575] LayoutText {#text} at (52,0) size 61x13 text run at (52,0) width 61: "placeholder" layer at (24,49) size 113x13 LayoutBlockFlow {DIV} at (0,0) size 113x13 layer at (12,68) size 113x13 - LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (4,3) size 113x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (12,68) size 113x13 LayoutBlockFlow {DIV} at (0,0) size 113x13 layer at (8,84) size 141x32 clip at (9,85) size 139x30 LayoutTextControl {TEXTAREA} at (0,76) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" LayoutBlockFlow {DIV} at (3,3) size 135x13 layer at (11,119) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (11,119) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (8,149) size 141x45 clip at (9,150) size 139x43 LayoutTextControl {TEXTAREA} at (0,141) size 141x45 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,16) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,16) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" LayoutBlockFlow {DIV} at (3,16) size 135x13 layer at (19,205) size 167x18 - LayoutBlockFlow {DIV} at (6,6) size 167x18 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (6,6) size 167x18 [color=#757575] LayoutText {#text} at (0,0) size 84x18 text run at (0,0) width 84: "placeholder" layer at (19,205) size 167x18 @@ -125,25 +125,25 @@ LayoutText {#text} at (0,6) size 29x13 text run at (0,6) width 29: "Value" layer at (146,243) size 125x13 - LayoutBlockFlow {DIV} at (3,9) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,9) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (146,237) size 125x25 LayoutBlockFlow {DIV} at (3,3) size 125x25 layer at (281,243) size 125x13 - LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (281,243) size 125x13 LayoutBlockFlow {DIV} at (3,6) size 125x13 layer at (416,243) size 125x13 - LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (416,237) size 125x25 LayoutBlockFlow {DIV} at (3,0) size 125x25 layer at (551,243) size 125x13 - LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,6) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (551,243) size 125x13 @@ -153,13 +153,13 @@ LayoutText {#text} at (48,0) size 29x13 text run at (48,0) width 29: "Value" layer at (146,268) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (31,0) size 62x13 text run at (31,0) width 62: "placeholder" layer at (146,268) size 125x13 LayoutBlockFlow {DIV} at (3,3) size 125x13 layer at (281,268) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (31,0) size 62x13 text run at (31,0) width 62: "placeholder" layer at (281,268) size 125x13 @@ -173,7 +173,7 @@ layer at (8,284) size 131x33 LayoutTextControl {INPUT} at (0,276) size 131x33 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] layer at (11,301) size 125x13 - LayoutBlockFlow {DIV} at (3,17) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,17) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "placeholder" layer at (11,301) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.png index 51942fd..f81e9d0 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.txt index 3616b51..988221b 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/search/search-appearance-basic-expected.txt
@@ -162,7 +162,7 @@ LayoutText {#text} at (0,0) size 31x26 text run at (0,0) width 31: "foo" layer at (30,336) size 132x13 - LayoutBlockFlow {DIV} at (18,4) size 132x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (18,4) size 132x13 [color=#757575] LayoutText {#text} at (0,0) size 92x13 text run at (0,0) width 92: "Search for Events" layer at (30,336) size 132x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.png index cc61603..4e1f6981 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.txt index 90236056..e5fef261 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (11,45) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" layer at (11,45) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.png index a2acdc8..3d1dc87 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.txt index 67e2ab1..b400843 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/text/input-placeholder-visibility-3-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (11,45) size 125x13 - LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" layer at (11,45) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.png index 7ebe4c8..73b3a6c 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.txt index bd5c2c55..a3103c40 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/placeholder-appearance-textarea-expected.txt
@@ -8,7 +8,7 @@ LayoutBR {BR} at (141,96) size 0x0 layer at (8,8) size 141x32 clip at (9,9) size 139x30 LayoutTextControl {TEXTAREA} at (0,0) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x26 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x26 [color=#757575] LayoutText {#text} at (0,0) size 38x26 text run at (0,0) width 24: "first \x{D}" text run at (23,0) width 1: " "
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png index 36df33c..f5deea0e 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt index 3b0ccbf..db5b2de 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 141x32 clip at (9,43) size 139x30 LayoutTextControl {TEXTAREA} at (0,0) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 135x13
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png index fcae762..ce4754b 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt index e757c65..88a7b57 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 141x32 clip at (9,43) size 139x30 LayoutTextControl {TEXTAREA} at (0,0) size 141x32 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 135x13 [color=#757575] LayoutText {#text} at (0,0) size 62x13 text run at (0,0) width 62: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 135x13
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.png index a8ec183..e71b9fb 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.txt index b8d78db..649f422a 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/css/text-overflow-input-expected.txt
@@ -105,13 +105,13 @@ text run at (619,42) width 5: " " LayoutBR {BR} at (0,0) size 0x0 layer at (10,71) size 169x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,71) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (188,71) size 156x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (188,71) size 156x16 @@ -129,13 +129,13 @@ LayoutText {#text} at (0,0) size 275x16 text run at (0,0) width 275: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (10,115) size 169x16 scrollX 148.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (-148,0) size 317x16 text run at (-148,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,115) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (200,115) size 157x16 scrollX 160.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (15,3) size 157x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (15,3) size 157x16 [color=#757575] LayoutText {#text} at (-160,0) size 317x16 text run at (-160,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (200,115) size 157x16 @@ -153,13 +153,13 @@ LayoutText {#text} at (-106,0) size 275x16 text run at (-106,0) width 275 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (10,193) size 169x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,193) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (188,193) size 156x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (188,193) size 156x16 @@ -177,13 +177,13 @@ LayoutText {#text} at (0,0) size 275x16 text run at (0,0) width 275: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (10,237) size 169x16 scrollX 148.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (-148,0) size 317x16 text run at (-148,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (10,237) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (200,237) size 157x16 scrollX 160.00 scrollWidth 317 - LayoutBlockFlow {DIV} at (15,3) size 157x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (15,3) size 157x16 [color=#757575] LayoutText {#text} at (-160,0) size 317x16 text run at (-160,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (200,237) size 157x16 @@ -201,7 +201,7 @@ LayoutText {#text} at (-106,0) size 275x16 text run at (-106,0) width 275 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}" layer at (256,315) size 169x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (256,315) size 169x16 @@ -211,7 +211,7 @@ LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (280,337) size 169x16 scrollWidth 317 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 317x16 text run at (0,0) width 317: "Lorem ipsum dolor sit amet, consectetur adipiscing elit" layer at (280,337) size 169x16
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.png index 04b3987d..adf5cd8 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.txt index def686e0..0d36f75 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/placeholder-position-expected.txt
@@ -60,61 +60,61 @@ LayoutBR {BR} at (531,320) size 0x0 LayoutBR {BR} at (173,356) size 0x0 layer at (11,11) size 156x16 - LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (11,11) size 156x16 LayoutBlockFlow {DIV} at (0,0) size 156x16 layer at (10,33) size 99x16 - LayoutBlockFlow {DIV} at (2,3) size 99x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 99x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,33) size 99x16 LayoutBlockFlow {DIV} at (2,3) size 99x16 layer at (117,33) size 99x16 - LayoutBlockFlow {DIV} at (2,3) size 99x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 99x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (117,33) size 99x16 LayoutBlockFlow {DIV} at (2,3) size 99x16 layer at (224,33) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 105x16 text run at (0,0) width 105: "\x{65E5}\x{672C}\x{8A9E}placeholder" layer at (224,33) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (23,55) size 157x16 - LayoutBlockFlow {DIV} at (15,3) size 157x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (15,3) size 157x16 [color=#757575] LayoutText {#text} at (91,0) size 66x16 text run at (91,0) width 66: "placeholder" layer at (23,55) size 157x16 LayoutBlockFlow {DIV} at (0,0) size 157x16 layer at (11,77) size 156x16 - LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 156x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (11,77) size 156x16 LayoutBlockFlow {DIV} at (0,0) size 156x16 layer at (8,96) size 179x36 clip at (9,97) size 177x34 LayoutTextControl {TEXTAREA} at (0,88) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "placeholder" LayoutBlockFlow {DIV} at (3,3) size 175x16 layer at (10,135) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,135) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (8,168) size 179x49 clip at (9,169) size 177x47 LayoutTextControl {TEXTAREA} at (0,160) size 179x49 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,16) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,16) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "placeholder" LayoutBlockFlow {DIV} at (3,16) size 175x16 layer at (18,228) size 173x17 - LayoutBlockFlow {DIV} at (5,6) size 173x17 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (5,6) size 173x17 [color=#757575] LayoutText {#text} at (0,0) size 75x17 text run at (0,0) width 75: "placeholder" layer at (18,228) size 173x17 @@ -124,25 +124,25 @@ LayoutText {#text} at (0,4) size 32x16 text run at (0,4) width 32: "Value" layer at (187,263) size 169x16 - LayoutBlockFlow {DIV} at (2,7) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,7) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (187,259) size 169x25 LayoutBlockFlow {DIV} at (2,3) size 169x25 layer at (364,264) size 169x16 - LayoutBlockFlow {DIV} at (2,4.50) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,4.50) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (364,264) size 169x16 LayoutBlockFlow {DIV} at (2,4.50) size 169x16 layer at (541,263) size 169x16 - LayoutBlockFlow {DIV} at (2,4) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,4) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (541,259) size 169x25 LayoutBlockFlow {DIV} at (2,0) size 169x25 layer at (10,292) size 169x16 - LayoutBlockFlow {DIV} at (2,4.50) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,4.50) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,292) size 169x16 @@ -152,13 +152,13 @@ LayoutText {#text} at (68,0) size 33x16 text run at (68,0) width 33: "Value" layer at (187,315) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (51,0) size 67x16 text run at (51,0) width 67: "placeholder" layer at (187,315) size 169x16 LayoutBlockFlow {DIV} at (2,3) size 169x16 layer at (364,315) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (51,0) size 67x16 text run at (51,0) width 67: "placeholder" layer at (364,315) size 169x16 @@ -172,7 +172,7 @@ layer at (8,334) size 173x36 LayoutTextControl {INPUT} at (0,326) size 173x36 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] layer at (10,351) size 169x16 - LayoutBlockFlow {DIV} at (2,17) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,17) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 66x16 text run at (0,0) width 66: "placeholder" layer at (10,351) size 169x16
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.png index e5649d33..b8d8926 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.txt index c9b6142a..2eeee72 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/search/search-appearance-basic-expected.txt
@@ -162,7 +162,7 @@ LayoutText {#text} at (0,0) size 38x30 text run at (0,0) width 38: "foo" layer at (30,373) size 129x13 - LayoutBlockFlow {DIV} at (18,4) size 129x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (18,4) size 129x13 [color=#757575] LayoutText {#text} at (0,0) size 86x13 text run at (0,0) width 86: "Search for Events" layer at (30,373) size 129x13
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png index 61b7f84..f41afda 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.txt index f035fdc..037a9ae 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (10,45) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 68x16 text run at (0,0) width 68: "Placeholder" layer at (10,45) size 169x16
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png index aa0ae69..79955e0 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.txt index 0faa094..51cf63d 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/text/input-placeholder-visibility-3-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutText {#text} at (0,0) size 0x0 layer at (10,45) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (2,3) size 169x16 [color=#757575] LayoutText {#text} at (0,0) size 68x16 text run at (0,0) width 68: "Placeholder" layer at (10,45) size 169x16
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.png index e595734..f270d1a 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.txt index 3fda304..8ae1844f 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/placeholder-appearance-textarea-expected.txt
@@ -8,7 +8,7 @@ LayoutBR {BR} at (179,108) size 0x0 layer at (8,8) size 179x36 clip at (9,9) size 177x34 LayoutTextControl {TEXTAREA} at (0,0) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x32 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x32 [color=#757575] LayoutText {#text} at (0,0) size 48x32 text run at (0,0) width 48: "first \x{D}" text run at (48,0) width 0: " "
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png index 546ebcb..59b6446 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt index f2dd0c8b..a5eecb4 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-1-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 179x36 clip at (9,43) size 177x34 LayoutTextControl {TEXTAREA} at (0,0) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 175x16
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png index 167af31..e1f02e4f 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt index fc46415..87c851f5 100644 --- a/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/fast/forms/textarea/textarea-placeholder-visibility-2-expected.txt
@@ -11,7 +11,7 @@ LayoutText {#text} at (0,0) size 0x0 layer at (8,42) size 179x36 clip at (9,43) size 177x34 LayoutTextControl {TEXTAREA} at (0,0) size 179x36 [bgcolor=#FFFFFF] [border: (1px solid #A9A9A9)] - LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (3,3) size 175x16 [color=#757575] LayoutText {#text} at (0,0) size 88x16 text run at (0,0) width 88: "Placeholder" LayoutBlockFlow {DIV} at (3,3) size 175x16
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.png b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.png index ccdb1f9..5c4b1dd 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.txt index 43f2a53..3869490d 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/search/search-appearance-basic-expected.txt
@@ -162,7 +162,7 @@ LayoutText {#text} at (0,0) size 38x30 text run at (0,0) width 38: "foo" layer at (30,373) size 125x13 - LayoutBlockFlow {DIV} at (18,4) size 125x13 [color=#A9A9A9] + LayoutBlockFlow {DIV} at (18,4) size 125x13 [color=#757575] LayoutText {#text} at (0,0) size 86x13 text run at (0,0) width 86: "Search for Events" layer at (30,373) size 125x13
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.png b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.png index 90bf2351..96dbcc8 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.png +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.png Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.txt index c28e5bb3..c90355c 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/fast/forms/text/text-font-height-mismatch-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE WARNING: Failed to decode downloaded font: NotoSansCJKjp-Regular-cid03075.otf layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x142 @@ -8,20 +7,20 @@ LayoutText {#text} at (0,0) size 273x17 text run at (0,0) width 273: "Editable text should be centered vertically." LayoutBlockFlow {DIV} at (0,34) size 784x28 - LayoutTextControl {INPUT} at (0,3) size 195x22 [bgcolor=#FFFFFF] [border: (1px solid #000000)] - LayoutTextControl {INPUT} at (195,0) size 195x28 [bgcolor=#FFFFFF] [border: (1px solid #000000)] + LayoutTextControl {INPUT} at (0,0) size 236x28 [bgcolor=#FFFFFF] [border: (1px solid #000000)] + LayoutTextControl {INPUT} at (236,0) size 236x28 [bgcolor=#FFFFFF] [border: (1px solid #000000)] LayoutBlockFlow {DIV} at (0,62) size 784x28 LayoutTextControl {INPUT} at (0,0) size 294x28 [bgcolor=#FFFFFF] [border: (1px solid #000000)] LayoutBlockFlow {DIV} at (0,90) size 784x28 LayoutTextControl {INPUT} at (0,0) size 199x28 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] -layer at (9,52) size 193x24 - LayoutBlockFlow {DIV} at (1,-1) size 193x24 - LayoutText {#text} at (0,3) size 74x17 - text run at (0,3) width 74: "\x{3075} ABCgjy" -layer at (204,52) size 193x24 - LayoutBlockFlow {DIV} at (1,2) size 193x24 - LayoutText {#text} at (0,3) size 74x17 - text run at (0,3) width 74: "\x{3075} ABCgjy" +layer at (9,51) size 234x26 + LayoutBlockFlow {DIV} at (1,1) size 234x26 + LayoutText {#text} at (0,0) size 74x24 + text run at (0,0) width 74: "\x{3075} ABCgjy" +layer at (245,51) size 234x26 + LayoutBlockFlow {DIV} at (1,1) size 234x26 + LayoutText {#text} at (0,0) size 74x24 + text run at (0,0) width 74: "\x{3075} ABCgjy" layer at (9,78) size 292x28 LayoutBlockFlow {DIV} at (1,0) size 292x28 LayoutText {#text} at (0,0) size 81x27
diff --git a/third_party/WebKit/LayoutTests/svg/css/getComputedStyle-listing-expected.txt b/third_party/WebKit/LayoutTests/svg/css/getComputedStyle-listing-expected.txt index 24ad52a..6efb0263 100644 --- a/third_party/WebKit/LayoutTests/svg/css/getComputedStyle-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/css/getComputedStyle-listing-expected.txt
@@ -115,7 +115,7 @@ break-inside: auto buffered-rendering: auto caption-side: top -caret-color: auto +caret-color: rgb(0, 0, 0) clear: none clip: auto clip-path: none
diff --git a/third_party/WebKit/LayoutTests/transitions/position-background-transition.html b/third_party/WebKit/LayoutTests/transitions/position-background-transition.html index d8c241f..aca1f384 100644 --- a/third_party/WebKit/LayoutTests/transitions/position-background-transition.html +++ b/third_party/WebKit/LayoutTests/transitions/position-background-transition.html
@@ -18,6 +18,7 @@ } onload = function() { var target = document.getElementById('target'); + target.offsetHeight; // Force style recalc target.style.top = '100px'; target.style.background = 'green'; }
diff --git a/third_party/WebKit/LayoutTests/transitions/resources/opacity-transform-transitions-inside-iframe-inner.html b/third_party/WebKit/LayoutTests/transitions/resources/opacity-transform-transitions-inside-iframe-inner.html index 6fd0ebd..93ce2864 100644 --- a/third_party/WebKit/LayoutTests/transitions/resources/opacity-transform-transitions-inside-iframe-inner.html +++ b/third_party/WebKit/LayoutTests/transitions/resources/opacity-transform-transitions-inside-iframe-inner.html
@@ -40,6 +40,7 @@ 'use strict'; function runTest() { + document.body.offsetHeight; // Force style recalc var solid_color_overlay = document.getElementById("solid_color_overlay"); solid_color_overlay.removeAttribute('hidden');
diff --git a/third_party/WebKit/LayoutTests/transitions/transition-end-event-helpers.js b/third_party/WebKit/LayoutTests/transitions/transition-end-event-helpers.js index fa5f352c..f694b4c 100644 --- a/third_party/WebKit/LayoutTests/transitions/transition-end-event-helpers.js +++ b/third_party/WebKit/LayoutTests/transitions/transition-end-event-helpers.js
@@ -136,6 +136,7 @@ function startTest(expected, callback, maxTime) { + document.body.offsetHeight; // Force style recalc if (callback) callback();
diff --git a/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested-expected.txt b/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested-expected.txt index fb9d4ed0..631bbdfd 100644 --- a/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested-expected.txt +++ b/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested-expected.txt
@@ -1,6 +1,6 @@ Initiating transitions on various properties of all boxes. -PASS --- [Expected] Property: background-color Target: box2 Elapsed Time: 0.2 -PASS --- [Expected] Property: left Target: box1 Elapsed Time: 0.2 -PASS --- [Expected] Property: width Target: box3 Elapsed Time: 0.3 +PASS --- [Expected] Property: background-color Target: box2 Elapsed Time: 0.06 +PASS --- [Expected] Property: left Target: box1 Elapsed Time: 0.06 +PASS --- [Expected] Property: width Target: box3 Elapsed Time: 0.1
diff --git a/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested.html b/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested.html index 9657bd9a..0c70810 100644 --- a/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested.html +++ b/third_party/WebKit/LayoutTests/transitions/transition-end-event-nested.html
@@ -9,7 +9,7 @@ margin: 10px; background-color: blue; transition-property: width, left, background-color, height, top; - transition-duration: 0.2s; + transition-duration: 0.06s; } .box1 { @@ -22,7 +22,7 @@ .box3 { width: 150px; - transition-duration: 0.3s; + transition-duration: 0.1s; } </style> @@ -31,20 +31,22 @@ var expectedEndEvents = [ // [property-name, element-id, elapsed-time, listen] - ["background-color", "box2", 0.2, false], - ["left", "box1", 0.2, false], - ["width", "box3", 0.3, false], + ["background-color", "box2", 0.06, false], + ["left", "box1", 0.06, false], + ["width", "box3", 0.1, false], ]; - function handleEndEvent2(event) + function handleEndEvent3(event) { recordTransitionEndEvent(event); } - function startTransition2() + function handleEndEvent2(event) { + recordTransitionEndEvent(event); + var box = document.getElementById("box3"); - box.addEventListener("transitionend", handleEndEvent2, false); + box.addEventListener("transitionend", handleEndEvent3, false); box.className = "box box3"; } @@ -52,27 +54,15 @@ { recordTransitionEndEvent(event); - setTimeout(startTransition2, 100); - } - - function startTransition1() - { var box = document.getElementById("box2"); - box.addEventListener("transitionend", handleEndEvent1, false); + box.addEventListener("transitionend", handleEndEvent2, false); box.className = "box box2"; } - function handleEndEvent(event) - { - recordTransitionEndEvent(event); - - setTimeout(startTransition1, 100); - } - function setupTest() { var box = document.getElementById("box1"); - box.addEventListener("transitionend", handleEndEvent, false); + box.addEventListener("transitionend", handleEndEvent1, false); box.className = "box box1"; }
diff --git a/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp b/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp index 2c8357f..df699b1a 100644 --- a/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp +++ b/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
@@ -40,14 +40,39 @@ namespace blink { +static const PropertyRegistry::Registration* getRegistration( + const PropertyRegistry* registry, + const PropertyHandle& property) { + DCHECK(property.isCSSCustomProperty()); + if (!registry) { + return nullptr; + } + return registry->registration(property.customPropertyName()); +} + const InterpolationTypes& CSSInterpolationTypesMap::get( const PropertyHandle& property) const { using ApplicableTypesMap = HashMap<PropertyHandle, std::unique_ptr<const InterpolationTypes>>; DEFINE_STATIC_LOCAL(ApplicableTypesMap, applicableTypesMap, ()); auto entry = applicableTypesMap.find(property); - if (entry != applicableTypesMap.end()) - return *entry->value.get(); + bool foundEntry = entry != applicableTypesMap.end(); + + // Custom property interpolation types may change over time so don't trust the + // applicableTypesMap without checking the registry. + if (m_registry && property.isCSSCustomProperty()) { + const auto* registration = getRegistration(m_registry.get(), property); + if (registration) { + if (foundEntry) { + applicableTypesMap.remove(entry); + } + return registration->interpolationTypes(); + } + } + + if (foundEntry) { + return *entry->value; + } std::unique_ptr<InterpolationTypes> applicableTypes = WTF::makeUnique<InterpolationTypes>(); @@ -277,10 +302,11 @@ applicableTypes->push_back( WTF::makeUnique<CSSTransformInterpolationType>(usedProperty)); break; + case CSSPropertyVariable: + DCHECK_EQ(getRegistration(m_registry.get(), property), nullptr); + break; default: DCHECK(!CSSPropertyMetadata::isInterpolableProperty(cssProperty)); - // TODO(crbug.com/671904): Look up m_registry for custom property - // InterpolationTypes. break; } @@ -288,7 +314,7 @@ WTF::makeUnique<CSSValueInterpolationType>(usedProperty)); auto addResult = applicableTypesMap.add(property, std::move(applicableTypes)); - return *addResult.storedValue->value.get(); + return *addResult.storedValue->value; } size_t CSSInterpolationTypesMap::version() const {
diff --git a/third_party/WebKit/Source/core/animation/InterpolationType.h b/third_party/WebKit/Source/core/animation/InterpolationType.h index c7e9cb1..d11a8af2 100644 --- a/third_party/WebKit/Source/core/animation/InterpolationType.h +++ b/third_party/WebKit/Source/core/animation/InterpolationType.h
@@ -31,8 +31,6 @@ WTF_MAKE_NONCOPYABLE(InterpolationType); public: - virtual ~InterpolationType() { NOTREACHED(); } - PropertyHandle getProperty() const { return m_property; } // ConversionCheckers are returned from calls to maybeConvertPairwise() and
diff --git a/third_party/WebKit/Source/core/css/BUILD.gn b/third_party/WebKit/Source/core/css/BUILD.gn index 70154f7..5a4e154 100644 --- a/third_party/WebKit/Source/core/css/BUILD.gn +++ b/third_party/WebKit/Source/core/css/BUILD.gn
@@ -351,6 +351,7 @@ "properties/CSSPropertyAPITranslate.cpp", "properties/CSSPropertyAPIWebkitPadding.cpp", "properties/CSSPropertyAPIWillChange.cpp", + "properties/CSSPropertyAPIZIndex.cpp", "properties/CSSPropertyAPIZoom.cpp", "properties/CSSPropertyDescriptor.h", "resolver/AnimatedStyleBuilder.cpp",
diff --git a/third_party/WebKit/Source/core/css/CSSProperties.in b/third_party/WebKit/Source/core/css/CSSProperties.in index 19d117bca..bffe2066 100644 --- a/third_party/WebKit/Source/core/css/CSSProperties.in +++ b/third_party/WebKit/Source/core/css/CSSProperties.in
@@ -473,7 +473,7 @@ word-spacing interpolable, inherited, initial=initialLetterWordSpacing, converter=convertSpacing // UAs must treat 'word-wrap' as an alternate name for the 'overflow-wrap' property. So using the same handlers. word-wrap inherited, name_for_methods=OverflowWrap -z-index interpolable, type_name=int, custom_all +z-index interpolable, type_name=int, custom_all, api_class // CSS logical props inline-size direction_aware
diff --git a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp index 7801d79..68f2a0b 100644 --- a/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp +++ b/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
@@ -2205,11 +2205,13 @@ case CSSPropertyCaptionSide: return CSSIdentifierValue::create(style.captionSide()); case CSSPropertyCaretColor: - if (style.caretColor().isCurrentColor()) - return CSSIdentifierValue::create(CSSValueCurrentcolor); - if (style.caretColor().isAutoColor()) - return CSSIdentifierValue::create(CSSValueAuto); - return CSSColorValue::create(style.caretColor().color().rgb()); + return allowVisitedStyle + ? CSSColorValue::create( + style.visitedDependentColor(CSSPropertyCaretColor).rgb()) + : currentColorOrValidColor( + style, style.caretColor().isAutoColor() + ? StyleColor::currentColor() + : style.caretColor().toStyleColor()); case CSSPropertyClear: return CSSIdentifierValue::create(style.clear()); case CSSPropertyColor:
diff --git a/third_party/WebKit/Source/core/css/PropertyRegistration.cpp b/third_party/WebKit/Source/core/css/PropertyRegistration.cpp index ae24ecec..410ae2c9 100644 --- a/third_party/WebKit/Source/core/css/PropertyRegistration.cpp +++ b/third_party/WebKit/Source/core/css/PropertyRegistration.cpp
@@ -4,6 +4,7 @@ #include "core/css/PropertyRegistration.h" +#include "core/animation/CSSValueInterpolationType.h" #include "core/css/CSSSyntaxDescriptor.h" #include "core/css/CSSValueList.h" #include "core/css/CSSVariableReferenceValue.h" @@ -56,6 +57,17 @@ return true; } +InterpolationTypes interpolationTypesForSyntax(const AtomicString& propertyName, + const CSSSyntaxDescriptor&) { + PropertyHandle property(propertyName); + InterpolationTypes interpolationTypes; + // TODO(alancutter): Read the syntax descriptor and add the appropriate + // CSSInterpolationType subclasses. + interpolationTypes.append( + WTF::makeUnique<CSSValueInterpolationType>(property)); + return interpolationTypes; +} + void PropertyRegistration::registerProperty( ExecutionContext* executionContext, const PropertyDescriptor& descriptor, @@ -89,6 +101,9 @@ return; } + InterpolationTypes interpolationTypes = + interpolationTypesForSyntax(atomicName, syntaxDescriptor); + if (descriptor.hasInitialValue()) { CSSTokenizer tokenizer(descriptor.initialValue()); bool isAnimationTainted = false; @@ -108,9 +123,9 @@ } RefPtr<CSSVariableData> initialVariableData = CSSVariableData::create( tokenizer.tokenRange(), isAnimationTainted, false); - registry.registerProperty(atomicName, syntaxDescriptor, - descriptor.inherits(), initial, - initialVariableData.release()); + registry.registerProperty( + atomicName, syntaxDescriptor, descriptor.inherits(), initial, + initialVariableData.release(), std::move(interpolationTypes)); } else { if (!syntaxDescriptor.isTokenStream()) { exceptionState.throwDOMException( @@ -119,7 +134,8 @@ return; } registry.registerProperty(atomicName, syntaxDescriptor, - descriptor.inherits(), nullptr, nullptr); + descriptor.inherits(), nullptr, nullptr, + std::move(interpolationTypes)); } // TODO(timloh): Invalidate only elements with this custom property set
diff --git a/third_party/WebKit/Source/core/css/PropertyRegistry.cpp b/third_party/WebKit/Source/core/css/PropertyRegistry.cpp index 6922325..0d96374 100644 --- a/third_party/WebKit/Source/core/css/PropertyRegistry.cpp +++ b/third_party/WebKit/Source/core/css/PropertyRegistry.cpp
@@ -11,10 +11,12 @@ const CSSSyntaxDescriptor& syntax, bool inherits, const CSSValue* initial, - PassRefPtr<CSSVariableData> initialVariableData) { + PassRefPtr<CSSVariableData> initialVariableData, + InterpolationTypes interpolationTypes) { DCHECK(!registration(name)); m_registrations.set(name, new Registration(syntax, inherits, initial, - std::move(initialVariableData))); + std::move(initialVariableData), + std::move(interpolationTypes))); } const PropertyRegistry::Registration* PropertyRegistry::registration(
diff --git a/third_party/WebKit/Source/core/css/PropertyRegistry.h b/third_party/WebKit/Source/core/css/PropertyRegistry.h index 0c33122..6941e6b 100644 --- a/third_party/WebKit/Source/core/css/PropertyRegistry.h +++ b/third_party/WebKit/Source/core/css/PropertyRegistry.h
@@ -5,6 +5,8 @@ #ifndef PropertyRegistry_h #define PropertyRegistry_h +#include "core/animation/InterpolationType.h" +#include "core/animation/InterpolationTypesMap.h" #include "core/css/CSSSyntaxDescriptor.h" #include "core/css/CSSValue.h" #include "core/css/CSSVariableData.h" @@ -24,11 +26,13 @@ Registration(const CSSSyntaxDescriptor& syntax, bool inherits, const CSSValue* initial, - PassRefPtr<CSSVariableData> initialVariableData) + PassRefPtr<CSSVariableData> initialVariableData, + InterpolationTypes interpolationTypes) : m_syntax(syntax), m_inherits(inherits), m_initial(initial), - m_initialVariableData(initialVariableData) {} + m_initialVariableData(initialVariableData), + m_interpolationTypes(std::move(interpolationTypes)) {} const CSSSyntaxDescriptor& syntax() const { return m_syntax; } bool inherits() const { return m_inherits; } @@ -36,6 +40,9 @@ CSSVariableData* initialVariableData() const { return m_initialVariableData.get(); } + const InterpolationTypes& interpolationTypes() const { + return m_interpolationTypes; + } DEFINE_INLINE_TRACE() { visitor->trace(m_initial); } @@ -44,13 +51,15 @@ const bool m_inherits; const Member<const CSSValue> m_initial; const RefPtr<CSSVariableData> m_initialVariableData; + const InterpolationTypes m_interpolationTypes; }; void registerProperty(const AtomicString&, const CSSSyntaxDescriptor&, bool inherits, const CSSValue* initial, - PassRefPtr<CSSVariableData> initialVariableData); + PassRefPtr<CSSVariableData> initialVariableData, + InterpolationTypes); const Registration* registration(const AtomicString&) const; size_t registrationCount() const { return m_registrations.size(); }
diff --git a/third_party/WebKit/Source/core/css/html.css b/third_party/WebKit/Source/core/css/html.css index e21bf12..99c3ae22 100644 --- a/third_party/WebKit/Source/core/css/html.css +++ b/third_party/WebKit/Source/core/css/html.css
@@ -504,7 +504,7 @@ ::-webkit-input-placeholder { -webkit-text-security: none; - color: darkGray; + color: #757575; pointer-events: none !important; }
diff --git a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp index 13def8e6..d3cdd8655 100644 --- a/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp +++ b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
@@ -1243,12 +1243,6 @@ return m_range.atEnd(); } -static CSSValue* consumeZIndex(CSSParserTokenRange& range) { - if (range.peek().id() == CSSValueAuto) - return consumeIdent(range); - return consumeInteger(range); -} - static CSSShadowValue* parseSingleShadow(CSSParserTokenRange& range, CSSParserMode cssParserMode, bool allowInset, @@ -3519,8 +3513,6 @@ allowQuirkyLengths ? UnitlessQuirk::Allow : UnitlessQuirk::Forbid; return consumeBorderWidth(m_range, m_context.mode(), unitless); } - case CSSPropertyZIndex: - return consumeZIndex(m_range); case CSSPropertyTextShadow: case CSSPropertyBoxShadow: return consumeShadow(m_range, m_context.mode(),
diff --git a/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIZIndex.cpp b/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIZIndex.cpp new file mode 100644 index 0000000..a529cb9f --- /dev/null +++ b/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIZIndex.cpp
@@ -0,0 +1,19 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/css/properties/CSSPropertyAPIZIndex.h" + +#include "core/css/parser/CSSPropertyParserHelpers.h" + +namespace blink { + +const CSSValue* CSSPropertyAPIZIndex::parseSingleValue( + CSSParserTokenRange& range, + const CSSParserContext& context) { + if (range.peek().id() == CSSValueAuto) + return CSSPropertyParserHelpers::consumeIdent(range); + return CSSPropertyParserHelpers::consumeInteger(range); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/EditingStyle.cpp b/third_party/WebKit/Source/core/editing/EditingStyle.cpp index 273f738..97a8d31 100644 --- a/third_party/WebKit/Source/core/editing/EditingStyle.cpp +++ b/third_party/WebKit/Source/core/editing/EditingStyle.cpp
@@ -487,7 +487,7 @@ if (node && node->ensureComputedStyle()) { const ComputedStyle* computedStyle = node->ensureComputedStyle(); - removeTextFillAndStrokeColorsIfNeeded(computedStyle); + removeInheritedColorsIfNeeded(computedStyle); replaceFontSizeByKeywordIfPossible(computedStyle, computedStyleAtPosition); } @@ -495,15 +495,19 @@ extractFontSizeDelta(); } -void EditingStyle::removeTextFillAndStrokeColorsIfNeeded( +void EditingStyle::removeInheritedColorsIfNeeded( const ComputedStyle* computedStyle) { // If a node's text fill color is currentColor, then its children use // their font-color as their text fill color (they don't // inherit it). Likewise for stroke color. + // Similar thing happens for caret-color if it's auto or currentColor. if (computedStyle->textFillColor().isCurrentColor()) m_mutableStyle->removeProperty(CSSPropertyWebkitTextFillColor); if (computedStyle->textStrokeColor().isCurrentColor()) m_mutableStyle->removeProperty(CSSPropertyWebkitTextStrokeColor); + if (computedStyle->caretColor().isAutoColor() || + computedStyle->caretColor().isCurrentColor()) + m_mutableStyle->removeProperty(CSSPropertyCaretColor); } void EditingStyle::setProperty(CSSPropertyID propertyID,
diff --git a/third_party/WebKit/Source/core/editing/EditingStyle.h b/third_party/WebKit/Source/core/editing/EditingStyle.h index f4e7add91..336512a 100644 --- a/third_party/WebKit/Source/core/editing/EditingStyle.h +++ b/third_party/WebKit/Source/core/editing/EditingStyle.h
@@ -184,7 +184,7 @@ explicit EditingStyle(const StylePropertySet*); EditingStyle(CSSPropertyID, const String& value); void init(Node*, PropertiesToInclude); - void removeTextFillAndStrokeColorsIfNeeded(const ComputedStyle*); + void removeInheritedColorsIfNeeded(const ComputedStyle*); void setProperty(CSSPropertyID, const String& value, bool important = false); void replaceFontSizeByKeywordIfPossible(const ComputedStyle*, CSSComputedStyleDeclaration*);
diff --git a/third_party/WebKit/Source/platform/BUILD.gn b/third_party/WebKit/Source/platform/BUILD.gn index aa663aa..150623d 100644 --- a/third_party/WebKit/Source/platform/BUILD.gn +++ b/third_party/WebKit/Source/platform/BUILD.gn
@@ -1083,6 +1083,7 @@ "image-encoders/JPEGImageEncoder.h", "image-encoders/PNGImageEncoder.cpp", "image-encoders/PNGImageEncoder.h", + "image-encoders/RGBAtoRGB.h", "image-encoders/WEBPImageEncoder.cpp", "image-encoders/WEBPImageEncoder.h", "instrumentation/tracing/MemoryCacheDumpProvider.cpp", @@ -1769,6 +1770,7 @@ "image-decoders/jpeg/JPEGImageDecoderTest.cpp", "image-decoders/png/PNGImageDecoderTest.cpp", "image-decoders/webp/WEBPImageDecoderTest.cpp", + "image-encoders/JPEGImageEncoderTest.cpp", "instrumentation/tracing/TracedValueTest.cpp", "instrumentation/tracing/web_process_memory_dump_test.cc", "json/JSONParserTest.cpp",
diff --git a/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoder.cpp b/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoder.cpp index 0a70e73d..00e38191 100644 --- a/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoder.cpp +++ b/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoder.cpp
@@ -33,6 +33,7 @@ #include "SkColorPriv.h" #include "platform/geometry/IntSize.h" #include "platform/graphics/ImageBuffer.h" +#include "platform/image-encoders/RGBAtoRGB.h" #include "wtf/CurrentTime.h" #include "wtf/PtrUtil.h" #include <memory> @@ -45,6 +46,81 @@ namespace blink { +void RGBAtoRGBScalar(const unsigned char* pixels, + unsigned pixelCount, + unsigned char* output) { + // Per <canvas> spec, composite the input image pixels source-over on black. + for (; pixelCount-- > 0; pixels += 4) { + unsigned char alpha = pixels[3]; + if (alpha != 255) { + *output++ = SkMulDiv255Round(pixels[0], alpha); + *output++ = SkMulDiv255Round(pixels[1], alpha); + *output++ = SkMulDiv255Round(pixels[2], alpha); + } else { + *output++ = pixels[0]; + *output++ = pixels[1]; + *output++ = pixels[2]; + } + } +} + +// TODO(cavalcantii): use regular macro, see https://crbug.com/673067. +#ifdef __ARM_NEON__ +void RGBAtoRGBNeon(const unsigned char* input, + const unsigned pixelCount, + unsigned char* output) { + const unsigned pixelsPerLoad = 16; + const unsigned rgbaStep = pixelsPerLoad * 4, rgbStep = pixelsPerLoad * 3; + // Input registers. + uint8x16x4_t rgba; + // Output registers. + uint8x16x3_t rgb; + // Intermediate registers. + uint8x8_t low, high; + uint8x16_t result; + unsigned counter; + auto transformColor = [&](size_t channel) { + // Extracts the low/high part of the 128 bits. + low = vget_low_u8(rgba.val[channel]); + high = vget_high_u8(rgba.val[channel]); + // Scale the color and combine. + uint16x8_t temp = vmull_u8(low, vget_low_u8(rgba.val[3])); + low = vraddhn_u16(temp, vrshrq_n_u16(temp, 8)); + temp = vmull_u8(high, vget_high_u8(rgba.val[3])); + high = vraddhn_u16(temp, vrshrq_n_u16(temp, 8)); + result = vcombine_u8(low, high); + // Write back the channel to a 128 bits register. + rgb.val[channel] = result; + }; + + for (counter = 0; counter + pixelsPerLoad <= pixelCount; + counter += pixelsPerLoad) { + // Reads 16 pixels at once, each color channel in a different + // 128 bits register. + rgba = vld4q_u8(input); + + transformColor(0); + transformColor(1); + transformColor(2); + + // Write back (interleaved) results to output. + vst3q_u8(output, rgb); + + // Advance to next elements (could be avoided loading register with + // increment after i.e. "vld4 {vector}, [r1]!"). + input += rgbaStep; + output += rgbStep; + } + + // Handle the tail elements. + unsigned remaining = pixelCount; + remaining -= counter; + if (remaining != 0) { + RGBAtoRGBScalar(input, remaining, output); + } +} +#endif + struct JPEGOutputBuffer : public jpeg_destination_mgr { DISALLOW_NEW(); Vector<unsigned char>* output; @@ -95,25 +171,6 @@ longjmp(*jumpBufferPtr, -1); } -static void RGBAtoRGB(const unsigned char* pixels, - unsigned pixelCount, - unsigned char* output) { - // Per <canvas> spec, composite the input image pixels source-over on black. - - for (; pixelCount-- > 0; pixels += 4) { - unsigned char alpha = pixels[3]; - if (alpha != 255) { - *output++ = SkMulDiv255Round(pixels[0], alpha); - *output++ = SkMulDiv255Round(pixels[1], alpha); - *output++ = SkMulDiv255Round(pixels[2], alpha); - } else { - *output++ = pixels[0]; - *output++ = pixels[1]; - *output++ = pixels[2]; - } - } -} - static void disableSubsamplingForHighQuality(jpeg_compress_struct* cinfo, int quality) { if (quality < 100)
diff --git a/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoderTest.cpp b/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoderTest.cpp new file mode 100644 index 0000000..29219a6 --- /dev/null +++ b/third_party/WebKit/Source/platform/image-encoders/JPEGImageEncoderTest.cpp
@@ -0,0 +1,233 @@ +// Copyright 2016 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 "base/timer/elapsed_timer.h" +#include "platform/image-encoders/RGBAtoRGB.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "wtf/build_config.h" + +namespace blink { + +class RGBAtoRGBTest : public ::testing::Test { + public: + RGBAtoRGBTest() {} +}; + +static const size_t channelsRGBA = 4; +static const size_t channelsRGB = 3; + +inline size_t calculateRGBAPixels(size_t inputBufferSize) { + size_t pixels = inputBufferSize / channelsRGBA; + return pixels; +} + +inline size_t calculateRGBOutputSize(size_t inputBufferSize) { + size_t pixels = calculateRGBAPixels(inputBufferSize); + pixels *= channelsRGB; + return pixels; +} + +TEST_F(RGBAtoRGBTest, testOpaqueCaseEven8pixels) { + unsigned char canvas[] = {255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, + 255, 255, 0, 0, 255, 0, 255, 0, 255, 0, 255, + 0, 255, 0, 255, 0, 255, 0, 255, 0, 255}; + + unsigned char expected[] = {255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, + 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0}; +#if OS(WIN) + // Windows release bot can't be reasoned with (compiler error C2131). + static const constexpr size_t pixels = sizeof(canvas) / channelsRGBA; + static const constexpr size_t rgbSize = pixels * channelsRGB; +#else + const size_t pixels = calculateRGBAPixels(sizeof(canvas)); + const size_t rgbSize = calculateRGBOutputSize(sizeof(canvas)); +#endif + + unsigned char output[rgbSize]; + memset(output, 0, rgbSize); + + blink::RGBAtoRGB(canvas, static_cast<unsigned>(pixels), output); + + EXPECT_EQ(memcmp(expected, output, rgbSize), 0); +} + +#ifdef __ARM_NEON__ +TEST_F(RGBAtoRGBTest, testCaseEven16pixels) { + unsigned char canvas[] = { + 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, + 0, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, + 0, 255, 0, 255, 0, 255, 0, 0, 255, 128, 0, 0, 255, + 128, 0, 0, 255, 128, 0, 0, 255, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}; + + const size_t pixels = calculateRGBAPixels(sizeof(canvas)); + const size_t rgbSize = calculateRGBOutputSize(sizeof(canvas)); + unsigned char output[rgbSize]; + unsigned char expected[rgbSize]; + memset(output, 0, rgbSize); + memset(expected, 0, rgbSize); + + blink::RGBAtoRGBScalar(canvas, static_cast<unsigned>(pixels), expected); + blink::RGBAtoRGBNeon(canvas, static_cast<unsigned>(pixels), output); + + EXPECT_EQ(memcmp(expected, output, rgbSize), 0); +} + +TEST_F(RGBAtoRGBTest, testCaseOdd17pixels) { + unsigned char canvas[] = { + 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, + 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, + 0, 255, 0, 255, 0, 0, 255, 128, 0, 0, 255, 128, 0, 0, + 255, 128, 0, 0, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 10, 10, 10, 100}; + + const size_t pixels = calculateRGBAPixels(sizeof(canvas)); + const size_t rgbSize = calculateRGBOutputSize(sizeof(canvas)); + unsigned char output[rgbSize]; + unsigned char expected[rgbSize]; + memset(output, 0, rgbSize); + memset(expected, 0, rgbSize); + + blink::RGBAtoRGBScalar(canvas, static_cast<unsigned>(pixels), expected); + blink::RGBAtoRGBNeon(canvas, static_cast<unsigned>(pixels), output); + + EXPECT_EQ(memcmp(expected, output, rgbSize), 0); +} + +TEST_F(RGBAtoRGBTest, testCaseEven32pixels) { + unsigned char canvas[] = { + 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, + 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, + 0, 255, 0, 0, 255, 128, 0, 0, 255, 128, 0, 0, 255, 128, 0, + 0, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, + 255, 128, 128, 128, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, + 0, 255, 255, 0, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, + 255, 0, 255, 0, 255, 0, 255, 0, 0, 255, 128, 0, 0, 255, 128, + 0, 0, 255, 128, 0, 0, 255, 128}; + + const size_t pixels = calculateRGBAPixels(sizeof(canvas)); + const size_t rgbSize = calculateRGBOutputSize(sizeof(canvas)); + unsigned char output[rgbSize]; + unsigned char expected[rgbSize]; + memset(output, 0, rgbSize); + memset(expected, 0, rgbSize); + + blink::RGBAtoRGBScalar(canvas, static_cast<unsigned>(pixels), expected); + blink::RGBAtoRGBNeon(canvas, static_cast<unsigned>(pixels), output); + + EXPECT_EQ(memcmp(expected, output, rgbSize), 0); +} + +static base::TimeDelta testNpixels(bool fastPath = true, + const size_t width = 1024, + const size_t height = 1024, + bool setAlpha = true) { + const size_t pixels = width * height; + const size_t canvasLen = channelsRGBA * width * height; + const size_t outputLen = channelsRGB * width * height; + unsigned char* canvas = new unsigned char[canvasLen]; + unsigned char* output = new unsigned char[outputLen]; + + auto cleanup = [&]() { + if (canvas) + delete[] canvas; + if (output) + delete[] output; + }; + + if (!canvas || !output) { + cleanup(); + return base::TimeDelta(); + } + + if (setAlpha) { + memset(canvas, 128, canvasLen); + } else { + memset(canvas, 200, canvasLen); + } + + base::ElapsedTimer runTime; + if (fastPath) { + blink::RGBAtoRGBNeon(canvas, static_cast<unsigned>(pixels), output); + } else { + blink::RGBAtoRGBScalar(canvas, static_cast<unsigned>(pixels), output); + } + + auto result = runTime.Elapsed(); + cleanup(); + return result; +} + +TEST_F(RGBAtoRGBTest, testPerf1k) { + auto neonElapsed = testNpixels(); + auto scalarElapsed = testNpixels(false); + + EXPECT_TRUE(neonElapsed < scalarElapsed) + << "Neon: " << neonElapsed << "\tScalar: " << scalarElapsed << std::endl; +} + +TEST_F(RGBAtoRGBTest, testPerf4k) { + auto neonElapsed = testNpixels(true, 4000, 4000); + auto scalarElapsed = testNpixels(false, 4000, 4000); + + EXPECT_TRUE(neonElapsed < scalarElapsed) + << "Neon: " << neonElapsed << "\tScalar: " << scalarElapsed << std::endl; +} + +// This width will force the tail case, cause width = (16 * 64) + 15. +static bool testRandNpixels(const size_t width = 1039, + const size_t height = 1024, + bool setAlpha = true) { + const size_t pixels = width * height; + const size_t canvasLen = channelsRGBA * pixels; + const size_t outputLen = channelsRGB * pixels; + unsigned char* canvas = new unsigned char[canvasLen]; + unsigned char* expected = new unsigned char[outputLen]; + unsigned char* output = new unsigned char[outputLen]; + + auto cleanup = [&]() { + if (canvas) + delete[] canvas; + if (expected) + delete[] expected; + if (output) + delete[] output; + }; + + if (!canvas || !output || !expected) { + cleanup(); + return false; + } + + if (setAlpha) { + memset(canvas, 128, canvasLen); + } else { + memset(canvas, 200, canvasLen); + } + + srand(time(0)); + unsigned char* ptr = canvas; + for (size_t i = 0; i < pixels; ++i) { + *ptr++ = static_cast<unsigned char>(rand() % 255); + *ptr++ = static_cast<unsigned char>(rand() % 255); + *ptr++ = static_cast<unsigned char>(rand() % 255); + *ptr++ = static_cast<unsigned char>(rand() % 255); + } + + blink::RGBAtoRGBScalar(canvas, static_cast<unsigned>(pixels), expected); + blink::RGBAtoRGBNeon(canvas, static_cast<unsigned>(pixels), output); + + bool result = memcmp(expected, output, outputLen) == 0; + + cleanup(); + return result; +} + +TEST_F(RGBAtoRGBTest, randomPixels) { + EXPECT_TRUE(testRandNpixels()); +} + +#endif +} // namespace blink
diff --git a/third_party/WebKit/Source/platform/image-encoders/RGBAtoRGB.h b/third_party/WebKit/Source/platform/image-encoders/RGBAtoRGB.h new file mode 100644 index 0000000..52bb1c1 --- /dev/null +++ b/third_party/WebKit/Source/platform/image-encoders/RGBAtoRGB.h
@@ -0,0 +1,30 @@ +// Copyright 2016 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 RGBAtoRGB_h +#define RGBAtoRGB_h + +// TODO(cavalcantii): use regular macro, see https://crbug.com/673067. +#ifdef __ARM_NEON__ +#include <arm_neon.h> +#define RGBAtoRGB RGBAtoRGBNeon +#else +#define RGBAtoRGB RGBAtoRGBScalar +#endif + +#include "platform/PlatformExport.h" + +namespace blink { +PLATFORM_EXPORT void RGBAtoRGBScalar(const unsigned char* pixels, + unsigned pixelCount, + unsigned char* output); +#ifdef __ARM_NEON__ +PLATFORM_EXPORT void RGBAtoRGBNeon(const unsigned char* input, + const unsigned pixelCount, + unsigned char* output); +#endif + +} // namespace blink + +#endif
diff --git a/third_party/WebKit/Source/web/tests/WebViewTest.cpp b/third_party/WebKit/Source/web/tests/WebViewTest.cpp index 896cd506..917fb31 100644 --- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp +++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
@@ -3141,19 +3141,17 @@ "font-weight: normal; letter-spacing: " "normal; orphans: 2; text-align: start; " "text-indent: 0px; text-transform: none; white-space: normal; widows: " - "2; word-spacing: 0px; -webkit-text-stroke-width: 0px; caret-color: " - "auto; text-decoration-style: initial; text-decoration-color: initial;" - "\">Air conditioner</div><div id=\"div5\" style=\"padding: 10px; margin: " - "10px; border: 2px solid skyblue; float: left; width: " - "190px; height: 30px; color: rgb(0, 0, 0); font-family: myahem; " - "font-size: 8px; font-style: normal; font-variant-ligatures: normal; " - "font-variant-caps: normal; font-weight: normal; " - "letter-spacing: normal; orphans: 2; " - "text-align: start; text-indent: 0px; text-transform: " - "none; white-space: normal; widows: 2; word-spacing: 0px; " - "-webkit-text-stroke-width: 0px; caret-color: auto; " - "text-decoration-style: initial; text-decoration-color: initial;\">" - "Price 10,000,000won</div>"; + "2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " + "text-decoration-style: initial; text-decoration-color: initial;\">Air " + "conditioner</div><div id=\"div5\" style=\"padding: 10px; margin: 10px; " + "border: 2px solid skyblue; float: left; width: 190px; height: 30px; " + "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: " + "normal; font-variant-ligatures: normal; font-variant-caps: normal; " + "font-weight: normal; letter-spacing: normal; orphans: 2; text-align: " + "start; text-indent: 0px; text-transform: none; white-space: normal; " + "widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " + "text-decoration-style: initial; text-decoration-color: initial;\">Price " + "10,000,000won</div>"; WebString clipText; WebString clipHtml; WebRect clipRect; @@ -3182,18 +3180,17 @@ "font-weight: normal; letter-spacing: " "normal; orphans: 2; text-align: start; " "text-indent: 0px; text-transform: none; white-space: normal; widows: " - "2; word-spacing: 0px; -webkit-text-stroke-width: 0px; caret-color: " - "auto; text-decoration-style: initial; text-decoration-color: initial;" - "\">Air conditioner</div><div id=\"div5\" style=\"padding: 10px; margin: " - "10px; border: 2px solid skyblue; float: left; width: " - "190px; height: 30px; color: rgb(0, 0, 0); font-family: myahem; " - "font-size: 8px; font-style: normal; font-variant-ligatures: normal; " - "font-variant-caps: normal; font-weight: normal; letter-spacing: normal; " - "orphans: 2; text-align: start; text-indent: 0px; " - "text-transform: none; white-space: normal; widows: 2; " - "word-spacing: 0px; -webkit-text-stroke-width: 0px; caret-color: auto; " - "text-decoration-style: initial; text-decoration-color: initial;\">" - "Price 10,000,000won</div>"; + "2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " + "text-decoration-style: initial; text-decoration-color: initial;\">Air " + "conditioner</div><div id=\"div5\" style=\"padding: 10px; margin: 10px; " + "border: 2px solid skyblue; float: left; width: 190px; height: 30px; " + "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: " + "normal; font-variant-ligatures: normal; font-variant-caps: normal; " + "font-weight: normal; letter-spacing: normal; orphans: 2; text-align: " + "start; text-indent: 0px; text-transform: none; white-space: normal; " + "widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " + "text-decoration-style: initial; text-decoration-color: initial;\">Price " + "10,000,000won</div>"; WebString clipText; WebString clipHtml; WebRect clipRect;
diff --git a/ui/gfx/vector_icons/BUILD.gn b/ui/gfx/vector_icons/BUILD.gn index ab991a75..0645973a 100644 --- a/ui/gfx/vector_icons/BUILD.gn +++ b/ui/gfx/vector_icons/BUILD.gn
@@ -20,6 +20,9 @@ "bar_close.icon", "blocked_badge.icon", "bluetooth_connected.icon", + "browser_tools.icon", + "browser_tools_error.icon", + "browser_tools_update.icon", "business.icon", "check_circle.1x.icon", "check_circle.icon", @@ -85,6 +88,16 @@ "mixed_content.icon", "mode_edit.icon", "my_location.icon", + "navigate_back.1x.icon", + "navigate_back.icon", + "navigate_forward.1x.icon", + "navigate_forward.icon", + "navigate_home.1x.icon", + "navigate_home.icon", + "navigate_reload.1x.icon", + "navigate_reload.icon", + "navigate_stop.1x.icon", + "navigate_stop.icon", "notifications.icon", "notifications_off.icon", "omnibox_calculator.1x.icon",
diff --git a/chrome/app/vector_icons/browser_tools.icon b/ui/gfx/vector_icons/browser_tools.icon similarity index 100% rename from chrome/app/vector_icons/browser_tools.icon rename to ui/gfx/vector_icons/browser_tools.icon
diff --git a/chrome/app/vector_icons/browser_tools_error.icon b/ui/gfx/vector_icons/browser_tools_error.icon similarity index 100% rename from chrome/app/vector_icons/browser_tools_error.icon rename to ui/gfx/vector_icons/browser_tools_error.icon
diff --git a/chrome/app/vector_icons/browser_tools_update.icon b/ui/gfx/vector_icons/browser_tools_update.icon similarity index 100% rename from chrome/app/vector_icons/browser_tools_update.icon rename to ui/gfx/vector_icons/browser_tools_update.icon
diff --git a/chrome/app/vector_icons/navigate_back.1x.icon b/ui/gfx/vector_icons/navigate_back.1x.icon similarity index 100% rename from chrome/app/vector_icons/navigate_back.1x.icon rename to ui/gfx/vector_icons/navigate_back.1x.icon
diff --git a/chrome/app/vector_icons/navigate_back.icon b/ui/gfx/vector_icons/navigate_back.icon similarity index 100% rename from chrome/app/vector_icons/navigate_back.icon rename to ui/gfx/vector_icons/navigate_back.icon
diff --git a/chrome/app/vector_icons/navigate_forward.1x.icon b/ui/gfx/vector_icons/navigate_forward.1x.icon similarity index 100% rename from chrome/app/vector_icons/navigate_forward.1x.icon rename to ui/gfx/vector_icons/navigate_forward.1x.icon
diff --git a/chrome/app/vector_icons/navigate_forward.icon b/ui/gfx/vector_icons/navigate_forward.icon similarity index 100% rename from chrome/app/vector_icons/navigate_forward.icon rename to ui/gfx/vector_icons/navigate_forward.icon
diff --git a/chrome/app/vector_icons/navigate_home.1x.icon b/ui/gfx/vector_icons/navigate_home.1x.icon similarity index 100% rename from chrome/app/vector_icons/navigate_home.1x.icon rename to ui/gfx/vector_icons/navigate_home.1x.icon
diff --git a/chrome/app/vector_icons/navigate_home.icon b/ui/gfx/vector_icons/navigate_home.icon similarity index 100% rename from chrome/app/vector_icons/navigate_home.icon rename to ui/gfx/vector_icons/navigate_home.icon
diff --git a/chrome/app/vector_icons/navigate_reload.1x.icon b/ui/gfx/vector_icons/navigate_reload.1x.icon similarity index 100% rename from chrome/app/vector_icons/navigate_reload.1x.icon rename to ui/gfx/vector_icons/navigate_reload.1x.icon
diff --git a/chrome/app/vector_icons/navigate_reload.icon b/ui/gfx/vector_icons/navigate_reload.icon similarity index 100% rename from chrome/app/vector_icons/navigate_reload.icon rename to ui/gfx/vector_icons/navigate_reload.icon
diff --git a/chrome/app/vector_icons/navigate_stop.1x.icon b/ui/gfx/vector_icons/navigate_stop.1x.icon similarity index 100% rename from chrome/app/vector_icons/navigate_stop.1x.icon rename to ui/gfx/vector_icons/navigate_stop.1x.icon
diff --git a/chrome/app/vector_icons/navigate_stop.icon b/ui/gfx/vector_icons/navigate_stop.icon similarity index 100% rename from chrome/app/vector_icons/navigate_stop.icon rename to ui/gfx/vector_icons/navigate_stop.icon
diff --git a/ui/views/controls/button/vector_icon_button.cc b/ui/views/controls/button/vector_icon_button.cc index b3dbca9..2c6b70d4 100644 --- a/ui/views/controls/button/vector_icon_button.cc +++ b/ui/views/controls/button/vector_icon_button.cc
@@ -44,19 +44,10 @@ } } -void VectorIconButton::SetIcon(const gfx::VectorIcon& icon) { - icon_ = &icon; - SetIcon(gfx::VectorIconId::VECTOR_ICON_NONE); -} - void VectorIconButton::OnThemeChanged() { SkColor icon_color = color_utils::DeriveDefaultIconColor(delegate_->GetVectorIconBaseColor()); - gfx::ImageSkia image; - if (icon_) - image = gfx::CreateVectorIcon(*icon_, icon_color); - else - image = gfx::CreateVectorIcon(id_, icon_color); + gfx::ImageSkia image = gfx::CreateVectorIcon(id_, icon_color); SetImage(views::CustomButton::STATE_NORMAL, &image); image = gfx::CreateVectorIcon(id_, SkColorSetA(icon_color, 0xff / 2)); SetImage(views::CustomButton::STATE_DISABLED, &image);
diff --git a/ui/views/controls/button/vector_icon_button.h b/ui/views/controls/button/vector_icon_button.h index 8a99ae0e..dd994051 100644 --- a/ui/views/controls/button/vector_icon_button.h +++ b/ui/views/controls/button/vector_icon_button.h
@@ -9,7 +9,6 @@ #include "ui/views/controls/button/image_button.h" namespace gfx { -struct VectorIcon; enum class VectorIconId; } @@ -25,11 +24,8 @@ ~VectorIconButton() override; // Sets the icon to display and provides a callback which should return the - // text color from which to derive this icon's color. The one that takes an ID - // is deprecated and should be removed when all vector icons are identified by - // VectorIcon structs. + // text color from which to derive this icon's color. void SetIcon(gfx::VectorIconId id); - void SetIcon(const gfx::VectorIcon& icon); // views::ImageButton: void OnThemeChanged() override; @@ -37,10 +33,7 @@ private: VectorIconButtonDelegate* delegate_; - // TODO(estade): remove |id_| in favor of |icon_| once all callers have been - // updated. gfx::VectorIconId id_; - const gfx::VectorIcon* icon_ = nullptr; DISALLOW_COPY_AND_ASSIGN(VectorIconButton); };