On Fri, Nov 19, 2010 at 4:02 AM, Maciej Stachowiak <m...@apple.com> wrote:
>
> On Nov 17, 2010, at 11:44 PM, Hajime Morita wrote:
>
>> On Thu, Nov 18, 2010 at 3:51 PM, Darin Adler <da...@apple.com> wrote
>>> On Nov 17, 2010, at 10:49 PM, Hajime Morita wrote:
>>>
>>>> In other word, we should make sure that TextChecker interface can have 
>>>> subclasses both inside and outside WebCore.
>>>
>>> Yes, in this model the abstract base class inside WebCore will need a 
>>> derived class inside Windows WebKit that then in turn calls outside of 
>>> WebKit. But it is not appropriate to expose an class from WebCore directly 
>>> as part of WebKit API.
>>>
>>> A WebCore class is an appropriate way for WebKit to connect to WebCore. It 
>>> is not an appropriate way for WebKit to provide API.
>>
>> Hmm, I'm a bit confused -
>> My last explanation looks not enough, so please let me clarify:
>>
>> - TextChecker is a similar to EditorClient. It will be placed in
>> WebCore/platform/text, like EditorClient is in WebCore/page/.
>> - And (imaginative) WebTextChecker (or TextCheckerWindows) will be in
>> WebKit/win/WebCoreSupport,
>>  as WebEditorClient is in WebKit/win/WebCoreSupport.
>>  - WebTextChecker should use EditingDelegate, as WebEditorClient is
>> using it now.
>>
>> In other word, This change will just extract TextChecker interface
>> from EditrClient interface,
>> and provide some default implementations of it in WebCore, as we have
>> WebCore/page/EmptyEditorClient for EditorClient.
>>
>> I guess we don't have this "Interface in WebCore + Implementation in
>> WebCore and WebCoreSupport" pattern yet,
>> But I don't think it is such a huge jump from existing patterns,
>> like "Interface in WebCore + Implementation in WebCoreSupport".
>>
>> Does this make sense?
>
> "Interface in WebCore + Implementation in WebCore and WebCoreSupport" doesn't 
> match WebKit's normal approach to layering. Our approach so far (for ports 
> other than Chromium) has been to make it possible to link WebCore separately, 
> and therefore only have dependencies from WebCore to WebKit, not vice versa. 
> If WebCore functionality needs to call up to WebKit, we use an abstract 
> interface in WebCore which WebKit then implements, i.e. the client pattern.

Agreed.
And I realized that my last explanation was not clear enough again ...
I'm sorry for confusion.

In this proposal, we will have:

- WebCore::TextChecker interface (or TextCheckingClient interface, to
follow our usual naming)
- WebCore::TextCheckerHunspell class, implementing WebCore::TextCheckingClient
- (WebKit::)WebTextChecker class, implementing WebCore::TextCheckingClient.

There is no explicit dependency from WebCore to WebKit.
WebCore::Editor will depend WebCore::TextCheckingClient,
whose implementation might be in WebKit.

--
morrita

>
> Regards,
> Maciej
>
>
>



-- 
morrita
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to