| OLD | NEW | 
|     1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2010 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/render_view.h" |     5 #include "chrome/renderer/render_view.h" | 
|     6  |     6  | 
|     7 #include <algorithm> |     7 #include <algorithm> | 
|     8 #include <string> |     8 #include <string> | 
|     9 #include <vector> |     9 #include <vector> | 
|    10  |    10  | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|    60 #include "chrome/renderer/webplugin_delegate_proxy.h" |    60 #include "chrome/renderer/webplugin_delegate_proxy.h" | 
|    61 #include "chrome/renderer/websharedworker_proxy.h" |    61 #include "chrome/renderer/websharedworker_proxy.h" | 
|    62 #include "chrome/renderer/webworker_proxy.h" |    62 #include "chrome/renderer/webworker_proxy.h" | 
|    63 #include "grit/generated_resources.h" |    63 #include "grit/generated_resources.h" | 
|    64 #include "grit/renderer_resources.h" |    64 #include "grit/renderer_resources.h" | 
|    65 #include "net/base/data_url.h" |    65 #include "net/base/data_url.h" | 
|    66 #include "net/base/escape.h" |    66 #include "net/base/escape.h" | 
|    67 #include "net/base/net_errors.h" |    67 #include "net/base/net_errors.h" | 
|    68 #include "skia/ext/bitmap_platform_device.h" |    68 #include "skia/ext/bitmap_platform_device.h" | 
|    69 #include "skia/ext/image_operations.h" |    69 #include "skia/ext/image_operations.h" | 
|    70 #if defined(OS_WIN) |  | 
|    71 // TODO(port): The compact language detection library works only for Windows. |  | 
|    72 #include "third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/cl
      d_unicodetext.h" |    70 #include "third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/cl
      d_unicodetext.h" | 
