Index: ui/gfx/test/icc_profiles.cc |
diff --git a/content/test/layouttest_support.cc b/ui/gfx/test/icc_profiles.cc |
similarity index 61% |
copy from content/test/layouttest_support.cc |
copy to ui/gfx/test/icc_profiles.cc |
index fad81abc161af7b290d0bf5e3f2681f499b574cc..3ce6917d43a4bb4622d02a0cea1cb0b5843df22b 100644 |
--- a/content/test/layouttest_support.cc |
+++ b/ui/gfx/test/icc_profiles.cc |
@@ -1,499 +1,14 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// 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 "content/public/test/layouttest_support.h" |
+#include "ui/gfx/test/icc_profiles.h" |
-#include <stddef.h> |
-#include <utility> |
- |
-#include "base/callback.h" |
-#include "base/lazy_instance.h" |
-#include "base/memory/ptr_util.h" |
-#include "base/strings/string_util.h" |
-#include "base/threading/thread_task_runner_handle.h" |
-#include "build/build_config.h" |
-#include "cc/output/copy_output_request.h" |
-#include "cc/test/pixel_test_output_surface.h" |
-#include "cc/test/test_compositor_frame_sink.h" |
-#include "components/test_runner/test_common.h" |
-#include "components/test_runner/web_frame_test_proxy.h" |
-#include "components/test_runner/web_view_test_proxy.h" |
-#include "components/test_runner/web_widget_test_proxy.h" |
-#include "content/browser/bluetooth/bluetooth_device_chooser_controller.h" |
-#include "content/browser/renderer_host/render_process_host_impl.h" |
-#include "content/browser/renderer_host/render_widget_host_impl.h" |
-#include "content/common/renderer.mojom.h" |
-#include "content/common/site_isolation_policy.h" |
-#include "content/public/common/page_state.h" |
-#include "content/public/renderer/renderer_gamepad_provider.h" |
-#include "content/renderer/fetchers/manifest_fetcher.h" |
-#include "content/renderer/gpu/render_widget_compositor.h" |
-#include "content/renderer/history_entry.h" |
-#include "content/renderer/history_serialization.h" |
-#include "content/renderer/input/render_widget_input_handler_delegate.h" |
-#include "content/renderer/layout_test_dependencies.h" |
-#include "content/renderer/render_frame_impl.h" |
-#include "content/renderer/render_thread_impl.h" |
-#include "content/renderer/render_view_impl.h" |
-#include "content/renderer/render_widget.h" |
-#include "content/renderer/renderer_blink_platform_impl.h" |
-#include "content/shell/common/shell_switches.h" |
-#include "gpu/ipc/service/image_transport_surface.h" |
-#include "services/ui/public/cpp/gpu/context_provider_command_buffer.h" |
-#include "third_party/WebKit/public/platform/WebFloatRect.h" |
-#include "third_party/WebKit/public/platform/WebGamepads.h" |
-#include "third_party/WebKit/public/platform/WebInputEvent.h" |
-#include "third_party/WebKit/public/platform/WebRect.h" |
-#include "third_party/WebKit/public/platform/modules/device_orientation/WebDeviceMotionData.h" |
-#include "third_party/WebKit/public/platform/modules/device_orientation/WebDeviceOrientationData.h" |
-#include "third_party/WebKit/public/platform/scheduler/test/renderer_scheduler_test_support.h" |
-#include "third_party/WebKit/public/web/WebHistoryItem.h" |
-#include "third_party/WebKit/public/web/WebView.h" |
-#include "ui/events/blink/blink_event_util.h" |
-#include "ui/gfx/geometry/vector2d.h" |
-#include "ui/gfx/icc_profile.h" |
- |
-#if defined(OS_MACOSX) |
-#include "content/browser/frame_host/popup_menu_helper_mac.h" |
-#elif defined(OS_WIN) |
-#include "content/child/font_warmup_win.h" |
-#include "third_party/WebKit/public/web/win/WebFontRendering.h" |
-#include "third_party/skia/include/ports/SkFontMgr.h" |
-#include "third_party/skia/include/ports/SkTypeface_win.h" |
-#include "ui/gfx/win/direct_write.h" |
-#endif |
- |
-using blink::WebDeviceMotionData; |
-using blink::WebDeviceOrientationData; |
-using blink::WebGamepad; |
-using blink::WebGamepads; |
-using blink::WebRect; |
-using blink::WebSize; |
- |
-namespace content { |
- |
-namespace { |
- |
-base::LazyInstance<ViewProxyCreationCallback>::Leaky |
- g_view_test_proxy_callback = LAZY_INSTANCE_INITIALIZER; |
- |
-base::LazyInstance<WidgetProxyCreationCallback>::Leaky |
- g_widget_test_proxy_callback = LAZY_INSTANCE_INITIALIZER; |
- |
-base::LazyInstance<FrameProxyCreationCallback>::Leaky |
- g_frame_test_proxy_callback = LAZY_INSTANCE_INITIALIZER; |
- |
-using WebViewTestProxyType = |
- test_runner::WebViewTestProxy<RenderViewImpl, |
- CompositorDependencies*, |
- const mojom::CreateViewParams&>; |
-using WebWidgetTestProxyType = |
- test_runner::WebWidgetTestProxy<RenderWidget, |
- int32_t, |
- CompositorDependencies*, |
- blink::WebPopupType, |
- const ScreenInfo&, |
- bool, |
- bool, |
- bool>; |
-using WebFrameTestProxyType = |
- test_runner::WebFrameTestProxy<RenderFrameImpl, |
- const RenderFrameImpl::CreateParams&>; |
- |
-RenderViewImpl* CreateWebViewTestProxy(CompositorDependencies* compositor_deps, |
- const mojom::CreateViewParams& params) { |
- WebViewTestProxyType* render_view_proxy = |
- new WebViewTestProxyType(compositor_deps, params); |
- if (g_view_test_proxy_callback == 0) |
- return render_view_proxy; |
- g_view_test_proxy_callback.Get().Run(render_view_proxy, render_view_proxy); |
- return render_view_proxy; |
-} |
- |
-RenderWidget* CreateWebWidgetTestProxy(int32_t routing_id, |
- CompositorDependencies* compositor_deps, |
- blink::WebPopupType popup_type, |
- const ScreenInfo& screen_info, |
- bool swapped_out, |
- bool hidden, |
- bool never_visible) { |
- WebWidgetTestProxyType* render_widget_proxy = new WebWidgetTestProxyType( |
- routing_id, compositor_deps, popup_type, screen_info, swapped_out, hidden, |
- never_visible); |
- return render_widget_proxy; |
-} |
- |
-void RenderWidgetInitialized(RenderWidget* render_widget) { |
- WebWidgetTestProxyType* render_widget_proxy = |
- static_cast<WebWidgetTestProxyType*>(render_widget); |
- if (!g_widget_test_proxy_callback.Get().is_null()) { |
- g_widget_test_proxy_callback.Get().Run(render_widget->GetWebWidget(), |
- render_widget_proxy); |
- } |
-} |
- |
-RenderFrameImpl* CreateWebFrameTestProxy( |
- const RenderFrameImpl::CreateParams& params) { |
- WebFrameTestProxyType* render_frame_proxy = new WebFrameTestProxyType(params); |
- if (g_frame_test_proxy_callback == 0) |
- return render_frame_proxy; |
- g_frame_test_proxy_callback.Get().Run(render_frame_proxy, render_frame_proxy); |
- return render_frame_proxy; |
-} |
- |
-float GetWindowToViewportScale(RenderWidget* render_widget) { |
- blink::WebFloatRect rect(0, 0, 1.0f, 0.0); |
- render_widget->convertWindowToViewport(&rect); |
- return rect.width; |
-} |
- |
-#if defined(OS_WIN) |
-// DirectWrite only has access to %WINDIR%\Fonts by default. For developer |
-// side-loading, support kRegisterFontFiles to allow access to additional fonts. |
-void RegisterSideloadedTypefaces(SkFontMgr* fontmgr) { |
- std::vector<std::string> files = switches::GetSideloadFontFiles(); |
- for (std::vector<std::string>::const_iterator i(files.begin()); |
- i != files.end(); |
- ++i) { |
- SkTypeface* typeface = fontmgr->createFromFile(i->c_str()); |
- blink::WebFontRendering::addSideloadedFontForTesting(typeface); |
- } |
-} |
-#endif // OS_WIN |
- |
-} // namespace |
- |
-test_runner::WebViewTestProxyBase* GetWebViewTestProxyBase( |
- RenderView* render_view) { |
- WebViewTestProxyType* render_view_proxy = |
- static_cast<WebViewTestProxyType*>(render_view); |
- return static_cast<test_runner::WebViewTestProxyBase*>(render_view_proxy); |
-} |
- |
-test_runner::WebFrameTestProxyBase* GetWebFrameTestProxyBase( |
- RenderFrame* render_frame) { |
- WebFrameTestProxyType* render_frame_proxy = |
- static_cast<WebFrameTestProxyType*>(render_frame); |
- return static_cast<test_runner::WebFrameTestProxyBase*>(render_frame_proxy); |
-} |
- |
-test_runner::WebWidgetTestProxyBase* GetWebWidgetTestProxyBase( |
- blink::WebLocalFrame* frame) { |
- DCHECK(frame); |
- RenderFrame* local_root = RenderFrame::FromWebFrame(frame->localRoot()); |
- DCHECK(local_root); |
- // TODO(lfg): Simplify once RenderView no longer inherits from RenderWidget. |
- if (local_root->IsMainFrame()) { |
- test_runner::WebViewTestProxyBase* web_view_test_proxy_base = |
- GetWebViewTestProxyBase(local_root->GetRenderView()); |
- auto* web_widget_test_proxy_base = |
- static_cast<test_runner::WebWidgetTestProxyBase*>( |
- web_view_test_proxy_base); |
- DCHECK(web_widget_test_proxy_base->web_widget()->isWebView()); |
- return web_widget_test_proxy_base; |
- } else { |
- RenderWidget* render_widget = |
- static_cast<RenderFrameImpl*>(local_root)->GetRenderWidget(); |
- DCHECK(render_widget); |
- WebWidgetTestProxyType* render_widget_proxy = |
- static_cast<WebWidgetTestProxyType*>(render_widget); |
- auto* web_widget_test_proxy_base = |
- static_cast<test_runner::WebWidgetTestProxyBase*>(render_widget_proxy); |
- DCHECK(web_widget_test_proxy_base->web_widget()->isWebFrameWidget()); |
- return web_widget_test_proxy_base; |
- } |
-} |
- |
-RenderWidget* GetRenderWidget( |
- test_runner::WebWidgetTestProxyBase* web_widget_test_proxy_base) { |
- DCHECK(web_widget_test_proxy_base); |
- |
- blink::WebWidget* widget = web_widget_test_proxy_base->web_widget(); |
- // TODO(lfg): Simplify once RenderView no longer inherits from RenderWidget. |
- if (widget->isWebView()) { |
- WebViewTestProxyType* render_view_proxy = |
- static_cast<WebViewTestProxyType*>(web_widget_test_proxy_base); |
- RenderViewImpl* render_view_impl = |
- static_cast<RenderViewImpl*>(render_view_proxy); |
- return render_view_impl; |
- } else if (widget->isWebFrameWidget()) { |
- WebWidgetTestProxyType* render_widget_proxy = |
- static_cast<WebWidgetTestProxyType*>(web_widget_test_proxy_base); |
- return static_cast<RenderWidget*>(render_widget_proxy); |
- } else { |
- NOTREACHED(); |
- return nullptr; |
- } |
-} |
- |
-void EnableWebTestProxyCreation( |
- const ViewProxyCreationCallback& view_proxy_creation_callback, |
- const WidgetProxyCreationCallback& widget_proxy_creation_callback, |
- const FrameProxyCreationCallback& frame_proxy_creation_callback) { |
- g_view_test_proxy_callback.Get() = view_proxy_creation_callback; |
- g_widget_test_proxy_callback.Get() = widget_proxy_creation_callback; |
- g_frame_test_proxy_callback.Get() = frame_proxy_creation_callback; |
- RenderViewImpl::InstallCreateHook(CreateWebViewTestProxy); |
- RenderWidget::InstallCreateHook(CreateWebWidgetTestProxy, |
- RenderWidgetInitialized); |
- RenderFrameImpl::InstallCreateHook(CreateWebFrameTestProxy); |
-} |
- |
-void FetchManifestDoneCallback(std::unique_ptr<ManifestFetcher> fetcher, |
- const FetchManifestCallback& callback, |
- const blink::WebURLResponse& response, |
- const std::string& data) { |
- // |fetcher| will be autodeleted here as it is going out of scope. |
- callback.Run(response, data); |
-} |
- |
-void FetchManifest(blink::WebView* view, const GURL& url, |
- const FetchManifestCallback& callback) { |
- ManifestFetcher* fetcher = new ManifestFetcher(url); |
- std::unique_ptr<ManifestFetcher> autodeleter(fetcher); |
- |
- // Start is called on fetcher which is also bound to the callback. |
- // A raw pointer is used instead of a scoped_ptr as base::Passes passes |
- // ownership and thus nulls the scoped_ptr. On MSVS this happens before |
- // the call to Start, resulting in a crash. |
- fetcher->Start(view->mainFrame(), |
- false, |
- base::Bind(&FetchManifestDoneCallback, |
- base::Passed(&autodeleter), |
- callback)); |
-} |
- |
-void SetMockGamepadProvider(std::unique_ptr<RendererGamepadProvider> provider) { |
- RenderThreadImpl::current() |
- ->blink_platform_impl() |
- ->SetPlatformEventObserverForTesting(blink::WebPlatformEventTypeGamepad, |
- std::move(provider)); |
-} |
- |
-void SetMockDeviceLightData(const double data) { |
- RendererBlinkPlatformImpl::SetMockDeviceLightDataForTesting(data); |
-} |
- |
-void SetMockDeviceMotionData(const WebDeviceMotionData& data) { |
- RendererBlinkPlatformImpl::SetMockDeviceMotionDataForTesting(data); |
-} |
- |
-void SetMockDeviceOrientationData(const WebDeviceOrientationData& data) { |
- RendererBlinkPlatformImpl::SetMockDeviceOrientationDataForTesting(data); |
-} |
+namespace gfx { |
namespace { |
-// Invokes a callback on commit (on the main thread) to obtain the output |
-// surface that should be used, then asks that output surface to submit the copy |
-// request at SwapBuffers time. |
-class CopyRequestSwapPromise : public cc::SwapPromise { |
- public: |
- using FindCompositorFrameSinkCallback = |
- base::Callback<cc::TestCompositorFrameSink*()>; |
- CopyRequestSwapPromise( |
- std::unique_ptr<cc::CopyOutputRequest> request, |
- FindCompositorFrameSinkCallback find_compositor_frame_sink_callback) |
- : copy_request_(std::move(request)), |
- find_compositor_frame_sink_callback_( |
- std::move(find_compositor_frame_sink_callback)) {} |
- |
- // cc::SwapPromise implementation. |
- void OnCommit() override { |
- compositor_frame_sink_from_commit_ = |
- find_compositor_frame_sink_callback_.Run(); |
- DCHECK(compositor_frame_sink_from_commit_); |
- } |
- void DidActivate() override {} |
- void WillSwap(cc::CompositorFrameMetadata*) override { |
- compositor_frame_sink_from_commit_->RequestCopyOfOutput( |
- std::move(copy_request_)); |
- } |
- void DidSwap() override {} |
- DidNotSwapAction DidNotSwap(DidNotSwapReason r) override { |
- // The compositor should always swap in layout test mode. |
- NOTREACHED() << "did not swap for reason " << r; |
- return DidNotSwapAction::BREAK_PROMISE; |
- } |
- int64_t TraceId() const override { return 0; } |
- |
- private: |
- std::unique_ptr<cc::CopyOutputRequest> copy_request_; |
- FindCompositorFrameSinkCallback find_compositor_frame_sink_callback_; |
- cc::TestCompositorFrameSink* compositor_frame_sink_from_commit_ = nullptr; |
-}; |
- |
-} // namespace |
- |
-class LayoutTestDependenciesImpl : public LayoutTestDependencies, |
- public cc::TestCompositorFrameSinkClient { |
- public: |
- std::unique_ptr<cc::CompositorFrameSink> CreateCompositorFrameSink( |
- int32_t routing_id, |
- scoped_refptr<gpu::GpuChannelHost> gpu_channel, |
- scoped_refptr<cc::ContextProvider> compositor_context_provider, |
- scoped_refptr<cc::ContextProvider> worker_context_provider, |
- gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
- CompositorDependencies* deps) override { |
- // This could override the GpuChannel for a CompositorFrameSink that was |
- // previously being created but in that case the old GpuChannel would be |
- // lost as would the CompositorFrameSink. |
- gpu_channel_ = gpu_channel; |
- |
- auto* task_runner = deps->GetCompositorImplThreadTaskRunner().get(); |
- bool synchronous_composite = !task_runner; |
- if (!task_runner) |
- task_runner = base::ThreadTaskRunnerHandle::Get().get(); |
- |
- cc::LayerTreeSettings settings = |
- RenderWidgetCompositor::GenerateLayerTreeSettings( |
- *base::CommandLine::ForCurrentProcess(), deps, 1.f); |
- |
- auto compositor_frame_sink = base::MakeUnique<cc::TestCompositorFrameSink>( |
- std::move(compositor_context_provider), |
- std::move(worker_context_provider), nullptr /* shared_bitmap_manager */, |
- gpu_memory_buffer_manager, settings.renderer_settings, task_runner, |
- synchronous_composite, false /* force_disable_reclaim_resources */); |
- compositor_frame_sink->SetClient(this); |
- compositor_frame_sinks_[routing_id] = compositor_frame_sink.get(); |
- return std::move(compositor_frame_sink); |
- } |
- |
- std::unique_ptr<cc::SwapPromise> RequestCopyOfOutput( |
- int32_t routing_id, |
- std::unique_ptr<cc::CopyOutputRequest> request) override { |
- // Note that we can't immediately check compositor_frame_sinks_, since it |
- // may not have been created yet. Instead, we wait until OnCommit to find |
- // the currently active CompositorFrameSink for the given RenderWidget |
- // routing_id. |
- return base::MakeUnique<CopyRequestSwapPromise>( |
- std::move(request), |
- base::Bind( |
- &LayoutTestDependenciesImpl::FindCompositorFrameSink, |
- // |this| will still be valid, because its lifetime is tied to |
- // RenderThreadImpl, which outlives layout test execution. |
- base::Unretained(this), routing_id)); |
- } |
- |
- // TestCompositorFrameSinkClient implementation. |
- std::unique_ptr<cc::OutputSurface> CreateDisplayOutputSurface( |
- scoped_refptr<cc::ContextProvider> compositor_context_provider) override { |
- // This is for an offscreen context for the compositor. So the default |
- // framebuffer doesn't need alpha, depth, stencil, antialiasing. |
- gpu::gles2::ContextCreationAttribHelper attributes; |
- attributes.alpha_size = -1; |
- attributes.depth_size = 0; |
- attributes.stencil_size = 0; |
- attributes.samples = 0; |
- attributes.sample_buffers = 0; |
- attributes.bind_generates_resource = false; |
- attributes.lose_context_when_out_of_memory = true; |
- const bool automatic_flushes = false; |
- const bool support_locking = false; |
- |
- auto context_provider = |
- make_scoped_refptr(new ui::ContextProviderCommandBuffer( |
- gpu_channel_, gpu::GPU_STREAM_DEFAULT, |
- gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, |
- GURL("chrome://gpu/" |
- "LayoutTestDependenciesImpl::CreateOutputSurface"), |
- automatic_flushes, support_locking, gpu::SharedMemoryLimits(), |
- attributes, nullptr, |
- ui::command_buffer_metrics::OFFSCREEN_CONTEXT_FOR_TESTING)); |
- context_provider->BindToCurrentThread(); |
- |
- bool flipped_output_surface = false; |
- return base::MakeUnique<cc::PixelTestOutputSurface>( |
- std::move(context_provider), flipped_output_surface); |
- } |
- void DisplayReceivedCompositorFrame( |
- const cc::CompositorFrame& frame) override {} |
- void DisplayWillDrawAndSwap( |
- bool will_draw_and_swap, |
- const cc::RenderPassList& render_passes) override {} |
- void DisplayDidDrawAndSwap() override {} |
- |
- private: |
- cc::TestCompositorFrameSink* FindCompositorFrameSink(int32_t routing_id) { |
- auto it = compositor_frame_sinks_.find(routing_id); |
- return it == compositor_frame_sinks_.end() ? nullptr : it->second; |
- } |
- |
- // Entries are not removed, so this map can grow. However, it is only used in |
- // layout tests, so this memory usage does not occur in production. |
- // Entries in this map will outlive the output surface, because this object is |
- // owned by RenderThreadImpl, which outlives layout test execution. |
- std::unordered_map<int32_t, cc::TestCompositorFrameSink*> |
- compositor_frame_sinks_; |
- scoped_refptr<gpu::GpuChannelHost> gpu_channel_; |
-}; |
- |
-void EnableRendererLayoutTestMode() { |
- RenderThreadImpl::current()->set_layout_test_dependencies( |
- base::MakeUnique<LayoutTestDependenciesImpl>()); |
- |
-#if defined(OS_WIN) |
- RegisterSideloadedTypefaces(SkFontMgr_New_DirectWrite()); |
-#endif |
-} |
- |
-void EnableBrowserLayoutTestMode() { |
-#if defined(OS_MACOSX) |
- gpu::ImageTransportSurface::SetAllowOSMesaForTesting(true); |
- PopupMenuHelper::DontShowPopupMenuForTesting(); |
-#endif |
- RenderWidgetHostImpl::DisableResizeAckCheckForTesting(); |
-} |
- |
-int GetLocalSessionHistoryLength(RenderView* render_view) { |
- return static_cast<RenderViewImpl*>(render_view)-> |
- GetLocalSessionHistoryLengthForTesting(); |
-} |
- |
-void SyncNavigationState(RenderView* render_view) { |
- // TODO(creis): Add support for testing in OOPIF-enabled modes. |
- // See https://crbug.com/477150. |
- if (SiteIsolationPolicy::UseSubframeNavigationEntries()) |
- return; |
- static_cast<RenderViewImpl*>(render_view)->SendUpdateState(); |
-} |
- |
-void SetFocusAndActivate(RenderView* render_view, bool enable) { |
- static_cast<RenderViewImpl*>(render_view)-> |
- SetFocusAndActivateForTesting(enable); |
-} |
- |
-void ForceResizeRenderView(RenderView* render_view, |
- const WebSize& new_size) { |
- RenderViewImpl* render_view_impl = static_cast<RenderViewImpl*>(render_view); |
- render_view_impl->ForceResizeForTesting(new_size); |
-} |
- |
-void SetDeviceScaleFactor(RenderView* render_view, float factor) { |
- static_cast<RenderViewImpl*>(render_view)-> |
- SetDeviceScaleFactorForTesting(factor); |
-} |
- |
-float GetWindowToViewportScale(RenderView* render_view) { |
- return GetWindowToViewportScale( |
- static_cast<RenderViewImpl*>(render_view)->GetWidget()); |
-} |
- |
-std::unique_ptr<blink::WebInputEvent> TransformScreenToWidgetCoordinates( |
- test_runner::WebWidgetTestProxyBase* web_widget_test_proxy_base, |
- const blink::WebInputEvent& event) { |
- DCHECK(web_widget_test_proxy_base); |
- RenderWidget* render_widget = GetRenderWidget(web_widget_test_proxy_base); |
- |
- blink::WebRect view_rect = render_widget->viewRect(); |
- float scale = GetWindowToViewportScale(render_widget); |
- gfx::Vector2d delta(-view_rect.x, -view_rect.y); |
- return ui::TranslateAndScaleWebInputEvent(event, delta, scale); |
-} |
- |
-gfx::ICCProfile GetTestingICCProfile(const std::string& name) { |
- const unsigned char rgb_profile_data[] = { |
+const unsigned char generic_rgb_profile_data[] = { |
0x00, 0x00, 0x07, 0xd8, 0x61, 0x70, 0x70, 0x6c, 0x02, 0x20, 0x00, 0x00, |
0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20, |
0x07, 0xd9, 0x00, 0x02, 0x00, 0x19, 0x00, 0x0b, 0x00, 0x1a, 0x00, 0x0b, |
@@ -661,10 +176,9 @@ gfx::ICCProfile GetTestingICCProfile(const std::string& name) { |
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x42, 0x00, 0x00, 0x05, 0xde, |
0xff, 0xff, 0xf3, 0x26, 0x00, 0x00, 0x07, 0x92, 0x00, 0x00, 0xfd, 0x91, |
0xff, 0xff, 0xfb, 0xa2, 0xff, 0xff, 0xfd, 0xa3, 0x00, 0x00, 0x03, 0xdc, |
- 0x00, 0x00, 0xc0, 0x6c |
- }; |
+ 0x00, 0x00, 0xc0, 0x6c}; |
- const unsigned char srgb_profile_data[] = { |
+const unsigned char srgb_profile_data[] = { |
0x00, 0x00, 0x0c, 0x48, 0x4c, 0x69, 0x6e, 0x6f, 0x02, 0x10, 0x00, 0x00, |
0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20, |
0x07, 0xce, 0x00, 0x02, 0x00, 0x09, 0x00, 0x06, 0x00, 0x31, 0x00, 0x00, |
@@ -926,10 +440,9 @@ gfx::ICCProfile GetTestingICCProfile(const std::string& name) { |
0xf3, 0x19, 0xf3, 0xa7, 0xf4, 0x34, 0xf4, 0xc2, 0xf5, 0x50, 0xf5, 0xde, |
0xf6, 0x6d, 0xf6, 0xfb, 0xf7, 0x8a, 0xf8, 0x19, 0xf8, 0xa8, 0xf9, 0x38, |
0xf9, 0xc7, 0xfa, 0x57, 0xfa, 0xe7, 0xfb, 0x77, 0xfc, 0x07, 0xfc, 0x98, |
- 0xfd, 0x29, 0xfd, 0xba, 0xfe, 0x4b, 0xfe, 0xdc, 0xff, 0x6d, 0xff, 0xff |
- }; |
+ 0xfd, 0x29, 0xfd, 0xba, 0xfe, 0x4b, 0xfe, 0xdc, 0xff, 0x6d, 0xff, 0xff}; |
- const unsigned char colorspin_profile_data[] = { |
+const unsigned char colorspin_profile_data[] = { |
0x00, 0x00, 0x01, 0xea, 0x54, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, |
0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20, |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
@@ -970,10 +483,9 @@ gfx::ICCProfile GetTestingICCProfile(const std::string& name) { |
0x00, 0x00, 0x26, 0x31, 0x00, 0x00, 0x10, 0x2f, 0x00, 0x00, 0xbe, 0x9b, |
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x18, |
0x00, 0x00, 0x4f, 0xa5, 0x00, 0x00, 0x04, 0xfc, 0x63, 0x75, 0x72, 0x76, |
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x33 |
- }; |
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x33}; |
- const unsigned char adobe_rgb_profile_data[] = { |
+const unsigned char adobe_rgb_profile_data[] = { |
0x00, 0x00, 0x02, 0x30, 0x41, 0x44, 0x42, 0x45, 0x02, 0x10, 0x00, 0x00, |
0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, 0x20, 0x58, 0x59, 0x5a, 0x20, |
0x07, 0xd0, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x13, 0x00, 0x33, 0x00, 0x3b, |
@@ -1020,127 +532,30 @@ gfx::ICCProfile GetTestingICCProfile(const std::string& name) { |
0x00, 0x00, 0x04, 0xfc, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x34, 0x8d, 0x00, 0x00, 0xa0, 0x2c, 0x00, 0x00, 0x0f, 0x95, |
0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x31, |
- 0x00, 0x00, 0x10, 0x2f, 0x00, 0x00, 0xbe, 0x9c |
- }; |
- |
- const unsigned char* data = nullptr; |
- size_t size = 0; |
- if (name == "genericRGB") { |
- data = rgb_profile_data; |
- size = sizeof(rgb_profile_data); |
- } else if (name == "sRGB") { |
- data = srgb_profile_data; |
- size = sizeof(srgb_profile_data); |
- } else if (name == "test" || name == "colorSpin") { |
- data = colorspin_profile_data; |
- size = sizeof(colorspin_profile_data); |
- } else if (name == "adobeRGB") { |
- data = adobe_rgb_profile_data; |
- size = sizeof(adobe_rgb_profile_data); |
- } |
- |
- if (data) |
- return gfx::ICCProfile::FromData(reinterpret_cast<const char*>(data), size); |
- return gfx::ICCProfile(); |
-} |
- |
-void SetDeviceColorProfile( |
- RenderView* render_view, const gfx::ICCProfile& icc_profile) { |
- static_cast<RenderViewImpl*>(render_view) |
- ->GetWidget() |
- ->SetDeviceColorProfileForTesting(icc_profile.GetData()); |
-} |
- |
-void SetTestBluetoothScanDuration() { |
- BluetoothDeviceChooserController::SetTestScanDurationForTesting(); |
+ 0x00, 0x00, 0x10, 0x2f, 0x00, 0x00, 0xbe, 0x9c}; |
} |
-void UseSynchronousResizeMode(RenderView* render_view, bool enable) { |
- static_cast<RenderViewImpl*>(render_view)-> |
- UseSynchronousResizeModeForTesting(enable); |
-} |
- |
-void EnableAutoResizeMode(RenderView* render_view, |
- const WebSize& min_size, |
- const WebSize& max_size) { |
- static_cast<RenderViewImpl*>(render_view)-> |
- EnableAutoResizeForTesting(min_size, max_size); |
-} |
- |
-void DisableAutoResizeMode(RenderView* render_view, const WebSize& new_size) { |
- static_cast<RenderViewImpl*>(render_view)-> |
- DisableAutoResizeForTesting(new_size); |
-} |
- |
-// Returns True if node1 < node2. |
-bool HistoryEntryCompareLess(HistoryEntry::HistoryNode* node1, |
- HistoryEntry::HistoryNode* node2) { |
- base::string16 target1 = node1->item().target(); |
- base::string16 target2 = node2->item().target(); |
- return base::CompareCaseInsensitiveASCII(target1, target2) < 0; |
-} |
- |
-std::string DumpHistoryItem(HistoryEntry::HistoryNode* node, |
- int indent, |
- bool is_current_index) { |
- std::string result; |
- |
- const blink::WebHistoryItem& item = node->item(); |
- if (is_current_index) { |
- result.append("curr->"); |
- result.append(indent - 6, ' '); // 6 == "curr->".length() |
- } else { |
- result.append(indent, ' '); |
- } |
- |
- std::string url = |
- test_runner::NormalizeLayoutTestURL(item.urlString().utf8()); |
- result.append(url); |
- if (!item.target().isEmpty()) { |
- result.append(" (in frame \""); |
- result.append(item.target().utf8()); |
- result.append("\")"); |
- } |
- result.append("\n"); |
- |
- std::vector<HistoryEntry::HistoryNode*> children = node->children(); |
- if (!children.empty()) { |
- std::sort(children.begin(), children.end(), HistoryEntryCompareLess); |
- for (size_t i = 0; i < children.size(); ++i) |
- result += DumpHistoryItem(children[i], indent + 4, false); |
- } |
- |
- return result; |
+ICCProfile ICCProfileForTestingAdobeRGB() { |
+ return ICCProfile::FromData( |
+ reinterpret_cast<const char*>(adobe_rgb_profile_data), |
+ arraysize(adobe_rgb_profile_data)); |
} |
-std::string DumpBackForwardList(std::vector<PageState>& page_state, |
- size_t current_index) { |
- std::string result; |
- result.append("\n============== Back Forward List ==============\n"); |
- for (size_t index = 0; index < page_state.size(); ++index) { |
- std::unique_ptr<HistoryEntry> entry( |
- PageStateToHistoryEntry(page_state[index])); |
- result.append( |
- DumpHistoryItem(entry->root_history_node(), |
- 8, |
- index == current_index)); |
- } |
- result.append("===============================================\n"); |
- return result; |
+ICCProfile ICCProfileForTestingGenericRGB() { |
+ return ICCProfile::FromData( |
+ reinterpret_cast<const char*>(generic_rgb_profile_data), |
+ arraysize(generic_rgb_profile_data)); |
} |
-void SchedulerRunIdleTasks(const base::Closure& callback) { |
- blink::scheduler::RendererScheduler* scheduler = |
- content::RenderThreadImpl::current()->GetRendererScheduler(); |
- blink::scheduler::RunIdleTasksForTesting(scheduler, callback); |
+ICCProfile ICCProfileForTestingSRGB() { |
+ return ICCProfile::FromData(reinterpret_cast<const char*>(srgb_profile_data), |
+ arraysize(srgb_profile_data)); |
} |
-void ForceTextInputStateUpdateForRenderFrame(RenderFrame* frame) { |
- if (auto* render_widget = |
- static_cast<RenderFrameImpl*>(frame)->GetRenderWidget()) { |
- render_widget->UpdateTextInputState(ShowIme::IF_NEEDED, |
- ChangeSource::FROM_NON_IME); |
- } |
+ICCProfile ICCProfileForTestingColorSpin() { |
+ return ICCProfile::FromData( |
+ reinterpret_cast<const char*>(colorspin_profile_data), |
+ arraysize(colorspin_profile_data)); |
} |
-} // namespace content |
+} // namespace gfx |