summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/extensions/extension_host.cc11
-rw-r--r--chrome/browser/gtk/extension_shelf_gtk.cc20
-rw-r--r--chrome/browser/gtk/extension_view_gtk.cc3
-rw-r--r--chrome/browser/gtk/extension_view_gtk.h6
4 files changed, 24 insertions, 16 deletions
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
index f393517..17062ce 100644
--- a/chrome/browser/extensions/extension_host.cc
+++ b/chrome/browser/extensions/extension_host.cc
@@ -219,6 +219,9 @@ void ExtensionHost::DidNavigate(RenderViewHost* render_view_host,
}
void ExtensionHost::DidStopLoading(RenderViewHost* render_view_host) {
+ static const StringPiece toolstrip_css(
+ ResourceBundle::GetSharedInstance().GetRawDataResource(
+ IDR_EXTENSIONS_TOOLSTRIP_CSS));
#if defined(TOOLKIT_VIEWS)
ExtensionView* view = view_.get();
if (view) {
@@ -228,9 +231,6 @@ void ExtensionHost::DidStopLoading(RenderViewHost* render_view_host) {
// As a toolstrip, inject our toolstrip CSS to make it easier for toolstrips
// to blend in with the chrome UI.
if (view->is_toolstrip()) {
- static const StringPiece toolstrip_css(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_EXTENSIONS_TOOLSTRIP_CSS));
render_view_host->InsertCSSInWebFrame(L"", toolstrip_css.as_string());
} else {
// No CSS injecting currently, but call SetDidInsertCSS to tell the view
@@ -238,6 +238,11 @@ void ExtensionHost::DidStopLoading(RenderViewHost* render_view_host) {
view->SetDidInsertCSS(true);
}
}
+#elif defined(OS_LINUX)
+ ExtensionViewGtk* view = view_.get();
+ if (view && view->is_toolstrip()) {
+ render_view_host->InsertCSSInWebFrame(L"", toolstrip_css.as_string());
+ }
#endif
did_stop_loading_ = true;
diff --git a/chrome/browser/gtk/extension_shelf_gtk.cc b/chrome/browser/gtk/extension_shelf_gtk.cc
index c83d182..1262c16 100644
--- a/chrome/browser/gtk/extension_shelf_gtk.cc
+++ b/chrome/browser/gtk/extension_shelf_gtk.cc
@@ -28,40 +28,36 @@ class ExtensionShelfGtk::Toolstrip {
Init();
}
- ~Toolstrip() {
- label_.Destroy();
- }
-
void AddToolstripToBox(GtkWidget* box);
void RemoveToolstripFromBox(GtkWidget* box);
private:
void Init();
+ gfx::NativeView native_view() {
+ return host_->view()->native_view();
+ }
+
ExtensionHost* host_;
const std::string extension_name_;
- // Placeholder label with extension's name.
- // TODO(phajdan.jr): replace the label with rendered extension contents.
- OwnedWidgetGtk label_;
-
private:
DISALLOW_COPY_AND_ASSIGN(Toolstrip);
};
void ExtensionShelfGtk::Toolstrip::AddToolstripToBox(GtkWidget* box) {
- gtk_box_pack_start(GTK_BOX(box), label_.get(), FALSE, FALSE,
+ gtk_box_pack_start(GTK_BOX(box), native_view(), TRUE, TRUE,
kToolstripPadding);
}
void ExtensionShelfGtk::Toolstrip::RemoveToolstripFromBox(GtkWidget* box) {
- gtk_container_remove(GTK_CONTAINER(box), label_.get());
+ gtk_container_remove(GTK_CONTAINER(box), native_view());
}
void ExtensionShelfGtk::Toolstrip::Init() {
- label_.Own(gtk_label_new(extension_name_.c_str()));
- gtk_widget_show_all(label_.get());
+ host_->view()->set_is_toolstrip(true);
+ gtk_widget_show_all(native_view());
}
ExtensionShelfGtk::ExtensionShelfGtk(Profile* profile, Browser* browser)
diff --git a/chrome/browser/gtk/extension_view_gtk.cc b/chrome/browser/gtk/extension_view_gtk.cc
index fc358cd..5940d0f 100644
--- a/chrome/browser/gtk/extension_view_gtk.cc
+++ b/chrome/browser/gtk/extension_view_gtk.cc
@@ -9,7 +9,8 @@
#include "chrome/browser/renderer_host/render_widget_host_view_gtk.h"
ExtensionViewGtk::ExtensionViewGtk(ExtensionHost* extension_host)
- : extension_host_(extension_host),
+ : is_toolstrip_(true),
+ extension_host_(extension_host),
render_widget_host_view_(NULL) {
CreateWidgetHostView();
}
diff --git a/chrome/browser/gtk/extension_view_gtk.h b/chrome/browser/gtk/extension_view_gtk.h
index 61e58fd4f..b569c03 100644
--- a/chrome/browser/gtk/extension_view_gtk.h
+++ b/chrome/browser/gtk/extension_view_gtk.h
@@ -18,11 +18,17 @@ class ExtensionViewGtk {
gfx::NativeView native_view();
+ bool is_toolstrip() const { return is_toolstrip_; }
+ void set_is_toolstrip(bool is_toolstrip) { is_toolstrip_ = is_toolstrip; }
+
private:
RenderViewHost* render_view_host() const;
void CreateWidgetHostView();
+ // True if the contents are being displayed inside the extension shelf.
+ bool is_toolstrip_;
+
ExtensionHost* extension_host_;
RenderWidgetHostViewGtk* render_widget_host_view_;