| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/external_extension.h" | 5 #include "chrome/renderer/external_extension.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/common/chrome_switches.h" | 8 #include "chrome/common/chrome_switches.h" |
| 9 #include "chrome/common/render_messages.h" | 9 #include "chrome/common/render_messages.h" |
| 10 #include "chrome/common/search_provider.h" | 10 #include "chrome/common/search_provider.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 search_provider::EXPLICIT_PROVIDER : | 124 search_provider::EXPLICIT_PROVIDER : |
| 125 search_provider::EXPLICIT_DEFAULT_PROVIDER; | 125 search_provider::EXPLICIT_DEFAULT_PROVIDER; |
| 126 | 126 |
| 127 RenderView* render_view = GetRenderView(); | 127 RenderView* render_view = GetRenderView(); |
| 128 if (!render_view) return v8::Undefined(); | 128 if (!render_view) return v8::Undefined(); |
| 129 | 129 |
| 130 if (provider_type != search_provider::EXPLICIT_DEFAULT_PROVIDER || | 130 if (provider_type != search_provider::EXPLICIT_DEFAULT_PROVIDER || |
| 131 render_view->webview()->mainFrame()->isProcessingUserGesture()) { | 131 render_view->webview()->mainFrame()->isProcessingUserGesture()) { |
| 132 GURL osd_url(name); | 132 GURL osd_url(name); |
| 133 if (!osd_url.is_empty()) { | 133 if (!osd_url.is_empty()) { |
| 134 render_view->Send(new ViewHostMsg_PageHasOSDD( | 134 render_view->Send(new ChromeViewHostMsg_PageHasOSDD( |
| 135 render_view->routing_id(), render_view->page_id(), osd_url, | 135 render_view->routing_id(), render_view->page_id(), osd_url, |
| 136 provider_type)); | 136 provider_type)); |
| 137 } | 137 } |
| 138 } | 138 } |
| 139 | 139 |
| 140 return v8::Undefined(); | 140 return v8::Undefined(); |
| 141 } | 141 } |
| 142 | 142 |
| 143 // static | 143 // static |
| 144 v8::Handle<v8::Value> ExternalExtensionWrapper::IsSearchProviderInstalled( | 144 v8::Handle<v8::Value> ExternalExtensionWrapper::IsSearchProviderInstalled( |
| 145 const v8::Arguments& args) { | 145 const v8::Arguments& args) { |
| 146 if (!args.Length()) return v8::Undefined(); | 146 if (!args.Length()) return v8::Undefined(); |
| 147 v8::String::Utf8Value utf8name(args[0]); | 147 v8::String::Utf8Value utf8name(args[0]); |
| 148 if (!utf8name.length()) return v8::Undefined(); | 148 if (!utf8name.length()) return v8::Undefined(); |
| 149 | 149 |
| 150 std::string name = std::string(*utf8name); | 150 std::string name = std::string(*utf8name); |
| 151 RenderView* render_view = GetRenderView(); | 151 RenderView* render_view = GetRenderView(); |
| 152 if (!render_view) return v8::Undefined(); | 152 if (!render_view) return v8::Undefined(); |
| 153 | 153 |
| 154 WebFrame* webframe = WebFrame::frameForEnteredContext(); | 154 WebFrame* webframe = WebFrame::frameForEnteredContext(); |
| 155 if (!webframe) return v8::Undefined(); | 155 if (!webframe) return v8::Undefined(); |
| 156 | 156 |
| 157 search_provider::InstallState install = search_provider::DENIED; | 157 search_provider::InstallState install = search_provider::DENIED; |
| 158 GURL inquiry_url = GURL(name); | 158 GURL inquiry_url = GURL(name); |
| 159 if (!inquiry_url.is_empty()) { | 159 if (!inquiry_url.is_empty()) { |
| 160 render_view->Send(new ViewHostMsg_GetSearchProviderInstallState( | 160 render_view->Send(new ChromeViewHostMsg_GetSearchProviderInstallState( |
| 161 render_view->routing_id(), | 161 render_view->routing_id(), |
| 162 webframe->document().url(), | 162 webframe->document().url(), |
| 163 inquiry_url, | 163 inquiry_url, |
| 164 &install)); | 164 &install)); |
| 165 } | 165 } |
| 166 | 166 |
| 167 if (install == search_provider::DENIED) { | 167 if (install == search_provider::DENIED) { |
| 168 // FIXME: throw access denied exception. | 168 // FIXME: throw access denied exception. |
| 169 return v8::ThrowException(v8::Exception::Error(v8::String::Empty())); | 169 return v8::ThrowException(v8::Exception::Error(v8::String::Empty())); |
| 170 } | 170 } |
| 171 return v8::Integer::New(install); | 171 return v8::Integer::New(install); |
| 172 } | 172 } |
| 173 | 173 |
| 174 v8::Extension* ExternalExtension::Get() { | 174 v8::Extension* ExternalExtension::Get() { |
| 175 return new ExternalExtensionWrapper(); | 175 return new ExternalExtensionWrapper(); |
| 176 } | 176 } |
| 177 | 177 |
| 178 } // namespace extensions_v8 | 178 } // namespace extensions_v8 |
| OLD | NEW |