Bug 35322

Summary: Need to create a CanvasSurface base class for HTMLCanvasElement.
Product: WebKit Reporter: David Levin <levin>
Component: DOMAssignee: David Levin <levin>
Status: RESOLVED FIXED    
Severity: Normal CC: oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 34909    
Attachments:
Description Flags
Proposed fix. darin: review+, levin: commit-queue-

Description David Levin 2010-02-23 17:55:47 PST
The purpose is to allow functionality for OffscreenCanvas and HTMLCanvasElement to reside in CanvasSurface.
Comment 1 David Levin 2010-02-24 10:01:49 PST
Created attachment 49404 [details]
Proposed fix.
Comment 2 Darin Adler 2010-02-24 11:22:24 PST
Comment on attachment 49404 [details]
Proposed fix.

> +/*
> + * Copyright (C) 2010 Google Inc. All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
> + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> + * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
> + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
> + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
> + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
> + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#include "config.h"
> +#include "CanvasSurface.h"
> +
> +namespace WebCore {
> +
> +} // namespace WebCore
> +

Extra blank line at end of file not needed.

> +namespace WebCore {
> +class CanvasSurface : Noncopyable {
> +public:
> +
> +private:
> +};
> +} // namespace WebCore

Need a blank line before and after the class definition.

Needs to be "public Noncopyable".

Doesn't make a lot of sense to me to have those "public" and "private" in there, although I suppose there's no harm.

> +#include "TransformationMatrix.h"

Why this change? How does it relate to adding the include of "CanvasSurface.h"?
Comment 3 David Levin 2010-02-24 14:21:25 PST
Committed as http://trac.webkit.org/changeset/55201

Made changes to fix all feedback.

fwiw, the addition of
> +#include "TransformationMatrix.h"
was the result of a merge conflict (because I had sorted the headers). I got rid of it (and the my header sorting because this wasn't related to my change).