summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_view.h
Commit message (Collapse)AuthorAgeFilesLines
* Try #2 of "make JavaScript alerts reflect the URL of the frame they came from,brettw@chromium.org2009-03-051-4/+5
| | | | | | | | | | | not the enclosing frame." The diffrence between this one and the previous version of this patch is the addition of test_webview_delegate. BUG=1686837 Review URL: http://codereview.chromium.org/39163 Review URL: http://codereview.chromium.org/40175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11026 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 11002.brettw@chromium.org2009-03-051-5/+4
| | | | | | Review URL: http://codereview.chromium.org/39203 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11008 0039d316-1c4b-4281-b951-d872f2087c98
* Make JavaScript alerts reflect the URL of the frame they came from, not thebrettw@chromium.org2009-03-051-4/+5
| | | | | | | | | enclosing frame. BUG=1686837 Review URL: http://codereview.chromium.org/39163 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11002 0039d316-1c4b-4281-b951-d872f2087c98
* Initial checkin of the out of process worker implementation.jam@chromium.org2009-03-041-0/+1
| | | | | | | | | | | WebWorkerClient/WebWorker are parallel interfaces of WebCore::{WorkerObjectProxy, WorkerContextProxy} that use Chrome data types. When WebKit requests a WorkerObjectProxy, we create an instance of WebWorkerClientImpl. This class creates an object that implements a Chromium version of WorkerObjectProxy (i.e. with Chrome data types) through WebViewDelegate. That object is a WebWorkerProxy and talks over IPC to a WebWorker object in the worker process. The WebWorker object creates the actual WebCore::Worker object using another class in glue: WebWorkerImpl. When the WebCore::Worker object running in the worker process wants to talk back to the code running in the renderer, it talks to WebWorkerImpl which implements WebCore::WorkerObjectProxy. WebWorkerImpl converts the data types to Chrome compatible ones, and then calls the WebWorkerClient version which does IPC to get to the renderer process. This ends up at WebWorkerProxy, which calls WebWorkerClientImpl (the original class). In future changes, sandboxing, multiple worker processes etc will be added. Note that I also had to make two small changes to WebKit, since WorkerMessagingProxy couldn't be created as is for the nested worker case. I'll either check it in myself or work with Jian to do so. Review URL: http://codereview.chromium.org/27157 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10847 0039d316-1c4b-4281-b951-d872f2087c98
* Make our IME backend platform-independent.hbono@chromium.org2009-03-031-0/+1
| | | | | | | This change makes our IME backend run not only on Windows but also on Linux and Mac. This change also adds another unit-test which verifies the backend runs on Linux and Mac without problems. Review URL: http://codereview.chromium.org/27124 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10783 0039d316-1c4b-4281-b951-d872f2087c98
* Register an onmessage handler with the external host binding instead of ↵ananta@chromium.org2009-03-031-2/+1
| | | | | | | | | | | explicitly passing in a target Javascript function to execute. The onmessage handler is a one argument Javascript function for now. Review URL: http://codereview.chromium.org/28291 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10760 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation of AudioRendererHosthclam@chromium.org2009-02-271-1/+1
| | | | | | | | | | | | | | | | Completing the implementation of AudioRendererHost in chrome/browser/renderer_host/audio_renderer_host.cc with ResourceMessageFilter actually delegating calls to it when corresponding IPC messages are received. With this patch we should be able to send audio related IPC messages to browser with working audio, but we still need to complete the singleton paradigm for AudioManager to start using it in unit test and renderer. Review URL: http://codereview.chromium.org/21494 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10647 0039d316-1c4b-4281-b951-d872f2087c98
* Prototype extension process. This is a proof of concept, with a lot ofmpcomplete@google.com2009-02-271-6/+9
| | | | | | | | | | rough edges. Mostly this just fires up a renderer with an "extension" object exposed, which right now only has a single method "getTestString". I also did some misc cleanup along the way. Review URL: http://codereview.chromium.org/27187 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10620 0039d316-1c4b-4281-b951-d872f2087c98
* DevToolsAgent provides IPC access to the inspected page from developer tools.yurys@google.com2009-02-261-0/+14
| | | | | | | | | | | | | RenderView running developer tools front-end instantiates DevToolsClient that handles IPC communication with DevToolsAgent. All messages are wrapped and routed through browser process. darin: please look at changes related to messages handling in RenderView jam: please review handling of forwarded messages in DevToolsClient and DevToolsAgent. Review URL: http://codereview.chromium.org/21543 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10459 0039d316-1c4b-4281-b951-d872f2087c98
* This CL causes the autofill popup to hide when the browser window is moved ↵jcampan@chromium.org2009-02-251-0/+7
| | | | | | | | | | | or resized. TEST=Bring up an autofill popup in a form, move the browser. The autofill popup should be closed. BUG=7401 R=ben Review URL: http://codereview.chromium.org/28126 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10384 0039d316-1c4b-4281-b951-d872f2087c98
* Audio related IPC messages and handlers from browser tohclam@chromium.org2009-02-201-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | renderer 1. Added 4 IPC messages and corresponding handlers for audio: - RequestAudioPacket(int stream_id) Browser process is hungry for audio packet, notify renderer process to provide more. - NotifyAudioStreamCreated(int stream_id, SharedMemoryHandler buffer, int len) Notify stream created event and provide buffer for filling in the future. - NotifyAudioStreamStateChanged(int stream_id, enum state, nt info) The internal state of the audio stream has chagned, notify renderer process of the change. int info provides additional information of the change, e.g. platform specific error code. - NotifyAudioStreamVolume(int stream_id, double left, double right) Notify the current volume for the audio stream. 2. Added methods to RenderView for creating audio streams and delegate audio related requests to browser process with IPC. Now the registration and bookkeeping of AudioRendererImpl happens in RenderView (see audio_renderers_). The reason being that the code is almost just an base::IDMap that doesn't worth creating a new class. Review URL: http://codereview.chromium.org/20410 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10078 0039d316-1c4b-4281-b951-d872f2087c98
* Prepare some files for porting:estade@chromium.org2009-02-181-2/+2
| | | | | | | | | - Trade in some old wstrings for FilePaths. - Remove some unnecessary headers. Review URL: http://codereview.chromium.org/21466 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9986 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 9944.yurys@google.com2009-02-181-15/+0
| | | | | | | This change broke ui, interactive and Vista Perf tests. I felt like reverting. Review URL: http://codereview.chromium.org/24020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9947 0039d316-1c4b-4281-b951-d872f2087c98
* Create communication channel between developer tools UI implemented in JS ↵yurys@google.com2009-02-181-0/+15
| | | | | | | | | | | | | and residing in a process different from inspected page renderer process. There is no direct IPC channel between the two processes so all messages are routed through browser process. On the side of inspected page there is ToolsAgent existing in all renderers so that we can start inspecting the page at any moment by talking to this object. On the side of developer tools renderer there is ToolsClient which is created only for RenderView that host developer tools UI. This change is a slightly modified version of http://codereview.chromium.org/20221/show Review URL: http://codereview.chromium.org/20430 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9944 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 9855.maruel@chromium.org2009-02-161-15/+0
| | | | | | | This change didn't have any description and it broke the tree Review URL: http://codereview.chromium.org/21393 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9856 0039d316-1c4b-4281-b951-d872f2087c98
* Review URL: http://codereview.chromium.org/20405yurys@google.com2009-02-161-0/+15
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9855 0039d316-1c4b-4281-b951-d872f2087c98
* Add early-injection capability to user scripts.aa@chromium.org2009-02-141-0/+2
| | | | | | Review URL: http://codereview.chromium.org/19624 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9822 0039d316-1c4b-4281-b951-d872f2087c98
* Some consumers in the renderer process need access to an IO message loop, ↵hclam@chromium.org2009-02-131-0/+6
| | | | | | | | | | RenderThread which holds WebKit runs on a message loop with type TYPE_DEFAULT, so we need to expose the owner loop of RenderThread which has type TYPE_IO. That particular message loop is used for handling all IPC messages, so we need to be cautious about using this message loop and don't block on it. Review URL: http://codereview.chromium.org/21318 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9741 0039d316-1c4b-4281-b951-d872f2087c98
* Add the first unit-test that tests our IME backend.hbono@chromium.org2009-02-121-0/+1
| | | | | | | | | This change is the first unit-test that tests our IME backend in the RenderWidget class. Thanks to the unit-test framework for the RenderView class created by Carlos and Brett, we can now implement this unit test. (I'm not sure I use this framework correctly, though. Please blame me if I use it improperly.) Currently, this IME test just tests if our IME code can properly activate (or de-activate) IMEs for an <input> element and the initial position of a candidate window. I'm going to add more practical cases to this test. Review URL: http://codereview.chromium.org/20014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9648 0039d316-1c4b-4281-b951-d872f2087c98
* Change url wstrings to GURLSestade@chromium.org2009-02-121-1/+1
| | | | | | Review URL: http://codereview.chromium.org/20273 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9635 0039d316-1c4b-4281-b951-d872f2087c98
* janitorial: browser_render_process_host header/lint cleanup. (try 2)thestig@chromium.org2009-02-111-6/+5
| | | | | | Review URL: http://codereview.chromium.org/21272 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9624 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 9594.thestig@chromium.org2009-02-111-5/+6
| | | | | | Review URL: http://codereview.chromium.org/20276 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9599 0039d316-1c4b-4281-b951-d872f2087c98
* janitorial: clean up unnecessary includes in src/chrome/renderer.thestig@chromium.org2009-02-111-6/+5
| | | | | | Review URL: http://codereview.chromium.org/20266 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9594 0039d316-1c4b-4281-b951-d872f2087c98
* Reference and create a RenderView when needed.jrg@chromium.org2009-02-061-0/+3
| | | | | | | | | This initiates the landslide of linker hell in Chromium.app, bringing in webkit, v8, and the kitchen sink. Review URL: http://codereview.chromium.org/21123 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9335 0039d316-1c4b-4281-b951-d872f2087c98
* Finish taking out render_messages.h includes from headers.jam@chromium.org2009-02-051-3/+13
| | | | | | Review URL: http://codereview.chromium.org/20072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9209 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land revision 8821 with the ui test fixed.maruel@chromium.org2009-01-291-3/+1
| | | | | | | | | | Disconnect the "browser controlled printing" and always delegate the control flow to the renderer. Simplify the tests by not using a message loop anymore. Followup changes will remove more parts that are not needed anymore. Review URL: http://codereview.chromium.org/19460 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8886 0039d316-1c4b-4281-b951-d872f2087c98
* Roll back r8821mark@chromium.org2009-01-281-1/+3
| | | | | | Review URL: http://codereview.chromium.org/19453 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8834 0039d316-1c4b-4281-b951-d872f2087c98
* Disconnect the "browser controlled printing" and always delegate the control ↵maruel@chromium.org2009-01-281-3/+1
| | | | | | | | | flow to the renderer. Followup changes will remove more parts that are not needed anymore. Review URL: http://codereview.chromium.org/18860 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8821 0039d316-1c4b-4281-b951-d872f2087c98
* Context menus for text selections in editable boxes and links should include ↵pkasting@chromium.org2009-01-281-1/+1
| | | | | | | | the Search menu item. Original patch by Brian Duff (see http://codereview.chromium.org/16510 ), r=me. BUG=1925 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8815 0039d316-1c4b-4281-b951-d872f2087c98
* Remove extraneous uses of the --enable-user-scriptaa@chromium.org2009-01-281-3/+0
| | | | | | | | | | switch. It's better to check this at one chokepoint (initialization) and let the rest of the code work the same, but end up as no-ops. Review URL: http://codereview.chromium.org/18401 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8800 0039d316-1c4b-4281-b951-d872f2087c98
* Rolback r8793: Remove extraneous uses of the --enable-user-scriptmal@chromium.org2009-01-281-0/+3
| | | | | | | | | | | | | switch. It's better to check this at one chokepoint (initialization) and let the rest of the code work the same, but end up as no-ops. This seems to break ui_tests. Review URL: http://codereview.chromium.org/19418 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8794 0039d316-1c4b-4281-b951-d872f2087c98
* Remove extraneous uses of the --enable-user-scriptaa@chromium.org2009-01-281-3/+0
| | | | | | | | | | switch. It's better to check this at one chokepoint (initialization) and let the rest of the code work the same, but end up as no-ops. Review URL: http://codereview.chromium.org/18401 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8793 0039d316-1c4b-4281-b951-d872f2087c98
* POSIX: gfx::NativeViewId and CrossProcessEventagl@chromium.org2009-01-271-8/+4
| | | | | | | | | | | | | | | | | | | Create a couple new typedefs for porting work. Firstly, gfx::NativeViewId is a handle to a platform specific widget in the renderer process. For Windows, this is just a HWND as before. However, in other platforms the ids used in the renderer process will be something else. CrossProcessEvent is the type of a HANDLE to a Windows event object which is used across processes. Since we aren't going to support these sorts of events on non-Windows platforms, this will have to go away at some point. For now, however, this lets us build code without too many ifdefs all over the place. Review URL: http://codereview.chromium.org/18768 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8756 0039d316-1c4b-4281-b951-d872f2087c98
* POSIX: Porting renderer/render_view.cc, low hanging fruitagl@chromium.org2009-01-221-0/+4
| | | | | | | Review URL: http://codereview.chromium.org/18468 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8440 0039d316-1c4b-4281-b951-d872f2087c98
* POSIX: Porting renderer/render_process.cc, low hanging fruitagl@chromium.org2009-01-221-1/+4
| | | | | | | Review URL: http://codereview.chromium.org/18622 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8436 0039d316-1c4b-4281-b951-d872f2087c98
* WaitableEvent is the replacement for Windows events. Previously in the code, ↵agl@chromium.org2009-01-151-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | a HANDLE from CreateEvent was used for signaling, both within a process and across processes. WaitableEvent is the cross platform replacement for this. To convert: * HANDLE -> base::WaitableEvent* * ScopedHandle -> scoped_ptr<base::WaitableEvent> * CreateEvent -> new base::WaitableEvent * SetEvent -> base::WaitableEvent::Signal * ResetEvent -> base::WaitableEvent::Reset * ObjectWatcher -> base::WaitableEventWatcher * WaitForMultipleObjects -> static base::WaitableEvent::WaitMany ObjectWatcher remains for Windows specific code. WaitableEventWatcher has an identical interface save, * It uses WaitableEvents, not HANDLEs * It returns void from StartWatching and StopWatcher, rather than errors. System internal errors are fatal to the address space IMPORTANT: There are semantic differences between the different platforms. WaitableEvents on Windows are implemented on top of events. Windows events work across process and this is used mostly for modal dialog support. Windows events can be duplicated with DuplicateHandle. On other platforms, WaitableEvent works only within a single process. In the future we shall have to replace the current uses of cross-process events with IPCs. BEWARE: HANDLE, on Windows, is a void *. Since any pointer type coerces to void *, you can pass a WaitableEvent * where a HANDLE is expected without any build-time errors. Review URL: http://codereview.chromium.org/16554 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8126 0039d316-1c4b-4281-b951-d872f2087c98
* Updating so that Gears can spawn file selectors when running in the renderer ↵zork@google.com2009-01-131-2/+5
| | | | | | | | process Review URL: http://codereview.chromium.org/14907 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7986 0039d316-1c4b-4281-b951-d872f2087c98
* This is a rename of the term 'Greasemonkey' to 'user script' in Chromium.aa@chromium.org2009-01-091-2/+2
| | | | | | | | | | | I'm doing this to avoid confusion with the Firefox version of Greasemonkey and also because 'user script' is really the correct generic term. At the same time, I also moved user_script_master* into extensions/ because I want these two pieces to get closer and closer such that standalone user scripts are just a very small extension. Also extensions will be relying on most of the user script code. Review URL: http://codereview.chromium.org/17281 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7827 0039d316-1c4b-4281-b951-d872f2087c98
* The popup for autofill is now never activated, even when clicked.jcampan@chromium.org2009-01-091-2/+1
| | | | | | | | | | | | | This allows us to hide it when the page loses focus. (doing that previously would have caused the popup to be hidden before the click in the popup was sent to the renderer). Most of the file changes are just renaming focus_on_show to activatable. TEST=Open a form and make an autofill popup. Focus another window, the popup should disappear. Ensure the autofill still work properly, and the combo-box as well. BUG=3844,5830 Review URL: http://codereview.chromium.org/17455 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7823 0039d316-1c4b-4281-b951-d872f2087c98
* Move plugins to FilePaths, some cleanupavi@google.com2009-01-061-1/+1
| | | | | | Review URL: http://codereview.chromium.org/16456 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7588 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor the render widget unittest so it can be reused to create a render viewbrettw@chromium.org2009-01-051-5/+21
| | | | | | | | | | | | | | | | | unit test. Change the mock render thread to save all IPC messages it is asked to send so that tests can verify that the correct ones were sent. There are some new functions that support this checking. Plumb the form state change notification through the render view so that we will correctly update the form state to the browser. Write two RenderView unit tests. One arbitrarily tests OnLoadAlternateHTMLText which I used as a testcase for my testing framework. The other tests the above form state change notification. I had to expose the timeout of this message through the RenderView API so that the test can change it. Review URL: http://codereview.chromium.org/16482 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7549 0039d316-1c4b-4281-b951-d872f2087c98
* Bridge out media player from MediaPlayerPrivate.hclam@chromium.org2008-12-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove MediaPlayerPrivateChromium.cpp and move it to webkit/glue/media_player_private_impl.cc - Added the following classes: WebMediaPlayer WebMediaPlayerImpl WebMediaPlayerDelegate WebMediaPlayerDelegateImpl TestWebMediaPlayerDelegate VideoStackMediaPlayer (Just a forward declaration) - One include fix for webkit/glue/webframe.h - Overview of what each class is doing: WebMediaPlayer and WebMediaPlayerImpl Wrapper over the MediaPlayerPrivate, it provides methods like Repaint(), NotifyNetworkStateChange(), etc to VideoStackMediaPlayer. It also creates the ResourceHandle for VideoStackMediaPlayer for resource loading, or maybe VideoStackMediaPlayer can simply use webkit_glue::ResourceDispatcher? WebMediaPlayerDelegate, WebMediaPlayerDelegateImpl Delegate calls from webkit to the internal media player. MediaPlayerPrivate Forward calls to WebMidiaPlayerDelegate, creates WebMediaPlayerDelegate and WebMediaPlayer in the constructor. Expose some public methods to WebMediaPlayer so we can actually do repaint and notification of changes. Review URL: http://codereview.chromium.org/13762 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7256 0039d316-1c4b-4281-b951-d872f2087c98
* Add "Enable spell check for this field" menu option in sub context menu for ↵sidchat@google.com2008-12-151-0/+1
| | | | | | | | context menu over text box, and deploy its functionality accordingly across the code. This patch also allows manual switch-on of spell check in single line text box fields. Review URL: http://codereview.chromium.org/13731 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7000 0039d316-1c4b-4281-b951-d872f2087c98
* Fix window.open()/window.close() regression by disabling window.close() ↵erg@google.com2008-12-011-1/+14
| | | | | | | | | | | until a message comes back from the Browser thread saying that it's OK to allow javascript close calls. ISSUE=http://crbug.com/4007 Review URL: http://codereview.chromium.org/12691 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6165 0039d316-1c4b-4281-b951-d872f2087c98
* Add Terminate() to the Process object, have RenderProcessHost use this to ↵brettw@google.com2008-11-141-2/+1
| | | | | | | | | | avoid some more Windows specific code. Move Process and SharedMemory into the base namespace (most changes). Review URL: http://codereview.chromium.org/10895 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5446 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent crash due to DIB allocation failure joshia@google.com2008-11-121-1/+1
| | | | | | | | | | | | | Change the way we capture tab thumbnail images so that the capturing code can deal with failure. BUG=3795 Review URL: http://codereview.chromium.org/9717 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5244 0039d316-1c4b-4281-b951-d872f2087c98
* Review URL: http://codereview.chromium.org/10005petersont@google.com2008-11-111-2/+5
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5151 0039d316-1c4b-4281-b951-d872f2087c98
* Change old code from "unloadListnerChanged" model to new WebKit ↵erikkay@google.com2008-11-101-1/+2
| | | | | | | | | | | EnableSuddenTermination, unforking a bunch of code. BUG=http://crbug.com/4064 Review URL: http://codereview.chromium.org/9746 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5116 0039d316-1c4b-4281-b951-d872f2087c98
* Review URL: http://codereview.chromium.org/10237petersont@google.com2008-11-081-5/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5059 0039d316-1c4b-4281-b951-d872f2087c98
* Entries in a form get recorded when the user submits the form. Database and ↵petersont@google.com2008-11-081-2/+5
| | | | | | | | pop-up menu talk to each other. Pop-up menu appears containing suggestions. Review URL: http://codereview.chromium.org/9462 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5058 0039d316-1c4b-4281-b951-d872f2087c98