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

Unified Diff: webkit/default_plugin/plugin_impl_gtk.cc

Issue 2079016: Linux: Initial scaffolding for default plugin. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: comments Created 10 years, 7 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
« no previous file with comments | « webkit/default_plugin/plugin_impl_gtk.h ('k') | webkit/default_plugin/plugin_impl_mac.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/default_plugin/plugin_impl_gtk.cc
diff --git a/webkit/default_plugin/plugin_impl_gtk.cc b/webkit/default_plugin/plugin_impl_gtk.cc
new file mode 100644
index 0000000000000000000000000000000000000000..cfc599a4a24eba44cdd4d77512ac30f6c1688528
--- /dev/null
+++ b/webkit/default_plugin/plugin_impl_gtk.cc
@@ -0,0 +1,139 @@
+// Copyright (c) 2010 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 "webkit/default_plugin/plugin_impl_gtk.h"
+
+#include <gdk/gdkx.h>
+
+#include "base/file_util.h"
+#include "base/path_service.h"
+#include "base/string_util.h"
+#include "googleurl/src/gurl.h"
+#include "grit/webkit_strings.h"
+#include "unicode/locid.h"
+#include "webkit/default_plugin/default_plugin_shared.h"
+#include "webkit/default_plugin/plugin_main.h"
+#include "webkit/glue/webkit_glue.h"
+
+// TODO(thakis): Most methods in this class are stubbed out an need to be
+// implemented.
+
+PluginInstallerImpl::PluginInstallerImpl(int16 mode)
+ : container_(NULL) {
+}
+
+PluginInstallerImpl::~PluginInstallerImpl() {
+ if (container_)
+ gtk_widget_destroy(container_);
+}
+
+bool PluginInstallerImpl::Initialize(void* module_handle, NPP instance,
+ NPMIMEType mime_type, int16 argc,
+ char* argn[], char* argv[]) {
+ DLOG(INFO) << __FUNCTION__ << " MIME Type : " << mime_type;
+ DCHECK(instance != NULL);
+
+ if (mime_type == NULL || strlen(mime_type) == 0) {
+ DLOG(WARNING) << __FUNCTION__ << " Invalid parameters passed in";
+ NOTREACHED();
+ return false;
+ }
+
+ instance_ = instance;
+ mime_type_ = mime_type;
+
+ return true;
+}
+
+bool PluginInstallerImpl::NPP_SetWindow(NPWindow* window_info) {
+ if (container_)
+ gtk_widget_destroy(container_);
+ container_ = gtk_plug_new(reinterpret_cast<XID>(window_info->window));
+
+ // Add label.
+ GtkWidget* box = gtk_vbox_new(FALSE, 0);
+ GtkWidget* label = gtk_label_new("Missing Plug-in");
+ gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
+ gtk_container_add(GTK_CONTAINER(container_), box);
+
+ gtk_widget_show_all(container_);
+
+ return true;
+}
+
+void PluginInstallerImpl::Shutdown() {
+}
+
+void PluginInstallerImpl::NewStream(NPStream* stream) {
+ plugin_install_stream_ = stream;
+}
+
+void PluginInstallerImpl::DestroyStream(NPStream* stream, NPError reason) {
+ if (stream == plugin_install_stream_)
+ plugin_install_stream_ = NULL;
+}
+
+bool PluginInstallerImpl::WriteReady(NPStream* stream) {
+ bool ready_to_accept_data = false;
+ return ready_to_accept_data;
+}
+
+int32 PluginInstallerImpl::Write(NPStream* stream, int32 offset,
+ int32 buffer_length, void* buffer) {
+ return true;
+}
+
+void PluginInstallerImpl::ClearDisplay() {
+}
+
+void PluginInstallerImpl::RefreshDisplay() {
+}
+
+bool PluginInstallerImpl::CreateToolTip() {
+ return true;
+}
+
+void PluginInstallerImpl::UpdateToolTip() {
+}
+
+void PluginInstallerImpl::DisplayAvailablePluginStatus() {
+}
+
+void PluginInstallerImpl::DisplayStatus(int message_resource_id) {
+}
+
+void PluginInstallerImpl::DisplayPluginDownloadFailedStatus() {
+}
+
+void PluginInstallerImpl::URLNotify(const char* url, NPReason reason) {
+}
+
+int16 PluginInstallerImpl::NPP_HandleEvent(void* event) {
+ return 0;
+}
+
+std::wstring PluginInstallerImpl::ReplaceStringForPossibleEmptyReplacement(
+ int message_id_with_placeholders,
+ int messsage_id_without_placeholders,
+ const std::wstring& replacement_string) {
+ return L"";
+}
+
+void PluginInstallerImpl::DownloadPlugin() {
+}
+
+void PluginInstallerImpl::DownloadCancelled() {
+ DisplayAvailablePluginStatus();
+}
+
+void PluginInstallerImpl::ShowInstallDialog() {
+}
+
+void PluginInstallerImpl::NotifyPluginStatus(int status) {
+ default_plugin::g_browser->getvalue(
+ instance_,
+ static_cast<NPNVariable>(
+ default_plugin::kMissingPluginStatusStart + status),
+ NULL);
+}
« no previous file with comments | « webkit/default_plugin/plugin_impl_gtk.h ('k') | webkit/default_plugin/plugin_impl_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698