Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Unified Diff: chrome/browser/renderer_host/render_message_filter_gtk.cc

Issue 6532073: Move core pieces of browser\renderer_host to src\content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/render_message_filter_gtk.cc
===================================================================
--- chrome/browser/renderer_host/render_message_filter_gtk.cc (revision 75488)
+++ chrome/browser/renderer_host/render_message_filter_gtk.cc (working copy)
@@ -1,346 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/renderer_host/render_message_filter.h"
-
-#include <fcntl.h>
-#include <map>
-
-#include "base/file_util.h"
-#include "base/lazy_instance.h"
-#include "base/path_service.h"
-#include "chrome/browser/browser_thread.h"
-#include "chrome/common/chrome_paths.h"
-#include "chrome/common/render_messages.h"
-#include "grit/generated_resources.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebScreenInfo.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/x11/WebScreenInfoFactory.h"
-#include "ui/base/clipboard/clipboard.h"
-#include "ui/base/x/x11_util.h"
-#include "ui/gfx/gtk_native_view_id_manager.h"
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/printing/print_dialog_cloud.h"
-#endif
-
-using WebKit::WebScreenInfo;
-using WebKit::WebScreenInfoFactory;
-
-namespace {
-
-typedef std::map<int, FilePath> SequenceToPathMap;
-
-struct PrintingSequencePathMap {
- SequenceToPathMap map;
- int sequence;
-};
-
-// No locking, only access on the FILE thread.
-static base::LazyInstance<PrintingSequencePathMap>
- g_printing_file_descriptor_map(base::LINKER_INITIALIZED);
-
-} // namespace
-
-// We get null window_ids passed into the two functions below; please see
-// http://crbug.com/9060 for more details.
-
-void RenderMessageFilter::DoOnGetScreenInfo(gfx::NativeViewId view,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::BACKGROUND_X11));
- Display* display = ui::GetSecondaryDisplay();
- int screen = ui::GetDefaultScreen(display);
- WebScreenInfo results = WebScreenInfoFactory::screenInfo(display, screen);
- ViewHostMsg_GetScreenInfo::WriteReplyParams(reply_msg, results);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnGetWindowRect(gfx::NativeViewId view,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::BACKGROUND_X11));
- // This is called to get the x, y offset (in screen coordinates) of the given
- // view and its width and height.
- gfx::Rect rect;
- XID window;
-
- base::AutoLock lock(GtkNativeViewManager::GetInstance()->unrealize_lock());
- if (GtkNativeViewManager::GetInstance()->GetXIDForId(&window, view)) {
- if (window) {
- int x, y;
- unsigned width, height;
- if (ui::GetWindowGeometry(&x, &y, &width, &height, window))
- rect = gfx::Rect(x, y, width, height);
- }
- }
-
- ViewHostMsg_GetWindowRect::WriteReplyParams(reply_msg, rect);
- Send(reply_msg);
-}
-
-// Return the top-level parent of the given window. Called on the
-// BACKGROUND_X11 thread.
-static XID GetTopLevelWindow(XID window) {
- bool parent_is_root;
- XID parent_window;
-
- if (!ui::GetWindowParent(&parent_window, &parent_is_root, window))
- return 0;
- if (parent_is_root)
- return window;
-
- return GetTopLevelWindow(parent_window);
-}
-
-void RenderMessageFilter::DoOnGetRootWindowRect(gfx::NativeViewId view,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::BACKGROUND_X11));
- // This is called to get the screen coordinates and size of the browser
- // window itself.
- gfx::Rect rect;
- XID window;
-
- base::AutoLock lock(GtkNativeViewManager::GetInstance()->unrealize_lock());
- if (GtkNativeViewManager::GetInstance()->GetXIDForId(&window, view)) {
- if (window) {
- const XID toplevel = GetTopLevelWindow(window);
- if (toplevel) {
- int x, y;
- unsigned width, height;
- if (ui::GetWindowGeometry(&x, &y, &width, &height, toplevel))
- rect = gfx::Rect(x, y, width, height);
- }
- }
- }
-
- ViewHostMsg_GetRootWindowRect::WriteReplyParams(reply_msg, rect);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnClipboardIsFormatAvailable(
- ui::Clipboard::FormatType format, ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- const bool result = GetClipboard()->IsFormatAvailable(format, buffer);
-
- ViewHostMsg_ClipboardIsFormatAvailable::WriteReplyParams(reply_msg, result);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnClipboardReadText(ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- string16 result;
- GetClipboard()->ReadText(buffer, &result);
-
- ViewHostMsg_ClipboardReadText::WriteReplyParams(reply_msg, result);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnClipboardReadAsciiText(
- ui::Clipboard::Buffer buffer, IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- std::string result;
- GetClipboard()->ReadAsciiText(buffer, &result);
-
- ViewHostMsg_ClipboardReadAsciiText::WriteReplyParams(reply_msg, result);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnClipboardReadHTML(ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- std::string src_url_str;
- string16 markup;
- GetClipboard()->ReadHTML(buffer, &markup, &src_url_str);
- const GURL src_url = GURL(src_url_str);
-
- ViewHostMsg_ClipboardReadHTML::WriteReplyParams(reply_msg, markup, src_url);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnClipboardReadAvailableTypes(
- ui::Clipboard::Buffer buffer, IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnClipboardReadData(ui::Clipboard::Buffer buffer,
- const string16& type,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- Send(reply_msg);
-}
-void RenderMessageFilter::DoOnClipboardReadFilenames(
- ui::Clipboard::Buffer buffer, IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- Send(reply_msg);
-}
-
-#if defined(OS_CHROMEOS)
-void RenderMessageFilter::DoOnAllocateTempFileForPrinting(
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- base::FileDescriptor temp_file_fd(-1, false);
- SequenceToPathMap* map = &g_printing_file_descriptor_map.Get().map;
- const int sequence_number = g_printing_file_descriptor_map.Get().sequence++;
-
- FilePath path;
- if (file_util::CreateTemporaryFile(&path)) {
- int fd = open(path.value().c_str(), O_WRONLY);
- if (fd >= 0) {
- SequenceToPathMap::iterator it = map->find(sequence_number);
- if (it != map->end()) {
- NOTREACHED() << "Sequence number already in use. seq=" <<
- sequence_number;
- } else {
- (*map)[sequence_number] = path;
- temp_file_fd.fd = fd;
- temp_file_fd.auto_close = true;
- }
- }
- }
-
- ViewHostMsg_AllocateTempFileForPrinting::WriteReplyParams(
- reply_msg, temp_file_fd, sequence_number);
- Send(reply_msg);
-}
-
-void RenderMessageFilter::DoOnTempFileForPrintingWritten(int sequence_number) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- SequenceToPathMap* map = &g_printing_file_descriptor_map.Get().map;
- SequenceToPathMap::iterator it = map->find(sequence_number);
- if (it == map->end()) {
- NOTREACHED() << "Got a sequence that we didn't pass to the "
- "renderer: " << sequence_number;
- return;
- }
-
- if (cloud_print_enabled_)
- PrintDialogCloud::CreatePrintDialogForPdf(it->second, string16(), true);
- else
- NOTIMPLEMENTED();
-
- // Erase the entry in the map.
- map->erase(it);
-}
-#endif // defined(OS_CHROMEOS)
-
-void RenderMessageFilter::OnGetScreenInfo(gfx::NativeViewId view,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::BACKGROUND_X11, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnGetScreenInfo, view, reply_msg));
-}
-
-void RenderMessageFilter::OnGetWindowRect(gfx::NativeViewId view,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::BACKGROUND_X11, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnGetWindowRect, view, reply_msg));
-}
-
-void RenderMessageFilter::OnGetRootWindowRect(gfx::NativeViewId view,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::BACKGROUND_X11, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnGetRootWindowRect, view, reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardIsFormatAvailable(
- ui::Clipboard::FormatType format, ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardIsFormatAvailable, format,
- buffer, reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardReadText(ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardReadText, buffer,
- reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardReadAsciiText(ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardReadAsciiText, buffer,
- reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardReadHTML(ui::Clipboard::Buffer buffer,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardReadHTML, buffer,
- reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardReadAvailableTypes(
- ui::Clipboard::Buffer buffer, IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardReadAvailableTypes, buffer,
- reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardReadData(ui::Clipboard::Buffer buffer,
- const string16& type,
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardReadData, buffer, type,
- reply_msg));
-}
-
-void RenderMessageFilter::OnClipboardReadFilenames(
- ui::Clipboard::Buffer buffer, IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnClipboardReadFilenames, buffer,
- reply_msg));
-}
-
-#if defined(OS_CHROMEOS)
-void RenderMessageFilter::OnAllocateTempFileForPrinting(
- IPC::Message* reply_msg) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnAllocateTempFileForPrinting,
- reply_msg));
-}
-
-void RenderMessageFilter::OnTempFileForPrintingWritten(int sequence_number) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::DoOnTempFileForPrintingWritten,
- sequence_number));
-}
-#endif // defined(OS_CHROMEOS)

Powered by Google App Engine
This is Rietveld 408576698