|    73 #endif |  | 
|    74 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityCache.h" |    71 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityCache.h" | 
|    75 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h" |    72 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h" | 
|    76 #include "third_party/WebKit/WebKit/chromium/public/WebCString.h" |    73 #include "third_party/WebKit/WebKit/chromium/public/WebCString.h" | 
|    77 #include "third_party/WebKit/WebKit/chromium/public/WebDataSource.h" |    74 #include "third_party/WebKit/WebKit/chromium/public/WebDataSource.h" | 
|    78 #include "third_party/WebKit/WebKit/chromium/public/WebDevToolsAgent.h" |    75 #include "third_party/WebKit/WebKit/chromium/public/WebDevToolsAgent.h" | 
|    79 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" |    76 #include "third_party/WebKit/WebKit/chromium/public/WebDocument.h" | 
|    80 #include "third_party/WebKit/WebKit/chromium/public/WebDragData.h" |    77 #include "third_party/WebKit/WebKit/chromium/public/WebDragData.h" | 
|    81 #include "third_party/WebKit/WebKit/chromium/public/WebFileChooserParams.h" |    78 #include "third_party/WebKit/WebKit/chromium/public/WebFileChooserParams.h" | 
|    82 #include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h" |    79 #include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h" | 
|    83 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" |    80 #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" | 
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   216  |   213  | 
|   217 // The maximum number of popups that can be spawned from one page. |   214 // The maximum number of popups that can be spawned from one page. | 
|   218 static const int kMaximumNumberOfUnacknowledgedPopups = 25; |   215 static const int kMaximumNumberOfUnacknowledgedPopups = 25; | 
|   219  |   216  | 
|   220 static const char* const kUnreachableWebDataURL = |   217 static const char* const kUnreachableWebDataURL = | 
|   221     "chrome://chromewebdata/"; |   218     "chrome://chromewebdata/"; | 
|   222  |   219  | 
|   223 static const char* const kBackForwardNavigationScheme = "history"; |   220 static const char* const kBackForwardNavigationScheme = "history"; | 
|   224  |   221  | 
|   225 // The string returned in DetectLanguage if we failed to detect the language. |   222 // The string returned in DetectLanguage if we failed to detect the language. | 
|   226 static const char* const kUnknownLanguageCode = "unknown"; |   223 static const char* const kUnknownLanguageCode = "und"; | 
|   227  |   224  | 
|   228 static void GetRedirectChain(WebDataSource* ds, std::vector<GURL>* result) { |   225 static void GetRedirectChain(WebDataSource* ds, std::vector<GURL>* result) { | 
|   229   WebVector<WebURL> urls; |   226   WebVector<WebURL> urls; | 
|   230   ds->redirectChain(urls); |   227   ds->redirectChain(urls); | 
|   231   result->reserve(urls.size()); |   228   result->reserve(urls.size()); | 
|   232   for (size_t i = 0; i < urls.size(); ++i) |   229   for (size_t i = 0; i < urls.size(); ++i) | 
|   233     result->push_back(urls[i]); |   230     result->push_back(urls[i]); | 
|   234 } |   231 } | 
|   235  |   232  | 
|   236 static bool UrlMatchesPermissions( |   233 static bool UrlMatchesPermissions( | 
| (...skipping 2838 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3075     return; |  3072     return; | 
|  3076   } |  3073   } | 
|  3077  |  3074  | 
|  3078   Send(new ViewHostMsg_PageLanguageDetermined(routing_id_, DetectLanguage())); |  3075   Send(new ViewHostMsg_PageLanguageDetermined(routing_id_, DetectLanguage())); | 
|  3079 } |  3076 } | 
|  3080  |  3077  | 
|  3081 std::string RenderView::DetectLanguage() { |  3078 std::string RenderView::DetectLanguage() { | 
|  3082   if (!webview() || is_loading_) |  3079   if (!webview() || is_loading_) | 
|  3083     return kUnknownLanguageCode; |  3080     return kUnknownLanguageCode; | 
|  3084  |  3081  | 
|  3085   std::string language = kUnknownLanguageCode; |  | 
|  3086 #if defined(OS_WIN)  // CLD is only available on Windows at this time. |  | 
|  3087   WebFrame* main_frame = webview()->mainFrame(); |  3082   WebFrame* main_frame = webview()->mainFrame(); | 
|  3088   std::wstring contents; |  3083   std::wstring contents; | 
|  3089   CaptureText(main_frame, &contents); |  3084   CaptureText(main_frame, &contents); | 
|  3090   language = DetermineTextLanguage(contents); |  3085   return DetermineTextLanguage(contents); | 
|  3091 #endif |  | 
|  3092  |  | 
|  3093   return language; |  | 
|  3094 } |  3086 } | 
|  3095  |  3087  | 
|  3096 // static |  3088 // static | 
|  3097 std::string RenderView::DetermineTextLanguage(const std::wstring& text) { |  3089 std::string RenderView::DetermineTextLanguage(const std::wstring& text) { | 
|  3098   std::string language = kUnknownLanguageCode; |  3090   std::string language = kUnknownLanguageCode; | 
|  3099 #if defined(OS_WIN)  // CLD is only available on Windows at this time. |  | 
|  3100   int num_languages = 0; |  3091   int num_languages = 0; | 
|  3101   bool is_reliable = false; |  3092   bool is_reliable = false; | 
 |  3093   string16 input = WideToUTF16(text); | 
|  3102   Language cld_language = |  3094   Language cld_language = | 
|  3103       DetectLanguageOfUnicodeText(NULL, text.c_str(), true, &is_reliable, |  3095       DetectLanguageOfUnicodeText(NULL, input.c_str(), true, &is_reliable, | 
|  3104                                   &num_languages, NULL); |  3096                                   &num_languages, NULL); | 
|  3105   if (cld_language != NUM_LANGUAGES && cld_language != UNKNOWN_LANGUAGE && |  3097   if (cld_language != NUM_LANGUAGES && cld_language != UNKNOWN_LANGUAGE && | 
|  3106       cld_language != TG_UNKNOWN_LANGUAGE) { |  3098       cld_language != TG_UNKNOWN_LANGUAGE) { | 
|  3107     language = LanguageCodeISO639_1(cld_language); |  3099     // We should not LanguageCode_ISO_639_1 because it does not cover all the | 
 |  3100     // languages CLD can detect. As a result, it'll return the invalid language | 
 |  3101     // code for tradtional Chinese among others. |LanguageCode| will go through | 
 |  3102     // ISO 639-1, ISO-639-2 and 'other' tables to do the 'right' thing. | 
 |  3103     language = LanguageCode(cld_language); | 
|  3108   } |  3104   } | 
|  3109 #endif |  | 
|  3110   return language; |  3105   return language; | 
|  3111 } |  3106 } | 
|  3112  |  3107  | 
|  3113 void RenderView::DnsPrefetch(const std::vector<std::string>& host_names) { |  3108 void RenderView::DnsPrefetch(const std::vector<std::string>& host_names) { | 
|  3114   Send(new ViewHostMsg_DnsPrefetch(host_names)); |  3109   Send(new ViewHostMsg_DnsPrefetch(host_names)); | 
|  3115 } |  3110 } | 
|  3116  |  3111  | 
|  3117 void RenderView::OnZoom(PageZoom::Function function) { |  3112 void RenderView::OnZoom(PageZoom::Function function) { | 
|  3118   if (!webview())  // Not sure if this can happen, but no harm in being safe. |  3113   if (!webview())  // Not sure if this can happen, but no harm in being safe. | 
|  3119     return; |  3114     return; | 
| (...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4049       new PluginMsg_SignalModalDialogEvent(host_window_)); |  4044       new PluginMsg_SignalModalDialogEvent(host_window_)); | 
|  4050  |  4045  | 
|  4051   message->EnableMessagePumping();  // Runs a nested message loop. |  4046   message->EnableMessagePumping();  // Runs a nested message loop. | 
|  4052   bool rv = Send(message); |  4047   bool rv = Send(message); | 
|  4053  |  4048  | 
|  4054   PluginChannelHost::Broadcast( |  4049   PluginChannelHost::Broadcast( | 
|  4055       new PluginMsg_ResetModalDialogEvent(host_window_)); |  4050       new PluginMsg_ResetModalDialogEvent(host_window_)); | 
|  4056  |  4051  | 
|  4057   return rv; |  4052   return rv; | 
|  4058 } |  4053 } | 
| OLD | NEW |