diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-24 23:35:48 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-24 23:35:48 +0000 |
commit | 1810e13962cca160e222d1ba9119fff4e7e7e033 (patch) | |
tree | d6259a08103552d3aa59fe5406e35cfa94e3eead | |
parent | 1bc2de46d9bdcab02caa8a4623c08472d71aa8d7 (diff) | |
download | chromium_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.grd | 3 | ||||
-rwxr-xr-x | chrome/browser/extensions/extension_view.cc | 12 | ||||
-rwxr-xr-x | chrome/browser/extensions/extension_view.h | 2 | ||||
-rw-r--r-- | chrome/browser/extensions/extensions_ui.cc | 2 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 5 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.h | 4 | ||||
-rwxr-xr-x | chrome/browser/resources/extensions_toolstrip.css | 15 | ||||
-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.h | 7 | ||||
-rw-r--r-- | chrome/renderer/render_view.cc | 15 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 6 |
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); |