Implement insertCSS on webFrame
authorKevin Sawicki <kevinsawicki@gmail.com>
Mon, 19 Dec 2016 23:50:47 +0000 (15:50 -0800)
committerBirunthan Mohanathas <birunthan@mohanathas.com>
Thu, 19 Jan 2017 07:05:59 +0000 (09:05 +0200)
atom/browser/api/atom_api_web_contents.cc
atom/renderer/api/atom_api_web_frame.cc
atom/renderer/api/atom_api_web_frame.h
lib/browser/api/web-contents.js

index 17fe83a..3d1c247 100644 (file)
@@ -977,10 +977,6 @@ std::string WebContents::GetUserAgent() {
   return web_contents()->GetUserAgentOverride();
 }
 
-void WebContents::InsertCSS(const std::string& css) {
-  // FIXME(zcbenz): Redirect this method to webFrame.
-}
-
 bool WebContents::SavePage(const base::FilePath& full_file_path,
                            const content::SavePageType& save_type,
                            const SavePageHandler::SavePageCallback& callback) {
@@ -1561,7 +1557,6 @@ void WebContents::BuildPrototype(v8::Isolate* isolate,
       .SetMethod("isCrashed", &WebContents::IsCrashed)
       .SetMethod("setUserAgent", &WebContents::SetUserAgent)
       .SetMethod("getUserAgent", &WebContents::GetUserAgent)
-      .SetMethod("insertCSS", &WebContents::InsertCSS)
       .SetMethod("savePage", &WebContents::SavePage)
       .SetMethod("openDevTools", &WebContents::OpenDevTools)
       .SetMethod("closeDevTools", &WebContents::CloseDevTools)
index a7b71c3..7fa1968 100644 (file)
@@ -190,6 +190,11 @@ void WebFrame::InsertText(const std::string& text) {
   web_frame_->insertText(blink::WebString::fromUTF8(text));
 }
 
+void WebFrame::InsertCSS(const std::string& css) {
+  web_frame_->document().insertStyleSheet(blink::WebString::fromUTF8(css));
+}
+
+
 void WebFrame::ExecuteJavaScript(const base::string16& code,
                                  mate::Arguments* args) {
   bool has_user_gesture = false;
@@ -251,6 +256,7 @@ void WebFrame::BuildPrototype(
       .SetMethod("registerURLSchemeAsPrivileged",
                  &WebFrame::RegisterURLSchemeAsPrivileged)
       .SetMethod("insertText", &WebFrame::InsertText)
+      .SetMethod("insertCSS", &WebFrame::InsertCSS)
       .SetMethod("executeJavaScript", &WebFrame::ExecuteJavaScript)
       .SetMethod("getResourceUsage", &WebFrame::GetResourceUsage)
       .SetMethod("clearCache", &WebFrame::ClearCache)
index 4b5610c..a35b86c 100644 (file)
@@ -69,6 +69,7 @@ class WebFrame : public mate::Wrappable<WebFrame> {
 
   // Editing.
   void InsertText(const std::string& text);
+  void InsertCSS(const std::string& css);
 
   // Excecuting scripts.
   void ExecuteJavaScript(const base::string16& code, mate::Arguments* args);
index ca702b1..de31eeb 100644 (file)
@@ -99,6 +99,7 @@ WebContents.prototype.sendToAll = function (channel, ...args) {
 
 // Following methods are mapped to webFrame.
 const webFrameMethods = [
+  'insertCSS',
   'insertText',
   'setLayoutZoomLevelLimits',
   'setVisualZoomLevelLimits',