Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(697)

Side by Side Diff: chrome/renderer/external_extension.cc

Issue 6874038: Remove the last Chrome dependencies from renderer, and enforce no more includes through DEPS. I ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/search_provider.h" 10 #include "chrome/common/search_provider.h"
10 #include "content/renderer/render_view.h" 11 #include "content/renderer/render_view.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
12 #include "v8/include/v8.h" 14 #include "v8/include/v8.h"
13 15
14 using WebKit::WebFrame; 16 using WebKit::WebFrame;
15 using WebKit::WebView; 17 using WebKit::WebView;
16 18
17 namespace extensions_v8 { 19 namespace extensions_v8 {
18 20
19 static const char* const kSearchProviderApiV1 = 21 static const char* const kSearchProviderApiV1 =
20 "var external;" 22 "var external;"
21 "if (!external)" 23 "if (!external)"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 if (!name.length()) return v8::Undefined(); 119 if (!name.length()) return v8::Undefined();
118 120
119 search_provider::OSDDType provider_type = 121 search_provider::OSDDType provider_type =
120 ((args.Length() < 2) || !args[1]->BooleanValue()) ? 122 ((args.Length() < 2) || !args[1]->BooleanValue()) ?
121 search_provider::EXPLICIT_PROVIDER : 123 search_provider::EXPLICIT_PROVIDER :
122 search_provider::EXPLICIT_DEFAULT_PROVIDER; 124 search_provider::EXPLICIT_DEFAULT_PROVIDER;
123 125
124 RenderView* render_view = GetRenderView(); 126 RenderView* render_view = GetRenderView();
125 if (!render_view) return v8::Undefined(); 127 if (!render_view) return v8::Undefined();
126 128
127 render_view->AddSearchProvider(name, provider_type); 129 if (provider_type != search_provider::EXPLICIT_DEFAULT_PROVIDER ||
130 render_view->webview()->mainFrame()->isProcessingUserGesture()) {
131 GURL osd_url(name);
132 if (!osd_url.is_empty()) {
133 render_view->Send(new ViewHostMsg_PageHasOSDD(
134 render_view->routing_id(), render_view->page_id(), osd_url,
135 provider_type));
136 }
137 }
138
128 return v8::Undefined(); 139 return v8::Undefined();
129 } 140 }
130 141
131 // static 142 // static
132 v8::Handle<v8::Value> ExternalExtensionWrapper::IsSearchProviderInstalled( 143 v8::Handle<v8::Value> ExternalExtensionWrapper::IsSearchProviderInstalled(
133 const v8::Arguments& args) { 144 const v8::Arguments& args) {
134 if (!args.Length()) return v8::Undefined(); 145 if (!args.Length()) return v8::Undefined();
135 146
136 std::string name = std::string(*v8::String::Utf8Value(args[0])); 147 std::string name = std::string(*v8::String::Utf8Value(args[0]));
137 if (!name.length()) return v8::Undefined(); 148 if (!name.length()) return v8::Undefined();
138 149
139 RenderView* render_view = GetRenderView(); 150 RenderView* render_view = GetRenderView();
140 if (!render_view) return v8::Undefined(); 151 if (!render_view) return v8::Undefined();
141 152
142 WebFrame* webframe = WebFrame::frameForEnteredContext(); 153 WebFrame* webframe = WebFrame::frameForEnteredContext();
143 if (!webframe) return v8::Undefined(); 154 if (!webframe) return v8::Undefined();
144 155
145 search_provider::InstallState install = 156 search_provider::InstallState install = search_provider::DENIED;
146 render_view->GetSearchProviderInstallState(webframe, name); 157 GURL inquiry_url = GURL(name);
158 if (!inquiry_url.is_empty()) {
159 render_view->Send(new ViewHostMsg_GetSearchProviderInstallState(
160 render_view->routing_id(), webframe->url(), inquiry_url, &install));
161 }
162
147 if (install == search_provider::DENIED) { 163 if (install == search_provider::DENIED) {
148 // FIXME: throw access denied exception. 164 // FIXME: throw access denied exception.
149 return v8::ThrowException(v8::Exception::Error(v8::String::Empty())); 165 return v8::ThrowException(v8::Exception::Error(v8::String::Empty()));
150 } 166 }
151 return v8::Integer::New(install); 167 return v8::Integer::New(install);
152 } 168 }
153 169
154 v8::Extension* ExternalExtension::Get() { 170 v8::Extension* ExternalExtension::Get() {
155 return new ExternalExtensionWrapper(); 171 return new ExternalExtensionWrapper();
156 } 172 }
157 173
158 } // namespace extensions_v8 174 } // namespace extensions_v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698