Added a mock gesture tap highlight to allow reftesting layout tests.

Until now, the gesture tap highlight layout tests used reftests to match
expectations since the RenderBox and LinkHighlights produced pixel-identical
results. However, the underlying code paths to draw the rounded rects use
different methods (see bug) and a change in Skia has broken these tests.

This CL adds a setting to Blink to draw mock LinkHighlights that are
rectangular. This setting gets enabled only in tests and the expectation
files now just draw an ordinary rectangular div. We still have coverage for
rounding in the remaining pixel tests.

BUG=399719

Review URL: https://codereview.chromium.org/444083002

git-svn-id: svn://svn.chromium.org/blink/trunk@179673 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert 179668 "WorkerThread's pointer should be protected until ..."

This CL broke two webgl conformance tests.  Here is one build:
http://build.chromium.org/p/chromium.webkit/builders/GPU%20Mac10.7/builds/30751

Here is the stack:

ASSERTION FAILED: m_verifier.isSafeToUse()
../../third_party/WebKit/Source/wtf/RefCounted.h(107) : bool
WTF::RefCountedBase::derefBase()
1   0x290368b blink::WorkerThread::cleanup()
2   0x2904411 WTF::BoundFunctionImpl<WTF::FunctionWrapper<void
(blink::WorkerThread::*)()>, void (blink::WorkerThread*)>::operator()()
3   0x22c7b3e blink::Task::run()
4   0x47bb641 base::internal::Invoker<1,
base::internal::BindState<base::internal::RunnableAdapter<void
(blink::WebThread::Task::*)()>, void (blink::WebThread::Task*), void
(base::internal::OwnedWrapper<blink::WebThread::Task>)>, void
()(blink::WebThread::Task*)>::Run(base::internal::BindStateBase*)
5   0x997f0b base::MessageLoop::RunTask(base::PendingTask const&)
6   0x998487 base::MessageLoop::DoWork()
7   0x93e642 base::MessagePumpCFRunLoopBase::RunWorkSource(void*)
8   0x93e2404f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
9   0x93e23a79 __CFRunLoopDoSources0
10  0x93e49826 __CFRunLoopRun
11  0x93e4901a CFRunLoopRunSpecific
12  0x93e48e8b CFRunLoopRunInMode
13  0x93eecd base::MessagePumpCFRunLoop::DoRun(base::MessagePump::Delegate*)
14  0x93eacc base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*)
15  0x997b33 base::MessageLoop::RunHandler()
16  0x9b4c44 base::RunLoop::Run()
17  0x9972ea base::MessageLoop::Run()
18  0x9d3f11 base::Thread::Run(base::MessageLoop*)
19  0x9d40c9 base::Thread::ThreadMain()
20  0x9ce497 base::(anonymous namespace)::ThreadFunc(void*)
21  0x932725b7 _pthread_start
22  0x9325cdce thread_start

> WorkerThread's pointer should be protected until all the shutdown tasks are complete
> 
> During destruction of WorkerThread, m_pendingGCRunner is destroyed prior to m_thread,
> because it is following it in the members ordering in the class.
> So when m_thread is being destroyed, it is waiting for all the tasks on the message loop
> to complete, some of which need the PendingGCRunner. This will cause use-after-free.
> 
> To prevent the situation, this CL adds code to keep the WorkerThread pointer alive
> until we complete all the shutdown tasks.
> 
> BUG=400511
> TEST=none (I cannot reproduce the crash)
> R=ager@chromium.org, jochen@chromium.org, nasko@chromium.org, zerny@chromium.org
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=179604
> 
> Review URL: https://codereview.chromium.org/445863002

TBR=haraken@chromium.org

Review URL: https://codereview.chromium.org/446303002

git-svn-id: svn://svn.chromium.org/blink/trunk@179675 bbb929c8-8fbe-4397-9dbb-9b2b20218538