[chromium-dev] Re: Network stack roadmap
*One more thing, is issue 2010http://code.google.com/p/chromium/issues/detail?id=2010, which discusses the option not to show the interstitial for for specific domains for a limited time (or forever, preferred).** *☆PhistucK On Mon, Mar 16, 2009 at 23:26, Wan-Teh Chang w...@google.com wrote: Chromium's network stack has been undergoing a rewrite to make it more portable. The new HTTP stack is now being used in the 2.0 Dev channel releases. I put together a network stack roadmap document to describe the remaining work in the rewrite and the future work we're considering: http://dev.chromium.org/developers/design-documents/network-stack I'd appreciate your comments on the priorities of the tasks and anything we missed. If you're interested in taking on any of the tasks, please let us know. Wan-Teh --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Visual Studio Conversion to 2008 not converting couple of projects 4 errors?
Hi, I did what you said, and now getting other files which failed: ..\googleurl\build\googleurl.vcproj ..\v8\tools\visual_studio\v8.vcproj ..\v8\tools\visual_studio\v8_base.vcproj ..\v8\tools\visual_studio\v8_mksnapshot.vcproj ..\v8\tools\visual_studio\v8_shell_sample.vcproj ..\v8\tools\visual_studio\v8_snapshot.vcproj ..\v8\tools\visual_studio\v8_snapshot_cc.vcproj I did a gclient sync, and then got these previous errors (again): ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj So I deleted the complete folder associated with these projects which were: - googleurl - v8 - base - third_party\bzip2 - net - base Then did a gclient sync, to grab them back, and it works now... So what caused this hickup? I never touched any of those files. If someone knows why, it would be nice to know, so I can learn from my mistakes. Thanks! -m0 On Thu, Mar 19, 2009 at 12:09 AM, Alpha (Hin-Chung) Lam hc...@google.com wrote: Looks like those project files are missing. After gclient sync, do: gclient runhooks --force to generate the project files from gyp. See if that helps. Alpha 2009/3/18 Mohamed Mansour m0.interact...@gmail.com Hey there, I have some questions regarding the current build. It might be GYP related, but I don't know yet ... Three days ago, the build was doing just fine. Today, I did a gclient sync and while converting the solution to VS2008, I am receiving a bunch of errors. It wasn't doing so 3 days ago. I am receiving errors that has the following description Failed to upgrade project file. Please make sure the file exists and is not write-protected. for these files: ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj Anyone has any idea what may have caused this? -- m0 --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Network stack roadmap
PhistucK, Thanks for your input, but the interstitial is handled at a different layer in the browser than the new network stack (chrome/browser versus net/http). Adam 2009/3/18 PhistucK phist...@gmail.com: One more thing, is issue 2010, which discusses the option not to show the interstitial for for specific domains for a limited time (or forever, preferred). ☆PhistucK On Mon, Mar 16, 2009 at 23:26, Wan-Teh Chang w...@google.com wrote: Chromium's network stack has been undergoing a rewrite to make it more portable. The new HTTP stack is now being used in the 2.0 Dev channel releases. I put together a network stack roadmap document to describe the remaining work in the rewrite and the future work we're considering: http://dev.chromium.org/developers/design-documents/network-stack I'd appreciate your comments on the priorities of the tasks and anything we missed. If you're interested in taking on any of the tasks, please let us know. Wan-Teh --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: sheriffs: please keep the purify bots green
+yurys Thanks for tracking this one down, Alpha. Yury, I think the remaining error is yours (from http://codereview.chromium.org/42233 at r11855). Erik On Wed, Mar 18, 2009 at 2:29 PM, Alpha (Hin-Chung) Lam hc...@google.com wrote: Found the root in chrome/browser/renderer_host/resource_dispatcher_host_unittest.cc Review: http://codereview.chromium.org/42360 Alpha 2009/3/18 Dean McNamee de...@chromium.org It looks similar to: http://build.chromium.org/buildbot/waterfall/builders/XP%20Unit%20(purify)/builds/2466/steps/purify%20test:%20unit/logs/stdio Which is what caused hclam's patch to reverted previously. On Wed, Mar 18, 2009 at 7:55 PM, Adam Langley a...@chromium.org wrote: On Wed, Mar 18, 2009 at 11:48 AM, Marc-Antoine Ruel mar...@chromium.org wrote: It could be anywhere from 11801 to 11818. ben, jam, agl, dkegel, hclam, levin, tc, pkasting checked in during that time frame. ager, sgk did non-code changes so I don't think it's them. We'll soon make the tree automatically close on failure on some tests. One of the issue here is latency. Erik, if you can track it down, that'd be really appreciated. Possibly hclam: UMR in chrome/common/render_messages.h:1257 IPC::ParamTraits::Write(Message::IPC *,ViewHostMsg_Resource_Request const) AGL --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] ResourceMessageFilter::OnGet(Root)WindowRect and NULL windows
We've been seeing calls to ResourceMessageFilter::OnGet(Root)WindowRect for NULL windows. agl put in a fix for GTK with http://codereview.chromium.org/42356 and I'm seeing the same problem on the Mac. 1. Why isn't Windows seeing this? What happens when you pass a null HWND into ::GetAncestor and ::GetWindowRect? 2. Is this expected, or is this indicative of a bug? Avi --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Visual Studio Conversion to 2008 not converting couple of projects 4 errors?
+Brad Caused by the switch to GYP. On Thu, Mar 19, 2009 at 2:11 AM, Mohamed Mansour m0.interact...@gmail.com wrote: Hi, I did what you said, and now getting other files which failed: ..\googleurl\build\googleurl.vcproj ..\v8\tools\visual_studio\v8.vcproj ..\v8\tools\visual_studio\v8_base.vcproj ..\v8\tools\visual_studio\v8_mksnapshot.vcproj ..\v8\tools\visual_studio\v8_shell_sample.vcproj ..\v8\tools\visual_studio\v8_snapshot.vcproj ..\v8\tools\visual_studio\v8_snapshot_cc.vcproj I did a gclient sync, and then got these previous errors (again): ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj So I deleted the complete folder associated with these projects which were: - googleurl - v8 - base - third_party\bzip2 - net - base Then did a gclient sync, to grab them back, and it works now... So what caused this hickup? I never touched any of those files. If someone knows why, it would be nice to know, so I can learn from my mistakes. Thanks! -m0 On Thu, Mar 19, 2009 at 12:09 AM, Alpha (Hin-Chung) Lam hc...@google.com wrote: Looks like those project files are missing. After gclient sync, do: gclient runhooks --force to generate the project files from gyp. See if that helps. Alpha 2009/3/18 Mohamed Mansour m0.interact...@gmail.com Hey there, I have some questions regarding the current build. It might be GYP related, but I don't know yet ... Three days ago, the build was doing just fine. Today, I did a gclient sync and while converting the solution to VS2008, I am receiving a bunch of errors. It wasn't doing so 3 days ago. I am receiving errors that has the following description Failed to upgrade project file. Please make sure the file exists and is not write-protected. for these files: ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj Anyone has any idea what may have caused this? -- m0 --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Visual Studio Conversion to 2008 not converting couple of projects 4 errors?
Very mysterious. These are gyp related: ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj But these are not: ..\googleurl\build\googleurl.vcproj ..\v8\tools\visual_studio\v8.vcproj ..\v8\tools\visual_studio\v8_base.vcproj ..\v8\tools\visual_studio\v8_mksnapshot.vcproj ..\v8\tools\visual_studio\v8_shell_sample.vcproj ..\v8\tools\visual_studio\v8_snapshot.vcproj ..\v8\tools\visual_studio\v8_snapshot_cc.vcproj Do you recall roughly when this was time wise? Did you have a local python installed, if so, what version? Let me know if this crops up again. -BradN On Wed, Mar 18, 2009 at 11:11 PM, Mohamed Mansour m0.interact...@gmail.comwrote: Hi, I did what you said, and now getting other files which failed: ..\googleurl\build\googleurl.vcproj ..\v8\tools\visual_studio\v8.vcproj ..\v8\tools\visual_studio\v8_base.vcproj ..\v8\tools\visual_studio\v8_mksnapshot.vcproj ..\v8\tools\visual_studio\v8_shell_sample.vcproj ..\v8\tools\visual_studio\v8_snapshot.vcproj ..\v8\tools\visual_studio\v8_snapshot_cc.vcproj I did a gclient sync, and then got these previous errors (again): ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj So I deleted the complete folder associated with these projects which were: - googleurl - v8 - base - third_party\bzip2 - net - base Then did a gclient sync, to grab them back, and it works now... So what caused this hickup? I never touched any of those files. If someone knows why, it would be nice to know, so I can learn from my mistakes. Thanks! -m0 On Thu, Mar 19, 2009 at 12:09 AM, Alpha (Hin-Chung) Lam hc...@google.com wrote: Looks like those project files are missing. After gclient sync, do: gclient runhooks --force to generate the project files from gyp. See if that helps. Alpha 2009/3/18 Mohamed Mansour m0.interact...@gmail.com Hey there, I have some questions regarding the current build. It might be GYP related, but I don't know yet ... Three days ago, the build was doing just fine. Today, I did a gclient sync and while converting the solution to VS2008, I am receiving a bunch of errors. It wasn't doing so 3 days ago. I am receiving errors that has the following description Failed to upgrade project file. Please make sure the file exists and is not write-protected. for these files: ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj Anyone has any idea what may have caused this? -- m0 --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] clobber build required on windows :-(
Turns out that VS doesn't know to re-generate precompiled headers when a define changes, so you will need to clobber your output directory. Or, if you want to save time, you can just delete the following output directories: {Debug,Release}/ obj/ renderer/ worker/ unit_tests/ -Darin --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: ResourceMessageFilter::OnGet(Root)WindowRect and NULL windows
Hi OK, that's interesting, thank you. Does GetAncestor return something valid when passed that null HWND or does it pass null through to GetwindowRect? It would also be interesting to know what rect it returns please. Maybe it doesn't matter ... I haven't looked at the renderer code that creates this request to see if it actually cares about this when the window is null. Thank you, --Craig On Thu, Mar 19, 2009 at 7:56 PM, Mohamed Mansour m0.interact...@gmail.com wrote: Craig, it returns back a 0. + window 0x {unused=??? } HWND__ * On Thu, Mar 19, 2009 at 1:46 PM, Craig Schlenter craig.schlen...@gmail.com wrote: Hi Avi When I did the original change, that function wasn't being called with a null window. Clicking on a link in gmail opened the link in a new window as I recall. At some later point that changed possibly when some of the tab_contents stuff was hooked up. I think it's good practice to check for null since you don't want the renderer to be able to crash the browser but I do tend to think that it shouldn't be happening to begin with but I'm largely clueless about the code involved :( Perhaps someone with a windows build can put a breakpoint in OnGetRootWindowRect please and see if clicking on a link in an email in gmail passes a HWND of null at all? Thank you, --Craig On Thu, Mar 19, 2009 at 7:33 PM, Avi Drissman a...@google.com wrote: We've been seeing calls to ResourceMessageFilter::OnGet(Root)WindowRect for NULL windows. agl put in a fix for GTK with http://codereview.chromium.org/42356 and I'm seeing the same problem on the Mac. 1. Why isn't Windows seeing this? What happens when you pass a null HWND into ::GetAncestor and ::GetWindowRect? 2. Is this expected, or is this indicative of a bug? Avi --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: ResourceMessageFilter::OnGet(Root)WindowRect and NULL windows
#include stdio.h #include windows.h int main() { HWND hwnd = GetAncestor(NULL, GA_PARENT); printf(%p\n, hwnd); hwnd = GetAncestor(NULL, GA_ROOT); printf(%p\n, hwnd); hwnd = GetAncestor(NULL, GA_ROOTOWNER); printf(%p\n, hwnd); hwnd = GetAncestor(NULL, 0); printf(%p\n, hwnd); return 0; } printed four 0's for me on Vista. On Thu, Mar 19, 2009 at 11:27 AM, Craig Schlenter craig.schlen...@gmail.com wrote: Hi OK, that's interesting, thank you. Does GetAncestor return something valid when passed that null HWND or does it pass null through to GetwindowRect? It would also be interesting to know what rect it returns please. Maybe it doesn't matter ... I haven't looked at the renderer code that creates this request to see if it actually cares about this when the window is null. Thank you, --Craig On Thu, Mar 19, 2009 at 7:56 PM, Mohamed Mansour m0.interact...@gmail.com wrote: Craig, it returns back a 0. + window 0x {unused=??? } HWND__ * On Thu, Mar 19, 2009 at 1:46 PM, Craig Schlenter craig.schlen...@gmail.com wrote: Hi Avi When I did the original change, that function wasn't being called with a null window. Clicking on a link in gmail opened the link in a new window as I recall. At some later point that changed possibly when some of the tab_contents stuff was hooked up. I think it's good practice to check for null since you don't want the renderer to be able to crash the browser but I do tend to think that it shouldn't be happening to begin with but I'm largely clueless about the code involved :( Perhaps someone with a windows build can put a breakpoint in OnGetRootWindowRect please and see if clicking on a link in an email in gmail passes a HWND of null at all? Thank you, --Craig On Thu, Mar 19, 2009 at 7:33 PM, Avi Drissman a...@google.com wrote: We've been seeing calls to ResourceMessageFilter::OnGet(Root)WindowRect for NULL windows. agl put in a fix for GTK with http://codereview.chromium.org/42356 and I'm seeing the same problem on the Mac. 1. Why isn't Windows seeing this? What happens when you pass a null HWND into ::GetAncestor and ::GetWindowRect? 2. Is this expected, or is this indicative of a bug? Avi --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Omnibox q around Mac+Chromium best-practices.
I'm refactoring my Omnibox code towards something I'm willing to put up for review, and am realizing that I need to find a way to rule on whether I should have thick Objective-C helpers or thin ones. Say for instance that I have an NSTableView, I'll need a data source for that, which needs to be an Objective-C object. At the thin extreme, I can put the minimum amount of code in that object to fulfill the data source protocol, plus anything I need for handling delegation or target/action type things, which leaves setup and wiring in the C++ code. At the thick extreme I would push most of the Objective-C code into the Objective-C object, and have the C++ code call into that. Or there's something in the middle. WDYT? Right now it's somewhere in the middle. I don't create Objective-C methods solely to be called from C++, nor C++ methods solely to be called from Objective-C, except for cases where either would need to poke through the encapsulation boundary. Thanks, scott --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Omnibox q around Mac+Chromium best-practices.
I would do the thin Objective C mode, partially since all Chrome developers know C++. I could debug that code or make changes to it if I was doing something that affected it, but I would have a much harder time with Objective-C. Brett On Thu, Mar 19, 2009 at 4:00 PM, Scott Hess sh...@chromium.org wrote: I'm refactoring my Omnibox code towards something I'm willing to put up for review, and am realizing that I need to find a way to rule on whether I should have thick Objective-C helpers or thin ones. Say for instance that I have an NSTableView, I'll need a data source for that, which needs to be an Objective-C object. At the thin extreme, I can put the minimum amount of code in that object to fulfill the data source protocol, plus anything I need for handling delegation or target/action type things, which leaves setup and wiring in the C++ code. At the thick extreme I would push most of the Objective-C code into the Objective-C object, and have the C++ code call into that. Or there's something in the middle. WDYT? Right now it's somewhere in the middle. I don't create Objective-C methods solely to be called from C++, nor C++ methods solely to be called from Objective-C, except for cases where either would need to poke through the encapsulation boundary. Thanks, scott --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] useless error messages
hi, i'm trying to add some code to the chromium code base and when i try to compile it i get these errors: 3MyFile.cpp 3C:\Program Files\Microsoft Visual Studio 8\VC\include\cstddef(18) : error C2039: 'ptrdiff_t' : is not a member of '`global namespace'' 3C:\Program Files\Microsoft Visual Studio 8\VC\include\cstddef(18) : error C2873: 'ptrdiff_t' : symbol cannot be used in a using-declaration 3C:\Program Files\Microsoft Visual Studio 8\VC\include\exception(230) : error C3083: 'stdext': the symbol to the left of a '::' must be a type 3C:\Program Files\Microsoft Visual Studio 8\VC\include\exception(230) : error C2039: 'exception' : is not a member of '`global namespace'' (and ~100 more of these) now i'm pretty sure the standard header files are fine. so what exactly is the problem? and what are the possible solutions? thanks, dumi --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Visual Studio Conversion to 2008 not converting couple of projects 4 errors?
We are not using 2.6? Not at the moment. Thanks, at a loss to explain it. Let me know if this happens again. Has anyone else seen this sort of thing? -BradN On Thu, Mar 19, 2009 at 1:42 PM, Bradley Nelson bradnel...@google.com wrote: Very mysterious. These are gyp related: ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj But these are not: ..\googleurl\build\googleurl.vcproj ..\v8\tools\visual_studio\v8.vcproj ..\v8\tools\visual_studio\v8_base.vcproj ..\v8\tools\visual_studio\v8_mksnapshot.vcproj ..\v8\tools\visual_studio\v8_shell_sample.vcproj ..\v8\tools\visual_studio\v8_snapshot.vcproj ..\v8\tools\visual_studio\v8_snapshot_cc.vcproj Do you recall roughly when this was time wise? Did you have a local python installed, if so, what version? Let me know if this crops up again. -BradN On Wed, Mar 18, 2009 at 11:11 PM, Mohamed Mansour m0.interact...@gmail.com wrote: Hi, I did what you said, and now getting other files which failed: ..\googleurl\build\googleurl.vcproj ..\v8\tools\visual_studio\v8.vcproj ..\v8\tools\visual_studio\v8_base.vcproj ..\v8\tools\visual_studio\v8_mksnapshot.vcproj ..\v8\tools\visual_studio\v8_shell_sample.vcproj ..\v8\tools\visual_studio\v8_snapshot.vcproj ..\v8\tools\visual_studio\v8_snapshot_cc.vcproj I did a gclient sync, and then got these previous errors (again): ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj So I deleted the complete folder associated with these projects which were: - googleurl - v8 - base - third_party\bzip2 - net - base Then did a gclient sync, to grab them back, and it works now... So what caused this hickup? I never touched any of those files. If someone knows why, it would be nice to know, so I can learn from my mistakes. Thanks! -m0 On Thu, Mar 19, 2009 at 12:09 AM, Alpha (Hin-Chung) Lam hc...@google.com wrote: Looks like those project files are missing. After gclient sync, do: gclient runhooks --force to generate the project files from gyp. See if that helps. Alpha 2009/3/18 Mohamed Mansour m0.interact...@gmail.com Hey there, I have some questions regarding the current build. It might be GYP related, but I don't know yet ... Three days ago, the build was doing just fine. Today, I did a gclient sync and while converting the solution to VS2008, I am receiving a bunch of errors. It wasn't doing so 3 days ago. I am receiving errors that has the following description Failed to upgrade project file. Please make sure the file exists and is not write-protected. for these files: ..\base\base.vcproj ..\base\base_gfx.vcproj ..\base\base_unittests.vcproj ..\third_party\bzip2\bzip2.vcproj ..\net\crash_cache.vcproj ..\base\debug_message.vcproj Anyone has any idea what may have caused this? -- m0 --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] [extensions] toolstrip default CSS
I have a CL that implements default CSS for toolstrips to make 'em pretty (well, relatively pretty). But it doesn't work because the gradient crashes in webkit for some reason. Anyway, this isn't a huge need at this moment, so I'll probably abandon the change for now. But if anyone later wants to pick it up, here it is: http://codereview.chromium.org/42435 - a --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---