WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-124981-20131203190026.patch (text/plain), 48.83 KB, created by
Thiago de Barros Lacerda
on 2013-12-03 14:00:28 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Thiago de Barros Lacerda
Created:
2013-12-03 14:00:28 PST
Size:
48.83 KB
patch
obsolete
>Subversion Revision: 160029 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index a89bc7794ff611a1b9ceac145454074c6767b407..16ca192ca92ed86676f8b623fd37d853ad623e5b 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,105 @@ >+2013-12-03 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> >+ >+ Nix Upstream: Updating WebCore files >+ https://bugs.webkit.org/show_bug.cgi?id=124981 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Just to sync our github repo files and the trunk, as part of the upstream process >+ >+ No new tests needed. >+ >+ * PlatformNix.cmake: >+ * css/mediaControlsNix.css: >+ (audio): >+ (video::-webkit-media-controls): >+ (audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure): >+ (video::-webkit-media-controls-enclosure): >+ (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel): >+ (video:-webkit-full-page-media): >+ (audio:-webkit-full-page-media, video:-webkit-full-page-media): >+ (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button): >+ (audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button): >+ (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button): >+ (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container): >+ (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display): >+ (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): >+ (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider): >+ (input[type="range"]::-webkit-media-slider-container): >+ (input[type="range"]::-webkit-media-slider-container > div): >+ (input[type="range"]::-webkit-media-slider-thumb): >+ (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button): >+ (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button): >+ (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button): >+ (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button): >+ (audio::-webkit-media-controls-fullscreen-volume-slider, video::-webkit-media-controls-fullscreen-volume-slider): >+ (audio::-webkit-media-controls-fullscreen-volume-min-button, video::-webkit-media-controls-fullscreen-volume-min-button): >+ (audio::-webkit-media-controls-fullscreen-volume-max-button, video::-webkit-media-controls-fullscreen-volume-max-button): >+ (video::-webkit-media-text-track-container): >+ (video::cue): >+ (video::-webkit-media-text-track-region): >+ (video::-webkit-media-text-track-region-container): >+ (video::-webkit-media-text-track-region-container.scrolling): >+ (video::-webkit-media-text-track-display): >+ (video::cue(:future)): >+ (video::-webkit-media-text-track-container b): >+ (video::-webkit-media-text-track-container u): >+ (video::-webkit-media-text-track-container i): >+ * editing/Editor.cpp: >+ (WebCore::Editor::cut): >+ (WebCore::Editor::copy): >+ (WebCore::Editor::copyImage): >+ * editing/Editor.h: >+ * html/HTMLCanvasElement.h: >+ * platform/Cursor.h: >+ * platform/audio/FFTFrame.h: >+ * platform/audio/nix/AudioBusNix.cpp: >+ (WebCore::AudioBus::loadPlatformResource): >+ * platform/graphics/GLContext.h: >+ * platform/nix/CursorNix.cpp: >+ (WebCore::Cursor::ensurePlatformCursor): >+ * platform/nix/GamepadsNix.cpp: >+ (WebCore::sampleGamepads): >+ * platform/nix/RenderThemeNix.cpp: >+ (WebCore::toIntSize): >+ (WebCore::toNixRect): >+ (WebCore::RenderThemeNix::platformActiveSelectionBackgroundColor): >+ (WebCore::RenderThemeNix::platformInactiveSelectionBackgroundColor): >+ (WebCore::RenderThemeNix::platformActiveSelectionForegroundColor): >+ (WebCore::RenderThemeNix::platformInactiveSelectionForegroundColor): >+ (WebCore::RenderThemeNix::platformActiveListBoxSelectionBackgroundColor): >+ (WebCore::RenderThemeNix::platformInactiveListBoxSelectionBackgroundColor): >+ (WebCore::RenderThemeNix::platformActiveListBoxSelectionForegroundColor): >+ (WebCore::RenderThemeNix::platformInactiveListBoxSelectionForegroundColor): >+ (WebCore::RenderThemeNix::platformActiveTextSearchHighlightColor): >+ (WebCore::RenderThemeNix::platformInactiveTextSearchHighlightColor): >+ (WebCore::RenderThemeNix::platformFocusRingColor): >+ (WebCore::RenderThemeNix::platformTapHighlightColor): >+ (WebCore::RenderThemeNix::paintButton): >+ (WebCore::RenderThemeNix::paintTextField): >+ (WebCore::RenderThemeNix::paintCheckbox): >+ (WebCore::RenderThemeNix::setCheckboxSize): >+ (WebCore::RenderThemeNix::paintRadio): >+ (WebCore::RenderThemeNix::setRadioSize): >+ (WebCore::RenderThemeNix::paintMenuList): >+ (WebCore::RenderThemeNix::paintProgressBar): >+ (WebCore::RenderThemeNix::paintSliderTrack): >+ (WebCore::RenderThemeNix::paintSliderThumb): >+ (WebCore::RenderThemeNix::paintInnerSpinButton): >+ (WebCore::RenderThemeNix::paintMeter): >+ (WebCore::RenderThemeNix::extraMediaControlsStyleSheet): >+ (WebCore::RenderThemeNix::paintMediaPlayButton): >+ (WebCore::RenderThemeNix::paintMediaMuteButton): >+ (WebCore::RenderThemeNix::paintMediaSeekBackButton): >+ (WebCore::RenderThemeNix::paintMediaSeekForwardButton): >+ (WebCore::RenderThemeNix::paintMediaSliderTrack): >+ (WebCore::RenderThemeNix::paintMediaVolumeSliderContainer): >+ (WebCore::RenderThemeNix::paintMediaVolumeSliderTrack): >+ (WebCore::RenderThemeNix::paintMediaRewindButton): >+ * platform/nix/RenderThemeNix.h: >+ * rendering/SimpleLineLayout.cpp: >+ (WebCore::SimpleLineLayout::canUseFor): >+ > 2013-12-03 Alexey Proskuryakov <ap@apple.com> > > Support exporting private WebCrypto RSA keys >diff --git a/Source/WebCore/PlatformNix.cmake b/Source/WebCore/PlatformNix.cmake >index 69997805e60e0355081751d88905bb7e9e74a50b..1d52700bd37874878dc15e6f63425c91d5b9cffb 100644 >--- a/Source/WebCore/PlatformNix.cmake >+++ b/Source/WebCore/PlatformNix.cmake >@@ -4,24 +4,16 @@ list(APPEND WebCore_INCLUDE_DIRECTORIES > "${WEBCORE_DIR}/platform/graphics/cairo" > "${WEBCORE_DIR}/platform/graphics/freetype" > "${WEBCORE_DIR}/platform/graphics/glx" >- "${WEBCORE_DIR}/platform/graphics/harfbuzz/" >- "${WEBCORE_DIR}/platform/graphics/harfbuzz/ng" > "${WEBCORE_DIR}/platform/graphics/nix" > "${WEBCORE_DIR}/platform/graphics/opengl" > "${WEBCORE_DIR}/platform/graphics/opentype" > "${WEBCORE_DIR}/platform/graphics/surfaces" >- "${WEBCORE_DIR}/platform/graphics/texmap" > "${WEBCORE_DIR}/platform/linux" > "${WEBCORE_DIR}/platform/mediastream/gstreamer" > "${PLATFORM_DIR}/nix/" > ) > > list(APPEND WebCore_SOURCES >- css/WebKitCSSArrayFunctionValue.cpp >- css/WebKitCSSMatFunctionValue.cpp >- css/WebKitCSSMatrix.cpp >- css/WebKitCSSMixFunctionValue.cpp >- > editing/SmartReplaceICU.cpp > > editing/nix/EditorNix.cpp >@@ -35,12 +27,9 @@ list(APPEND WebCore_SOURCES > platform/ContextMenuItemNone.cpp > platform/ContextMenuNone.cpp > platform/Cursor.cpp >- platform/LocalizedStrings.cpp >- platform/PlatformStrategies.cpp > > platform/cairo/WidgetBackingStoreCairo.cpp > >- platform/graphics/ImageSource.cpp > platform/graphics/OpenGLShims.cpp > platform/graphics/WOFFFileFormat.cpp > >@@ -64,9 +53,6 @@ list(APPEND WebCore_SOURCES > platform/graphics/cairo/TiledBackingStoreBackendCairo.cpp > platform/graphics/cairo/TransformationMatrixCairo.cpp > >- platform/graphics/filters/CustomFilterMeshGenerator.cpp >- platform/graphics/filters/CustomFilterValidatedProgram.cpp >- > platform/graphics/freetype/FontCacheFreeType.cpp > platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp > platform/graphics/freetype/FontPlatformDataFreeType.cpp >@@ -93,24 +79,8 @@ list(APPEND WebCore_SOURCES > platform/gtk/LoggingGtk.cpp > platform/gtk/SharedBufferGtk.cpp > >- platform/image-decoders/ImageDecoder.cpp >- >- platform/image-decoders/bmp/BMPImageDecoder.cpp >- platform/image-decoders/bmp/BMPImageReader.cpp >- > platform/image-decoders/cairo/ImageDecoderCairo.cpp > >- platform/image-decoders/gif/GIFImageDecoder.cpp >- platform/image-decoders/gif/GIFImageReader.cpp >- >- platform/image-decoders/ico/ICOImageDecoder.cpp >- >- platform/image-decoders/jpeg/JPEGImageDecoder.cpp >- >- platform/image-decoders/png/PNGImageDecoder.cpp >- >- platform/image-decoders/webp/WEBPImageDecoder.cpp >- > platform/linux/GamepadDeviceLinux.cpp > > platform/nix/CursorNix.cpp >@@ -139,17 +109,9 @@ list(APPEND WebCore_SOURCES > > platform/text/nix/TextBreakIteratorInternalICUNix.cpp > >- plugins/PluginDatabase.cpp >- plugins/PluginDebug.cpp > plugins/PluginPackage.cpp > plugins/PluginPackageNone.cpp >- plugins/PluginStream.cpp >- plugins/PluginView.cpp > plugins/PluginViewNone.cpp >- >- rendering/style/StyleCachedShader.cpp >- rendering/style/StyleCustomFilterProgram.cpp >- rendering/style/StyleCustomFilterProgramCache.cpp > ) > > if (WTF_USE_OPENGL_ES_2) >@@ -186,8 +148,8 @@ if (WTF_USE_EGL) > list(APPEND WebCore_LIBRARIES ${EGL_LIBRARY}) > else () > list(APPEND WebCore_INCLUDE_DIRECTORIES >- platform/graphics/surfaces/glx > platform/graphics/surfaces/efl >+ platform/graphics/surfaces/glx > ${X11_X11_INCLUDE_PATH} > ) > list(APPEND WebCore_SOURCES >@@ -226,7 +188,7 @@ list(APPEND WebCore_USER_AGENT_STYLE_SHEETS > list(APPEND WebCore_LIBRARIES > ${CAIRO_LIBRARIES} > ${FONTCONFIG_LIBRARIES} >- ${FREETYPE_LIBRARIES} >+ ${FREETYPE2_LIBRARIES} > ${GLIB_GIO_LIBRARIES} > ${GLIB_GMODULE_LIBRARIES} > ${GLIB_GOBJECT_LIBRARIES} >@@ -242,15 +204,15 @@ list(APPEND WebCore_LIBRARIES > ) > > list(APPEND WebCore_INCLUDE_DIRECTORIES >- ${FONTCONFIG_INCLUDE_DIR} > ${CAIRO_INCLUDE_DIRS} >- ${FREETYPE_INCLUDE_DIRS} >+ ${FONTCONFIG_INCLUDE_DIR} >+ ${FREETYPE2_INCLUDE_DIRS} >+ ${GLIB_INCLUDE_DIRS} >+ ${HARFBUZZ_INCLUDE_DIRS} > ${LIBXML2_INCLUDE_DIR} > ${LIBXSLT_INCLUDE_DIR} > ${SQLITE_INCLUDE_DIR} >- ${GLIB_INCLUDE_DIRS} > ${ZLIB_INCLUDE_DIRS} >- ${HARFBUZZ_INCLUDE_DIRS} > ) > > add_definitions(-DDATA_DIR="${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}") >@@ -284,6 +246,8 @@ if (WTF_USE_CURL) > platform/network/curl/CookieNode.cpp > platform/network/curl/CookieStorageCurl.cpp > platform/network/curl/CredentialStorageCurl.cpp >+ platform/network/curl/CurlCacheEntry.cpp >+ platform/network/curl/CurlCacheManager.cpp > platform/network/curl/DNSCurl.cpp > platform/network/curl/FormDataStreamCurl.cpp > platform/network/curl/MultipartHandle.cpp >@@ -291,12 +255,14 @@ if (WTF_USE_CURL) > platform/network/curl/ProxyServerCurl.cpp > platform/network/curl/ResourceHandleCurl.cpp > platform/network/curl/ResourceHandleManager.cpp >+ platform/network/curl/SSLHandle.cpp > platform/network/curl/SocketStreamHandleCurl.cpp > platform/network/curl/SynchronousLoaderClientCurl.cpp > ) > > list(APPEND WebCore_LIBRARIES > ${CURL_LIBRARIES} >+ ${OPENSSL_LIBRARIES} > ) > else () > list(APPEND WebCore_SOURCES >diff --git a/Source/WebCore/css/mediaControlsNix.css b/Source/WebCore/css/mediaControlsNix.css >index b5b366527b7e058194c541715ef5788ed027749b..095680c2e44742a5d52f04dc6cadcce4f9ff76eb 100644 >--- a/Source/WebCore/css/mediaControlsNix.css >+++ b/Source/WebCore/css/mediaControlsNix.css >@@ -1,7 +1,7 @@ > /* >- * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. >- * Copyright (C) 2011 Samsung Electronics >- * Copyright (C) 2012-2013 Nokia Corporation and/or its subsidiary(-ies). >+ * Copyright (C) 2009 Apple Inc. All rights reserved. >+ * Copyright (C) 2009 Google Inc. >+ * Copyright (C) 2012, 2013 Nokia Corporation and/or its subsidiary(-ies). > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -24,127 +24,218 @@ > * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > >-/* NixWebKit media controls. Extends mediaControls.css */ >+/* Nix default media controls */ > > audio { > width: 300px; >- height: 20px; >+ height: 30px; >+} >+ >+audio::-webkit-media-controls, >+video::-webkit-media-controls { >+ width: inherit; >+ height: inherit; >+ position: relative; >+ direction: ltr; >+ display: flex; >+ flex-direction: row; >+ justify-content: flex-end; >+ align-items: center; >+} >+ >+audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure { >+ width: 100%; >+ max-width: 800px; >+ height: 30px; >+ flex-shrink: 0; >+ bottom: 0; >+ text-indent: 0; >+ padding: 0; >+ box-sizing: border-box; >+} >+ >+video::-webkit-media-controls-enclosure { >+ padding: 0px 5px 5px 5px; >+ height: 35px; >+ flex-shrink: 0; > } > > audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel { >- display: -webkit-box; >- -webkit-box-orient: horizontal; >- -webkit-box-align: center; >+ display: flex; >+ flex-direction: row; >+ align-items: center; >+ /* We use flex-start here to ensure that the play button is visible even >+ * if we are too small to show all controls. >+ */ >+ justify-content: flex-start; > -webkit-user-select: none; > position: relative; >- bottom: 0; > width: 100%; > z-index: 0; > overflow: hidden; >- height: 20px; > text-align: right; >+ bottom: auto; >+ height: 30px; >+ background-color: rgba(20, 20, 20, 0.8); >+ border-radius: 5px; >+} >+ >+video:-webkit-full-page-media { >+ margin: auto; >+ position: absolute; >+ top: 0; >+ right: 0; >+ bottom: 0; >+ left: 0; > } > >+audio:-webkit-full-page-media, video:-webkit-full-page-media { >+ max-height: 100%; >+ max-width: 100%; >+} >+ >+audio:-webkit-full-page-media::-webkit-media-controls-panel, > video:-webkit-full-page-media::-webkit-media-controls-panel { > bottom: 0px; > } > > audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button { > -webkit-appearance: media-mute-button; >- display: -webkit-box; >- width: 20px; >- height: 20px; >- position: relative; >- z-index: 2; >+ display: flex; >+ flex: none; >+ border: none; >+ box-sizing: border-box; >+ width: 35px; >+ height: 30px; >+ line-height: 30px; >+ margin: 0 6px 0 0; >+ padding: 0; > background-color: initial; >- border: initial; > color: inherit; > } > >+audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button { >+ display: none; >+} >+ > audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button { > -webkit-appearance: media-play-button; >- display: -webkit-box; >- width: 20px; >- height: 20px; >+ display: flex; >+ flex: none; >+ border: none; >+ box-sizing: border-box; >+ width: 30px; >+ height: 30px; >+ line-height: 30px; >+ margin-left: 9px; >+ margin-right: 9px; >+ padding: 0; > background-color: initial; >- border: initial; > color: inherit; > } > > audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container { > -webkit-appearance: media-controls-background; >- display: -webkit-box; >- -webkit-box-orient: horizontal; >- -webkit-box-align: center; >- -webkit-box-pack: end; >- -webkit-box-flex: 1; >+ display: flex; >+ flex-direction: row; >+ align-items: center; >+ justify-content: flex-end; >+ flex: 1 1; > -webkit-user-select: none; >- height: 20px; >+ height: 16px; >+ min-width: 0; > } > >-audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display { >+audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display, >+audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display { > -webkit-appearance: media-current-time-display; > -webkit-user-select: none; >- display: -webkit-box; >- height: 20px; >+ -webkit-flex: none; >+ display: -webkit-flex; >+ border: none; >+ cursor: default; > >- padding: 4px; >+ height: 30px; >+ margin: 0 9px 0 0; >+ padding: 0; > >- text-align: center; >- font-size: 10px; >+ line-height: 30px; >+ font-family: Arial, Helvetica, sans-serif; >+ font-size: 13px; >+ font-weight: bold; >+ font-style: normal; >+ color: white; > >- color: black; > letter-spacing: normal; > word-spacing: normal; >- line-height: normal; >+ text-align: center > text-transform: none; > text-indent: 0; > text-shadow: none; > text-decoration: none; >- font-style: normal; >- font-weight: normal; >- font-family: serif; >-} >- >-audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display { >- display: none; > } > > audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline { > -webkit-appearance: media-slider; >- display: -webkit-box; >- -webkit-box-flex: 1; >- height: 20px; >- padding: 0px 2px; >- background-color: initial; >+ display: flex; >+ flex: 1 1 auto; >+ height: 8px; >+ margin: 0 15px 0 0; >+ padding: 0; >+ background-color: black; >+ min-width: 25px; > border: initial; >+ border-radius: 4px; > color: inherit; >- margin: initial; >-} >- >-audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container { >- -webkit-appearance: media-volume-slider-container; >- position: absolute; >- height: 100px; >- width: 20px; >- bottom: 20px; >- z-index: 1; > } > > audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider { > -webkit-appearance: media-volume-slider; >- display: none; >- background-color: initial; >+ display: flex; >+ /* The 1.9 value was empirically chosen to match old-flexbox behaviour >+ * and be aesthetically pleasing. >+ */ >+ flex: 1 1.9 auto; >+ height: 8px; >+ max-width: 70px; >+ margin: 0 15px 0 0; >+ padding: 0; >+ min-width: 15px; > border: initial; > color: inherit; >- margin: initial; >+ background-color: black; >+ border-radius: 4px; >+} >+ >+input[type="range"]::-webkit-media-slider-container { >+ display: flex; >+ align-items: center; >+ flex-direction: row; /* This property is updated by C++ code. */ >+ box-sizing: border-box; >+ height: 100%; >+ width: 100%; >+ border: 1px solid rgba(230, 230, 230, 0.35); >+ border-radius: 4px; >+ background-color: transparent; /* Background drawing is managed by C++ code to draw ranges. */ >+} >+ >+/* The negative right margin causes the track to overflow its container. */ >+input[type="range"]::-webkit-media-slider-container > div { >+ margin-right: -14px; >+} >+ >+input[type="range"]::-webkit-media-slider-thumb { >+ margin-left: -7px; >+ margin-right: -7px; >+ background-color: white; >+ border-radius: 3px; > } > > audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button { > -webkit-appearance: media-seek-back-button; >- display: -webkit-box; >- width: 20px; >- height: 20px; >+ display: flex; >+ width: 16px; >+ height: 16px; > background-color: initial; > border: initial; > color: inherit; >@@ -152,21 +243,27 @@ audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-se > > audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button { > -webkit-appearance: media-seek-forward-button; >- display: -webkit-box; >- width: 20px; >- height: 20px; >+ display: flex; >+ width: 16px; >+ height: 16px; > background-color: initial; > border: initial; > color: inherit; > } > > audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button { >- -webkit-appearance: media-fullscreen-button; >- display: -webkit-box; >- width: 20px; >- height: 20px; >+ -webkit-appearance: media-enter-fullscreen-button; >+ display: flex; >+ flex: none; >+ border: none; >+ box-sizing: border-box; >+ width: 30px; >+ height: 30px; >+ line-height: 30px; >+ margin-left: -5px; >+ margin-right: 9px; >+ padding: 0; > background-color: initial; >- border: initial; > color: inherit; > } > >@@ -186,11 +283,17 @@ audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-co > > audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button { > -webkit-appearance: media-toggle-closed-captions-button; >- display: -webkit-box; >- width: 20px; >- height: 20px; >+ display: flex; >+ flex: none; >+ border: none; >+ box-sizing: border-box; >+ width: 30px; >+ height: 30px; >+ line-height: 30px; >+ margin-left: -5px; >+ margin-right: 9px; >+ padding: 0; > background-color: initial; >- border: initial; > color: inherit; > } > >@@ -201,3 +304,92 @@ audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-co > border: initial; > color: inherit; > } >+ >+audio::-webkit-media-controls-fullscreen-volume-slider, video::-webkit-media-controls-fullscreen-volume-slider { >+ display: none; >+} >+ >+audio::-webkit-media-controls-fullscreen-volume-min-button, video::-webkit-media-controls-fullscreen-volume-min-button { >+ display: none; >+} >+ >+audio::-webkit-media-controls-fullscreen-volume-max-button, video::-webkit-media-controls-fullscreen-volume-max-button { >+ display: none; >+} >+ >+video::-webkit-media-text-track-container { >+ position: relative; >+ width: 100%; >+ overflow: hidden; >+ padding-bottom: 5px; >+ >+ font: 22px sans-serif; >+ text-align: center; >+ color: rgba(255, 255, 255, 1); >+ >+ letter-spacing: normal; >+ word-spacing: normal; >+ text-transform: none; >+ text-indent: 0; >+ text-decoration: none; >+ pointer-events: none; >+ -webkit-user-select: none; >+ word-break: break-word; >+ >+ flex: 1 1; >+} >+ >+video::cue { >+ display: inline; >+ >+ background-color: rgba(0, 0, 0, 0.8); >+ padding: 2px 2px; >+} >+ >+video::-webkit-media-text-track-region { >+ position: absolute; >+ line-height: 5.33vh; >+ writing-mode: horizontal-tb; >+ background: rgba(0, 0, 0, 0.8); >+ color: rgba(255, 255, 255, 1); >+ word-wrap: break-word; >+ overflow-wrap: break-word; >+ overflow: hidden; >+} >+ >+video::-webkit-media-text-track-region-container { >+ position: relative; >+ >+ display: flex; >+ flex-flow: column; >+ flex-direction: column; >+} >+ >+video::-webkit-media-text-track-region-container.scrolling { >+ transition: top 433ms linear; >+} >+ >+ >+video::-webkit-media-text-track-display { >+ position: absolute; >+ overflow: hidden; >+ white-space: pre-wrap; >+ -webkit-box-sizing: border-box; >+ flex: 0 0 auto; >+} >+video::cue(:future) { >+ color: gray; >+} >+ >+video::-webkit-media-text-track-container b { >+ font-weight: bold; >+} >+ >+video::-webkit-media-text-track-container u { >+ text-decoration: underline; >+} >+ >+video::-webkit-media-text-track-container i { >+ font-style: italic; >+} >+ >diff --git a/Source/WebCore/editing/Editor.cpp b/Source/WebCore/editing/Editor.cpp >index 906e866fa254893a822bbb65d82431ec6a2d6c92..bfaf496852298ab3c80e460cdf127bd51afa2245 100644 >--- a/Source/WebCore/editing/Editor.cpp >+++ b/Source/WebCore/editing/Editor.cpp >@@ -435,7 +435,7 @@ String Editor::plainTextFromPasteboard(const PasteboardPlainText& text) > > #endif > >-#if !PLATFORM(MAC) && !PLATFORM(EFL) >+#if !PLATFORM(MAC) && !PLATFORM(EFL) && !PLATFORM(NIX) > void Editor::pasteWithPasteboard(Pasteboard* pasteboard, bool allowPlainText) > { > RefPtr<Range> range = selectedRange(); >@@ -1061,7 +1061,7 @@ void Editor::cut() > if (enclosingTextFormControl(m_frame.selection().start())) > Pasteboard::createForCopyAndPaste()->writePlainText(selectedTextForClipboard(), canSmartCopyOrDelete() ? Pasteboard::CanSmartReplace : Pasteboard::CannotSmartReplace); > else { >-#if PLATFORM(MAC) || PLATFORM(EFL) >+#if PLATFORM(MAC) || PLATFORM(EFL) || PLATFORM(NIX) > writeSelectionToPasteboard(*Pasteboard::createForCopyAndPaste()); > #else > // FIXME: Convert all other platforms to match Mac and delete this. >@@ -1088,13 +1088,13 @@ void Editor::copy() > canSmartCopyOrDelete() ? Pasteboard::CanSmartReplace : Pasteboard::CannotSmartReplace); > } else { > if (HTMLImageElement* imageElement = imageElementFromImageDocument(document())) { >-#if (PLATFORM(MAC) && !PLATFORM(IOS)) || PLATFORM(EFL) >+#if (PLATFORM(MAC) && !PLATFORM(IOS)) || PLATFORM(EFL) || PLATFORM(NIX) > writeImageToPasteboard(*Pasteboard::createForCopyAndPaste(), *imageElement, document().url(), document().title()); > #else > Pasteboard::createForCopyAndPaste()->writeImage(*imageElement, document().url(), document().title()); > #endif > } else { >-#if (PLATFORM(MAC) && !PLATFORM(IOS)) || PLATFORM(EFL) >+#if (PLATFORM(MAC) && !PLATFORM(IOS)) || PLATFORM(EFL) || PLATFORM(NIX) > writeSelectionToPasteboard(*Pasteboard::createForCopyAndPaste()); > #else > // FIXME: Convert all other platforms to match Mac and delete this. >@@ -1197,7 +1197,7 @@ void Editor::copyImage(const HitTestResult& result) > if (url.isEmpty()) > url = result.absoluteImageURL(); > >-#if PLATFORM(MAC) || PLATFORM(EFL) >+#if PLATFORM(MAC) || PLATFORM(EFL) || PLATFORM(NIX) > writeImageToPasteboard(*Pasteboard::createForCopyAndPaste(), *element, url, result.altDisplayString()); > #else > Pasteboard::createForCopyAndPaste()->writeImage(*element, url, result.altDisplayString()); >diff --git a/Source/WebCore/editing/Editor.h b/Source/WebCore/editing/Editor.h >index 9727385e004085e656bec84eeae4b315939be181..d9bb5c59eb57bff69a9b651532bc452bea69516b 100644 >--- a/Source/WebCore/editing/Editor.h >+++ b/Source/WebCore/editing/Editor.h >@@ -409,7 +409,7 @@ public: > PassRefPtr<DocumentFragment> webContentFromPasteboard(Pasteboard&, Range& context, bool allowPlainText, bool& chosePlainText); > #endif > >-#if PLATFORM(MAC) || PLATFORM(EFL) >+#if PLATFORM(MAC) || PLATFORM(EFL) || PLATFORM(NIX) > void writeSelectionToPasteboard(Pasteboard&); > void writeImageToPasteboard(Pasteboard&, Element& imageElement, const URL&, const String& title); > #endif >diff --git a/Source/WebCore/html/HTMLCanvasElement.h b/Source/WebCore/html/HTMLCanvasElement.h >index c421aeec09991a6579f65ffd488bc5499f9525a3..6b503192f2aa5e4c2fb069cc8d5a418d2fd3cac0 100644 >--- a/Source/WebCore/html/HTMLCanvasElement.h >+++ b/Source/WebCore/html/HTMLCanvasElement.h >@@ -33,7 +33,7 @@ > #include "IntSize.h" > #include <wtf/Forward.h> > >-#if USE(CG) >+#if USE(CG) || PLATFORM(NIX) > #define DefaultInterpolationQuality InterpolationLow > #else > #define DefaultInterpolationQuality InterpolationDefault >diff --git a/Source/WebCore/platform/Cursor.h b/Source/WebCore/platform/Cursor.h >index f20fdfab48c1a17be6888f6c7f0aa25e8557dde6..32cdeddb8b32b115112147bd4fc461b33f00cda7 100644 >--- a/Source/WebCore/platform/Cursor.h >+++ b/Source/WebCore/platform/Cursor.h >@@ -77,8 +77,10 @@ namespace WebCore { > typedef NSCursor *PlatformCursor; > #elif PLATFORM(GTK) > typedef GRefPtr<GdkCursor> PlatformCursor; >-#elif PLATFORM(EFL) || PLATFORM(NIX) >+#elif PLATFORM(EFL) > typedef const char* PlatformCursor; >+#elif PLATFORM(NIX) >+ typedef unsigned PlatformCursor; > #elif PLATFORM(BLACKBERRY) > typedef BlackBerry::Platform::BlackBerryCursor PlatformCursor; > #else >diff --git a/Source/WebCore/platform/audio/FFTFrame.h b/Source/WebCore/platform/audio/FFTFrame.h >index 8948f7c9044455ddd42d33dc01dd13ea2eecd65e..924d4749a5208f6409c60916931abf39c6b050cd 100644 >--- a/Source/WebCore/platform/audio/FFTFrame.h >+++ b/Source/WebCore/platform/audio/FFTFrame.h >@@ -184,7 +184,6 @@ private: > #endif // USE(WEBAUDIO_IPP) > > #if PLATFORM(NIX) >- void scalePlanarData(float scale); > OwnPtr<Nix::FFTFrame> m_fftFrame; > #endif // PLATFORM(NIX) > >diff --git a/Source/WebCore/platform/audio/nix/AudioBusNix.cpp b/Source/WebCore/platform/audio/nix/AudioBusNix.cpp >index 721099353a1112f6f2e1367c5c441bfc9f4757b9..a4b76174d7a57171567a91cd819f85905020dbdf 100644 >--- a/Source/WebCore/platform/audio/nix/AudioBusNix.cpp >+++ b/Source/WebCore/platform/audio/nix/AudioBusNix.cpp >@@ -30,6 +30,7 @@ > #include "AudioBus.h" > > #include "AudioFileReader.h" >+#include "FileSystem.h" > #include <cstdio> > #include <public/MultiChannelPCMData.h> > #include <public/Platform.h> >@@ -53,9 +54,11 @@ PassRefPtr<AudioBus> AudioBus::loadPlatformResource(const char* name, float samp > { > // FIXME: This assumes the file system uses latin1 or UTF-8 encoding, but this comment also assumes > // that non-ascii file names would appear here. >- const CString absoluteFilename(makeString(DATA_DIR, "/webaudio/resources/", name, ".wav").utf8()); >+ CString absoluteFilename(makeString(DATA_DIR, "/webaudio/resources/", name, ".wav").utf8()); > struct stat statData; > if (::stat(absoluteFilename.data(), &statData) == -1) >+ absoluteFilename = makeString(UNINSTALLED_AUDIO_RESOURCES_DIR, "/", name, ".wav").utf8(); >+ if (::stat(absoluteFilename.data(), &statData) == -1) > return nullptr; > > FILE* file = fopen(absoluteFilename.data(), "rb"); >@@ -64,7 +67,7 @@ PassRefPtr<AudioBus> AudioBus::loadPlatformResource(const char* name, float samp > > WTF::Vector<char> fileContents; > fileContents.resize(statData.st_size); >- size_t bytesRead = fread(&fileContents[0], fileContents.size(), 1, file); >+ size_t bytesRead = fread(&fileContents[0], 1, fileContents.size(), file); > fclose(file); > if (bytesRead < fileContents.size()) > fileContents.resize(bytesRead); >@@ -88,3 +91,4 @@ PassRefPtr<AudioBus> createBusFromInMemoryAudioFile(const void* data, size_t dat > } // namespace WebCore > > #endif // ENABLE(WEB_AUDIO) >+ >diff --git a/Source/WebCore/platform/graphics/GLContext.h b/Source/WebCore/platform/graphics/GLContext.h >index 03b57b5e8244488a5f9e622f7064598d628f5f23..4e9d39e315da9a582f3ba00af3eba4e6f71d0786 100644 >--- a/Source/WebCore/platform/graphics/GLContext.h >+++ b/Source/WebCore/platform/graphics/GLContext.h >@@ -25,7 +25,7 @@ > #include <wtf/Noncopyable.h> > #include <wtf/PassOwnPtr.h> > >-#if USE(EGL) && !PLATFORM(GTK) >+#if USE(EGL) && !PLATFORM(GTK) && !PLATFORM(NIX) > #include "eglplatform.h" > typedef EGLNativeWindowType GLNativeWindowType; > #else >diff --git a/Source/WebCore/platform/nix/CursorNix.cpp b/Source/WebCore/platform/nix/CursorNix.cpp >index 177ef0cce3be97feaad48f67870556db8a1152c4..eb84b9bcc2c9392a1a3ce363ada836793e545045 100644 >--- a/Source/WebCore/platform/nix/CursorNix.cpp >+++ b/Source/WebCore/platform/nix/CursorNix.cpp >@@ -6,7 +6,7 @@ > * Copyright (C) 2008 Kenneth Rohde Christiansen > * Copyright (C) 2009-2010 ProFUSION embedded systems > * Copyright (C) 2009-2010 Samsung Electronics >- * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). >+ * Copyright (C) 2012, 2013 Nokia Corporation and/or its subsidiary(-ies). > * > * All rights reserved. > * >@@ -35,8 +35,6 @@ > #include "config.h" > #include "Cursor.h" > >-#include "NotImplemented.h" >- > namespace WebCore { > > Cursor::Cursor(const Cursor& other) >@@ -60,61 +58,12 @@ Cursor& Cursor::operator=(const Cursor& other) > return *this; > } > >-static const char* cursorString(Cursor::Type type) >-{ >- static const char* cursorStrings[] = { >- "cursor/pointer", >- "cursor/cross", >- "cursor/hand", >- "cursor/i_beam", >- "cursor/wait", >- "cursor/help", >- "cursor/east_resize", >- "cursor/north_resize", >- "cursor/north_east_resize", >- "cursor/north_west_resize", >- "cursor/south_resize", >- "cursor/south_east_resize", >- "cursor/south_west_resize", >- "cursor/west_resize", >- "cursor/north_south_resize", >- "cursor/east_west_resize", >- "cursor/north_east_south_west_resize", >- "cursor/north_west_south_east_resize", >- "cursor/column_resize", >- "cursor/row_resize", >- "cursor/middle_panning", >- "cursor/east_panning", >- "cursor/north_panning", >- "cursor/north_east_panning", >- "cursor/north_west_panning", >- "cursor/south_panning", >- "cursor/south_east_panning", >- "cursor/south_west_panning", >- "cursor/west_panning", >- "cursor/move", >- "cursor/vertical_text", >- "cursor/cell", >- "cursor/context_menu", >- "cursor/alias", >- "cursor/progress", >- "cursor/no_drop", >- "cursor/copy", >- "cursor/none", >- "cursor/not_allowed", >- "cursor/zoom_in", >- "cursor/zoom_out", >- "cursor/grab", >- "cursor/grabbing", >- ""}; // FIXME: Just return "" for custom type. We don't support it now. >- return cursorStrings[type]; >-} >- > void Cursor::ensurePlatformCursor() const > { > if (m_platformCursor) > return; >- m_platformCursor = cursorString(m_type); >+ m_platformCursor = m_type; > } > >-} >+} // namespace WebCore >+ >diff --git a/Source/WebCore/platform/nix/GamepadsNix.cpp b/Source/WebCore/platform/nix/GamepadsNix.cpp >index 7cbb8ad025f956c24b7111d387860b8a1641270b..140a5aa62f9772bc4201c85184ac790edadcbbf0 100644 >--- a/Source/WebCore/platform/nix/GamepadsNix.cpp >+++ b/Source/WebCore/platform/nix/GamepadsNix.cpp >@@ -1,5 +1,6 @@ > /* > * Copyright (C) 2011, Google Inc. All rights reserved. >+ * Copyright (C) 2012, 2013 Nokia Corporation and/or its subsidiary(-ies). > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions are met: >@@ -47,7 +48,7 @@ void sampleGamepads(GamepadList* into) > RefPtr<Gamepad> gamepad = into->item(i); > if (!gamepad) > gamepad = Gamepad::create(); >- gamepad->id(nixGamepad.id); >+ gamepad->id(String::fromUTF8(nixGamepad.id)); > gamepad->index(i); > gamepad->timestamp(nixGamepad.timestamp); > gamepad->axes(nixGamepad.axesLength, nixGamepad.axes); >@@ -58,6 +59,7 @@ void sampleGamepads(GamepadList* into) > } > } > >-} >+} // namespace WebCore >+ >+#endif // ENABLE(GAMEPAD) > >-#endif >diff --git a/Source/WebCore/platform/nix/RenderThemeNix.cpp b/Source/WebCore/platform/nix/RenderThemeNix.cpp >index 808f00b922ffee5dd9aab378336f0426b0c13e5d..25552567b557559e66610042d733bf6a2c249da8 100644 >--- a/Source/WebCore/platform/nix/RenderThemeNix.cpp >+++ b/Source/WebCore/platform/nix/RenderThemeNix.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2012-2013 Nokia Corporation and/or its subsidiary(-ies). >+ * Copyright (C) 2012, 2013 Nokia Corporation and/or its subsidiary(-ies). > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -26,6 +26,7 @@ > #include "config.h" > #include "RenderThemeNix.h" > >+#include "HTMLMediaElement.h" > #include "InputTypeNames.h" > #include "PaintInfo.h" > #include "PlatformContextCairo.h" >@@ -40,11 +41,10 @@ > #include "HTMLMeterElement.h" > #include "RenderMeter.h" > #endif >+#include "UserAgentStyleSheets.h" > > namespace WebCore { > >-static const unsigned defaultButtonBackgroundColor = 0xffdddddd; >- > static void setSizeIfAuto(RenderStyle* style, const IntSize& size) > { > if (style->width().isIntrinsicOrAuto()) >@@ -53,11 +53,6 @@ static void setSizeIfAuto(RenderStyle* style, const IntSize& size) > style->setHeight(Length(size.height(), Fixed)); > } > >-Color toColor(const Nix::Color& color) >-{ >- return WebCore::Color(RGBA32(color)); >-} >- > static Nix::ThemeEngine* themeEngine() > { > return Nix::Platform::current()->themeEngine(); >@@ -68,6 +63,16 @@ static Nix::Canvas* webCanvas(const PaintInfo& info) > return info.context->platformContext()->cr(); > } > >+static IntSize toIntSize(const Nix::Size& size) >+{ >+ return IntSize(size.width, size.height); >+} >+ >+static Nix::Rect toNixRect(const IntRect& rect) >+{ >+ return Nix::Rect(rect.x(), rect.y(), rect.width(), rect.height()); >+} >+ > PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page*) > { > return RenderThemeNix::create(); >@@ -105,63 +110,63 @@ String RenderThemeNix::extraPlugInsStyleSheet() > > Color RenderThemeNix::platformActiveSelectionBackgroundColor() const > { >- return toColor(themeEngine()->activeSelectionBackgroundColor()); >+ return themeEngine()->activeSelectionBackgroundColor().argb32(); > } > > Color RenderThemeNix::platformInactiveSelectionBackgroundColor() const > { >- return toColor(themeEngine()->inactiveSelectionBackgroundColor()); >+ return themeEngine()->inactiveSelectionBackgroundColor().argb32(); > } > > Color RenderThemeNix::platformActiveSelectionForegroundColor() const > { >- return toColor(themeEngine()->activeSelectionForegroundColor()); >+ return themeEngine()->activeSelectionForegroundColor().argb32(); > } > > Color RenderThemeNix::platformInactiveSelectionForegroundColor() const > { >- return toColor(themeEngine()->inactiveSelectionForegroundColor()); >+ return themeEngine()->inactiveSelectionForegroundColor().argb32(); > } > > Color RenderThemeNix::platformActiveListBoxSelectionBackgroundColor() const > { >- return toColor(themeEngine()->activeListBoxSelectionBackgroundColor()); >+ return themeEngine()->activeListBoxSelectionBackgroundColor().argb32(); > } > > Color RenderThemeNix::platformInactiveListBoxSelectionBackgroundColor() const > { >- return toColor(themeEngine()->inactiveListBoxSelectionBackgroundColor()); >+ return themeEngine()->inactiveListBoxSelectionBackgroundColor().argb32(); > } > > Color RenderThemeNix::platformActiveListBoxSelectionForegroundColor() const > { >- return toColor(themeEngine()->activeListBoxSelectionForegroundColor()); >+ return themeEngine()->activeListBoxSelectionForegroundColor().argb32(); > } > > Color RenderThemeNix::platformInactiveListBoxSelectionForegroundColor() const > { >- return toColor(themeEngine()->inactiveListBoxSelectionForegroundColor()); >+ return themeEngine()->inactiveListBoxSelectionForegroundColor().argb32(); > } > > Color RenderThemeNix::platformActiveTextSearchHighlightColor() const > { >- return toColor(themeEngine()->activeTextSearchHighlightColor()); >+ return themeEngine()->activeTextSearchHighlightColor().argb32(); > } > > Color RenderThemeNix::platformInactiveTextSearchHighlightColor() const > { >- return toColor(themeEngine()->inactiveTextSearchHighlightColor()); >+ return themeEngine()->inactiveTextSearchHighlightColor().argb32(); > } > > Color RenderThemeNix::platformFocusRingColor() const > { >- return toColor(themeEngine()->focusRingColor()); >+ return themeEngine()->focusRingColor().argb32(); > } > > #if ENABLE(TOUCH_EVENTS) > Color RenderThemeNix::platformTapHighlightColor() const > { >- return toColor(themeEngine()->tapHighlightColor()); >+ return themeEngine()->tapHighlightColor().argb32(); > } > #endif > >@@ -186,11 +191,7 @@ bool RenderThemeNix::paintButton(RenderObject* o, const PaintInfo& i, const IntR > Nix::ThemeEngine::ButtonExtraParams extraParams; > extraParams.isDefault = isDefault(o); > extraParams.hasBorder = true; >- extraParams.backgroundColor = defaultButtonBackgroundColor; >- if (o->hasBackground()) >- extraParams.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb(); >- >- themeEngine()->paintButton(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect), extraParams); >+ themeEngine()->paintButton(webCanvas(i), getWebThemeState(this, o), toNixRect(rect), extraParams); > return false; > } > >@@ -198,10 +199,10 @@ bool RenderThemeNix::paintTextField(RenderObject* o, const PaintInfo& i, const I > { > // WebThemeEngine does not handle border rounded corner and background image > // so return true to draw CSS border and background. >- if (o->style()->hasBorderRadius() || o->style()->hasBackgroundImage()) >+ if (o->style().hasBorderRadius() || o->style().hasBackgroundImage()) > return true; > >- themeEngine()->paintTextField(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect)); >+ themeEngine()->paintTextField(webCanvas(i), getWebThemeState(this, o), toNixRect(rect)); > return false; > } > >@@ -216,7 +217,7 @@ bool RenderThemeNix::paintCheckbox(RenderObject* o, const PaintInfo& i, const In > extraParams.checked = isChecked(o); > extraParams.indeterminate = isIndeterminate(o); > >- themeEngine()->paintCheckbox(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect), extraParams); >+ themeEngine()->paintCheckbox(webCanvas(i), getWebThemeState(this, o), toNixRect(rect), extraParams); > return false; > } > >@@ -226,7 +227,7 @@ void RenderThemeNix::setCheckboxSize(RenderStyle* style) const > if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) > return; > >- IntSize size = themeEngine()->getCheckboxSize(); >+ IntSize size = toIntSize(themeEngine()->getCheckboxSize()); > setSizeIfAuto(style, size); > } > >@@ -236,7 +237,7 @@ bool RenderThemeNix::paintRadio(RenderObject* o, const PaintInfo& i, const IntRe > extraParams.checked = isChecked(o); > extraParams.indeterminate = isIndeterminate(o); > >- themeEngine()->paintRadio(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect), extraParams); >+ themeEngine()->paintRadio(webCanvas(i), getWebThemeState(this, o), toNixRect(rect), extraParams); > return false; > } > >@@ -246,13 +247,13 @@ void RenderThemeNix::setRadioSize(RenderStyle* style) const > if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) > return; > >- IntSize size = themeEngine()->getRadioSize(); >+ IntSize size = toIntSize(themeEngine()->getRadioSize()); > setSizeIfAuto(style, size); > } > > bool RenderThemeNix::paintMenuList(RenderObject* o, const PaintInfo& i, const IntRect& rect) > { >- themeEngine()->paintMenuList(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect)); >+ themeEngine()->paintMenuList(webCanvas(i), getWebThemeState(this, o), toNixRect(rect)); > return false; > } > >@@ -286,7 +287,7 @@ bool RenderThemeNix::paintProgressBar(RenderObject* o, const PaintInfo& i, const > extraParams.position = renderProgress->position(); > extraParams.animationProgress = renderProgress->animationProgress(); > extraParams.animationStartTime = renderProgress->animationStartTime(); >- themeEngine()->paintProgressBar(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect), extraParams); >+ themeEngine()->paintProgressBar(webCanvas(i), getWebThemeState(this, o), toNixRect(rect), extraParams); > > return false; > } >@@ -304,7 +305,7 @@ double RenderThemeNix::animationDurationForProgressBar(RenderProgress*) const > > bool RenderThemeNix::paintSliderTrack(RenderObject* object, const PaintInfo& info, const IntRect& rect) > { >- themeEngine()->paintSliderTrack(webCanvas(info), getWebThemeState(this, object), rect); >+ themeEngine()->paintSliderTrack(webCanvas(info), getWebThemeState(this, object), toNixRect(rect)); > #if ENABLE(DATALIST_ELEMENT) > paintSliderTicks(object, info, rect); > #endif >@@ -318,7 +319,7 @@ void RenderThemeNix::adjustSliderTrackStyle(StyleResolver*, RenderStyle* style, > > bool RenderThemeNix::paintSliderThumb(RenderObject* object, const PaintInfo& info, const IntRect& rect) > { >- themeEngine()->paintSliderThumb(webCanvas(info), getWebThemeState(this, object), rect); >+ themeEngine()->paintSliderThumb(webCanvas(info), getWebThemeState(this, object), toNixRect(rect)); > > return false; > } >@@ -388,7 +389,7 @@ bool RenderThemeNix::paintInnerSpinButton(RenderObject* o, const PaintInfo& i, c > extraParams.spinUp = isSpinUpButtonPartPressed(o); > extraParams.readOnly = isReadOnlyControl(o); > >- themeEngine()->paintInnerSpinButton(webCanvas(i), getWebThemeState(this, o), Nix::Rect(rect), extraParams); >+ themeEngine()->paintInnerSpinButton(webCanvas(i), getWebThemeState(this, o), toNixRect(rect), extraParams); > return false; > } > >@@ -432,10 +433,65 @@ bool RenderThemeNix::paintMeter(RenderObject* o, const PaintInfo& i, const IntRe > extraParams.high = e->high(); > extraParams.optimum = e->optimum(); > >- themeEngine()->paintMeter(webCanvas(i), getWebThemeState(this, o), rect, extraParams); >+ themeEngine()->paintMeter(webCanvas(i), getWebThemeState(this, o), toNixRect(rect), extraParams); > > return false; > } > #endif > >+#if ENABLE(VIDEO) >+String RenderThemeNix::extraMediaControlsStyleSheet() >+{ >+ return String(mediaControlsNixUserAgentStyleSheet, sizeof(mediaControlsNixUserAgentStyleSheet)); >+} >+ >+bool RenderThemeNix::paintMediaPlayButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) >+{ >+ auto state = toHTMLMediaElement(o->node()->shadowHost())->canPlay() ? Nix::ThemeEngine::StatePaused : Nix::ThemeEngine::StatePlaying; >+ themeEngine()->paintMediaPlayButton(webCanvas(i), state, toNixRect(rect)); >+ return false; >+} >+ >+bool RenderThemeNix::paintMediaMuteButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) >+{ >+ auto state = toHTMLMediaElement(o->node()->shadowHost())->muted() ? Nix::ThemeEngine::StateMuted : Nix::ThemeEngine::StateNotMuted; >+ themeEngine()->paintMediaMuteButton(webCanvas(i), state, toNixRect(rect)); >+ return false; >+} >+ >+bool RenderThemeNix::paintMediaSeekBackButton(RenderObject*, const PaintInfo& i, const IntRect& rect) >+{ >+ themeEngine()->paintMediaSeekBackButton(webCanvas(i), toNixRect(rect)); >+ return false; >+} >+ >+bool RenderThemeNix::paintMediaSeekForwardButton(RenderObject*, const PaintInfo& i, const IntRect& rect) >+{ >+ themeEngine()->paintMediaSeekForwardButton(webCanvas(i), toNixRect(rect)); >+ return false; >+} >+ >+bool RenderThemeNix::paintMediaSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) >+{ >+ return false; > } >+ >+bool RenderThemeNix::paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo&, const IntRect&) >+{ >+ return false; >+} >+ >+bool RenderThemeNix::paintMediaVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) >+{ >+ return false; >+} >+ >+bool RenderThemeNix::paintMediaRewindButton(RenderObject*, const PaintInfo& i, const IntRect& rect) >+{ >+ themeEngine()->paintMediaRewindButton(webCanvas(i), toNixRect(rect)); >+ return false; >+} >+#endif // ENABLE(VIDEO) >+ >+} // namespace WebCore >+ >diff --git a/Source/WebCore/platform/nix/RenderThemeNix.h b/Source/WebCore/platform/nix/RenderThemeNix.h >index f41d507086ad96305f31d9a6cb95f2e3fe15d0f7..61e5d039fe0fb6c00b2547bebc52a7825071bd16 100644 >--- a/Source/WebCore/platform/nix/RenderThemeNix.h >+++ b/Source/WebCore/platform/nix/RenderThemeNix.h >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2012-2013 Nokia Corporation and/or its subsidiary(-ies). >+ * Copyright (C) 2012, 2013 Nokia Corporation and/or its subsidiary(-ies). > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -103,6 +103,22 @@ protected: > virtual bool paintMeter(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; > #endif > >+#if ENABLE(VIDEO) >+ virtual String extraMediaControlsStyleSheet() OVERRIDE; >+ virtual bool usesVerticalVolumeSlider() const OVERRIDE { return false; } >+ virtual bool usesMediaControlStatusDisplay() OVERRIDE { return true; } >+ virtual bool usesMediaControlVolumeSlider() const OVERRIDE { return false; } >+ >+ virtual bool paintMediaPlayButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaMuteButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaSeekBackButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaSeekForwardButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+ virtual bool paintMediaRewindButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; >+#endif >+ > virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE; > virtual void adjustSliderTrackStyle(StyleResolver*, RenderStyle*, Element*) const OVERRIDE; > >@@ -123,6 +139,6 @@ private: > RenderThemeNix(); > }; > >-} >+} // namespace WebCore > > #endif // RenderThemeNix_h >diff --git a/Source/WebCore/rendering/SimpleLineLayout.cpp b/Source/WebCore/rendering/SimpleLineLayout.cpp >index 90217114b45916e9c54608391dfd7c91a2bb56b1..97072d11fd5082e26f36c799ec7be81e5dd9f885 100644 >--- a/Source/WebCore/rendering/SimpleLineLayout.cpp >+++ b/Source/WebCore/rendering/SimpleLineLayout.cpp >@@ -90,7 +90,7 @@ static bool canUseForText(const RenderText& textRenderer, const SimpleFontData& > > bool canUseFor(const RenderBlockFlow& flow) > { >-#if !PLATFORM(MAC) && !PLATFORM(GTK) && !PLATFORM(EFL) >+#if !PLATFORM(MAC) && !PLATFORM(GTK) && !PLATFORM(EFL) && !PLATFORM(NIX) > // FIXME: Non-mac platforms are hitting ASSERT(run.charactersLength() >= run.length()) > // https://bugs.webkit.org/show_bug.cgi?id=123338 > return false;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
benjamin
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 124981
:
218013
|
218167
| 218336 |
218337