On Sun, Jul 19, 2009 at 2:26 PM, Jeremy Orlow <[email protected]> wrote:
> You add a function definition to the WebKitClient interface, but then the > implementation of the interface is in the renderer code. The renderer code > would then make the actual call to base. > When the renderer is initializing, it creates an instance of its > WebKitClient implementation > (src/chrome/renderer/renderer_webkitclient_impl.cc) and passes it into > WebKit (via the initialize function in src/webkit/api/public/WebKit.h if I > remember correctly..the .cpp file is in src/webkit/api/src/). > > By either implementing your WebCore functions in src/webkit/api/src or > using ChromiumBridge, you can call the WebKitClient functions. > > I'm pretty positive this is right. Although not all of the code has landed > or had its final review yet, most of the code in the CL I listed earlier has > been reviewed by Darin. > ok - thanks for the explanation. sounds like this could work. I misunderstood the comment in the readme. Mike > > J > > > On Sun, Jul 19, 2009 at 2:11 PM, Mike Belshe <[email protected]> wrote: > >> Thanks, Jeremy. Are you sure this is right? I don't think so. >> First, the README in WebKit/api says, >> >>> BASIC TYPES >> >> >>> Use of STL is prohibited except in cases where it would be allowed in >> >> WebCore. This includes non-allocating uses: algorithms, numeric limits, >>> etc. >> >> WTF container classes should be used in the implementation of this API. >> >> >>> The API includes some usage of WebCore types when WEBKIT_IMPLEMENTATION >>> is >> >> defined. This is only done for the convenience to the implementation, >>> and >> >> should not be considered part of the Chromium WebKit API. Similarly, >>> STL >> >> types are assumed when WEBKIT_IMPLEMENTATION is not defined, which is >>> done >> >> for the convenience of the consumer. >> >> >> That's a pretty clear condemnation of anything in base, right? >> >> Also, I'm not allowed to just do a #include of WebKitClient.h from WebKit >> code, right? Or do I just do that under an ifdef? >> >> Mike >> >> >> On Sun, Jul 19, 2009 at 1:41 PM, Jeremy Orlow <[email protected]>wrote: >> >>> Take a look at src/webkit/api/public. WebKitClient has all the hooks >>> back into Chromium. src/chrome/renderer/renderer_webkitclient_impl.h >>> implements the WebKitClient interface. >>> I'm not exactly sure how you want to design the interface. If it's just >>> a function or two and you don't need to maintain any state, then you can >>> just add functions directly to the WebKitClient. If you need anything more >>> complicated, you should create a new interface in src/webkit/api/public and >>> add a function to WebKitClient that creates an instance of it. >>> >>> Patch set 8 here http://codereview.chromium.org/147248 might be a good >>> reference for how to use them. (There's a lot there, but I think it should >>> be obvious which files you don't care about.) >>> >>> For calling to the WebKitClient functions, you have two options. You can >>> either implement WebCore:: functions in src/webkit/api/src or you can make >>> your webcore/platform/chromium code call ChromiumBridge. If you can do the >>> former cleanly, I think it's the preferred approach. The above CL does it >>> the latter way in src/webkit/api/src/StorageNamespaceProxy.h. >>> >>> J >>> >>> On Sun, Jul 19, 2009 at 12:21 AM, Mike Belshe <[email protected]>wrote: >>> >>>> I want to log something from within webkit and have it show up in >>>> Chrome's log. This seemingly basic operation seems to be unsupported in >>>> chromium's version of webkit? >>>> First off, WebKit does have WTFLogging facilities (see logging.h and >>>> assertions.h) which are similar to our LOG(XXX) faciities. There appears >>>> to be no way to turn these on within the chromium build, because we don't >>>> implement nor call the initialization routine >>>> (InitializeLoggingChannelsIfNecessary()). OK - I can implement that...... >>>> >>>> But next, I want the logging to actually go to chrome's log file. The >>>> function to change is Assertions.cpp:vprintf_stderr_common(). I can add an >>>> if PLATFORM(CHROMIUM) here, and that would work, but how can I call code >>>> back in chromium's base? >>>> >>>> I don't think I can do this? It seems I should add something to >>>> WebKit/WebCore/platform/chromium/.... but - any references to base won't >>>> work, right? The README from webkit/api specifically says I can't use base >>>> code (std types) in the chromium bridge. >>>> >>>> What is the right way to do this? >>>> >>>> Mike >>>> >>>> >>>> >>>> >>>> >>> >> > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: [email protected] View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---
