summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-24 23:35:48 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-24 23:35:48 +0000
commit1810e13962cca160e222d1ba9119fff4e7e7e033 (patch)
treed6259a08103552d3aa59fe5406e35cfa94e3eead
parent1bc2de46d9bdcab02caa8a4623c08472d71aa8d7 (diff)
downloadchromium_src-1810e13962cca160e222d1ba9119fff4e7e7e033.zip
chromium_src-1810e13962cca160e222d1ba9119fff4e7e7e033.tar.gz
chromium_src-1810e13962cca160e222d1ba9119fff4e7e7e033.tar.bz2
Implement default css for toolstrips.
Review URL: http://codereview.chromium.org/42435 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12408 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/browser_resources.grd3
-rwxr-xr-xchrome/browser/extensions/extension_view.cc12
-rwxr-xr-xchrome/browser/extensions/extension_view.h2
-rw-r--r--chrome/browser/extensions/extensions_ui.cc2
-rw-r--r--chrome/browser/renderer_host/render_view_host.cc5
-rw-r--r--chrome/browser/renderer_host/render_view_host.h4
-rwxr-xr-xchrome/browser/resources/extensions_toolstrip.css15
-rwxr-xr-x[-rw-r--r--]chrome/browser/resources/extensions_ui.html (renamed from chrome/browser/resources/extensions.html)40
-rw-r--r--chrome/common/render_messages_internal.h7
-rw-r--r--chrome/renderer/render_view.cc15
-rw-r--r--chrome/renderer/render_view.h6
11 files changed, 75 insertions, 36 deletions
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index c856181..60f9cb5 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -23,7 +23,8 @@
<include name="IDR_CREDITS_HTML" file="resources\about_credits.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_HISTORY_HTML" file="resources\history.html" flattenhtml="true" type="BINDATA" />
<include name="IDR_DOWNLOADS_HTML" file="resources\downloads.html" flattenhtml="true" type="BINDATA" />
- <include name="IDR_EXTENSIONS_HTML" file="resources\extensions.html" flattenhtml="true" type="BINDATA" />
+ <include name="IDR_EXTENSIONS_UI_HTML" file="resources\extensions_ui.html" flattenhtml="true" type="BINDATA" />
+ <include name="IDR_EXTENSIONS_TOOLSTRIP_CSS" file="resources\extensions_toolstrip.css" flattenhtml="true" type="BINDATA" />
<if expr="os == 'linux2'">
<include name="IDR_LINUX_SPLASH_HTML" file="resources\linux-splash.html" flattenhtml="true" type="BINDATA" />
</if>
diff --git a/chrome/browser/extensions/extension_view.cc b/chrome/browser/extensions/extension_view.cc
index 0ceb7e4..2aa9120 100755
--- a/chrome/browser/extensions/extension_view.cc
+++ b/chrome/browser/extensions/extension_view.cc
@@ -7,6 +7,10 @@
#include "chrome/browser/extensions/extension.h"
#include "chrome/browser/extensions/extension_message_service.h"
#include "chrome/browser/renderer_host/render_view_host.h"
+#include "chrome/common/resource_bundle.h"
+
+#include "grit/browser_resources.h"
+#include "grit/generated_resources.h"
ExtensionView::ExtensionView(
Extension* extension, const GURL& url, Profile* profile) :
@@ -40,3 +44,11 @@ void ExtensionView::RunJavaScriptMessage(
*did_suppress_message = true;
render_view_host()->JavaScriptMessageBoxClosed(reply_msg, true, L"");
}
+
+void ExtensionView::DidStartLoading(RenderViewHost* render_view_host,
+ int32 page_id) {
+ static const StringPiece toolstrip_css(
+ ResourceBundle::GetSharedInstance().GetRawDataResource(
+ IDR_EXTENSIONS_TOOLSTRIP_CSS));
+ render_view_host->InsertCSSInWebFrame(L"", toolstrip_css.as_string());
+}
diff --git a/chrome/browser/extensions/extension_view.h b/chrome/browser/extensions/extension_view.h
index 3ae3c23..e82c918 100755
--- a/chrome/browser/extensions/extension_view.h
+++ b/chrome/browser/extensions/extension_view.h
@@ -41,6 +41,8 @@ class ExtensionView : public HWNDHtmlView,
const int flags,
IPC::Message* reply_msg,
bool* did_suppress_message);
+ virtual void DidStartLoading(RenderViewHost* render_view_host,
+ int32 page_id);
Extension* extension() { return extension_; }
private:
diff --git a/chrome/browser/extensions/extensions_ui.cc b/chrome/browser/extensions/extensions_ui.cc
index 236b92a..64a68f7 100644
--- a/chrome/browser/extensions/extensions_ui.cc
+++ b/chrome/browser/extensions/extensions_ui.cc
@@ -37,7 +37,7 @@ void ExtensionsUIHTMLSource::StartDataRequest(const std::string& path,
static const StringPiece extensions_html(
ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_EXTENSIONS_HTML));
+ IDR_EXTENSIONS_UI_HTML));
const std::string full_html = jstemplate_builder::GetTemplateHtml(
extensions_html, &localized_strings, "root");
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc
index a02f15c..e820f47 100644
--- a/chrome/browser/renderer_host/render_view_host.cc
+++ b/chrome/browser/renderer_host/render_view_host.cc
@@ -425,6 +425,11 @@ void RenderViewHost::ExecuteJavascriptInWebFrame(
Send(new ViewMsg_ScriptEvalRequest(routing_id(), frame_xpath, jscript));
}
+void RenderViewHost::InsertCSSInWebFrame(
+ const std::wstring& frame_xpath, const std::string& css) {
+ Send(new ViewMsg_CSSInsertRequest(routing_id(), frame_xpath, css));
+}
+
void RenderViewHost::AddMessageToConsole(
const std::wstring& frame_xpath, const std::wstring& msg,
ConsoleMessageLevel level) {
diff --git a/chrome/browser/renderer_host/render_view_host.h b/chrome/browser/renderer_host/render_view_host.h
index 1e61e7e..3142c6c 100644
--- a/chrome/browser/renderer_host/render_view_host.h
+++ b/chrome/browser/renderer_host/render_view_host.h
@@ -230,6 +230,10 @@ class RenderViewHost : public RenderWidgetHost {
void ExecuteJavascriptInWebFrame(const std::wstring& frame_xpath,
const std::wstring& jscript);
+ // Insert some css into a frame in the page.
+ void InsertCSSInWebFrame(const std::wstring& frame_xpath,
+ const std::string& css);
+
// Logs a message to the console of a frame in the page.
void AddMessageToConsole(const std::wstring& frame_xpath,
const std::wstring& msg,
diff --git a/chrome/browser/resources/extensions_toolstrip.css b/chrome/browser/resources/extensions_toolstrip.css
new file mode 100755
index 0000000..a8a332d
--- /dev/null
+++ b/chrome/browser/resources/extensions_toolstrip.css
@@ -0,0 +1,15 @@
+body {
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+ font: menu;
+ text-shadow: #FFFFFF 1px 1px 0px;
+ color: #062D75;
+}
+
+#main {
+ background: -webkit-gradient(linear, left top, left bottom, from(rgb(222, 234, 248)), to(rgb(237, 244, 252)));
+ padding-top: 3px;
+ height:19px;
+ overflow:hidden;
+}
diff --git a/chrome/browser/resources/extensions.html b/chrome/browser/resources/extensions_ui.html
index c7a4dc7..e719f91 100644..100755
--- a/chrome/browser/resources/extensions.html
+++ b/chrome/browser/resources/extensions_ui.html
@@ -14,16 +14,13 @@ var extensionDataFormat = {
"name": "Extension Name",
"description": "Extension long format description",
"version": "1.0.231",
- "permissions": ["http://*/*", "http://other.com/*"],
"content_scripts": [
{
"js": ["script1_file1.js", "script1_file2.js"],
- "css": ["script1_file1.css", "script1_file2.css"],
"matches": ["http://*/*", "http://other.com/*"]
},
{
"js": ["script2_file1.js", "script2_file2.js"],
- "css": ["script2_file1.css", "script2_file2.css"],
"matches": ["http://*/*", "http://other.com/*"]
}
]
@@ -35,12 +32,10 @@ var extensionDataFormat = {
"content_scripts": [
{
"js": ["script1_file1.js", "script1_file2.js"],
- "css": ["script1_file1.css", "script1_file2.css"],
"matches": ["http://*/*", "http://other.com/*"]
},
{
"js": ["script2_file1.js", "script2_file2.js"],
- "css": ["script2_file1.css", "script2_file2.css"],
"matches": ["http://*/*", "http://other.com/*"]
}
]
@@ -190,34 +185,27 @@ th.enabled {
<div jsdisplay="extensions.length > 0">
<div class="extension" jsselect="extensions">
<div class="extension-name" jscontent="name">
- Extension Name
- </div>
+ sExtension Name</div>
<dl>
<dd>
<span jscontent="description">Extension Description</span>
</dd>
<dd>Version: <span jscontent="version">x.x.x.x</span></dd>
</dl>
- <table>
+
+ <table jsselect="content_scripts">
<thead>
- <tr><th colspan="2">Configuration</th></tr>
+ <tr><th colspan="2">Content Script</th></tr>
</thead>
<tbody>
<tr>
- <td>Permissions</td>
+ <td>JavaScript Files</td>
<td>
- <span jsselect="permissions"
+ <span jsselect="js"
jscontent="(($index > 0) ? ', ' : '') + $this">
</span>
</td>
</tr>
- </tbody>
- </table>
- <table jsselect="content_scripts">
- <thead>
- <tr><th colspan="2">Content Script</th></tr>
- </thead>
- <tbody>
<tr>
<td>URL Match Patterns</td>
<td>
@@ -226,22 +214,6 @@ th.enabled {
</span>
</td>
</tr>
- <tr>
- <td>CSS Files</td>
- <td>
- <span jsselect="css"
- jscontent="(($index > 0) ? ', ' : '') + $this">
- </span>
- </td>
- </tr>
- <tr>
- <td>JavaScript Files</td>
- <td>
- <span jsselect="js"
- jscontent="(($index > 0) ? ', ' : '') + $this">
- </span>
- </td>
- </tr>
</tbody>
</table>
</div>
diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
index 150bdbe..271d470 100644
--- a/chrome/common/render_messages_internal.h
+++ b/chrome/common/render_messages_internal.h
@@ -221,6 +221,13 @@ IPC_BEGIN_MESSAGES(View)
std::wstring, /* frame_xpath */
std::wstring /* jscript_url */)
+ // Request for the renderer to evaluate an xpath to a frame and insert css
+ // into that frame's document. See ViewMsg_ScriptEvalRequest for details on
+ // allowed xpath expressions.
+ IPC_MESSAGE_ROUTED2(ViewMsg_CSSInsertRequest,
+ std::wstring, /* frame_xpath */
+ std::string /* css string */)
+
// Log a message to the console of the target frame
IPC_MESSAGE_ROUTED3(ViewMsg_AddMessageToConsole,
std::wstring, /* frame_xpath */
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index a1cc093..4c55bb5 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -370,6 +370,7 @@ void RenderView::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(ViewMsg_SetupDevToolsClient, OnSetupDevToolsClient)
IPC_MESSAGE_HANDLER(ViewMsg_DownloadImage, OnDownloadImage)
IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest)
+ IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest)
IPC_MESSAGE_HANDLER(ViewMsg_AddMessageToConsole, OnAddMessageToConsole)
IPC_MESSAGE_HANDLER(ViewMsg_DebugAttach, OnDebugAttach)
IPC_MESSAGE_HANDLER(ViewMsg_DebugDetach, OnDebugDetach)
@@ -2472,11 +2473,25 @@ void RenderView::EvaluateScript(const std::wstring& frame_xpath,
webkit_glue::WebScriptSource(WideToUTF8(script)));
}
+void RenderView::InsertCSS(const std::wstring& frame_xpath,
+ const std::string& css) {
+ WebFrame* web_frame = GetChildFrame(frame_xpath);
+ if (!web_frame)
+ return;
+
+ web_frame->InsertCSSStyles(css);
+}
+
void RenderView::OnScriptEvalRequest(const std::wstring& frame_xpath,
const std::wstring& jscript) {
EvaluateScript(frame_xpath, jscript);
}
+void RenderView::OnCSSInsertRequest(const std::wstring& frame_xpath,
+ const std::string& css) {
+ InsertCSS(frame_xpath, css);
+}
+
void RenderView::OnAddMessageToConsole(const std::wstring& frame_xpath,
const std::wstring& msg,
ConsoleMessageLevel level) {
diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
index 83612d8..5ed66520 100644
--- a/chrome/renderer/render_view.h
+++ b/chrome/renderer/render_view.h
@@ -338,6 +338,10 @@ class RenderView : public RenderWidget,
void EvaluateScript(const std::wstring& frame_xpath,
const std::wstring& jscript);
+ // Inserts a string of CSS in a particular frame.
+ void InsertCSS(const std::wstring& frame_xpath,
+ const std::string& css);
+
// Called when the Javascript debugger is no longer attached.
// This is called from within the renderer, not via an IPC message.
void OnDebugDetach();
@@ -510,6 +514,8 @@ class RenderView : public RenderWidget,
void OnScriptEvalRequest(const std::wstring& frame_xpath,
const std::wstring& jscript);
+ void OnCSSInsertRequest(const std::wstring& frame_xpath,
+ const std::string& css);
void OnAddMessageToConsole(const std::wstring& frame_xpath,
const std::wstring& msg,
ConsoleMessageLevel level);