Changeset 24350 in webkit


Ignore:
Timestamp:
Jul 16, 2007 9:12:02 PM (17 years ago)
Author:
weinig
Message:

Reviewed by Adam.

Move more functions from kjs_window to DOMWindow and auto-generate
the bindings for them.

  • bindings/js/kjs_window.cpp: (KJS::WindowFunc::callAsFunction):
  • bindings/js/kjs_window.h: (KJS::Window::):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::print): (WebCore::DOMWindow::stop): (WebCore::DOMWindow::alert): (WebCore::DOMWindow::confirm): (WebCore::DOMWindow::prompt): (WebCore::DOMWindow::find):
  • page/DOMWindow.h:
  • page/DOMWindow.idl:
Location:
trunk/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r24348 r24350  
     12007-07-16  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Adam.
     4
     5        Move more functions from kjs_window to DOMWindow and auto-generate
     6        the bindings for them.
     7
     8        * bindings/js/kjs_window.cpp:
     9        (KJS::WindowFunc::callAsFunction):
     10        * bindings/js/kjs_window.h:
     11        (KJS::Window::):
     12        * page/DOMWindow.cpp:
     13        (WebCore::DOMWindow::print):
     14        (WebCore::DOMWindow::stop):
     15        (WebCore::DOMWindow::alert):
     16        (WebCore::DOMWindow::confirm):
     17        (WebCore::DOMWindow::prompt):
     18        (WebCore::DOMWindow::find):
     19        * page/DOMWindow.h:
     20        * page/DOMWindow.idl:
     21
    1222007-07-17  Mark Rowe  <mrowe@apple.com>
    223
  • trunk/WebCore/bindings/js/kjs_window.cpp

    r24346 r24350  
    158158  resizeBy              Window::ResizeBy            DontDelete|Function 2
    159159  resizeTo              Window::ResizeTo            DontDelete|Function 2
    160   alert                 Window::Alert               DontDelete|Function 1
    161   confirm               Window::Confirm             DontDelete|Function 1
    162   prompt                Window::Prompt              DontDelete|Function 2
    163160  open                  Window::Open                DontDelete|Function 3
    164   print                 Window::Print               DontDelete|Function 2
    165161  setTimeout            Window::SetTimeout          DontDelete|Function 2
    166162  clearTimeout          Window::ClearTimeout        DontDelete|Function 1
     
    172168  removeEventListener   Window::RemoveEventListener DontDelete|Function 3
    173169  showModalDialog       Window::ShowModalDialog     DontDelete|Function 1
    174   find                  Window::Find                DontDelete|Function 7
    175   stop                  Window::Stop                DontDelete|Function 0
    176170# -- Attributes --
    177171  crypto                Window::Crypto              DontDelete|ReadOnly
     
    296290    d->loc = new Location(impl()->frame());
    297291  return d->loc;
    298 }
    299 
    300 bool Window::find(const String& string, bool caseSensitive, bool backwards, bool wrap, bool wholeWord, bool searchInFrames, bool showDialog) const
    301 {
    302     // FIXME (13016): Support wholeWord, searchInFrames and showDialog
    303     Frame* frame = impl()->frame();
    304     if (!frame)
    305         return false;
    306 
    307     return frame->findString(string, !backwards, caseSensitive, wrap, false);
    308292}
    309293
     
    12811265
    12821266  switch (id) {
    1283   case Window::Alert:
    1284     if (frame && frame->document())
    1285       frame->document()->updateRendering();
    1286     if (page)
    1287         page->chrome()->runJavaScriptAlert(frame, str);
    1288     return jsUndefined();
    12891267  case Window::AToB:
    12901268  case Window::BToA: {
     
    13101288   
    13111289    return jsString(String(out.data(), out.size()));
    1312   }
    1313   case Window::Confirm: {
    1314     if (frame && frame->document())
    1315       frame->document()->updateRendering();
    1316     bool result = false;
    1317     if (page)
    1318         result = page->chrome()->runJavaScriptConfirm(frame, str);
    1319     return jsBoolean(result);
    1320   }
    1321   case Window::Prompt:
    1322   {
    1323     if (frame && frame->document())
    1324       frame->document()->updateRendering();
    1325     String message = args.size() >= 2 ? args[1]->toString(exec) : UString();
    1326     if (page && page->chrome()->runJavaScriptPrompt(frame, str, message, str2))
    1327         return jsString(str2);
    1328 
    1329     return jsNull();
    13301290  }
    13311291  case Window::Open:
     
    13751335      return Window::retrieve(frame); // global object
    13761336  }
    1377   case Window::Print:
    1378     if (Page* page = frame->page())
    1379         page->chrome()->print(frame);
    1380     return jsUndefined();
    13811337  case Window::ScrollBy:
    13821338    window->updateLayout();
     
    15051461    return result;
    15061462  }
    1507   case Window::Stop:
    1508         frame->loader()->stopForUserCancel();
    1509         return jsUndefined();
    1510   case Window::Find:
    1511       if (!window->isSafeScript(exec))
    1512           return jsUndefined();
    1513       return jsBoolean(window->find(args[0]->toString(exec),
    1514                                     args[1]->toBoolean(exec),
    1515                                     args[2]->toBoolean(exec),
    1516                                     args[3]->toBoolean(exec),
    1517                                     args[4]->toBoolean(exec),
    1518                                     args[5]->toBoolean(exec),
    1519                                     args[6]->toBoolean(exec)));
    15201463  }
    15211464  return jsUndefined();
  • trunk/WebCore/bindings/js/kjs_window.h

    r24241 r24350  
    108108    bool isSafeScript(ExecState*) const;
    109109    static bool isSafeScript(const ScriptInterpreter *origin, const ScriptInterpreter *target);
    110     Location *location() const;
    111     bool find(const WebCore::String&, bool, bool, bool, bool, bool, bool) const;
     110
     111    Location* location() const;
    112112
    113113    // Finds a wrapper of a JS EventListener, returns 0 if no existing one.
     
    144144    enum {
    145145        // Functions
    146         AToB, BToA, Alert, Confirm,
    147         Prompt, Open, Print, SetTimeout,
     146        AToB, BToA, Open, SetTimeout,
    148147        ClearTimeout, SetInterval, ClearInterval, CaptureEvents,
    149148        ReleaseEvents, AddEventListener, RemoveEventListener, Scroll,
    150149        ScrollBy, ScrollTo, MoveBy, MoveTo,
    151         ResizeBy, ResizeTo, ShowModalDialog, Find,
    152         Stop,
     150        ResizeBy, ResizeTo, ShowModalDialog,
    153151
    154152        // Attributes
  • trunk/WebCore/page/DOMWindow.cpp

    r24182 r24350  
    172172}
    173173
     174void DOMWindow::print()
     175{
     176    if (!m_frame)
     177        return;
     178
     179    Page* page = m_frame->page();
     180    if (!page)
     181        return;
     182
     183    page->chrome()->print(m_frame);
     184}
     185
     186void DOMWindow::stop()
     187{
     188    if (!m_frame)
     189        return;
     190
     191    m_frame->loader()->stopForUserCancel();
     192}
     193
     194void DOMWindow::alert(const String& message)
     195{
     196    if (!m_frame)
     197        return;
     198
     199    Document* doc = m_frame->document();
     200    ASSERT(doc);
     201    if (doc)
     202        doc->updateRendering();
     203
     204    Page* page = m_frame->page();
     205    if (!page)
     206        return;
     207
     208    page->chrome()->runJavaScriptAlert(m_frame, message);
     209}
     210
     211bool DOMWindow::confirm(const String& message)
     212{
     213    if (!m_frame)
     214        return false;
     215
     216    Document* doc = m_frame->document();
     217    ASSERT(doc);
     218    if (doc)
     219        doc->updateRendering();
     220
     221    Page* page = m_frame->page();
     222    if (!page)
     223        return false;
     224
     225    return page->chrome()->runJavaScriptConfirm(m_frame, message);
     226}
     227
     228String DOMWindow::prompt(const String& message, const String& defaultValue)
     229{
     230    if (!m_frame)
     231        return String();
     232
     233    Document* doc = m_frame->document();
     234    ASSERT(doc);
     235    if (doc)
     236        doc->updateRendering();
     237
     238    Page* page = m_frame->page();
     239    if (!page)
     240        return String();
     241
     242    String returnValue;
     243    if (page->chrome()->runJavaScriptPrompt(m_frame, message, defaultValue, returnValue))
     244        return returnValue;
     245
     246    return String();
     247}
     248
     249bool DOMWindow::find(const String& string, bool caseSensitive, bool backwards, bool wrap, bool wholeWord, bool searchInFrames, bool showDialog) const
     250{
     251    if (!m_frame)
     252        return false;
     253
     254    // FIXME (13016): Support wholeWord, searchInFrames and showDialog
     255    return m_frame->findString(string, !backwards, caseSensitive, wrap, false);
     256}
     257
    174258bool DOMWindow::offscreenBuffering() const
    175259{
  • trunk/WebCore/page/DOMWindow.h

    r24182 r24350  
    6767        void blur();
    6868        void close();
     69        void print();
     70        void stop();
     71
     72        void alert(const String& message);
     73        bool confirm(const String& message);
     74        String prompt(const String& message, const String& defaultValue);
     75
     76        bool find(const String&, bool caseSensitive, bool backwards, bool wrap, bool wholeWord, bool searchInFrames, bool showDialog) const;
    6977
    7078        bool offscreenBuffering() const;
  • trunk/WebCore/page/DOMWindow.idl

    r24182 r24350  
    4242        [DoNotCheckDomainSecurity] void blur();
    4343        [DoNotCheckDomainSecurity] void close();
     44
     45        void print();
     46        void stop();
     47
     48        void alert(in DOMString message);
     49        boolean confirm(in DOMString message);
     50        [ConvertNullStringTo=Null] DOMString prompt(in [ConvertNullToNullString] DOMString message,
     51                                                    in [ConvertNullToNullString] DOMString defaultValue);
     52
     53        boolean find(in DOMString string,
     54                     in boolean caseSensitive,
     55                     in boolean backwards,
     56                     in boolean wrap,
     57                     in boolean wholeWord,
     58                     in boolean searchInFrames,
     59                     in boolean showDialog);
    4460
    4561        readonly attribute boolean offscreenBuffering;
Note: See TracChangeset for help on using the changeset viewer.